视频编解码的方法和装置与流程
未命名
07-12
阅读:76
评论:0

视频编解码的方法和装置
1.相关引用
2.本发明要求:在2019年9月16日递交的申请号为62/900,702的美国临时申请案;在2019年11月26日递交的申请号为62/940,321的美国临时申请案;在2019年12月27日递交的申请号为62/954,024的美国临时申请案;以及在2020年1月2日递交的申请号为62/956,356的美国临时申请案的优先权。以上临时申请案的全部内容以引用方式并入本发明。
技术领域
3.本发明涉及视频编解码系统中的适应性环路滤波器(adaptive loop filter,简称alf)处理。具体的是,本发明涉及在视频编码器或解码器中约束跨分量alf处理。
背景技术:
4.运动估计是一种有效的帧间编解码技术,以利用视频序列中的时间冗余。运动补偿的帧间编解码已在各种国际视频编解码标准中被广泛使用。各种编解码标准中采用的运动估计通常是基于块的技术,其中诸如编解码模式和运动向量的运动信息被确定用于每个宏块或类似块配置。另外,帧内编解码适应性地被应用,其中在不参考任一其他图像的情况下,图像被处理。通常通过变换、量化和熵编码,帧间预测残差或帧内预测残差进一步被处理,以生成压缩视频比特流。在编码过程中,特别是在量化过程中,编码伪像被引入。为了减轻编码伪像,额外的处理被应用于重构的视频,以增强新型编解码系统中的图像质量。额外的处理通常以环内操作来配置,以便编码器和解码器可以导出相同的参考图像以实现改进的系统性能。
5.图1a示出引入了包括适应性alf的环内处理的示例适应性帧间/帧内视频编解码系统。对于帧间预测,运动估计(motion estimation,简称me)/运动补偿(motion compensation,简称mc)112被用于基于来自其他一个或多个图像的视频数据提供预测数据。开关114选择帧内预测110或帧间预测数据,并且所选择的预测数据被提供给加法器116以形成预测误差,也被称为残差。然后,通过变换(transformation,简称t)118,然后是量化(quantization,简称q)120,预测误差被处理。然后,经过变换和量化的残差由熵编码器122进行编码,以形成与压缩视频数据相对应的视频比特流。然后,与变换系数相关联的比特流与诸如运动、模式以及与图像区域相关联的其他信息之类的辅助信息打包在一起。辅助信息也可以经过熵编码以减少所需的带宽。因此,如图1a所示,与辅助信息相关的数据被提供给熵编码器122。当帧间预测模式被使用时,参考图像也必须在编码器端被重构。因此,经变换和量化的残差通过逆量化(inverse quantization,简称iq)124和逆变换(inverse transformation,简称it)126来处理以恢复残差。然后在重构(reconstruction,简称rec)128处,残差被加回到预测数据136以重构视频数据。重构的视频数据可被存储在参考图像缓冲器(reference picture buffer)134中,并被用于其他帧的预测。
6.如图1a所示,输入视频数据在编码系统中经历了一系列处理。由于一系列处理,来自rec 128的重构视频数据可能遭受各种损害。因此,在重构视频数据被存储在参考图像缓
冲器134中之前,各种环内处理被应用于重构视频数据,以提高视频质量。在视频编码系统中,诸如解块滤波器(deblocking filter,简称df)130,样本适应性偏移(sampleadaptive offset,简称sao)131和适应性环路滤波器(adaptive loop filter,简称alf)132之类的各种环内滤波器被用来增强图像质量。
7.用于图1a的编码器的相应解码器在图1b中被示出。视频比特流由熵解码器142解码以恢复经变换和量化的残差。在解码器侧,仅运动补偿(motion compensation,简称mc)113被执行,而me/mc不被执行。解码过程类似于编码器侧的重构环路。恢复的经过变换和量化的残差,sao/alf信息以及其他系统信息被用于重构视频数据。重构的视频由df 130,sao 131和alf 132进一步处理以生成最终的增强解码视频。
8.跨分量alf处理
9.在jvet-o0636(kiran misra,et al.,“cross-component adaptive loop filter for chroma”,joint video experts team(jvet)of itu-t sg 16 wp 3 and iso/iec jtc 1/sc 29/wg 11,15th meeting:gothenburg,se,3-12 july 2019,document:jvet-o0636),跨分量适应性环路滤波器(cross-component adaptive loop filter,简称cc-alf)被提出。cc-alf利用亮度样本值来细化每个色度分量。图2a示出根据jvet-o0636的关于其他环路滤波器的cc-alf的结构。在图2a中,在各个sao(210、212和214)之后,alf处理被执行。在常规的视频编码系统中,仅alf亮度220和alf色度230被使用。在jvet-0636中,两个额外的alf滤波器,即cc alf cb 222和cc alf cr 224被用于导出调整信号,以分别使用加法器240和242将调整信号加到经alf处理的cb和cr。
10.根据jvet-o0636,cc-alf通过将线性菱形滤波器应用于每个色度分量的亮度通道来进行操作,如图2b所示。滤波器系数在aps发送,由因子210进行缩放,并被四舍五入用于定点表示。滤波器的应用在可变的块大小上控制,并通过每个样本块接收的上下文编码标志发出。对于每个色度分量,块大小以及cc-alf启用标志在片段级别被接收。cc-alf的语法和语义也在jvet-o0636也公开。
11.如上所述,cc-alf通过将线性菱形滤波器应用于每个色度分量的亮度通道来进行操作。图2c示出关于亮度样本的cc-alf 250的放置的示例。符号的图例260被示出,其中空圆圈表示亮度样本,并且用阴影线填充的圆圈表示色度样本。例如,分别用于色度样本252和254的菱形滤波器253和255被示出。滤波器系数动态范围被限制为6比特有符号值。滤波器选择在ctu级别上执行,最多支持4个滤波器。对称行(symmetric line)选择在虚拟边界处被使用(以更好地与alf协调)。时间层系数缓冲器不被使用(以更好地与aps概念保持一致)。残差输出被裁剪为-2
bitdepthc-1至2
bitdepthc-1-1(含端点值)。
12.滤波器的应用在可变块大小上被控制,并通过每个样本块接收的上下文编码标志来发送。对于每个色度分量,块大小以及cc-alf启用标志在片段级别被接收。cc-alf的语法和语义在附录中提供。在文献中,可支持以下块大小(在色度样本中)16x16、32x32、64x64、128x128。
13.虚拟边界以减少行缓冲器(line buffer)的使用
14.为了消除sao和alf的行缓冲器要求,我们引入了虚拟边界(virtual boundary,简称vb)的概念。如图3所示,vb是将水平最大编解码单元(largest coding unit,简称lcu)边界向上移动n行(line)。对于每个lcu,sao和alf可以在下部lcu到达之前处理vb上方的行,
但不能处理vb下方的行直到下部lcu到达,这是由df引起的。考虑到hm-4.0中的df,提议的vb和水平lcu边界之间的间隔被设置为三行(即图3中的n=3)用于亮度和一行(即图3中的n=1)用于色度。sao和alf被修改,以确保vb一侧上的每个待处理位置都不需要从vb另一侧进行任一数据访问,除非可以及时使用这些数据而无需使用任一额外的行缓冲器。
15.在第11次jvet会议上,下一代视频编解码标准(通用视频编解码(versatile video coding,简称vvc))的草案中采用了基于4x4块适应性的alf。对于一个4x4的块,需要一个8x8的窗口来计算块的属性,并且滤波器的足迹是1个7x7菱形滤波器(用于亮度)和一个5x5菱形滤波器(用于色度)。因此,所需的没有虚拟边界的行缓冲器是在4个亮度df行缓冲器和2个色度df行缓冲器之上额外的7个亮度行缓冲器和3个色度行缓冲器。虚拟边界的概念仍然可以在vvc中应用,以减少行缓冲器的使用。在以上描述中,最大编码单元(largest coding unit,简称lcu)被重命名为vvc中的编解码树单元(coding tree unit,简称ctu)。但是,一些修改被提出以适合当前alf设计的功能。
16.非-线性alf操作
17.在vtm3.0(通用视频编解码(versatile video coding,简称vvc)测试模型3.0版)中,适应性环路滤波器的滤波过程如下执行:
18.o(x,y)=∑
(i,j)
w(i,j).i(x+i,y+j),
ꢀꢀꢀ
(1)
19.在上式中,样本i(x+i,y+j)是输入样本,o(x,y)是滤波后的输出样本(即滤波结果),而w(i,j)表示滤波系数。由于alf被应用于重构样本,所以样本i(x+i,y+j)对应于重构样本。在alf处理的中心位置处的中心重构位置对应于(i,j)=(0,0),即i(i,j)。实际上,在vtm3.0中,它使用整数算法实现定点精度计算:
[0020][0021]
在上式中,l表示滤波器长度,其中w(i,j)是定点精度的滤波器系数。
[0022]
在以下表达式中,可以在不影响编码效率的情况下,公式(1)被重新公式化:
[0023]
o(x,y)=i(x,y)+∑
(i,j)≠(0,0
)w(i,j)
·
(i(x+i,y+j)-i(x,y)).
ꢀꢀ
(3)
[0024]
在上式中,除了w(0,0),,w(i,j)与公式(1)中的滤波器系数相同,在公式(3)中w(0,0),等于1且在公式(1)中等于(1-∑
(i,j)≠(0,0)
w(i,j))。
[0025]
使用上面的公式(3)的滤波器公式,当相邻样本值(i(x+i,y+j))与正在滤波的当前样本值(i(x,y))完全不同时,我们可通过使用简单的裁剪函数来减少相邻样本值(i(x+i,y+j))的影响,从而轻松地引入非线性以提高alf的效率。
[0026]
在jvet-m0385((j.taquet,et al.,“non-linear adaptive loop filter”,in joint video exploration team(jvet)of itu-t sg 16 wp 3 and iso/iec jtc 1/sc 29/wg 11,13th meeting:marrakech,ma,9-18 jan.2019,document:jvet-m0385)),一种非线性alf被公开。它在测试软件vtm3.0中对适应性环路滤波器的输入样本值引入了适应性裁剪操作。这种适应性裁剪操作的目的是引入一些非线性,以限制要滤波的输入样本值与滤波器的其他相邻输入样本值之间的差异。
[0027]
根据jvet-m0385,alf滤波器操作被修改如下:
[0028]o′
(x,y)=i(x,y)+∑
(i,j)≠(0,0)
w(i,j).k(i(x+i,y+j)-i(x,y),k(i,j)),(4)
[0029]
在上式中,o
′
(x,y)对应于修改后的alf滤波器输出,i(x,y)对应于alf之前的样
本,k(d,b)=min(b,max(-b,d))是裁剪函数,而k(i,j)是裁剪参数,取决于(i,j)处的滤波器系数。编码器执行优化以找到最佳的k(i,j)。
[0030]
在根据jvet-m0385的实施方式中,裁剪参数k(i,j)被指定用于每个alf滤波器,其中对每个滤波器系数发送一个裁剪值。这意味着在比特流中发送12个裁剪值用于每个亮度滤波器,发送6个裁剪值用于每个色度滤波器。
[0031]
为了限制发送成本和编码器复杂度,裁剪值被限制为jvet-m0385中的一小部分可能值。此外,仅4个可能值被用于帧间片段,3个可能值被用于帧内片段。
[0032]
因为亮度的局部差异的方差通常比色度的高,所以两个不同的集合被用于亮度和色度滤波器。此外,每个集合中都包含最大样本值,因此可以在不需要时禁用裁剪。
[0033]
表1提供了根据jvet-m0385提出的裁剪值的集合。
[0034]
表1:允许的裁剪值
[0035][0036]
使用与集合中的裁剪值的索引相对应的golomb编码,裁剪值被编码于片段头中。
[0037]
使用虚拟边界降低alf的缓冲器要求
[0038]
在jvet-m301((a.kotra,et al.,“non-ce:loop filter line buffer reduction”,in joint video exploration team(jvet)of itu-t sg 16 wp 3 and iso/iec jtc 1/sc 29/wg 11,13th meeting:marrakech,ma,9-18 jan.2019,document:jvet-m0301))中,一种减少适应性环路滤波器(adaptive loop filter,简称alf)的行缓冲器需求的机制被公开。该文献使用虚拟边界(virtual boundaries,简称vb)的概念,虚拟边界是将水平ctu边界向上移动“n”个样本。修改后的alf块分类和修改后的alf滤波适用于虚拟边界附近的样本,以减少所需的行缓冲器数量。修改后的alf块分类仅使用vb之上的样本对vb之上的给定4
×
4块进行分类。类似地,对于vb以下的4
×
4块的分类,属于vb以下的行的样本被使用。修改后的alf滤波可以是使用有条件地禁用原始alf滤波器和原始alf滤波器的截断版本中的一个,或者二者的组合。
[0039]
虚拟边界上截断的alf滤波
[0040]
滤波器的截断版本被用于对属于接近虚拟边界的行的亮度样本进行滤波。滤波器的这些截断版本可被用于n=4和n=6情况。同样,滤波器的截断版本也被用于色度alf滤波。
[0041]
对于截断的alf,系数必须进行归一化,即,其余系数的总和必须与原始系数的总和相同。第4a-f图示出在虚拟边界处用于截断亮度alf滤波器处理的系数归一化的示例。图4a示出对于顶部位置(即,位置c0)在虚拟边界之外的情况下的修改后的alf系数。系数c2被修改为c2
′
,其中c2
′
=c2+c0。图4b示出底部位置(即,c0)在虚拟边界之外的情况。图4c示出对于前两行(即,位置c0,c1,c2和c3)在虚拟边界之外的情况下的修改后的alf系数。因此,系数c5,c6和c7被修改为c5’,c6’和c7’,其中c5’=c5+c1,c6’=c6+c2+c0,而c7’=c7+c3。图4d示出对于底部两行(即位置c0,c1,c2和c3)在虚拟边界之外的情况下的修改后的alf系
数。图4e示出对于前三行(即,位置c0至c8)在虚拟边界之外的情况下的修改后的alf系数。因此,系数c10,c11和c12被修改为c10
′
,c11
′
和c12
′
,其中c10
′
=c10+c4+c8,c11
′
=c11+c5+c7+c1+c3和c12
′
=c12+2*c6+2*c2+2*c0。图4f示出对于底部三行(即,位置c0至c8)在虚拟边界之外的情况的修改后的alf系数。
[0042]
图5a-d示出在虚拟边界处的截断色度alf滤波器处理的示例。图5a示出对于顶部位置(即,位置c0)在虚拟边界之外的情况下的修改后的alf系数。系数c2被修改为c2
′
,其中c2
′
=c2+c0。图5b示出底部位置(即,c0)在虚拟边界之外的情况。图5c示出对于前两行(即,位置c0,c1,c2和c3)在虚拟边界之外的情况下的修改后的alf系数。因此,系数c5和c6被修改为c5
′
和c6
′
,其中c5
′
=c5+c1+c3,c6
′
=c6+2*c2+2*c0。图5d示出对于底部两行(即,位置c0,c1,c2和c3)在虚拟边界之外的情况下的修改后的alf系数。
[0043]
在本技术中,各种其他alf边界问题被解决,并且用于提高性能,统一多个系统或简化alf边界处理的解决方案被公开。
技术实现要素:
[0044]
用于重构视频的环路滤波器处理的方法和装置被公开。根据一种方法,重构的样本被接收。目标跨分量适应性环路滤波器(cross-component adaptive loop filter,简称ccalf)被确定,其中目标ccalf属于包括一个或多个候选滤波器的滤波器集合,并且在所述一个或多个候选滤波器中,每个候选滤波器的滤波器系数之总和被约束为固定值。目标ccalf被应用于相关的重构亮度样本,以生成用于目标重构色度样本的ccalf滤波色度样本。通过将ccalf滤波色度样本和常规alf滤波色度样本进行组合,最终的滤波色度样本被生成,其中最终的滤波的色度样本被用作视频解码输出或被用于进一步的视频编码或解码处理。
[0045]
在一实施例中,固定值等于0。在另一实施例中,当每个候选滤波器的唯一滤波器系数的数量等于m时,在解码器侧每个候选滤波器的仅(m-1)个滤波器系数被解码,其中m是大于1的整数。在一实施例中,除(m-1)滤波器系数外,一个滤波器系数不在解码器侧解码或在编码器侧编码,并且未编码滤波器系数对应于每个候选滤波器的唯一滤波器系数中的任一选定系数。
[0046]
根据另一方法,在编码器侧的视频比特流的适应性参数集合(adaptation parameter set,简称aps)中,一个或多个语法元素被发送,或者在解码器侧的视频比特流的aps中,所述一个或多个语法元素被解析,其中所述一个或多个语法元素指示与滤波器集合中的候选滤波器总数量有关的值。目标ccalf被确定,其中目标ccalf属于包括一个或多个候选滤波器的滤波器集合,并且在所述一个或多个候选滤波器中的每个候选滤波器的滤波器系数的总和被约束为固定值。目标ccalf被应用于相关的重构亮度样本,以生成用于目标重构色度样本的ccalf滤波色度样本。通过将ccalf滤波的色度样本和常规alf滤波的色度样本进行组合,最终的滤波色度样本被生成,其中最终的滤波的色度样本被用作视频解码输出或被用于进一步的视频编码或解码处理。
[0047]
在一实施例中,一个语法元素被发送或解析用于每个颜色分量。在一实施例中,所述一个或多个语法元素包括对应于滤波器集合中的候选滤波器总数减去1的值。
附图说明
[0048]
图1a示出结合df、sao和alf环内处理的示例性适应性帧间/帧内视频编码系统。
[0049]
图1b示出结合了df、sao和alf环内处理的示例性适应性帧间/帧内视频解码系统。
[0050]
图2a示出关于根据jvet-o0636的其他环路滤波器的cc-alf的结构,其中在相应sao之后alf处理被执行。
[0051]
图2b示出根据jvet-o0636应用于每个色度分量的亮度通道的菱形滤波器。
[0052]
图2c示出相对于亮度样本cc-alf 250的放置示例。
[0053]
图3示出通过将水平lcu边界向上移动n行而形成的vb的示例。
[0054]
图4a-f示出在虚拟边界处的截断亮度alf滤波器处理的系数归一化的示例,其中图4a示出顶部位置在虚拟边界之外的情况下的修改后的alf系数;图4b示出底部位置在虚拟边界之外的情况。图4c示出前两行在虚拟边界之外的情况下的修改后的alf系数。图4d示出底部两行在虚拟边界之外的情况下的修改后的alf系数。图4e示出前三行在虚拟边界之外的情况下的修改后的alf系数。图4f示出底部三行在虚拟边界之外的情况下的修改后的alf系数。
[0055]
图5a-d示出在虚拟边界处的截断色度alf滤波器处理的示例,其中图5a示出顶部位置在虚拟边界之外的情况下的修改后的alf系数。图5b示出底部位置在虚拟边界之外的情况。图5c示出前两行在虚拟边界之外的情况下的修改后的alf系数。图5d示出底部两行在虚拟边界之外的情况下的修改后的alf系数。
[0056]
图6示出具有系数c0至c6的3x4菱形ccalf的示例。
[0057]
图7示出根据本发明实施例的重构视频的示例性alf处理的流程图,其中,一个或多个候选滤波器中的每个候选滤波器的滤波器系数之和被约束为固定值。
[0058]
图8示出根据本发明的实施例的重构视频的示例性alf处理的流程图,其中,用于指示与滤波器集合中的候选滤波器的总数量有关的值的一个或多个语法元素在aps中发送或解析。
具体实施方式
[0059]
以下描述是实施本发明的最佳构想模式。作出该描述是出于说明本发明的一般原理的目的,而不应被认为是限制性的。本发明的范围最好通过参考所附的权利要求来确定
[0060]
方法1:cc-alf中相应的亮度样本值
[0061]
在cc-alf中,一个额外滤波器被添加用于色度分量,并且滤波后的输出为原始色度滤波器和额外滤波器的加权和。如果视频格式为yuv444或rgb444,则通过在不同颜色分量中使用相同的空间位置,待处理色度样本的相应亮度样本可以被很好地定义。但是,如果视频格式为yuv420或yuv444,则cc-alf中相应亮度样本的定义就是一个问题。在一实施例中,根据yuv格式或色度的采样位置,相应亮度样本被下采样。例如,如果视频格式为yuv420,根据亮度位置,色度采样位置为(0,0.5),则相应亮度采样可以是四个亮度采样中的一个。在另一示例中,相应亮度样本可以是剩余的两个亮度样本的平均值。在另一示例中,相应亮度样本可以是左(右)顶部和底部亮度样本的平均值。在另一种情况下,相应亮度样本可以是四个亮度样本的平均值。滤波器的足迹可根据色度位置或亮度位置来定义。如果滤波器足迹根据色度样本位置来定义,那么cc-alf滤波过程的输入就是上面提到的相应
亮度样本。如果滤波器足迹根据亮度样本位置来定义,则cc-alf中滤波器-形状的中心位置由待处理色度样本的相应亮度样本来定义。在一实施例中,相应亮度样本的定义取决于视频格式或色度分量的采样位置。
[0062]
在另一实施例中,非线性裁剪操作可被应用于cc-alf。在又一实施例中,相邻样本和待处理样本之间的差异在滤波处理中被使用,而不是直接使用相邻样本。待处理样本可以是色度分量中的样本值,也可以是cc-alf中相应亮度样本的样本值。
[0063]
在当前设计中,色度alf的输出将被裁剪到一个有效范围内(例如[0,1023]用于10比特视频压缩,[0,255]用于8比特视频压缩)。ccalf的输出将添加到此裁剪值上,并且裁剪操作被再次执行以确保最终输出在有效范围内。因此,存在两个裁剪操作:一个被应用于色度alf的输出,另一个被应用于ccalf的输出。在一实施例中,当cc-alf被应用时,用于在色度alf处理中将输出值限制在有效范围内的裁剪操作可被丢弃,因此,仅在cc-alf输出被添加到色度alf的输出之后,裁剪操作才被应用。
[0064]
在另一实施例中,cc-alf中的额外滤波器中的滤波器系数的精度与原始alf设计一致。
[0065]
在一实施例中,cc-alf的滤波器形状与亮度alf滤波器的滤波器形状对准。在一实施例中,cc-alf滤波器可包括具有23个系数的25个抽头,其中最顶部和最底部系数相等,而最左侧和最右侧系数相等。在一实施例中,cc-alf滤波器可包括具有22个系数的25个抽头,其中最顶部,最底部,最左侧和最右侧的系数都相等。在一实施例中,cc-alf滤波器的对称性与alf滤波器的对称性对齐。在一实施例中,当ccalf和亮度alf的滤波器形状相同时,则ccalf的边界处理,包括alf虚拟边界处理,片段(slice)边界/砖块(brick)边界/方格(tile)边界/360面虚拟边界/子-图像边界/图像边界的alf边界处理,与亮度alf的alf边界处理相同。
[0066]
在一实施例中,cc-alf的滤波器形状可以与色度alf滤波器的滤波器形状对准。在一实施例中,cc-alf滤波器可包括具有11个系数的13个抽头,其中顶部和底部系数相等,而左侧和右侧系数相等。在一实施例中,cc-alf滤波器可包括具有10个系数的13个抽头,其中顶部,底部,左侧和右侧系数全部相等。在一实施例中,cc-alf滤波器是对称的,类似于alf滤波器,因此,它包含13个抽头和仅7个系数。在一实施例中,当ccalf和色度alf的滤波器形状相同时,则ccalf的边界处理,包括alf虚拟边界处理,在片段边界/砖边界/方格边界/360面虚拟边界/子-图像边界/图像边界处的alf边界处理,与色度alf的alf边界过程相同。
[0067]
在一实施例中,cc-alf滤波器在色度u和色度v颜色分量之间共享。在一实施例中,在aps中仅存在一个alf_crosscomponent_cbcr_filter_signal_flag。在一示例中,如果存在该标志,则cc-alf系数存在于aps中并且可以被解码。
[0068]
在一实施例中,色度u的cc-alf系数从亮度分量定义,并且可被重新用于色度v。在一实施例中,色度v的cc-alf系数从亮度分量定义,并且可被重新用于色度u。在一实施例中,通过对符号和/或比特-位移信息的额外编码,色度v的cc-alf系数可从色度u的cc-alf系数中获得。在一实施例中,通过对符号和/或比特-位移进行额外编码,色度u的cc-alf系数可从色度v的cc-alf系数中获得。
[0069]
在一实施例中,cc-alf仅被应用于色度分量之一。在一示例中,标志可以在ctb级别,cu级别或块级别被显式地发送,以指示色度分量中的一个还是两个在使用cc-alf。在一
实施例中,如果未被发送,则cc-alf系数被推断为等于零。
[0070]
在一实施例中,slice_cross_component_alf_cb_reuse_temporal_layer_filter从未在片段头中发送,这意味着当ccalf被启用时,必须始终对每个片段发送cc-alf的滤波器选择。在一实施例中,仅存储在aps中的ccalf滤波器系数可被不同的片段或图像引用。即,在不同片段或不同图像之间不存在ccalf滤波器系数的数据依赖性。
[0071]
在另一实施例中,多个cc-alf滤波器可以在一个片段/砖块/方格/图像/中被使用。当多个cc-alf滤波器被使用时,多个cc-alf滤波器的选择可以在ctb级别,cu级别或块级别被显式地发送。在另一实施例中,根据多个色度滤波器的选择,多个cc-alf滤波器的选择被隐式地得出。当多个cc-alf滤波器被使用时,它们可以在一个aps中独立发出,或与多个色度滤波器耦合。例如,两个多滤波器的集合,一个被用于cc-alf,另一个被用于色度滤波器,在一个aps中分别被发送。或在另一种情况下,仅一个多滤波器在一个aps中发送,并且该集合中的每个候选至少包括色度滤波器和cc-alf滤波器中的一个。
[0072]
在另一实施例中,色度alf滤波器和cc-alf滤波器不能被同时使用。即,对于每个要处理的色度样本,最多只能应用色度alf滤波器和cc-alf滤波器之一。在一实施例中,这两个滤波器的滤波器形状可以被进一步统一。在另一实施例中,在一个开/关标志被发送并且该开/关标志指示色度alf滤波器和cc-al滤波器中的一个被应用之后,一个标志被发送用于每个滤波器以指示哪个滤波器类型是色度alf滤波器或cc-alf滤波器。在一实施例中,用于指示色度alf滤波器被启用的一个标志被首先发送,并且如果该标志等于1,则色度alf滤波器被应用。如果该标志为假,则用于指示ccalf滤波器是否被启用的另一标志被发送。如果该标志为真,则ccalf滤波器被使用。否则,没有滤波器被应用。在另一实施例中,用于指示cc-alf滤波器被启用的一个标志被首先发送,并且如果该标志等于1,则cc-alf滤波器被应用。如果该标志为假,则用于指示色度alf滤波器是否被启用的另一个标志被发送。如果该标志为真,则色度alf滤波器被使用。否则,没有滤波器被应用。在以上实施例中,色度alf滤波器或cc-alf滤波器的选择可以是片段级别,图像级别,序列级别,ctb级别或块级别。
[0073]
在另一实施例中,所提出的方法被应用于亮度alf。即,亮度分量的alf输出也受到相应色度采样的影响。在一示例中,两个滤波器被添加,并且一个滤波器的输入是cb分量,而另一滤波器的输入是cr分量。alf输出是这两个额外滤波器和原始滤波器的输出的加权和。在另一种情况下,仅一个滤波器被添加,但是此滤波器的输入是包括cb,cr以及cb和cr平均值的组合之一。
[0074]
方法2:受约束的ccalf-ccalf系数的总和等于0
[0075]
根据该方法,ccalf系数之和被约束。由于此约束,ccalf系数之间的数据冗余被引入,并且特定信息不需要被传输。因此,该方法可以提高编码效率。
[0076]
在cc-alf中,线性滤波器对亮度采样值进行滤波,并从同位(co-located)的滤波输出生成色度通道的残差校正。
[0077]
在本发明的实施例中,所有滤波器的滤波器系数之和受到一定数量n的限制。在一实施例中,为了保持cb和cr分量的色度平均值而不在色度引入任何严重的色彩变化,则建议每个ccalf滤波器的滤波器抽头之和等于0。因此,ccalf滤波器在dc处的响应为0,并将消除所有色度平均值。
[0078]
在一实施例中,当所有滤波器系数都是唯一的时,在知道解码器侧的所有唯一系数的总和(n)以及的唯一滤波器系数的数量(m)时,滤波器的最后唯一系数可被确定。因此,仅m-1个唯一滤波器系数必须被解码。要注意的是,当滤波器系数唯一时,滤波器系数的值不同。
[0079]
在一实施例中,ccalf滤波器中的唯一滤波器系数(m)的数量小于滤波器中系数的总数。图6示出具有7个(m=7)唯一系数c0至c6的3
×
4菱形ccalf的示例。滤波器系数的总数为8。在一实施例中,在知道所有滤波器系数n的总和,仅6个(m-1=6)系数c0至c5必须被解码,并且系数c6可以在解码器处定义如下:
[0080]
c6=n-(2*c0+c1+c2+c3+c4+c5).
[0081]
在一实施例中,唯一系数中的任一可被跳过,而不仅仅是最后一个唯一系数。在一实施例中,在解码器侧系数c2被跳过和被定义。在另一实施例中,在解码器侧系数c5被跳过和被定义。
[0082]
在一实施例中,比特流一致性的要求是第k个交叉分量cb滤波器系数ccalfapscoeffcb[adaptive_parameter_set_id][k][7]的最后一个系数应在[-32,31]。
[0083]
在一实施例中,这一要求应用于第k个交叉分量cb滤波器系数ccalfapscoeffcb[adaptive_parameter_set_id][k][i]中的任一系数,其中i为0到在第k个交叉分量cb滤波器中的系数的数量减去1。
[0084]
在一实施例中,要求比特流一致性:第k个交叉分量cr滤波器系数ccalfapscoeffcr[adaptive_parameter_set_id][k][7]的最后一个系数应在[-32,31]。
[0085]
在一实施例中,该要求被应用于第k个交叉分量的任一系数cr滤波器系数ccalfapscoeffcr[adaptation_parameterset_id][k][i],其中i为0到第k个交叉分量cr滤波器中的系数的数量减去1。
[0086]
在一实施例中,这一要求适用于第k个交叉分量的所有系数cb/cr滤波器系数ccalfapscoeffcb/cr[adaptation_parameter_set_id][k][i],其中i为0到在第k个交叉分量cb/cr滤波器中的系数的数量。
[0087]
方法3:受约束的ccalf-在无损和接近无损编解码的情况下禁用ccalf
[0088]
在hevc中,如果cu使用无损或接近无损模式(包括用于4:4:4内容的调色板模式)进行编码,则所有环路滤波器(即sao,alf,df(去块滤波器)))被禁用。
[0089]
在当前版本的vvc中,当cu以无损模式编码时,所有环路滤波器均会被编码器设置禁用。同时,如果cu使用调色板模式进行编码,则在编码器和解码器侧,sao,alf和df都会被禁用。
[0090]
在本发明的实施例中,当cu使用无损或接近无损模式(包括用于4:4:4内容的调色板模式)进行编码时,在编码器和解码器侧所有环路滤波器必须被禁用。
[0091]
在一实施例中,对于用无损或接近无损模式(包括用于4:4:4内容的调色板模式)编码的cu,在编码器和解码器上ccalf均应被禁用。
[0092]
在一实施例中,当双树被使用来划分编码树节点(treetype等于dual_tree_luma或dual_tree_chroma)时,可以分别对亮度和色度禁用所有环路滤波器(即,可以对亮度和色度采用不同的解决方案)。
[0093]
在一实施例中,当双树被用来划分编码树节点时,treetype等于dual_tree_
chroma,并且至少一个cu(色度cu或与该色度cu相对应的亮度cu)使用无损模式进行编码,则对色度cu,ccalf自动被禁用。
[0094]
在一实施例中,当双树不被用来划分编码树节点时(即,treetype等于single_tree),以及cu中的至少一个(色度cu或与该色度cu相对应的亮度cu)使用无损模式进行编码,则对色度cu,ccalf会自动被禁用。
[0095]
在一实施例中,当双树不被用来划分编码树节点时,treetype等于dual_tree_chroma,并且色度cu使用无损模式进行编码,则对该色度cu,ccalf自动被禁用。
[0096]
在一实施例中,当双树不被用来对编码树节点进行划分时(treetype等于single_tree),并且色度cu使用无损模式进行编码,则对该色度cu,ccalf自动被禁用。
[0097]
在一实施例中,当双树被用来划分编码树节点时(treetype等于dual_tree_chroma),并且色度cu和对应的亮度cu都使用无损模式进行编码,则对色度cu,ccalf自动被禁用。
[0098]
在一实施例中,当双树不被用来对编码树节点进行划分时(treetype等于single_tree),并且色度cu和对应的亮度cu都使用无损模式进行编码,则对色度cu,ccalf为自动被禁用。
[0099]
在一实施例中,如果色度分量cb和cr的残差样本都被编码为单个变换块(例如tu_joint_cbcr_residual_flag[xc][yc]==1)和至少一个cu(cb或cr)使用无损模式进行编码,则对两个色度cu,ccalf均自动被禁用。
[0100]
在一实施例中,如果色度分量cb和cr的残差样本都被编码为单个变换块(例如tu_joint_cbcr_residual_flag[xc][yc]==1)和至少一个cu(cb)或cr)是使用无损模式编码的,那么相应的色度cu,ccalf自动被禁用。
[0101]
方法4:发送ccalf中滤波器的数量
[0102]
为了知道ccalf滤波器的数量,一个额外的语法元素需要被发送。在常规方法中,该额外的语法元素在片段头(slice header,简称sh)中发送。根据jvet-p1008中公开的另一种常规方法(k.misra,et al.,“ce5-related:on the design of cc-alf”,joint video experts team(jvet)of itu-t sg 16wp 3and iso/iec jtc 1/sc 29/wg 11,16th meeting:geneva,ch,1-11october 2019,jvet-p1008-v2),它公开了用于发送ccalf中滤波器数量的语法设计,该设计基于vvc草案6(j.chen,et al.,“cross-component adaptive loop filter for chroma”,joint video experts team(jvet)of itu-t sg 16 wp 3 and iso/iec jtc 1/sc 29/wg 11,15th meeting:gothenburg,se,3-12 july 2019,document:jvet-o2001-ve)。根据jvet-p1008,语法元素alf_ctb_cross_component_cb_idc[]和alf_ctb_cross_component_cr_idc[][]在ctu级别中发送。语法元素alf_ctb_cross_component_cb_idc[][]指示交叉分量cb滤波器是否被应用于cb颜色分量样本。语法元素alf_ctb_cross_component_cr_idc[][]指示交叉分量cr滤波器是否被应用于cr颜色分量样本。如下表所示,两个语法元素都使用截断的莱斯(truncated rice,简称tr)代码进行了二值化处理:
[0103]
表2
[0104][0105][0106]
在表2中,cmax和criceparam是提供给使用截断莱斯的alf_ctb_cross_component_cb_idc[][]和alf_ctb_cross_component_cr_idc[][]的二值化处理的两个输入。二值化处理的详细信息在jvet-o2001-ve中进行了描述。语法元素slice_cross_component_cb_filters_signalled_minus1和slice_cross_component_cr_filters_signalled_minus1在片段头(slice header,简称sh)中发送。
[0107]
在jvet-p1008中,一些语法元素被引入,简要概述如下。slice_cross_component_alf_cb_enabled_flag指定交叉分量cb滤波器是否被应用于cb颜色分量。如果不存在slice_cross_component_alf_cb_enabled_flag,则其被推断为等于0。
[0108]
当slice_cross_component_alf_cb_enabled_flag等于1时,比特流一致性的要求是,对于当前图像的所有片段,slice_cross_component_alf_cb_aps_id所指的alf aps必须相同。slice_cross_component_cb_filters_signalled_minus1加1指定交叉分量cb滤波器的数量。slice_cross_component_cb_filters_signalled_minus1的值应在0到3的范围内。
[0109]
当slice_cross_component_alf_cb_enabled_flag等于1,比特流一致性的要求是:slice_cross_component_cb_filters_signalled_minus1应小于或等于当前片段的slice_cross_component_alf_cb_aps_id所指的alf aps中的alf_cross_component_cb_filters_signalled_minus1的值。
[0110]
slice_cross_component_alf_cr_enabled_flag指定交叉分量cr滤波器是否被应用于cr颜色分量。如果不存在slice_cross_component_alf_cr_enabled_flag,则其被推断为等于0。
[0111]
slice_cross_component_alf_er_aps_id指定与slice_cross_component_alf_cb_aps_id相同,但是用于所指的片段的cr的颜色分量。当slice_cross_component_alf_cr_enabled_flag等于1时,比特流一致性的要求是,对于当前图像的所有片段,slice_cross_component_alf_cr_aps_id所指的alfaps必须相同。
[0112]
slice_cross_component_cr_filters_signalled_minus1加1指定交叉分量cr滤波器的数量。slice_cross_component_cr_filters_signalled_minus1的值应在0到3的范围内。
[0113]
当slice_cross_component_alf_cr_enabled_flag等于1时,比特流一致性的要求是slice_cross_component_cr_filters_signalled_minus1小于或等于当前片段的slice_cross_component_alf_cr_aps_id所指的参考的alf aps中的alf_cross_component_cr_filters_signalled_minus1的值。
[0114]
在本发明的实施例中,pic_cross_component_cb_filters_signalled_minus1,pic_cross_component_cr_filters_signalled_minus1,slice_cross_component_cb_filters_signalled_minus1和slice_cross_component_cr_filters_signalled_minus1不存在于cc-alf语法,以及alf_ctb_cross_component_cb_idc[][]和alf_ctb_cross_component_cr_idc[][]被编码如下表3:
[0115]
表3
[0116][0117][0118]
根据所提出的语法设计,表2的语法slice_cross_component_cb_filters_signalled_minus1和slice_cross_component_cr_filters_signalled_minus1分别由表3的alf_cross_component_cb_filters_signalled_minus1和alf_cross_component_cr_filters_signalled_minus1替换,换句话说,代替使用在片段头中发送的语法元素,滤波器的数量在alf aps中发送并直接被参考以定义用于cc-alf编码的滤波器的数量。因此,与常规语法和信令不同,cc-alf设计与alf设计保持一致。此外,由于图像中的不同片段可引用不同的alfaps,因此,如果alf aps中存在cc-alf滤波器的数量,则每个片段可节省4比特(每个颜色分量可节省2比特)。
[0119]
任一上述提出的方法可以在编码器和/或解码器中实现。例如,任一所提出的方法可在编码器和/或解码器的环内滤波模块中实现。可替代地,任一提出的方法可被实现为耦合到编码器和/或解码器的环内滤波模块的电路。
[0120]
图7示出了根据本发明实施例的重构视频的示例性alf处理的流程图,其中,一个或多个候选滤波器中的每个候选滤波器的滤波器系数的总和被约束为固定值。流程图中所示的步骤可被实现为在编码器或是解码器侧的一个或多个处理器(例如,一个或多个cpu)上可执行的程序代码。流程图中所示的步骤也可以基于硬件来实现,例如被布置为执行流程图中的步骤的一个或多个电子设备或处理器。根据该方法,在步骤710中,重构的样本被接收。在步骤720中,确定目标(跨分量适应性环路滤波器(cross-component adaptive loop filter,简称ccalf),其中目标ccalf属于包括一个或多个候选滤波器的集合,以及在所述一个或多个候选滤波器中的每个候选滤波器的滤波系数的总和被约束为固定值。在步骤730中,目标ccalf被应用于相关的重构亮度样本,以生成目标重构色度样本的ccalf滤波
色度样本。在步骤740中,通过将ccalf滤波色度样本与常规alf滤波色度样本相组合,最终滤波色度样本被生成,其中最终滤波色度样本被用作视频解码输出或被用于进一步的视频编码或解码处理。
[0121]
图8示出了根据本发明实施例的重构视频的示例性alf处理的流程图,其中,用于指示与滤波器集合中的候选滤波器总数有关的值的一个或多个语法元素在aps中被发送或被解析。根据该方法,在步骤810中,重构的样本被接收。在步骤820中,在编码器侧一个或多个语法元素在视频比特流的aps中被发送,或者在解码器侧所述一个或多个语法元素在视频比特流的aps中被解析,其中所述一个或多个语法元素指示与滤波器集合中的候选滤波器的总数有关的值。在步骤830中,目标ccalf被确定,其中目标ccalf属于包括一个或多个候选滤波器的滤波器集合,并且所述一个或多个候选滤波器中的每个候选滤波器的滤波器系数之总和被约束为固定值。在步骤840中,目标ccalf被应用于相关的重构亮度样本,以生成用于目标重构色度样本的ccalf滤波色度样本。在步骤850中,通过将ccalf滤波色度样本和常规alf滤波色度样本组合在一起,最终滤波色度样本被生成,其中最终滤波色度样本被用作视频解码输出或被用于进一步的视频编码或解码处理。
[0122]
所示的流程图旨在说明根据本发明的视频编解码的示例。所属技术领域的技术人员可修改每个步骤,重新布置步骤,拆分步骤或组合步骤以实践本发明,而不背离本发明的精神。在本公开中,特定的语法和语义已被用来说明用于实现本发明的实施例的示例。所属技术领域的技术人员可通过用等同的语法和语义替换语法和语义来实践本发明,而不脱离本发明的精神。
[0123]
上述描述被给出以使所属技术领域的技术人员能够实践在特定应用及其要求的上下文中提供的本发明。对所描述的实施例的各种修改对于所属技术领域的技术人员将是显而易见的,并且本文中定义的一般原理可以应用于其他实施例。因此,本发明不旨在限于所示出和描述的特定实施例,而是与符合本文公开的原理和新颖性特征的最宽范围相一致。在以上详细描述中,示出了各种具体细节以便提供对本发明的透彻理解。然而,所属技术领域的技术人员将理解,本发明可被实施。
[0124]
如上所述的本发明的实施例可以以各种硬件,软件代码或两者的组合来实现。例如,本发明的实施例可以是集成到视频压缩芯片中的一个或多个电路或集成到视频压缩软件中以执行本文描述的处理的程序代码。本发明的实施例还可以是在数字信号处理器(digital signal processor,dsp)上执行以执行本文描述的处理的程序代码。本发明还可涉及由计算机处理器,数字信号处理器,微处理器或现场可程序设计门阵列(field programmable gate arragy,简称fpga)执行的许多功能。该些处理器可被配置为通过执行定义本发明所体现的特定方法的机器可读软件代码或固件代码来执行根据本发明的特定任务。软件代码或固件代码可以不同的程序设计语言和不同的格式或样式来开发。软件代码也可被编译用于不同的目标平台。然而,不同的代码格式,软件代码的样式和语言以及配置代码以执行根据本发明的任务的其他手段将不脱离本发明的精神和范围。
[0125]
在不脱离本发明的精神或基本特征的情况下,本发明可以以其他特定形式实施。所描述的示例在所有方面仅应被认为是说明性的而非限制性的。因此,本发明的范围由所附权利要求而不是前述描述来指示。落在权利要求的等同含义和范围内的所有改变均应包含在其范围之内。
技术特征:
1.一种视频编解码方法,包括:接收颜色图像中的多个重构色度样本和多个相关的重构亮度样本;确定目标跨分量适应性环路滤波器,其中所述目标跨分量适应性环路滤波器属于包括一个或多个候选滤波器的滤波器集合,以及所述一个或多个候选滤波器中的每个候选滤波器的多个滤波器系数的总和被约束为固定值;将所述目标跨分量适应性环路滤波器应用于所述多个相关重构亮度样本以生成目标重构色度样本的跨分量适应性环路滤波器滤波色度样本;以及通过将所述跨分量适应性环路滤波器滤波色度样本与常规适应性环路滤波器相组合,生成最终滤波色度样本,其中所述最终滤波色度样本被用作视频解码输出或被用于进一步的视频编码或解码处理。2.如权利要求1所述的视频编解码方法,其特征在于,所述固定值等于0。3.如权利要求1所述的视频编解码方法,其特征在于,当每个候选滤波器的多个滤波器系数的数量等于m时,在解码器侧每个候选滤波器中仅(m-1)个滤波系数被解码,以及其中m是大于1的整数。4.如权利要求3所述的视频编解码方法,其特征在于,一个滤波器系数,而不是(m-1)个滤波器系数,不在解码器侧被解码或不在编码器侧被编码,以及其中所述一个滤波器系数对应于每个候选滤波器中的所述多个滤波器系数中的任一选择的系数。5.一种视频编解码装置,所述装置包括一个或多个电子电路或处理器被设置为:接收颜色图像中的多个重构色度样本和多个相关的重构亮度样本;确定目标跨分量适应性环路滤波器,其中所述目标跨分量适应性环路滤波器属于包括一个或多个候选滤波器的滤波器集合,以及所述一个或多个候选滤波器中的每个候选滤波器的多个滤波器系数的总和被约束为固定值;将所述目标跨分量适应性环路滤波器应用于所述多个相关重构亮度样本以生成目标重构色度样本的跨分量适应性环路滤波器滤波色度样本;以及通过将所述跨分量适应性环路滤波器滤波色度样本与常规适应性环路滤波器组合,生成最终滤波色度样本,其中所述最终滤波色度样本被用作视频解码输出或被用于进一步的视频编码或解码过程。
技术总结
视频编解码的方法和装置被公开。根据一种方法,用于一个或多个候选跨分量环路滤波器的中的每个滤波器的滤波器系数的总和被约束为固定值。用于指示与滤波器集合中的候选滤波器的总数有关的值的一个或多个语法元素在适应性参数集合(Adaptation Parameter Set,简称APS)中被发送或被解析。APS)中被发送或被解析。APS)中被发送或被解析。
技术研发人员:陈庆晔 欧莱娜
受保护的技术使用者:寰发股份有限公司
技术研发日:2020.09.16
技术公布日:2023/7/7
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/