5.H.265/HEVC—— 环路后处理

方块效应产生的原因:
1.变换、量化 的误差
2.帧间预测的运动补偿过程
为了消除或减轻块效应,我们可以用环路滤波器(Loop Filter)的方法对重建图像进行滤波降低重建误差。在环路滤波中,去方块滤波(DBF)是其中最重要的一类改善重建图像质量的方法。去方块滤波器的作用是通过“修正”重建块的像素值,尤其是边间附近的像素值,从而达到消除编解码算法带来的方块效应的目的。在HEVC的环旅滤波中,除去方块滤波外,还增加了样点自适应补偿滤波(SAO)滤波方法对所有的像素进行修正处理,进一步降低了重建图像的误差。

环路滤波:1.环内滤波(环路滤波)2.环外滤波(后置滤波器)
1.环外滤波
环外滤波器不在编解码环路内部出现,只是对解码端显示器缓存中的重建图像进行去方块滤波运算。后置滤波器的方便之处在于不愁便准的约束,可以比较自由地设计,但是后置滤波对图像质量的改善并不明显,而且由于滤波器位于编码环路以外,不参与预测,因而改进后的图像不可能作为后续推向的参考帧。
2.环内滤波
环内滤波器处理编码环路中的数据。在编码器中,滤波后的重建图像帧作为后续编码帧的运动补偿参考帧;在解码器中,滤波后的图像输出显示。这要求所有与标准一致的解码器采用同一个滤波器,保持与编码器同步,才能保证解码器中的正确解码过程。当然,如果有必要,解码器还可以使用环路滤波器的同时使用后置滤波器。
在编码环内使用滤波器比后置滤波器的优越之处在于:首先,环内滤波具有自适应性,能够适应不同边界,获得不同水平的图像质量。其次,由于环内,滤波后的质量重建图像可为后续编码帧提供更精确的预测,有利于提高编码效率。最后,在解码器中没有必要再为滤波器准备额外的帧缓存(后置滤波器需要),可简化设备,减小误差扩散。
环旅滤波比后值滤波更能提高重建视频的主观评价的质量,同时还能有效降低解码器的复杂度。


HEVC的去方块滤波主要包含三个步骤:首先根据编码参数和边界强度(BS)判断目标边界是否需要滤波;如果需要,然后再根据阈值判定需要进行普通滤波还是强滤波操作;最后则是具体的滤波处理
可以参考下面的文章:
HEVC去方块滤波原理以及代码流程
滤波边间强度判定(BS):
滤波的边界强度(BS)判定,主要依据是预测单元边界以及变换单元边界的编码模式和编码参数。HEVC中边界强度有3种,分别对应BS = 0、1、2三个等级。
滤波强度的判定:
如果边界强度(BS)大于0,就要对亮度块边界进行滤波。由于图像局部特性的不同,产生方块效应的程度也不同。因此,针对不同程度的方块效应,其滤波强度也应有所不同。在HEVC中,为去方块滤波强度设置了两种模式,一种是普通滤波强度的普通模式,另一种是较强滤波强度的加强模式。对于具体的边界,到底应该采用哪种滤波模式,需要根据边界两边图像的特征来决定,实际上就是根据边界附近像素值的情况,通过一定的数值判断,来确定当前边界是需要进行普通滤波还是强滤波。


HEVC的样值自适应补偿

样值自适应补偿(SAO)技术是HEVC的一种新的编码工具,在去方块滤波后实现,也属于环路内部滤波。去方块滤波的操作只在块边界处起作用,而样点自适应补偿则对块中所有的样点值进行处理。SAO的主要思想是对照原始图像,通过对重建图像块的像素特点进行合适的分类,对不同的分类施加不同的补偿值,使其更接近原图像,从而达到减少图像失真的效果。

SAO是一种自适应选择的处理过程,它的输入信号是原始图像数据和去方块滤波后的重建图像数据,SAO参照原始图像数据,对重建图像数据进行补偿,输出是SAO纠正后的图像数据和SAO的补偿数据。SAO一边讲纠正后的图像数据送至图像缓存,为编码环路提供质量更高的重建图像参考,另一边将产生的补偿参数送至熵编码,为解码器的SAO提供同样的补偿操作参考。显然,SAO是一种非线性滤波操作,它能使重建信号更加逼近原始图像,提高图像在平滑区域和边缘区域的观赏效果。

SAO采用的是一种分类补偿的方法, 通过对重建图像样点值进行分类,为每一类像素值添加一个补偿值,以达到减少失真的目的,从而也可以提高压缩率,减少码流。从减少复杂度的角度考虑,要求SAO中的类别划分操作简单,因为这个过程需要在编码端对每一个像素都要进行判断,在编、解码断都要进行补偿操作。

针对不同的重建图像特点,SAO的滤波类型有两种,边缘补偿(EO)和带补偿(BO)

BO补偿原理
在带补偿模式中,所选的补偿值直接取决于像素的幅度值。编码器把图像像素值范围划分为32个等份,每一小等份称为“带”(band).一个像素一般有3个值:亮度Y,和色度U、V,处理方法 都相同。计算每个带中原始样点和重建样点的平均值之差(即补偿值),在编码端将此补偿值加到每个重建像素上,使得此带中的原始样点和补偿后的重建样点的平均值相等。与此同时,还需将这一补偿值传输至解码端,使得解码器也能够完成同样的补偿。在解码端,也为每一个处于该带内的去方块滤波后的值加上相应的补偿值,这样可以保证在该带出现的重构样点值和原始图像样点值的均值都是相等的。

边缘补偿
边缘补偿(EO)根据边界方向区分像素值,为保证复杂度与编码效率的平衡,EO采用了4中一维方向来确定该样点值所属的EO模式,这4中方向分别为水平、垂直、135°和45°

5.H.265/HEVC—— 环路后处理_第1张图片
EO中的 1维梯度模式

C点维当前样点值,a和b分别代表与之相邻的两个样点值。在编码端,每个CTU只可以选择4种EO模式中的一种,即该EO中所有的像素都为这一模式,除非该STU判定为不进行SAO处理。CTU到底选择哪一种模式,则可采用率失真优化的方法来选择,将所选最优的EO类别写入码流。

C与a、b值之间的关系可以从下图直观地看出。


5.H.265/HEVC—— 环路后处理_第2张图片
EO模式中各类像素补偿的方向

可以参考下面的文章
HEVC 样点自适应补偿(SAO)原理详解
从吉布斯现象出发,EO认为像素值原来是平坦区,因为量化丢弃了部分高频分量,形成了某些像素值得偏移,使得原来相对平坦的像素值关系或多或少地形成局部峰点、谷点或拐点。那么,EO的补偿就是人为地对这些飘逸的像素加上一个适当的相反的补偿量,以抵消编码造成的偏移。

你可能感兴趣的:(5.H.265/HEVC—— 环路后处理)