我一直在努力了解视频编码如何适用于现代编码器,特别是H264。 在文档中经常提到残差帧是根据当前p帧和最后一个i帧之间的差异创建的(假设在预测中未使用以下帧)。我知道使用YUV颜色空间(可能是YV12),并且一个图像从另一个图像“减去”然后形成残差。 我不明白的是这种减法究竟是如何运作的。我不认为这是差异的绝对值,因为这将是模棱两可的。获得这种差异的每像素公式是什么?
答案 0 :(得分:6)
减法只是视频编码中的一小步;大多数现代视频编码背后的核心原则是motion estimation,其次是motion compensation。基本上,运动估计的过程生成向量,该向量示出连续帧中的宏块之间的偏移。但是,这些向量中总是存在一些错误。
所以会发生什么是编码器将输出两个矢量偏移,而“残差”就是剩下的。残差不仅仅是两帧之间的差异;它是考虑运动估计后的两个帧之间的差异。请参阅维基百科关于补偿的文章中的“运动补偿差异”图像,以清楚地说明这一点 - 请注意,运动补偿差异远小于“哑”残差。
Here's a decent PDF that goes over some of the basics
其他几点说明: