MPEG-2 跳转宏块 skipped macroblock 的条件


      /* 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 for skipping 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表示。

 

 

 

 

 

你可能感兴趣的:(MPEG-2 跳转宏块 skipped macroblock 的条件)