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

C 在JM参考软件中计算宏块之间的宏块差异(H.264实现),c,implementation,h.264,video-encoding,C,Implementation,H.264,Video Encoding,我正在使用JM参考软件学习H.264 AVC。我需要计算将要编码的宏块与前一帧中与其并置的宏块之间的宏块差异,在H.264的原始实现中,即JM。我读了一些代码,也浏览了在线文档,但都是徒劳的。如何完成任务?H.264/AVC不计算当前MB(在当前帧中)与前一帧中位于同一位置的MB的剩余量。这是一个更复杂的过程。作为一个简短的例子,考虑编码器希望对当前MB(称为“P”帧)进行帧间预测估计。在这种情况下,编码器首先为当前MB找到最佳运动矢量(MV)。换句话说,当前MB在前一帧中被移位,并且选择最相似

我正在使用JM参考软件学习H.264 AVC。我需要计算将要编码的宏块与前一帧中与其并置的宏块之间的宏块差异,在H.264的原始实现中,即JM。我读了一些代码,也浏览了在线文档,但都是徒劳的。如何完成任务?

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

您能更具体地说明您的问题是什么吗?您需要一些算法或代码片段方面的帮助吗?还是你在寻求概念上的清晰?如果你能告诉我你指的是代码的哪一部分,我会帮助你。实际上我想知道一个宏块根据宏块差异编码的模式(这是正在编码的宏块与前一帧中与当前帧位于同一位置的宏块之间的绝对差之和或平方误差之和).我认为JM没有记录宏块差异,因此我需要修改可用的JM参考源。因此我想问一下如何访问宏块中的数据(图像的像素数据)在JM参考软件源代码中,访问之前帧中宏块中的数据应该做些什么。你能给我一个链接,我可以在那里下载代码吗?我想你应该在应用运动补偿之后/期间以及在对每个宏块应用DCT之前查看该区域。这是肯定的,因为标准要求这是什么。