Alternative Picture Format Idea

Erty

Suspended / Banned
Messages
746
Name
Andrew
Edit My Images
Yes
It struck me that the current way of recording light levels within pictures is really inefficient. The light levels are recorded in a linear scale. At high light levels it isn’t possible to perceive any difference between slight changes in brightness. In 8 bits you won’t really see a difference between colour level 254 and 255. Let alone in 14 bits where the light level difference is about 1/16000. The last part of the light level figure is wasted at high light levels.

We use high bit count cameras partly because they allow low light to be amplified to bring things out of the shadows. At low levels the first part of the number is wasted (because it is zero) and you can see the difference between, say, a 4 and a 5 (particularly if that is brightened by a few stops to 128 and 160). This gives you banding on processed pictures.

We take pictures in a logarithmic way. We change the brightness in factors of 2 for every stop on a lens. The cameras manage ISO levels in a similar way. Light levels in pictures are processed in a logarithmic way. So why not record the light levels in the RAW format in the same way?

I suggest the first part of the light level is recorded as a standard number but to a lower number of bits. Then the last part of the light level records a 2 to the power multiplier. A normal 12 bit light level goes from 000000000000 to 111111111111 in binary. Using the new format an image recording 8 bits of light levels and 4 multiplier bits would give you in binary:

[8 Light level bits]:[4 Multiplier bits]

The highest number would be recorded as

11111111:1111 which would be 111111111000000000000000 That is a 24 bit number! The next number/light level down would be:

11111110:1111 which is 111111110000000000000000

In terms of brightness this is equivalent from going from 511 to 510.

The more observant may have noticed that 2^8 isn’t 512 that there are too many 1s in the numbers above. This has used a trick of deleting the first number if the multiplier is more than 0 and then adding it in again to get an extra bit of data. Binary numbers always start with a 1 and this avoids wasting the first bit. So:

00000001:0001 is 00000001 + 100000000 = 100000001

And the next lower number is

00000000:0001 which is 00000000 + 100000000 = 100000000

Followed by

11111111:0000 which is just 11111111

This method compresses the data so that only the part that you can perceive is kept. It would allow a picture to have a vast optical range. The example above has 8 bit data recorded across 2^4 = 16 stops on the same picture which gives 256* 2^4 = 4096 potential light levels. That is, of course, the same number as a 12 bit camera but all the light levels are useful. The accuracy of the brighter light levels is sacrificed in order to make the accuracy of the lower light levels much better. If you changed that to 14 bit data with a 10:4 light level: multiplier bits ratio I doubt anyone would notice the drop in high brightness quality but anyone processing the picture would notice the improvement in low light level quality.

Where this could be really useful is if iso levels on sensors can be set into zones or, even better, individual pixels. Cameras can’t do this yet. If they could* then the managing iso aspect of taking pictures would be hugely de-skilled. There would be no practical loss of data in the dark except at extremes. In the 8:4 example you get the same quality of data across 15 of the 16 stops. You could have a bright subject recorded at low iso (so low noise) while the darker background areas still record decent data (albeit with higher noise as they have higher iso settings).

At present, it could be a useful format for compressing landscape pictures that are made up from several pictures taken at different light levels. What would normally be blown highlights or areas which are too dark can still contain useful data.

Anyway, that was a bit of what-if thinking, what do you think?

Andy


*It would need 2 superimposed sensor arrays- one to set the iso of each pixel and the other to record the light level at that iso. The camera records both bits of information directly to make the picture.
 
It struck me that the current way of recording light levels within pictures is really inefficient. The light levels are recorded in a linear scale. At high light levels it isn’t possible to perceive any difference between slight changes in brightness. In 8 bits you won’t really see a difference between colour level 254 and 255. Let alone in 14 bits where the light level difference is about 1/16000. The last part of the light level figure is wasted at high light levels.

We use high bit count cameras partly because they allow low light to be amplified to bring things out of the shadows. At low levels the first part of the number is wasted (because it is zero) and you can see the difference between, say, a 4 and a 5 (particularly if that is brightened by a few stops to 128 and 160). This gives you banding on processed pictures.

We take pictures in a logarithmic way. We change the brightness in factors of 2 for every stop on a lens. The cameras manage ISO levels in a similar way. Light levels in pictures are processed in a logarithmic way. So why not record the light levels in the RAW format in the same way?

