自适应环路滤波器中的裁剪参数推导
1.相关申请的交叉引用
2.根据适用的专利法和/或依据巴黎公约的规则,本技术是为了及时要求于2019年4月15日提交的国际专利申请no.pct/cn2019/082626的优先权和利益。出于根据法律的所有目的,前述申请的全部公开通过引用而并入,作为本技术的公开的部分。
技术领域
3.本专利文档涉及视频编码和解码技术、设备和系统。
背景技术:4.尽管视频压缩有所进步,但数字视频占互联网和其他数字通信网络上的最大带宽使用。随着能够接收和显示视频的连接用户设备的数量增加,预计对数字视频使用的带宽需求将继续增长。
技术实现要素:5.描述了与数字视频编解码相关的设备、系统和方法,并且具体地,描述了涉及非线性自适应环路滤波中参数的时域预测。所描述的方法可以被应用于现有的视频编解码标准(例如,高效视频编解码(high efficiency video coding,hevc))和未来的视频编解码标准(例如,通用视频编解码(versatile video coding,vvc))或编解码器。
6.在一个代表性方面,所公开的技术可以用于提供一种用于可视媒体处理的方法。该方法包括,为当前视频块配置作为非线性滤波操作的部分的裁剪操作的一个或多个参数;以及基于一个或多个参数,执行当前视频块和当前视频块的比特流表示之间的转换,其中一个或多个参数根据规则进行编解码。
7.在另一个代表性方面,所公开的技术可以用于提供一种用于可视媒体处理的方法。该方法包括,基于当前视频块的特性,确定非线性滤波操作的一个或多个参数;以及基于一个或多个参数,执行当前视频块和当前视频块的比特流表示之间的转换。
8.在又一个代表性方面,所公开的技术可以用于提供一种用于可视媒体处理的方法。该方法包括,为当前视频块配置作为非线性滤波操作的部分的裁剪操作的一个或多个参数;以及基于一个或多个参数,执行当前视频块和当前视频块的比特流表示之间的转换,其中一个或多个参数独立于与非线性滤波操作相关联的至少一个滤波器系数的值而在比特流表示中呈现。
9.在又一个代表性方面,所公开的技术可以用于提供一种用于可视媒体处理的方法。该方法包括,为当前视频块配置作为非线性滤波操作的部分的裁剪操作的一个或多个参数;以及基于一个或多个参数,执行当前视频块和当前视频块的比特流表示之间的转换,其中当前视频块从第i个滤波器继承滤波器系数,并且其中与裁剪操作的一个或多个参数的继承相关联的第一规则不同于与滤波器系数的继承相关联的第二规则。
10.在又一个代表性方面,上述方法以处理器可执行代码的形式体现,并存储在计算
机可读程序介质中。
11.在又一个代表性方面,视频编码器装置可以实施如本文所述的方法。
12.在又一个代表性方面,视频解码器装置可以实施如本文所述的方法。
13.在附图、说明书和权利要求书中更详细地描述了所公开的技术的以上以及其他方面和特征。
附图说明
14.图1示出了用于视频编解码的编码器框图的示例。
15.图2a、图2b和图2c示出了基于几何变换的自适应环路滤波器(geometry transformation
‑
based adaptive loop filter,galf)滤波器形状的示例。
16.图3示出了galf编码器决定的流程图的示例。
17.图4a
‑
图4d示出了用于自适应环路滤波器(adaptive loop filter,alf)分类的示例子采样拉普拉斯计算。
18.图5示出了双边滤波器中使用的邻近样点的示例。
19.图6示出了覆盖权重计算中使用的两个样点的窗口的示例。
20.图7示出了扫描模式的示例。
21.图8a
‑
图8c示出了用于非线性自适应环路滤波中参数的时域预测的示例性方法的流程图。
22.图9是用于实施本文档中描述的视频解码或视频编码技术的硬件平台的示例的框图。
23.图10是其中可以实施所公开的技术的示例视频处理系统的框图。
24.图11示出了用于可视媒体处理的示例方法的流程图。
25.图12示出了用于可视媒体处理的示例方法的流程图。
26.图13示出了用于可视媒体处理的示例方法的流程图。
27.图14示出了用于可视媒体处理的示例方法的流程图。
具体实施方式
28.由于对更高分辨率视频的日益增长的需求,视频编解码方法和技术在现代技术中普遍存在。视频编解码器通常包括压缩或解压缩数字视频的电子电路或软件,并且正在不断改进以提供更高的编解码效率。视频编解码器将未压缩视频转换为压缩格式,反之亦然。视频质量、用于表示视频的数据量(由比特率确定)、编码和解码算法的复杂度、对数据丢失和错误的敏感度、编辑的容易性、随机访问和端到端延迟(延时)之间存在复杂的关系。压缩格式通常符合标准视频压缩规范,例如高效视频编解码(high efficiency video coding,hevc)标准(也称为h.265或mpeg
‑
h第2部分)、待定稿的通用视频编解码(vvc)标准或其他当前和/或未来的视频编解码标准。
29.视频编解码标准主要是通过公知的itu
‑
t和iso/iec标准的发展而演变的。itu
‑
t制定了h.261和h.263,iso/iec制定了mpeg
‑
1和mpeg
‑
4可视化,并且这两个组织联合制定了h.262/mpeg
‑
2视频和h.264/mpeg
‑
4高级视频编解码(advanced video coding,avc)和h.265/hevc标准。自h.262以来,视频编解码标准基于混合视频编解码结构,其中利用了时
域预测加变换编解码。为了探索hevc以外的未来的视频编解码技术,vceg和mpeg于2015年联合成立了联合视频探索小组(joint video exploration team,jvet)。此后,jvet采用了许多新方法,并将其放入名为联合探索模型(joint exploration model,jem)的参考软件中。2018年4月,vceg(q6/16)和iso/iec jtc1 sc29/wg11(mpeg)之间的联合视频专家小组(jvet)成立,以致力于通用视频编解码(vvc)标准,目标是与hevc相比比特率降低50%。
30.所公开的技术的实施例可以被应用于现有的视频编解码标准(例如,hevc、h.265)和未来的标准,以提高运行时性能。在本文档中使用章节标题以提高描述的可读性,并且不以任何方式使讨论或实施例(和/或实现方式)仅限制于各个章节。
31.1色彩空间和色度子采样的示例
32.色彩空间,也称为色彩模型(或色彩系统),是抽象的数学模型,它简单地将色彩的范围描述为数字的元组(tuple),通常为3或4个值或者色彩分量(例如,rgb)。基本上来说,色彩空间是坐标系和子空间的详化(elaboration)。
33.对于视频压缩,最常用的色彩空间是ycbcr和rgb。
34.ycbcr、y'cbcr或y pb/cb pr/cr,也称为ybccr或y'cbcr,是用作视频和数字摄影系统中色彩图像流水线(pipeline)的部分的色彩空间族。y'是亮度分量,而cb和cr是蓝差(blue
‑
difference)和红差(red
‑
difference)色度分量。y'(具有原色(prime))不同于y,y是亮度,其意味着光强是基于伽马校正的rgb原色进行非线性编码的。
35.色度子采样是利用人类视觉系统对色差的敏感度低于对亮度的敏感度,通过对色度信息实施比对亮度信息更小的分辨率来对图像进行编码的实践。
36.1.1 4:4:4色彩格式
37.三个y'cbcr分量中的每一个都具有相同的采样率,因此不存在色度子采样。这种方案有时用于高端电影扫描仪和电影后期制作。
38.1.2 4:2:2色彩格式
39.两个色度分量以亮度的采样率的一半进行采样,例如,水平色度分辨率减半。这将未压缩视频信号的带宽减少了三分之一,而几乎没有视差。
40.1.3 4:2:0色彩格式
41.在4:2:0中,与4:1:1相比,水平采样翻倍,但在该方案中,cb和cr通道仅在每个交替(alternate)线上采样,因此垂直分辨率减半。因此,数据速率相同。cb和cr在水平和垂直方向上均以2为因子进行子采样。有4:2:0方案的三种变体,三种变体具有不同的水平和垂直选址(site)。
42.ο在mpeg
‑
2中,cb和cr是水平共址(cosite)的。cb和cr在垂直方向上位于像素之间(位于间隙中)。
43.ο在jpeg/jfif、h.261和mpeg
‑
1中,cb和cr位于间隙中,在交替亮度样点之间的中间。
44.ο在4:2:0dv中,cb和cr在水平方向上共址。在垂直方向上,它们在交替先上共址。
45.2典型视频编解码器的编解码流程的示例
46.图1示出了vvc的编码器框图的示例,其包含三个环路滤波块:去方块滤波器(deblocking filter,df)、样点自适应偏移(sample adaptive offset,sao)和alf。不同于使用预定义滤波器的df,sao和alf利用当前图片的原始样点,分别通过添加偏移和应用有
限脉冲响应(finite impulse response,fir)滤波器来减少原始样点和重构样点之间的均方误差,编解码的边信息信令通知偏移和滤波器系数。alf位于每个图片的最后处理阶段,并且可以被看作是尝试捕捉和修复先前阶段产生的伪影的工具。
47.3jem中基于几何变换的自适应环路滤波器的示例
48.在jem中,应用具有基于块的滤波器自适应的基于几何变换的自适应环路滤波器(galf)。对于亮度分量,基于局部梯度的方向和活动(activity),为每个2
×
2块选择25个滤波器中的一个。
49.3.1滤波器形状的示例
50.在jem中,可以为亮度分量选择多达三种菱形滤波器形状(如图2a、图2b和图2c所示,分别为5
×
5菱形、7
×
7菱形和9
×
9菱形)。在图片级别信令通知索引,以指示用于亮度分量的滤波器形状。对于图片中的色度分量,总是使用5
×
5菱形形状。
51.3.1.1块分类
52.每个2
×
2块被分类为25个类中的一个。分类索引c基于其方向性d和活动的量化值推导,如下:
[0053][0054]
为了计算d和首先使用1
‑
d拉普拉斯算子计算水平、垂直和两个对角方向的梯度:
[0055][0056][0057][0058][0059]
索引i和j是指2
×
2块中左上样点的坐标,且r(i,j)指示坐标(i,j)处的重构样点。然后,水平和垂直方向的梯度的d最大值和最小值被设置为:
[0060][0061]
并且两个对角方向的梯度的最大值和最小值被设置为:
[0062][0063]
为了推导方向性d的值,将这些值相互比较,并且将这些值与两个阈值t1和t2进行比较:
[0064]
步骤1.如果且都为真,则d设置为0。
[0065]
步骤2.如果从步骤3继续;否则从步骤4继续。
[0066]
步骤3.如果则d设置为2;否则d设置为1。
[0067]
步骤4.如果则d设置为4;否则d设置为3。
[0068]
活动值a被计算为:
[0069][0070]
a被进一步量化到0至4(包括端点)的范围,并且量化值被表示为
[0071]
对于图片中的两个色度分量,不应用分类方法,即对每个色度分量应用单个alf系数集合。
[0072]
3.1.2滤波器系数的几何变换
[0073]
在对每个2
×
2块进行滤波之前,取决于对于该块所计算的梯度值,对滤波器系数f(k,l)应用几何变换,诸如旋转或对角翻转和垂直翻转。这等同于将这些变换应用于滤波器支持区域中的样点。这个想法是通过对齐应用了alf的不同块的方向性,使这些不同块更加类似。
[0074]
介绍了三种几何变换,包括对角、垂直翻转和旋转:
[0075][0076]
这里,k是滤波器的尺寸,并且0≤k,l≤k
‑
1是系数坐标,使得位置(0,0)在左上角,并且位置(k
‑
1,k
‑
1)在右下角。取决于对于该块所计算的梯度值,将变换应用于滤波器系数f(k,l)。表1总结了变换和四个方向的四个梯度之间的关系。
[0077]
表1:对于一个块所计算的梯度和变换的映射
[0078]
梯度值变换g
d2
<g
d1
且g
h
<g
v
无变换g
d2
<g
d1
且g
v
<g
h
对角g
d1
<g
d2
且g
h
<g
v
垂直翻转
g
d1
<g
d2
且g
v
<g
h
旋转
[0079]
3.1.3滤波器参数的信令
[0080]
在jem中,对于第一ctu(coding tree block,编解码树单元)来信令通知galf滤波器参数,即在条带头之后和第一ctu的sao参数之前。可以信令通知多达25个亮度滤波器系数集。为了减少比特开销,可以合并不同分类的滤波器系数。并且,参考图片的galf系数被存储并且被允许作为当前图片的galf系数而重新使用。当前图片可以选择使用为参考图片存储的galf系数,并且旁路(bypass)galf系数信令。在这种情况下,仅信令通知参考图片之一的索引,并且为当前图片继承所指示的参考图片的存储的galf系数。
[0081]
为了支持galf时域预测,维护galf滤波器集的候选列表。在开始对新序列进行解码时,候选列表是空的。在对一个图片进行解码之后,可以将相应的滤波器集添加到候选列表中。一旦候选列表的尺寸达到最大允许值(即,在当前jem中为6),新的滤波器集将按解码顺序覆盖最旧的滤波器集,也就是说,应用先进先出(first
‑
in
‑
first
‑
out,fifo)规则来更新候选列表。为了避免重复,只有当相应的图片不使用galf时域预测时,才能将滤波器集添加到列表中。为了支持时域缩放性,有多个滤波器集的候选列表,并且每个候选列表与时域层相关联。更具体地,由时域层索引(tempidx)分配的每个阵列可以组成先前解码的图片的滤波器集,其tempidx等于较低tempidx。例如,第k个阵列被分配为与等于k的tempidx相关联,并且它仅包含来自tempidx小于或等于k的图片的滤波器集。在对特定图片进行编解码之后,与该图片相关联的滤波器集将被用于更新与等于或更高tempidx相关联的那些阵列。
[0082]
galf系数的时域预测被用于帧间编解码帧,以最小化信令开销。对于帧内帧,时域预测不可用,并且16个固定滤波器的集合被分配给每个类。为了指示固定滤波器的使用,信令通知每个类的标志,并且如果需要,还信令通知所选固定滤波器的索引。即使当为给定类选择固定滤波器时,仍然可以针对该类发送自适应滤波器的系数f(k,l),在这种情况下,将被应用于重构图像的滤波器的系数是两个系数集的和。
[0083]
可以在cu(coding unit,编解码单元)级别控制亮度分量的滤波过程。信令通知标志以指示galf是否被应用于cu的亮度分量。对于色度分量,仅在图片级别指示是否应用galf。
[0084]
3.1.4滤波过程
[0085]
在解码器侧,当对块启用galf时,对块内每个样点r(i,j)进行滤波,得到样点值r
′
(i,j),如下所示,其中l表示滤波器长度,f
m,n
表示滤波器系数,并且f(k,l)表示解码滤波器系数。
[0086][0087]
3.1.5编码器侧滤波器参数的确定过程
[0088]
图3示出了galf的整个编码器决定过程。对于每个cu的亮度样点,编码器决定是否应用galf,并且条带头中包括适当的信令标志。对于色度样点,应用滤波器的决定是基于图片级别而不是cu级别做出的。此外,只有在对图片启用亮度galf时,才检查图片的色度galf。
[0089]
4vvc中基于几何变换的自适应环路滤波器的示例
[0090]
与jem相比,vvc中的galf的当前设计有以下主要改变:
[0091]
1)自适应滤波器形状被移除。对于亮度分量仅允许7
×
7滤波器形状,而对于色度分量允许5
×
5滤波器形状。
[0092]
2)alf参数的时域预测和来自固定滤波器的预测都被移除。
[0093]
3)对于每个ctu,信令通知一个比特标志是启用还是禁用alf。
[0094]
4)类索引的计算是在4
×
4级别而不是2
×
2级别执行的。另外,如jvet
‑
l0147中所提出的,利用用于alf分类的子采样拉普拉斯计算方法。更具体地,不需要为一个块内的每个样点计算水平/垂直/45度对角/135度梯度。相反,利用1:2子采样。
[0095]
在vtm4.0中,自适应环路滤波器的滤波过程执行如下:
[0096]
o(x,y)=∑
(i,j)
w(i,j).i(x+i,y+j)
ꢀꢀꢀꢀꢀꢀꢀꢀ
(11)
[0097]
其中,样点i(x+i,y+j)是输入样点,o(x,y)是滤波后的输出样点(即滤波结果),并且w(i,j)表示滤波器系数。实际上,在vtm4.0中,使用整数算法来实施定点精度计算:
[0098][0099]
其中,l表示滤波器长度,并且其中,w(i,j)是定点精度的滤波器系数。
[0100]
5jvet
‑
n0242中的非线性自适应环路滤波(alf)
[0101]
5.1滤波重制(reformulation)
[0102]
等式(11)可以在不影响编解码效率的情况下用以下表达式进行修订:
[0103]
o(x,y)=i(x,y)+∑
(i,j)≠(0,0)
w(i,j).i(x+i,y+j)
‑
i(x,y))
ꢀꢀꢀ
(13)
[0104]
这里,w(i,j)是与等式(11)中的滤波器系数相同的滤波器系数[除了w(0,0),它在等式(13)中等于1,而它在等式(11)中等于1
‑
∑
(i,j)≠(0,0)
w(i,j)]。
[0105]
5.2修改的滤波器
[0106]
使用上述(13)的滤波器公式,当邻近样点值i(x+i,y+j))与被滤波的当前样点值i(x,y)相差太大时,我们可以通过使用简单的裁剪(clip)函数来减少这些邻近样点值的影响,从而引入简单的非线性,使得afl更高效。
[0107]
在本提案中,alf滤波器被修改如下:
[0108]
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))(14)
[0109]
这里,k(d,b)=min(b,max(
‑
b,d))是裁剪函数,而k(i,j)是裁剪参数,它取决于(i,j)滤波器系数。编码器执行优化以找到最佳k(i,j)。注意,对于整数精度的实现方式,应用了具有舍入∑
(i,j)≠(0,0)
w(i,j)
×
k(i(x+i,y+j)
‑
i(x,y),k(i,j))的移位。
[0110]
在jvet
‑
n0242实现方式中,为每个alf滤波器指定裁剪参数k(i,j),对于每个滤波器系数信令通知一个裁剪值。这意味着对于每个亮度滤波器可以在比特流中信令通知多达12个裁剪值,并且对于色度滤波器可以信令通知多达6个裁剪值。
[0111]
为了限制信令成本和编码器复杂度,我们将裁剪值的评估限制在小的可能值的集合内。在该提案中,我们只使用4个固定值,这4个固定值对于inter和intra片组(tile group)是相同的。
[0112]
因为亮度的局部差的方差通常高于色度,所以我们对亮度和色度滤波器使用两个不同的集合。我们还在每个集合中包括最大样点值(这里,对于10比特的比特深度为1024),因此如果没有必要,则可以禁用裁剪。
[0113]
表2提供了jvet
‑
n0242测试中使用的裁剪值的集合。这4个值是通过在对数域中对
亮度的样点值的整个范围(以10比特编解码)和色度的从4到1024的范围进行大致相等的划分来选择的。
[0114]
更精确地,裁剪值的亮度表通过以下公式获得:
[0115]
其中m=2
10
,n=4。
[0116]
类似地,裁剪值的色度表根据以下公式获得:
[0117]
其中m=2
10
,n=4且a=4。
[0118]
表2:授权的裁剪值
[0119][0120]
通过使用与上表2中的裁剪值的索引相对应的哥伦布(golomb)编码方案,在“alf_data”语法元素中对所选裁剪值进行编解码。该编码方案与滤波器索引的编码方案相同。
[0121]
5.2.1语法、语义
[0122]
由于nlalf,新引入的语法变化(下面用粗体、斜体和下划线字体示出)如下:
[0123]
7.3.4.3自适应环路滤波器数据语法
[0124]
[0125]
[0126][0127]
6jvet
‑
n0427中基于ctu的alf
[0128]
vtm4中采用自适应参数集(adaptive parameter set,aps)。每个aps都包含信令通知的alf滤波器的一个集合,最多支持32个aps。在该提案中,测试条带级别时域滤波器。片组可以重新使用来自aps的alf信息以减少开销。aps作为先进先出(fifo)缓冲区被更新。
[0129]
对于亮度分量,当alf被应用于亮度ctb时,指示在16个固定的、5个时域或1个信令通知的滤波器集(以条带电平信令通知的)之间的选择。仅信令通知滤波器集索引。对于一个条带,仅新的25个滤波器的集合可以被信令通知。如果为一个条带信令通知新的集合,则同一条带中的所有亮度ctb共享该集合。固定滤波器集可以用于预测新的条带级别滤波器集,也可以用作亮度ctb的候选滤波器集。滤波器的总数为64个。
[0130]
对于色度分量,当alf被应用于色度ctb时,如果为条带信令通知新的滤波器,则ctb使用新的滤波器,否则,应用满足时域缩放性约束的最近时域色度滤波器。
[0131]
作为条带级别时域滤波器,aps作为先进先出(fifo)缓冲区被更新。
[0132]
7后重构滤波器
[0133]
7.1扩散滤波器(diffusion filter,df)
[0134]
在jvet
‑
l0157中,提出了扩散滤波器,其中cu的帧内/帧间预测信号可以被扩散滤波器进一步修改。
[0135]
均匀扩散滤波器。均匀扩散滤波器是通过用固定掩膜卷积预测信号来实现的,该固定掩膜被给出为h
i
或h
iv
,定义如下。
[0136]
除了预测信号本身之外,块的左边和上方的一行重构样点被用作滤波信号的输入,其中可以在帧间块避免这些重构样点的使用。
[0137]
令pred是通过帧内或运动补偿预测获得的给定块上的预测信号。为了处理滤波器的边界点,预测信号需要扩展到预测信号pred
ext
。这种扩展预测可以通过两种方式形成:
[0138]
要么,作为中间步骤,将块的左边和上方的一行重构样点添加到预测信号,然后结果信号在所有方向上被进行镜像。或者仅预测信号本身在所有方向上被镜像。后一个扩展用于帧间块。在这种情况下,仅预测信号本身包括扩展预测信号pred
ext
的输入。
[0139]
如果要使用滤波器h
i
,提出用以下公式替代预测信号pred
[0140]
h
i
*pred,
[0141]
使用前述边界扩展。这里,滤波器掩膜h
i
给出为
[0142][0143]
如果要使用滤波器h
iv
,提出用以下公式替代预测信号pred
[0144]
h
iv
*pred
[0145]
这里,滤波器h
iv
给出为
[0146]
h
iv
=h
i
*h
i
*h
i
*h
i
。
[0147]
方向扩散滤波器。不使用信号自适应扩散滤波器,而使用仍然具有固定掩膜的方向滤波器、水平滤波器h
hor
和垂直滤波器h
ver
。更精确地,与先前章节的掩膜h
i
相对应的均匀扩散滤波被简单地限制为仅沿垂直方向或沿水平方向被应用。垂直滤波器通过将固定滤波器掩膜应用到预测信号来实现,并且水平滤波器通过使用转置掩膜来实现,其中固定滤波器掩膜如下:
[0148][0149]
7.2双边滤波器(bilateral filter,bf)
[0150]
在jvet
‑
l0406中提出双边滤波器,并且它总是应用于非零变换系数和条带量化参数大于17的亮度块。因此,不需要信令通知双边滤波器的使用。如果应用了双边滤波器,则在逆变换之后立即对解码样点执行双边滤波器。此外,滤波器参数(即权重)是从编解码信息中显式推导的。
[0151]
滤波过程定义为:
[0152][0153]
这里,p
0,0
是当前样点的强度,且p
′
0,0
是当前样点的修正强度,p
k,0
和w
k
分别是第k个邻近样点的强度和加权参数。图5中描绘了一个当前样点及其四个邻近样点(即,k=4)的
示例。
[0154]
更具体地,与第k个邻近样点相关联的权重w
k
(x)定义如下:
[0155]
w
k
(x)=distance
k
×
range
k
(x)。
ꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0156]
这里,
[0157]
且且
[0158]
这里,σ
d
取决于编解码模式和编解码块尺寸。当tu被进一步划分时,所描述的滤波过程被应用于帧内编解码块和帧间编解码块,以实现并行处理。
[0159]
为了更好地捕获视频信号的统计特性,并提高滤波器的性能,从等式(2)得出的权重函数通过σ
d
参数进行调整,如表4所示,该参数σ
d
取决于编解码模式和块分割参数(最小尺寸)。
[0160]
表4:不同块尺寸和编解码模式的σ
d
的值
[0161]
min(块宽度,块高度)帧内模式帧间模式4826287252其他5232
[0162]
为了进一步提高编解码性能,当tu未被划分时,对于帧间编解码块,当前样点和其邻近样点中的一个之间的强度差被覆盖当前样点和邻近样点的两个窗口之间的代表性强度差替代。因此,滤波过程的方程式修正为:
[0163][0164]
这里,p
k,m
和p
0,m
分别表示以p
k,0
和p
0,0
为中心的窗口内的第m个样点值。在本提案中,窗口尺寸设置为3
×
3。图6中描绘了覆盖p
2,0
和p
0,0
的两个窗口的示例。
[0165]
7.3阿达玛变换域滤波器(hadamard transform domain filter,hf)
[0166]
在jvet
‑
k0068中,1d阿达玛变换域中的环路滤波器,在重构后应用于cu级别,并且具有无乘法实现方式。所提出的滤波器被应用于满足预定义条件的所有cu块,并且滤波器参数从编解码信息中推导。
[0167]
排除4
×
4块,且如果条带量化参数大于17,则提出的滤波总是应用于具有非零变换系数的亮度重构块。滤波器参数从编解码信息中显式推导。如果应用了所提出的滤波器,则在逆变换之后立即对解码样点执行提出的滤波器。
[0168]
对于来自重构块的每个像素,像素处理包括以下步骤:
[0169]
ο根据扫描模式扫描包括当前像素的处理像素周围的4个邻近像素
[0170]
ο读取像素的4点阿达玛变换
[0171]
ο基于以下公式的频谱滤波:
[0172]
[0173]
这里,(i)是阿达玛频谱中频谱分量的索引,r(i)是与索引相对应的重构像素的频谱分量,σ是使用以下等式、从编解码器量化参数qp推导的滤波参数:
[0174]
σ=2
(1+0.126*(qp
‑
27))
。
[0175]
图7中示出了扫描模式的示例,其中a是当前像素,而{b,c,d}是周围像素。
[0176]
对于位于cu边界上的像素,扫描模式被调整以确保所有需要的像素都在当前cu内。
[0177]
8虚拟流水线数据单元(virtual pipelining data unit,vpdu)
[0178]
虚拟流水线数据单元(vpdu)被定义为图片中不重叠的mxm
‑
亮度(l)/nxn
‑
色度(c)单元。在硬件解码器中,连续的vpdu由多个流水线阶段同时处理;不同的阶段同时处理不同的vpdu。在大多数流水线阶段,vpdu尺寸大致与缓冲区尺寸成正比,因此保持vpdu尺寸很重要。在hevc硬件解码器中,vpdu尺寸被设置为最大变换块(transform block,tb)尺寸。将最大tb尺寸从32
×
32
‑
l/16
×
16
‑
c(如在hevc)扩大到64
×
64
‑
l/32
×
32
‑
c(如在当前vvc)可以带来编解码增益,与hevc相比,这预计会产生4倍的vpdu尺寸(64
×
64
‑
l/32
×
32
‑
c)。然而,除了四叉树(quadtree,qt)编解码单元(cu)分割之外,在vvc中还采用了三叉树(ternary tree,tt)和二叉树(binary tree,bt),用于实现额外的编解码增益,并且tt和bt划分可以递归地应用于128
×
128
‑
l/64
×
64
‑
c编解码树块(ctu),这据说与hevc相比导致16倍的vpdu尺寸(128
×
128
‑
l/64
×
64
‑
c)。
[0179]
在vvc的当前设计中,vpdu尺寸被定义为64
×
64
‑
l/32
×
32
‑
c。
[0180]
9现有实现方式的缺点
[0181]
jvet
‑
n0242中的非线性alf(non
‑
linear alf,nlalf)设计有以下问题:
[0182]
(1)galf的分类过程依赖于梯度和在应用alf之前利用重构样点的拉普拉斯活动。然而,分类结果可能不准确。例如,对于一个样点,其与其邻居之间的差可能相当类似,而对于另一个样点,其与一个邻居之间的差可能太不同,并且对于所有其他样点,差可能太小。对于这两种情况,它们可能被分类为可能不合理的一个类索引。
[0183]
(2)裁剪参数与滤波器系数相关联。然而,由于滤波器合并过程,一个滤波器可以用于多个类。此外,对于具有相同类索引的两个块(在当前galf设计中为0
…
24),滤波器系数和裁剪参数是相同的。然而,这两个块可以具有不同的特性,例如,所选几何变换可以不同。使用相同的裁剪参数可能是次优的。
[0184]
(3)裁剪参数的索引是每个非零滤波器系数信令通知的,这需要在解析(parse)阶段构造滤波器系数。对于硬件实现方式,这种设计是不期望的。
[0185]
(4)在时域预测过程中,一个块可以从先前编解码的帧中继承滤波器系数。需要研究如何处理裁剪参数。
[0186]
(5)裁剪函数k(d,b)=min(b,max(
‑
b,d)),其中b为上限,
‑
b为下限,d为输入。上限和下限的相等幅度的限制可能是次优的。
[0187]
10非线性alf中参数的时域预测的示例性方法
[0188]
当前公开的技术的实施例克服了现有实现方式的缺点,从而提供具有更高编解码效率的视频编解码。基于所公开的技术,非线性自适应环路滤波中的参数的时域预测可以增强现有的和未来的视频编解码标准,这将在以下针对各种实施方式描述的示例中进行阐述。下面提供的公开技术的示例解释了一般概念,并且不意味着解释为限制。在一个示例
中,除非明确指出相反的情况,否则这些示例中描述的各种特征可以被组合。
[0189]
在这些示例中,一个滤波器可以与多个滤波器系数相关联。滤波器集合表示多个滤波器。由f
i
表示第i个滤波器,并且由f
i
k表示其相关联的滤波器系数,诸如变量k表示与f
i
相关联的第k个滤波器系数,例如,其可以与图2中的ck相对应。
[0190]
1.提出根据编解码信息来确定nlalf参数(例如,开/关控制标志、裁剪参数)。
[0191]
a.nlalf参数(例如,开/关控制标志、裁剪参数)可以取决于编解码模式信息。
[0192]
i.在一个示例中,要选择哪些nlalf参数可以由编解码模式(诸如帧内或非帧内模式)确定。
[0193]
ii.在一个示例中,要选择哪些nlalf参数可以由编解码模式(诸如帧内或帧间模式)确定。
[0194]
iii.在一个示例中,要选择哪些nlalf参数可以由编解码模式(诸如ibc或非ibc模式)确定。
[0195]
b.nlalf参数(例如,开/关控制标志、裁剪参数)可以取决于变换信息。
[0196]
i.在一个示例中,这些参数可以取决于是否应用了变换跳过。
[0197]
c.nlalf参数(例如,开/关控制标志、裁剪参数)可以取决于残差信息。
[0198]
i.在一个示例中,这些参数可以取决于块是否包含非零系数。
[0199]
d.nlalf参数(例如,开/关控制标志、裁剪参数)可以取决于片组类型/图片类型。
[0200]
e.nlalf参数(例如,开/关控制标志、裁剪参数)可以取决于与一个片/片组/条带等相关联的时域层信息/参考图片信息。
[0201]
i.在一个示例中,这些参数可以取决于所有参考图片是否与比当前图片更小的poc值相关联。
[0202]
ii.在一个示例中,这些参数可以取决于所有参考图片是否与比当前图片更小或与当前图片相等的poc值相关联。
[0203]
f.提出根据与一个块相关联的参考图片/运动信息来确定nlalf参数(例如,开/关控制标志、裁剪参数)。
[0204]
2.提出根据几何变换来确定nlalf参数(例如,开/关控制标志、裁剪参数)。
[0205]
a.在一个示例中,对于两个mxn块,即使这些参数与相同的滤波器相关联(例如,由于相同的类索引),相关联的nlalf参数(例如,裁剪参数)也可以不同。
[0206]
b.在一个示例中,对于一个滤波器系数,可以信令通知多于一个裁剪参数的指示。
[0207]
i.在一个示例中,多少裁剪参数/或裁剪参数的索引或者裁剪参数的其他表示可以取决于允许的几何变换的数量。
[0208]
ii.在一个示例中,可以应用与一个滤波器参数相关联的裁剪参数/裁剪参数的索引的预测编解码。
[0209]
1)在一个示例中,一个样点或块的一个滤波器的裁剪参数可以由用于空域/时域相邻或非相邻的邻近样点或块的另一个滤波器的另一裁剪参数预测。
[0210]
3.提出裁剪函数的上限和下限的幅度可以不相等。
[0211]
a.在一个示例中,可以信令通知一个裁剪函数的上限和下限的指示。
[0212]
i.可替代地,此外,可以应用上限和下限之间的预测编解码。
[0213]
4.提出以固定长度对裁剪参数(诸如索引)的指示进行直接编解码。
[0214]
a.在一个示例中,这些参数中的每一个可以以n比特(例如,n设置为2)进行编解码。
[0215]
i.在一个示例中,n可以是固定的;
[0216]
ii.在一个示例中,n可以被信令通知;
[0217]
iii.在一个示例中,n可以取决于编解码信息,诸如qp、图片大小等。
[0218]
b.可替代地,这些参数可以以最大值n用截断一元方法进行编解码。
[0219]
i.在一个示例中,n可以是固定的;
[0220]
ii.在一个示例中,n可以被信令通知;
[0221]
iii.在一个示例中,n可以取决于编解码信息,诸如qp、图片大小等。
[0222]
c.可替代地,对于一个滤波器/一个滤波器集,这些参数可以以固定顺序、用指数
‑
哥伦布(exponential
‑
golomb)方法进行编解码。
[0223]
d.可替代地,这些参数可以以游程长度编解码(run
‑
length coding)进行编解码。
[0224]
i.在一个示例中,对于每个滤波器,裁剪参数的索引可以首先被编解码为“游程”,并且连续的相同裁剪参数的数量被编解码为“长度”。
[0225]
ii.在一个示例中,对于所有滤波器中的每个第k个滤波器系数,与f
i
相关联的裁剪参数的索引可以首先被编解码为“游程”,并且其他滤波器中的相同裁剪参数的数量被编解码为“长度”。
[0226]
e.在一个示例中,可以应用裁剪参数(诸如索引)的指示的预测编解码。
[0227]
i.在一个示例中,预测编解码可以被应用于一个滤波器内的裁剪参数。
[0228]
ii.在一个示例中,预测编解码可以被应用于不同滤波器当中的裁剪参数。
[0229]
1)在一个示例中,预测编解码可以被应用于一个色彩分量的不同滤波器当中的裁剪参数。
[0230]
2)在一个示例中,预测编解码可以被应用于多个色彩分量的不同滤波器当中的裁剪参数。
[0231]
3)在一个示例中,预测编解码可以被应用于用于不同样点或块的滤波器的裁剪参数。
[0232]
iii.在一个示例中,预测编解码可以被应用于在不同aps中信令通知的裁剪参数。
[0233]
5.提出对裁剪参数的解析和滤波器系数的构造进行解耦。
[0234]
a.在一个示例中,裁剪参数(例如,裁剪参数的索引)的解析独立于滤波器系数的值。
[0235]
b.在一个示例中,当滤波器系数等于0时,相关联的裁剪参数的指示仍可以被信令通知。
[0236]
6.当一个块从第i个滤波器继承滤波器系数时,与第i个滤波器相关联的裁剪参数可能不被继承。
[0237]
a.在一个示例中,当对一个块启用时域预测时,可以信令通知是否使用非局部alf(应用裁剪与否),而不直接继承相关联的裁剪参数。
[0238]
i.在一个示例中,如果确定应用裁剪,则相关联的裁剪参数也可以被继承。
[0239]
b.在一个示例中,假设从第i个滤波器继承/预测滤波器系数,从第j个滤波器继承/预测裁剪参数,则i可以不等于j。
[0240]
c.在一个示例中,假设从第i个滤波器继承/预测滤波器系数,从第j个滤波器继承/预测裁剪参数,则第i个滤波器和第j个滤波器可以与不同的滤波器集相关联。
[0241]
i.在一个示例中,第i个滤波器可以与第一图片/片组/片/条带相关联,并且第j个滤波器可以与第二图片/片组/片/条带相关联。
[0242]
ii.在一个示例中,i不等于j。可替代地,i等于j
[0243]
d.在一个示例中,可以信令通知与哪个滤波器相关联的裁剪参数的指示,诸如滤波器索引。
[0244]
e.在一个示例中,可以信令通知与哪个滤波器集相关联的裁剪参数的指示,诸如aps索引。
[0245]
i.可替代地,此外,可以进一步信令通知滤波索引。
[0246]
7.在分类过程中,可以利用裁剪的样点差,而不直接使用样点差。
[0247]
a.在一个示例中,在梯度计算过程中,可以使用裁剪的样点差或裁剪的梯度。
[0248]
b.在一个示例中,在活动计算过程中,可以使用裁剪的样点差或裁剪的梯度。
[0249]
c.在一个示例中,以下等式可以用于计算垂直梯度:
[0250]
v
k,l
=|clip1(r(k,l)
‑
r(k,l
‑
1))+clip2(r(k,l)
‑
r(k,l+1))|
[0251]
其中,clip1和clip2是两个裁剪函数。
[0252]
d.在一个示例中,以下等式可以用于计算水平梯度:
[0253]
h
k,l
=|clip1(r(k,l)
‑
r(k
‑
1,l))+clip2(r(k,l)
‑
r(k+1,l))|
[0254]
其中,clip1和clip2是两个裁剪函数。
[0255]
8.是否应用裁剪操作可以取决于滤波过程中要使用的样点的位置(诸如章节5.2中的i(x+i,y+j))。
[0256]
a.在一个示例中,如果滤波器支持中的样点不位于cu/pu/tu/图片/片/片组边界,则可以禁用裁剪。
[0257]
b.在一个示例中,如果滤波器支持中的样点位于cu/pu/tu/图片/片/片组/ctu/虚拟流水线数据单元(vpdu)边界,则可以应用裁剪。
[0258]
c.可替代地,是否应用裁剪操作可以取决于在滤波过程中要使用的、距cu/pu/tu/图片/片/片组/ctu/vpdu边界的样点的距离(诸如章节5.2中的i(x+i,y+j))。
[0259]
i.在一个示例中,距离可以是预定义的(例如,n像素)。
[0260]
ii.在一个示例中,距离可以被信令通知。
[0261]
9.自适应环路滤波器过程中使用的滤波器形状(也称为滤波器支持)可以取决于色彩表示。
[0262]
a.在一个示例中,当色彩格式为4:4:4时,所有分量(诸如y、cb、cr)的滤波器支持应该相同。
[0263]
i.例如,滤波器支持为7
×
7菱形,如图2b所示。
[0264]
ii.例如,滤波器支持为5
×
5菱形,如图2a所示。
[0265]
b.在一个示例中,当色彩格式为rgb时,所有分量的支持区域。
[0266]
i.例如,滤波器支持为7
×
7菱形,如图2b所示。
[0267]
ii.例如,滤波器支持为5
×
5菱形,如图2a所示。
[0268]
上述示例可以被结合到下面描述的方法(例如,方法800、810和820)的上下文中,
这些方法可以在视频解码器或视频编码器处实施。
[0269]
图8a示出了用于视频处理的示例性方法的流程图。方法800包括,在步骤802,基于当前视频块的特性,确定非线性滤波操作的一个或多个参数。
[0270]
方法800包括,在步骤804,基于一个或多个参数,执行当前视频块和当前视频块的比特流表示之间的转换。
[0271]
在一些实施例中,当前视频块的特性是当前视频块的编解码模式。在示例中,当前视频块的编解码模式是帧内模式、非帧内模式、帧内块复制(ibc)模式或非ibc模式。
[0272]
在一些实施例中,特性是变换信息。在示例中,变换信息包括被应用于当前视频块的变换跳过的指示。
[0273]
在一些实施例中,特性是残差信息。在示例中,残差信息包括当前视频块中的零值系数。
[0274]
在一些实施例中,特性是片组类型或者包括当前视频块的片组或图片的图片类型。
[0275]
在一些实施例中,特性是与包括当前视频块的片、片组、图片或条带相关联的时域层信息或参考信息。
[0276]
在一些实施例中,特性是与当前视频块相关联的参考图片或运动信息。
[0277]
在一些实施例中,特性是几何变换。
[0278]
在一些实施例中,一个或多个参数包括开/关控制标志或者裁剪函数的一个或多个参数。
[0279]
在一些实施例中,裁剪函数的上限的幅度不同于裁剪函数的下限的幅度。在示例中,预测编解码被应用在裁剪函数的上限和下限之间。
[0280]
图8b示出了用于视频处理的示例性方法的流程图。方法810包括,在步骤812,为当前视频块配置作为非线性滤波操作的部分的裁剪操作的一个或多个参数。
[0281]
方法810包括,在步骤814,基于一个或多个参数,执行当前视频块和当前视频块的比特流表示之间的转换。
[0282]
在一些实施例中,一个或多个参数以固定长度n比特进行编解码。在其他实施例中,一个或多个参数以最大值n用截断一元方法进行编解码。在示例中,n是固定的。在另一示例中,n被信令通知。在又一示例中,n基于当前视频块的编解码信息,其中该编解码信息包括量化参数或包括当前视频块的图片的大小。
[0283]
在一些实施例中,对于一个滤波器或滤波器集,一个或多个参数以固定顺序、用指数
‑
哥伦布方法进行编解码。
[0284]
在一些实施例中,一个或多个参数以游程长度编解码进行编解码。
[0285]
在一些实施例中,一个或多个参数独立于至少一个滤波器系数的值被信令通知。
[0286]
在一些实施例中,一个或多个参数还包括滤波器系数,其中当前视频块从第i个滤波器继承滤波器系数,并且其中裁剪函数的一个或多个参数从不同于第i个滤波器的第j个滤波器继承。
[0287]
图8c示出了用于视频处理的示例性方法的流程图。方法820包括,在步骤822,配置包括裁剪操作的非线性滤波操作。
[0288]
方法820包括,在步骤824,基于非线性滤波操作,执行当前视频块和当前视频块的
比特流表示之间的转换。
[0289]
在一些实施例中,方法820还包括执行梯度计算过程的步骤,其中该梯度计算过程使用使用裁剪操作生成的裁剪的样点差或裁剪的梯度。在其他实施例中,方法820还包括执行活动计算过程的步骤,其中该活动计算过程使用使用裁剪操作生成的裁剪的样点差或裁剪的梯度。在示例中,裁剪的梯度包括垂直梯度,其中该垂直梯度被计算为v
k,l
=|clip1(r(k,l)
‑
r(k,l
‑
1))+clip2r(k,l)
‑
r(k,l+1))|。在另一示例中,裁剪的梯度包括水平梯度,其中该水平梯度被计算为h
k,l
=|clip1(r(k,l)
‑
r(k
‑
1,l))+clip2(r(k,l)
‑
r(k+1,l))|,其中clip1和clip2分别是第一裁剪函数和第二裁剪函数。
[0290]
在一些实施例中,执行转换包括对当前视频块的一个或多个样点进行滤波,并且裁剪操作的操作基于一个或多个样点的位置来配置。
[0291]
在一些实施例中,一个或多个样点的位置是编解码单元(cu)、预测单元(pu)、变换单元(tu)、图片、片、片组、编解码树单元(ctu)或虚拟流水线数据单元(vpdu)的边界。
[0292]
在一些实施例中,在方法800、810和820的上下文中,非线性滤波操作中使用的滤波器的形状基于色彩表示。在示例中,色彩表示包括4:4:4色彩格式或rgb色彩格式。在另一示例中,滤波器是菱形滤波器。
[0293]
在一些实施例中,在方法800、810和820的上下文中,非线性滤波操作是非线性自适应环路滤波操作。
[0294]
11所公开的技术的示例实现方式
[0295]
图9是视频处理装置900的框图。装置900可以用于实施本文描述的方法中的一个或多个。装置900可以体现在智能手机、平板计算机、计算机、物联网(iot)接收器等中。装置900可以包括一个或多个处理器902、一个或多个存储器904和视频处理硬件906。(多个)处理器902可以被配置为实施本文档中描述的一个或多个方法(包括但不限于方法800、810和820)。存储器(多个存储器)904可以用于存储用于实施本文描述的方法和技术的数据和代码。视频处理硬件906可以用于在硬件电路中实施本文档中描述的一些技术。
[0296]
在一些实施例中,视频编解码方法可以使用如参考图9所述的在硬件平台上实施的装置来实施。
[0297]
图10是示出其中可以实施本文公开的各种技术的示例视频处理系统1000的框图。各种实现方式可以包括系统1000的一些或全部组件。系统1000可以包括用于接收视频内容的输入1002。视频内容可以以原始或未压缩格式接收,例如,8或10比特多分量像素值,或者可以以压缩或编码格式接收。输入1002可以表示网络接口、外设总线接口或存储接口。网络接口的示例包括有线接口(诸如以太网、无源光网络(passive optical network,pon)等)和无线接口(诸如wi
‑
fi或蜂窝接口)。
[0298]
系统1000可以包括编解码组件1004,其可以实施本文档中描述的各种编解码或编码方法。编解码组件1004可以降低从输入端1002到编解码组件1004的输出端的视频的平均比特率,以产生视频的编解码表示。因此,编解码技术有时被称为视频压缩或视频转码技术。编解码组件1004的输出可以被存储,或者经由连接的通信进行传输,如组件1006所示。组件1008可以使用在输入端1002处接收到的存储或传送的视频的比特流(或编解码)表示来生成发送到显示接口1010的像素值或可显示视频。从比特流表示生成用户可观看的视频的过程有时被称为视频解压缩。此外,尽管某些视频处理操作被称为“编解码”操作或工具,
但是应当理解,编解码工具或操作在编码器处使用,并且将由解码器来执行与编解码结果相反的相应的解码工具或操作。
[0299]
外围总线接口或显示接口的示例可以包括通用串行总线(universal serial bus,usb)或高清晰度多媒体接口(high definition multimedia interface,hdmi)或显示端口等。存储接口的示例包括sata(serial advanced technology attachment,串行高级技术附件)、pci、ide接口等。本文档中描述的技术可以体现在各种电子设备中,诸如移动电话、膝上型计算机、智能手机或能够执行数字数据处理和/或视频显示的其他设备。
[0300]
图11示出了用于可视媒体处理的示例方法的流程图。结合本文档的章节10中的示例4讨论本流程图的步骤。在步骤1102,该过程为当前视频块配置作为非线性滤波操作的部分的裁剪操作的一个或多个参数。在步骤1104,该过程基于一个或多个参数,执行当前视频块和当前视频块的比特流表示之间的转换,其中一个或多个参数根据规则进行编解码。
[0301]
图12示出了用于可视媒体处理的示例方法的流程图。结合本文档的章节10中的示例1讨论本流程图的步骤。在步骤1202,该过程基于当前视频块的特性,确定非线性滤波操作的一个或多个参数。在步骤1204,该过程基于一个或多个参数,执行当前视频块和当前视频块的比特流表示之间的转换。
[0302]
图13示出了用于可视媒体处理的示例方法的流程图。结合本文档的章节10中的示例5讨论本流程图的步骤。在步骤1302,该过程为当前视频块配置作为非线性滤波操作的部分的裁剪操作的一个或多个参数。在步骤1304,该过程基于一个或多个参数,执行当前视频块和当前视频块的比特流表示之间的转换,其中一个或多个参数独立于与非线性滤波操作相关联的至少一个滤波器系数的值而在比特流表示中呈现。
[0303]
图14示出了用于可视媒体处理的示例方法的流程图。结合本文档的章节10中的示例6讨论本流程图的步骤。在步骤1402,该过程为当前视频块配置作为非线性滤波操作的部分的裁剪操作的一个或多个参数。在步骤1404,该过程基于一个或多个参数,执行当前视频块和当前视频块的比特流表示之间的转换,其中当前视频块从第i个滤波器继承滤波器系数,并且其中与裁剪操作的一个或多个参数的继承相关联的第一规则不同于与滤波器系数的继承相关联的第二规则。
[0304]
现在以基于条款的格式呈现本文所讨论的各种实施例。
[0305]
a1.一种用于可视媒体处理的方法,包括:
[0306]
为当前视频块配置作为非线性滤波操作的部分的裁剪操作的一个或多个参数;以及
[0307]
基于一个或多个参数,执行当前视频块和当前视频块的比特流表示之间的转换,其中一个或多个参数根据规则进行编解码。
[0308]
a2.根据条款a1所述的方法,其中,规则指定以固定长度n比特对一个或多个参数进行编解码。
[0309]
a3.根据条款a1所述的方法,其中,规则指定基于最大值n、用截断一元方法对一个或多个参数进行编解码。
[0310]
a4.根据条款a1
‑
a3中任一项或多项所述的方法,其中,n是固定的。
[0311]
a5.根据条款a1
‑
a3中任一项或多项所述的方法,其中,n在比特流表示中被信令通知。
[0312]
a6.根据条款a1
‑
a3中任一项或多项所述的方法,其中,n基于当前视频块的编解码信息,其中该编解码信息包括量化参数或包括当前视频块的图片的大小。
[0313]
a7.根据条款a1所述的方法,其中,非线性滤波操作基于滤波器,其中规则指定,对于一个滤波器或滤波器集,以固定顺序、用指数
‑
哥伦布方法对一个或多个参数进行编解码。
[0314]
a8.根据条款a1所述的方法,其中,规则指定基于游程长度编解码方法对一个或多个参数进行编解码。
[0315]
a9.根据条款a5所述的方法,其中,规则还指定,游程长度编解码方法的游程对应于一个或多个参数的索引,并且游程长度编解码方法的长度对应于一个或多个参数中的相同的连续参数的数量。
[0316]
a10.根据条款a1所述的方法,其中,规则指定基于预测编解码对一个或多个参数进行编解码。
[0317]
a11.根据条款a10所述的方法,其中,预测编解码被应用于一个滤波器内的一个或多个参数。
[0318]
a12.根据条款a10所述的方法,其中,预测编解码被应用于不同滤波器当中的一个或多个参数。
[0319]
a13.根据条款a12所述的方法,其中,预测编解码被应用于用于一个色彩分量的不同滤波器当中的一个或多个参数。
[0320]
a14.根据条款a12所述的方法,其中,预测编解码被应用于用于不同色彩分量的不同滤波器当中的一个或多个参数。
[0321]
a15.根据条款a12所述的方法,其中,预测编解码被应用于用于当前视频块的不同样点的不同滤波器当中的一个或多个参数。
[0322]
a16.根据条款a12所述的方法,其中,预测编解码被应用于用于不同视频块的不同滤波器当中的一个或多个参数。
[0323]
a17.根据条款a11所述的方法,其中,一个或多个参数作为字段被包括在不同的自适应参数集(aps)中。
[0324]
a18.根据条款a1至a17中任一项或多项所述的方法,其中,非线性滤波操作是自适应环路滤波器(alf)操作,其中该alf操作包括基于不同方向上的梯度计算来确定滤波器索引。
[0325]
a19.根据条款a1至a17中任一项或多项所述的方法,其中,一个或多个参数包括裁剪索引。
[0326]
b1.一种用于可视媒体处理的方法,包括:
[0327]
基于当前视频块的特性,确定非线性滤波操作的一个或多个参数;以及
[0328]
基于一个或多个参数,执行当前视频块和当前视频块的比特流表示之间的转换。
[0329]
b2.根据条款b1所述的方法,其中,当前视频块的特性是当前视频块的编解码模式。
[0330]
b3.根据条款b2所述的方法,其中,当前视频块的编解码模式是帧内模式、非帧内模式、帧内块复制(ibc)模式或非ibc模式。
[0331]
b4.根据条款b1所述的方法,其中,特性是变换信息。
[0332]
b5.根据条款b4所述的方法,其中,变换信息包括被应用于当前视频块的变换跳过的指示。
[0333]
b6.根据条款b1所述的方法,其中,特性是残差信息。
[0334]
b7.根据条款b6所述的方法,其中,残差信息包括当前视频块中的零值系数。
[0335]
b8.根据条款b1所述的方法,其中,特性是片组类型或者包括当前视频块的片组或图片的图片类型。
[0336]
b9.根据条款b1所述的方法,其中,特性是与包括当前视频块的片、片组、图片或条带相关联的时域层信息或参考信息。
[0337]
b10.根据条款b1所述的方法,其中,特性是与当前视频块相关联的参考图片或运动信息。
[0338]
b11.根据条款b1所述的方法,其中,特性是几何变换。
[0339]
b12.根据条款b1至b11中任一项或多项的方法,其中,一个或多个参数包括开/关控制标志和/或裁剪函数的一个或多个参数。
[0340]
b13.根据条款b12所述的方法,其中,裁剪函数的上限的幅度不同于裁剪函数的下限的幅度。
[0341]
b14.根据条款b13所述的方法,其中,预测编解码被应用在裁剪函数的上限和下限之间。
[0342]
b15.根据条款b12所述的方法,其中,裁剪函数的上限和裁剪函数的下限作为字段被包括在比特流表示中。
[0343]
b16.根据条款b10所述的方法,其中,非线性滤波操作包括使用第一滤波器和第二滤波器,并且其中第二滤波器的一个或多个参数是使用第一滤波器的一个或多个参数预测的。
[0344]
b17.根据条款b10所述的方法,其中,第一滤波器和第二滤波器被应用于当前视频块的不同样点集合。
[0345]
b18.根据条款b10所述的方法,其中,第一滤波器和第二滤波器被应用于与不同视频块相关联的样点。
[0346]
b19.根据条款a1至b18中任一项或多项所述的方法,其中,在非线性滤波操作中使用的滤波器的形状基于与当前视频块相关联的样点的色彩表示。
[0347]
b20.根据条款b19所述的方法,其中,色彩表示包括4:4:4色彩格式或rgb色彩格式。
[0348]
b21.根据条款b19所述的方法,其中,滤波器是菱形滤波器。
[0349]
b22.根据条款b19所述的方法,其中,菱形滤波器的尺寸为5x5或7x7。
[0350]
b23.根据条款b1至b22中任一项或多项所述的方法,其中,非线性滤波操作是非线性自适应环路滤波操作。
[0351]
b24.根据条款b1至b23中任一项或多项所述的方法,其中,非线性滤波操作是自适应环路滤波器(alf)操作,其中该alf操作包括基于不同方向上的梯度计算来确定滤波器索引。
[0352]
b25.根据条款b1至b23中任一项或多项所述的方法,其中,一个或多个参数包括裁剪索引。
[0353]
b26.根据条款a1
‑
b25中任一项所述的方法,其中,转换包括从当前视频块生成比特流表示。
[0354]
b27.根据条款a1
‑
b25中任一项所述的方法,其中,转换包括从比特流表示生成当前视频块的像素值。
[0355]
b28.一种包括处理器的视频编码器装置,该处理器被配置为实施根据条款a1
‑
b25中任一项或多项所述的方法。
[0356]
b29.一种包括处理器的视频解码器装置,该处理器被配置为实施根据条款a1
‑
b25中任一项或多项所述的方法。
[0357]
b30.一种存储有代码的计算机可读介质,该代码体现用于实施根据条款a1
‑
b25中任一项或多项所述的方法的处理器可执行指令。
[0358]
c1.一种用于可视媒体处理的方法,包括:
[0359]
为当前视频块配置作为非线性滤波操作的部分的裁剪操作的一个或多个参数;以及
[0360]
基于一个或多个参数,执行当前视频块和当前视频块的比特流表示之间的转换,其中一个或多个参数独立于与非线性滤波操作相关联的至少一个滤波器系数的值而在比特流表示中呈现。
[0361]
c2.根据条款c1所述的方法,其中,在至少一个滤波器系数的值为零的情况下,一个或多个参数在比特流表示中被呈现。
[0362]
c3.根据条款c1
‑
c2中任一项或多项所述的方法,其中,一个或多个参数在比特流表示中被呈现,而与至少一个滤波器系数的值无关。
[0363]
c4.根据条款c1至c3中任一项或多项所述的方法,其中非线性滤波操作是自适应环路滤波器(alf)操作,其中该alf操作包括基于不同方向上的梯度计算来确定滤波器索引。
[0364]
c5.根据条款c1至c3中任一项或多项所述的方法,其中,一个或多个参数包括裁剪索引。
[0365]
d1.一种用于可视媒体处理的方法,包括:
[0366]
为当前视频块配置作为非线性滤波操作的部分的裁剪操作的一个或多个参数;以及
[0367]
基于一个或多个参数,执行当前视频块和当前视频块的比特流表示之间的转换,其中当前视频块从第i个滤波器继承滤波器系数,并且其中与裁剪操作的一个或多个参数的继承相关联的第一规则不同于与滤波器系数的继承相关联的第二规则。
[0368]
d2.根据条款d1所述的方法,其中,第一规则指定排除从第i个滤波器继承裁剪操作的一个或多个参数。
[0369]
d3.根据条款d1所述的方法,还包括:
[0370]
在识别出对当前视频块启用时域预测时,确定应用还是禁用裁剪操作。
[0371]
d4.根据条款d1所述的方法,还包括:
[0372]
在识别出对当前视频块启用时域预测时,确定应用还是排除裁剪操作的一个或多个参数的继承。
[0373]
d5.根据条款d1所述的方法,其中,第一规则指定从第j个滤波器继承裁剪操作的
一个或多个参数。
[0374]
d6.根据条款d1所述的方法,其中,第一规则指定从第j个滤波器继承裁剪操作的一个或多个参数,并且其中第j个滤波器和第i个滤波器与不同的滤波器集相关联。
[0375]
d7.根据条款d6所述的方法,其中,第j个滤波器和第i个滤波器与不同的图片和/或片组和/或片和/或条带相关联。
[0376]
d8.根据条款d6所述的方法,其中,第j个滤波器和第i个滤波器相同。
[0377]
d9.根据条款d5所述的方法,其中,第j个滤波器和第i个滤波器不同。
[0378]
d10.根据条款d1所述的方法,其中,第一规则指定将裁剪操作的一个或多个参数作为字段包括在比特流表示中。
[0379]
d11.根据条款d10所述的方法,其中,字段包括自适应参数集(aps)索引。
[0380]
d12.根据条款d1
‑
d11中任一项或多项所述的方法,其中,裁剪操作包括计算裁剪的样点差或裁剪的梯度。
[0381]
d13.根据条款d12所述的方法,其中,裁剪的梯度包括垂直梯度,其中该垂直梯度被计算为
[0382]
v_(k,l)=|clip1(r(k,l)
‑
r(k,l
‑
1))+clip2(r(k,l)
‑
r(k,l+1))|,其中clip1和clip2分别是第一裁剪函数和第二裁剪函数,并且r(i,j)表示当前视频块的样点。
[0383]
d14.根据条款d12所述的方法,其中,裁剪的梯度包括水平梯度,其中该水平梯度被计算为
[0384]
h_(k,l)=|clip1(r(k,l)
‑
r(k
‑
1,l))+clip2(r(k,l)
‑
r(k+1,l))|,其中clip1和clip2分别是第一裁剪函数和第二裁剪函数,并且r(i,j)表示当前视频块的样点。
[0385]
d15.根据条款d1至d14中任一项或多项所述的方法,还包括:
[0386]
基于在滤波操作中使用的样点的位置,确定选择性地启用还是禁用裁剪操作。
[0387]
d16.根据条款d15所述的方法,其中,如果样点不位于以下中的一个或多个的边界处,则禁用裁剪操作:编解码单元、分割单元、变换单元、图片、片或片组。
[0388]
d17.根据条款d15所述的方法,其中,如果样点位于以下中的一个或多个的边界处,则启用裁剪操作:编解码单元、分割单元、变换单元、图片、片、片组、编解码树单元或虚拟流水线数据单元。
[0389]
d18.根据条款d15所述的方法,其中,位置是关于样点和以下中的一个或多个的边界之间的距离的:编解码单元、分割单元、变换单元、图片、片、片组、编解码树单元或虚拟流水线数据单元。
[0390]
d19.根据条款d18所述的方法,其中,距离是预定义的。
[0391]
d20.根据条款d18所述的方法,其中,距离在比特流表示中被信令通知。
[0392]
d21.根据条款d1至d20中任一项或多项所述的方法,其中,在非线性滤波操作中使用的滤波器的形状基于与当前视频块相关联的样点的色彩表示。
[0393]
d22.根据条款d21所述的方法,其中,色彩表示包括4:4:4色彩格式或rgb色彩格式。
[0394]
d23.根据条款d21所述的方法,其中,滤波器是菱形滤波器。
[0395]
d24.根据条款d23所述的方法,其中,菱形滤波器的尺寸为5x5或7x7。
[0396]
d25.根据条款d1至d24中任一项或多项所述的方法,其中,非线性滤波操作是自适
应环路滤波(alf)操作,其中该alf操作包括基于不同方向上的梯度计算来确定滤波器索引。
[0397]
d26.根据条款d1至d24中任一项或多项所述的方法,其中,一个或多个参数包括裁剪索引。
[0398]
d27.根据条款c1
‑
d26中任一项所述的方法,其中,转换包括从当前视频块生成比特流表示。
[0399]
d28.根据条款c1
‑
d26中任一项所述的方法,其中,转换包括从比特流表示生成当前视频块的像素值。
[0400]
d29.一种包括处理器的视频编码器装置,该处理器被配置为实施根据条款c1
‑
d26中任一项或多项所述的方法。
[0401]
d30.一种包括处理器的视频解码器装置,该处理器被配置为实施根据条款c1
‑
d26中任一项或多项所述的方法。
[0402]
d31.一种存储有代码的计算机可读介质,该代码体现用于实施根据条款c1
‑
d26中任一项或多项所述的方法的处理器可执行指令。
[0403]
在本文档中,术语“视频处理”或“可视媒体处理”或“可视媒体的处理”可以指视频编码、视频解码、视频压缩或视频解压缩。例如,可以在从视频的像素表示到相应的比特流表示的转换期间应用视频压缩算法,反之亦然。例如,当前视频块的比特流表示可以对应于比特流内的共位或分布在不同位置的比特,如语法所定义的。例如,可以根据变换的和编解码的误差残差值并且还使用头部中的比特以及比特流中的其他字段来对宏块进行编码。此外,在转换期间,解码器可以基于该确定,在知道一些字段可能存在或不存在的情况下解析比特流,如以上解决方案中所述。类似地,编码器可以确定是否包括某些语法字段,并通过从编解码表示中包括或排除这些语法字段来相应地生成编解码表示。
[0404]
根据前述内容,应当理解,出于说明的目的,本文已经描述了当前公开的技术的具体实施例,但是在不脱离本发明的范围的情况下,可以进行各种修改。因此,除了所附权利要求之外,当前公开的技术不受限制。
[0405]
本专利文档中描述的主题和功能操作的实现方式可以在各种系统、数字电子电路或计算机软件、固件或硬件中实现,包括本说明书中公开的结构及其结构等同物,或者它们中的一个或多个的组合。本说明书中描述的主题的实现方式可以被实现为一个或多个计算机程序产品,即,编码在有形和非暂时性计算机可读介质上的计算机程序指令的一个或多个模块,用于由数据处理装置执行或控制数据处理装置的操作。计算机可读介质可以是机器可读存储设备、机器可读存储基底、存储器设备、实现机器可读传播信号的合成物质或它们中的一个或多个的组合。术语“数据处理单元”或“数据处理装置”涵盖用于处理数据的所有装置、设备和机器,例如包括可编程处理器、计算机、或者多个处理器或计算机。除了硬件之外,该装置可以包括为所讨论的计算机程序创建运行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
[0406]
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言进行编写,包括编译或解释语言,并且其可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程或适于在计算环境中使用的其他单元。计算机程序不一定对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的部分中(例如,存储在标记语言
文档中的一个或多个脚本),存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件中(例如,存储一个或多个模块、子程序或部分代码的文件)。计算机程序可以被部署为在一个计算机或位于一个站点或分布在多个站点并通过通信网络互连的多个计算机上运行。
[0407]
本说明书中描述的过程和逻辑流程可以由运行一个或多个计算机程序的一个或多个可编程处理器来执行,以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路来执行,并且设备也可以被实施为专用逻辑电路,例如,现场可编程门阵列(field programmable gate array,fpga)或专用集成电路(application specific integrated circuit,asic)。
[0408]
举例来说,适于运行计算机程序的处理器包括通用和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘,或者可操作地耦合到这样的一个或多个大容量存储设备,以从其接收数据,或向其传送数据,或两者兼有。然而,计算机不需要这样的设备。适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如,电eprom、eeprom和闪存设备。处理器和存储器可以由专用逻辑电路来补充或并入其中。
[0409]
本说明书和附图仅被认为是示例性的,其中示例性意味着示例。如本文所使用的,单数形式“一”、“一个”和“该”也旨在包括复数形式,除非上下文中明确指示。此外,“或”的使用旨在包括“和/或”,除非上下文另有明确指示。
[0410]
尽管本专利文档包含许多细节,但是这些细节不应被解释为对任何发明的范围或可能要求保护的内容的限制,而是对特定发明的特定实施例特有的特征的描述。本专利文档中在单独实施例的上下文中描述的某些特征也可以在单个实施例中以组合来实现。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独或以任何合适的子组合来实现。此外,尽管特征可以在上面被描述为在某些组合中起作用,甚至最初也是这样要求保护的,但是在某些情况下,来自所要求保护的组合的一个或多个特征可以从该组合中删除,并且所要求保护的组合可以针对子组合或子组合的变体。
[0411]
类似地,尽管在附图中以特定的顺序描述了操作,但是这不应该被理解为要求以所示的特定的顺序或顺序的顺序来执行这些操作,或者执行所有示出的操作,以获得期望的结果。此外,在本专利文档中描述的实施例中的各种系统组件的分离不应该被理解为在所有实施例中都需要这样的分离。
[0412]
仅描述了几个实施方式和示例,并且可以基于本专利文档中描述和示出的内容进行其他实施、增强和变化。