JM引用软件中计算宏 block 之间的宏 block 差异(H.264实现)

标签 c implementation h.264 video-encoding

我正在使用 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/

相关文章:

c - 为什么给定的代码会引发堆损坏错误?

c - 仅当参数不是常量时,math.h 中的 sqrt 才会导致链接器错误 "undefined reference to sqrt"

algorithm - bentley ottman算法扫线数据结构实现

android - 如何在android中实现不自定义的SD卡库?

algorithm - 为期权定价实现快速傅里叶变换

c - 为什么redis sds将buf部分暴露给上层而不是整个sdshdr

c++ - 如何防止 Visual Studio 2008 C 编译器在发生某些错误时停止?

video - FFmpeg HLS 分段开始时间计算错误

html5-video - 使用媒体源扩展逐帧解码

gstreamer - 如何定量测量源和显示器之间的 gstreamer H264 延迟?