I suggest the first part of the light level is recorded as a standard number but to a lower number of bits. Then the last part of the light level records a 2 to the power multiplier. A normal 12 bit light level goes from 000000000000 to 111111111111 in binary. Using the new format an image recording 8 bits of light levels and 4 multiplier bits would give you in binary:

[8 Light level bits]:[4 Multiplier bits]

The highest number would be recorded as

11111111:1111 which would be 111111111000000000000000 That is a 24 bit number! The next number/light level down would be:

11111110:1111 which is 111111110000000000000000

In terms of brightness this is equivalent from going from 511 to 510.

The more observant may have noticed that 2^8 isn’t 512 that there are too many 1s in the numbers above. This has used a trick of deleting the first number if the multiplier is more than 0 and then adding it in again to get an extra bit of data. Binary numbers always start with a 1 and this avoids wasting the first bit. So:

00000001:0001 is 00000001 + 100000000 = 100000001

And the next lower number is

00000000:0001 which is 00000000 + 100000000 = 100000000

Followed by

11111111:0000 which is just 11111111

This method compresses the data so that only the part that you can perceive is kept. It would allow a picture to have a vast optical range. The example above has 8 bit data recorded across 2^4 = 16 stops on the same picture which gives 256* 2^4 = 4096 potential light levels. That is, of course, the same number as a 12 bit camera but all the light levels are useful. The accuracy of the brighter light levels is sacrificed in order to make the accuracy of the lower light levels much better. If you changed that to 14 bit data with a 10:4 light level: multiplier bits ratio I doubt anyone would notice the drop in high brightness quality but anyone processing the picture would notice the improvement in low light level quality.

Where this could be really useful is if iso levels on sensors can be set into zones or, even better, individual pixels. Cameras can’t do this yet. If they could* then the managing iso aspect of taking pictures would be hugely de-skilled. There would be no practical loss of data in the dark except at extremes. In the 8:4 example you get the same quality of data across 15 of the 16 stops. You could have a bright subject recorded at low iso (so low noise) while the darker background areas still record decent data (albeit with higher noise as they have higher iso settings).

At present, it could be a useful format for compressing landscape pictures that are made up from several pictures taken at different light levels. What would normally be blown highlights or areas which are too dark can still contain useful data.

Anyway, that was a bit of what-if thinking, what do you think?

Andy


*It would need 2 superimposed sensor arrays- one to set the iso of each pixel and the other to record the light level at that iso. The camera records both bits of information directly to make the picture.
I think I'll just go out and make some photographs.
 
I agree completely Andrew :rolleyes:
 
Fuji S3Pro and S5Pro

"It has a Super CCD 23×15.5 mm image sensor of the same configuration as its predecessor, with 6.17 million low sensitivity pixels and 6.17 million high sensitivity pixels to give a high dynamic range, and a boost to 3200 ISO."

What we really need is for sensor manufacturers to concentrate on improving dynamic range and stop the mega pixel arms race, but 16 stops of Dynamic range doesn't sound as sexy as this weeks billion pixel sensor.......................
 
I always thought RAW recorded the digitised output from each photosite factored by amplification (ISO), so changing the way that is encoded will not change how each photosite responds to light. I think what you may be looking for is non-linear A-D conversion but sensors might already do that since I would assume that the photosites are most likely non-linear anyway

even better, individual pixels
You are going to set the ISO individually for each pixel on a 20,000,000 pixel sensor (let alone a 42M sensor) I think the light might have changed by the time you did that

What might actually be useful is ISO bracketing, I wonder if any camera already does that?
 
Oops! Hit "Post reply" too fast!

As the above link shows, several (? most ?) manufacturers seem to offer ISO bracketing these days.
 
It seems that my EM5 iii will do it with the right settings, every day is a school day :)
 
I find that putting the camera on "Auto" and concentrating on framing the picture works quite well. :tumbleweed:
 
I always thought RAW recorded the digitised output from each photosite factored by amplification (ISO), so changing the way that is encoded will not change how each photosite responds to light. I think what you may be looking for is non-linear A-D conversion but sensors might already do that since I would assume that the photosites are most likely non-linear anyway


You are going to set the ISO individually for each pixel on a 20,000,000 pixel sensor (let alone a 42M sensor) I think the light might have changed by the time you did that

What might actually be useful is ISO bracketing, I wonder if any camera already does that?
It's not ISO bracketing, but Phase One cameras have an option for dual exposure and frame averaging which both do clever things to give large dynamic ranges on a single raw file.

