top | item 42595084

(no title)

zdyn5 | 1 year ago

No, CMOS image sensor Bayer RAWs are not accurate to what we actually see. Just a few of the many things that need to be addressed to get an even “normal” looking image:

1) They’re overly green because the greens of the RGGB color filter array are more sensitive to light than the other colors. This needs to be corrected with nontrivial auto-white-balance algorithms (not only the green bias needs to be fixed but other scene-dependent factors)

2) The Bayer pattern of the color filter array creates a checkerboard color pattern that needs to be fixed with debayering/demosaicing algorithms - again nontrivial if you don’t want to create artifacts or overblur with simplistic interpolation approaches, and there are even ML algorithms that do this now.

3) Bayer RAWs are linear in photon intensity which is not accurate to how our visual system compresses the high dynamic range. Therefore, various tone mapping algorithms are required to reproduce a natural-looking tone/intensity map of the scene.

4) Small sensors can’t collect enough light and this inhererently results in noisy raw images that need to be denoised. There are a lot of different denoising approaches (including modern that are basically all ML), but care needs to be taken as this is one of the places where it’s easy to generate an overly-processed image.

There are a lot more steps that happen in a typical image processing pipeline, while yes can be tuned in non-ideal ways to produce overly-processed-feeling images, but are at the end of the day necessary if you don’t want something that looks like these: https://images.app.goo.gl/neJCHk5QsVt68XpL7

discuss

order

crazygringo|1 year ago

But all that is just tuning, and demosaicing is only non-trivial if you want to "fake" a higher resolution -- otherwise just downsample. Same with denoising.

The main point is actually what you say in #3 -- that they are linear. That's what I mean by being accurate.

Compressing the dynamic range is an artistic choice that will not make an image look like what our eyes see. Film, for example, is more tolerant to overexposure because it has a nonlinear response -- but that's objectively incorrect. Our eyes already compress the dynamic range in a kind of ~logarithmic way. So you don't want to do that on image data, or it ends up being done twice! Which is precisely why bad HDR images can look so fake. Artistically you'll always have to deal with whether you want to compress dynamic range and how.

But my main point stands -- the data coming from CMOS is objectively accurate in a way that film is not. It's linear. It's not compressing range at the top or anything like that, or oversaturating certain colors, etc.