块运动补偿编码器 - 如何处理参考帧中的块噪声?

Mat*_*Mat 6 compression video encoding video-encoding

我不熟悉视频压缩,但目前正在使用H.264压缩残留图像的项目

我的问题更多是关于视频编码器的一般性质.据我所知(正如维基百科所解释的那样),块运动补偿编码器将当前帧划分为一些非重叠块,对于每个块,它在当前块来自的参考帧中进行检查,然后计算出它的差异.期望的块和运动补偿块,然后以某种方式对该残差进行编码.

维基百科指出:"块运动补偿的主要缺点是它会在块边界处引入不连续性(块效应).这些伪像以锐利的水平和垂直边缘的形式出现,很容易被人眼发现并产生振铃效果(用于残差帧的变换编码的傅里叶相关变换中的高频子带中的大系数.

因此,由于参考帧已经包含块伪像(因为它被编码),然后这些块伪像被移位到当前块并且计算残差,然后由边界处的块伪像创建的高频.移位块也将显示为残差中的不连续性.并且不连续性通常对压缩不利.

在压缩残差之前,运动补偿块编码器是否以某种方式处理此块伪像?因为它确切地知道块是如何移位的,所以它知道块边界的位置,并且可以在编码残差之前或期间对它们做些什么,在这个地方移除/忽略不必要的高频.如果在像H.264这样的编解码器中执行这样的事情,有人可以解释编码器如何做到这一点的主要概念,给它一些术语等等吗?编码器如何处理参考帧中的块伪像?

Ale*_*x I 0

@Mat:这是一个很好的问题,很可能是视频编码研究的一个开放领域。简而言之,据我所知,当今的视频编码器没有明确采取任何措施来处理块伪影对运动估计的影响。

在低细节区域中快速运动的情况下,如果存在显着的块伪影,则运动矢量有时可能是块大小的倍数:),或者换句话说,运动估计找到前一帧中的块,并且不是原始图像的细节。这可能是相当罕见的;它需要快速运动、图像中相当缺乏特征的区域以及明显不足的比特率。您也许可以构建合成视频序列来证明这一点。块边界的知识是否有任何帮助尚不清楚。如果块边缘在下一帧的残差中引入高频分量,那么我们必须花费比特来擦除/纠正那些人为引入的分量,无论我们是否知道它们来自块伪影...... ,在这方面花费比特可能是比使用不同的参考区域/运动矢量/块类型更好的决定。

但是,H.264 和 VP8 等现代编解码器具有环内去块滤波器,换句话说,解码帧在用作参考之前会被去块,这会减少块噪声,因此可能会最大限度地减少您所遇到的问题的影响正确识别。