计算JM参考软件中宏块之间的宏块差异(H.264实现)

时间:2011-12-23 18:24:48

标签: c implementation h.264 video-encoding

我正在使用JM参考软件研究H.264 AVC。我需要计算要编码的宏块与前一帧中并置的宏块之间的宏块差异,在H.264的初始实现中,即JM旧版本。我稍微阅读了一些代码并通过了在线文档,但都是徒劳的。我怎样才能完成任务?

1 个答案:

答案 0 :(得分:0)

H.264 / AVC 计算当前MB(在当前帧中)与前一帧中位于同一位置的残差。这是一个更复杂的过程。作为简要示例,考虑编码器想要对当前MB(其被称为“P”帧)进行帧间预测估计。在这种情况下,首先,编码器找到当前MB的最佳运动矢量(MV)。换句话说,当前MB在前一帧中移位,并且选择最相似的一个(具有最小值SAD(绝对差的和)与当前MB)。然后,使用这两个MB之间的残差和MV值来生成H.264编码的比特流。您可以下载并查找完整的教程here。 此外,您可以找到MB预测功能(在编码器端)并在此处修改您需要的内容:lencod> src> mc_prediction.c