Monday, July 06, 2009

Loop Filter in Video Compression

Some visible artifacts may occur in video compression, such as ‘blocking’ and ‘ringing’.

Blocking: the frame is divided into 8x8 blocks. Each block is reconstructed with some small errors, and the errors at the edges of a block often contrast with the errors at the edges of neighboring blocks, making block boundaries visible

Ringing: when encoder discards too much information in quantizing the high frequency DCT coefficients. Ringing artifacts appear as distortions around the edges of image features.

Sometimes a lowpass filter is applied after decoder to reduce artifacts (called Loop Filter, or Loop Filtering to de-blocking, de-ringing, or reconstruction filter). The filter takes a lot of processor cycles, sometimes more than decoder itself. So the loop filter is not applied in many applications.

The filter has two benefits: 1. block edges are smoothed. 2. the filtered block is used for motion compensated prediction of further frames, resulting in a smaller residual after prediction. The choice of filtering outcome depends on the boundary strength and the gradient of image data across the boundary. The image data is filtered only if the gradient reaches the threshold. [updated 11/18/09, some from H.264 white paper]

The following basic Encoder, Decoder blocks show the loop filter, which is identical in both encoding and decoding.loopfilter_encoder loopfilter_decoder

No comments:

Post a Comment