Quote:
Originally Posted by Tim Brown
Hmmmm...... Mikael quick question. Philip mentioned seeing footage on CNN that "broke" when trying to adapt to light changes caused by flash bulbs. I noticed a large area of white in your jpeg... perhaps the shimmer off the water had the same effect as the flash bulbs. Could someone shoot the same scenario with an ND grad to prevent the water from clipping and see if you get the same macro-blocking?
|
It's not the brightness level that causes the problem with MPEG-2 and flash bulbs.
What happens is that MPEG-2 gets its efficiency from repeating duplicate information between frames. It only encodes the changes between frames. It doesn't have nearly enough bandwidth to re-encode all the frames, so it relies on the relatively-unchanged nature from frame to frame in order to get its efficiency and fit all the data within its limited bandwidth.
Usually this works quite well; think of an interview setting: the background doesn't change at all, so it gets carried over frame to frame unmodified, and usually only the person's mouth and maybe their hands are changing, so the available bandwidth is allocated to compress those changes.
But when a flashbulb goes off? EVERY PIXEL changes! HDV hates that. Broadcast HD hates it even more. When every pixel changes, there's no way that the MPEG-2 bandwidth can cope and keep up with all the changes, so you get macroblocking and (in worst-case scenarios) lego-blocking. And it doesn't just affect the one frame where the flashbulb went off, either -- it affects every frame in the group. HDV allocates its bandwidth across a group of six (JVC) or 15 (Canon/Sony) frames, so all the available bandwidth gets spread across those six or 15 frames. If one frame contains a flash where all the pixels change, that one frame will require a lot of the available bandwidth from the group, which means all the other frames in the group will be robbed of the bandwidth that they would otherwise need. So all 15 (or 6) frames get degraded.
So a worst-case scenario for HDV would be a strobelight. Especially a strobelight that flashes more than once per group of frames, but that doesn't complete its on/off cycle within one frame. Say it ramps up to peak brightness on one frame, and dies down to dark over the course of two frames -- it would mean complete pixel changes on every pixel over the course of three frames. That will lead to massive artifacting.
Rippling water is kind of the same thing -- every pixel is changing in the body of water. So HDV and MPEG-2 have a very tough time coping with it. But usually it's not so bad as the strobelight comparison, because in a rippling-water shot there'll often be skyline and shoreline that don't change, so only the portion of the frame with the rippling water will be overwhelming the codec, and the rest of the frame will be relatively static (which compresses very efficiently). So the codec has a better chance of dealing with it. But the higher the percentage of the frame that consists of rippling water, the worse off the codec will be.
Also, MPEG-2 employs motion prediction -- if something is relatively unchanged, but in a different part of the frame, MPEG-2 can usually "find" that and copy it over (to grossly oversimplify the explanation!) So for a panning shot, things might be mainly unchanged but just moved; MPEG-2 is designed to cope with that. But there's no way MPEG-2 can predict rippling water, nor can it predict the effect a strobelight has, or smoke or fire or other random/unpredictable things. So those elements will seriously challenge MPEG-2/HDV.