Compression H.264或视频编码器通常如何计算两帧的剩余图像?

Compression H.264或视频编码器通常如何计算两帧的剩余图像?,compression,h.264,video-encoding,Compression,H.264,Video Encoding,我一直在试图了解现代编码器的视频编码工作原理,特别是H264。 文档中经常提到,剩余帧是根据当前p帧和最后一个i帧之间的差异创建的(假设在预测中不使用以下帧)。我知道使用了YUV颜色空间(可能是YV12),将一个图像与另一个图像进行“减影”,然后形成残差。 我不明白的是这个减法到底是怎么工作的。我不认为这是一个绝对值的差异,因为这将是含糊不清的。获得这种差异的每像素公式是什么?减法只是视频编码中的一小步;大多数现代视频编码背后的核心原则是。基本上,运动估计过程生成显示连续帧中宏块之间偏移的向量。

我一直在试图了解现代编码器的视频编码工作原理,特别是H264。 文档中经常提到,剩余帧是根据当前p帧和最后一个i帧之间的差异创建的(假设在预测中不使用以下帧)。我知道使用了YUV颜色空间(可能是YV12),将一个图像与另一个图像进行“减影”,然后形成残差。 我不明白的是这个减法到底是怎么工作的。我不认为这是一个绝对值的差异,因为这将是含糊不清的。获得这种差异的每像素公式是什么?

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

因此,编码器将输出两个矢量偏移量,剩下的就是“残差”。残差不仅仅是两帧之间的差;这是考虑运动估计后两帧之间的差异。请参阅wikipedia关于补偿的文章中的“运动补偿差”图像,以获得对此的清晰说明——请注意,运动补偿差明显小于“哑”残差

其他一些注意事项:

  • 是的,总是使用YUV,通常大多数编码器采用YV12或其他色度二次采样格式
  • 减法必须分别在Y、U和V帧上进行(将它们视为三个单独的通道,所有通道都需要编码——然后减法必须如何进行就变得非常清楚了)。运动估计可能在Y、U和V平面上发生,也可能不发生;有时编码器只对Y(亮度)值进行编码,以节省一点CPU,而牺牲质量

是的,我知道会发生运动补偿,但我不知道运动补偿帧是如何从I帧中减去的。如果我理解正确,这意味着它是以以下方式完成的:Yresidual=Yi-Yi-1,Cbresidual=Cbi-Cbi-1,Crresidual=Cri-Cri-1。是吗?PDF已丢失404。PDF的新链接:PDF已丢失。PDF链接每年都在更改,尽管父文件夹没有更改,请在此处获取PDF