文章目录
简介
环路滤波是混合编码框架中非常重要的一环,其目的为去除重建信号的压缩噪声,提高重建帧的质量,同时提高后续帧的压缩效率。VVC中主要采用了四中环内滤波技术,相比于HEVC中的去块滤波器(DF)和样本自适应偏移滤波器(SAO),还新增加了自适应环路滤波器(ALF)以及LMCS(Luma mapping with chroma scaling)。LMCS之前也被称作自适应环内信号重塑(adaptive in-loop reshaper)。在VTM中四类滤波器的执行顺序为:LMCS — DF — SAO — ALF。按照顺序依次介绍,本文先从LMCS开始。
1. LMCS(Luma Mapping with Chroma Scaling)理论
其实我也不知道该怎么翻译成中文,姑且叫做亮度映射与色度伸缩滤波器吧,后面直接以英文缩写LMCS表示。LMCS是VTM众多环内滤波器第一个,其操作在DF之前,LMCS之前被称为adaptive in-loop reshaper,是针对提高HDR信号的压缩效率而设计的。LMCS主要分成两个部分:(1)基于自适应分段线性模型的环内亮度映射;(2)色度残差的亮度依赖性尺度伸缩。
下图给出了解码端中LMCS框架,途中有三种背景的流程框:(1)蓝色的流程框表示信号在映射域的操作,包括亮度的反变换、反量化、帧内预测以及重建亮度信号的计算;(2)白色背景流程框表示信号操作在非映射域(即原始信号空间),包括所有其他的环内滤波操作、运动补偿,色度帧内预测,色度重建信号计算以及解码图像存储等;(3)黄色背景流程框表示LMCS操作,包括亮度信号的的映射和反映射、基于亮度信号的色度信号尺度变换。
1.1 基于分段线性模型的亮度映射
亮度的环内映射是通过对整个动态范围的码字重新分配来实现动态范围的矫正,以提高压缩效率。亮度映射为可逆过程,包括前向映射 FwdMap 和逆映射 InvMap 。正映射函数 FwdMap通过16段的分段线性函数进行传输,逆映射InvMap可通过正映射函数推导得到。
亮度映射(luma mapping, LM)相关参数记录在码流的tile group中,首先以一个标志位表示是否采用LM技术,如果采用相应的分段线性模型参数紧跟着传输。分段线性模型将输入信号的动态范围划分为等宽度的16段,每段的线性映射参数由所分配到该段的码字进行表示。以10bit深度输入信号为例,16段每段可分得 1024 / 16 = 64 1024/16 = 64 1024/16=64个码字。传输码字的长度将用以计算尺度伸缩因子,以及映射函数本身的校正。
对于分段线性映射模型的每一段 i , i ∈ 0 , 1 , 2...15 i,i∈{0,1,2...15} i,i∈0,1,2...15的映射函数,由InputPivot[]和MappedPivot[]计算得到,具体计算方式如下(以10bit输入数据为例):
- OrgCW = 64
- For i = 0 : 16 , I n p u t P i v o t [ i ] = i ∗ O r g C W i = 0:16, InputPivot[ i ] = i * OrgCW i=0:16,InputPivot[i]=i∗OrgCW
- For i = 0 : 16 , M a p p e d P i v o t [ 0 ] = 0 i = 0:16,MappedPivot[ 0 ] = 0 i=0:16,MappedPivot[0]=0
for( i = 0; i <16 ; i++) MappedPivot[ i + 1 ] = MappedPivot[ i ] + SignalledCW[ i ];
以亮度映射模型解释上述LMCS框图:
- 帧间预测的运动补偿时在原始像素域进行,但是信号重建在映射域进行,也就是说