三MPEG-2编码
3.1 I帧编码
MPEG-2编码宏块大小为16x16,分解4个8x8Y数据块和2个CrCb数据块。
I帧编码后的重构见下节。
3.2 B,P帧编码
B,P帧以16x16宏块大小为单位进行ME,其后操作和I帧相同;对于所有帧都要在量化进行重构,重构后的重构帧作为其后编码帧的参考帧。
3.3 P帧MB的运动估计
P帧进行前向预测,参考其编码的I帧或P帧。在对P帧中的MB进行运动估计时,一般会先参考该宏块左方、上方和右上方的宏块的运动矢量,找到最佳的匹配块位置。P帧中MB的最终编码类型,还需要比较帧内编码(Intra)和帧间(Inter)编码的MSE,来确定最终的编码类型。因此在P帧中,一般会有帧内和帧间两种编码类型。
同时,在MPEG-2中,增加了1/2像素搜索,这样增加了匹配的准确度。
3.4 B帧的MB的运动估计
B帧的宏块可能存在的编码类型有:I类型,P类型,B类型和Bi类型。
具体的ME过程如下:
由上图我们可以看到,在进行B块的运动估计时,需要对forward,Back,Bidir,itnra四种方式进行比较,得到最佳的SAD作为最终的编码类型。
3.5 Skip MB和I_PCM MB
在MPEG-2编码时,有一些MB不需要进行编码,这样的MB称为Skip MB。Skip MB需要满足的基本条件包括:
1 运动矢量为0
2 CBP为0
有些编码器也其它的条件限制,比如在FFMPEG中,Skip MB不可以是非右边和下边的边界点。
I_PCM,直接传输图像像素值,不经过任何变换。应用场合包括:
1. 图像本身不规则,编码比不编码使用的比特数还多。
更精确地传输图像