《H.264和MPEG-4视频压缩》读书笔记

来源:百度文库 编辑:神马文学网 时间:2024/04/25 14:26:24
编解码器(CODEC)的三个功能单元:时域模型、空域模型和熵编码器。
时域模型的作用是消除连续帧之间的时域冗余。可以估计每个像素点在相邻帧之间的轨迹,从而建立像素轨迹场,又称为光流(opticalflow or optic flow)
现在普遍使用的运动补偿方法是将当前帧分成许多长方形的块,对每个图像块进行运动补偿。搜索最佳匹配块的过程称为运动估计。
在很多重要的食品编码标准中,(比如MPEG4和H.264),宏块(图像帧中16*16的像素区域)是运动补偿预测的基本运算单位。使匹配准则达到最小值的16*16像素区域即为最佳匹配。
当前宏块减去最佳匹配宏块得到残差宏块(包括亮度和色度),描述匹配块位置的运动矢量和残差宏块一起被编码和传输。在编码器内部,残差宏块同时被编码和解码,解码后的残差宏块域匹配宏块相加重建参考宏块,用于之后的运动补偿预测,这种方法保证了编码器和解码器使用相同的运动补偿参考帧。
如果参考帧和当前帧之间的变化较大,编码器将对当前宏块直接编码,而不再使用运动补偿。所以,编码器对每个宏块都可以选择帧内模式(不使用运动补偿)或者帧间模式(使用运动补偿)两种方式。当物体运动距离是非整数的像素点距离时,可以对参考帧进行插值,使用半像素点位置来搜索以获得更加精确的匹配宏块。
运动补偿的块大小:运动补偿的分块越小,也造成了搜索算法复杂度的上升(更多的分块需要比较),所需传输的运动矢量数目更多。传输这些矢量带来的额外比特消耗可能会高于降低残差图像能量而节省的比特数,造成得不偿失的情况。一种解决的方法是根据图像特性调整分块大小,例如对平缓均匀的图像区域采用大尺寸分块,而对细节多,运动复杂的图像区域采用小尺寸分块。H.264采用子使用的分块尺寸来进行运动补偿(树状结构的运动补偿)
SAE:对所有像素点的差值的绝对值取和。
编码的时候,必须同时兼顾压缩效率和算法复杂度两个指标。(这是对估计块的大小得出来的结论)
如果采用任意形状的区域进行匹配(基于区域的运动补偿),运动补偿可以达到更好的效果。但是要实现这种技术,还存在很多的困难,其中包括对连续边界的准确识别、边界分割、对不同对象轮廓的编码等。