Image Processing Reference
Weighted bi-directional prediction
Flexible macroblock ordering
Direct mode for B-frames
Multiple reference frames
Sub-pixel motion compensation
Proposed alpha-channel support as per MPEG-4 part 2
H.264 is a quantum leap from earlier codec designs because it offers improved coding
through the introduction of some new compression tools. The core compression algorithm
is modified from a basic discrete cosine transform to support a hierarchical scheme. This
refines the block structuring and reduces the macroblocks to smaller nested components.
By reducing the size of the blocks being considered, we create more opportunities to
locate similar or identical macroblocks within the same image. This is where we make
some great gains in the efficiency of the coding.
Hadamard Transform Tool
The transform algorithm in H.264 is modified to use a smaller (4
4) pixel area rather than
16 macroblocking factors that earlier codecs used. This simplifies the math
in the compression algorithm, allowing the transform to be implemented as a couple of
basic matrix operations followed by a scaling operation. These are computationally quite
easy to do and therefore the computing cost is reduced.
This is actually a subdivision of the 16
8 or 16
16 macroblock technique, so everything that
has been described so far is still valid. It has just been refined to allow more detailed pro-
cessing at the sub-macroblock level.
By arranging the 4
4 matrix as a subdivision of the 16
16 macroblock, obtaining a
4 grid of DC coefficients is very easy. Remember that this was the first item in the DCT
transform output way back with MPEG-1 coding. Applying the transform again provides
a two-level or tree-structured approach to the coding rather than a one-pass approach in
16 DCT transform.
This technique is referred to as the Hadamard transform and is implemented with
simple multiply-by-2 arithmetic in the CPU. Since this degenerates to a left shift of a
binary value, it is computationally very easy to carry out.
The compression efficiency gains overall using this technique when compared with
DCT are quite small but there are some significant advantages that improve quality for the
same bit rate:
The decoder behavior is replicated very exactly.
Accurate decoding allows for much better predictive and scalability coding tools.