一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于视频编解码的预测相关残差缩放的方法和装置与流程

2022-11-09 22:21:57 来源:中国专利 TAG:

用于视频编解码的预测相关残差缩放的方法和装置
1.相关申请的交叉引用
2.本技术要求于2020年3月27日提交第63/001,229号美国临时申请的优先权,该临时申请的全部内容通过引用完整地并入本文以用于所有目的。
技术领域
3.本技术总体上涉及视频编解码和压缩。更具体地,本技术涉及使用预测相关残差缩放对编码单元进行视频编解码的系统和方法。


背景技术:

4.本部分提供了与本技术相关的背景信息。本部分中包含的信息不一定被解释为现有技术。
5.可以使用各种视频编解码技术中的任一种来压缩视频数据。可以根据一个或更多个视频编解码标准来执行视频编解码。一些说明性视频编解码标准包括:通用视频编解码(vvc)、联合探索测试模型(jem)编解码、高效视频编解码(h.265/hevc)、高级视频编解码(h.264/avc)和运动图片专家组(mpeg)编解码。
6.视频编解码通常使用利用了视频图像或序列中固有的冗余的预测方法(如帧间预测、帧内预测等)。视频编解码技术的一个目标是将视频数据压缩成使用较低比特率的形式,同时避免或最小化视频质量的下降。
7.hevc标准的第一个版本于2013年10月最终确定,与上一代视频编解码标准h.264/mpeg avc相比,该hevc标准的第一个版本节省了约50%的比特率或等效感知质量。尽管hevc标准比之前的标准在编解码方面有了显著的改进,但是有证据表明,与hevc相比,利用额外的编解码工具可以实现更高的编解码效率。基于此,vceg和mpeg都开始了对未来视频编解码标准化的新编解码技术的探索工作。itu-t vecg和iso/iec mpeg于2015年10月成立了一个联合视频探索团队(jvet),以开始对能够显著提高编解码效率的先进技术进行重大研究。jvet通过在hevc测试模型(hm)之上集成若干个额外的编解码工具来维护一种被称为联合探索模型(jem)的参考软件。
8.2017年10月,itu-t和iso/iec发布了关于具有超越hevc能力的视频压缩的联合提案(cfp)。2018年4月,在第10次jvet会议上收到并评估了23份cfp回复,这些回复表明压缩效率比hevc提高了约40%。基于这种评估结果,jvet启动了一个新项目,以开发名为通用视频编解码(vvc)的新一代视频编解码标准。在同一月,一个称为vvc测试模型(vtm)的参考软件被建立,以用于演示vvc标准的参考实施。
9.视频编解码中利用的预测方法通常包括进行空间(帧内)预测和/或时间(帧间)预测以减少或移除视频数据中固有的冗余,并且通常与基于块的视频编解码相关联。如hevc那样,vvc构建在基于块的混合视频编解码框架之上。
10.在基于块的视频编解码中,输入视频信号被逐块地处理。针对每个块(也称为编码单元(cu)),可以执行空间预测和/或时间预测。在较新的视频编解码标准(诸如,当前的vvc
设计)中,可以基于不仅包括四叉树还包括二叉树和/或三叉树的多类型树结构来进一步对块进行划分。这允许更好地适应变化的局部特征。
11.空间预测(也称为“帧内预测”)使用来自同一视频图片/条带中的已编码的相邻块的样本(被称为参考样本)的像素来预测当前块。空间预测减少了视频信号中固有的空间冗余。
12.在解码过程期间,视频比特流首先在熵解码单元处被熵解码。编码模式和预测信息被发送到空间预测单元(当帧内编码时)或时间预测单元(当帧间编码时),以形成预测块。残差变换系数被发送到逆量化单元和逆变换单元,以重构残差块。然后,预测块和残差块被相加在一起。所重构的块在被存储在参考图片存储器中之前可以进一步经过环内滤波。参考图片存储器中的所重构的视频然后被发送出去,以驱动显示设备,并且用于预测未来的视频块。
13.在较新的视频编解码标准(诸如,当前的vvc设计)中,可以在环内滤波之前应用具有色度缩放的亮度映射(lmcs)的编解码工具。lmcs旨在调整输入信号的动态范围,以提高编码效率。
14.然而,lmcs的当前设计招致对计算复杂性和片上存储器的额外要求,这是因为其在不同的解码模块处使用不同的域映射。此外,lmcs的当前设计使用不同的亮度预测样本值来导出亮度和色度缩放因子,这会引入额外的复杂性。此外,lmcs的当前设计增加了色度残差样本重构的时延,这是因为它需要将色度残差样本重构推迟直到成功完成亮度预测样本之后,这进而需要成功完成对复杂的帧间模式编解码工具的相继应用,该复杂的帧间模式编解码工具诸如解码器侧运动矢量推导(dmvr)、双向光流(bdof)以及联合帧间帧内预测(ciip)。当前的lmcs设计还在色度残差缩放因子推导过程中执行了不必要的裁剪操作,从而进一步增加了对计算复杂度和片上内存的额外要求。


技术实现要素:

15.本部分提供了本技术的一般概述,而不是对其全部范围或所有特征的全面公开。
16.根据本技术的第一方面,在编码单元(cu)的解码过程中,从与该cu所在的第二预定区域相邻的第一预定区域中选择多个重构的亮度样本;计算多个重构的亮度样本的平均值;以及直接使用多个重构的亮度样本的平均值,而不进行任何裁剪,来推导用于对所述cu进行解码的色度残差缩放因子。
17.根据本技术的第二方面,一种计算设备,包括:一个或更多个处理器、存储器以及存储在该存储器中的多个程序,其中,当由一个或更多个处理器执行该多个程序时,该多个程序使得该计算设备执行在本技术的第一方面中所描述的操作。
18.根据本技术的第三方面,一种存储用于由具有一个或更多个处理器的计算设备执行的多个程序的非暂时性计算机可读存储介质,其中,当由一个或更多个处理器执行该多个程序时,该多个程序使得该计算设备执行在本技术的第一方面中所描述的操作。
附图说明
19.在下文中,将结合附图来描述本技术的说明性、非限制性实施例的集合。相关领域的普通技术人员可以基于本文中给出的示例来实现结构、方法或功能的变型,并且这种变
型被包含在本技术的范围内。在不存在冲突的情况下,不同实施例的教导可以但不必彼此组合。
20.图1是示出了可以结合多种视频编解码标准使用的说明性的基于块的混合视频编码器的框图。
21.图2是示出了可以结合多种视频编解码标准使用的说明性的视频解码器的框图。
22.图3是可以结合多种视频编解码标准使用的多类型树结构中的块分割的图示。
23.图4是图示了应用了lmcs的解码过程的流程图。
24.图5是bdof过程的图示。
25.图6是图示了当dmvr、bdof和ciip全部启用时lmcs中的色度残差缩放的工作流程的流程图。
26.图7是图示了预测相关残差缩放(pdrs)过程的步骤的流程图。
27.图8是图示了当pdrs过程被应用在lmcs过程中时的解码过程的工作流程的流程图。
28.图9是仅使用预测样本来导出缩放因子所导致的残差映射误差的图示。
29.图10是图示了一个色度样本重构过程的步骤的流程图。
30.图11是图示了另一个色度样本重构过程的步骤的流程图。
31.图12是图示了另一个色度样本重构过程的一个示例中的lmcs解码过程的工作流程的流程图,其中没有应用dmvr、bdof和ciip来生成用于色度缩放的亮度预测样本。
32.图13是图示了另一个色度样本重构过程的另一个示例中的lmcs解码过程的工作流程的流程图,其中应用了初始单向预测信号来生成用于色度缩放的亮度预测样本。
33.图14是图示了一个色度残差样本重构过程的步骤的流程图。
34.图15是图示了该色度残差样本重构过程的一个或更多个实施例中的lmcs解码过程的工作流程的流程图。
35.图16是图示了该色度残差样本重构过程的另一个实施例中的lmcs解码过程的工作流程的流程图。
36.图17是图示了另一个色度残差样本重构过程的步骤的流程图。
37.图18是图示了本技术的第一方面的步骤的流程图。
38.图19是本技术的第一方面的实施例所涉及的区域的图示。
具体实施方式
39.本技术中使用的术语旨在说明特定示例,而不是限制本技术。本技术以及所附权利要求中使用的单数形式“一”和“该”也指代复数形式,除非上下文中明确包含其他含义。应当领会的是,本文中使用的术语“和/或”指代一个或更多个相关联的所列项目的任何或所有可能的组合。
40.应当理解的是,尽管术语“第一”、“第二”、“第三”等在本文中可以用于描述各种信息,但是该信息不应当被这些术语所限制。这些术语仅用于区分一个类别的信息与另一类别的信息。例如,在不脱离本技术的范围的情况下,第一信息可以被视为第二信息;并且类似地,第二信息也可以被视为第一信息。如本文中所使用的,取决于上下文,术语“如果”可以被理解为意味着“当
……
时”或“在
……
时”或“响应于
……”

41.遍及本说明书对采用单数或复数形式的“一个实施例”、“实施例”、“另一个实施例”等的引用意味着:结合实施例描述的一个或更多个特定特征、结构或特性被包括在本技术的至少一个实施例中。因此,遍及本说明书的各个地方采用单数或复数形式的短语“在一个实施例中”或“在实施例中”、“在另一个实施例中”等的出现不一定全部指代相同实施例。此外,一个或更多个实施例中的特定特征、结构或特性可以以任何合适的方式来组合。
42.从概念上讲,许多视频编解码标准是类似的,包括前面在背景技术部分中提到的那些标准。例如,几乎所有视频编解码标准都使用基于块的处理,并且共享类似的视频编解码框图来实现视频压缩。
43.图1示出了可以与多种视频编解码标准结合使用的说明性的基于块的混合视频编码器100的框图。在编码器100中,视频帧被分区成多个视频块以用于处理。针对每个给定的视频块,基于帧间预测方法或帧内预测方法来形成预测。在帧间预测中,基于来自先前重构的帧的像素,通过运动估计和运动补偿来形成一个或更多个预测器。在帧内预测中,基于当前帧中的重构像素来形成预测器。通过模式决策,可以选择最佳预测器来预测当前块。
44.表示当前视频块与其预测器之间的差的预测残差被发送到变换电路102。变换系数然后从变换电路102被发送到量化电路104,以用于熵减少。量化系数然后被馈送到熵编码电路106,以生成压缩的视频比特流。如图1中所示,来自帧间预测电路和/或帧内预测电路112的预测相关信息110(如视频块分区信息、运动矢量、参考图片索引和帧内预测模式)也通过熵编码电路106被馈送并保存到压缩的视频比特流114中。
45.在编码器100中,还需要解码器相关电路,以便出于预测的目的来重构像素。首先,通过逆向量化116和逆向变换电路118来重构预测残差。将该重构的预测残差与块预测器120进行组合,以生成当前视频块的未经滤波的重构像素。
46.时间预测(也称为“帧间预测”或“运动补偿预测”)使用来自已经编码的视频图片的重构像素来预测当前视频块。时间预测减少了视频信号中固有的时间冗余。用于给定cu的时间预测信号通常由一个或更多个运动矢量(mv)用信号发送(signaled),这些运动矢量指示当前cu与其时间参考之间的运动量和运动方向。此外,如果支持多个参考图片,则额外发送一个参考图片索引,该参考图片索引用于标识该时间预测信号来自参考图片存储器中的哪个参考图片。
47.在执行空间和/或时间预测之后,编码器100中的帧内/帧间模式决策电路121例如基于速率失真优化方法来选择最佳预测模式。然后,从当前视频块中减去块预测器120;并且使用变换电路102和量化电路104对所得的预测残差进行去相关。由逆向量化电路116对所得的量化残差系数进行逆向量化,并且由逆向变换电路118进行逆向变换,以形成重构的残差,该重构的残差然后被添加回到预测块,以形成cu的重构信号。此外,在将重构的cu放入图片缓冲器117的参考图片存储器中并用于编码未来的视频块之前,可以在重构的cu上应用进一步的环内滤波器115,诸如去块滤波器、采样自适应偏移(sao)和/或自适应环内滤波器(alf)。为了形成输出视频比特流114,编码模式(帧间或帧内)、预测模式信息、运动信息、以及量化残差系数全部被发送到熵编码单元106,以被进一步压缩和打包以形成比特流。
48.例如,去块滤波器在avc、hevc、以及vvc的当前版本中是可用的。在hevc中,定义了被称为sao(样本自适应偏移)的额外的环内滤波器,以进一步提高编码效率。在vvc标准的
当前版本中,正在积极研究被称为alf(自适应环路滤波器)的又一种环内滤波器,并且其具有很大机会被纳入最终标准中。
49.这些环内滤波器操作是可选的。执行这些操作帮助提高编码效率和视觉质量。作为编码器100做出的决策,它们也可以被关闭,以节省计算复杂性。
50.应当注意的是,帧内预测通常基于未经滤波的重构像素,而如果编码器100打开了这些滤波器选项,则帧间预测基于经滤波的重构像素。
51.图2是阐述了可以结合多种视频编解码标准使用的说明性的视频解码器200的框图。该解码器200类似于图1的编码器100中存在的重构相关部分。在解码器200(图2)中,首先通过熵解码202对传入视频比特流201进行解码,以导出量化系数级别和预测相关信息。然后,通过逆向量化204和逆向变换206来处理量化系数级别,以获得所重构的预测残差。在帧内/帧间模式选择器212中实现的块预测器机制被配置成基于所解码的预测信息来执行帧内预测208或运动补偿210。使用求和器214,通过对来自逆向变换206的所重构的预测残差和块预测器机制所生成的预测输出进行求和,来获得未经滤波的重构像素的集合。
52.所重构的块在被存储在充当参考图片存储器的图片缓冲器213中之前,可以进一步经过环内滤波器209。图片缓冲器213中的所重构的视频然后可以被发送出去,以驱动显示设备,以及用于预测未来的视频块。在其中环内滤波器209被打开的情形下,对这些重构像素执行滤波操作,以导出最终的重构视频输出222。
53.在诸如hevc之类的视频编解码标准中,可以基于四叉树来对块进行分区。在较新的视频编解码标准(诸如,当前vvc)中,采用了更多的分区方法,并且一个编码树单元(ctu)可以基于四叉树、二叉树或三叉树被划分成cu,以适应变化的局部特性。在当前vvc中,大多数编码模式中不存在cu、预测单元(pu)和变换单元(tu)的分离,并且每个cu始终被用作用于预测和变换两者的基本单元,而没有进一步的分区。然而,在某些特定编码模式(诸如,子分区内编码模式)中,每个cu可能仍然包含多个tu。在多类型树结构中,首先通过四叉树结构对一个ctu进行分区。然后,可以通过二叉和三叉树结构对每个四叉树叶节点进行进一步分区。
54.图3示出了当前vvc中采用的五种划分类型,即四元分区301、水平二元分区302、垂直二元分区303、水平三元分区304和垂直三元分区305。在其中利用多类型树结构的情形下,首先通过四叉树结构对一个ctu进行分区。然后,可以通过二叉和三叉树结构对每个四叉树叶节点进行进一步分区。
55.使用图3的示例性块分区301、302、303、304或305中的一个或更多个,可以使用图1中所示的配置来执行空间预测和/或时间预测。空间预测(或“帧内预测”)使用来自相同视频图片/条带中的已编码的邻近块的样本(被称为参考样本)的像素来预测当前视频块。空间预测减少了视频信号中固有的空间冗余。
56.在较新的视频编解码标准(诸如,当前vvc)中,已经添加了一种新的编码工具——具有色度缩放的亮度映射(lmcs)。lmcs被添加作为一种新的编码工具,它在环内滤波器(例如,去块滤波器、sao和alf)之前被应用。
57.一般而言,lmcs具有两个主要模块:第一个,基于自适应逐段线性模型的亮度分量的环路内映射;第二个,亮度相关的色度残差缩放。
58.图4示出了其中应用了lmcs的经修改的解码过程。在图4中,某些块表示在映射域
中实施的解码模块,这些解码模块包括熵解码401、逆向量化402、逆向变换403、亮度帧内预测404和亮度样本重构405(即,亮度预测样本y’pred和亮度残差样本y’res相加以产生所重构的亮度样本y’recon)。某些其他块指示在原始(即,非映射)域中实施的解码模块,这些解码模块包括运动补偿预测409、色度帧内预测412、色度样本重构413(即,色度预测样本cpred和色度残差样本cres相加以产生所重构的色度样本crecon)和环内滤波器过程407(涵盖了去块、sao和alf)。另外一组块表示由lmcs引入的新操作模块,包括亮度样本的正向映射410和逆向(或反向)映射406、以及色度残差缩放411。此外,如图4中所示,存储在解码图片缓冲器(dpb)408(用于亮度)和415(用于色度)中的所有参考图片都在原始域中。
59.lmcs的环路内映射旨在调整输入信号的动态范围,以提高编码效率。现有lmcs设计中的亮度样本的环路内映射基于两个映射函数,一个正向映射函数fwdmap和一个对应的逆向映射函数invmap。使用具有16个等大小段的一个逐段线性模型,从编码器向解码器用信号发送正向映射函数。可以直接从正向映射函数中导出逆向映射函数,并且因此不需要用信号发送该逆向映射函数。
60.在条带级别用信号发送亮度映射模型的参数。首先用信号发送存在标识,以指示是否要针对当前条带来用信号发送亮度映射模型。如果当前条带中存在亮度映射模型,则进一步用信号发送对应的逐段线性模型参数。基于逐段线性模型,将输入信号的动态范围分区成原始域中的16个大小相等的段,并且将每个段映射到对应的段。针对原始域中的给定段,其在映射域中的对应段可以具有相同或不同的大小。映射域中的每个段的大小由该段的码字(即,映射样本值)的数量来指示。针对原始域中的每个段,可以基于其在映射域中的对应段中的码字数量来导出线性映射参数。例如,当输入为10位深度时,原始域中的16个段中的每一个具有64个像素值,如果映射域中的每一个段也具有指派给它的64个码字,则它指示简单的一对一映射(即,其每个样本值都不改变的映射)。映射域中的每个段的所用信号发送的码字数量用于计算缩放因子,并且相应地针对该段来调整映射函数。附加地,在条带级别,用信号发送另一个lmcs控制标识以启用/禁用针对该条带的lmcs。
61.针对每个段,定义对应的逐段线性模型,如紧随本段落之后的框中所描述的那样:
62.63.如图4所示,在lmcs过程期间,需要在两个不同的域中进行操作。对于通过帧间预测模式编码的每个cu(“帧间cu”),在原始域中执行其运动补偿预测。然而,因为亮度分量的重构(即,亮度预测样本和亮度残差样本的相加)是在映射域中执行的,所以在y’pred
被用于像素重构405之前,需要通过前向映射函数410将经运动补偿的亮度预测y
pred
从原始域映射到映射域中的值y’pred
,即y’pred
=fwdmap(y
pred
)。另一方面,对于通过帧内预测模式编码的每个cu(“帧内cu”),在y’pred
用于像素重构405之前,在给定了在映射域(如图4中所示)中执行帧内预测404的情况下,不需要对预测样本的映射。最后,在生成所重构的亮度样本y’recon
之后,应用反向映射函数406以在进行到亮度dpb 408之前将所重构的亮度样本y’recon
转换回原始域中的值yrecon,即,y
recon
=invmap(y’recon
)。与仅需要针对帧间cu应用的对预测样本的前向映射410不同,对所重构的样本的反向映射406需要被应用于帧间cu和帧内cu两者。
64.总之,在解码器侧,当前lmcs的环路内亮度映射是以如下方式实施的:如果需要,首先将亮度预测样本ypred转换到映射域:y’pred=fwdmap(ypred)。然后,将所映射的预测样本与所解码的亮度残差进行相加,以在映射域中形成所重构的亮度样本:y’recon=y’pred y’res。最后,应用逆向映射以将所重构的亮度样本y’recon转换回原始域:yrecon=invmap(y’recon)。在编码器侧,因为亮度残差是在映射域中被编码的,所以它们是作为所映射的亮度原始样本与所映射的亮度预测样本之间的差而生成的:y’res=fwdmap(yorg)-fwdmap(ypred)。
65.lmcs滤波的第二步骤,即亮度相关的色度残差缩放,被设计成:当对亮度信号应用环路内映射时,补偿亮度信号与其对应的色度信号之间的量化精度的相互影响。色度残差缩放是启用还是禁用也在条带头部中被用信号发送。如果启用了亮度映射,并且针对当前条带禁用了亮度和色度分量的双树分区,则用信号发送附加标识,以指示是否应用了亮度相关的色度残差缩放。当不使用亮度映射或针对当前条带启用了双树分区时,亮度相关的色度残差缩放始终被禁用。此外,针对包含小于或等于四个色度样本的cu始终禁用色度残差缩放。
66.对于帧内和帧间cu两者而言,用于缩放色度残差的缩放参数取决于对应的映射亮度预测样本的平均值。这些缩放参数是在如紧随本段落之后的框中所描述的那样导出的:
67.68.图4还示出了用于亮度相关的色度残差缩放的亮度预测样本的平均值的计算。针对帧间cu,将经前向映射的亮度预测y’pred
与经缩放的色度残差c
resscale
一起馈送到色度残差缩放411中,以导出色度残差c
res
,色度残差c
res
与色度预测c
pred
一起被馈送到色度重构413中,以便导出所重构的色度值c
recon
。针对帧内cu,帧内预测404产生已经在映射域中的y’pred
,并且它以与针对帧间cu类似的方式被馈送到色度残差缩放411中。
69.与基于样本执行的亮度映射不同,c
scaleinv
对于整个色度cu是固定的。在给定c
scaleinv
的情况下,按照如紧随本段落之后的框中所描述的那样应用色度残差缩放。
[0070][0071]
在较新的视频编解码标准(如当前vvc)中,引入了新的编码工具,并且新的编码工具的一些示例是:双向光流(bdof)、解码器侧运动矢量修正(dmvr)、联合帧间帧内预测(ciip)、仿射模式、以及针对仿射模式的光流预测修正(prof)。
[0072]
在当前vvc中,应用双向光流(bdof)来修正双向预测编码块的预测样本。
[0073]
图5是bdof过程的图示。bdof是当使用双向预测时在基于块的运动补偿预测之上执行的逐样本运动修正。在子块周围的一个6
×
6窗口ω内应用bdof之后,通过最小化参考图片列表0(l0)和参考图片列表1(l1)预测样本502和503之间的差来计算每个4
×
4子块501的运动修正(v
x
,vy)。
[0074]
具体地,运动修正(v
x
,vy)的值是按照如紧随本段落之后的框中所描述的那样推导出来的。
[0075][0076]
按照紧接于本段落后面的方框中的描述进一步计算上面紧随的框中的值s1、s2、s3、s5和s6。
[0077][0078][0079]
上面紧随的框中的值i
(k)
(i,j)是列表k中预测信号的坐标(i,j)处的样本值,k=0,1,其是以中间高精度(即,16位)来生成的;并且值和是通过直接计算其两个相邻样本之间的差而获得的样本的水平和垂直梯度。值和是如紧随本段落之后的框中所描述的那样被计算的。
[0080][0081]
基于如紧随以上段落之后的框中所描述的那样导出的运动修正,通过基于光流模型沿着运动轨迹来内插l0/l1预测样本从而计算出cu的最终双向预测样本,如紧随本段落之后的框中所指示的那样。
[0082][0083]
基于上面描述的位深度控制方法,保证了整个bdof过程的中间参数的最大位深度
不超过32位,并且去往乘法的最大输入在15位内,即,一个15位乘法器对于bdof实现是足够的。
[0084]
dmvr是一种双向预测技术,该技术用于合并具有两个初始用信号发送的mv的块,这两个mv可以通过使用双边匹配预测来进一步修正。
[0085]
具体地,在dmvr中,双边匹配用于通过在两个不同参考图片中沿着当前cu的运动轨迹的两个块之间找到最佳匹配来导出当前cu的运动信息。匹配过程中使用的成本函数是行子采样的sad(绝对差的总和)。在匹配过程完成之后,在预测阶段中将经修正的mv用于运动补偿,将后续图片的时间运动矢量预测和未经修正的mv用于当前cu的运动矢量与其空间邻域的运动矢量之间的运动矢量预测。
[0086]
假设运动轨迹是连续的,指向两个参考块的运动矢量mv0和mv1应与当前图片与两个参考图片之间的时间距离(即td0和td1)成比例。作为特殊情况,当当前图片在时间上处于两个参考图片之间并且从当前图片到两个参考图片的时间距离相同时,双边匹配变成基于镜像的双向mv。
[0087]
在当前vvc中,帧间和帧内预测方法被用在混合视频编解码方案中,其中每个pu仅被允许选择帧间预测或帧内预测以用于利用时间域或空间域中的相关性,而从不在两者中进行选择。然而,如先前文献中所指出的,由帧间预测块和帧内预测块生成的残差信号可能呈现彼此非常不同的特性。因此,如果这两种预测能够以高效的方式来组合,则可以预期一种更准确的预测,以用于减少预测残差的能量,并且从而提高编码效率。此外,在自然视频内容中,运动对象的运动可能是复杂的。例如,可能存在既包含旧内容(例如,被包括在先前编码的图片中的对象)又包含出现的新内容(例如,在先前编码的图片中被排除的对象)的区域。在这种场景中,帧间预测或帧内预测都不能够提供对当前块的准确预测。
[0088]
为了进一步提高预测效率,在vvc标准中采用了联合帧间帧内预测(ciip),联合帧间帧内预测(ciip)组合了通过合并模式被编码的一个cu的帧内预测和帧间预测。具体地,针对每个合并cu,用信号发送一个附加标识以指示是否针对当前cu启用ciip。当该标识等于1时,ciip仅应用平面模式来生成亮度和色度分量的帧内预测样本。此外,应用相等的权重(即,0.5)来对帧间预测样本和帧内预测样本求平均,作为ciipcu的最终预测样本。
[0089]
vvc还支持用于运动补偿预测的仿射模式。在hevc中,仅平移运动模型被应用于运动补偿预测。而在现实世界中,存在许多种运动,例如放大/缩小、旋转、透视运动和其他不规则运动。在vvc中,通过如下方式来应用仿射运动补偿预测:为每个帧间编码块用信号发送一个标识,以指示针对帧间预测是应用平移运动还是仿射运动模型。在当前的vvc设计中,针对一个仿射编码块支持两种仿射模式,包括4参数仿射模式和6参数仿射模式。
[0090]
4参数仿射模型具有以下参数:分别用于水平和垂直方向上的平移移动的两个参数、针对两个方向的用于缩放运动的一个参数和用于旋转运动的一个参数。水平缩放参数等于垂直缩放参数。水平旋转参数等于垂直旋转参数。为了实现运动矢量和仿射参数的更好适应,在vvc中,这些仿射参数被转变成位于当前块的左上角和右上角处的两个mv(也被称为控制点运动矢量(cpmv))。块的仿射运动场由两个控制点mv(v0,v1)来描述。
[0091]
基于控制点运动,按照如紧随本段落之后的框中所描述的那样计算一个仿射编码块的运动场(v
x
,vy)。
[0092][0093]
6参数仿射模式具有以下参数:分别用于水平和垂直方向上的平移移动的两个参数、水平方向上的用于缩放运动的一个参数和用于旋转运动的一个参数、垂直方向上的用于缩放运动的一个参数和用于旋转运动的一个参数。6参数仿射运动模型在3个cpmv处利用3个mv来编码。
[0094]
一个6参数仿射块的三个控制点位于该块的左上角、右上角和左下角处。左上角控制点处的运动与平移运动相关,并且右上角控制点处的运动与水平方向上的旋转和缩放运动相关,并且左下角控制点处的运动与垂直方向上的旋转和缩放运动相关。与4参数仿射运动模型相比,6参数的在水平方向上的旋转和缩放运动与在垂直方向上的旋转和缩放运动可能不同。
[0095]
假设(v0,v1,v2)是当前块的左上角、右上角和左下角处的mv,按照紧随本段落之后的框中所描述使用控制点处的三个mv来导出每个子块(v
x
,vy)的运动矢量。
[0096][0097]
为了提高仿射运动补偿精度,在当前vvc中正在研究光流预测修正(prof),光流预测修正基于光流模型来修正基于子块的仿射运动补偿。具体地,在执行基于子块的仿射运动补偿之后,通过基于光流等式导出的一个样本修正值来修改一个仿射块的亮度预测样本。prof的操作可以详细地总结为以下四个步骤。
[0098]
在步骤1中,使用在紧随上面针对4参数仿射模型的段落[0084]之后的框中以及紧随上面针对6参数仿射模型的段落[0087]之后的框中导出的子块mv,来执行基于子块的仿射运动补偿以生成子块预测i(i,j)。
[0099]
在步骤2中,按照如紧随本段落之后的框中所描述的那样计算每个预测样本的空间梯度g
x
(i,j)和gy(i,j)。
[0100][0101]
仍在步骤2中,为了计算梯度,需要在一个子块的每一侧上生成一个额外的行/列预测样本。为了降低内存带宽和复杂度,从参考图片中最近的整数像素位置来复制扩展边界上的样本,以避免额外的插值过程。
[0102]
在步骤3中,按照如紧随本段落之后的框中所描述的那样计算亮度预测修正值。
[0103]
[0104]
此外,在当前prof设计中,在将预测修正添加到原始预测样本之后,执行一个裁剪操作作为第四步骤,以将经修正的预测样本的值裁剪到15位内,如紧随本段落之后的框中所描述的那样。
[0105][0106]
因为仿射模型参数以及相对于子块中心的像素位置不从子块到子块而改变,所以可以针对第一个子块来计算δv(i,j),并且将其重新用于相同cu中的其他子块。令δx和δy是从样本位置(i,j)到样本所属子块的中心的水平和垂直偏移量,则可以如紧随本段落之后的框中所描述的那样来导出δv(i,j)。
[0107][0108]
基于紧随上面的段落[0084]和段落[0087]之后的框中的仿射子块mv推导方程,可以如紧随本段落之后的框中所描述的那样导出mv差值δv(i,j)。
[0109][0110]
根据当前的lmcs设计,色度残差样本基于其对应的亮度预测样本被缩放。当针对帧间cu启用较新的编码工具时,在这些较新的编码工具的顺序应用结束时,获得用于在该帧间cu中通过lmcs来缩放色度残差样本的亮度预测样本。
[0111]
图6是图示了当启用所有dmvr、bdof和ciip时lmcs中的色度残差缩放的工作流程的流程图。来自亮度l0预测值601和l1预测值602的输出被顺序地馈送到dmvr603和bdof604,并且所得的亮度帧间预测值621与来自亮度帧内预测605的亮度帧内预测值622一起被馈送到求平均606,以产生平均亮度预测值623,平均亮度预测值623与色度残差608一
起被馈送到色度残差缩放607,使得色度残差缩放607、色度预测610和色度重构609可以一起工作以产生最终结果。
[0112]
当前的lmcs设计对视频解码过程提出了三个挑战。首先,不同域之间的映射需要额外的计算复杂性和片上存储器。其次,亮度和色度缩放因子导出使用不同的亮度预测值这一事实引入了额外的复杂性。再次,lmcs与较新的编码工具之间的交互将时延引入到解码过程中。
[0113]
首先,在当前的lmcs设计中,原始域和映射域两者中的重构样本在各种解码模块处都被使用。因此,这些样本通常需要在不同解码模块之间从一个域转换到另一个域,这可能会引起更高的计算复杂性和更多的片上存储器两者。
[0114]
具体地,对于帧内模式——ciip模式和ibc模式,来自一个当前cu的邻近重构区域的映射域参考样本被用于生成预测样本。但是对于帧间模式,使用时间参考图片的原始域重构样本作为参考来执行运动补偿预测。存储在dpb的重构样本也在原始域中。
[0115]
例如,对于帧间cu,因为亮度重构操作(即,将预测样本和残差样本相加在一起)是在映射域中执行的,所以在原始域中生成的帧间预测亮度样本需要在被用于亮度样本重构之前被转换到映射域中。在另一个示例中,对于帧内和帧间cu两者,在将所重构的亮度样本存储在dpb中之前,始终应用逆向(或反向)映射来将所重构的亮度样本从映射域转换到原始域。这种设计不仅由于附加的正向/逆向映射操作而增加了计算复杂性,而且还需要更多的片上存储器来维护重构样本的多个版本。
[0116]
在实际硬件实现方式中,正向和逆向(或反向)映射函数fwdmap和invmap可以使用查找表(lut)来实现、或者在运行中计算。使用基于lut的技术方案时,函数fwdmap、invmap和cscaleinv的可能输出元素可以被预先计算,并且被预先存储为lut,然后lut可以用于当前条带中的所有cu的亮度映射和色度残差缩放操作。假设输入视频是10位,针对fwdmap和invmap的每一个lut中有2
10
=1024个元素,并且lut中的每个元素具有10位。因此,用于正向和逆向亮度映射的lut的总存储等于2*1024*10=20480位=2560字节。另一方面,为了导出色度缩放参数c
scaleinv
,在编码器和解码器处需要维持一个16条目的lut表cscaleinv,并且每个色度缩放参数以32位来存储。相应地,用于存储lut cscaleinv的存储器大小等于16*32=512位=64字节。2560与64之间的差示出了正向和逆向(后向)映射操作所需的额外片上存储器的规模。
[0117]
此外,在较新的视频编解码标准(如当前vvc)中,帧内预测和去块滤波器两者都使用上述邻近块的重构样本。因此,当前图片/条带的宽度中的一个额外行的重构样本需要维持在缓冲器中,该缓冲器在视频编码中也被称为“行缓冲器”。行缓冲器中的重构样本至少被用作针对位于一个ctu内部的第一行中的cu的帧内预测和去块操作的参考。根据现有的lmcs设计,帧内预测和去块滤波器使用不同域中的重构样本。因此,为了存储原始和映射域重构样本,附加的片上存储器可能变得必要,这可能近似地使行缓冲器大小增加约一倍。
[0118]
避免行缓冲器大小加倍的一个实现选择是在运行中执行域映射操作。然而,这是以不可忽略的计算复杂性增加为代价的。
[0119]
因此,由于不同域之间的所需映射,lmcs的当前设计将需要额外的计算复杂性和片上存储器。
[0120]
其次,尽管lmcs的当前设计中的亮度和色度缩放因子导出方法这二者都使用亮度
预测样本值来导出对应的缩放因子,但是它们的对应操作之间存在差异。
[0121]
对于亮度残差缩放,可以通过允许每个亮度残差样本具有自己的缩放因子来按每个样本导出缩放因子。然而,对于色度残差缩放,缩放因子对于整个cu是固定的,即cu内的所有色度残差样本共享相同的缩放因子,该相同的缩放因子是基于映射的亮度预测样本的平均值来计算的。
[0122]
而且,两个不同的lut用于计算亮度和色度残差的缩放因子。具体地,去往亮度lut的输入是原始亮度预测样本值的映射模型段索引,而去往色度lut的输入是映射亮度预测样本平均值的映射模型段索引。
[0123]
这种差异会将额外的复杂性引入到编码过程中,并且用于亮度和色度缩放因子导出的协调的方法是让人期望的。
[0124]
再次,对于lmcs的当前设计的色度残差缩放,可以顺序地调用较新的编码工具,诸如dmvr、bdof和ciip的所有三个模块,以生成亮度预测样本,亮度预测样本然后用于确定色度残差的缩放因子。在给定这三个模块的高计算复杂性的情况下,在执行lmcs的色度残差缩放之前进行等待直到它们成功完成为止可能会引起色度样本解码的严重时延。对于仿射cu,prof过程也可能具有时延问题,这是因为每个仿射cu可能执行prof过程,接着是lmcs过程,这也可能引起色度样本解码的时延问题。
[0125]
此外,在lmcs的当前设计中,在色度残差缩放因子推导过程中执行了不必要的裁剪操作,进一步增加了对计算复杂度和片上存储器的额外要求。
[0126]
本技术旨在解决或减轻由lmcs的当前设计提出的这些挑战,更具体地,本技术讨论了可以在维持编码增益的同时降低硬件编解码器实现的lmcs的复杂性的方案。
[0127]
代替于使用通过映射操作来转换预测/重构样本的现有lmcs框架,在本技术中提出了被称为预测相关残差缩放(pdrs)的一种新方法,作为在没有样本映射的情况下直接缩放预测残差的第一方面。所提出的方法可以实现与lmcs类似的效果和编码效率,但是具有低得多的实现复杂性。
[0128]
在pdrs过程中,如图7所示,获得亮度预测样本以用于解码亮度残差样本(701),使用亮度预测样本来导出缩放因子(702),使用该缩放因子来缩放亮度残差样本(703),以及通过将亮度预测样本和经缩放的亮度残差样本相加来计算所重构的亮度样本(704)。
[0129]
与在计算亮度预测残差之前将所预测/重构的亮度样本直接转换到映射域中的现有lmcs方法不同,在pdrs过程的所提出的方法中,在没有任何映射操作的情况下以与原始域中的常规预测过程中的方式相同的方式来导出亮度预测残差样本,随后是对亮度预测残差的缩放操作。对亮度预测残差的缩放取决于对应的亮度预测样本值和逐段线性模型。因此,当前lmcs设计中的正向和逆向亮度映射操作可以被完全丢弃,其中在解码过程期间涉及的所有预测和重构样本被维持在原始样本域中。基于上述特征,所提出的方法被称为预测相关残差缩放。
[0130]
图8是图示了当pdrs过程被应用在lmcs过程中时的解码过程的工作流程的流程图。该图示出了不需要在不同域之间进行映射。现在,除了残差解码模块(如熵解码801、逆向量化802和逆向变换803)之外,所有其他解码模块(包括帧内和帧间预测804、809、812和816、重构806和813、以及所有环内滤波器807和814)都在原始域中运行。具体地,为了重构亮度样本,pdrs过程中提出的方法仅需要将亮度预测残差样本y
res
去缩放回到其原始幅度
水平,然后将它们添加到亮度预测样本y
pred
上。
[0131]
通过pdrs过程,现有lmcs设计中的正向和逆向亮度采样映射操作被完全去除。这不仅节省/降低了计算复杂性,而且还减少了用于保存lmcs参数的潜在存储装置的大小。例如,当使用基于lut的技术方案来实现亮度映射时,在所提出的方法中不再需要先前被用于存储两个映射lut fwdmap[]和invmap[](约2560字节)的存储装置。此外,与需要在原始域和映射域两者中存储重构亮度样本的现有亮度映射方法不同,pdrs过程中提出的方法仅在原始域中生成并维护所有预测和重构样本。相应地,与现有的亮度映射相比,pdrs过程中提出的方法可以高效地将用于存储帧内预测和去块的重构样本的行缓冲器大小减少一半。
[0132]
根据pdrs过程的一个或更多个实施例,亮度预测样本和亮度残差样本来自亮度预测块及其相关联的残差块中的一个相同的并置位置。
[0133]
根据pdrs过程的一个或更多个实施例,使用亮度预测样本来导出缩放因子包括:将可能的亮度预测样本值的整个范围划分成多个亮度预测样本段;基于预定义的逐段线性模型对多个亮度预测样本段中的每一个计算一个缩放因子;以及基于多个亮度预测样本段的缩放因子来确定亮度预测样本的缩放因子。
[0134]
在一个示例中,基于多个亮度预测样本段的缩放因子来确定亮度预测样本的缩放因子包括:将亮度预测样本分配到多个亮度预测样本段当中的一个段中,并且计算亮度预测样本的缩放因子作为所分配的亮度预测样本段的缩放因子。
[0135]
在该示例中,多个亮度预测样本段包括预定义的16段lut表scaleforward中的16个段,并且用于计算多个亮度预测样本段中的每一个的一个缩放因子的预定义段线性模型包括对应于预定义的lut表scaleforward中的16个段的16个值。
[0136]
在同一示例中,如紧随本段落之后的框中所描述的那样基于所分配的亮度预测样本段来计算缩放因子。
[0137][0138]
在同一示例中,在给定亮度缩放因子scaley的情况下,可以应用亮度残差样本缩放方法,如紧随本段落之后的框中所描述的那样。
[0139][0140]
该示例背后的动机是:当前lmcs的正向映射基于一个逐段线性模型。如果原始亮度样本和亮度预测样本位于同一段(即,由两个枢轴点inputpivot[i]和inputpivot[i 1]
限定的同一段),则原始和预测亮度样本的两个正向映射函数将变得完全相同。相应地,它导致了y’res=fwdmap(yorg)-fwdmap(ypred)=fwdmap(yorg-ypred)==fwdmap(yres)。通过在该等式的两侧上应用逆向映射,对应的解码器侧重构操作可以表达为:yrecon=ypred invmap(y’res)。
[0141]
换言之,在其中原始亮度样本和亮度预测样本两者位于同一段的情况下,lmcs中的亮度映射方法可以通过解码过程中的一个残差缩放操作来实现,如在该可能的实现方式中所实现的那样。
[0142]
尽管这种结论是基于原始亮度样本和亮度预测样本两者都位于由两个枢轴点inputpivot[i]和inputpivot[i 1]所限定的同一段中的假设而得出的,但是即使当原始亮度样本和亮度预测样本位于逐段线性模型的不同段中时,该示例的这种可能实现方式在任何情况下仍然可以用作针对vvc中的现有亮度映射操作的简化和/或近似。实验结果显示出这种简化和/或近似几乎没有招致对编码性能的影响。
[0143]
再次重申,该示例基于以下假设:即,原始和预测亮度样本值两者位于逐段线性模式的同一段中。在这种情况下,被应用于原始和预测亮度样本的正向/逆向映射函数是相同的;因此,仅取决于亮度预测样本来计算对应的残差缩放因子是安全的。
[0144]
然而,当cu的所预测的样本不是足够准确时(例如,对于帧内预测的cu,其中远离参考样本的样本通常被不太准确地预测),预测样本和原始样本通常位于逐段线性模型的不同段中。在这种情况下,基于预测样本值导出的缩放因子在反映原始(即,未映射)域中的残差样本与映射域中的残差样本之间的原始映射关系时可能并不可靠。
[0145]
图9是仅使用预测样本来导出缩放因子所导致的残差映射误差的图示。在图9中,三角形实心点表示逐段线性函数中的不同段的枢轴控制点,圆形实心点表示原始和预测样本值;y
org
和y
pred
是原始(即,非映射)域中的原始样本和预测样本;y’org
和y’pred
分别是y
org
和y
pred
的映射样本。当应用vvc中的现有的基于样本的亮度映射方法时,y
res
和y’res
是原始域和映射域中的对应残差;y’resscale
是基于所提出的亮度残差缩放方案而导出的映射残差样本。如图9所示,由于原始样本和预测样本不在逐段线性模型的同一段中,所以基于预测样本导出的缩放因子可能不是足够准确以产生近似映射域中的原始残差(即,y’res
)的经缩放的残差(即,y’resscale
)。
[0146]
在第二示例中,不需要假设原始和预测亮度样本值两者都位于逐段线性模式的同一段中。
[0147]
在该第二示例中,将缩放因子计算为n个(n为正整数)邻近段的缩放因子的平均值,而不是直接从亮度预测样本所位于的逐段线性模型的段中导出缩放因子。
[0148]
在该第二示例中,基于多个亮度预测样本段的缩放因子来确定亮度预测样本的缩放因子包括:将亮度预测样本分配到多个亮度预测样本段当中的一个段中,并且将亮度预测样本的缩放因子计算为与所分配的亮度预测样本段邻近的多个亮度预测样本段的缩放因子的平均值。
[0149]
更具体地,在该第二示例的一个可能的实现方式中,可以如以下步骤中所描述的那样基于所分配的亮度预测样本段来计算缩放因子:
[0150]
1)在原始域中找出或获得predy所属的逐段线性模型的对应段索引idxy。
[0151]
2)若yr′
es
≥0,则将亮度残差缩放因子计算为:
[0152][0153]
3)否则(即,yr′
es
《0),将亮度残差缩放因子计算为:
[0154][0155]
其中,scaleforward[i],i=0

