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

文档序号:1367530 发布日期:2020-08-11 浏览:15次 >En<

阅读说明:本技术 用于视频编码和解码中的自适应照明补偿的方法和装置 (Method and apparatus for adaptive illumination compensation in video encoding and decoding ) 是由 F.莱林内克 F.加尔平 T.波里尔 Y.陈 于 2019-01-22 设计创作,主要内容包括:描述了不同的实现方式,用于确定由视频编码器编码或由视频解码器解码的当前块的一个或多个照明补偿参数。确定在图片中正被编码的当前块的多个运动矢量。确定多个运动矢量中的每一个的一个或多个照明补偿参数并对其进行编码或解码。然后,使用多个运动矢量和多个运动矢量中的每一个的一个或多个照明补偿参数,对当前块进行编码或解码。在一个实施例中,使用标志来发信号通知使用还是不使用照明补偿。在另一实施例中,如果不使用照明补偿,则不对照明补偿标志进行编码或解码。(Various implementations are described for determining one or more illumination compensation parameters for a current block encoded by a video encoder or decoded by a video decoder. A plurality of motion vectors for a current block being encoded in a picture is determined. One or more illumination compensation parameters for each of the plurality of motion vectors are determined and encoded or decoded. Then, the current block is encoded or decoded using the plurality of motion vectors and the one or more illumination compensation parameters for each of the plurality of motion vectors. In one embodiment, a flag is used to signal whether illumination compensation is used or not used. In another embodiment, if illumination compensation is not used, the illumination compensation flag is not encoded or decoded.)

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

技术领域

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

背景技术

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

发明内容

根据至少一个实施例,提出了一种对视频数据进行编码的方法,该方法包括:为图片中正被编码的当前块确定多个运动矢量;为多个运动矢量中的每一个确定一个或多个照明补偿参数;以及使用多个运动矢量和所述多个运动矢量中的每一个的一个或多个照明补偿参数,对所述当前块进行编码。

根据另一个实施例,提出了一种对视频数据进行解码的方法,该方法包括:为图片中正被解码的当前块确定多个运动矢量;为多个运动矢量中的每一个确定一个或多个照明补偿参数;以及使用多个运动矢量和所述多个运动矢量中的每一个的一个或多个照明补偿参数,对所述当前块进行解码。

根据另一实施例,提出了一种用于对视频数据进行编码的装置,该装置包括:用于为图片中正被编码的当前块确定多个运动矢量的部件;用于为多个运动矢量中的每一个确定一个或多个照明补偿参数的部件;以及用于使用多个运动矢量和所述多个运动矢量中的每一个的一个或多个照明补偿参数,对所述当前块进行编码的部件。

根据另一实施例,提出了一种用于对视频数据进行解码的装置,该装置包括:用于为图片中正被解码的当前块确定多个运动矢量的部件;用于为多个运动矢量中的每一个确定一个或多个照明补偿参数的部件;以及用于使用多个运动矢量和所述多个运动矢量中的每一个的一个或多个照明补偿参数,对所述当前块进行解码的部件。

根据另一实施例,提出了一种用于对视频数据进行编码的装置,该装置包括至少一个存储器和一个或多个处理器,其中,所述一个或多个处理器被配置为:为图片中正被编码的当前块确定多个运动矢量;为多个运动矢量中的每一个确定一个或多个照明补偿参数;以及使用多个运动矢量和所述多个运动矢量中的每一个的一个或多个照明补偿参数,对所述当前块进行编码。

根据另一实施例,提供了一种用于对视频数据进行解码的装置,该装置包括至少一个存储器和一个或多个处理器,其中,所述一个或多个处理器被配置为:为图片中正被解码的当前块确定多个运动矢量;为多个运动矢量中的每一个确定一个或多个照明补偿参数;以及使用多个运动矢量和所述多个运动矢量中的每一个的一个或多个照明补偿参数,对所述当前块进行解码。

根据另一实施例,一种比特流,其被格式化为包括:为图片中正被编码的当前块编码的多个运动矢量;以及为所述多个运动矢量中的每一个编码的一个或多个照明补偿参数,其中,所述当前块是使用所述多个运动矢量和所述多个运动矢量中的每一个的所述一个或多个照明补偿参数进行编码的。

