Abstract background art

Leaving things out


This is based on a forum post at cinematography.com where the more recent wavelet technology was being touted as superior to older DCT-based algorithms.

First off, what's the difference? Well, very simply and incompletely:

Both systems rely on creating a waveform (if you like) of image brightness, usually by taking one of the red, green or blue channels of a series of adjacent pixels. Because of mathematical performance constraints, this is often a series of adjacent pixels that forms a square block 8 by 8 or 16 by 16 pixels, to prevent the numbers getting too enormous, which is read out in a zigzag pattern so that each pixel you read was right next to the previous one (even if they're not all in a straight line). Stick all the brightness values of those pixels side by side, and you have a wavy line. Both wavelet and DCT represnt this waveform as as an added-together pile of various mathematically-generated curves (properly, functions). The number and type of different curves you use, and the precision with which you specify their amplitude, controls the precision with which the original data can be recovered.

DCT uses sinusoidal curves, like these on Wikipedia. Wavelets (such as this well-known type on Wikipedia) can use all manner of things, but the critical difference is that the function used in wavelets eventually returns smoothly to zero, whereas a sine wave has no beginning or end, it just keeps oscillating. This means that you don't easily see the edges of blocks with wavelets, because they don't get cut off while there's still energy in them, but for complicated reasons, this makes it very computationally intensive to do a wavelet pass over a full frame. Macroblocks are still a necessary evil with wavelet, creating noticeable zones of artifacting.

Because of all this, wavelets are management's dream - the artifacts produced by heavy wavelet compression are usually less visually obvious than those produced by DCT compression (see: JPEG, miniDV, MPEG, etc). While that is usually a good thing, it does mean that it's very difficult to qualitatively evaluate the output. Wavelet codecs are notorious for achieving a fantastically high signal-to-noise ratio while simultaneously looking like complete junk. While wavelets do generally produce visually unobtrusive artifacts (usually blurring), when they do fail, they fail gigantically and spectacularly in a way that is impossible to fix. The artifact in these circumstances usually looks like a chunk of the image has been scaled down and then back up again using a very naive algorithm. DCT codecs may produce blocking, but the location of those block boundaries is known and the problem is effectively addressed in most implementations of things such as h.264.

There have been a spate, recently, of new camera technologies (where Red is a particularly extreme example) which use the word "wavelet" as an answer to any query over the very large amounts of compression they use. While wavelets may look good, that doesn't necessarily mean they are good, if you're going to be making more changes to the data (such as chromakey work or colour grading) at a later date. They are not a panacea.


Go back button Back Go home Home Contact Go home