一、概要
视频编码为视频带来的压缩伪影呈现出的效果各有不同,但其原因总结起来为高频信息的失真以及基于块的编码消除了块与块之间的相似性。
为了弥补基于块的编码带来的影响,HEVC中引入了去方块滤波。
AVC中采取对4×4块的边界进行去方块滤波,HEVC采取的是对8×8块进行去方块滤波,这种改进减少了需要进行去方块滤波处理的边界数量,能更好适应高分辨率视频编码的需要。
去方块滤波大致可分为滤波决策和滤波操作。
二、滤波决策
由于8×8块的边界可能存在图像的自然边界,若是对这些区域进行了滤波操作,则会出现模糊效应,因此先进行滤波决策,根据边界的实际情况,判断是否滤波以及采用何种滤波强度。
2.1判断边界强度
图片来源:https://zhuanlan.zhihu.com/p/496781861?utm_id=0
边界强度为0则不进行滤波,而边界强度大于0时,需要进一步判断滤波开关
2.2滤波开关
人眼对于平坦区域的块效应更敏感(如下图马腿边缘),而对于变化剧烈的区域(如草地)的块效应的敏感程度会降低,因此需要对于越平坦的区域越需要进行去方块滤波
根据(8-1)(8-2)(8-3)(8-4)进行滤波开关的判断
Texture为纹理度,当其超过阈值时才需要进行滤波
2.3滤波强度
HEVC中色度分量只有一种滤波模式,而亮度分量具有两种滤波模式,因此需要进行判断,其中平坦区域进行强滤波,而非平坦区域进行弱滤波。
2.1 2.2 2.3可用下图概括:
三、滤波操作
对于滤波操作,则是对P块与Q块边界的若干像素值按照其余像素值进行修正,以免出现突兀的块边界现象。可以分为亮度强滤波、亮度弱滤波、色度滤波。
3.1亮度强滤波
强滤波会对边界两侧像素进行大范围、大幅度修正。需要修正的像素为边界两侧各3个像素。
来源:https://blog.csdn.net/Dillon2015/article/details/104385174?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0-104385174-blog-82118002.235v35pc_relevant_increate_t0_download_v2&spm=1001.2101.3001.4242.1&utm_relevant_index=3
可以看到,使用选中的其他像素值对当前像素值进行修正,以使像素值不会突兀
3.2亮度弱滤波
弱滤波修正的像素范围和幅度较小。最多需要修正的像素为边界两侧各2个像素。需要根据每行像素具体情况进行滤波操作。
下面以第1行像素为例说明:
接着判断p(1,0)及q(1,0)是否需要修正。
3.3色度滤波
对于色度滤波没有亮度滤波那么复杂,只要边界强度为2,且滤波开关打开,就对色度分量进行滤波,无须其他判断条件,且只有一种模式,修正边界两侧各1个像素,即p0与q0。