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

时间:2012-05-16 05:32:39

标签: video encoding compression video-encoding

我对视频压缩没有任何影响,但目前正在使用H.264压缩残像的项目

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

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

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

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

1 个答案:

答案 0 :(得分:0)

@Mat:这是一个很好的问题,很可能是视频编码研究的开放领域。简短的回答是,据我所知,今天的视频编码器没有明确地做任何事情来处理块伪像对运动估计的影响。

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

然而,诸如H.264和VP8的现代编解码器具有in-loop deblocking filter,换句话说,解码帧在被用作参考之前被解块,这减少了块噪声,因此可能最小化问题的影响你已经正确识别了。