Image Processing Reference
In-Depth Information
I don't know if this frightens you but it does me. Whenever I see sigma signs and
functions of two variables like this I have to sit down and think very hard about what is
going on. The u and v values represent the coordinates of the output array of frequency
components. The x and y values are the input array of pixel values.
This formula is designed to operate on blocks of 8
16 luma chan-
nel block is divided into 4 rectangles that are coded individually. The chroma channels in
the macroblocks are sampled at a lower resolution and may require 1, 2, or 4 such 8
8 pixels, so a 16
blocks to code them.
The first part of the formula (prior to the sigma signs) scales the result but applies a
correction factor along the topmost row of pixels (when u = 0) and down the left row of
pixels (when v = 0).
The two sigma signs indicate that a pair of nested loops computes a formula to the
right of the sigma signs for each discrete value and then adds them together.
The Pseudo-Code Approach
In computational terms, the DCT algorithm could be implemented with a pseudo-code
structure like this:
For (u = 0 to 7)
For (v =0 to 7)
A = 0
For (x = 0 to 7)
a = 0
For (Y = 0 to 7)
{a = a + result of evaluating cosine formula
multiply a by scaling factor
assign a to appropriate cell (u, v) in output pixel array
Every pixel in the x,y array contributes a value to every pixel in the output array. The DCT
algorithm transforms pixels into frequencies using a fast Fourier transform (FFT) technique.
The Frequency Domain
The output array contains the average color of the macroblock at the top left corner. As you
move through the pixel array toward the bottom right, the frequency components are based
on ever-higher harmonics of the fundamental in both the horizontal and vertical axes. As the
frequencies increase they have smaller magnitude. Fine detail is recorded at the lower right.
Figure 10-12 shows the frequency coefficients just on one axis:
Search WWH ::

Custom Search