15是预定义的16段lut,其被计算为:
[0156]
scaleforward[i]=(orgcw《《scale_fp_prec)/signaledcw[i]
[0157]
其中,orgcw和signaledcw[i]分别是原始域和映射域中的第i段的码字数量,scale_fp_prec是缩放因子的精度。
[0158]
在该第二实例的第二可能实现方式中,可以如紧随本段落之后的框中所描述的那样基于所分配的亮度预测样本段来计算缩放因子(该实现方式在其他方面与上面描述的实现方式相同):
[0159][0160]
该第二示例的上述两个可能的实现方式的不同之处仅在于基于所分配的段来选择n个亮度预测样本域值段。
[0161]
在一个色度样本重构过程中,如图10所示,获得亮度预测样本值,以用于解码输入位置处的亮度残差样本和色度残差样本两者(1001),然后获得与亮度残差样本相关联的亮度预测样本(1002),然后获得与色度残差样本相关联的色度预测样本(1003),使用亮度预测样本来导出亮度残差样本的第一缩放因子和色度残差样本的第二缩放因子(1004),使用第一缩放因子来缩放亮度残差样本(1005),使用第二缩放因子来缩放色度残差样本(1006),通过将亮度预测样本和经缩放的亮度残差样本相加来计算所重构的亮度样本(1007),以及通过将色度预测样本和经缩放的色度残差样本相加来计算所重构的色度样本(1008)。
[0162]
该色度样本重构过程旨在协调亮度和色度残差的缩放方法,以便实现更统一的设计。
[0163]
根据该色度样本重构过程的一个或更多个实施例,亮度预测样本值是包含输入位置的编码单元(cu)中的所有亮度预测样本的平均值。在这些实施例中,色度缩放导出方法用于计算针对亮度残差的缩放因子,更具体地,使用基于亮度预测样本的平均值所计算的一个共享缩放因子来缩放整个cu的亮度残差样本,而不是单独地导出每个亮度残差样本的一个缩放因子。
[0164]
根据该色度样本重构过程的另一个实施例,亮度预测样本值是从包含输入位置的编码单元(cu)再划分的预定义子块中的所有亮度预测样本的平均值。在该实施例中,一个cu首先被相等地分区成多个m
×
n子块;然后,针对每个子块,使用所有或部分亮度预测样本来导出对应的缩放因子,该缩放因子用于缩放子块的亮度和色度残差这二者。与第一种方法相比,第二种方法可以提高所估计的缩放因子的空间精度,这是因为会从计算子块的缩放因子中排除子块外部的较低相关性的亮度预测样本。同时,考虑到可以在该子块的亮度预测完成后立即开始对一个子块中的亮度和色度残差进行缩放,即无需等待完整的生成整个cu的亮度预测样本,所以第二种方法也可以减少亮度残差和色度残差重构的时延。
[0165]
根据该色度样本重构过程的第三实施例,亮度预测样本域值包括并置的亮度预测样本。在该实施例中,亮度残差缩放方法被扩展成缩放色度残差,并且每个色度残差样本的不同缩放因子是基于其并置的亮度预测样本值来导出的。
[0166]
在该色度样本重构过程的上述实施例中,提出了使用用于计算亮度缩放因子的同一lut来进行色度残差的缩放。在一个示例中,为了导出色度残差的cu级别的缩放因子scalec,可以遵循以下步骤:
[0167]
1)计算cu内的亮度预测样本(其在原始域中表示)的平均值,表示为avgy;
[0168]
2)找出或获取avgy所属的逐段线性模型的对应段索引idxy;
[0169]
3)将scalec的值计算为:
[0170]
scalec=scaleforward[idxy]
[0171]
其中,scaleforward[i],i=0

