/* check if macroblock can be skipped */
if (i!=0 && i!=mb_width-1 && !cbp)
{
/* no DCT coefficients and neither first nor last macroblock of slice */
if (pict_type==P_TYPE && !(mb_type&MB_FORWARD))
{
/* P picture, no motion vectors -> skip */
/* reset predictors */
上面的代码片说明了MPEG-2的编码器的宏块类型为skipped macroblock type的条件是
1、无DCT系数,同时不是slice的第一个宏块,而且也不是slice的最后一个宏块
a、如果是P帧的编码而且没有运动向量
b、(B-frame)conditions forskipping in B frame pictures:
must be frame predicted
must be the same prediction type (forward/backward/interp.) as previous macroblock
relevant vectors (forward/backward/both) have to be the same as in previous macroblock
那么该宏块为skipped宏块。跳转宏块什么也没有是一个空的宏块,用上一个宏块的地址增量大于1表示。