本发明涉及视频编码系统中的帧内预测。特别地,本发明涉及使用dimd(decoderside intra mode derivation,解码器侧帧内模式推导)或timd(template-based intramode derivation,基于模板的帧内模式推导)的帧内预测模式的位节省技术。
背景技术:
1、通用视频编码(vvc)是由itu-t视频编码专家组(vceg)的联合视频专家组(jvet)和iso/iec运动图像专家组(mpeg)共同制定的最新国际视频编码标准,该标准已作为iso标准发布:iso/iec 23090-3:2021,信息技术-沉浸式媒体的编码表示-第3部分:通用视频编码,2021年2月发布。vvc是在其前身hevc(high efficiency video coding)通过添加更多的编解码工具来提高编解码效率,还可以处理各种类型的视频源,包括3维(3d)视频信号。
2、图1a说明了包含循环处理的示例性自适应帧间/帧内视频编码系统。对于帧内预测,预测数据是根据当前图片中先前编码的视频数据导出的。对于帧间预测112,在编码器侧执行运动估计(me)并且基于me的结果执行运动补偿(mc)以提供从其他图片和运动数据导出的预测数据。开关114选择帧内预测110或帧间预测112并且所选择的预测数据被提供给加法器116以形成预测误差,也称为残差。预测误差然后由变换(t)118和随后的量化(q)120处理。变换和量化的残差然后由熵编码器122编码以包括在对应于压缩视频数据的视频比特流中。与变换系数相关联的比特流然后与辅助信息(例如与帧内预测和帧间预测相关联的运动和编码模式)以及其他信息(例如与应用于底层图像区域的环路滤波器相关联的参数)一起打包。与帧内预测110、帧间预测112和环内滤波器130相关联的辅助信息被提供给熵编码器122,如图1a所示。当使用帧间预测模式时,也必须在编码器端重建一个或多个参考图片。因此,经变换和量化的残差由逆量化(iq)124和逆变换(it)
3、126处理以恢复残差。然后在重建(rec)128处将残差加回到预测资料136以重建视频资料。重建的视频资料可以存储在参考图片缓冲器134中并用于预测其他帧。
4、如图1a所示,输入的视频数据在编码系统中经过一系列处理。由于一系列处理,来自rec128的重建视频数据可能会受到各种损害。因此,环路滤波器130经常在重构视频数据被存储在参考图片缓冲器134中之前应用于重构视频数据以提高视频质量。例如,可以使用去块滤波器(df)、样本自适应偏移(sao)和自适应环路滤波器(alf)。可能需要将环路滤波器信息合并到比特流中,以便解码器可以正确地恢复所需的信息。因此,环路滤波器信息也被提供给熵编码器122以合并到比特流中。图1a中,环路滤波器130在重构样本被存储在参考图片缓冲器134中之前被应用于重构视频。图1a中的系统旨在说明典型视频编码器的示例性结构。它可能对应于高效视频编码(hevc)系统、vp8、vp9、h.264或vvc。
5、如图1b所示,解码器可以使用与编码器相似或相同的功能块,除了变换118和量化120之外,因为解码器只需要逆量化124和逆变换126。替代熵编码器122,解码器使用熵解码器140将视频比特流解码为量化的变换系数和所需的编码信息(例如ilpf信息、帧内预测信息和帧间预测信息)。解码器侧的帧内预测150不需要执行模式搜索。相反,解码器仅需要根据从熵解码器140接收的帧内预测信息生成帧内预测。此外,对于帧间预测,解码器仅需要根据从熵解码器140接收的帧间预测信息执行运动补偿(mc152)而无需运动估计。
6、根据vvc,类似于hevc,输入图片被划分为称为ctu(编码树单元)的非重迭方形块区域。每个ctu都可以划分为一个或多个较小尺寸的编码单元(cu)。生成的cu分区可以是正方形或矩形。此外,vvc将ctu划分为预测单元(pu),作为应用预测过程的单元,例如帧间预测、帧内预测等。
7、vvc标准合并了各种新的编码工具以进一步提高超过hevc标准的编码效率。在各种新的编码工具中,与本发明相关的一些编码工具综述如下。
8、使用树结构划分ctu
9、在hevc中,通过使用表示为编码树的四叉树(qt)结构将ctu分成cu以适应各种局部特性。使用图片间(时间)或图片内(空间)预测对图片区域进行编码的决定是在叶cu级别做出的。每个叶cu可以根据pu分割类型进一步分割成一个、两个或四个pu。在一个pu内部,应用相同的预测过程,并将相关信息以pu为基础传输到解码器。在通过应用基于pu分割类型的预测过程获得残差块之后,叶cu可以根据类似于cu的编码树的另一种四叉树结构被划分为变换单元(tu)。hevc结构的关键特征之一是它具有多个分区概念,包括cu、pu和tu。
10、在vvc中,使用二元和三元分割结构的具有嵌套多类型树的四叉树取代了多分割单元类型的概念,即它除了对于具有对于最大变换长度来说尺寸太大的cu来说,去除了cu、pu和tu概念的分离,并且支持更灵活的cu分区形状。在编码树结构中,cu可以是正方形或长方形。编码树单元(ctu)首先按四叉树(quaternary tree)(也称为quadtree)结构进行分区。然后四叉树叶节点可以进一步划分为多类型树结构。如图2所示,多类型树结构中有四种分割类型,垂直二元分割(split_bt_ver 210),水平二元分割(split_bt_hor 220),垂直三元分割(split_tt_ver 230),水平三元分割(split_tt_hor 240)。多类型树叶节点称为编码单元(cu),除非cu对于最大变换长度来说太大,否则此分段将用于预测和变换处理,而无需进一步划分。这意味着,在大多数情况下,cu、pu和tu在具有嵌套多类型树编码块结构的四叉树中具有相同的块大小。当支持的最大变换长度小于cu颜色分量的宽度或高度时会发生异常。
11、图3示出了具有嵌套多类型树编码树结构的四叉树中的分区分割信息的信令机制。编码树单元(ctu)被视为四叉树的根,并且首先由四叉树结构划分。每个四叉树叶节点(当足够大以允许它时)然后由多类型树结构进一步划分。在多类型树结构中,发送第一标志(mtt_split_cu_flag)以指示节点是否被进一步划分;当一个节点被进一步划分时,第二个标志(mtt_split_cu_vertical_flag)被发送以指示分割方向,然后第三个标志(mtt_split_cu_binary_flag)被发送以指示分割是二元分割还是三元分割。根据mtt_split_cu_vertical_flag和mtt_split_cu_binary_flag的值,推导出一个cu的多类型树分割模式(mttsplitmode),如表1所示。
12、表1–基于多类型树语法元素导出mttsplitmode
13、 mttsplitmode mtt_split_cu_vertical_flag mtt_split_cu_binary_flag split_tt_hor 0 0 split_bt_hor 0 1 split_tt_ver 1 0 split_bt_ver 1 1
14、图4示出了ctu被划分为具有四叉树和嵌套多类型树编码块结构的多个cu,其中粗体块边缘表示四叉树分区,其余边缘表示多类型树分区。具有嵌套多类型树分区的四叉树提供了由cu组成的内容自适应编码树结构。cu的大小可以与ctu一样大,也可以以亮度样本为单位小至4×4。对于4:2:0色度格式,最大色度cb大小为64×64,最小色度cb大小由16个色度样本组成。
15、在vvc中,支持的最大亮度变换大小为64×64,支持的最大色度变换大小为32×32。当cb的宽度或高度大于最大变换宽度或高度时,cb会自动在水平和/或垂直方向上拆分以满足该方向上的变换大小限制。
16、以下参数由用于具有嵌套多类型树编码树方案的四叉树的sps语法元素定义和指定。
17、–ctu尺寸:四叉树的根节点大小
18、–minqtsize:允许的最小四叉树叶节点大小
19、–maxbtsize:允许的最大二叉树根节点大小
20、–maxttsize:最大允许的三叉树根节点大小
21、–maxmttdepth:从四叉树叶节点分割出的多类型树的最大允许深度
22、–minbtsize:允许的最小二叉树叶节点大小
23、–minttsize:允许的最小三叉树叶节点大小
24、在具有嵌套多类型树编码树结构的四叉树的一个示例中,ctu大小被设置为128×128亮度样本和两个对应的64×64块的4:2:0色度样本,minqtsize被设置为16×16,maxbtsize设置为128×128,maxttsize设置为64×64,minbtsize和minttsize(宽度和高度)设置为4×4,maxmttdepth设置为4。树划分首先应用于ctu以生成四叉树叶节点。四叉树叶节点的大小可以从16×16(即minqtsize)到128×128(即ctu大小)。如果叶qt节点为128×128,由于大小超过了maxbtsize和maxttsize(即64×64),二叉树将不再进一步分割。否则,四叉树叶节点可能会被多类型树进一步划分。因此,四叉树叶节点也是多元树的根节点,其多元树深度(mttdepth)为0。当多元树深度达到maxmttdepth(即4)时,被认为不再进一步分割。当多类型树节点的宽度等于minbtsize且小于或等于2*minttsize时,不再考虑进一步水平分割。类似地,当多类型树节点的高度等于minbtsize且小于或等于2*minttsize时,不考虑进一步的垂直分割。
25、在vvc中,编码树方案支持亮度和色度具有单独的块树结构的能力。对于p和b切片,一个ctu中的亮度和色度ctb必须共享相同的编码树结构。然而,对于i切片,亮度和色度可以具有单独的块树结构。当应用分别的块树模式时,亮度ctb被一种编码树结构分割成cu,色度ctb被另一种编码树结构分割成色度cu。这意味着i切片中的cu可能由亮度分量的编码块或两个色度分量的编码块组成,而p或b切片中的cu总是由所有三种颜色分量的编码块组成,除非视频是单色。
26、虚拟管道数据单元(virtual pipeline data units,vpdu)
27、虚拟流水线数据单元(vpdu)被定义为画面中的非重迭单元。在硬件解码器中,连续的vpdu由多个流水线级同时处理。在大多数流水线阶段,vpdu大小与缓冲区大小大致成正比,因此保持vpdu大小较小很重要。在大多数硬件解码器中,vpdu大小可以设置为最大变换块(tb)大小。然而,在vvc中,三叉树(tt)和二叉树(bt)分区可能会导致vpdu大小增加。
28、为了将vpdu大小保持为64x64亮度样本,在vtm中应用以下规范分区限制(具有语法信令修改),如图5所示:
29、–对于宽度或高度或宽度和高度均等于128的cu,不允许进行tt拆分(如图5中的“x”所示)。
30、–对于n≤64的128xncu(即宽度等于128且高度小于128),不允许水平bt。
31、对于n≤64(即高度等于128且宽度小于128)的nx128 cu,不允许垂直bt。在图5中,亮度块大小为128x128。虚线表示块大小为64x64。根据上述约束条件,不允许分区的示例用“x”表示,如图5中的各种示例(510-580)所示。
32、具有67种帧内预测模式的帧内模式编码
33、为了捕获自然视频中呈现的任意边缘方向,vvc中的方向帧内模式的数量从hevc中使用的33个扩展到65个。hevc中没有的新方向模式在图6中被描绘为虚线箭头、平面和dc模式保持不变。这些更密集的方向帧内预测模式适用于所有块大小以及亮度和色度帧内预测。
34、在vvc中,针对非正方形块,几种传统的角度帧内预测模式被自适应地替换为广角(wide-angle)帧内预测模式。
35、在hevc中,每个帧内编码块具有正方形形状并且其每条边的长度是2的幂。因此,不需要除法运算来使用dc模式生成帧内预测器。在vvc中,块可以具有矩形形状,这在一般情况下需要对每个块使用除法运算。为了避免dc预测的除法操作,只有较长的边用于计算非方形块的平均值。
36、为了保持最可能模式(mpm)列表生成的复杂度较低,通过考虑两个可用的相邻帧内模式,使用具有6个mpm的帧内模式编码方法。构建mpm列表考虑以下三个方面:
37、–默认帧内模式
38、–相邻帧内模式
39、–导出的帧内模式。
40、统一的6-mpm列表用于帧内块,而不管是否应用mrl和isp编码工具。mpm列表是基于左侧和上方相邻块的帧内模式构建的。假设左边的模式记为left,上方块的模式记为above,则统一的mpm列表构造如下:
41、–当相邻块不可用时,其帧内模式默认设置为平面。
42、–如果left和above两种模式都是非角度模式:
43、–mpm列表→{平面,dc,v,h,v-4,v+4}
44、–如果left和above模式之一是角度模式,另一个是非角度模式:
45、–将模式max设置为left和above中的较大模式
46、–mpm列表→{平面,max,dc,max-1,max+1,max-2}
47、–如果left和above都是有角度的并且它们不同:
48、–将模式max设置为left和above中的较大模式
49、–如果模式left和above的差异在2到62的范围内,包括
50、·mpm列表→{平面,left,above,dc,max-1,max+1}
51、-否则
52、·mpm列表→{平面,left,above,dc,max-2,max+2}
53、–如果left和above都是有角度的并且它们是相同的:
54、–mpm列表→{平面,left,left-1,left+1,dc,left-2}
55、此外,mpm索引码字的第一个二进制码(bin)是cabac上下文编码的。总共使用了三个上下文,对应于当前帧内块是启用mrl、启用isp还是正常帧内块。
56、在6mpm列表生成过程中,修剪用于去除重复的模式,使得只有独特的模式可以被包括到mpm列表中。对于61种非mpm模式的熵编码,使用截断二进制代码(truncated binarycode,tbc)。
57、非方形块的广角帧内预测
58、常规角度帧内预测方向被定义为顺时针方向从45度到-135度。在vvc中,几种传统的角度帧内预测模式被自适应地替换为非方形块的广角帧内预测模式。替换的模式使用原始模式索引发出信号,原始模式索引在解析后重新映像到广角模式的索引。帧内预测模式总数不变,即67,帧内模式编码方式不变。
59、为了支持这些预测方向,分别如图7a和图7b所示定义了长度为2w+1的顶部参考和长度为2h+1的左侧参考。
60、广角方向模式中替换模式的数量取决于块的纵横比。替换的帧内预测模式如表2所示。
61、表2–被广角模式取代的帧内预测模式
62、
63、
64、在vvc中,支持4:2:2、4:4:4以及4:2:0色度格式。4:2:2色度格式的色度导出模式(derived mode,dm)推导表最初是从hevc移植的,将条目数从35扩展到67,以与帧内预测模式的扩展保持一致。由于hevc规范不支持-135°以下和45°以上的预测角度,亮度帧内预测模式从2到5映像到2。因此,4:2:2色度格式的色度dm推导表更新方式是替换映像表条目的一些值,以更精确地转换色度块的预测角度。
65、解码器端帧内模式推导(dimd)
66、当应用dimd时,两个帧内模式从重建的相邻样本中导出,并且这两个预测与平面模式预测结合,权重从梯度中导出。dimd模式用作替代预测模式,并始终在高复杂度rdo(rate-distortion optimization,率失真最优化)模式下进行检查。
67、为了隐式导出块的帧内预测模式,在编码器和解码器侧都执行纹理梯度分析(texture gradient analysis)。此过程从具有65个条目的空梯度直方图(hog)开始,对应于65个角度模式。这些条目的幅度在纹理梯度分析期间确定。
68、在第一步中,dimd从当前块的左侧和上方分别选取一个t=3列和行的模板(template)。该区域用作基于梯度的帧内预测模式推导的参考。
69、在第二步中,水平和垂直sobel滤波器应用于所有3×3窗口位置,以模板中线的像素为中心。在每个窗口位置,索贝尔滤波器计算纯水平和垂直方向的强度分别为gx和gy。然后,窗口的纹理角度计算为:
70、angle=arctan(gx/gy), (1)
71、可以转换为65种角度帧内预测模式之一。一旦当前窗口的帧内预测模式索引被导出为idx,其在hog[idx]中的条目的幅度通过添加更新:
72、ampl=|gx|+|gy| (2)
73、图8a-c显示了在对模板中的所有像素位置应用上述操作之后计算的hog的示例。图8a图示了为当前块810选择的模板820的示例。模板1020包括当前块上方的t行和当前块左侧的t列。对于当前块的帧内预测,当前块上方和左侧的区域830对应于重构区域,而块下方和右侧的区域840对应于不可用区域。图8b图示了t=3的示例并且hog是针对中间行中的像素860和中间列中的像素862计算的。例如,对于像素852,使用3x3窗口850。图8c图示了对于如从等式(1)确定的角度帧内预测模式,基于等式(2)计算的幅度(ampl)的示例。
74、一旦计算出hog,就选择具有两个最高直方图条的索引作为块的两个隐式导出的帧内预测模式,并进一步与平面模式集合合作为dimd模式的预测。预测融合被应用为上述三个预测变量的加权平均。为此,平面的权重固定为21/64(~1/3)。剩余的43/64(~2/3)权重然后在两个hog ipm之间共享,与它们的hog条的幅度成比例。图9说明了混合过程的示例。如图9所示,根据具有直方图条1110的两个最高条的索引选择两个帧内模式(m1 912和m2914)。三个预测子(pred1 940、pred2942和pred3944)用于形成混合预测。三个预测子对应于将m1、m2和平面帧内模式(分别为920、922和924)应用到参考像素930以形成相应的预测子。三个预测变量由相应的加权因子(ω1,ω2与ω3)950加权。使用加法器952对加权预测变量求和以生成混合预测变量960。
75、此外,将两个隐式导出的帧内模式包含在mpm列表中,以便在构造mpm列表之前执行dimd过程。dimd块的主要导出帧内模式与块一起存储,并用于相邻块的mpm列表构造。
76、基于模板的帧内模式推导(timd)
77、基于模板的帧内模式推导(timd)模式在编码器和解码器处使用相邻模板隐式地推导cu的帧内预测模式,而不是将帧内预测模式发信号通知给解码器。如图10所示,使用每个候选模式的模板的参考样本(1020和1022)生成当前块1010的模板的预测样本(1012和1014)。成本被计算为模板的预测样本和重建样本之间的satd(绝对转换差异之和)。选择成本最小的帧内预测模式作为dimd模式并用于cu的帧内预测。候选模式可以是如vvc中的67种帧内预测模式或扩展到131种帧内预测模式。通常,mpm可以提供线索来指示cu的方向信息。因此,为了减少帧内模式搜索空间并利用cu的特性,可以从mpm列表中隐式导出帧内预测模式。
78、对于mpm中的每个帧内预测模式,计算模板的预测和重建样本之间的satd。选择具有最小satd的前两种帧内预测模式作为timd模式。这两种timd模式在应用pdpc过程后与权重融合,这种加权的帧内预测用于对当前cu进行编码。位置相关帧内预测组合(positiondependent intra prediction combination,pdpc)包含在timd模式的推导中。
79、将两种选择模式的成本与阈值进行比较,在测试中,成本因子2应用如下:
80、costmode2<2*costmode1。
81、其中costmode2为模式2成本,costmode1为模式1成本。
82、如果该条件为真,则应用融合,否则仅使用模式1。模式的权重(weight)根据其satd成本计算如下:
83、weight1=costmode2/(costmode1+costmode2)
84、weight2=1-weight1。
85、在本公开中,公开了改进帧内预测模式以节省位的方法和装置。
技术实现思路
1、公开了一种用于视频编解码的方法和设备。根据该方法,在编码器侧接收与当前块相关联的像素数据或在解码器侧与待解码的当前块相关联的编码数据。当当前块的当前帧内角度预测模式不在可能模式集合中时,根据基于dimd(解码器侧帧内模式推导)或timd(基于模板帧内模式推导)的第一信息,信令发送或者解析用于当前块的当前帧内预测模式的模式语法,其中可能的模式集合包括最可能模式(most probable modes,mpm)列表中的候选模式。基于包括第一信息和模式语法的第二信息生成最终帧内预测子。
2、在一个实施例中,将所有帧内角度预测模式划分为多个集合,并且第一信息对应于基于dimd或timd为当前块确定的目标集合。在另一个实施例中,模式语法与指示目标集合内的当前帧内角度预测模式有关。
3、在一个实施例中,可能的模式集合包括mpm列表中的候选模式、使用除dimd和timd之外的隐式编码工具导出的精确帧内预测模式、或其组合。
4、根据本发明的另一种方法,为当前块确定初始mpm(最可能模式)列表。使用当前块的模板生成一个或多个dimd候选模式。确定与当前块的一个或多个相邻块相关联的一个或多个相邻帧内预测模式。通过将一个或多个附加候选模式添加到初始mpm列表来生成最终mpm列表,其中所述一个或多个附加候选模式包括所述一个或多个dimd候选模式。使用包含最终mpm列表的信息对当前块进行编码或解码。
5、在一个实施例中,所述一个或多个附加候选模式包括所述一个或多个dimd候选模式、所述一个或多个相邻帧内预测模式、所述一个或多个dimd候选模式的一个或多个导出模式、所述一个或多个相邻帧内预测模式的一个或多个导出模式、或其组合。在一个实施例中,所述一个或多个dimd候选模式的所述一个或多个导出模式包括模式编号对应于(一个dimd候选模式+k)的模式,其中k是非零整数。在一个实施例中,所述一个或多个相邻帧内预测模式的所述一个或多个导出模式包括模式编号对应于(一个相邻帧内预测模式+k)的模式,其中k是非零整数。
6、在一个实施例中,所述一个或多个相邻帧内预测模式包括上方相邻块的上方相邻帧内预测模式、顶部相邻块的顶部相邻帧内预测模式或两者。在另一实施例中,在所述一个或多个相邻帧内预测模式的所述一个或多个导出模式之后或在所述一个或多个相邻帧内预测之后,将所述一个或多个dimd候选模式的所述一个或多个导出模式包括在最终mpm列表中。