showeeks / hm

Other
0 stars 0 forks source link

环路滤波器 - 去块滤波器 #6

Open showeeks opened 3 years ago

showeeks commented 3 years ago

HEVC标准规定了两个环路滤波器,一个去块滤波器和一个采样自适应偏移(SAO)。在逆量化之后和将图像保存到解码图像缓冲器之前,环路内滤波器被应用于编码和解码环路。首先应用去块滤波器。它衰减预测和变换块边界的不连续性。第二个环内滤波器SAO应用于去块滤波器的输出,并通过衰减振铃伪像和图像某些区域的采样强度变化来进一步提高解码图像的质量。环路滤波器最重要的优点是改善了重建图像的主观质量。此外,在解码环路中使用滤波器也提高了参考图像的质量,因此也提高了压缩效率。

环路滤波器是HEVC视频编码标准的重要组成部分。从名称可以看出,在逆量化之后,但在将图像保存到解码图像缓冲器之前,环路内滤波器应用于编码和解码环路。HEVC标准规定了两个环路滤波器,一个是先应用的去块滤波器,另一个是应用于[40]去块滤波器输出的采样自适应偏移(SAO)。去块滤波器衰减预测和变换块边界处的不连续性[36,37]。SAO通过减少振铃伪像和重建图像区域的采样强度变化,进一步提高了解码图像的质量。由于去块效应和消隐效应会衰减不同的伪像,因此两者一起使用时,它们的优势是相加的。HEVC编码器可以独立开启和关闭每个环路滤波器。

现代视频编码标准试图从视频的编码表示中去除尽可能多的冗余。冗余的来源之一是时间冗余,即视频序列中后续图像之间的相似性。这种类型的冗余通过运动预测被有效地去除。另一种类型的冗余是空间冗余,通过相邻样本的帧内预测和空间变换来消除。在HEVC,运动预测和变换编码都是基于块的。运动预测块的大小从8x4和4x8到64x64亮度样本不等,而块变换和帧内预测块的大小从4x4到32x32样本不等。

这些块相对独立于相邻块进行编码,并以某种程度的相似性近似原始信号。由于编码块仅近似原始信号,近似之间的差异可能导致预测和变换块边界处的不连续性[27,36,37]。这些不连续性被去块滤波器衰减。

与主要来自变换系数量化误差的H.264/AVC相比,HEVC使用的较大变换也会引入更多的振铃伪像[17]。除此之外,HEVC使用8或7抽头分数亮度采样插值和4抽头分数色度采样插值,而H.264/AVC分别使用6抽头和2抽头进行亮度和色度插值。更多数量的插值抽头也会导致更多的振铃伪像。这些伪像由一个新的滤波器校正:样本自适应偏移(SAO)。如图7.1所示,当去块滤波器打开时,SAO被应用于去块滤波器的输出,否则,它被应用于重建的图像

showeeks commented 3 years ago

将环路滤波器作为标准的一部分有几个原因。原则上,环路滤波器也可以用作后置滤波器。使用后置滤波器的一个优点是解码器制造商可以创建更适合他们需求的后置滤波器。但是,如果滤波器是标准的一部分,则编码器可以控制滤波器,并可以通过指示解码器启用滤波器和指定滤波器参数来确保必要的质量水平。此外,由于环内滤波器提高了参考图像的质量,它们也提高了压缩效率。后置滤波器还需要额外的缓冲器用于滤波后的图像,而环路滤波器的输出可以保存在解码后的图像缓冲器(DPB)中。与去块后滤波器相比,使用去块滤波器作为环路内滤波器还有另一个具体优势。如果去块被应用为后滤波器,则可以通过块内部的运动估计来复制块伪像,这可以使得伪像检测更加困难,并且与只需要应用于块边界的环内滤波相比,增加了去块复杂度[27,36,37]。

众所周知,H.264/AVC中的去块环内滤波器构成了解码器复杂性的重要部分[27]。因此,当在HEVC设计环路滤波器时,在降低环路滤波器复杂性的同时仍然实现主观质量的改善方面已经付出了努力。HEVC环内滤波器易于并行化,这在多核架构上运行HEVC解码器和编码器时会带来优势。

本章组织如下。本章第7.2节描述了HEVC去块滤波器。第7.3节描述了SAO,特别是两种类型的样本偏移:边缘偏移和频带偏移。第7.4节讨论了HEVC环路滤波器的实现和并行化方面,以及基于CTU的滤波器操作实现的细节。第7.5节展示了主观质量和编码效率的改进。第7.6节总结了HEVC的环路滤波器和H.264/AVC的主要区别。7.7本章结束。

showeeks commented 3 years ago

