随着 5G 的成熟和宽泛商用,带宽越来越高,让传输视频变得更加容易。挪动设施算力的晋升、存储容量的晋升,也使得视频技术的利用越来越宽泛。视频相干的技术,特地是视频压缩技术,因其专业性,深刻开发的门槛较高,在实时通信场景中,视频压缩技术更面临严厉的挑战。因为在实时通信场景下,不仅对时延和设施适配的要求很高,对带宽适应的要求也十分高,因而开发一款满足实时通信要求的编解码器,难度很大。
此前,咱们曾经在《深入浅出了解视频编解码技术》一文中简要介绍了视频编解码根本框架,也在《揭秘视频千倍压缩背地的技术原理之预测技术》深入分析了该框架中的预测技术,明天咱们将持续深刻分析其中的环路滤波模块。
PART 01 什么是环路滤波?
基于块的混合编码框架始终是多种视频编解码规范的外围。在编码视频的时候,人为地将视频宰割成不同大小的块,再进行预测和弥补,而后再对预测残差进行变换和量化,这一过程都是基于块进行的,在重建视频的时候,在不同的块的边界上就会呈现不连续性,这样的不连续性,也就是常说的“块效应”,如图 1 -1。
▲ 图 1 - 1 环路滤波前的重建图像
通常人眼会对这样的不连续性比拟敏感,很容易感触到视频的清晰度降落。块效应的产生,一方面是因为基于块的变换和量化操作,量化误差导致不同的块的重建样本产生了不同重建值,从而产生了边界;另外,因为静止弥补时,相邻的编码块的预测值,并不一定来自同一帧的相邻块,也会引入虚伪边界;相似的,帧内预测不同的预测模式,生成预测值的形式不同,也会引入虚伪边界。
为了缩小视频中块的不连续性带来的主观品质降落,能够对重建视频进行滤波操作,如图 1 -2,通过滤波之后,视频的主观品质有了显著地改善,虚伪的块边界平滑了,更为靠近原始图像。从图中也能够发现,平坦区域,块效应更加显著,纹理丰盛的区域(树叶),有天然的图像边界,也有编码引入的块边界,块效应绝对不显著,同时,环路滤波器的设计也须要思考辨别“真”、“假”边界,避免对图像自身曾经有的天然边界进行平滑,导致失真。
▲ 图 1 - 2 环路滤波后的重建图像
在较早的编码标准中,如 MPEG-2,该操作都是在后处理阶段进行的,即视频流在解码重建后,输入之前进行滤波,以缩小主观上的不舒适性。从 H.263 附录 J 开始,引入了“环路滤波”,之所以叫“环路”或者“In-loop”,是因为该滤波器在解码的闭环当中,如图红色模块所示,码流中的语法元素解析后,进行反量化和反变换,并与预测值叠加,失去重建图像,该重建图像将先进行环路滤波,再输入显示,同时作为参考图像,以便于后续的视频帧进行静止弥补。
因为环路滤波的引入,在晋升视频主观品质的同时,也进步了预测的准确性,也进一步提高了编码效率。H.264 的环路滤波只有去块滤波一种;从 HEVC/H.265 开始,环路滤波模块引入了多种类型的滤波器,例如 HEVC 中的 SAO(Sample Adaptive Offset)[1]、AV1 中的 CDEF(Constrained Directional Enhancement Filter)[2]、LR(Loop Restoration)[3]、VVC 中的 LMCS(Luma Mapping With Chroma Scaling)、ALF(Adaptive Loop Filter)[4]等。本文将简要介绍 HEVC 中的去块滤波和 AV1 中的 CDEF,以深刻了解环路滤波的作用和成果。
▲ 图 2 混和编码框架中的环路滤波
PART 02 HEVC 中的去块滤波器
环路滤波的次要性能是去除块效应,设计去块滤波器的次要难点在于对于某一个块边界,是否要进行滤波,以及滤波的强度应该是多少。对块边界进行适度的平滑操作,会导致原有的图像纹理失落;然而较低强度的平滑,却无奈齐全去除虚伪边界。
因而,去块滤波器岂但要思考图像自身的纹理个性,也要思考编码时采纳的编码参数,如此能力将真正因为编码引入的人为边界去除。HEVC 中,8×8 的块的程度和竖直的边界是去块滤波的滤波对象,去块滤波器取边界两侧各 4 个像素点进行滤波。如此一来,去块滤波以 8 ×8 为根本单位,并且不同的 8 ×8 的样本之间无重叠,能够进行并行处理,进步处理速度。但并非所有的 8 ×8 边界都要进行解决,只有满足肯定的条件才会进行:
- 该边界是预测单元或者变换单元的边界;
- 块边界的强度非零;
- 边界两侧样本的部分特色满足肯定的统计个性。
边界强度
边界强度将决定是否滤波以及滤波器的强度。边界强度可能的取值为 0,1,2。取值为 0,即不进行滤波操作。边界强度取决到边界两侧的编码块是否是 Intra 模式,是否有非零系数,是否有不统一的静止方向,是否参考了不同的帧等。这里充分考虑了编码失真才会引入虚伪边界这一事实,防止对天然的平坦区域进行不必要的滤波操作。
部分特色
当边界强度非零,将进行一步查看图像的部分统计特色。根本的思路是,假如边界两侧的样本间断变动,这些样本将在一条直线上,换言之,像素点的梯度是一个常量;反之,如果边界两侧的梯度相差较大,则有虚伪边界引入,如图 3 所示。当然,偏离水平与量化参数是相干的,规范给出了不同量化参数下的阈值。为了升高运算的复杂度,只计算第一行(列)和第四行(列)样本偏离直线的水平。同时,该偏离水平也与滤波的强度有肯定的分割,它决定了滤波的两种模式,即一般滤波和强滤波。
▲ 图 3 块边界两侧样本的部分个性
去块滤波器
一般滤波和强滤波两种模式由边界两侧像素点的梯度依据肯定的规定进行决策。在一般滤波模式下,可能批改边界两侧最近的各一个或者各两个像素点,其中 p0 或者 q0 的滤波器的冲激响应为(3 7 9 −3)/16,p1 或者 q1 的滤波器的冲激响应为(8 19 −1 9 −3)/32。在强滤波模式下,边界两侧各三个像素点会被批改,对 p0、p1、p2 的滤波器的冲激响应别离为(1 2 2 2 1)/8、(1 1 1 1)/4、(2 3 1 1 1)/8。
HEVC 中的去块滤波与 H.264 相比,复杂度大大降低了。一方面 HEVC 的去块滤波是以 8 ×8 的块为根本单位,而 264 是 4 ×4 为根本单位;另一方面,HEVC 的变换核尺寸和预测单元的尺寸都变大了。除此之外,HEVC 的去块滤波的并行度也有了改良,8×8 的块的边界两侧各取 4 个点进行滤波操作,多条边界应用到的像素点互不重叠,能够并行处理;竖直边界和程度边界以帧为单位进行,比 H.264 以宏块为单位进行更能进一步提高并行度。
PART 03 AV1 中的 CDEF
CDEF 滤波器的根本作用是在放弃视频图像细节的前提下,应用非线性的空域滤波器来打消编码中呈现的失真。视频中的各种纹理细节,方向多种多样,CDEF 首先检测纹理的方向,而后沿纹理的方向进行自适应滤波。
CDEF 的纹理检测
为了放弃图像自身的纹理细节,滤波操作该当依照纹理的根本方向进行,防止将纹理自身当作失真进行解决,造成品质降落。CDEF 被置于去块滤波操作之后,在重建图像上进行纹理检测。纹理检测的根本单元是 8 ×8 的块,这样做的益处,既能无效地解决纹理 又能够便于将滤波操作进行并行处理(SIMD 优化)。CDEF 设计了 8 种纹理方向,如图 4 所示。
▲ 图 4 CDEF 的纹理方向定义 [2]
一个 8 ×8 的重建图样块内的像素,搜寻某一个方向时,依照该方向定义的不同的分组,对像素进行分组并求其均值,以均值填充分组内的像素,造成一个 8 ×8 的“纹理方向预测块”。而后计算它与 8 ×8 的重建图像块的平方差的和。各个方向采纳类似做法,从而抉择最小平方差的和所对应的方向作为最优方向进行滤波操作。
以图 5 为例,该 8 ×8 的重建图像为 45 度的纹理(第一行方块所示),8 组方向如第二行方块所示,依照方向所定义的像素分组,生成了每种方向的“纹理方向预测块”(第三行方块所示),以及对应的 RMS(理论运算中只须要计算“纹理方向预测块”的平方和,便能够失去最佳方向)。依照文章 [2] 给出的该操作的计算复杂度,它和 HEVC 中 8 ×8 的 IDCT 的复杂度相当。须要指出的是,最佳纹理方向的决策,是规范定义的一部分,须要编码和解码做到完全一致。
▲ 图 5 CDEF 抉择最佳方向示例[2]
Constraint function
CDEF 应用非线性低通滤波器来打消编码呈现的失真,同时又能放弃图像中原有的纹理不被适度含糊。该滤波器的特点是,滤波系数的地位是基于前文中失去的纹理方向的;同时,横穿纹理方向上,当相邻的像素与被解决的像素差异较大时,缩小其影响,以避免纹理被适度平滑,即引入了 Constraint function。以一维信号为例,该滤波器能够表白为:
其中是滤波器的系数,f(d,S,D)是 Constraint function,其表达式为:
它与被滤波的像素与相邻像素的差异大小无关。如果差异较小,f(d,S,D)=d,就是线性低通滤波器;如果差异较大,f(d,S,D),该地位滤波器系数将被疏忽。参数 S 管制了像素差的阈值,参数 D 管制了 f(d,S,D)何时取 0。
▲ 图 6 参数 S 和 D 的影响[2]
滤波器的抽头系数
只沿着纹理的方向进行滤波,有的状况下,无奈去除纹理两侧呈现的假纹理(Ringing 失真)。因而,除了在纹理方向上的像素点之外的其它像素点,也要参加滤波。为此,CDEF 设计了两组滤波器抽头系数,一组 Primary taps,一组 Secondary taps。Primary taps 就是沿着纹理方向的,而 Secondary taps 应用了与纹理方向呈 45 度角的十字,如图 7 所示。
▲ 图 7 Primary taps and Secondary taps[2]
与纹理方向检测一样,非线性滤波操作也以 8 ×8 的像素块为根本单元,8×8 块内的像素共用同一组滤波参数,为了尽可能的并行处理,滤波器的输出都是去块滤波后的像素,CDEF 滤波后的像素不会用作后续 CDEF 滤波器的输出。滤波器的参数在帧级和块级都有相应的语法元素进行传输,能够满足不同的纹理个性的滤波解决。通常须要在编码器中设计正当的算法,进行 CDEF 滤波参数的抉择。
随着深度学习的蓬勃发展,特地是卷积神经网络在图像复原、超分、辨认、分类等畛域体现得十分优良。深度学习在视频压缩,特地是视频品质复原和环路滤波畛域涌现了许多优良的算法。卷积神经网络能够更好地提取图像里的纹理等特色,通过学习失去不同纹理特色的对应的网络参数,与人工地基于先验常识(例如 CDEF 的纹理方向)的滤波算法相比,实践上具备更大劣势。例如 VRCNN[5]、PRN[6]、RHCNN[7]、Content-Aware CNN[8]、MFRNet[9]等。JVET 也专门建设了 Exploration Experiments,许多优良的提案正致力于将深度神经网络应用于视频压缩规范中。环路滤波技术作为混合编码框架中的组成部分,在视频压缩中对晋升视频主观品质施展了至关重要的作用。
[1] Fu, Chih-Ming, et al. “Sample adaptive offset in the HEVC standard,” IEEE Transactions on Circuits and Systems for Video technology 22.12 (2012): 1755-1764.
[2] Midtskogen, Steinar & Valin, Jean-Marc. (2018). The Av1 Constrained Directional Enhancement Filter (Cdef). 1193-1197. 10.1109/ICASSP.2018.8462021.
[3] D. Mukherjee, S. Li, Y. Chen, A. Anis, S. Parker and J. Bankoski, “A switchable loop-restoration with side-information framework for the emerging AV1 video codec,” 2017 IEEE International Conference on Image Processing (ICIP), 2017, pp. 265-269
[4] M. Karczewicz et al.,“VVC in-loop filters,”IEEE Trans. Circuits Syst. Video Technol., early access, Apr. 9, 20217
[5] Dai, Yuanying, et al. “A Convolutional Neural Network Approach for Post-Processing in HEVC Intra Coding” arXiv:1608.06690, 2016.
[6] D. Wang, S. Xia, W. Yang, Y. Hu, and J. Liu,“Partition tree guided progressive rethinking network for in-loop filtering of HEVC,”in 2019 IEEE International Conference on Image Processing (ICIP). IEEE, 2019, pp. 2671–2675.
[7] Y. Zhang, T. Shen, X. Ji, Y. Zhang, R. Xiong, and Q. Dai,“Residual highway convolutional neural networks for in-loop filtering in HEVC,”IEEE Transactions on Image Processing, vol. 27, no. 8, pp. 3827–3841, 2018.
[8] C. Jia et al., “Content-Aware Convolutional Neural Network for In-Loop Filtering in High Efficiency Video Coding,” in IEEE Transactions on Image Processing, vol. 28, no. 7, pp. 3343-3356, July 2019
[9] D. Ma, F. Zhang and D. R. Bull, “MFRNet: A New CNN Architecture for Post-Processing and In-loop Filtering,” in IEEE Journal of Selected Topics in Signal Processing, vol. 15, no. 2, pp. 378-387, Feb. 2021