我正在使用 JM 引用软件学习 H.264 AVC。我需要计算要编码的宏 block 与前一帧中与其并置的宏 block 之间的宏 block 差异,在 H.264 的简单实现中,即 JM 旧版本。我读了一些代码,也浏览了在线文档,但一切都是徒劳的。我怎样才能完成我的任务?
最佳答案
H.264/AVC 不计算当前 MB(当前帧中)与前一帧中的共存 MB 的残差。这是一个更复杂的过程。作为一个简单的例子,考虑编码器想要对当前MB(称为“P”帧)进行帧间预测估计。在这种情况下,首先,编码器找到当前MB的最佳运动 vector (MV)。换句话说,当前MB在前一帧中被替换,并且选择最相似的(与当前MB具有最小的SAD(绝对差之和)值)。然后,这两个MB之间的残差和MV值被用来生成H.264编码比特流。您可以下载并找到完整教程here 。 另外,您可以找到 MB 预测函数(在编码器端)并修改您需要的内容:lencod>src> mc_prediction.c
关于JM引用软件中计算宏 block 之间的宏 block 差异(H.264实现),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8619393/