05 December 2013

在基于块的视频编码框架中,由于整个视频帧被划分为不同大小的块进行预测、变换和量化,重建图像的块边界处可能会出现不连续性,这就是块效应。 块效应可以通过去块滤波来消除。去块滤波既可以作为编解码之外的后处理,也可以包含在编解码内(即环内滤波)。如果是后者,就需要编码标准来规定其具体操作,否则会导致编解码不一致。 本文介绍最新视频编码标准HEVC里规定的去块滤波。

相比于H.264/AVC,HEVC的去块滤波复杂度有所降低。AVC在滤波时考虑的最小块大小是4x4,而HEVC中是8x8,这就使需要滤的边界大大减少。 对于每个8x8的网格边界,首先判断其是否属于TU或PU的边界,如果否,则无需滤波。如果是,则根据下面的判据决定“边界强度”:

  • 强度2:有至少一个块是帧内块。

  • 强度1:符合以下三种情形之一:

    1. 至少一个块含有非零的残差系数,并且该边界是一个变换边界(也就是TU的边界)。

    2. 两个块的运动矢量的绝对差值大于1个整像素。

    3. 两个块的参考帧不同或者运动矢量(MV)数目不同。

  • 强度0:不符合上述条件的情况

对于亮度(Luma)分量,强度为0的边界不会被滤波;对于色度(Chroma)分量,强度小于2的边界不会被滤波。

对于强度为1或2的亮度边界,以及强度为2的色度边界,再看一个与QP有关的条件是否满足:如果满足则滤波,不满足则不滤。

对于进行滤波的亮度边界,分为普通滤波和强滤波。普通滤波又分为两种情况:一种是只有距边界最近的一个像素被修改,另一种是距边界最近的两个像素被修改。 强滤波则对距边界最近的三个像素进行修改。

对于进行滤波的色度边界,只采用上述普通滤波的第一种情况。

究竟采取哪一种情况,都是根据与QP有关的条件来决定的。这使得滤波操作对不同的块具有适应性。此外,编码器也可以在图像参数集中通过指定一些参数来使滤波适应不同序列的内容特征。

最后还要指出,HEVC的滤波设计得非常适合并行。因为决定滤波操作最多用到边界两侧的四个像素,而实际滤波最多只会修改边界两侧的三个像素,这样对于8x8的快来说,每个边界的滤波都不会互相影响,可以任意地并行。

关于HEVC去块滤波更详细的内容可以参考论文《HEVC Deblocking Filter》