I may have the fine details not exactly correct but...

Dual exposure works by setting the exposure for the highlights (which are protected) and then adding 3 stops more for the shadow. It's two exposures but appear as if they are a single exposure. They are then blended in camera to give a single (I think it's 20+ stop dynamic range) raw file.

The frame averaging works a bit differently and you set the camera up to take multiple exposures as an alternative to a single long exposure. Each additional exposure is blended with the previous exposures, which again protects the highlights but also increases dynamic range and protects against noise in the shadows. You can watch the exposure build in real time, so if you are looking for "softening" of moving water, you can watch the changes on the camera back and stop the exposure when the desired affect has been achieved.



For anyone interested, this video explains dual exposure

View: https://www.youtube.com/watch?v=6B5Y2cE9mUk


And this one looks at dual exposure and frame averaging

View: https://www.youtube.com/watch?v=fWk1oXeXrZ8


They are both over an hour, but may be of interest to someone looking at what we have in the future with less expensive cameras. As an irrelevant aside, Phase One cameras also have a gyroscope, which on a tripod can delay the exposure until there is no vibration and allows the exact angle of the camera to be recorded in the exif allowing Capture One to automatically apply any key stoning correction (if you want it to). You also need Capture One to read the dual exposure and frame averaged files.

All very clever stuff, and if I had a spare couple of hundred thousand pounds lying around, I would be in the queue for a Phase One outfit :-)
 
Yes, on that basis I need one too! Sounds like the answer to a dream.
 
It's not ISO bracketing, but Phase One cameras have an option for dual exposure and frame averaging which both do clever things to give large dynamic ranges on a single raw file.

I may have the fine details not exactly correct but...

Dual exposure works by setting the exposure for the highlights (which are protected) and then adding 3 stops more for the shadow. It's two exposures but appear as if they are a single exposure. They are then blended in camera to give a single (I think it's 20+ stop dynamic range) raw file.

The frame averaging works a bit differently and you set the camera up to take multiple exposures as an alternative to a single long exposure. Each additional exposure is blended with the previous exposures, which again protects the highlights but also increases dynamic range and protects against noise in the shadows. You can watch the exposure build in real time, so if you are looking for "softening" of moving water, you can watch the changes on the camera back and stop the exposure when the desired affect has been achieved.



For anyone interested, this video explains dual exposure

View: https://www.youtube.com/watch?v=6B5Y2cE9mUk


And this one looks at dual exposure and frame averaging

View: https://www.youtube.com/watch?v=fWk1oXeXrZ8


They are both over an hour, but may be of interest to someone looking at what we have in the future with less expensive cameras. As an irrelevant aside, Phase One cameras also have a gyroscope, which on a tripod can delay the exposure until there is no vibration and allows the exact angle of the camera to be recorded in the exif allowing Capture One to automatically apply any key stoning correction (if you want it to). You also need Capture One to read the dual exposure and frame averaged files.

All very clever stuff, and if I had a spare couple of hundred thousand pounds lying around, I would be in the queue for a Phase One outfit :-)

I was just thinking about this - both my 645z and D850 have a multiple exposure mode - I use it for ICM.

The Pentax lets you chose how many exposures you want before it blends it into one PEF file. One might see if this works for a waterfall. I'm not sure if the D850 will let you chose more than two - but this could be another way to approach the waterfall movement angle.
 
I was just thinking about this - both my 645z and D850 have a multiple exposure mode - I use it for ICM.

The Pentax lets you chose how many exposures you want before it blends it into one PEF file. One might see if this works for a waterfall. I'm not sure if the D850 will let you chose more than two - but this could be another way to approach the waterfall movement angle.
I didn't realise the Pentax had exposure blending and multi-exposure ( I've just looked it up) looks like something well worth exploring.
 
I didn't realise the Pentax had exposure blending and multi-exposure ( I've just looked it up) looks like something well worth exploring.

What I don't think the 645z will do is intelligently blend...for instance maybe I take two exposures on the multi exposure mode - one at 1/30th for the FG - and another at 1/100th of the sky -I don't think it will blend the two together - or will it even let you change the exposure setting if in the mutli exposure mode - I don't know - I haven't tried. I expect if you could Pentax would have made a huge song and dance around this feature.

