Tag Archives: 8

Can you see the difference between a 8 bit and 10 bit camera output?

The question is can you see a difference between a camera with a 10 bit output and one with an 8 bit output? This is being asked a lot right now, in particular in relation to the Sony FS100 and the Sony F3. The FS100 has an 8 bit output and the F3 is 10 bit.

If your looking at the raw camera output then you will find it just about impossible to see a difference with normal monitoring equipment. This is because internally the cameras process the images using more than 8 bits (probably at least 10 on the FS100, the EX3 is 12 bit) and then convert to 8 or 10 bit for output so you should have nice smooth mapping of graduations to the full 8 bit output. Then consider that most LCD monitors are not able to display even 8 bits. The vast majority of monitors have a 6 bit panel and even a rare 8 bit monitor wont display all 8 bits as it has to do a gamma correction at 8 bits and this results in less than 8 bits being displayed. 10 bit monitors are very rare and again as gamma correction is normally required there is rarely a 1:1 bit for bit mapping of the 10 bit signal, so even these don’t show the full 10 bits of the input signal.  So it becomes apparent that when you view the original material the differences will not normally be visible and often the only way to determine what the output signal actually is is with a data analyser that can decode the HDSDi stream and tell you whether the 2 extra bits actually contain useful image data or are just padding.
Where the 8 bit, 10 bit difference will become apparent is after grading and post production. I wrote a more in depth article here: Why rendering form 8 bit to 8 bit can be a bad thing to do. But basically when you start manipulating an 8 bit image you will see banding issues a lot sooner than with 10 bit due to the reduced number of luma/color shades in 8 bit. Stretch out or compress 8 bit and some of those shades get removed or shifted and when the number of steps/shades is borderline to start with if you start throwing more away you will get issues.


Why rendering form 8 bit to 8 bit can be a bad thing to do.

When you transcode from 8 bit to 8 bit you will almost always have some issues with banding if there are any changes in the gamma or gain within the image. As you are starting with 8 bits or 240 shades of grey (bits 16 to 255 assuming recording to 109%) and encoding to 240 shades the smallest step you can ever have is 1/240th. If whatever you are encoding or rendering determines that lets say level 128 should now be level 128.5, this can’t be done, we can only record whole bits, so it’s rounded up or down to the closest whole bit. This rounding leads to a reduction in the number of shades recorded overall and can lead to banding.
DISCLAIMER: The numbers are for example only and may not be entirely correct or accurate, I’m just trying to demonstrate the principle.
Consider these original levels, a nice smooth graduation:

128,    129,   130,   131,   132,   133.

Imagine you are doing some grading and you plugin has calculated that these are the new desired values:

128.5, 129, 129.4, 131.5, 132, 133.5
But we cant record half bits, only whole ones so for 8 bit these get rounded to the nearest bit:

129,   129,   129,   132,   132,   134

You can see how easily banding will occur, our smooth gradation now has some marked steps.
If you are rendering to 10 bit you would get more in between steps.
If you render to 10 bit then when step 128 is determined to be be 128.5 by the plugin this can now actually be encoded as the closest 10 bit equivalent because for every 1 step in 8 bit there are 3.9 steps in 10 bit, so (approximately,translating to 10 bit) level 128 would be 499 and 128.5 would be 501
128.5 = 501

129 = 503

129.4 = 505

131.5 = 513

132 = 515

133.5 = 521

So you can see that we now retain in-between steps which are not present when we render to 8 bit so our gradation remains much smoother.