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 (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.

Tuesday, November 01, 2005

Indie Film Live

Hi guys,

Here is an update with some questions. Today we shot a replica of an interior car shot from a recent job which utilized 2k dpx files canned from telecine. The shot framed the driver of a car with a green screen behind. Both windows were open (we should have shot one with windows closed as wel). The object of the test was to determine the effectiveness of the keying ability of both the codec and the HD100e.

three files were produced.

1. footage shot to tape using mpeg2 hdv @ 30p.
2. footage shot to disk uncompressed @ 60p
3. footage shot to cineform large format @ 60p.

We then took the footage through after fx into cine (dpx) files which were keyed in combustion. We havn't tested the mpeg2 file yet but the other two keyed with different degrees of success. The uncompressed was perfect while the cineform required more work but although it wasn't AS clean as the uncompressed (8bit? see later on) file the result looked great. The biggest probelm was the jagged edgeing we got which we had to correct for using matte blurring etc. . I expected some artifacts but wanted to know what you thought of the result and to see if there is any way to improve on this.

There was also another interesting result. When we converted to cin files we also exported 8bit tga's for comparisons. Now the uncompressed avi was captured using widows media capture and was fixed at 24bit so that is one thing we want to resolve for proper testing. But the downconverted cineform (from 10bit cineform to 8bit tga) exhibited what appeared to be identical offspring. ie no difference between original 10bit cineform and exported 8bit clone. We difference matted the two and found no difference at all. Perhaps we are missing something but we are very interested in understanding the best process through all of this to make sure we are getting the best possible result. We are using combustion in our work flow for various reasons but mostly because Glen can compare benchmarks against previous work in that software, which is helpful.

The camera, convertor and process was very impressive over all. Everything worked BETTER than expected. We got very excited about it. There was even a litle dancing. We also shot with detail off - which is worth noting after our last discussion on the stretchies. No stretchies noticed yet on this clip. We also converted DPX files used on a feature film we just finished and we got the same jagged lines on the key. Aside from the jagged edge the same key (copied and pasted the key operator) worked - again bluring was used to enhance. Not ideal but definately workable in many cases. I will upload pictures of both dpx and hd100 footage tommorrow for your perusal. Let us know if you have any thoughts on this.

Simon Hansen

Atomic VFX