根据另一实施例,为所述多个运动矢量中的每一个提供照明补偿标志,该照明补偿标志指示使用一个或多个照明补偿参数对当前块进行编码或解码。可以根据照明补偿参数(诸如倾斜参数和截距参数)来预测照明补偿标志。

根据另一实施例,可以基于与多个运动矢量中的第二运动矢量相对应的第二照明补偿标志,对与多个运动矢量中的第一运动矢量相对应的第一照明补偿标志进行编码或解码。可以使用与第二照明补偿标志不同的上下文对第一照明补偿标志进行熵编码或解码。

根据另一实施例,如果不使用照明补偿,则不对照明补偿标志进行编码或解码。

根据另一实施例,从一个或多个参考图片中确定多个运动矢量。

根据另一实施例,一个或多个参考图片在一个或多个参考图片列表中被编索引。

根据另一实施例,当前块是双向预测的预测块,其中,所述多个运动矢量是指向第一参考图片块的一个运动矢量和指向第二参考图片块的另一个运动矢量。

根据另一实施例,对当前块进行帧间编码。

根据另一实施例,在AMVP模式中对当前块进行编码。

根据另一实施例,在合并模式中对当前块进行编码。

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

附图说明

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

图2A是描绘五个空间候选的位置的图示示例,图2B是描绘使用AMVP的运动矢量表示的图示示例。

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

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

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

图6在概念上图示了使用L形模板的照明补偿(IC)参数的推导。

图7图示了当前CU的帧间编码的示例性过程700。

图8图示了当前CU的帧间解码的示例性过程800。

图9图示了当前CU的AMVP模式帧间编码的示例性编码过程。

图10图示了当前CU的AMVP模式帧间解码的示例性解码过程。

图11图示了根据本实施例的一方面的当前CU的示例性编码过程。

图12图示了根据本实施例的一方面的当前CU的示例性解码过程。

图13图示了确定CU的编码模式的总体速率失真优化选择的示例性过程。

图14图示了根据本实施例的一方面的示例性速率失真优化过程。

图15图示了搜索AMVP编码模式的示例性过程。

图16图示了根据本实施例的一方面的搜索AMVP编码模式的示例性过程。

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

具体实施方式

图1图示了示例性视频编码器100,诸如高效视频编码(HEVC)编码器。HEVC是由视频编码联合协作组(JCT-VC)开发的压缩标准(例如,参见“ITU-T H.265ITU电信标准化部门(10/2014),H系列:视听和多媒体系统,视听服务的基础设施-运动视频的编码,高效视频编码,ITU-T H.265建议书”)。图1也可以示出其中对HEVC标准进行改进的编码器或采用类似于HEVC的技术的编码器。

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

在HEVC中,为了对具有一个或多个图片的视频序列进行编码,将图片分区为一个或多个条带,其中每个条带可以包括一个或多个条带段。将条带段组织为编码单元、预测单元和变换单元。HEVC规范在“块”和“单元”之间区分,其中“块”针对样本阵列(例如,亮度,Y)中的特定区域,而“单元”包括所有已编码颜色分量(Y、Cb、Cr或单色)的并置块、语法元素和与块相关联的预测数据(例如,运动矢量)。

为了编码,将图片分区为具有可配置尺寸的正方形的编码树块(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或其他视频编码标准中指定的宏块和分区,并且更一般地指代各种尺寸的数据阵列。

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

根据同一条带内的重建的邻近样本来预测帧内模式中的CU。在HEVC中,35个帧内预测模式的集合可用,包括DC、平面和33个角度预测模式。从与当前块相邻的行和列重建帧内预测参考。使用来自先前重建的块的可用样本,参考在水平和垂直方向上延伸超过块尺寸的两倍。当角度预测模式用于帧内预测时,可以沿着由角度预测模式指示的方向复制参考样本。

可以使用两个不同的选项对当前块的适用亮度帧内预测模式进行编码。如果适用模式包含在三个最可能模式(MPM)的构建列表中,则通过MPM列表中的索引来发信号通知该模式。否则,通过模式索引的固定长度二值化来发信号通知该模式。从顶部和左侧邻近块的帧内预测模式中推导三个最可能模式。

对于帧间CU,将对应的编码块进一步分区为一个或多个预测块。在PB级别上执行帧间预测,并且对应的PU包含关于如何执行帧间预测的信息。可以以两种方法、即“合并(merge)模式”和“高级运动矢量预测(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可以直接用作时间候选。否则,将缩放的运动矢量tb/td*mvcol用作时间候选。取决于当前PU所处的位置,通过当前PU的右下或中心处的样本位置来确定并置PU。

在AMVP中,视频编码器或解码器基于从已编码块中确定的运动矢量来组装候选列表。然后,视频编码器发信号通知候选列表中的索引以识别运动矢量预测器(MVP),并发信号通知运动矢量差(MVD)。在解码器侧,运动矢量(MV)被重建为MVP+MVD。适用的参考图片索引也在AMVP的PU语法中显式编码。

图2B图示了使用AMVP的示例性运动矢量表示。对于要编码的当前块240,可以通过运动估计来获得运动矢量(MVcurrent)。使用来自左侧块230的运动矢量(MVleft)和来自上方块220的运动矢量(MVabove),可以从MVleft和MVabove中选择运动矢量预测器,作为MVPcurrent。然后,可以将运动矢量差计算为MVDcurrent=MVcurrent–MVPcurrent

可以使用用于预测的一个或两个参考图片来执行运动补偿预测。在P条带中,仅单个预测参考可以用于帧间预测,使得能够对预测块进行单向预测。在B条带中,两个参考图片列表(即,列表0,列表1)可用,并且可以使用单向预测或双向预测。在双向预测中,使用来自每个参考图片列表的一个参考图片。

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

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

图3图示了示例性视频解码器300的框图,诸如HEVC解码器。在示例性解码器300中,如下所述,由解码器元件对比特流进行解码。视频解码器300通常执行与如图1中描述的编码通路相对的解码通路,该编码通路执行视频解码作为编码视频数据的一部分。图3也可以示出其中对HEVC标准进行改进的解码器或采用类似于HEVC的技术的解码器。

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

联合视频探索组(JVET)在参考软件JEM(联合探索模型)中开发了基于帧速率上转换技术的帧速率上转换(FRUC)模式或推导。在FRUC模式的情况下,在解码器侧推导块的运动信息,而无需MVP信息的显式语法。FRUC过程是完全对称的,即,在编码器和解码器处执行相同的运动推导操作。

在JEM中,QTBT(四叉树加二叉树)结构移除了HEVC中多个分区类型的概念,即,移除了CU、PU和TU概念的分离。编码树单元(CTU)首先由四叉树结构分区。四叉树叶节点进一步由二叉树结构分区。二叉树叶节点被称为编码单元(CU),其用于预测和变换,而无需进一步分区。因此,在新的编码QTBT块结构中,CU、PU和TU具有相同的块尺寸。在JEM中,CU由不同颜色分量的编码块(CB)组成。

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

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

高压缩技术的最新添加内容包括使用基于仿射建模的运动模型。特别地,仿射建模用于视频图片的编码和解码的运动补偿。通常,仿射建模是使用至少两个参数(诸如例如表示图片块的各角处的运动的两个控制点运动矢量(CPMV))的模型,其允许推导图片的整个块的运动场,以模拟例如旋转和相似扩大(homothety)(缩放)。使用仿射标志来发信号通知在编码和解码中使用仿射建模。

视频压缩技术的其他最新添加内容(诸如在联合探索测试模型6的算法描述(JEM6,文档:JVET-F1001-v3)中描述的内容)包括使用照明补偿(IC)参数来补偿正被编码或解码的当前块与至少一个预测块之间的照明(例如,亮度)变化。特别地,如图6中所示,使用L形模板来选择邻近样本,以在帧间编码模式中计算IC参数。通过比较重构的邻近样本(即,当前块603’的L形cur区域602’中的样本)与参考i块(i=0或1)603”的邻近样本(L形ref-i区域602”中的样本)来估计IC参数。注意,为了降低计算复杂度,这里的参考i块可能不完全是预测块,相反,参考i块可以基于运动矢量的整数版本(即,全像素精度),而不使用运动补偿插值滤波器。IC参数使L形cur 602’中的样本与用IC参数调整的L形ref-i 602”中的样本之间的差异最小化。在不失一般性的情况下,参考i块也可以被称为预测块。

也就是说,在帧间预测编码或解码中,当前块603’使用运动信息(例如,运动矢量MVcur和参考图片索引i,该索引i标识例如解码图片缓冲器中的一个参考图片)来构建使用运动补偿(MC)过程的预测块。此外,通过IC参数来调整预测块。假定使用第i个参考图片获得的预测块(ref-i),通过比较L形cur 602’中的重构邻近样本与ref-i块(i=0或1)的L形ref-i 602”中的邻近样本来估计IC参数,如图6中所示。

可以通过使L形cur 602’中的样本与用IC参数调整的L形ref-i 602”样本之间的均方误差/差异(MSE)最小来估计IC参数。通常,IC模型是线性的,例如,

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

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

其中,x是当前图片中L形模板中的重构样本,y是参考图片中L形模板中的样本,其可以通过利用MVcur或修改后的MVcur(例如,较低精度的MVcur)的运动补偿来获得。在等式(2)中,x和y是位于如图6中所示的L形模板内的相同位置的样本(例如,参见x 605’和y 605”的对)。在双向预测的情况下,可以分别独立地从L形ref-0和L形ref-1中推导IC参数(a0,b0)和(a1,b1)。在比特流中,当为当前条带、图片或序列启用IC时,可以为每个块编码指示(诸如例如IC标志),以指示是否为该块启用IC。因此,在现有方法中的双向预测的当前编码块或单元的情况下,将IC应用于当前块或单元的ref-0和ref-1参考样本两者,或者不将IC应用于这两者。

本实施例认识到JEM中当前提出的IC处理中的上述现有方法的某些局限性和缺点。当前提案的这些局限性和缺点包括例如:

-在双向预测的当前块的情况下,当前块中的某些照明变化可能相对于一个参考块存在,而对于另一参考块不存在。如上所述,由于每个整个CU只有一个IC标志,因此无法解决这种情况。

-在与当前块相关联的运动信息接近于与在其解码状态下可用的至少一个邻近块相关联的运动信息的情况下,可以从邻近块推断或空间预测IC标志。在JEM视频编码方案中,当前块的IC参数与邻近块的IC参数之间的这种潜在相关性未被充分利用。

相应地,本实施例针对用于改进与正被编码或解码的块相关联的IC处理的方法和装置。在某些本实施例中,以与如何处理块的其他运动信息(运动矢量,参考图片信息)类似的方式来处理与CU相关联的IC参数。因此,例如,将IC处理集成到正被编码或解码的当前块的运动信息的处理中。也就是说,运动信息可以包括运动矢量、参考图片信息和运动补偿信息。在下文中,将表示运动信息的数据字段表示为“运动场”,其可以与术语“运动信息”互换使用。

在某些本实施例中,针对为CU考虑的每个运动矢量而不是在整个CU级别上,确定和/或发信号通知IC处理。这意味着IC标志可以与CU的每个运动矢量相关联。结果,几个运动矢量并且从而几个IC标志可以与CU相关联。在双向预测的CU的情况下,至少两个运动矢量与CU相关联。如果如在HEVC中那样将CU划分为两个双向预测的预测单元(PU),则一对IC标志与包含在CU中的两个PU中的每个PU相关联。也就是说,分配给每个PU的两个双向预测运动矢量中的每一个有一个IC标志。

根据至少一个实施例的一般方面,将目前所改进的IC处理应用于AMVP模式,其中为CU编码/解码的运动信息包括一个或几个运动场。每个运动场包括诸如例如参考帧索引、运动矢量等的参数。根据某些本实施例,IC标志信息成为给定CU的运动场信息的一部分。

在以下示例中,考虑一个CU对应于一个PU和一个TU的情况。因此,根据至少一个实施例的一般方面,CU的运动场可以包括例如:

-运动矢量,

-参考图片索引,

-IC标志,指示在时间预测期间处理当前运动场时是否使用IC。

注意,通常,几个运动场可以与CU相关联:与所考虑的CU相关联的每个参考图片列表有一个运动场。

所提出的IC标志参数被集成到运动场中的一个优点是灵活性,能够为参考图片列表0和参考图片列表1两者中的每个参考提供IC处理。由于将IC标志上的循环从CU级别移至运动估计过程,因此可以避免某些过程,诸如RDOQ和系数编码估计。因此,与现有编解码器相比,本编解码器设计修改可以导致减少的编码/解码时间,压缩性能几乎没有变化。

图7图示了当前CU的帧间编码的示例性现有过程700。如图7中所示,过程700的输入例如为当前块的编码位置、尺寸和条带类型。在步骤705,编码器检查条带类型是否不是帧内(即,代替为帧间编码的条带)。在步骤710,根据是否使用跳过模式,对跳过模式标志进行编码。在步骤715,如果确定跳过模式标志为真,则在步骤720,对当前CU的跳过模式信息进行编码。另一方面,如果在步骤715确定不使用跳过模式,则在步骤725,对预测模式进行编码。在步骤730和735,如果预测模式为帧内模式,则对CU的帧内编码信息进行编码。在步骤740,如果预测模式不是帧内模式(即,代替为帧间模式),则相应地对合并标志进行编码。在步骤745和755,如果合并模式标志被编码为真,则对当前CU的合并信息进行编码。另一方面,如果合并模式标志被编码为非真,则在步骤750,对当前CU的帧间编码信息(例如,inter_pred_idc,运动矢量差,运动矢量预测器索引)进行编码。如前所述,在当前的JEM IC处理中,为整个CU确定并编码IC标志和对应的IC参数,并且作为图7中所示的步骤750的一部分进行编码。在步骤760,确定并编码当前CU的变换系数。在步骤765,过程700结束。

图8图示了当前CU的帧间解码的示例性现有过程800。解码过程800是图7中所示的示例性编码过程700的对应解码过程。如图8中所示,图8中的过程800的输入例如为当前块的编码位置、尺寸和条带类型。在步骤805,对条带类型进行解码并确定为不是帧内(即,代替为帧间编码的条带)。在步骤810,对跳过模式标志进行解码。在步骤815,如果确定跳过模式标志为真,则在步骤820,对当前CU的跳过模式信息进行解码。另一方面,如果在步骤815确定不使用跳过模式,则在步骤825,对预测模式进行解码。在步骤830和835,如果预测模式为帧内模式,则对当前CU的帧内编码信息进行解码。在步骤840,如果预测模式不是帧内模式(即,代替为帧间模式),则相应地对合并标志进行解码。在步骤845和855,如果合并模式标志为真,则对当前CU的合并信息进行解码。另一方面,如果合并模式标志不为真,则在步骤850,对当前CU的帧间编码信息进行解码。如前所述,在JEM IC处理方法中,仅为每个整个CU解码IC标志和对应的IC参数,并且作为图8中所示的步骤850的一部分进行解码。在步骤860,对当前CU的变换系数进行解码。在步骤865,过程800结束。

图9图示了当前CU的AMVP模式帧间编码的示例性现有编码过程900。如图9中所示,过程900的输入例如为当前块的编码位置、尺寸和条带类型。在步骤905,为当前块确定并编码帧间方向参数,例如HEVC标准中提供的inter_pred_idc参数。帧间方向参数指定列表0、列表1或双向预测(两个列表)是否用于当前CU。在步骤910,检查当前块的尺寸以查看当前块的宽度和高度两者的像素数是否都大于8。如果是,则在步骤915,确定并编码仿射标志。另一方面,如果当前块的宽度和高度之一或两者的像素数不大于8,则在步骤920,将参数refPicList设置为0,对应于参考图片列表0。如果不使用仿射运动预测,则可以跳过步骤910和915。

在步骤925-950,过程900进入每个参考图片列表的迭代循环。在该循环中,在步骤930,确定并编码每个参考图片列表的参考图片索引编号。在步骤935,对运动矢量差(MVD)进行编码。同样,在步骤940,还对运动矢量预测器信息(诸如用于识别运动矢量预测器(MVP)的候选列表中的索引)进行编码。也可以对附加的时间预测参数进行编码。例如,在步骤955,iMv标志指示当前CU的运动矢量是否以比通常的1/4像素精度低的精度级别进行编码。在步骤960,可以对OBMC标志进行编码以指示当前CU的时间预测是否包括重叠块运动补偿(OBMC)处理。在步骤965,确定并编码指示IC是否用于当前CU的IC标志。再次,如前所述,如图9的示例性编码过程900中所示的该现有IC处理仅为整个CU确定并编码IC标志和IC参数一次,即使在AMVP模式中也是如此。方法900在步骤970结束。

图10图示了当前CU的AMVP模式帧间解码的示例性现有解码过程1000。图10中所示的解码过程1000是图9中所示的示例性AMVP编码过程900的对应AMVP解码过程。如图10中所示,图10中的过程1000的输入例如为当前块的编码位置、尺寸和条带类型。在步骤1005,为当前块解码帧间方向参数,例如inter_pred_idc参数。在步骤1010,检查当前块的尺寸以查看当前块的宽度和高度两者的像素数是否都大于8。如果是,则在步骤1015,对仿射标志进行解码。另一方面,如果当前块的宽度和高度之一或两者的像素数不大于8,则在步骤1020,将参数refPicList设置为0,对应于参考图片列表0。

在图10的步骤1025-1050,过程1000进入每个参考图片列表的迭代循环。在该循环中,在步骤1030,对每个参考图片列表的参考图片索引编号进行解码。在步骤1035,为每个参考图片列表解码运动矢量差(MVD)。同样,在步骤1040,还对运动矢量预测器信息(诸如用于识别运动矢量预测器(MVP)的候选列表中的索引)进行解码。也可以对附加的时间预测参数进行解码。例如,在步骤1055,对指示当前CU的运动矢量是否以比通常的1/4像素精度低的精度级别进行编码的iMv标志进行解码。在步骤1060,对指示当前CU的时间预测是否包括OBMC处理的OBMC标志进行解码。在步骤1065,对指示IC是否用于当前CU的IC标志进行解码。再次,如前所述,如图10的示例性解码过程1000中所示的现有IC处理仅为整个CU解码并确定IC标志和IC参数一次,即使在AMVP模式中也是如此。

图11图示了根据至少一个本实施例的一般方面的当前CU的AMVP模式帧间编码的示例性编码过程1100。通过与图9中所示的现有AMVP模式编码过程900相比可以明显看出,图11中的本过程1100与图9中的已知过程900的不同之处在于,现在在由步骤1125至1155组成的迭代循环内为每个参考图片列表确定并编码IC信息(例如,IC标志)。因此,在本实施例中,现在将IC使用信息集成到运动场级别中。因此,对于用于预测当前CU的每个参考图片,编码的运动场可以包括如图11中所示的以下内容:

-参考图片索引,如在步骤1130所示,

-运动矢量差,如在步骤1135所示,

-运动矢量预测器标识符索引,如在步骤1140所示,以及

-指示使用照明补偿的IC标志(以及其他IC参数(在显式编码的情况下)),如在步骤1145所示。

图11中所示的示例性编码过程1100的其他步骤(1170,1160,1165)基本上与前面已经详细描述的图9中的现有编码过程900的对应步骤相同。因此,为了简洁起见,这里将不再描述图11中的编码过程1100中的这些对应步骤。

同样,图12图示了根据至少一个本实施例的一般方面的当前CU的AMVP模式帧间解码的示例性解码过程1200。解码过程1200是图11中所示的示例性AMVP编码过程1100的对应AMVP解码过程。通过与图10中所示的现有AMVP模式编码过程1000相比可以明显看出,图12中的本解码过程1200与图10中的的已知解码处理1000的不同之处在于,现在在由步骤1225至1260组成的迭代循环内为每个参考图片列表解码IC信息(例如,IC标志)。因此,在本实施例中,现在将IC使用信息集成到运动场级别中。因此,对于用于解码当前CU的每个参考图片,解码的运动数据可以包括如图12中所示的以下内容:

-参考图片索引,如在步骤1230所示,

-运动矢量差(MVD),如在步骤1235所示,

-运动矢量预测器(MVP)标识符索引,如在步骤1240所示,以及

-IC标志,其指示对当前CU的每个参考图片列表使用照明补偿,如在步骤1245所示。

图12中所示的本示例性解码过程1200的其他步骤(1265,1270,1275)基本上与前面已经详细描述的图10中的现有解码过程1000的对应步骤相同。因此,为了简洁起见,这里将不再描述图12中的解码过程1200中的这些对应步骤。

在根据本实施例的另一方面中,除了如上所述对IC信息的编码的修改之外,对AMVP模式中的CU的帧间编码的进一步修改可以包括AMVP模式中的速率失真优化。实际上,由于现在为每个帧间CU的每个参考图片候选分配一个IC标志,因此在搜索最佳运动数据期间决定IC标志信息,以预测AMVP模式中的当前CU。

图13示出了示例性现有过程1300,用于确定帧间编码条带中的CU的编码模式的总体速率失真优化选择。如可以在图1300的过程1300中所见,首先在步骤1305-1380评估所有可能的帧间编码模式。此后,如果在速率失真方面在所考虑的CU的编码中不能足够好地执行在步骤1305-1380处最佳找到的帧间编码模式,则在步骤1385和1390评估帧内模式。在步骤1305-1380,所测试的帧间编码模式包括仿射合并模式(步骤1305-1315),合并模式(步骤1320-1335),FRUC合并模式(步骤1340-1355),以及AMVP模式(步骤1365-1380)。在图13的示例性过程1300中,对于FRUC合并模式和AMVP模式,速率失真搜索包括所有编码参数(包括IC标志)上的循环。因此,在现有过程1300中,在FRUC合并模式和帧间编码AMVP模式两者中,从当前CU的速率失真角度评估每个IC标志的可能值。步骤1325中的标注EMT是指增强型多重变换。

图14图示了关于AMVP模式,根据本实施例的示例性方面,可以如何修改现有的速率失真优化处理1300。通过图14的示例性过程1400可以明显看出,从图13中的现有过程1300中移除了每个IC标志值上的整个循环。相反,将针对帧间编码模式的最佳IC配置的迭代搜索移至运动搜索过程,如先前结合图11的示例性过程1100所描述并且稍后将结合图16所示的示例性过程1600进行描述。

图15图示了编码器用来搜索最佳AMVP编码模式的示例性现有过程1500。因此,该过程1500旨在寻找速率失真最优的运动数据以预测所考虑的CU。过程1500由2个阶段组成。图15的步骤1501-1521的第一阶段分别为每个参考图片列表L0和L1确定用于预测当前CU的最佳运动数据。接下来,图15的步骤1523-1547的第二阶段确定先前找到的两个最佳找到的单向预测模式和当前CU的双向时间预测之中的最佳帧间预测模式。基本上,第一阶段涉及每个参考图片列表的每个参考图片索引上的循环。对于每个候选参考图片,搜索最佳运动矢量预测器和相关联的运动矢量差。这意味着最佳运动矢量预测(MVP)的选择,以及基于该所选MVP的运动估计步骤。然后,第二阶段对CU的最佳双向预测执行迭代搜索。为此,每次迭代以使当前CU的双向预测的速率失真成本最小化的方式执行两个参考列表之一的运动估计和补偿步骤。

图16图示了根据本实施例的示例性方面,可以如何修改编码器用来搜索最佳AMVP编码模式的现有过程1500。如可以看出的那样,对于所考虑的参考图片列表,搜索与每个参考图片列表相关联的最佳运动信息现在包括图16的步骤1605-1619处的所有可能的IC标志值上的附加循环。另外,在双向运动搜索过程期间,对参考图片的运动场的细化还包括步骤1639-1657处的IC标志值上的循环,以便在双向预测所考虑的CU时,找到所考虑的列表的最佳IC标志配置。注意,在如图16中所示的所提出的编解码器修改中,运动补偿步骤现在包括分别对L0和L1参考图片列表应用可能的两个不同的IC标志。

另外,根据示例性实施例,可以使用与B条带中的CU的运动场相关联的两个IC标志的CABAC编码来连续地对这两个IC标志进行熵编码。根据另一非限制性实施例,以上两个IC标志的编码包括对第一标志进行编码,然后对指示第二IC标志是否等于第一IC标志的第二标志进行编码。该最后一个实施例的优点是在IC标志信息的熵编码中提高了编码效率。因为两个标志相等的可能性高于这两个标志不同的可能性,所以指示这两个标志是否不同的编码信息比直接编码标志更高效。不同的CABAC上下文可以与不同的标志相关联。

表1示出了第一标志的值,将为第一标志解码的值(与第一标志值相同),第二标志的值,将为第二标志解码的值(指示第一标志和第二标志是否不同,1:相同,0:不同)。

表1

根据另一示例性实施例,当例如使用AMVP从邻近CU推导或预测当前CU的运动矢量时,根据与包含为当前CU选择的MV预测器的CU相关联的IC标志对,对IC标志对进行上下文编码。

在一个示例中,对当前CU的列表N的IC标志是否等于与所选择的运动矢量预测器相关联的邻近CU的列表N的IC标志进行编码或解码。当它们相等时,对二进制数“1”进行编码,否则对“0”进行编码,如表2中所示。

表2

列表N的IC标志 列表N的预测器的IC标志 二进制数
0 0 1
0 1 0
1 0 0
1 1 1

当为CU仅编码一个IC标志时,也可以使用如表2中所示的二值化。在一示例中,如果两个MVP等于0,则将CU级别IC标志预测为0。如果两个MVP中的至少一个等于1,则将CU级别IC标志预测为1。然后,将当前CU的IC标志与预测的IC标志进行比较。如果它们相等,则将二进制数设置为1,否则设置为0。在表3中示出了示例。

表3

根据另一实施例,如果不使用照明补偿,则不对照明补偿标志进行编码或解码。

根据另一实施例,如上所述,两个IC标志分别在L0和L1运动场中与CU相关联。然而,当对IC标志信息进行编码时,仅为AMVP CU发信号通知一个IC标志,这利用了在AMVP模式中,与每个参考图片列表相关联的IC标志是相等的。因此,只需要一个IC标志。根据另一实施例,如果mvd_l1_zero_flag等于1(即,列表1的运动矢量差为0),则将IC标志推断为与包含为当前AMVP CU选择的MV预测器的CU相关联的IC标志,或者将IC标志推断为为参考图片列表0编码的IC标志。

根据本实施例的另一方面,包含在合并候选CU的运动场中的IC标志被传播到在合并模式中预测的当前CU。这意味着合并模式中的CU在其每个运动字段中也被分配一个IC标志。因此,通过来自邻近因果CU的空间传播,一对IC标志与合并CU相关联。因此,这种合并CU的运动补偿的时间预测包括照明变化补偿的应用,与AMVP CU的方式完全相同。因此,本实施例在合并模式中产生的优点包括,即使对于合并CU,也可以对每个参考图片列表应用有区别的照明变化补偿过程(即,照明补偿可以用于一个列表,但不用于另一个列表),与针对AMVP CU的类似。

在另一实施例中,可以根据IC参数来预测IC标志。如果IC参数不改变照明(即,Y=a*X+b,其中a=l且b=0),则IC标志的预测为0。否则,将IC标志预测为1。然后,可以对预测的IC标志和实际选择的IC标志之间的差进行编码。该实施例可以改善压缩性能。

在表4中示出了根据本实施例的一方面的对PU的IC处理的现有提议语法的示例性修改,其中删除线用于删除,下划线用于对现有语法的添加。更改还可以应用于其中CU也是PU的CU。下面描述移除或添加的语法元素的语义。

ic_flag[x0][y0]指定当前预测单元的所有列表的帧间预测是否使用照明补偿。阵列索引x0、y0指定所考虑的预测块的左上亮度样本相对于图片的左上亮度样本的位置(x0,y0)。该语法元素被移除。

ic_l0_flag[x0][y0]指定当前预测单元的列表0的帧间预测是否使用照明补偿。阵列索引x0、y0指定所考虑的预测块的左上亮度样本相对于图片的左上亮度样本的位置(x0,y0)。该语法元素被添加。

ic_l1_flag[x0][y0]具有与ic_l0_flag相同的语义,其中l0和列表0分别替换为l1和列表1。该语法元素被添加。

表4

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

在本申请中使用各种数值,例如,IC参数的数量,或图15的步骤1525中的迭代的数量。应当注意,特定值是出于示例性目的,并且本实施例不限于这些特定值。

如上所述,根据本实施例的改进IC处理的各种方法可以用于修改如图1和图3中所示的JVET或HEVC编码器和解码器的运动估计模块、运动补偿模块以及熵编码和解码模块(145,170,175,330,375)。此外,本实施例不限于JVET或HEVC,并且可以应用于其他标准、建议及其扩展。上述各种实施例可以单独或组合使用。

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

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

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

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

要加载到一个或多个处理器1710上以执行上文描述的各种过程的程序代码可以存储在存储设备1740中,随后加载到存储器1720上以由处理器1710运行。根据示例性实施例,处理器1710、存储器1720、存储设备1740和编码器/解码器模块1730中的一个或多个可以在执行上文讨论的过程期间存储各种项目中的一个或多个,包括但不限于输入视频、解码视频、比特流、等式、公式、矩阵、变量、运算和运算逻辑。

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

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

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

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

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

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

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

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

32页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于在用于视频编码的图片的边界处划分视频块的系统和方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类