Wednesday, April 7, 2010

SKIP macroblocks

Praveen asked the following question:
"I have a question regarding 'SKIP' block coding. When is a block decided to be "SKIPPED". What are the criteria and how is the SKIP macroblock coded?"

A SKIP macroblock is a macroblock (16x16 displayed pixels) for which no information is sent to the decoder - i.e. no coded coefficients, no header and no prediction information. In H.264, an encoder can choose SKIP mode for a macroblock in a P- or B-slice. The decoder estimates a motion vector for the skipped macroblock from neighbouring coded macroblocks and uses this to calculate a motion compensated prediction for the skipped MB. Since there is no residual, the motion compensated prediction is directly inserted into the decoded frame or field.

It's up to the encoder to choose whether to code or skip a MB. Typically the encoder might choose SKIP when the rate-distortion cost of SKIP mode is lower than any coded mode, i.e. when a weighted combination of bitrate and distortion (the quality loss of the decoded MB) is lower. The encoder may also "guess" that SKIP mode is suitable using other criteria such as local scene statistics, in order to save computation.

For a more detailed discussion, see e.g. or our other papers on mode selection.

- Iain

No comments: