clo*_*ven 5 compression video-encoding h.264
我一直试图理解视频编码如何适用于现代编码器,特别是H264.在文档中经常提到残差帧是根据当前p帧和最后一个i帧之间的差异创建的(假设在预测中未使用以下帧).我知道使用YUV颜色空间(可能是YV12),并且一个图像从另一个图像"减去"然后形成残差.我不明白的是这种减法究竟是如何运作的.我不认为这是差异的绝对值,因为这将是模棱两可的.获得这种差异的每像素公式是什么?
减法只是视频编码中的一小步 ; 大多数现代视频编码背后的核心原理是运动估计,然后是运动补偿.基本上,运动估计的过程生成向量,该向量示出连续帧中的宏块之间的偏移.但是,这些向量中总是存在一些错误.
那么会发生什么呢?编码器会输出两个矢量偏移量,而"残差"就是剩下的.将残余的不只是两个帧之间的差值; 它是考虑运动估计后两帧之间的差异.请参阅维基百科关于补偿的文章中的"运动补偿差异"图像,以清楚地说明这一点 - 请注意,运动补偿差异远小于"哑"残差.
其他几点说明: