用于视频编码和解码中的自适应照明补偿的方法和装置与流程

文档序号:20842550发布日期:2020-05-22 17:42阅读:252来源:国知局
用于视频编码和解码中的自适应照明补偿的方法和装置与流程

本实施例中的至少一个总体上涉及用于视频编码或解码的方法或装置,并且更具体地,涉及用于确定视频编码或解码中的照明补偿参数的方法或装置。



背景技术:

为了实现高压缩效率,图像和视频编码方案通常采用预测和变换来利用视频内容中的空间和时间冗余。通常,使用帧内或帧间预测来利用帧内或帧间相关性,然后对原始图像和预测图像之间的差异(通常表示为预测误差或预测残差)进行变换、量化和熵编码。为了重构视频,通过与预测、变换、量化和熵编码相对应的逆过程来对压缩数据进行解码。



技术实现要素:

根据至少一个实施例的总体方面,提供了一种用于编码视频数据的方法,所述方法包括:基于用于重构多个相邻重构块的信息,从在图片中被编码的当前块的所述多个相邻重构块中为所述当前块选择一个或多个相邻样本;基于所述选择的一个或多个相邻样本确定用于所述当前块的一个或多个照明补偿参数;基于所述确定的一个或多个照明补偿参数来调整用于所述当前块的预测块;以及使用所述调整后的预测块对所述当前块进行编码。

根据至少一个实施例的另一总体方面,提供了一种用于解码视频数据的方法,所述方法包括:基于用于重构多个相邻重构块的信息,从在图片中被解码的当前块的所述多个相邻重构块中为所述当前块选择一个或多个相邻样本;基于所述选择的一个或多个相邻样本确定一个或多个照明补偿参数;基于所述确定的一个或多个照明补偿参数来调整用于所述当前块的预测块;以及基于所述调整后的预测块对所述当前块进行解码。

根据至少一个实施例的另一总体方面,提供了一种用于编码视频数据的装置,所述装置包括:用于基于用于重构多个相邻重构块的信息,从在图片中被编码的当前块的所述多个相邻重构块中为所述当前块选择一个或多个相邻样本的部件;用于基于所述选择的一个或多个相邻样本确定用于所述当前块的一个或多个照明补偿参数的部件;用于基于所述确定的一个或多个照明补偿参数来调整用于所述当前块的预测块的部件;以及用于使用所述调整后的预测块对所述当前块进行编码的部件。

根据至少一个实施例的另一总体方面,提供了一种用于解码视频数据的装置,所述装置包括:用于基于用于重构多个相邻重构块的信息,从在图片中被解码的当前块的所述多个相邻重构块中为所述当前块选择一个或多个相邻样本的部件;用于基于所述选择的一个或多个相邻样本确定一个或多个照明补偿参数的部件;用于基于所述确定的一个或多个照明补偿参数来调整用于所述当前块的预测块的部件;以及用于基于所述调整后的预测块对所述当前块进行解码的部件。

根据至少一个实施例的另一总体方面,提供了一种用于编码视频数据的装置,所述装置包括至少一个存储器和一个或多个处理器,其中所述一个或多个处理器被配置为:基于用于重构多个相邻重构块的信息,从在图片中被编码的当前块的所述多个相邻重构块中为所述当前块选择一个或多个相邻样本;基于所述选择的一个或多个相邻样本确定用于所述当前块的一个或多个照明补偿参数;基于所述确定的一个或多个照明补偿参数来调整用于所述当前块的预测块;以及使用所述调整后的预测块对所述当前块进行编码。

根据至少一个实施例的另一总体方面,提供了一种用于解码视频数据的装置,所述装置包括至少一个存储器和一个或多个处理器,其中所述一个或多个处理器被配置为:基于用于重构多个相邻重构块的信息,从在图片中被解码的当前块的所述多个相邻重构块中为所述当前块选择一个或多个相邻样本;基于所述选择的一个或多个相邻样本确定一个或多个照明补偿参数;基于所述确定的一个或多个照明补偿参数来调整用于所述当前块的预测块;以及基于所述调整后的预测块对所述当前块进行解码。

根据至少一个实施例的另一总体方面,用于重构所述多个相邻重构块的所述信息也用于重构所述当前块。为了确定所述一个或多个照明补偿参数,还使用所述当前块的参考图片中的对应相邻样本。在一个示例中,用于重构所述多个相邻重构块的所述信息包括以下信息中的一项或多项:1)所述多个相邻重构块的参考图片信息;以及2)所述多个相邻重构块的运动向量信息。

根据至少一个实施例的另一总体方面,通过所述装置或所述方法进行的所述选择还包括,对于所述多个相邻重构块中的特定块:确定所述特定块是否与所述当前块共享相同的参考图片,其中基于所述确定来选择所述特定块。

根据至少一个实施例的另一总体方面,通过所述装置或所述方法进行的所述选择还包括,对于所述多个相邻重构块中的特定块:确定所述特定块的运动向量值和所述当前块的运动向量值之间的差是否小于阈值,其中基于所述确定来选择所述特定块。可以在确定所述差之前缩放所述特定块的所述运动向量值。

根据至少一个实施例的另一总体方面,通过所述装置或所述方法进行的所述选择还包括,对于所述多个相邻重构块中的特定块:确定所述当前块是否继承用于编码或解码所述特定块的所述信息,其中基于所述确定来选择所述特定块。

根据至少一个实施例的另一总体方面,如果所述当前块从所述多个相邻重构块中的顶部相邻重构块继承或导出编码或解码信息,则仅将在所述当前块上方的相邻样本用于所述确定所述一个或多个照明补偿参数;或者,如果所述当前块从所述多个相邻重构块的左侧相邻重构块继承或导出编码或解码信息,则仅将在所述当前块左侧的相邻样本用于所述确定所述一个或多个照明补偿参数。

根据至少一个实施例的另一总体方面,其中根据所述多个相邻重构块的一个或多个对应照明补偿标志,对指示使用所述一个或多个照明补偿参数来对所述当前块进行编码或解码的照明补偿标志进行预测。

根据至少一个实施例的另一总体方面,使用合并(merge)模式、先进运动向量预测(amvp)模式或帧速率上转换(fruc)模式对所述当前块进行帧间编码或解码。也可以对所述当前块进行帧内编码或解码。

根据至少一个实施例的另一总体方面,比特流被格式化为包括指示照明补偿被用于图片中的当前块的信号;以及用于所述当前块的编码的预测残差,其中基于一个或多个照明补偿参数来调整所述当前块的预测块,其中基于所述当前块和所述调整后的预测残差块来形成所述预测残差,其中基于用于重构多个相邻重构块的信息来选择来自所述当前块的所述多个相邻重构块的一个或多个相邻样本,并且其中基于所述选择的一个或多个相邻样本来为所述当前块确定所述一个或多个照明补偿参数。

本实施例中的一个或多个还提供了一种计算机可读存储介质,其上存储有用于根据上述任何方法对视频数据进行编码或解码的指令。本实施例还提供一种计算机可读存储介质,其上存储有根据上述方法生成的比特流。本实施例还提供一种用于发送根据上述方法生成的比特流的方法和装置。本实施例还提供一种计算机程序产品,其包括用于执行所描述的任何方法的指令。

附图说明

图1示出了视频编码器的实施例的框图。

图2a是描绘五个空间候选的位置的图示示例。图2b是描绘使用amvp的运动向量表示的图示示例。

图3示出了视频解码器的实施例的框图。

图4示出了使用fruc来导出当前块的运动信息。

图5示出了用于执行运动推导的示例性过程。

图6从概念上示出了使用l形模板的照明补偿(ic)参数的推导。

图7示出了关于对象的l形模板中的相邻样本和当前块的两个示例。

图8示出了根据至少一个实施例的总体方面的选择重构的相邻样本以计算ic参数的示例性过程。

图9(a)和图9(b)示出了根据至少一个实施例的总体方面的选择多个样本以进行ic参数计算的两个示例。

图10示出了根据至少一个实施例的总体方面的用于选择相邻样本以进行ic参数计算的示例性过程。

图11示出了合并模式下的运动向量的示例性推导。

图12示出了根据至少一个实施例的总体方面的使用合并模式信息来选择用于ic参数计算的相邻样本的示例性过程。

图13(a)、图13(b)和图13(c)示出了用于缩放运动向量的图示示例。

图14示出了根据至少一个实施例的总体方面的预测ic标志的示例性过程。

图15示出了可以在其中实现本实施例的各方面的系统的框图。

具体实施方式

图1示出了示例性视频编码器100,诸如高效视频编码(hevc)编码器。hevc是由视频编码联合协作小组(jct-vc)开发的压缩标准(例如,参见“itu-th.265telecommunicationstandardizationsectorofitu(10/2014),seriesh:audiovisualandmultimediasystems,infrastructureofaudiovisualservices-codingofmovingvideo,highefficiencyvideocoding,recommendationitu-th.265(itu-th.265itu电信标准化部门(10/2014),系列h:视听和多媒体系统,视听服务的基础架构-运动视频编码,高效视频编码,itu-th.265建议书)”)。图1还可以示出其中对hevc标准进行了改进的编码器或采用类似于hevc的技术的编码器。

在本申请中,术语“重构的”和“解码的”可以互换使用,术语“编码的(encoded)”或“编码的(coded)”可以互换使用,以及术语“图片”和“帧”可以互换使用。通常但并非必须地,术语“重构的”在编码器侧使用,而“解码的”在解码器侧使用。

在hevc中,为了用编码具有一个或多个图片的视频序列,将图片划分为一个或多个条带(slice),其中每个条带可包括一个或多个条带段(slicesegment)。条带段被组织成编码单元、预测单元和变换单元。hevc规范区分“块(block)”和“单元(unit)”,其中“块”寻址样本阵列(例如亮度、y)中的具体区域,而“单元”包括所有编码颜色分量(y、cb、cr或单色(monochrome))的并置(collocated)块、语法元素(syntaxelement)以及与这些块相关联的预测数据(例如,运动向量)。

为了进行编码,将图片划分为具有可配置大小的正方形的编码树块(ctb),并且将连续的一组编码树块分组成条带。编码树单元(ctu)包含编码的颜色分量的ctb。ctb是划分为编码块(cb)的四叉树的根,并且可将一个编码块划分为一个或多个预测块(pb),并形成划分为变换块(tb)的四叉树的根。与编码块、预测块和变换块相对应地,一个编码单元(cu)包括预测单元(pu)和树形结构的变换单元(tu)集合,一个pu包括所有颜色分量的预测信息,以及一个tu包括每个颜色分量的残差编码语法结构。亮度分量的cb、pb和tb的大小适用于对应的cu、pu和tu。在本申请中,术语“块”可用于指代例如ctu、cu、pu、tu、cb、pb和tb中的任何一个。另外,“块”还可用于指代h.264/avc或其他视频编码标准中指定的宏块和分区(partition),并且更一般地指代各种大小的数据阵列。

在示例性编码器100中,如下所述,通过编码器元件对图片进行编码。以cu为单元对待编码的图片进行处理。使用帧内模式或帧间模式编码每个cu。当以帧内模式编码cu时,其执行帧内预测(160)。在帧间模式下,执行运动估计(175)和补偿(170)。编码器决定(105)使用帧内模式或帧间模式中的哪一个来对cu进行编码,并且通过预测模式标志(flag)指示帧内/帧间决定。通过从原始图像块中减去(110)预测块来计算预测残差。

根据相同条带内的重构的相邻样本来预测帧内模式下的cu。在hevc中有35种帧内预测模式的集合可用,包括dc、平面(planar)和33种角度预测模式。从与当前块相邻的行和列来重构帧内预测参考。该参考使用来自先前重构的块的可用样本,在水平和垂直方向上延伸超过块大小的两倍。当将角度预测模式用于帧内预测时,可以沿着由角度预测模式指示的方向来复制参考样本。

可以使用两个不同的选项对当前块的适用亮度帧内预测模式进行编码。如果适用的模式被包括在三个最可能模式(mpm)的构造列表中,则由mpm列表中的索引来信令通知(signaled)该模式。否则,通过模式索引的固定长度二进制化来信令通知该模式。三种最可能模式是从顶部和左侧相邻块的帧内预测模式导出的。

对于帧间cu来说,对应的编码块被进一步划分为一个或多个预测块。在pb层级上执行帧间预测,并且对应的pu包含关于如何执行帧间预测的信息。可以以两种方法来信令通知运动信息(例如,运动向量和参考图片索引),即“合并模式”和“先进运动向量预测(amvp)”。

在合并模式中,视频编码器或解码器基于已编码的块来组合候选列表,并且视频编码器信令通知候选列表中的候选之一的索引。在解码器侧,基于信令通知的候选来重构运动向量(mv)和参考图片索引。

在合并模式下的可能候选集合由空间相邻候选、时间候选和生成的候选组成。图2a示出了当前块210的五个空间候选{a1,b1,b0,a0,b2}的位置,其中,a0和a1在当前块的左侧,而b1、b0和b2在当前块的顶部。对于每个候选位置,根据a1、b1、b0、a0、b2的顺序检查可用性,然后删除候选中的冗余。

参考图片中并置位置的运动向量可以用于导出时间候选。在条带的基础上选择适用的参考图片,并在条带头部中进行指示,并将时间候选的参考索引设置为iref=0。如果并置pu的图片与从中预测并置pu的参考图片之间的poc距离(td)和当前图片与包含并置pu的参考图片之间的距离(tb)相同,可以将并置运动向量mvcol直接用作时间候选。否则,将缩放的(scaled)运动向量tb/td*mvcol用作时间候选。根据当前pu的位置,由当前pu的右下角或中心处的样本位置确定并置pu。

在amvp中,视频编码器或解码器基于从已编码的块中确定的运动向量来组合候选列表。然后,视频编码器信令通知候选列表中的索引以标识运动向量预测值(motionvectorpredictor,mvp),并信令通知运动向量差(mvd)。在解码器侧,运动向量(mv)被重构为mvp+mvd。还在amvp的pu语法中显示地编码适用的参考图片索引。

图2b示出了使用amvp的示例性运动向量表示。对于要被编码的当前块240来说,可以通过运动估计来获得运动向量(mvcurrent)。通过使用来自左块230的运动向量(mvleft)和来自上块220的运动向量(mvabove),可以从mvleft和mvabove中选择运动向量预测值作为mvcurrent。然后可以将运动向量差计算为mvdcurrent=mvcurrent-mvpcurrent。

可以使用一个或两个参考图片进行预测来执行运动补偿预测。在p条带中,仅单个预测参考可以用于帧间预测,从而使得能够对预测块进行单向预测(uni-prediction)。在b条带中,两个参考图片列表是可用的,并且可以使用单向预测或双向预测(bi-prediction)。在双向预测中,使用来自每个参考图片列表的一个参考图片。

然后,对预测残差进行变换(125)和量化(130)。对量化后的变换系数以及运动向量和其他语法元素进行熵编码(145)以输出比特流。编码器还可以跳过变换,并基于4x4tu将量化直接应用于未经变换的残差信号。编码器还可以跳过变换和量化两者,即,在不应用变换或量化过程的情况下直接对残差进行编码。在直接pcm编码中,不应用任何预测,并且将编码单元样本直接编码到比特流中。

编码器对编码的块进行解码,以为进一步预测提供参考。对量化后的变换系数进行解量化(140)和逆变换(150)以解码预测残差。结合(155)经解码的预测残差和预测块,对图像块进行重构。将环路内(in-loop)滤波器(165)应用于重构的图片,例如,以执行解块/sao(样本自适应偏移)滤波以减少编码伪影(artifact)。滤波后的图像存储在参考图片缓冲器(180)中。

图3示出了示例性视频解码器300(诸如,hevc解码器)的框图。在示例性解码器300中,如下所述,由解码器元件对比特流进行解码。视频解码器300通常执行与图1所示的编码遍历(encodingpass)互易的解码遍历(decodingpass),其执行视频解码作为编码视频数据的一部分。图3还可以示出其中对hevc标准进行了改进的解码器或采用类似于hevc的技术的解码器。

特别地,解码器的输入包括可由视频编码器100生成的视频比特流。首先,对比特流进行熵解码(330)以获得变换系数、运动向量和其他编码的信息。对变换系数进行解量化(340)和逆变换(350)以解码预测残差。结合(355)经解码的预测残差和预测块,对图像块进行重构。可以从帧内预测(360)或运动补偿预测(即帧间预测)(375)获得(370)预测块。如上所述,amvp和合并模式技术可用于导出用于运动补偿的运动向量,其可使用插值滤波器来计算参考块的子整数样本的插值。将环路内滤波器(365)应用于重构的图像。滤波后的图像存储在参考图片缓冲器(380)中。

联合视频探索小组(jointvideoexplorationteam,jvet)在参考软件jem(jointexplorationmodel(联合探索模型))中开发了基于帧速率上转换技术的帧速率上转换(frameup-conversion,fruc)模式或推导。通过利用fruc模式,块的运动信息是在解码器侧导出的,而无需mvp信息的显式语法。fruc过程是完全对称的,即在编码器和解码器处执行相同的运动推导操作。

图4示出了使用fruc来导出当前块410的运动信息。当前块可以处于“合并”或“amvp”模式。当前块的顶部相邻块和左相邻块用作模板(template)。可以通过定位当前块的模板(420、430)和参考图片中的块的模板(440、450)之间的最佳匹配,定位具有最小匹配成本(例如,具有模板之间的最小sad(绝对差之和))的块(460)来导出运动信息。sad以外的其他成本测量也可以用于计算匹配成本。特别地,可以获得运动向量作为当前块的并置块与最佳匹配块之间的位移。

图5示出了在fruc模式下选择运动向量的示例性过程500。在步骤510,构建mv候选列表。在步骤520至540,从mv候选列表中选择mv(540处的best_mv),以便使运动补偿参考块和当前块的模板(530中的ref0和rec)之间的绝对差之和(sad)(530)最小化。

视频压缩技术的其他最新添加(诸如在联合探索测试模型(jointexplorationtestmodel)6的算法描述(jem6,文档:jvet-f1001-v3)中所述的那些添加),包括使用照明补偿(illuminationcompensation,ic)参数来补偿被编码或解码的当前块与至少一个预测块之间的照明(例如,亮度)变化。特别地,如图6所示,将l形模板用于选择相邻样本以计算帧间编码模式下的ic参数。通过将参考i块(i=0或1)603”的相邻样本(l形参考i区域602”中的样本)与重构的相邻样本(即,当前块603’的l形当前区域602’中的样本)进行比较来估计ic参数。注意,为了降低计算复杂度,这里的参考i块不完全是预测块,而是参考i块基于运动向量的整数版本(即,全像素精度)而不使用运动补偿插值滤波器。ic参数使l形当前(l-shape-cur)602’中的样本与通过ic参数进行调整的l形参考i602”中的样本之间的差最小化。

也就是说,在帧间预测编码或解码中,当前块603’使用运动信息(例如,运动向量mvcur和标识例如解码图片缓冲器中的一个参考图片的参考图片索引i)以使用运动补偿(mc)过程构建预测块。此外,通过ic参数来调整预测块。如图6所描绘的,给定使用第i个参考图片(参考i)获得的预测块,通过比较l形当前602’中的重构的相邻样本与参考i块(i=0或1)的l形参考i602”中的相邻样本来估计ic参数。

可以通过使l形当前602’中的样本与通过ic参数进行调整的l形参考i602”中的样本之间的均方误差/差(mse)最小化来估算ic参数。通常,ic模型是线性的,例如:

ic(y)=ay+b,(1)

其中,a是斜率参数,以及b是截距参数。然后可以如下所示获得ic参数(ai,bi):

其中,x是当前图片的l形模板中的重构的样本,y是参考图片的l形模板中的样本,其可以经由利用mvcur或修改后的mvcur(例如较低精度的mvcur)的运动补偿获得。在等式中(2)中,如图6所示,x和y是位于l形模板内的相同位置的样本(例如,参见x605’和y605”对)。在双向预测的情况下,ic参数(a0,b0)和(a1,b1)分别从l形参考0和l形参考1独立导出。在比特流中,当为当前条带、图片或序列启用ic时,可以按照每个块对诸如ic标志之类的指示进行编码,以指示是否为该块启用了ic。

ic可以提高压缩效率的原因之一是:针对相邻样本优化的ic参数可能仍然适合用于当前块。通常这是正确的,因为l形模板中的相邻样本是与当前块最接近的可用的重构样本。然而,如果某些相邻样本属于与当前块不同的对象,如图7中的示例所示,则这些相邻样本不太可能提供良好的ic参数估计。在图7左侧的图片701中,对象702包含l形模板和当前块的大部分。另一方面,在当前图片703中,对象704仅包含l形模板,而几乎不包含当前块的任何部分。因此,在如图片703所示的当前块的情况下,l形模板的样本可能不太适合用于估计当前块的ic参数。

本实施例涉及用于自适应地选择要用于导出ic参数的相邻样本的方法和装置,使得ic过程可以更有效地改善当前块预测。特别地,提出了通过改变用于估计ic参数的重构的相邻样本的选择,使得它们可以更好地与当前块样本相关来改善基于块的ic的技术。

图8示出了根据一个实施例的用于选择重构的相邻样本以计算ic参数的示例性过程800。在步骤810,对于当前块,获得运动信息(例如,mv、参考图片索引),并将其用于通过运动补偿(mc)过程来构建预测信息。在步骤820,如果正在使用ic(诸如由ic标志指示),则检查ic标志以查看其是真还是假。如果ic标志为真,则选择相邻重构样本集合s(830)。与jem6中使用的固定l形模板不同,相邻样本集合s将自适应地变化,以便改善ic过程。例如,在一个示例性方面,将基于用于重构一个或多个相邻重构块的信息来选择相邻样本集合s。下面将描述选择相邻样本集合s的各种示例性实施例的细节。

在步骤840,利用所选的相邻样本集合s和参考图片中的对应样本来估计ic参数。这里,可以选择参考图片中的对应样本作为当前块的预测块的相邻样本。为了简化计算,编码器或解码器可以选择参考图片中特定块周围的对应样本,其中当前块的运动向量(mvcur)以较低的精度(例如,整数全像素版本或半像素)指向该特定块。参考图片中的对应样本集合通常具有与当前块的样本集合s相同的形状。在步骤850,将估计的ic参数用于对当前块的预测的照明补偿(即,基于ic函数进行调整),例如,使用等式(1)对预测块中的样本进行调整。在步骤860,将在照明补偿之后的预测块用于编码或解码当前块。

方法800可以在编码器或解码器处使用。为了正确地解码比特流,应在编码器和解码器处使用相同的ic参数估计方法。

当在编码器侧使用方法800时,可以从运动估计过程获得(810)运动信息。运动估计可以考虑也可以不考虑照明补偿。除了输出运动信息之外,运动估计过程还可以例如通过将ic标志设置为真或假来决定是否使用ic。在对预测块进行照明补偿(850)之后,可以对预测残差(即当前块与照明补偿后的预测块之间的差)进行变换和量化以形成变换系数。通过针对ic的相邻样本集合s的自适应选择,预测残差可以变得更小,因此可以用更少的比特进行编码。然后可以将包括变换系数、运动信息和ic标志的信息编码(860)到比特流中。可替代地,ic标志没有被显示地编码,而是可以在解码器侧从其他解码信息推断出。

当在解码器侧使用方法800时,可例如使用合并模式或amvp从比特流中解码(810)运动信息。还可以从比特流中解码(820)ic标志。在对预测块进行照明补偿(850)之后,可以将预测块添加到预测残差以便解码(860)当前块。

在一个示例性实施例中,当前块使用诸如运动向量和参考图片信息之类的运动信息以在帧间模式下使用运动补偿过程来构成预测。该运动信息由编码器或解码器存储,使得可以将其用于编码或解码其他块。特别地,相邻块的运动信息可以用于导出哪些相邻样本将用于ic参数计算。

图9示出了示例性当前块和若干相邻块的运动信息。注意,相邻块可以具有不同的大小。在图9(a)中,以虚线示出了当前jem中使用的l形模板。在该示例中,l形模板901的顶部部分901-1上的相邻样本属于相邻块t0、t1和t2,并且l形模板901的左侧部分901-2上的相邻样本属于块l0、l1和l2。此外,根据该示例性实施例,仅会选择属于与当前块共享相同参考图片和/或具有接近于当前块mv值的mv值的块(诸如t0、t1、t2、l0、l1和l2中的一个或多个)的相邻样本来导出当前块的ic参数。

在以上示例中,仅可以选择来自样本与当前块紧邻的相邻块的样本。在其他实施例中,可以选择来自其他重构的相邻块的样本。例如,如图9(b)所示,以虚线示出了不同的l形,其对应于延伸为进一步包括左上、左下或右上相邻块的l形。在该示例中,l形模板911的顶部部分911-1上的相邻样本属于相邻块t0、t1、t2和t3,而l形模板911的左侧部分911-2上的相邻样本属于块l0、l1、l2、l3和l4。

此外,l形厚度可以是一个或多个样本。例如,如果厚度为2个样本,则l形顶部部分具有两行样本,而l形左侧部分具有两列样本。另外,可以对l形进行子样本。例如,仅会选择从顶部开始的两行中的一行,或从左侧开始的两列中的一列。这在其中l形非常大以便1)加快计算速度和2)简化ic参数计算的情况下是具有优势的,因为用于导出ic的算法(通常基于最小二乘)可以使用样本值的平方之和,因此需要足够的范围数量来存储某些数字值。l形也可以具有不同的左侧和顶部厚度,或者模板的形状也可以与l形不同。可替代地,可以从所选择的相邻重构块中选择样本,并进行可能的子样本,并且将其用于ic参数计算而不受l形模板的约束。

图10示出了根据一个实施例的用于为ic参数计算选择相邻样本的示例性过程1000。方法1000可以在方法800的步骤830中使用。在步骤1010,获得当前块的相邻块列表。如图9(a)所示,该列表可以包含顶部相邻块(例如,t0、t1和t2)和左侧相邻块(例如,l0、l1和l2)。在步骤1020,首先进行确定以查看来自多个相邻块列表中的相邻块“b”是否是帧间编码的。如果相邻块“b”是帧间编码的,则在步骤1030,进行确定以查看块“b”是否使用了相同的参考图片。在非限制性示例性实施例中,还进行确定以查看特定相邻块“b”的运动向量值(mvb)与当前块的运动向量值(mvcur)之间的差是否小于阈值。例如,差函数可以是l2-范数((mvbx-mvcurx)2+(mvby-mvcury)2)或具有两个阈值的li-范数(|mvbx-mvcurx|<thx和|mvby-mvcury|<thy,或min(|mvbx-mvcurx|,|mvby-mvcury|)<th)。如果在步骤1030的确定是肯定的,则在步骤1040,将属于特定块“b”的l形模板中的相邻样本添加到所选样本集合s。然后,过程1000循环回到步骤1020,直到已经测试了所有相邻块(例如,t0、t1、t2、l0、l1和l2)。

在一个示例中,因为相邻块l2、t1和t2与当前块902共享相同的参考图片,并且这些块的mv值接近于当前块的mv值,所以仅为集合s选择l形模板区域901中的并且属于这些块的相邻样本。返回参照图9(a),在l形模板901中以阴影指示所选的样本s。

在另一示例中,因为相邻块l2、l3、t1、t2和t3与当前块912共享相同的参考帧,并且这些块的mv值接近于当前块的mv值,所以仅为集合s选择l形模板区域911中属于这些块的相邻样本。返回参照图9(b),在l形模板901中以阴影指示所选的样本。

除了运动向量值和参考图片信息之外,其他运动信息也可以用于选择相邻样本集合s。在不同的实施例中,用于ic计算的相邻样本集合s可以基于诸如在合并模式下当前块是否被指示为继承了与相邻块相同的运动向量,或者诸如在amvp或fruc模式下基于相邻块的运动向量和mvd导出了运动向量。

图11示出了其中正在被编码或解码的诸如块902(也在图9(a)中示出)的当前块可以使用合并模式信息来选择相邻样本的示例性实施例。在合并模式中,诸如运动信息(例如,运动向量和/或参考索引)之类的某些信息不是从比特流中解码的,而是从先前解码的相邻块继承的。例如,在hevc合并模式下,解码器构件合并候选的列表,该合并候选包含先前解码的相邻块(例如,t0、t1、t2、l0、l1和l2)数据和(一个或多个)并置块(例如,1101)数据。解码器还解码合并索引,该索引指示当前块将从哪个候选块继承运动信息。

在示例性实施例中,如果合并索引指示位于当前块上方的相邻块,则将样本集合s选择为等于l形模板的整个上部分。另一方面,如果合并索引指示位于当前块左侧的块,则将样本集合s选择为等于l形的整个左部分。返回参照图11所示的示例,如果合并索引指示相邻块t2,则选择l形的上部分,如在l形模板902中的阴影所示。在不同的实施例中,代替选择l形的整个上部分或左部分,可以选择属于合并索引所指示的相邻块的左部分的上方的一部分。

图12示出了根据一个实施例的用于使用合并模式信息来为ic参数计算选择集合s的示例性过程1200。方法1200可以用于方法800中的步骤830。在步骤1210,首先确定是否存在指示对编解码器使用了合并模式的合并标志。合并标志可以在比特流中编码,也可以从其他解码的信息中推断出来。如果是,则在1220,获得对应的合并索引。在步骤1230,如以上结合图11所描述的,构建合并候选列表。在步骤1240,获得当前块的所选合并候选块的位置。在步骤1250和1270,如果选择的合并候选块位于当前块的上方,则将样本集合s选择为等于l形模板的上部分。另一方面,在步骤1260和1280,如果合并索引指示位于当前块左侧的块,则将样本集合s选择为等于l形的左部分。在其他情况下,在步骤1290,将样本s选择为等于l形。

在某些编码模式下,例如,基于从重构的相邻块的运动向量中选择的运动向量预测值和mvd(其可以被编码在比特流中(例如,在jem的amvp模式下),或可以通过运动向量细化来构建(例如,在jem的fruc模式下)),使用相邻块的运动信息对当前运动信息进行解码或编码。例如,在amvp模式下,使用相邻块的运动信息来构建运动信息候选的amvp列表,并且对mv预测值索引进行编码或解码。从与mv预测值索引相对应的运动向量中导出当前运动向量(即,对当前运动向量进行预测)。因此,在示例性实施例中,如果mv预测值索引指示当前块上方的相邻块,则样本集合s等于l形模板的上部分。另一方面,如果mv预测值索引指示当前块左侧的相邻块,则样本集合s等于l形模板的左部分。

另外,在某些编码模式中,不对运动向量进行编码,而是使用fruc(帧速率上转换)模式在解码器侧导出运动向量。如图5的示例所示,在fruc模式下,构建了mv候选列表,并且解码器最终将选择使运动补偿的参考l形模板(ref0)与当前重构的l形(rec)之间的差最小化的mv(best_mv)。该best_mv用于导出当前运动信息。在一个实施例中,如果best_mv来自当前块上方的相邻块,则将集合s设置为l形的上部分。如果best_mv来自当前块左侧的相邻块,则将集合s设置为l形的左部分。

此外,如前所述,可以例如根据当前pu的当前图片和参考图片之间的距离(tb)以及空间候选的当前图片和参考图片之间的距离(td)来缩放候选运动向量。因此,在一个示例性方面,对于以帧间模式编码的所有相邻块(包括amvp和fruc)来说,对mv候选进行缩放以便用与当前块参考图片相同的参考图片来表示,如图13所示。图13(a)示出例如在具有poc=1的相邻块与具有poc=2的对应参考块之间的参考mv。图13(b)示出了具有poc=0的当前块和具有poc=2的对应参考块的mv。图13(c)示出在poc=0和poc=2之间缩放的参考mv。然后,将样本集合s与缩放后的mv接近于当前mv的相邻样本构建在一起。可以在方法1000的步骤1030中使用基于缩放的mv的差计算。

图14示出了根据一个实施例的用于根据相邻块的ic标志值来预测ic标志的值的示例性过程1400。ic标志值的预测(图14中的ic_flag_pred)是ic标志值列表的函数,其中以与先前实施例相同的方式构建该列表。例如,利用具有属于l形的样本的重构相邻块的ic标志值来构建ic标志值的列表。在一个示例性实施例中,不直接对ic标志进行编码,而是对残差ic标志值(图14中的ic_flag_residual)进行编码,该残差ic标志值是实际ic标志值与预测ic标志值(图14中的ic_flag_pred)之间的差。在另一个示例性方面,将预测ic标志值设置为具有与当前块相同的参考和/或具有接近于当前mv值的mv的相邻块的所有ic标志值的中值,其中可以如前所述对mv进行缩放。使用可能与ic标志值相同的值来预测ic标志的优势在于,ic_flag_residual的熵可能会变得非常小(小于ic标志本身),因此可以需要较少的比特来编码,例如利用cabac。

返回参照图14,在步骤1410,首先获得相邻块列表。在步骤1420,对ic_flag_residual进行解码。然后,对相邻块列表中的每个块执行由步骤1430至1450组成的环路。在步骤1430,确定特定相邻块是否以帧间模式被编码。如果是,则在1440,进行另一确定以查看该相邻块是否使用与当前块相同的参考和/或特定相邻块的运动向量值与当前块的运动向量值之间的差是否小于阈值。如果确定为是,则将该特定相邻块的ic_flag添加到ic_flag值的列表中,以用于导出与被编码或解码的当前块相对应的ic_flag。在1460处,根据如上所述的示例性函数,可以将ic_flag_pred计算为ic_flag值的列表的函数。在1470,将当前块的ic_flag设置为ic_flag_pred和ic_flag_residual之和。

当将obmc(重叠块运动补偿)用于运动补偿时,可以应用确定ic参数的不同方法,例如但不限于jem中使用的那些方法以及根据本实施例的方法。在基于块的视频编码中,obmc的技术可用于减少编码单元(cu)边界处的块状伪影。

当将obmc应用于当前块时,除了当前块的运动信息(例如,运动向量和参考图片索引)之外,相邻块的运动信息(如果可用并且与当前运动信息不同)也用于导出当前块的预测块。结合基于多个运动信息的这些多个预测块以生成当前块的最终预测信号。基于相邻块运动信息的预测块被表示为pn,其中n指示相邻块的索引(例如,上、下、左和右块),并且基于当前块运动信息的预测块被表示为pc。应当注意,当使用ic时,ic参数也用于形成预测块(pc,pn)。

当启用obmc时,其将应用于当前cu边界区域(顶部和左侧)的每个样本s。顶部边界区域是指当前块的顶部前d个行中的样本,左侧边界区域是指当前块的左侧前d个列中的样本(例如,d对于亮度来说等于2,对于色度来说等于4)。

如图16所示,对于边界区域的每个样本来说,预测pc(s)和预测pn(s)的加权和可用于生成最终预测(pobmc(s)):

—如果s属于一个边界区域:pobmc(s)=w(d).pc(s)+(1-w(d)).pn(s)

—如果s属于两个边界区域:pobmc(s)=(w(d1)+w(d2)).pc(s)+(1-w(d1)).pn1(s)+(1-w(d2)).pn2(s)

在其中将当前cu分为多个子cu的子cu编码的情况下,将obmc应用于每个子cu,并且也可以具有右侧obmc边界区域和底部obmc边界区域(如图17所示)。子cu编码模式的示例是仿射模式,其中每个子cu的运动向量内插在cu内。

obmc和照明补偿(ic)

如在jem中所实现的,如果相邻cu使用了照明补偿(ic),则在计算顶部相邻块的预测块时执行ic参数的确定(步骤-1,图18(a)),并且还执行ic参数的确定以针对与顶部相邻cu相接(bordering)的样本计算当前块的pn(s)(步骤-2,图18(b))。

特别地,图18示出了其中顶部块使用ic来计算其预测pt(利用ict参数),而当前块不使用ic来构建预测pc的情况。但是pn使用ic,这是因为相邻的顶部块使用ic。pt和pn使用相同的运动信息。

如果当前块也使用了ic,则将为当前块确定ic参数(icc),并将其用于计算pc。但是obmc过程不使icc(使用icn)来计算pn。

因此,当obmc涉及使用ic的相邻cu时,如也在图19中示出的,使用不同的l形(参见图18中的步骤1-2)但利用相同的运动信息,执行两次ic参数的计算,这可能会导致以下两个问题:

—与不带ic的obmc相比,复杂度(计算量)可能很大。

—步骤-1和步骤-2的ic参数可以不同,这可能会导致cu边界处出现不连续性,而obmc的目的实际上是为了减少边界不连续性。

为了解决由于对当前块的obmc使用不同的ic参数作为为重构相邻cu而计算出的ic参数而导致的利用ic模式的obmc问题,可以存储为重构当前cu而计算出的ic参数,以便可以将它们重新用于计算后续cu的obmc,如图20所示。

考虑图18的示例,首先对顶部cu进行解码/重构。由于它使用ic,因此可以确定ict参数并将其应用于预测pt。然后,将ict参数存储在“ic参数储存”中。之后,对当前cu进行解码。当前的预测是作为pc而构建的。下一个obmc过程开始于顶部边界区域:由于相邻顶部cu使用ic,因此随后从“ic参数储存”中取得ict参数,并将其用于构建pn。最后,通过pc和pn的加权和构建pobmc。对左侧边界区域和左侧相邻cu执行相同的obmc处理。

上面描述了各种方法,并且每个方法包括用于实现所描述的方法的一个或多个步骤或动作。除非方法的正确操作需要特定顺序的步骤或动作,否则可以对特定步骤和/或动作的顺序和/或使用进行修改或组合。

在本申请中使用了各种数值,例如,ic参数的数量或l形模板的厚度(以样本的数量为单位)。应当注意,特定值是出于示例性目的,并且本实施例不限于这些特定值。

如上所述,选择用于ic参数计算的相邻重构样本的各种方法可用于修改如图1和图3所示的jvet或hevc编码器和解码器的运动估计和补偿模块(170、175、375)。此外,本实施例不限于jvet或hevc,并且可以应用于其他标准、建议及其扩展。上述各种实施例可以单独或组合使用。

另外,在不同的实施例中,ic模型可以使用ic参数的其他线性或非线性函数。例如,ic模型可以仅考虑斜率参数而没有截距参数,即ic(y)=a*y。在另一个示例中,ic模型可以具有两个以上的参数,这取决于函数(例如,取决于多项式函数的次数)。为了估计ic参数,而不是如等式(2)中所示的mse,可以使用绝对差或其他差函数。也可以在将照明补偿用于帧内编码时应用本实施例。

图15示出了其中可以实现示例性实施例的各个方面的示例性系统1500的框图。系统1500可以体现为包括以下描述的各种组件的设备,并被配置为执行上述过程。这样的设备的示例包括但不限于个人计算机、膝上型计算机、智能电话、平板计算机、数字多媒体机顶盒、数字电视接收机、个人视频记录系统、连接的家用电器和服务器。系统1500可以经由如图15所示的通信信道可通信地耦合到其他类似的系统以及耦合到显示器,并且如本领域技术人员公知的,以实现上述示例性视频系统的全部或部分。

系统1500的各种实施例包括至少一个处理器1510,其被配置为执行加载在其中的指令以实现如上所述的各种过程。处理器1510可以包括嵌入式存储器、输入输出接口以及本领域已知的各种其他电路。系统1500还可以包括至少一个存储器1520(例如,易失性存储设备、非易失性存储设备)。系统1500可以另外包括储存设备1540,其可以包括非易失性存储器,包括但不限于eeprom、rom、prom、ram、dram、sram、闪存、磁盘驱动器和/或光盘驱动器。作为非限制性示例,存储设备1540可以包括内部储存设备、附接的储存设备和/或网络可访问的储存设备。系统1500还可包括编码器/解码器模块1530,其被配置为处理数据以提供编码的视频和/或解码的视频,并且编码器/解码器模块1530可包括其自己的处理器和存储器。

编码器/解码器模块1530表示可以被包括在设备中以执行编码和/或解码功能的(一个或多个)模块。如所周知的,这样的设备可以包括编码模块和解码模块之一或两者。另外,编码器/解码器模块1530可以被实现为系统1500的单独元件,或者可以并入一个或多个处理器1510内,以作为本领域技术人员已知的硬件和软件的组合。

要加载到一个或多个处理器1510上以执行上述各种过程的程序代码可以存储在储存设备1540中,然后被加载到存储器1520中以由处理器1510执行。(一个或多个)处理器1510、存储器1520、储存设备1540和编码器/解码器模块1530中的一个或多个可以在以上本文讨论的过程的执行期间存储各种项中的一个或多个,包括但不限于输入视频、解码的视频、比特流、等式、公式、矩阵、变量、运算和运算逻辑。

系统1500还可以包括通信接口1550,该通信接口1550使得能够经由通信信道1560与其他设备进行通信。通信接口1550可以包括但不限于配置为从通信信道1560发送和接收数据的收发器。通信接口1550可以包括但不限于调制解调器或网卡,并且通信信道1550可以在有线和/或无线介质内实现。系统1500的各种组件可以使用各种合适的连接而被连接或通信地耦合在一起(图15中未示出),包括但不限于内部总线、电线和印刷电路板。

示例性实施例可以由处理器1510或由硬件,或者由硬件和软件的组合实现的计算机软件执行。作为非限制性示例,示例性实施例可以由一个或多个集成电路实现。存储器1520可以具有适合于技术环境的任何类型,并且可以使用任何适当的数据储存技术来实现,诸如光存储器设备、磁存储器设备、基于半导体的存储器设备、固定存储器和可移动存储器,以作为非限制性示例。处理器1510可以具有适合于技术环境的任何类型,并且可以包括微处理器、通用计算机、专用计算机和基于多核架构的处理器中的一个或多个,以作为非限制性示例。

本文描述的实施方式可以例如以方法或过程、装置、软件程序、数据流或信号来实现。即使仅在实施方式的单个形式的上下文中进行讨论(例如,仅作为一种方法进行讨论),所讨论的特征的实施方式也可以以其他形式(例如,装置或程序)来实现。装置可以例如以适当的硬件、软件和固件来实现。方法可以例如在诸如处理器之类的装置中实现,该装置通常指的是处理设备,包括例如计算机、微处理器、集成电路或可编程逻辑设备。处理器还包括通信设备,诸如计算机、手机、便携式/个人数字助理(“pda”),以及其他有助于终端用户之间的信息通信的设备。

对“一个实施例”或“实施例”或“一个实施方式”或“实施方式”及其其他变型的引用意指结合实施例所描述的特定的特征、结构、特性等被包括在至少一个实施例中。因此,在整个说明书的各个地方出现的短语“在一个实施例中”或“在实施例中”或“在一个实施方式中”或“在实施方式中”以及任何其他变型不一定都指代相同的实施例。

另外,本申请或其权利要求可以涉及“确定”各种信息。确定信息可以包括例如以下中的一种或多种:估计信息、计算信息、预测信息或从存储器中取得信息。

此外,本申请或其权利要求可以涉及“访问”各种信息。访问信息可以包括例如以下中的一种或多种:接收信息、(例如从存储器中)取得信息、存储信息、移动信息、复制信息、擦除信息、预测信息或估计信息。

另外,本申请或其权利要求可以涉及“接收”各种信息。与“访问”一样,接收旨在为广义术语。接收信息可包括例如访问信息或(例如,从存储器中)取得信息中的一种或多种。此外,在诸如例如存储信息、处理信息、传输信息、移动信息、复制信息、擦除信息、计算信息、确定信息、预测信息或估计信息之类的操作期间,通常以一种或另一种方式涉及“接收”。

对于本领域的技术人员将显而易见的是,实施方式可以产生各种信号,这些信号被格式化以承载例如可以被存储或发送的信息。信息可以包括例如用于执行方法的指令或所描述的实施方式之一所产生的数据。例如,信号可以被格式化以承载所描述的实施例的比特流。这样的信号可以被格式化为例如电磁波(例如,使用频谱的射频部分)或基带信号。格式化可以包括例如对数据流进行编码并且利用编码的数据流来调制载波。信号承载的信息可以是例如模拟或数字信息。如所周知的,信号可以通过各种不同的有线或无线链路发送。信号可以存储在处理器可读介质上。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1