15.01.2013 Views

U. Glaeser

U. Glaeser

U. Glaeser

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

FIGURE 42.26 Sequence of zigzag-coding coefficients of a quantised 8 × 8 block.<br />

Quantization<br />

Quantization is a process that maps the symbols representing the DCT transformed coefficients from<br />

one set of levels to a narrower one in order to minimise the number of bits required to transmit the<br />

symbols. Quantization in block-based coders is a lossy process and thus it has a negative impact on the<br />

perceptual quality of the reconstructed video sequence. The quantization parameter (Qp) is a user-defined<br />

parameter that determines the level of distortion that affects the video quality due to quantization. The<br />

higher the quantization level, Qp, the coarser the quantization process. Quantization uses different techniques<br />

based on the coding mode employed (INTRA or INTER), the position of the coefficient in a video<br />

block (DC or AC coefficients), and the coding algorithm under consideration.<br />

Raster Scan Coding<br />

It is also known as zigzag pattern coding. The aim of zigzag coding the 8 × 8 matrix of quantised DCT<br />

coefficients is to convert the two-dimensional array into a stream of indices with a high occurrence of<br />

successive 0 coefficients. The long runs of zeros will then be efficiently coded as will be shown in the<br />

next subsection. The order of a zigzag pattern encoder is depicted in Fig. 42.26.<br />

Run-Length Coding<br />

The run-length encoder takes the one-dimensional array of quantised coefficients as input and generates<br />

coded runs as output. Instead of coding each coefficient separately, the run-length coder searches for runs<br />

of similar consecutive coefficients (normally zeros after the DCT and quantisation stages) and codes the<br />

length of the run and the preceding nonzero level. A 1-bit flag (LAST) is sent after each run to indicate<br />

whether or not the corresponding run is the last one in the current block. Run-lengths and levels are then<br />

fed to the Huffman coder to be assigned variable length codewords before transmission on the video channel.<br />

Huffman Coding<br />

Huffman coding, traditionally referred to as entropy coding, is a variable length coding algorithm that<br />

assigns codes to source-generated bit patterns based on their frequency of occurrence within the generated<br />

bit stream. The higher the likelihood of a symbol, the smaller the length of the codeword assigned to it<br />

and vice versa. Therefore, Entropy coding results in the optimum average codeword size for a given set<br />

of runs and levels.<br />

Motion Estimation and Prediction<br />

For each MB in a currently processed video frame, a sum of absolute differences (SAD) is calculated<br />

between its pixels and those of each 16 × 16 matrix of pixels that lie inside a window (in the previous<br />

frame) of a user-defined size called the search window. The 16 × 16 matrix, which results in the least<br />

© 2002 by CRC Press LLC

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!