Indie Film Live

Sunday, November 20, 2005

Comparing 10-bit to 8-bit

One of the comments a few posts ago involved comparing the difference between a 10-bit Cineon and an 8-bit TGA files both produced from a CineForm 10-bit master. The problem found is that no difference showed. Of course it will be alarming that no difference shows (where is the value in 10-bit), but it turns out that the test is flawed, not the 10-bit data. This took me a while to determine what is happening and to come up with an alternative test. The flaw is these 16-bit compositing applications are producing 8-bit difference mattes (and only using the top 8-bits to create them.) If you perform the white count test that is proposed over at codecs.onerivermedia.com (an excellent site), however the test doesn't work correctly for deeper than 8-bit data. On the One River Media site the difference is performed in 16-bit After Effects using these few steps :
a) Place your source on the bottom track (in this case your 10-bit data)
b) Place your new clip (in this case the TGA sequence) on the second track.
c) Place a Menu bar > Effects > Keying > Difference Matte on the second track
d) Set your Difference Matte options to the following:
View: Matte Only
Difference Layer: (Your 10-bit source image layer)
Matching Tolerance: 0%
Matching Softness: 0%
Blur Before Difference: 0%
This results in a completely black image, even though we know a 8-bit TGA doesn't have as much information as a 10-bit Cineon or CineForm AVI. Note: I believe Combustion is doing the same 8-bit processing on the difference matte -- as Atomic VFX found in their own testing.

The simpliest way to see the difference and advantage of an 10-bit image over an 8-bit image is to boost the contrast 4-5X on an image with gradients, the 8-bit data will show banding and contouring in the gradients that is very annoying. Yet I wanted a test similar to the white count test to the difference between any 10-bit vs 8-bit images (not just the areas in a gradient.)

The test I come up with using the 16-bit mode of After Effect is as follows:
1) Start with your 10-bit source, either a CineForm AVI file or DPX/Cineon sequence.
2) Export that as a 8-bit Targa (TGA) sequence (really only needs to be a few frames worth.)
3) Import the TGA sequence place it in a composite above the 10-bit source.
4) Place a "Levels" filter on both tracks, set them with these parameters.
Input Black: 0.0
Input White: 32768.0
Gamma: 1.0
Output Black: 0.0
Output White: 1024.0 (to normalize to 10-bit precision)
5) On the TGA track set the Blend Mode to "Difference". The composite will now appear black, however moving the mouse over the image to reveal RGB differences between 0-3.
6) Add an Adjustment Layer.
7) Place a "Levels" filter on the adjustment layer a set it with these parameters.
Input Black: 0.0
Input White: 1.0 (This will make all differences visible)
Gamma: 1.0
Output Black: 0.0
Output White: 32768.0
If you want to perform a white count test, simply nest this composite with a clip of solid black and perform the first test listed above (the One River Media test.) You will discover only approximately 2% on the pixels are unchanged by the 10->8bit truncation, mostly a white image will show.

P.S. I'm planning to create a page to easily explain the advantages of 10-bit for color correction, even using 8-bit sources, as this tests above doesn't explain why the difference between 10-bit and 8-bit matters in post-production.

David Newman
CTO, CineForm

Wednesday, November 09, 2005

Auto pulldown of 60p to 24p now working.

Over the last week we have been working to add pulldown detection from the analog output from the JVC GY-HD100. As the camera's output is analog (digitized for HD-SDI) the pulldown must function without the guides of user-bits or other flags that indicate a repeat vs an active frame (like you get with VariCam HD-SDI data.) This proved a little tricky as we also need to detect pulldown from frames that aren't moving, like video data that starts from a stationary scene (moving scenes are easy -- we need this to be correct in all cases.) The detection routines basically used the difference between the camera's CCD noise (which all camera's have) and the smaller sampling noise from the A to D converters; the noise characteristic is different on the repeated frames. I was able to detect and remove pulldown with the camera pointed at a blank white surface, Jeff at Wafian successfully repeated this test with the lens cap on -- so we are ready for real world data. I hope this can be implemented in the next Prospect HD software release and in the upcoming Wafian HR-1.