I've blended two 2 5 sec exposures to make a crazy ICM shot...but this could work well with "averaging". Imagine you are taking a series of urban pictures and there's people in the way. Take a few and it could average them out in the same way a long exp ghost them. Where I know it will work - is in a setting where there is moving water as it'll superimpose the images - whether thats better than sticking a 3 stop in front and letting the water flow - time will tell.
 
Last edited:
My Canon 5D4 has Some of these features. It certainly has built in HDR, Multiple exposures and Dual Pixel mode. The duel pixel mode captures two different focal points so you can refocus later. I have never tried this as I understand it is really just for studio work where a fine adjustment might be needed; the penalty is very large files and having to use the canon DPP software. I have used the multiple exposure to replace a big stopper filter. This works to some extent but is not ideal.

I cannot see a need for a new format. Yes, the capture is in linear but a Gamma correction is applied for JPEG output. I never use JPEG but when taking Bracketed Raw images and combining in LR for HDR the file format uses Floating point so can handle enormous dynamic range.

Dave
 
You are going to set the ISO individually for each pixel on a 20,000,000 pixel sensor (let alone a 42M sensor) I think the light might have changed by the time you did that
Sorry about ignoring my own thread

It is probably pretty easy. Behind the a 3 or 4 piece pixel on a 24X36 sensor there is enough space for about 200000 14nm transistors. That is a lot. Even if you include wires, capacitors and other microchip stuff there is still lots of space. Inside a micro SD card you can have enough capacity to record thousands of pictures so space is not a problem.

Since this is all on-board and happens for every pixel simultaneously it can be as fast the electronics can go. The noise reduction would be great to as each pixel is optimized to get the maximum level of light.

You just (ha, just) get the sensor to take a picture, dump that pixel information into on-board processing (for each pixel) that boosts the iso voltage to get a second more accurate picture. The camera then takes the second picture a fraction of a second later with each pixel at thr right ISO. For example a pixel that initially reads (8 bit) 00000101 gets boosted by 5 levels (as there are 5 0s at the start) of iso so that the actual sensor reads 101abcde on the second picture (where abcde is the last binary part of the more accurate light level). The 5 iso levels get saved in temporary memory (3 bits of data) and taken from 8 to give the number of zeros at the end of the pixel. The final pixel light level is recorded as 01abcde:011 which represents 101abcde000.

You get 8 levels of dynamic range (equivalent to iso 100-12800) giving full 8 bit ranges (maximum value 1111111100000000) using a 8 bit sensor and recording it in 11 bit data.

Repeat that with a 12 bit sensor and you get 12 bits of good data over 11 levels of dynamic ranges before the picture degrades (at which point it is equivalent to your normal camera). This is equivalent to a camera that self adjusts each pixel from ISO 100 to iso 205600. The output can be recorded as 16 bit data. Maximum value 111111111111000000000000 which records as 1111111111111100. On the same picture you have doubled the dynamic range with a 1/3 increase in data.

This is all dealing with memory, some simple digital processing and voltage control. Microchips are very good at this. I’m sure the clever chaps at Sony could figure it out.
 
There are a few things that occur to me...

Your idea sounds a lot like the lossy raw compression schemes already in use (discarding useless intermediate high exposure values).
No *camera currently generates much more than 12 bit accuracy at any ISO, and none generates 14 bit... so there's no real benefit of bumping it to 16bit or higher.
An uncompressed linear raw file requires 1 bit per stop of dynamic range, but that is not true of compressed files (lossy or lossless).
You don't increase the accuracy of the data by increasing its' bit depth. If the sensor is generating 8 bit it's still 8 bit after ADC processing at 14 bit and writing it into a 16 bit container.
ISO doesn't cause noise; and for an ISO invariant camera there is no need to set/encode ISO at all really.
HDR image stacks typically use 32 bit floating point... stacking them in-camera at a lower accuracy wouldn't seem to be particularly beneficial.



*some newer astro specific sensors have ~15 stops of DR and 16bit ADC.
 
Last edited:
I am not sure whether you are trying to find a solution for a problem that does not exist. There are some alternative approaches to sensor such as

Foveon X3 sensor​

However, I googled the topic of ISO bracketing and it would seem some cameras have this but few seemed to find any use for it. As I am able to obtain good exposures with highlight and shadow detail with my current cameras, I will continue looking for new challenging subjects to photograph. Also do remember, even if you do develop a good idea, it needs to be economic to implement without introducing other disadvantages and ensure that you own the patent.

Dave
 
Back
Top