15是一个预定义的16段lut,其被计算为:
[0172]
scaleforward[i]=(orgcw《《scale_fp_prec)/signaledcw[i]
[0173]
其中,orgcw和signaledcw[i]分别是原始域和映射域中的第i个段的码字数量,scale_fp_prec是缩放因子的精度。
[0174]
可将上述示例容易地扩展到其中按当前cu的每个子块来导出色度残差的缩放因子的情况。在这种情况下,在上面的第一步骤中,avgy将被计算为子块的原始域中的亮度预测样本的平均值,同时第2步和第3步保持相同。
[0175]
在第二色度样本重构过程中,如图11所示,通过在编码单元(cu)的亮度预测过程期间跳过多个预定义的中间亮度预测阶段来获得多个亮度预测样本(1101),使用所获得的多个亮度预测样本来导出cu中的色度残差样本的缩放因子(1102),使用这些缩放因子来缩放cu中的这些色度残差样本(1103),以及通过将cu中的色度预测样本和经缩放的色度残差样本相加来计算所重构的色度样本(1104)。
[0176]
根据该第二色度样本重构过程的一个或更多个实施例,预定义的中间亮度预测阶段包含:解码器侧运动矢量导出(dmvr)、双向光流(bdof)和联合帧间帧内预测(ciip)的一个或更多个双向预测模块。在这些实施例中,在dmvr、bdof/prof、ciip帧内/帧间组合过程之前导出的帧间预测样本用于导出色度残差的缩放因子。
[0177]
图12是图示了该第二色度样本重构过程的该实施例的一个示例中的lmcs解码过程的工作流程的流程图,其中没有应用dmvr、bdof和ciip来生成用于色度缩放的亮度预测样本。这里,一旦基于初始l0和l1亮度预测1201和1202的预测样本1221和1222变得可用,就可以开始色度残差缩放过程1208,而不是等待dmvr1203、bdof 1204和/或ciip的亮度帧内预测部分1205全部完成。
[0178]
在图12中,除了原始求平均操作1206之外,还需要一个额外的求平均操作1211来组合在dmvr 1203、bdof 1204和/或ciip 1205之前的初始l0和l1预测样本1221和1222。
[0179]
为了降低复杂性,在该第二色度样本重构过程的该实施例的第二示例中,初始l0预测样本可以用于导出色度残差的缩放因子。
[0180]
图13是图示了该第二色度样本重构过程的该实施例的第二示例中的lmcs解码过程的工作流程的流程图,其中应用了初始单向预测信号来生成用于色度缩放的亮度预测样本。除了原始求平均操作1306之外,不需要额外的求平均操作。初始l0预测样本1321用于在dmvr 1303、bdof 1304和/或ciip 1305之前导出色度残差的缩放因子。
[0181]
在该第二色度样本重构过程的该实施例的第三示例中,以自适应方式来选择一个初始预测信号(l0或l1)作为用于导出色度残差缩放因子的亮度预测样本。在该示例的一个可能实现方式中,在初始预测信号(l0或l1)之间,选择其参考图片相对于当前图片具有较小图片次序计数(poc)距离的信号,以用于导出色度残差缩放因子。
[0182]
在该第二色度样本重构过程的另一个实施例中,提出了仅禁用dmvr、bdof/prof,同时启用ciip,以用于生成用于确定色度残差缩放因子的帧间预测样本。具体地,在该方法中,首先对在dmvr和bdof/prof之前导出的帧间预测样本求平均,然后将其与用于ciip的帧内预测样本进行组合;最后,将这些组合的预测样本用作用于确定色度残差缩放因子的预测样本。
[0183]
在该第二色度样本重构过程的又一实施例中,提出了仅禁用bdof/prof,而同时保持用于生成用于确定色度残差缩放因子的预测样本dmvr和ciip。
[0184]
在该第二色度样本重构过程的再一个实施例中,提出在导出用于确定色度残差缩放因子的亮度预测样本时,保持bdof/prof和ciip,同时禁用dmvr。
[0185]
此外,值得一提的是,尽管在该第二色度样本重构过程的上述实施例中的方法被说明为它们被设计成用于减少色度预测残差缩放的时延,但是这些方法也可以用于减少亮度预测残差缩放的时延。例如,所有这些方法也可以被应用于“基于预测相关残差缩放的亮度映射”部分中解释的pdrs方法。
[0186]
根据现有的dmvr设计,为了节省计算复杂性,使用2抽头双线性滤波器而不是默认的8抽头内插来生成用于dmvr运动修正的预测样本。在确定经修正的运动之后,将应用默认的8抽头滤波器来生成当前cu的最终预测样本。因此,为了减少由dmvr引起的色度残差解码时延,提出了使用由双线性滤波器所生成的亮度预测样本(如果当前cu是双向预测的,则是l0和l1预测样本的平均值)来确定色度残差的缩放因子。
[0187]
根据一个色度残差样本重构过程,如图14所示,从解码器侧运动矢量导出(dmvr)的双线性滤波器的输出中选择一个或更多个亮度预测样本值(1401),将所选择的一个或更多个亮度预测样本值调整成具有与输入视频的原始编解码位深度相同的位深度的另一个或更多个亮度预测样本值(1402),使用具有与输入视频的原始编解码位深度相同的位深度的亮度预测样本值来导出用于解码一个或更多个色度残差样本的缩放因子(1403),使用所述缩放因子来缩放一个或更多个色度残差样本(1404),以及通过将经缩放的一个或更多个色度残差样本与其对应的色度预测样本相加来重构一个或更多个色度残差样本(1405)。
[0188]
在该色度残差样本重构过程的一个或更多个实施例中,从dmvr的双线性滤波器的输出中选择一个或更多个亮度预测样本值包括:从所述dmvr的双线性滤波器的输出中选择
l0和l1亮度预测样本。
[0189]
图15是图示了该色度残差样本重构过程的一个这种实施例中的lmcs解码过程的工作流程的流程图。将来自dmvr 1503的双线性滤波器1512组件的输出的l0和l1预测样本1521和1522馈送到求平均1511中,以便导出将在色度残差缩放1507中使用的色度残差缩放输入1523,以用于解码一个或更多个色度残差样本。
[0190]
在这些实施例中,存在比特码深度的问题。为了节省dmvr使用的内部存储大小,由dmvr的双线性滤波器生成的中间l0和l1预测样本是10位精度。这不同于常规双向预测的直接预测样本的表示位深度,该表示位深度等于14位。因此,由于其不同的精度,来自双线性滤波器输出的中间预测样本不能够被直接应用以确定色度残差缩放因子。
[0191]
为了解决该问题,提出了首先将dmvr中间位深度与用于常规运动补偿插值的中间位深度对齐,即将位深度从10位增加到14位。在此之后,被用来生成常规双向预测信号的现有求平均过程可以被重新使用,以生成用于确定色度残差缩放因子的相应的预测样本。
[0192]
在这些实施例的一个示例中,将所选择的一个或更多个亮度预测样本值调整成具有与输入视频的原始编解码位深度相同的位深度的另一个或更多个亮度预测样本值包括:通过向左移位将来自所述dmvr的双线性滤波器的输出的l0和l1亮度预测样本的内部位深度增加到14位,通过对经移位的14位l0和l1亮度预测样本值求平均来获得所述14位平均亮度预测样本值,以及通过经由向右移位将所述14位平均亮度预测样本值的内部位深度改变成所述输入视频的原始编解码位深度来转换所述14位平均亮度预测样本值。
[0193]
更具体地,在该示例中,由紧随本段落之后的框中所描述的步骤来确定色度缩放因子。
[0194][0195]
在该色度残差样本重构过程的其他实施例中,从dmvr的双线性滤波器的输出中选择一个或更多个亮度预测样本值以及将所选择的一个或更多个亮度预测样本值调整成具有与输入视频的原始编解码位深度相同的位深度的另一个或更多个亮度预测样本值包括:
从所述dmvr的双线性滤波器的输出中的l0和l1亮度预测样本中选择一个亮度预测样本,通过经由移位将所选择的一个亮度预测值的内部位深度改变成输入视频的原始编解码位深度来调整所选择的一个亮度预测样本,以及使用经调整的亮度预测样本作为具有与输入视频的原始编解码位深度相同的位深度的亮度预测样本。
[0196]
图16是图示了该色度残差样本重构过程的一个这种其他实施例中的lmcs解码过程的工作流程的流程图。来自dmvr 1603的双线性滤波器1612组件的输出的l0预测样本1621被用于色度残差缩放1607中,以用于解码一个或更多个色度残差样本。
[0197]
在该色度残差样本重构过程的一个这种其他实施例的一个示例中,可以如紧随本段落之后的框中所描述的那样,通过将从双线性滤波器输出的亮度样本移位到输入视频的原始编解码位深度来确定色度缩放因子。
[0198][0199]
根据第二色度残差样本重构过程,如图17所示,从参考图片选择一个或更多个亮度参考样本值(1701),将所选择的一个或更多个亮度参考样本值变换成一个亮度样本值(1702),使用该变换后的亮度样本值来导出缩放因子(1703),使用该缩放因子来缩放一个或更多个色度残差样本(1704),以及通过将经缩放的一个或更多个色度残差样本与其对应的色度预测样本相加来重构一个或更多个色度残差样本(1705)。
[0200]
在该第二色度残差样本重构过程的一个或更多个实施例中,从参考图片选择一个或更多个亮度参考样本值以及将所选择的一个或更多个亮度参考样本值变换成该亮度样本值包括:从l0和l1参考图片中获得l0和l1亮度参考样本值这二者,并且对l0和l1亮度参考样本值求平均作为该变换后的亮度样本值。
[0201]
在该第二色度残差样本重构过程的其他实施例中,从参考图片选择一个或更多个亮度参考样本以及将所选择的一个或更多个亮度参考样本变换成亮度样本值包括:从l0和l1参考图片的l0和l1亮度参考样本值中选择一个亮度参考样本值,并且使用所选择的一个亮度参考样本值作为该变换后的亮度样本值。
[0202]
根据现有的lmcs设计,将当前cu所在64
×
64区域附近的重构的亮度样本用于计算该区域内cu的色度残差缩放因子。此外,在计算平均值之前应用一个裁剪操作,即clip1(),该裁剪操作将这些重构的亮度相邻样本裁剪到内部比特深度的动态范围内(即,在[0,(1《《bitdepth)-1]的范围内)。
[0203]
具体地,该方法首先取当前cu所属的对应64
×
64区域的64个左侧相邻亮度样本和64个顶部邻域亮度样本;然后计算左侧和顶部相邻样本的平均值,即avgy,并在lmcs分段线性模型中找到avgy的段索引y
1dx
;最后推导出色度残差c
scaleinv
=cscaleinv[y
1dx
]。
[0204]
具体来讲,在目前的vvc草案中,如何推导对应的平均亮度描述如下,其中,以突出的字体和大小显示clip1()操作的应用:
[0205]
对于变量varscale的推导,适用以下有序步骤:
[0206]
变量invavgluma推导如下:
[0207]
数组recluma[i],i=0...(2*sizey-1)和变量cnt推导如下:
[0208]
变量cnt设为等于0。
[0209]
当availl等于true时,数组recluma[i],i=0...sizey-1被设置为等于currpic[xcucb-1][min(ycucb i,pic_height_in_luma_samples-1)],i=0..sizey-1,并且cnt设为等于sizey。
[0210]
当availt等于true时,数组recluma[cnt i],i=0

