对任意形状的视频对象,首先进行预测与编码模式的选择。编码模式有三种: (l)帧内编码。即不进行帧间预测,称为I帧(IntraFrame)。
(2)向前预测。即利用前一帧进行预测,称为P帧(PredietedFrame)。
(3)双向预测。即利用前一帧和后一帧进行预测,称为B帧(Bidirectional PredietedFra们ne)。
由于I帧没有去除时间冗余,压缩效率不高。但是为了满足随机访问的要求,每隔若干帧一定要有一个I帧。另外,当预测的效果很差时,比如发生场景转换时,也需要采用帧内模式编码。P帧利用它前面的一个I帧或者P帧进行预测,由于参考的帧数少,而且相隔较远(一般是前面的第三帧或者第四帧,中间隔着两个或三个B帧),因此压缩效率也不是很高,在保持与I帧的质量差不多的情况下,压缩比一般能达到l帧的2.5倍至3倍。B帧利用它前面和后面的各一个I帧或P帧进行预测,由于参考帧多并且时间间隔短,因此压缩效率最高。在保持同等质量的情况下,一般能够达到P帧压缩比的2倍至3倍。
如果决定采用帧内编码,则接下来要进行纹理编码和形状编码。如果采用向前预测或者双向预测,则接下来需要进行运动矢量编码,纹理误差编码和帧间模式的形状编码。当然,基于宏块的方法总是不需要形状编码。
对运动矢量的编码比较简单,可以直接用嫡编码方法对每一个运动矢量编码。也可以把一帧当中的宏块的运动矢量看成一个取复数值的图像。
图2一1MPEG一4视频编码框图