帧内解码时,在解码端,首先通过当前宏块左边、上边已经解码完成的宏块使用当前宏块的预测模式(预测模式计算过程请参见我的论文《H.264数字视频差错控制技术的研究》,在群FTP“本群原创资料”目录中)得到当前宏块的像素预测值。然后通过对码流进行解码得到当前宏块的像素残差。最后将残差和预测值加在一起就得到重构的像素值。如果当前宏块的左边或者右边的宏块不存在(即当前宏块为图像边界上的宏块),那么其预测值全部为128。
帧间解码时,在解码端,首先对码流进行解码得到当前宏块的参考帧,然后通过当前宏块周围宏块计算运动矢量预测值(具体方法见毕厚杰书99页,标准中也有,但我一时不知道在什么地方了)。然后通过对码流进行解码得到当前宏块的运动矢量残差。将运动矢量残差与运动矢量预测值相加得到实际的运动矢量。然后通过对码流进行解码得到当前宏块的像素残差(如果当前宏块有像素残差的话)。然后通过参考帧与上面计算得到的MV计算出当前宏块的像素预测值。再将像素预测值与像素残差相加就得到当前宏块的重构。
注:上面说的运动矢量预测值的计算过程实际是以4*4块为单位,参考帧也是针对4*4块做的。这里写成宏块主要是理解方便。
本文详细介绍了H.264视频解码的过程,包括帧内解码和帧间解码两个方面。帧内解码通过预测模式获取当前宏块的像素预测值,并结合解码得到的像素残差重构像素值。帧间解码则涉及参考帧的选择、运动矢量预测及残差计算等步骤。
261

被折叠的 条评论
为什么被折叠?