如第节所述。7.1,在HEVC,运动预测和变换编码都是基于块的。运动预测块的大小从4x8和8x4到64x64亮度样本不等,而块变换和帧内预测块的大小从4x4到32x32样本不等。这些块相对独立于它们的相邻块进行编码,并以某种程度的相似性近似原始信号。由于编码块仅近似原始信号,近似之间的差异可能导致预测和变换块边界的不连续性。例如,相邻块的运动预测可能来自参考图片的非相邻区域(见图7.2),甚至来自不同的参考图片。在HEVC使用的非重叠块变换的情况下,粗量化也会在块边界产生不连续性。在具有高频内容的高度详细的区域中,这种伪像可以被人类视觉系统掩盖。然而,在平滑区域中,观看者很容易注意到块之间的不连续性,并且可能导致感知的视频质量显著下降。图7.3显示了一维块效应的例子。横轴显示沿水平或垂直一维线的样本位置,纵轴显示样本值。

去块滤波器衰减区域中的伪像,在这些区域中,伪像是最可见的,即在平滑、均匀的区域中。应该避免在高度详细的区域进行过度过滤,因为这会导致不希望的模糊。这些区域的伪像很少被人眼注意到,同时也更难确定不连续性是由块边界引起的还是属于原始信号[27]。因此,去块滤波器的一个重要部分是去块滤波决策,它决定是否要对块边界的特定部分进行滤波。在这些决策中,HEVC去块滤波器使用来自解码比特流的模式和运动信息,并分析块边界两侧的重构样本的值。去块滤波器的强度也可以由编码器基于图像和切片进行调整。

第7.2.2节介绍了HEVC解块滤波器,而第7.2节则介绍了。7.5.1讨论了HEVC去块滤波带来的编码效率和主观质量的提高。去块滤波器的复杂性和并行化方面将在第3节中讨论.7.4.1.

showeeks commented 3 years ago

作为主观质量和计算复杂度之间的折衷,在4:2:0色度子采样的情况下,HEVC去块滤波器仅应用于位于8的倍数的亮度和色度采样位置的块边界(在H.264/AVC中,去块应用于4x4亮度和色度采样网格)。由于去块滤波仅应用于编码单元(CU)、预测单元(PU)或变换单元(TU)之间的边界,而不应用于内部区域,因此与H.264/AVC相比,HEVC去块的平均复杂度进一步降低,因为HEVC可以使用更大的块大小。

在HEVC去块中,首先过滤图像中的垂直边界,然后过滤水平边界。在一个编码单元中,编码块之间的垂直边界从最左边界开始向右边界处理。水平边界从最顶部的边界开始向底部处理。与此相反,H.264/AVC去块滤波器在宏块(MB)基础上操作,其中从最左边的MB边界开始顺序处理MB中的四个垂直边界,然后从最上面的MB边界开始处理四个水平MB边界。图7.4比较了HEVC和H.264/AVC中块边界的处理顺序。可以看出,HEVC去块中的滤波顺序比H.264/AVC中的滤波顺序更规则。此外,由于HEVC中一个垂直(水平)边界的去块不影响其他垂直(水平)边界的去块,因为仅过滤8x8采样网格上的边界,所以可以并行处理所有垂直(水平)边界。这允许更好的并行化,这将在第节中详细讨论。7.4.1.H.264/AVC去块滤波的并行化更加复杂,因为块边界的滤波影响并行块边界处的去块判决,并且垂直和水平滤波操作是交替的。

是否过滤块边界的决定使用比特流信息,例如预测模式和运动矢量。一些编码条件更有可能产生强块假象,这些假象由分配给每个块边界的所谓边界强度(Bs)变量表示,如表7.1所示。去块仅适用于亮度分量的Bs大于零、色度分量的Bs大于1的块边界。更高的Bs值通过使用更高的削波参数值来实现更强的滤波。Bs推导条件反映了最强块假象出现在帧内预测块边界的概率。当量化和参考图像中非相邻区域的预测可能导致块伪像时,这些条件也可以实现亮度去块。不过滤Bs等于零的块边界避免了静态区域的多次重复过滤,在静态区域,样本只是从一幅图片复制到另一幅图片。在色度去块中,仅过滤与帧内预测块相邻的块边界,这降低了去块复杂度,同时仍然去除了最强的块伪像。图7.5的流程图解释了Bs推导的算法。

对于具有非零Bs值的亮度块边界,评估块边界两侧的信号,以决定是否应应用去块。对于色度块边界,不执行进一步的评估。

对块边界的每个四样本段分别进行去块判决(见图7.6)。由于去块需要衰减平滑区域中的可见伪像,所以去块判决评估块边界两侧的信号是否平滑,即信号是平坦的还是具有斜面(斜坡)的形状[36,37,43]。如果以下表达式被评估为真,则去块滤波被应用于块边界: 其中阈值”取决于量化参数QP,并且是从查找表中导出的。等式(7.1)用于检查块边界两侧的信号偏离直线(斜坡)的程度。本书章节中的方程是针对图7.6所示的垂直块体边界给出的。水平块边界的方程可以通过交换行和列索引从垂直边界的方程获得。