sizey

1被设置为等于currpic[min(xcucb i,pic_width_in_luma_samples-1)][ycucb-1],i=0...sizey-1,并且cnt设为等于(cnt sizey)。
[0211]
变量invavgluma推导如下:
[0212]
若cnt大于0,则适用以下情况:
[0213][0214]
否则(cnt等于0),适用以下情况:
[0215]
invavgluma=1《《(bitdepth-1)。
[0216]
然而,在重构过程中,在将预测样本添加到一个cu的残差样本之后,得到的样本值已经被裁剪到内部位深度的动态范围内。这意味着当前64
×
64区域周围的所有相邻的重构的亮度样本都保证在内部位深度的范围内。因此,它们的平均值,即avgy,也不能超出这个范围。因此,不需要现有的裁剪(即clip1())来计算相应的色度残差缩放因子。为了进一步降低lmcs设计的复杂性和内存需求,提出了在计算相邻的重构的亮度样本的平均值以导出色度残差缩放因子时,去除裁剪操作。
[0217]
根据本技术的第一方面,如图18所示,在cu的解码过程中,从与所述cu所在的第二预定区域相邻的第一预定区域中选择多个重构的亮度样本(1801);计算所述多个重构的亮度样本的平均值(1802);以及直接使用所述多个重构的亮度样本的平均值,而不进行任何裁剪,来推导用于对所述cu进行解码的色度残差缩放因子(1803)。
[0218]
在本技术第一方面的一个或更多个实施例中,所述多个重构的亮度样本的平均值是所述多个重构的亮度样本的算术平均值。
[0219]
在本技术第一方面的一个或更多个实施例中,所述直接使用所述多个重构的亮度样本的平均值,而不进行任何裁剪,来推导用于对所述cu进行解码的色度残差缩放因子包括:在预先定义的分段线性模型中,对于所述平均值,识别段索引;以及基于该段的线性模型的斜率推导用于对所述cu进行解码的色度残差缩放因子。
[0220]
在本技术第一方面的一个或更多个实施例中,通过以下方式生成所述第一预定区域中的所述多个重构的亮度样本:生成所述第一预定区域中的亮度预测样本和亮度残差样本;将所述亮度残差样本与所述亮度预测样本相加;以及将所相加后的亮度样本裁剪到编解码位深度的动态范围中。
[0221]
在本技术第一方面的一个或更多个实施例中,所述多个重构的亮度样本是多个前向映射帧间亮度重构样本。
[0222]
在本技术第一方面的一个或更多个实施例中,所述第二预定区域是所述cu所在的64
×
64区域。
[0223]
在一个示例中,如图19所示,所述第一预定区域包括在所述第二预定区域1904正上方的1
×
64区域1902内的上侧相邻样本。替代地或附加地,所述第一预定区域包括在所述
第二预定区域1904正左侧的64
×
1区域1903内的左侧相邻样本。
[0224]
在一个或更多个示例中,所描述的功能可以以硬件、软件、固件或其任何组合来实现。如果以软件来实现,则这些功能可以作为一个或更多个指令或代码存储在计算机可读介质上或通过计算机可读介质来传输,并且由基于硬件的处理单元来执行。计算机可读介质可以包括:计算机可读存储介质,其对应于诸如数据存储介质之类的有形介质;或通信介质,其包括便于例如根据通信协议将计算机程序从一个地方传送到另一个地方的任何介质。以这种方式,计算机可读介质通常可以对应于(1)非暂时性的有形计算机可读存储介质、或者(2)诸如信号或载波之类的通信介质。数据存储介质可以是一个或更多个计算机或一个或更多个处理器可以访问的任何可用介质,以检索用于实现本技术中描述的实现方式的指令、代码和/或数据结构。计算机程序产品可以包括计算机可读介质。
[0225]
此外,上述方法可以使用包括一个或更多个电路的装置来实现,这些电路包括专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理器件(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子组件。该装置可以将这些电路与用于执行上面描述的方法的其他硬件或软件组件结合地使用。上面公开的每个模块、子模块、单元或子单元可以至少部分地使用一个或更多个电路来实现。
[0226]
本技术可以包括专用硬件实现方式,诸如专用集成电路、可编程逻辑阵列和其他硬件设备。硬件实现方式可以被构造成实现本文中描述的一个或更多个方法。可以包括各种实现方式的装置和系统的示例可以宽泛地包括各种电子和计算系统。本文中描述的一个或更多个示例可以使用具有相关控制和数据信号的两个或更多个特定互连硬件模块或设备来实现功能,或者作为专用集成电路的一部分来实现功能,这些相关控制和数据信号可以在模块之间以及通过模块被传送。因此,所公开的装置或系统可以包括软件、固件和硬件实现方式。术语“模块”、“子模块”、“电路”、“子电路”、“电路系统”、“子电路系统”、“单元”或“子单元”可以包括存储器(共享的、专用的或组),该存储器存储可以由一个或更多个处理器执行的代码或指令。本文中所指的模块可以包括具有或不具有所存储的代码或指令的一个或更多个电路。模块或电路可以包括一个或更多个被连接的组件。
[0227]
考虑到本文中公开的本技术的说明书和实践,本技术的其他实施例对于本领域技术人员来说将是明显的。本技术意图覆盖本技术的任何变型、使用或适配,这些变型、使用或适配遵循本技术的一般原理,并且包括如落入本领域的已知或常规实践内的与本技术的偏离。所意图的是,本说明书和示例被认为仅仅是示例性的,其中本技术的真实范围和精神由所附权利要求来指示。
[0228]
将领会的是,本技术不限于上面描述以及附图中所图示的确切示例,并且在不脱离其范围的情况下,可以进行各种修改和改变。所意图的是,本技术的范围仅由所附权利要求来限定。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献