gpt4 book ai didi

compression - H.264 或视频编码器通常如何计算两帧的残差图像?

转载 作者:行者123 更新时间:2023-12-04 18:50:45 35 4
gpt4 key购买 nike

我一直试图了解视频编码如何适用于现代编码器,尤其是 H264。
文档中经常提到残差帧是根据当前 p 帧和最后一个 i 帧之间的差异创建的(假设在预测中不使用以下帧)。我知道使用了 YUV 颜色空间(可能是 YV12),并且一个图像从另一个图像中“减去”,然后形成残差。
我不明白的是这个减法究竟是如何工作的。我不认为这是差异的绝对值,因为那会是模棱两可的。获得这种差异的每像素公式是什么?

最佳答案

减法只是视频编码的一小步;大多数现代视频编码背后的核心原则是 motion estimation ,其次是 motion compensation .基本上,运动估计过程会生成向量,这些向量显示连续帧中宏块之间的偏移。然而,这些向量总是存在一些错误。

所以会发生什么是编码器将输出两个向量偏移量,而“残差”是剩下的。残差不仅仅是两帧之间的差异;它是考虑了运动估计后两帧之间的差异。请参阅维基百科关于补偿的文章中的“运动补偿差异”图像,以清楚地说明这一点 - 请注意,运动补偿差异远小于“哑”残差。

Here's a decent PDF that goes over some of the basics .

其他一些注意事项:

  • 是的,总是使用 YUV,通常大多数编码器都使用 YV12 或其他色度子采样格式
  • 减法必须分别在 Y、U 和 V 帧上发生(将它们视为三个独立的 channel ,所有这些 channel 都需要进行编码——那么减法必须如何发生就变得非常清楚了)。运动估计可能会也可能不会发生在 Y、U 和 V 平面上;有时编码器只对 Y(亮度)值执行此操作,以牺牲质量为代价节省一点 CPU。
  • 关于compression - H.264 或视频编码器通常如何计算两帧的残差图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6590529/

    35 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com