帧间预测方法、编码器、解码器以及计算机存储介质

文档序号:1941814 发布日期:2021-12-07 浏览:16次 >En<

阅读说明:本技术 帧间预测方法、编码器、解码器以及计算机存储介质 (Inter-frame prediction method, encoder, decoder, and computer storage medium ) 是由 杨宁 于 2020-06-05 设计创作,主要内容包括:本申请实施例公开了一种帧间预测方法、编码器、解码器以及计算机存储介质,解码器解析码流,获取当前块的预测模式参数;当预测模式参数指示使用预设帧间预测模式确定当前块的帧间预测值时,按照预设查重策略构建当前块的运动信息候选列表;根据当前块对应的运动信息索引值从运动信息候选列表中确定运动信息;根据运动信息,确定当前块的帧间预测值。编码器确定当前块的预测模式参数;当预测模式参数指示使用预设帧间预测模式确定当前块的帧间预测值时,按照预设查重策略构建当前块的运动信息候选列表;从运动信息候选列表中确定当前块的运动信息;根据运动信息,确定当前块的帧间预测值。(The embodiment of the application discloses an inter-frame prediction method, an encoder, a decoder and a computer storage medium, wherein the decoder analyzes a code stream and acquires a prediction mode parameter of a current block; when the prediction mode parameter indicates that the inter prediction value of the current block is determined by using a preset inter prediction mode, constructing a motion information candidate list of the current block according to a preset duplication checking strategy; determining motion information from a motion information candidate list according to a motion information index value corresponding to the current block; and determining the inter prediction value of the current block according to the motion information. The encoder determines a prediction mode parameter of the current block; when the prediction mode parameter indicates that the inter prediction value of the current block is determined by using a preset inter prediction mode, constructing a motion information candidate list of the current block according to a preset duplication checking strategy; determining motion information of the current block from a motion information candidate list; and determining the inter prediction value of the current block according to the motion information.)

帧间预测方法、编码器、解码器以及计算机存储介质

技术领域

本申请涉及视频编解码技术领域,尤其涉及一种帧间预测方法、编码器、解码器以及计算机存储介质。

背景技术

在视频编解码领域,针对当前块进行编解码的过程,除了采用帧内预测方式外,还可以采用帧间预测方式。其中,帧间预测可以包括帧间几何划分预测模式(GeometricPartitioning Mode,GPM)和角度加权预测模式(Angular Weighted Prediction,AWP)等,通过将帧间的当前块划分为两个非矩形的分区(或两个块)分别进行预测后再加权融合,能够得到当前块的预测值。

目前,在使用GPM或AWP进行帧间预测时,并不能够保证运动信息候选列表可以填满,而在利用最后一个有效的运动信息对运动信息候选列表进行复制填满时,需要对运动信息候选列表进行查重检测,然而,现有的查重方法并不严谨,构造出的运动信息候选列表中仍然大概率会出现重复选项,查重检测效果较差,严重影响到运动信息的表达效率,从而降低了编解码效率。

发明内容

本申请提出一种帧间预测方法、编码器、解码器以及计算机存储介质,可以增加运动信息候选列表中运动信息的多样性,从而提升编解码性能。

本申请的技术方案是这样实现的:

第一方面,本申请实施例提供了一种帧间预测方法,应用于解码器,该方法包括:

解析码流,获取当前块的预测模式参数;

当所述预测模式参数指示使用预设帧间预测模式确定所述当前块的帧间预测值时,按照预设查重策略构建所述当前块的运动信息候选列表;其中,所述预设查重策略用于进行去重复处理;

根据所述当前块对应的运动信息索引值从所述运动信息候选列表中确定运动信息;

根据所述运动信息,确定所述当前块的帧间预测值。

第二方面,本申请实施例提供了一种帧间预测方法,应用于编码器,该方法包括:

确定当前块的预测模式参数;

当所述预测模式参数指示使用预设帧间预测模式确定所述当前块的帧间预测值时,按照预设查重策略构建所述当前块的运动信息候选列表;其中,所述预设查重策略用于进行去重复处理;

从所述运动信息候选列表中确定当前块的运动信息;

根据所述运动信息,确定所述当前块的帧间预测值。

第三方面,本申请实施例提供了一种解码器,所述解码器包括解析部分、第一构建部分、第一确定部分;其中,

所述解析部分,配置为解析码流,获取当前块的预测模式参数;

所述第一构建部分,配置为当所述预测模式参数指示使用预设帧间预测模式确定所述当前块的帧间预测值时,按照预设查重策略构建所述当前块的运动信息候选列表;其中,所述预设查重策略用于进行去重复处理;

所述第一确定部分,配置为根据所述当前块对应的运动信息索引值从所述运动信息候选列表中确定运动信息;以及根据所述运动信息,确定所述当前块的帧间预测值。

第四方面,本申请实施例提供了一种解码器,所述解码器包括第一处理器、存储有所述第一处理器可执行指令的第一存储器,当所述指令被执行时,所述第一处理器执行时实现如上所述的帧间预测方法。

第五方面,本申请实施例提供了一种编码器,所述编码器包括第二确定部分、第二构建部分;其中,

所述第二确定部分,配置为确定当前块的预测模式参数;

所述第二构建部分,配置为当所述预测模式参数指示使用预设帧间预测模式确定所述当前块的帧间预测值时,按照预设查重策略构建所述当前块的运动信息候选列表;其中,所述预设查重策略用于进行去重复处理;

所述第二确定部分,还配置为从所述运动信息候选列表中确定当前块的运动信息;根据所述运动信息,确定所述当前块的帧间预测值。

第六方面,本申请实施例提供了一种编码器,所述编码器包括第二处理器、存储有所述第二处理器可执行指令的第二存储器,当所述指令被执行时,所述第二处理器执行时实现如上所述的帧间预测方法。

第七方面,本申请实施例提供了一种计算机存储介质,该计算机存储介质存储有计算机程序,所述计算机程序被第一处理器和第二处理器执行时,实现如上所述的帧间预测方法。

本申请实施例所提供的一种帧间预测方法、编码器、解码器以及计算机存储介质,解码器解析码流,获取当前块的预测模式参数;当预测模式参数指示使用预设帧间预测模式确定当前块的帧间预测值时,按照预设查重策略构建当前块的运动信息候选列表;其中,预设查重策略用于进行去重复处理;根据当前块对应的运动信息索引值从运动信息候选列表中确定运动信息;根据运动信息,确定当前块的帧间预测值。编码器确定当前块的预测模式参数;当预测模式参数指示使用预设帧间预测模式确定当前块的帧间预测值时,按照预设查重策略构建当前块的运动信息候选列表;其中,预设查重策略用于进行去重复处理;从运动信息候选列表中确定当前块的运动信息;根据运动信息,确定当前块的帧间预测值。也就是说,本申请提出的帧间预测方法,在进行运动信息候选列表的构建时,可以按照预设查重策略进行更为严谨的去重复处理,解决了运动信息候选列表中出现重复选项的问题,使得查重效果得到明显的提升,从而提高了编解码效率。

附图说明

图1为图像组结构的示意图;

图2为权重分配示意图一;

图3为权重分配示意图二;

图4为预测块空间位置关系的示意;

图5为本申请实施例提供的一种视频编码系统的组成框图示意图;

图6为本申请实施例提供的一种视频解码系统的组成框图示意图;

图7为帧间预测方法的实现流程示意图一;

图8为帧间预测方法的实现流程示意图二;

图9为单向运动信息的示意图;

图10为双向运动信息的示意图;

图11为帧间预测方法的实现流程示意图三;

图12为帧间预测方法的实现流程示意图四;

图13为帧间预测方法的实现流程示意图五;

图14为帧间预测方法的实现流程示意图六;

图15为解码器的组成结构示意图一;

图16为解码器的组成结构示意图二;

图17为编码器的组成结构示意图一;

图18为编码器的组成结构示意图二。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅仅用于解释相关申请,而非对该申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关申请相关的部分。

在视频图像中,一般采用第一图像分量、第二图像分量和第三图像分量来表征当前块(Coding Block,CB);其中,这三个图像分量分别为一个亮度分量、一个蓝色色度分量和一个红色色度分量,具体地,亮度分量通常使用符号Y表示,蓝色色度分量通常使用符号Cb或者U表示,红色色度分量通常使用符号Cr或者V表示;这样,视频图像可以用YCbCr格式表示,也可以用YUV格式表示。

目前,通用的视频编解码标准基于都采用基于块的混合编码框架。视频图像中的每一帧被分割成相同大小(比如128×128,64×64等)的正方形的最大编码单元(LargestCoding Unit,LCU),每个最大编码单元还可以根据规则划分成矩形的编码单元(CodingUnit,CU);而且编码单元可能还会划分成更小的预测单元(Prediction Unit,PU)。具体地,混合编码框架可以包括有预测、变换(Transform)、量化(Quantization)、熵编码(EntropyCoding)、环路滤波(In Loop Filter)等模块;其中,预测模块可以包括帧内预测(intraprediction)和帧间预测(inter prediction),帧间预测可以包括运动估计(motionestimation)和运动补偿(motion compensation)。由于视频图像的一个帧内相邻像素之间存在很强的相关性,在视频编解码技术中使用帧内预测方式能够消除相邻像素之间的空间冗余;但是由于视频图像中的相邻帧之间也存在着很强的相似性,在视频编解码技术中使用帧间预测方式消除相邻帧之间的时间冗余,从而能够提高编码效率。下述本申请将以帧间预测进行详细描述。

运动信息可以包括运动矢量(Motion Vector,MV)信息和参考帧信息。具体地,对于使用帧间预测的当前块而言,该当前块所在的当前帧具有一个或多个参考帧,而当前块可以是编码单元或预测单元,可以使用一个包含一组运动矢量和参考帧信息的运动信息指示到某一参考帧内一个与当前块大小相同的像素区域,这里称之为参考块,也可以使用一个包含两组运动矢量和参考帧信息的运动信息指示到某两个可以相同也可以不同的参考帧内的两个参考块;然后运动补偿可以根据运动信息所指示的参考块得到当前块的帧间预测值。

一个可以使用帧间预测编码的当前帧有一个或多个参考帧,其中,对可以使用帧间预测编码的当前帧的当前块,当前块可以是编码单元或预测单元,可以使用一个包含一组运动矢量MV和参考帧信息的运动信息指示到某一个参考帧的一个与当前块大小相同的像素区域,这里称作参考块,也可以使用一个包含两组运动矢量和参考帧信息的运动信息指示到某两个可以相同也可以不同的参考帧的两个参考块。运动补偿(MotionCompensation,MC)根据运动信息所指示的参考块得出当前编码单元的预测值。

应理解,P帧(Predictive Frame)是只能使用图像播放顺序(Picture OrderCount,POC)在当前帧之前的参考帧进行预测的帧。当前参考帧只有一个参考帧列表,记为RefPicL0(也可以记为RefPicList0,或List0,或L0)。参考帧列表RefPicL0中都是POC在当前帧之前的参考帧。B帧(Bi-directional interpolated prediction Frame)早期是可以使用POC在当前帧之前的参考帧及POC在当前帧之后的参考帧进行预测的帧。B帧有两个参考帧列表,分别用RefPicL0和RefPicL1表示(RefPicL1也可以记为RefPicList1,或List1,或L1)。其中RefPicL0中都是POC在当前帧之前的参考帧,RefPicL1中都是POC在当前帧之后的参考帧。对于当前块而言,可以只参考RefPicL0中的某一帧的参考块,这种情况可称为前向预测;或者也可以只参考RefPicL1中某一帧的参考块,这种情况可称为后向预测;或者还可以同时参考RefPicL0中某一帧的参考块和RefPicL1中某一帧的参考块,这种情况可称为双向预测。同时参考两个参考块的一种简单方式是将两个参考块内每一个对应位置的像素进行平均以得到当前块内每一像素的帧间预测值(或者可以称为预测块)。后期B帧不再限制RefPicL0中都是POC在当前帧之前的参考帧,RefPicL1中都是POC在当前帧之后的参考帧。换句话说,RefPicL0中也可以有POC在当前帧之后的参考帧,RefPicL1中也可以有POC在当前帧之前的参考帧,也即是指当前块可以同时参考POC在当前帧之前的参考帧或者同时参考POC在当前帧之后的参考帧。但是当前块为双向预测时所使用的参考帧必须一个来自于RefPicL0,一个来自于RefPicL1;这种B帧也称为广义B帧。

由于随机访问(Random Access,RA)配置的编解码顺序与POC顺序不同,这样B帧可以同时参考当前帧之前的信息和当前帧之后的信息,能够明显提高编码性能。示例性地,图1为图像组结构的示意图,如图1所示,在RA的一种经典的图像组(Group Of Pictures,GOP)结构中,箭头表示参考关系,由于I帧不需要参考帧,那么在POC为0的I帧解码后,将会解码POC为4的P帧,而在解码POC为4的P帧时可以参考POC为0的I帧。在POC为4的P帧解码后,然后再解码POC为2的B帧,而在解码POC为2的B帧时可以参考POC为0的I帧和POC为4的P帧,等等。这样,根据图4可以得到,POC顺序为{0 1 2 3 4 5 6 7 8}的情况下,其对应的解码顺序为{0 3 2 4 1 7 6 8 5}。

另外,低延迟(Low Delay,LD)配置的编解码顺序与POC顺序是相同的,这时候当前帧只能参考当前帧之前的信息。其中,Low Delay配置又分Low Delay P和Low Delay B。LowDelay P即传统的Low Delay配置。其典型的结构是IPPP……,即先编解码一个I帧,之后解码的帧都是P帧。Low Delay B的典型结构是IBBB……,与Low Delay P的区别在于每个帧间帧都是B帧,即使用两个参考帧列表,当前块可以同时参考RefPicL0中的某一帧的参考块和RefPicL1中的某一帧的参考块。这里,当前帧的一个参考帧列表最多可以有几个参考帧,如2个、3个或4个等。当编码或解码某一个当前帧时,RefPicL0和RefPicL1内各有哪几个参考帧是由预设配置或算法决定的,但是同一个参考帧可以同时出现在RefPicL0和RefPicL1中,即编码器或解码器允许当前块同时参考同一个参考帧中的两个参考块。

在本申请实施例中,编码器或解码器通常可以使用参考帧列表里的索引值(用index表示)来对应参考帧。如果一个参考帧列表长度为4,那么index有0、1、2、3等四个值。例如,如果当前帧的RefPicL0有POC为5,4,3,0的4个参考帧,那么RefPicL0的index 0为POC5的参考帧,RefPicL0的index 1为POC 4的参考帧,RefPicL0的index 2为POC 3的参考帧,RefPicL0的index 3为POC 0的参考帧。

目前的多功能视频编码(Versatile Video Coding,VVC)标准中,帧间预测模式可以为GPM模式。目前的AVS3视频编解码标准中,帧间预测模式可以为AWP模式。这两种预测模式虽然名称不同、具体的实现形式不同、但原理上是共通的,即这两种预测模式都可以适用本申请中的帧间预测方法。

需要说明的是,传统的单向预测只是查找一个与当前块大小相同的参考块,而传统的双向预测使用两个与当前块大小相同的参考块,且预测块内每个点的像素值为两个参考块对应位置的平均值,即每一个参考块的所有点都占50%的比例。双向加权预测使得两个参考块的比例可以不同,如第一个参考块中所有点都占75%的比例,第二个参考块中所有点都占25%的比例。但同一个参考块中的所有点的比例都相同。其他一些优化方式比如采用解码端运动矢量修正(Decoder side Motion Vector Refinement,DMVR)技术、双向光流(Bi-directional Optical Flow,BIO)等会使参考像素或预测像素产生一些变化,而且GPM或AWP也使用两个与当前块大小相同的参考块,但某些像素位置100%使用第一个参考块对应位置的像素值,某些像素位置100%使用第二个参考块对应位置的像素值,而在交界区域,按一定比例使用这两个参考块对应位置的像素值。具体这些权重如何分配,由GPM或AWP的预测模式决定,或者也可以认为GPM或AWP使用两个与当前块大小不相同的参考块,即各取所需的一部分作为参考块。

示例性地,图2为权重分配示意图一,如图2所示,其示出了本申请实施例提供的一种GPM在64×64的当前块上的多种划分模式的权重分配示意图,其中,GPM存在有64种划分模式。图3为权重分配示意图二,如图3所示,其示出了本申请实施例提供的一种AWP在64×64的当前块上的多种划分模式的权重分配示意图,其中,AWP存在有56种划分模式。无论是图2还是图3,每一种划分模式下,黑色区域表示第一个参考块对应位置的权重值为0%,白色区域表示第一个参考块对应位置的权重值为100%,灰色区域则按颜色深浅的不同表示第一个参考块对应位置的权重值为大于0%且小于100%的某一个权重值,第二个参考块对应位置的权重值则为100%减去第一个参考块对应位置的权重值。

应理解,早期的编解码技术中只存在矩形的划分方式,无论是CU、PU还是变换单元(Transform Unit,TU)的划分。而GPM或AWP均实现了非矩形的划分,即用一条直线可以将一个矩形块分成两个分区,根据直线的位置和角度的不同,划分的两个分区可能是三角形或梯形或矩形等,从而能使得划分更贴近物体的边缘或者两个运动不同区域的边缘。需要注意的是,这里所说的划分并不是真正意义上的划分,而更像是一种预测效果上的划分。因为这个划分只是划分了两个参考块在产生预测块时的权重,或者可以简单地理解为预测块的一部分位置来自于第一个参考块,而另一部分位置来自于第二个参考块,并没有真正按划分线把当前块划分成两个CU或PU或TU。这样,在预测之后残差的变换、量化、反变换、反量化等也都是将当前块作为一个整体进行处理。

需要说明的是,在本申请的实施例中,GPM或AWP属于一种帧间预测技术,GPM或AWP需要在码流中传输一个GPM或AWP是否使用的标志(flag),该flag可以指示当前块是否使用GPM或AWP。如果使用GPM或AWP,编码器在码流中需要传输具体使用的模式,即GPM的64种划分模式之一,或AWP的56种划分模式之一;以及两个单向运动信息的索引值。也就是说,对于当前块而言,解码器通过解析码流可以得到GPM或AWP是否使用的信息,如果确定使用GPM或AWP,解码器可以解析出GPM或AWP的预测模式参数以及两个运动信息索引值,比如当前块可以划分为两个分区,那么可以解析出第一分区对应的第一索引值和第二分区对应的第二索引值。

具体来讲,对于GPM模式来说,如果使用GPM,那么码流中将会传输GPM下的预测模式参数,比如GPM具体的划分模式;通常情况下,GPM包括有64种划分模式。对于AWP模式来说,如果使用AWP,那么码流中将会传输AWP下的预测模式参数,比如AWP具体的划分模式;通常情况下,AWP包括有56种划分模式。

在帧间预测模式下,比如GPM和AWP均需要使用两个单向运动信息查找两个参考块。目前的实现方式是在编码器侧利用当前块之前已编码/已解码部分的相关信息构建一个单向运动信息候选列表,从单向运动信息候选列表中选择单向运动信息,将这两个单向运动信息在单向运动信息候选列表中的索引值(index)写入码流。在解码器侧采用同样的方式,即利用当前块之前已解码部分的相关信息构建一个单向运动信息候选列表,这个单向运动信息候选列表与编码器侧构建的候选列表一定是相同的。如此,从码流中解析出两个单向运动信息的索引值,然后从单向运动信息候选列表中查找出这两个单向运动信息即为当前块需要使用的两个单向运动信息。

也就是说,本申请所描述的单向运动信息可以包括:运动矢量信息,即(x,y)的值,以及对应的参考帧信息,即参考帧列表及在参考帧列表中的参考帧索引值。一种表示方式是记录两个参考帧列表的参考帧索引值,其中一个参考帧列表对应的参考帧索引值有效,如0,1,2等;另一个参考帧列表对应的参考帧索引值为无效,即-1。参考帧索引值有效的参考帧列表即为当前块的运动信息所使用的参考帧列表,根据参考帧索引值可以从该参考帧列表中查找到对应的参考帧。每个参考帧列表都有一个对应的运动矢量,有效的参考帧列表对应的运动矢量是有效的,无效的参考帧列表对应的运动矢量是无效的。解码器可以通过单向运动信息中的参考帧信息找到所需的参考帧,根据当前块的位置以及运动矢量即(x,y)的值可以在参考帧中找到参考块,进而确定出当前块的帧间预测值。

示例性的,以AVS中的AWP为例介绍单向运动信息候选列表的构建方法。其中,图4为预测块空间位置关系的示意图,如图4所示,块E为当前块,而块A、块B、块C、块D、块F、块G均为块E的相邻块。其中,块E的相邻块A是样本(x0-1,y0)所在的块,块E的相邻块B是样本(x0,y0-1)所在的块,块E的相邻块C是样本(x0+1,y0-1)所在的块,块E的相邻块D是样本(x0-1,y0-1)所在的块,块E的相邻块F是样本(x0-1,y1)所在的块,块E的相邻块G是样本(x1,y0-1)所在的块。其中(x0,y0)是块E左上角样本在图像中的坐标,(x1,y0)是块E右上角样本在图像中的坐标,(x0,y1)是块E左下角样本在图像中的坐标。

基于上述图4,相邻块X(X表示为A、B、C、D、F或G)“存在”是指该块应在待解码图像内并且该块应与块E属于同一空间区域;否则相邻块“不存在”。可以得到,如果块“不存在”或者尚未解码,那么此块“不可用”;否则此块“可用”。或者,如果待解码图像样本所在的块“不存在”或者此样本尚未解码,那么此样本“不可用”;否则此样本“可用”。

假定AWP的第一个单向运动信息表示为mvAwp0L0、mvAwp0L1、RefIdxAwp0L0以及RefIdxAwp0L1。其中,mvAwp0L0表示在第一个参考帧列表RefPicL0中对应的运动矢量,RefIdxAwp0L0表示在第一个参考帧列表RefPicL0中对应的参考帧的参考帧索引值;mvAwp0L1表示在第二个参考帧列表RefPicL1中对应运动矢量,RefIdxAwp0L1表示在第二个参考帧列表RefPicL1中对应的参考帧的参考帧索引值。第二个单向运动信息以此类推。

由于这里的运动信息都是单向的,所以RefIdxAwp0L0以及RefIdxAwp0L1必有一个为有效值,比如0,1,2等;另一个为无效值,比如-1。如果RefIdxAwp0L0为有效值,那么RefIdxAwp0L1为-1;这时候对应的mvAwp0L0即为所需要的运动矢量,即(x,y),mvAwp0L1不需要考虑。反之亦然。

具体来讲,推导mvAwp0L0、mvAwp0L1、RefIdxAwp0L0、RefIdxAwp0L1、mvAwp1L0、mvAwp1L1、RefIdxAwp1L0以及RefIdxAwp1L1的步骤如下:

第一步,如图4所示,F、G、C、A、B和D是当前块E的相邻块,确定F、G、C、A、B和D的“可用”性:

(a)如果F存在且采用帧间预测模式,那么F“可用”;否则F“不可用”。

(b)如果G存在且采用帧间预测模式,则G“可用”;否则G“不可用”。

(c)如果C存在且采用帧间预测模式,则C“可用”;否则C“不可用”。

(d)如果A存在且采用帧间预测模式,则A“可用”;否则A“不可用”。

(e)如果B存在且采用帧间预测模式,则B“可用”;否则B“不可用”。

(f)如果D存在且采用帧间预测模式,则D“可用”;否则D“不可用”。

第二步,按F、G、C、A、B和D的顺序将单向可用的运动信息放入单向运动信息候选列表(用AwpUniArray表示),直至AwpUniArray长度为3或者遍历结束。

第三步,如果AwpUniArray的长度小于3,按F、G、C、A、B和D的顺序将双向可用的运动信息拆分为指向参考帧列表RefPicL0的单向运动信息以及指向参考帧列表List1的单向运动信息,先进行单向运动信息查重操作,若不重复则放入AwpUniArray,直至长度为3或遍历结束。

第四步,将时域双向的运动信息拆分为指向参考帧列表RefPicL0的单向运动信息以及指向参考帧列表List1的单向运动信息,先进行单向运动信息查重操作,若不重复则放入AwpUniArray,直至长度为4或遍历结束。

第五步,如果AwpUniArray的长度小于4,将AwpUniArray中最后一个单向运动信息进行重复填充操作,直至AwpUniArray长度为4。

第六步,将AwpUniArray中第AwpCandIdx0+1个运动信息赋值给mvAwp0L0,mvAwp0L1,RefIdxAwp0L0,RefIdxAwp0L1;将AwpUniArray中第AwpCandIdx1+1个运动信息赋值给mvAwp1L0,mvAwp1L1,RefIdxAwp1L0以及RefIdxAwp1L1。

可见,可以利用上述方法确定的两个单向运动信息找到两个参考块,根据GPM或AWP使用的具体预测模式能够确定出两个参考块在每一个像素位置的权值,最后将两个参考块加权计算以得到当前块的预测块。

进一步地,在编码端,如果当前模式是跳过模式,那么预测块既是编码块,意味着当前块的编码结束。如果当前模式不是跳过模式,还需要在码流中写入量化系数;其中,量化系数由当前块的实际值减去帧间预测值所得到的残差而组成的残差块,并对残差块进行变换与量化得到,这时候当前块的编码结束。

进一步地,在解码端,如果当前模式是跳过模式,则预测块就是解码块,意味着当前块的解码结束。如果当前模式不是跳过模式,熵解码解析量化系数,接着反量化,反变换得到残差块,将残差块与预测块相加得到解码块,这时候当前块的解码结束。

需要说明的是,在推导mvAwp0L0、mvAwp0L1、RefIdxAwp0L0、RefIdxAwp0L1、mvAwp1L0、mvAwp1L1、RefIdxAwp1L0以及RefIdxAwp1L1时,需要使用查重操作,即检查两个单向运动信息是否相同。由于两个相同的参考块无论权值如何分都可以认为是一个参考块,对AWP来说没有意义,因此,AWP需要使用两个单向运动信息来找到两块不同的参考块。

示例性的,AVS3文本中对运动信息查重的描述主要为:如果两个运动信息满足下面一个或多个条件,则两个运动信息不同;否则两个运动信息相同:

1、InterPredRefMode不同;

2、InterPredRefMode均为0,RefPicL0运动矢量不相等或RefPicL0参考帧索引不相等;

3、InterPredRefMode均为1,RefPicL1运动矢量不相等或RefPicL1参考帧索引不相等;

4、InterPredRefMode均为2,RefPicL0运动矢量、RefPicL1运动矢量、RefPicL0参考帧索引或RefPicL1参考帧索引中有任意一个不相等。

其中,InterPredRefMode为0表示前向预测,即参考帧列表为RefPicL0,InterPredRefMode为1表示后向预测,即参考帧列表为RefPicL1,InterPredRefMode为2表示双向预测,即参考帧列表为RefPicL0和RefPicL1。

目前,在进行查重操作时,当两个单向运动信息对应的有效的参考帧列表、参考帧索引以及MV都相同,才可以认为这两个单向运动信息是相同的单向运动信息。

然而,标准中允许同一个参考帧,即同一个POC(或解码顺序索引(Decoding orderindex,DOI)等唯一性标识)的参考帧,出现在两个参考帧列表里,且同一个参考帧列表中不能有重复的参考帧,即不能有同一个POC(或DOI等唯一性标识)的参考帧,也就是说,如果两个单向运动信息的参考帧列表相同但参考帧索引不同,那它们对应的参考帧肯定不同,但是两个参考帧列表里可以分别有同一个参考帧,它们在各自列表中的索引可能相同,也可能不同,所以,即使有效的参考帧列表和参考帧索引不同,它们指向的参考帧也可能是同一个参考帧。

由此可见,现有的查重方法并不严谨,在需要单向运动信息查重或判断运动信息是否相同的场景中,查重效果较差,进而在接下来的单向运动信息候选列表的构建时,重复的单向运动信息占用了过多的位置,使得靠后的不同单向运动信息由于列表已满而被放弃,还会导致其他单向运动信息在列表中的索引值增大,需要更多的比特位数进行编码处理,从而降低了编码效率。

也就是说,目前在使用GPM或AWP进行帧间预测时,并不能够保证运动信息候选列表可以填满,而在利用最后一个有效的运动信息对运动信息候选列表进行复制填满时,需要对运动信息候选列表进行查重检测,然而,现有的查重方法并不严谨,构造出的运动信息候选列表中仍然大概率会出现重复选项,查重检测效果较差,严重影响到运动信息的表达效率,从而降低了编解码效率。

为了解决现有技术中存在的缺陷,在本申请的实施例中,在进行运动信息候选列表的构建时,可以按照预设查重策略进行更为严谨的去重复处理,解决了运动信息候选列表中出现重复选项的问题,使得查重效果得到明显的提升,从而提高了编解码效率。

具体地,在构建运动信息候选列表时,按照预设查重策略进行对运动信息进行查重检测,使用更严谨的查重标准,从而够在复杂度增加不明显的情况下查重效果提升明显。在存在参考帧列表、参考帧索引不同但参考帧相同的情况下,可以将新的定义下重复的运动信息排除,使得运动信息候选列表中不同的运动信息增多,有效运动信息的索引提前,从而提升编解码性能。

应理解,本申请实施例提供一种视频编码系统,图5为本申请实施例提供的一种视频编码系统的组成框图示意图,如图5所示,该视频编码系统11可以包括:变换单元111、量化单元112、模式选择和编码控制逻辑单元113、帧内预测单元114、帧间预测单元115(包括:运动补偿和运动估计)、反量化单元116、反变换单元117、环路滤波单元118、编码单元119和解码图像缓存单元110;针对输入的原始视频信号,通过编码树块(Coding Tree Unit,CTU)的划分可以得到一个视频重建块,通过模式选择和编码控制逻辑单元113确定编码模式,然后,对经过帧内或帧间预测后得到的残差像素信息,通过变换单元111、量化单元112对该视频重建块进行变换,包括将残差信息从像素域变换到变换域,并对所得的变换系数进行量化,用以进一步减少比特率;帧内预测单元114用于对该视频重建块进行帧内预测;其中,帧内预测单元114用于确定该视频重建块的最优帧内预测模式(即目标预测模式);帧间预测单元115用于执行所接收的视频重建块相对于一或多个参考帧中的一或多个块的帧间预测编码,以提供时间预测信息;其中吗,运动估计为产生运动向量的过程,运动向量可以估计该视频重建块的运动,然后,运动补偿基于由运动估计所确定的运动向量执行运动补偿;在确定帧间预测模式之后,帧间预测单元115还用于将所选择的帧间预测数据提供到编码单元119,而且,将所计算确定的运动向量数据也发送到编码单元119;此外,反量化单元116和反变换单元117用于该视频重建块的重构建,在像素域中重构建残差块,该重构建残差块通过环路滤波单元118去除方块效应伪影,然后,将该重构残差块添加到解码图像缓存单元110的帧中的一个预测性块,用以产生经重构建的视频重建块;编码单元119是用于编码各种编码参数及量化后的变换系数。而解码图像缓存单元110用于存放重构建的视频重建块,用于预测参考。随着视频图像编码的进行,会不断生成新的重构建的视频重建块,这些重构建的视频重建块都会被存放在解码图像缓存单元110中。

本申请实施例还提供一种视频解码系统,图6为本申请实施例提供的一种视频解码系统的组成框图示意图,如图6所示,该视频解码系统12可以包括:解码单元121、反变换单元127,与反量化单元122、帧内预测单元123、运动补偿单元124、环路滤波单元125和解码图像缓存单元126单元;输入的视频信号经过视频编码系统11进行编码处理之后,输出该视频信号的码流;该码流输入视频解码系统12中,首先经过解码单元121,用于得到解码后的变换系数;针对该变换系数通过反变换单元127与反量化单元122进行处理,以便在像素域中产生残差块;帧内预测单元123可用于基于所确定的帧内预测方向和来自当前帧或图片的先前经解码块的数据而产生当前视频解码块的预测数据;运动补偿单元124是通过剖析运动向量和其他关联语法元素来确定用于视频解码块的预测信息,并使用该预测信息以产生正被解码的视频解码块的预测性块;通过对来自反变换单元127与反量化单元122的残差块与由帧内预测单元123或运动补偿单元124产生的对应预测性块进行求和,而形成解码的视频块;该解码的视频信号通过环路滤波单元125以便去除方块效应伪影,可以改善视频质量;然后将经解码的视频块存储于解码图像缓存单元126中,解码图像缓存单元126存储用于后续帧内预测或运动补偿的参考图像,同时也用于视频信号的输出,得到所恢复的原始视频信号。

本申请实施例提供的一种帧间预测方法主要作用于视频编码系统11的帧间预测单元215和视频解码系统12的帧间预测单元,即运动补偿单元124;也就是说,如果在视频编码系统11能够通过本申请实施例提供的帧间预测方法得到一个较好的预测效果,那么,对应地,在视频解码系统12,也能够改善视频解码恢复质量。

基于此,下面结合附图和实施例对本申请的技术方案进一步详细阐述。在进行详细阐述之前,需要说明的是,说明书通篇中提到的“第一”、“第二”、“第三”等,仅仅是为了区分不同的特征,不具有限定优先级、先后顺序、大小关系等功能。

本申请实施例提供一种帧间预测方法,该方法应用于视频解码设备,即解码器。该方法所实现的功能可以通过解码器中的第一处理器调用计算机程序来实现,当然计算机程序可以保存在第一存储器中,可见,该解码器至少包括第一处理器和第一存储器。

进一步地,在本申请的实施例中,图7为帧间预测方法的实现流程示意图一,如图7所示,解码器进行帧间预测的方法可以包括以下步骤:

步骤101、解析码流,获取当前块的预测模式参数。

在本申请的实施例中,解码器可以先解析二进制码流,从而获得当前块的预测模式参数。其中,预测模式参数可以用于对当前块所使用的预测模式进行确定。

需要说明的是,待解码图像可以划分为多个图像块,而当前待解码的图像块可以称为当前块(可以用CU表示),与当前块相邻的图像块可以称为相邻块;即在待解码图像中,当前块与相邻块之间具有相邻关系。这里,每个当前块可以包括第一图像分量、第二图像分量和第三图像分量,也即当前块表示待解码图像中当前待进行第一图像分量、第二图像分量或者第三图像分量预测的图像块。

其中,假定当前块进行第一图像分量预测,而且第一图像分量为亮度分量,即待预测图像分量为亮度分量,那么当前块也可以称为亮度块;或者,假定当前块进行第二图像分量预测,而且第二图像分量为色度分量,即待预测图像分量为色度分量,那么当前块也可以称为色度块。

进一步地,在本申请的实施例中,预测模式参数不仅可以指示当前块采用的预测模式,还可以指示与该预测模式相关的参数。

可以理解的是,在本申请的实施例中,预测模式可以包括有帧间预测模式、传统帧内预测模式以及非传统帧内预测模式等,其中,帧间预测模式可以包括普通帧间预测模式、GPM模式以及AWP模式等。

也就是说,在编码侧,编码器可以选取最优的预测模式对当前块进行预编码,在这过程中就可以确定出当前块的预测模式,然后确定用于指示预测模式的预测模式参数,从而将相应的预测模式参数写入码流,由编码器传输到解码器。

相应地,在解码器侧,解码器通过解析码流便可以直接获取到当前块的预测模式参数,并根据解析获得的预测模式参数确定当前块所使用的预测模式,以及该预测模式对应的相关参数。

进一步地,在本申请的实施例中,解码器在解析获得预测模式参数之后,可以基于预测模式参数确定当前块是否使用预设帧间预测模式。其中,预设帧间预测模式可以包括至少一种帧间预测模式,例如,预设帧间预测模式可以为GPM模式、AWP模式或者其他普通帧间预测模式。

步骤102、当预测模式参数指示使用预设帧间预测模式确定当前块的帧间预测值时,按照预设查重策略构建当前块的运动信息候选列表;其中,预设查重策略用于进行去重复处理。

在本申请的实施例中,解码器在解析获得预测模式参数之后,如果解析获得的预测模式参数指示当前块使用预设帧间预测模式确定当前块的帧间预测值,那么解码器便可以按照预设查重策略对当前块的运动信息候选列表进行构建。

需要说明的是,在本申请的实施例中,预设查重策略用于在构建运动信息候选列表的过程中进行去重复处理。具体地,去重复处理即为剪枝(pruning),也就是在构建运动信息候选列表的过程中将相同的运动信息进行剔除。

可以理解的是,在本申请的实施例中,在解码器解析码流获取到预测模式参数指示使用预设帧间预测模式确定当前块的帧间预测值的情况下,就可以采用本申请实施例所提供的帧间预测方法。

示例性的,在本申请的实施例中,预设帧间预测模式可以为GPM模式、AWP模式或者其他普通帧间预测模式。

进一步地,在本申请的实施例中,对预设查重策略可以包括多种不同的查重检测的方式,具体地,可以先对预设查重策略进行定义。

示例性的,在本申请中,可以将预设查重策略区分为第一级策略、第二级策略以及第三级策略。以下以单向运动信息为例,分别对预设查重策略进行说明。

第一级策略:严格的查重应该是指两个单向运动信息找到的两个参考块不完全相同,即两个参考块对应位置的像素值不都相同。这是由于如果两个单向运动信息找到的两个参考块完全相同,那么使用单向运动信息的帧间预测,如AWP,就没有意义了,所以严格地来讲,如果两个单向运动信息找到的两个参考块完全相同,即使这两个单向运动信息看起来不一样,例如,两个单向运动信息的MV不一样,即(x,y)的值不一样,或者两个单向运动信息的参考帧不一样,或者两个单向运动信息对应的参考帧列表不一样,或者两个单向运动信息在参考帧列表中的参考帧索引不一样,只要两个单向运动信息找到的两个参考块完全相同,就可以认为这两个单向运动信息是重复的,将以上预设查重策略确定为第一级策略。

第二级策略:放宽一点,可以认为两个单向运动信息只有在指向同一个参考块(同一个位置)的时候才重复,反之,如果两个单向运动信息指向不同位置的参考块,则可以认为两个单向运动信息不重复。其中,两个单向运动信息指向不同位置的参考块等价于两个单向运动信息的参考帧或MV的值不完全相同。也就是说,如果两个单向运动信息的MV相同但参考帧不同,那么两个单向运动信息找到的参考块不在同一个参考帧上,位置不相同;如果两个单向运动信息参考帧相同但MV不同,那么两个单向运动信息找到的参考块位置也不同,将以上预设查重策略确定为第二级策略。

第三级策略:目前编解码标准的常用做法是使用两个参考帧列表来管理参考帧,用参考帧索引从列表中找到对应的参考帧。这种参考帧管理方法就衍生出了更宽松的查重标准。可以认为只有两个单向运动信息对应的有效的参考帧列表、参考帧索引以及MV都相同,才认为这两个单向运动信息是重复的单向运动信息,将以上预设查重策略确定为第三级策略。

然而,标准中允许同一个参考帧,即同一个POC(或DOI等唯一性标识)的参考帧,出现在两个参考帧列表里,且同一个参考帧列表中不能存在重复的参考帧,即不存在同一个POC(或DOI等唯一性标识)的参考帧,因此,如果两个单向运动信息的参考帧列表相同但参考帧索引不同,那它们对应的参考帧肯定不同;但是两个参考帧列表里可以分别有同一个参考帧,它们在各自列表中的索引可能相同,也可能不,进而会造成即使两个单向运动信息的有效的参考帧列表和参考帧索引不同,它们指向的参考帧可能是同一个参考帧的情况,

目前普遍使用的查重方法就是上述预设查重策略中的第三级策略,而且,其他一些技术中也使用了第三级策略进行查重检测,如超运动矢量表达式(ultra motion vectorexpression,UMVE)、基于历史的运动矢量预测(history-based motion vectorprediction,HMVP))。这里还要说明一点,AWP使用的全是单向运动信息,UMVE和HMVP用到的可能是单向运动信息也可能是双向运动信息。单向运动信息可以认为一个参考帧列表对应的参考帧索引有效,另一个参考帧列表对应的参考帧索引无效。而双向运动信息是两个参考帧列表对应的参考帧索引都有效。它们认为两个参考帧列表对应的参考帧索引都相同,如果某一个参考帧列表对应的参考帧索引有效,它们对应的x,y都相同,这样两个双向运动信息才算重复。

需要说明的是,VVC中同样使用的是上述预设查重策略中的第三级策略。

可以理解的是,在本申请的实施例中,对单向运动信息进行查重检测的预设查重策略或判断单向运动信息是否相同的定义可以扩展到双向运动信息。具体地,第一级策略的查重检测可以分为2个子等级,即1.1级和1.2级。其中,对于1.1级,如果两个运动信息找到的参考块根据其后续所需要的算法做出的预测块相同,就认为它们是相同的运动信息,即两个运动信息重复;对于1.2级,如果两个运动信息找到两个参考块的集合(一个运动信息最多可以找到两个参考块,如果找到了两个参考块,这两个参考块作为一个参考块的集合,如果找到了一个参考块,这一个参考块作为一个参考块的集合)相同,就认为它们是相同的运动信息,即两个运动信息重复。按照第二级策略进行查重检测时,如果两个运动信息指向的两个参考块位置的集合(一个运动信息最多可以确定两个参考块的位置,如果有两个参考块的位置,这两个参考块的位置作为一个参考块的位置的集合,如果有一个参考块的位置,这一个参考块的位置作为一个参考块的位置的集合)相同,就认为它们是相同的运动信息,即两个运动信息重复。第三级策略的查重比较宽泛,查重检测的效果相对于第一级策略和第二级策略比较差,对于单向运动信息这种差距更加明显。

应用第三级策略查重的运动信息列表的构建方法出现第一级策略和第二级策略中的重复运动信息的比例明显,这导致添加到运动信息候选列表里的第一级策略和第二级策略意义上的重复的单向运动信息实际上不会被用到,这些运动信息可能导致其他顺位靠后的不同的运动信息因为运动信息候选列表已经被占满而被放弃。另一方面,由于这些重复的运动信息占据了一个位置,导致其他的运动信息在运动信息列表中的索引值index增大,在编码索引值时需要更多的比特位数。

也就是说,目前最常使用第三级策略的查重检测效果比较差,因此,在本申请的实施例中,优选使用上述预设查重策略中所定义的第一级策略或第二级策略,即使用更加严格的查重检测方法,以获得效果更高的查重检测结果。其中,第二级策略适用于对解码复杂度要求较为严格的应用场景,第一级策略适用于对压缩性能要求很高,但编解码复杂度要求不是特别严格的应用场景。

在本申请的实施例中,进一步地,图8为帧间预测方法的实现流程示意图二,如图8所示,当预测模式参数指示使用预设帧间预测模式确定当前块的帧间预测值时,解码器按照预设查重策略构建当前块的运动信息候选列表的方法可以包括以下步骤:

步骤102a、确定当前块的相关的运动信息。

步骤102b、在将相关的运动信息依次填入运动信息候选列表的过程中,基于预设查重策略,对待填入的相关的运动信息和运动信息候选列表中的运动信息进行查重检测,获得查重检测结果。

步骤102c、基于查重检测结果完成运动信息候选列表的构建。

在本申请的实施例中,解码器在解析获得预测模式参数之后,如果解析获得的预测模式参数指示当前块使用预设帧间预测模式确定当前块的帧间预测值,那么解码器可以先确定出当前块的相关的运动信息,然后依次将相关的运动信息填入至运动信息候选列表中。具体地,在将相关的运动信息填入至运动信息候选列表的过程中,解码器可以按照预设查重策略,对为待填入的相关的运动信息和运动信息候选列表中的运动信息进行查重检测,从而可以获得查重检测结果,并在获得查重结果之后,可以基于查重结果进一步实现运动信息候选列表的构建。

可以理解的是,在本申请的实施例中,当前块的相关运动信息可以包括但不限于以下几种运动信息中的至少一种:空域运动信息、时域运动信息、基于历史信息的运动信息。示例性的,当前块的相关运动信息可以为当前块的相邻块的运动信息。

需要说明的是,在本申请中,基于不同的帧间预测模式,解码器构建的运动信息候选列表可以为单向运动信息候选列表,也可以为双向运动信息候选列表。示例性的,在本申请中,可以将单向运动信息候选列表示为RefPicL0,也可以将单向运动信息候选列表示为RefPicList0或List0或L0中的一种;可以将双向运动信息候选列表表示为RefPicL0和RefPicL1,其中,RefPicL1也可以使用RefPicList1或List1或L1中的一种来表示。

可以理解的是,在本申请的实施例中,单向运动信息可以包括一组运动矢量和参考帧信息,其中,参考帧信息可以包括参考帧列表和参考帧索引。示例性的,当前块的相关运动信息为当前块的相邻块A的运动信息,相邻块A的单向运动信息可以包括该相邻块A的参考帧列表a1、参考帧索引a2以及运动矢量a3。

示例性的,图9为单向运动信息的示意图,如图9所示,一个图像块的单向信息可以包括运动矢量(0,1),参考帧列表RefPicL0以及参考帧索引1;其中,参考帧索引为-1时表征对应的参考帧列表RefPicL1无效,参考帧索引1在参考帧列表RefPicL0中所指示的参考帧的标识(POC或DOI等唯一性标识)为2,即该图像块的单向信息所指示的是参考帧列表RefPicL0中的标识为2的参考帧。

相应地,在本申请中,双向运动信息可以包括二组运动矢量和参考帧信息,其中,一个参考帧信息可以包括参考帧列表和参考帧索引。示例性的,相邻块B的双向运动信息可以包括子信息B1和子信息B2,其中,子信息B1包括相邻块B的参考帧b1、参考帧索引b2以及运动矢量b3;子信息B2包括相邻块B的参考帧b4、参考帧索引b5以及运动矢量b6。

示例性的,图10为双向运动信息的示意图,如图10所示,一个图像块的双向信息可以包括两组子信息,其中,一组子信息可以包括运动矢量(0,1),参考帧列表RefPicL0以及参考帧索引0,参考帧索引0在参考帧列表RefPicL0中所指示的参考帧的标识(POC或DOI等唯一性标识)为3,即该图像块的单向信息所指示的是参考帧列表RefPicL0中的标识为3的参考帧;另一组子信息可以包括运动矢量(1,0),参考帧列表RefPicL1以及参考帧索引1,参考帧索引1在参考帧列表RefPicL1中所指示的参考帧的标识(POC或DOI等唯一性标识)为2,即该图像块的单向信息所指示的是参考帧列表RefPicL1中的标识为2的参考帧。

可以理解的是,在本申请的实施例中,查重检测结果可以包括相同或不相同。具体地,查重检测结果用于对待填入的相关的运动信息与运动信息候选列表中的、每一个运动信息是否相同进行确定。

进一步地,在本申请的实施例中,如果预设帧间预测模式使用单向运动信息,那么解码器在基于预设查重策略,对待填入的相关的运动信息和运动信息候选列表中的运动信息进行查重检测,获得查重检测结果时,可以先确定待填入的相关的运动信息中包括的第一参考帧信息和第一运动矢量;其中,第一参考帧信息包括第一参考帧列表和第一参考帧索引;同时可以确定运动信息候选列表中的运动信息中包括的第二参考帧信息和第二运动矢量;其中,第二参考帧信息包括第二参考帧列表和第二参考帧索引;然后便可以根据第一参考帧信息、第一运动矢量、第二参考帧信息以及第二运动矢量,确定查重检测结果。

需要说明的是,在本申请的实施例中,如果预设帧间预测模式使用单向运动信息,预设查重策略为第一级策略,那么解码器在根据第一参考帧信息、第一运动矢量、第二参考帧信息以及第二运动矢量,确定查重检测结果时,可以根据第一参考帧索引从第一参考帧列表中确定第一参考帧,并根据第一运动矢量在第一参考帧中确定第一参考块;同时根据第二参考帧索引从第二参考帧列表中确定第二参考帧,并根据第二运动矢量在第二参考帧中确定第二参考块;然后可以将第一参考块的像素信息和第二参考块的像素信息进行比较,如果第一参考块的像素信息和第二参考块的像素信息相同,那么解码器可以确定查重检测结果为待填入的相关的运动信息和运动信息候选列表中的运动信息相同;如果第一参考块的像素信息和第二参考块的像素信息不相同,那么解码器可以确定查重检测结果为待填入的相关的运动信息和运动信息候选列表中的运动信息不相同。

也就是说,在本申请中,解码器在按照第一级策略进行查重检测时,如果根据待填入的相关的运动信息所确定的第一参考块,与根据运动信息候选列表中的运动信息所确定的第二参考块,是像素信息完全相同的相同图像块,那么解码器便可以认为两个运动信息所指示的参考块是相同的,即查重检测结果为相同,即待填入的相关的运动信息和运动信息候选列表中的运动信息重复;反之,如果基于两个运动信息确定出的两个参考块的像素信息不完全相同,那么可以认为待填入的相关的运动信息和运动信息候选列表中的运动信息不重复。

需要说明的是,在本申请的实施例中,如果预设帧间预测模式使用单向运动信息,预设查重策略为第二级策略,那么解码器在根据第一参考帧信息、第一运动矢量、第二参考帧信息以及第二运动矢量,确定查重检测结果时,可以先根据第一参考帧索引从第一参考帧列表中确定第一参考帧,并获取第一参考帧的第一标识;同时可以根据第二参考帧索引从第二参考帧列表中确定第二参考帧,并获取第二参考帧的第二标识;然后可以将第一标识和第二标识进行比较,将第一运动矢量和第二运动矢量进行比较,如果第一标识和第二标识相同,且第一运动矢量和第二运动矢量相同,那么解码器可以确定查重检测结果为待填入的相关的运动信息和运动信息候选列表中的运动信息相同;如果第一标识和第二标识不相同,或者,第一运动矢量和第二运动矢量不相同,那么解码器可以确定查重检测结果为待填入的相关的运动信息和运动信息候选列表中的运动信息不相同。

可以理解的是,在本申请的实施例中,一个参考帧的标识可以为POC或DOI等唯一性标识,例如,第一标识可以为第一参考帧列表中的、第一参考帧的POC;第二标识可以为第二参考帧列表中的、第二参考帧的POC。

也就是说,在本申请中,解码器在按照第二级策略进行查重检测时,如果根据待填入的相关的运动信息所确定的第一参考帧的第一标识和第一运动矢量,与根据运动信息候选列表中的运动信息所确定的第二参考帧的第二标识和第二运动矢量相同,那么解码器便可以认为两个运动信息所指示的参考块是相同的,即查重检测结果为相同,即待填入的相关的运动信息和运动信息候选列表中的运动信息重复;反之,如果基于两个运动信息确定出的两个参考帧的标识和运动矢量不相同,那么可以认为待填入的相关的运动信息和运动信息候选列表中的运动信息不重复。

需要说明的是,在本申请的实施例中,如果预设帧间预测模式使用单向运动信息,预设查重策略为第三级策略,那么解码器在根据第一参考帧信息、第一运动矢量、第二参考帧信息以及第二运动矢量,确定查重检测结果时,可以直接将第一参考帧信息与第二参考帧信息进行比较,同时将第一运动矢量和第二运动矢量进行比较,如果第一参考帧信息和第二参考帧信息相同,且第一运动矢量和第二运动矢量相同,那么解码器便认为两个运动信息所指示的参考块是相同的,即确定查重检测结果为待填入的相关的运动信息和运动信息候选列表中的运动信息相同;如果第一参考帧信息和第二参考帧信息不相同,或者,第一运动矢量和第二运动矢量不相同,那么解码器便可以确定查重检测结果为待填入的相关的运动信息和运动信息候选列表中的运动信息不相同。

也就是说,在本申请中,解码器在按照第三级策略进行查重检测时,仅通过对两个运动信息进行比较的比较结果来确定查重检测结果。

可以理解的是,在本申请的实施例中,比较第三级策略与第一级策略和第二级策略,由于标准中允许同一个参考帧,即同一个POC(或DOI等唯一性标识)的参考帧,出现在两个参考帧列表里,因此,即使两个单向运动信息的参考帧列表和参考帧索引不同,它们指向的参考帧也可能是同一个参考帧。可见,使用第一级策略或第二级策略查重检测为重复的两个运动信息,有可能在使用第三级策略查重检测时被确定为不重复。

进一步地,在本申请的实施例中,如果预设帧间预测模式使用双向运动信息,那么解码器在基于预设查重策略,对待填入的相关的运动信息和运动信息候选列表中的运动信息进行查重检测,获得查重检测结果时,可以先确定待填入的相关的运动信息中包括的第一子信息和第二子信息;其中,第一子信息包括第三参考帧信息和第三运动矢量,第三参考帧信息包括第三参考帧列表和第三参考帧索引,第二子信息包括第四参考帧信息和第四运动矢量,第四参考帧信息包括第四参考帧列表和第四参考帧索引;同时可以确定运动信息候选列表中的运动信息中包括的第三子信息和第四子信息;其中,第三子信息包括第五参考帧信息和第五运动矢量,第五参考帧信息包括第五参考帧列表和第五参考帧索引,第四子信息包括第六参考帧信息和第六运动矢量,第六参考帧信息包括第六参考帧列表和第六参考帧索引;然后便可以根据第一子信息、第二子信息、第三子信息以及第四子信息确定查重检测结果。

需要说明的是,在本申请的实施例中,如果预设帧间预测模式使用双向运动信息,预设查重策略为第一级策略,那么解码器在根据第一子信息、第二子信息、第三子信息以及第四子信息确定查重检测结果时,可以先根据第一子信息确定第三参考块,根据第二子信息确定第四参考块;同时根据第三子信息确定第五参考块,根据第四子信息确定第六参考块;然后将第三参考块和第四参考块,分别与第五参考块和第六参考块进行比较,如果第三参考块的像素信息和第五参考块的像素信息相同,且第四参考块的像素信息和第六参考块的像素信息相同,那么解码器可以确定查重检测结果为待填入的相关的运动信息和运动信息候选列表中的运动信息相同;如果第三参考块的像素信息和第六参考块的像素信息相同,且第四参考块的像素信息和第五参考块的像素信息相同,那么解码器可以确定查重检测结果为待填入的相关的运动信息和运动信息候选列表中的运动信息相同;否则,那么解码器确定查重检测结果为待填入的相关的运动信息和运动信息候选列表中的运动信息不相同。

可以理解的是,在本申请的实施例中,解码器在根据第一子信息确定第三参考块,根据第二子信息确定第四参考块时,可以根据第三参考帧索引从第三参考帧列表中确定第三参考帧,并根据第三运动矢量在第三参考帧中确定第三参考块;同时,可以根据第四参考帧索引从第四参考帧列表中确定第四参考帧,并根据第四运动矢量在第四参考帧中确定第四参考块。

可以理解的是,在本申请的实施例中,解码器在根据第三子信息确定第五参考块,根据第四子信息确定第六参考块时,可以根据第五参考帧索引从第五参考帧列表中确定第五参考帧,并根据第五运动矢量在第五参考帧中确定第五参考块;同时,可以根据第六参考帧索引从第六参考帧列表中确定第六参考帧,并根据第六运动矢量在第六参考帧中确定第六参考块。

也就是说,在本申请中,解码器在按照第一级策略进行查重检测时,如果根据待填入的相关的运动信息所确定的第三参考块和第四参考块,与根据运动信息候选列表中的运动信息所确定的第五参考块和第六参考块,是像素信息两两相同的相同图像块,那么解码器便可以认为两个运动信息所指示的参考块是相同的,即查重检测结果为相同,即待填入的相关的运动信息和运动信息候选列表中的运动信息重复;反之,如果基于两个运动信息确定出的四个参考块的像素信息并不两两相同,那么可以认为待填入的相关的运动信息和运动信息候选列表中的运动信息不重复。

需要说明的是,在本申请的实施例中,如果预设帧间预测模式使用双向运动信息,预设查重策略为第二级策略,那么解码器在根据第一子信息、第二子信息、第三子信息以及第四子信息确定查重检测结果时,可以先根据第一子信息确定待填入的相关信息的第一信息组合,根据第二子信息确定待填入的相关信息的第二信息组合;同时根据第三子信息确定列表中的运动信息的第三信息组合,根据第四子信息确定列表中的运动信息的第四信息组合;然后可以将第一信息组合和第二信息组合,分别与第三信息组合和第四信息组合进行比较,如果第一信息组合与第三信息组合相同,且第二信息组合和第四信息组合相同,那么解码器便可以确定查重检测结果为待填入的相关的运动信息和运动信息候选列表中的运动信息相同;如果第一信息组合与第四信息组合相同,且第二信息组合和第三信息组合相同,那么解码器便可以确定查重检测结果为待填入的相关的运动信息和运动信息候选列表中的运动信息相同;否则确定查重检测结果为待填入的相关的运动信息和运动信息候选列表中的运动信息不相同。

可以理解的是,在本申请的实施例中,解码器在根据第一子信息确定待填入的相关信息的第一信息组合,根据第二子信息确定待填入的相关信息的第二信息组合时,可以根据第三参考帧索引从第三参考帧列表中确定第三参考帧,并根据第三参考帧的第三标识与第三运动矢量构建第一信息组合;同时,可以根据第四参考帧索引从第四参考帧列表中确定第四参考帧,并根据第四参考帧的第四标识与第四运动矢量构建第二信息组合。

可以理解的是,在本申请的实施例中,解码器在根据第三子信息确定列表中的运动信息的第三信息组合,根据第四子信息确定列表中的运动信息的第四信息组合时,可以根据第五参考帧索引从第五参考帧列表中确定第五参考帧,并根据第五参考帧的第五标识与第五运动矢量构建第三信息组合;同时,可以根据第六参考帧索引从第六参考帧列表中确定第六参考帧,并根据第六参考帧的第六标识与第六运动矢量构建第四信息组合。

可以理解的是,在本申请的实施例中,一个参考帧的标识可以为POC或DOI等唯一性标识,例如,第三标识可以为第三参考帧列表中的、第三参考帧的POC;第五标识可以为第五参考帧列表中的、第五参考帧的POC。

也就是说,在本申请中,解码器在按照第二级策略进行查重检测时,如果根据待填入的相关的运动信息所确定的第三参考帧的第三标识和第三运动矢量、第四参考帧的第四标识和第四运动矢量,与根据运动信息候选列表中的运动信息所确定的第五参考帧的第五标识和第五运动矢量、第六参考帧的第六标识和第六运动矢量两两相同,那么解码器便可以认为两个运动信息所指示的参考块是相同的,即查重检测结果为相同,即待填入的相关的运动信息和运动信息候选列表中的运动信息重复;反之,如果基于两个运动信息确定出的两个参考帧的标识和运动矢量不相同,那么可以认为待填入的相关的运动信息和运动信息候选列表中的运动信息不重复。

需要说明的是,在本申请的实施例中,如果预设帧间预测模式使用双向运动信息,预设查重策略为第三级策略,那么解码器在根据第一子信息、第二子信息、第三子信息以及第四子信息确定查重检测结果时,可以直接将第一子信息和第二子信息,分别与第三子信息和第四子信息进行比较,如果第一子信息与第三子信息相同,且第二子信息和第四子信息相同,那么解码器便认为两个运动信息所指示的参考块是相同的;如果第一子信息与第四子信息相同,且第二子信息和第三子信息相同,那么解码器便认为两个运动信息所指示的参考块是相同的;否则确定查重检测结果为待填入的相关的运动信息和运动信息候选列表中的运动信息不相同。

也就是说,在本申请中,解码器在按照第三级策略进行查重检测时,仅通过对两个运动信息进行比较的比较结果来确定查重检测结果。

可以理解的是,在本申请的实施例中,比较第三级策略与第一级策略和第二级策略,由于标准中允许同一个参考帧,即同一个POC(或DOI等唯一性标识)的参考帧,出现在两个参考帧列表里,因此,即使两个单向运动信息的参考帧列表和参考帧索引不同,它们指向的参考帧也可能是同一个参考帧。可见,使用第一级策略或第二级策略查重检测为重复的两个运动信息,有可能在使用第三级策略查重检测时被确定为不重复。

需要说明的是,在本申请的实施例中,如果解析获得的预测模式参数指示当前块使用GPM或AWP确定当前块的帧间预测值,那么当前块可以被划分为第一分区和第二分区,相应地,当前块的运动信息可以包括第一分区对应的第一信息和第二分区对应的第二信息。其中,第一信息包括第一分区对应的运动矢量和参考帧信息,第二信息包括第二分区对应的运动矢量和参考帧信息。

进一步地,在本申请的实施例中,解码器在基于查重检测结果完成运动信息候选列表的构建时,如果查重检测结果为待填入的相关的运动信息和运动信息候选列表中的运动信息不重合,那么解码器可以将待填入的相关的运动信息填入至运动信息候选列表;如果查重检测结果为待填入的相关的运动信息和运动信息候选列表中的运动信息重合,那么解码器可以忽略待填入的相关的运动信息。

由此可见,对于本申请实施例提出的预设查重策略,第一级策略查重最严格,所能获得的压缩性能也最佳,但是,由于第一级策略查重需要取出参考块才能判断运动信息是否相同,复杂度较高。通常的查重操作都会进行多次,比如一个新的运动信息候选想要加入到运动信息候选列表时,需要和运动信息候选列表中的每一个运动信息都进行查重(比较是否相同),所以对一个新的运动信息候选想要加入到运动信息候选列表的场景就需要多次去内存中取参考块,实现复杂度较第三级策略查重明显增加。因此,第一级策略适用于对压缩性能要求很高,但编解码复杂度要求不是特别严格的应用场景。

第二级策略查重与第三级策略的不同点在于,第三级策略查重直接判断参考帧列表、参考帧索引是否相同,而第二级策略查重判断参考帧(如参考帧的POC或DOI等参考帧的唯一性标识)是否相同。以POC为例,第二级策略查重相对于第三级策略查重增加的复杂度在于根据参考帧列表、参考帧索引获得参考帧POC,即从参考帧列表中找到参考帧索引的位置的参考帧的POC即可。因为存在参考帧列表、参考帧索引不同但参考帧POC相同的情况,进而在复杂度增加不明显的情况下查重效果提升明显。因此,第二级策略适用于对解码复杂度要求较为严格的应用场景。

需要说明的是,本申请提出的预设查重策略可以适用于所有的需要运动信息查重或判断运动信息是否相同的场景,包括但不限于AWP。AWP因为用到的都是单向运动信息,性能差别更明显。以AVS中的AWP为例,在构建运动信息候选列表时,基于上述图4,相邻块X(X表示为A、B、C、D、F或G)“存在”是指该块应在待解码图像内并且该块应与块E属于同一空间区域;否则相邻块“不存在”。可以得到,如果块“不存在”或者尚未解码,那么此块“不可用”;否则此块“可用”。或者,如果待解码图像样本所在的块“不存在”或者此样本尚未解码,那么此样本“不可用”;否则此样本“可用”。

具体来讲,推导mvAwp0L0、mvAwp0L1、RefIdxAwp0L0、RefIdxAwp0L1、mvAwp1L0、mvAwp1L1、RefIdxAwp1L0以及RefIdxAwp1L1的步骤如下:

第一步,确定F、G、C、A、B和D的“可用”性。

第二步,按F、G、C、A、B和D的顺序将单向可用的运动信息放入单向运动信息候选列表AwpUniArray,直至AwpUniArray长度为3或者遍历结束。

第三步,如果AwpUniArray的长度小于3,按F、G、C、A、B和D的顺序将双向可用的运动信息拆分为指向参考帧列表RefPicL0的单向运动信息以及指向参考帧列表List1的单向运动信息,先进行单向运动信息查重操作,若不重复则放入AwpUniArray,直至长度为3或遍历结束。

第四步,将时域双向的运动信息拆分为指向参考帧列表RefPicL0的单向运动信息以及指向参考帧列表List1的单向运动信息,先进行单向运动信息查重操作,若不重复则放入AwpUniArray,直至长度为4或遍历结束。

第五步,如果AwpUniArray的长度小于4,将AwpUniArray中最后一个单向运动信息进行重复填充操作,直至AwpUniArray长度为4。

第六步,将AwpUniArray中第AwpCandIdx0+1个运动信息赋值给mvAwp0L0,mvAwp0L1,RefIdxAwp0L0,RefIdxAwp0L1;将AwpUniArray中第AwpCandIdx1+1个运动信息赋值给mvAwp1L0,mvAwp1L1,RefIdxAwp1L0以及RefIdxAwp1L1。

其中,在第三步中,可以使用本申请提出的预设查重策略进行查重检测。优选的,可以使用第二级策略进行查重检测操作。

可以理解的是,在本申请的实施例中,解码器可以预先设置不同的预测模式使用不同的预设查重策略,即对不同的预测模式所使用的预设查重策略可能是不一样的,例如,如果预测模式参数指示使用GPM确定当前块的帧间预测值,那么在构建运动信息参考列表时,使用预设查重策略中的第二级策略来进行查重检测;如果预测模式参数指示使用AWP确定当前块的帧间预测值,那么在构建运动信息参考列表时,使用预设查重策略中的第二级策略来进行查重检测;如果预测模式参数指示使用GPM和AWP以外的其他帧间预测模式确定当前块的帧间预测值,那么在构建运动信息参考列表时,使用预设查重策略中的第三级策略来进行查重检测。

步骤103、根据当前块对应的运动信息索引值从运动信息候选列表中确定运动信息。

在本申请的实施例中,解码器在按照预设查重策略构建当前块的运动信息候选列表之后,便可以根据当前块对应的运动信息索引值从运动信息候选列表中确定运动信息。

在本申请的实施例中,进一步地,图11为帧间预测方法的实现流程示意图三,如图11所示,解码器在解析码流,获取当前块的预测模式参数之后,即步骤101之后,解码器进行帧间预测的方法还可以包括以下步骤:

步骤105、当预测模式参数指示使用预设帧间预测模式确定当前块的帧间预测值时,解析码流,获取运动信息索引值。

在本申请的实施例中,解码器在解析码流获得当前块的预测模式参数之后,如果预测模式参数指示使用预设帧间预测模式确定当前块的帧间预测值,那么解码器还可以继续对二进制码流进行解析,从而可以进一步获得当前块对应的运动信息索引值。

需要说明的是,在本申请的实施例中,如果预测模式参数指示使用GPM或AWP进行帧间预测,即预设帧间预测模式为GPM或AWP,那么解码器在解析码流,获取当前块的预测模式参数之后,还需要解析码流,获取模式类型。

示例性的,在本申请中,解码器在解析码流之后,不仅可以通过解析获得的预测模式参数确定当前块是否使用GPM或AWP进行帧间预测,并且在确定使用GPM或AWP进行帧间预测之后,还可以通过解析码流获得的模式类型来确定当前块具体使用的模式,例如,GPM的64种模式之一,或AWP的56种模式之一;同时,还可以通过解析码流获得两个单向运动信息的索引值,即第一分区对应的第一索引值和第二分区对应的第二索引值。

进一步地,在本申请的实施例中,如果预设帧间预测模式为GPM或AWP,因此,解码器在解析获得当前块的模式类型之后,可以基于模式类型确定当前块对应的第一分区和第二分区;相应地,当前块对应的运动信息索引值也可以包括第一信息对应的第一索引值,和第二信息对应的第二索引值;相应地,当前块对应的运动信息也可以包括第一分区对应的第一信息,和第二分区对应的第二信息。

可以理解的是,GPM或AWP属于一种帧间预测技术,GPM或AWP需要在码流中传输一个GPM或AWP是否使用的标志(flag),该flag可以指示当前块是否使用GPM或AWP。如果使用GPM或AWP,编码器在码流中需要传输具体使用的模式,即GPM的64种划分模式之一,或AWP的56种划分模式之一;以及两个单向运动信息的索引值。也就是说,对于当前块而言,解码器通过解析码流可以得到GPM或AWP是否使用的信息,如果确定使用GPM或AWP,解码器可以解析出GPM或AWP的预测模式参数以及两个运动信息索引值,比如当前块可以划分为两个分区,那么可以解析出第一分区对应的第一索引值和第二分区对应的第二索引值。

需要说明的是,在本申请的实施例中,解码器在根据当前块对应的运动信息索引值从运动信息候选列表中确定运动信息时,可以将运动信息候选列表中的、第一索引值指示的运动信息,确定为第一分区的第一信息;同时,可以将运动信息候选列表中的、第二索引值指示的运动信息,确定为第二分区的第二信息。

步骤104、根据运动信息,确定当前块的帧间预测值。

在本申请的实施例中,解码器在根据当前块对应的运动信息索引值从运动信息候选列表中确定运动信息之后,可以进一步根据运动信息获得当前块的帧间预测值,以完成当前块的帧间预测。

需要说明的是,在本申请的实施例中,解码器在确定当前块的运动信息之后,可以先根据运动信息确定当前块对应的参考块;然后可以再基于该参考块,确定对应的帧间预测值,以完成帧间预测。

可以理解的是,在本申请的实施例中,解码器可以根据解析到的当前块的运动信息索引值从运动信息候选列表中确定出当前块对应的运动信息,然后可以利用运动信息确定出当前块对应的参考块,并基于参考块进行帧间预测,最终获得当前块的帧间预测值。

进一步地,在本申请的实施例中,对于GPM或AWP,解码器在将运动信息候选列表中的、第一索引值指示的运动信息,确定为第一分区的第一信息;同时,将运动信息候选列表中的、第二索引值指示的运动信息,确定为第二分区的第二信息之后,可以利用第一信息计算第一分区的第一预测值,同时利用第二信息计算第二分区的第二预测值;然后可以根据第一预测值和第二预测值,确定当前块的帧间预测值。

需要说明的是,在本申请的实施例中,解码器在根据第一预测值和第二预测值,确定当前块的帧间预测值时,可以先根据模式类型确定第一分区的第一权重和第二分区的第二权重;然后可以按照第一权重和第二权重,对第一预测值和第二预测值进行加权融合处理,最终便可以获得帧间预测值。

也就是说,在本申请中,解码器在解析获得当前块的运动信息索引值之后,即获得当前块的第一分区的第一索引值和第二分区的第二索引值之后,可以分别根据第一索引值和第二索引值从构建的运动信息候选列表中找到当前块的两个运动信息,即第一信息和第二信息,然后可以利用这两个单向运动信息找到两个参考块,并根据GPM或AWP使用的具体的模式,即解析获得的模式类型,确定两个参考块在每一个像素位置的权重,最后基于第一权重和第二权重,将两个参考块加权融合,便可以得到当前块的预测块,即帧间预测值。

需要说明的是,在本申请中,如果当前模式是跳过模式,则预测块就是解码块,当前块的解码结束。如果当前模式不是跳过模式,熵解码解析量化系数,接着反量化,反变换得到残差块,将残差块与预测块相加得到解码块,当前块的解码结束。

综上,本申请提出的帧间预测方法,在构建运动信息候选列表时,按照预设查重策略进行对运动信息进行查重检测,使用更严谨的查重标准,从而够在复杂度增加不明显的情况下查重效果提升明显。在存在参考帧列表、参考帧索引不同但参考帧相同的情况下,可以将新的定义下重复的运动信息排除,使得运动信息候选列表中不同的运动信息增多,有效运动信息的索引提前,从而提升编解码性能。

本实施例提供了一种帧间预测方法,解码器解析码流,获取当前块的预测模式参数;当预测模式参数指示使用预设帧间预测模式确定当前块的帧间预测值时,按照预设查重策略构建当前块的运动信息候选列表;其中,预设查重策略用于进行去重复处理;根据当前块对应的运动信息索引值从运动信息候选列表中确定运动信息;根据运动信息,确定当前块的帧间预测值。也就是说,本申请提出的帧间预测方法,在进行运动信息候选列表的构建时,可以按照预设查重策略进行更为严谨的去重复处理,解决了运动信息候选列表中出现重复选项的问题,使得查重效果得到明显的提升,从而提高了编解码效率。

基于上述实施例,在本申请的在意实施例中,下面将结合几种情况,对运动信息候选列表的构建过程中的查重检测进行了详细说明。

在一种可能的实施方式中,在判断单向运动信息是否相同时,如果两个单向运动信息满足下面一个或多个条件,则认为两个单向运动信息不同,即不重复;否则认为两个单向运动信息相同,即重复:

1、InterPredRefMode均为0,RefPicL0运动矢量不相等或RefPicL0参考帧索引不相等;

2、InterPredRefMode均为1,RefPicL1运动矢量不相等或RefPicL1参考帧索引不相等;

3、一个InterPredRefMode为0,另一个InterPredRefMode为1,InterPredRefMode为0的运动信息的RefPicL0参考帧索引确定的参考帧与InterPredRefMode为1的运动信息的RefPicL1参考帧索引确定的参考帧不同,或InterPredRefMode为0的运动信息的RefPicL0运动矢量与InterPredRefMode为1的运动信息的RefPicL1运动矢量不相等。

其中,InterPredRefMode为0表示前向预测,即参考帧列表为RefPicL0,InterPredRefMode为1表示后向预测,即参考帧列表为RefPicL1。

在一种可能的实施方式中,在判断单向运动信息是否相同时,如果两个单向运动信息满足下面一个或多个条件,则认为两个单向运动信息不同,即不重复;否则认为两个单向运动信息相同,即重复:

1、InterPredRefMode均为0,RefPicL0运动矢量不相等或RefPicL0参考帧索引不相等;

2、InterPredRefMode均为1,RefPicL1运动矢量不相等或RefPicL1参考帧索引不相等;

3、一个InterPredRefMode为0,另一个InterPredRefMode为1,InterPredRefMode为0的运动信息的RefPicL0参考帧索引确定的参考帧的POC(或DOI或其他唯一性标识)与InterPredRefMode为1的运动信息的RefPicL1参考帧索引确定的参考帧的POC(或DOI或其他唯一性标识)不同,或InterPredRefMode为0的运动信息的RefPicL0运动矢量与InterPredRefMode为1的运动信息的RefPicL1运动矢量不相等。

其中,InterPredRefMode为0表示前向预测,即参考帧列表为RefPicL0,InterPredRefMode为1表示后向预测,即参考帧列表为RefPicL1。

在一种可能的实施方式中,在判断运动信息是否相同时,如果两个运动信息满足下面一个或多个条件,则认为两个运动信息不同,即不重复;否则认为两个运动信息相同,即重复:

1、InterPredRefMode均为0,RefPicL0运动矢量不相等或RefPicL0参考帧索引不相等;

2、InterPredRefMode均为1,RefPicL1运动矢量不相等或RefPicL1参考帧索引不相等;

3、一个InterPredRefMode为0,另一个InterPredRefMode为1,InterPredRefMode为0的运动信息的RefPicL0参考帧索引确定的参考帧与InterPredRefMode为1的运动信息的RefPicL1参考帧索引确定的参考帧不同,或InterPredRefMode为0的运动信息的RefPicL0运动矢量与InterPredRefMode为1的运动信息的RefPicL1运动矢量不相等。

4、InterPredRefMode均为2,RefPicL0运动矢量、RefPicL1运动矢量、RefPicL0参考帧索引或RefPicL1参考帧索引中有任意一个不相等。

其中,InterPredRefMode为0表示前向预测,即参考帧列表为RefPicL0,InterPredRefMode为1表示后向预测,即参考帧列表为RefPicL1,InterPredRefMode为2表示双向预测,即参考帧列表为RefPicL0和RefPicL1。

通过上述条件4可知,可以继续使用预设查重策略中的第三级策略进行双向运动信息的是否相同的确定,即上述条件1至条件4均使用了预设查重策略中的第三级策略。

在一种可能的实施方式中,在判断运动信息是否相同时,如果两个运动信息满足下面一个或多个条件,则认为两个运动信息不同,即不重复;否则认为两个运动信息相同,即重复:

1、InterPredRefMode均为0,RefPicL0运动矢量不相等或RefPicL0参考帧索引不相等;

2、InterPredRefMode均为1,RefPicL1运动矢量不相等或RefPicL1参考帧索引不相等;

3、一个InterPredRefMode为0,另一个InterPredRefMode为1,InterPredRefMode为0的运动信息的RefPicL0参考帧索引确定的参考帧的POC(或DOI或其他唯一性标识)与InterPredRefMode为1的运动信息的RefPicL1参考帧索引确定的参考帧的POC(或DOI或其他唯一性标识)不同,或InterPredRefMode为0的运动信息的RefPicL0运动矢量与InterPredRefMode为1的运动信息的RefPicL1运动矢量不相等。

4、InterPredRefMode均为2,RefPicL0运动矢量、RefPicL1运动矢量、RefPicL0参考帧索引或RefPicL1参考帧索引中有任意一个不相等。

其中,InterPredRefMode为0表示前向预测,即参考帧列表为RefPicL0,InterPredRefMode为1表示后向预测,即参考帧列表为RefPicL1,InterPredRefMode为2表示双向预测,即参考帧列表为RefPicL0和RefPicL1。

通过上述条件4可知,可以继续使用预设查重策略中的第三级策略进行双向运动信息的是否相同的确定,即上述条件1至条件4结合了预设查重策略中的第二级策略和第三级策略。

在一种可能的实施方式中,在判断运动信息是否相同时,如果两个运动信息满足下面一个或多个条件,则认为两个运动信息不同,即不重复;否则认为两个运动信息相同,即重复:

1、InterPredRefMode均为0,RefPicL0运动矢量不相等或RefPicL0参考帧索引不相等;

2、InterPredRefMode均为1,RefPicL1运动矢量不相等或RefPicL1参考帧索引不相等;

3、一个InterPredRefMode为0,另一个InterPredRefMode为1,InterPredRefMode为0的运动信息的RefPicL0参考帧索引确定的参考帧与InterPredRefMode为1的运动信息的RefPicL1参考帧索引确定的参考帧不同,或InterPredRefMode为0的运动信息的RefPicL0运动矢量与InterPredRefMode为1的运动信息的RefPicL1运动矢量不相等。

4、InterPredRefMode均为2,条件1:RefPicL0运动矢量、RefPicL1运动矢量、RefPicL0参考帧索引确定的参考帧或RefPicL1参考帧索引确定的参考帧中有任意一个不相等;条件2:第一个运动信息的RefPicL0参考帧索引确定的参考帧与第二个运动信息的RefPicL1参考帧索引确定的参考帧、第一个运动信息的RefPicL1参考帧索引确定的参考帧与第二个运动信息的RefPicL0参考帧索引确定的参考帧、第一个运动信息的RefPicL0运动矢量与第二个运动信息的RefPicL1运动矢量、第一个运动信息的RefPicL1运动矢量与第二个运动信息的RefPicL0运动矢量中有任意一个不相等。条件1和条件2同时满足。

其中,InterPredRefMode为0表示前向预测,即参考帧列表为RefPicL0,InterPredRefMode为1表示后向预测,即参考帧列表为RefPicL1,InterPredRefMode为2表示双向预测,即参考帧列表为RefPicL0和RefPicL1。

通过上述条件4可知,可以使用预设查重策略中的第二级策略进行双向运动信息的是否相同的确定,即上述条件1至条件4结合了预设查重策略中的第二级策略和第三级策略。

在一种可能的实施方式中,在判断运动信息是否相同时,如果两个运动信息满足下面一个或多个条件,则认为两个运动信息不同,即不重复;否则认为两个运动信息相同,即重复:

1、InterPredRefMode均为0,RefPicL0运动矢量不相等或RefPicL0参考帧索引不相等;

2、InterPredRefMode均为1,RefPicL1运动矢量不相等或RefPicL1参考帧索引不相等;

3、一个InterPredRefMode为0,另一个InterPredRefMode为1,InterPredRefMode为0的运动信息的RefPicL0参考帧索引确定的参考帧的POC(或DOI或其他唯一性标识)与InterPredRefMode为1的运动信息的RefPicL1参考帧索引确定的参考帧的POC(或DOI或其他唯一性标识)不同,或InterPredRefMode为0的运动信息的RefPicL0运动矢量与InterPredRefMode为1的运动信息的RefPicL1运动矢量不相等。

4、InterPredRefMode均为2,条件1:RefPicL0运动矢量、RefPicL1运动矢量、RefPicL0参考帧索引确定的参考帧或RefPicL1参考帧索引确定的参考帧中有任意一个不相等;条件2:第一个运动信息的RefPicL0参考帧索引确定的参考帧与第二个运动信息的RefPicL1参考帧索引确定的参考帧、第一个运动信息的RefPicL1参考帧索引确定的参考帧与第二个运动信息的RefPicL0参考帧索引确定的参考帧、第一个运动信息的RefPicL0运动矢量与第二个运动信息的RefPicL1运动矢量、第一个运动信息的RefPicL1运动矢量与第二个运动信息的RefPicL0运动矢量中有任意一个不相等。条件1和条件2同时满足。

其中,InterPredRefMode为0表示前向预测,即参考帧列表为RefPicL0,InterPredRefMode为1表示后向预测,即参考帧列表为RefPicL1,InterPredRefMode为2表示双向预测,即参考帧列表为RefPicL0和RefPicL1。

通过上述条件4可知,可以使用预设查重策略中的第二级策略进行双向运动信息的是否相同的确定,即上述条件1至条件4均使用了预设查重策略中的第二级策略。

在一种可能的实施方式中,在判断运动信息是否相同时,如果两个运动信息满足下面一个或多个条件,则认为两个运动信息不同,即不重复;否则认为两个运动信息相同,即重复:

1、InterPredRefMode均为0,RefPicL0运动矢量不相等或RefPicL0参考帧索引不相等;

2、InterPredRefMode均为1,RefPicL1运动矢量不相等或RefPicL1参考帧索引不相等;

3、一个InterPredRefMode为0,另一个InterPredRefMode为1,InterPredRefMode为0的运动信息的RefPicL0参考帧索引确定的参考帧与InterPredRefMode为1的运动信息的RefPicL1参考帧索引确定的参考帧不同,或InterPredRefMode为0的运动信息的RefPicL0运动矢量与InterPredRefMode为1的运动信息的RefPicL1运动矢量不相等。

4、InterPredRefMode均为2,条件1:RefPicL0运动矢量、RefPicL1运动矢量、RefPicL0参考帧索引确定的POC(或DOI或其他唯一性标识)或RefPicL1参考帧索引确定的POC(或DOI或其他唯一性标识)中有任意一个不相等;条件2:第一个运动信息的RefPicL0参考帧索引确定的参考帧与第二个运动信息的RefPicL1参考帧索引确定的参考帧、第一个运动信息的RefPicL1参考帧索引确定的POC(或DOI或其他唯一性标识)与第二个运动信息的RefPicL0参考帧索引确定的POC(或DOI或其他唯一性标识)、第一个运动信息的RefPicL0运动矢量与第二个运动信息的RefPicL1运动矢量、第一个运动信息的RefPicL1运动矢量与第二个运动信息的RefPicL0运动矢量中有任意一个不相等。条件1和条件2同时满足。

其中,InterPredRefMode为0表示前向预测,即参考帧列表为RefPicL0,InterPredRefMode为1表示后向预测,即参考帧列表为RefPicL1,InterPredRefMode为2表示双向预测,即参考帧列表为RefPicL0和RefPicL1。

在一种可能的实施方式中,在判断运动信息是否相同时,如果两个运动信息满足下面一个或多个条件,则认为两个运动信息不同,即不重复;否则认为两个运动信息相同,即重复:

1、InterPredRefMode均为0,RefPicL0运动矢量不相等或RefPicL0参考帧索引不相等;

2、InterPredRefMode均为1,RefPicL1运动矢量不相等或RefPicL1参考帧索引不相等;

3、一个InterPredRefMode为0,另一个InterPredRefMode为1,InterPredRefMode为0的运动信息的RefPicL0参考帧索引确定的参考帧的POC(或DOI或其他唯一性标识)与InterPredRefMode为1的运动信息的RefPicL1参考帧索引确定的参考帧的POC(或DOI或其他唯一性标识)不同,或InterPredRefMode为0的运动信息的RefPicL0运动矢量与InterPredRefMode为1的运动信息的RefPicL1运动矢量不相等。

4、InterPredRefMode均为2,条件1:RefPicL0运动矢量、RefPicL1运动矢量、RefPicL0参考帧索引确定的POC(或DOI或其他唯一性标识)或RefPicL1参考帧索引确定的POC(或DOI或其他唯一性标识)中有任意一个不相等;条件2:第一个运动信息的RefPicL0参考帧索引确定的参考帧与第二个运动信息的RefPicL1参考帧索引确定的参考帧、第一个运动信息的RefPicL1参考帧索引确定的POC(或DOI或其他唯一性标识)与第二个运动信息的RefPicL0参考帧索引确定的POC(或DOI或其他唯一性标识)、第一个运动信息的RefPicL0运动矢量与第二个运动信息的RefPicL1运动矢量、第一个运动信息的RefPicL1运动矢量与第二个运动信息的RefPicL0运动矢量中有任意一个不相等。条件1和条件2同时满足。

其中,InterPredRefMode为0表示前向预测,即参考帧列表为RefPicL0,InterPredRefMode为1表示后向预测,即参考帧列表为RefPicL1,InterPredRefMode为2表示双向预测,即参考帧列表为RefPicL0和RefPicL1。

在一种可能的实施方式中,在判断运动信息是否相同时,如果两个运动信息指向的参考块的位置的集合相同,则两个运动信息相同,即重复;否则两个运动信息不相同,即不重复。参考块的位置包括参考帧的POC(或DOI或其他唯一性标识)和参考块在参考帧中的位置。

在一种可能的实施方式中,在判断运动信息是否相同时,如果两个运动信息有相同的参考帧POC(或DOI或其他唯一性标识)加运动矢量的组合的集合,则两个运动信息相同,即重复;否则两个运动信息不相同,即不重复。

需要说明的是,在本申请的实施例中,本申请实施例的运动信息候选列表一般是指单向运动信息候选列表,但是本申请实施例单向运动信息的构造方式可以扩展到双向运动信息的构造,从而单向运动信息候选列表的构建也可以扩展到双向运动信息候选列表的构建。

示例性的,在本申请中,表1为参考帧列表一,其中,包括两个不同的参考帧列表RefPicL0和RefPicL1中的每一个参考帧的标识(POC或DOI等唯一性标识)。基于上述表1,表2为参考帧索引和运动矢量的表示方式,其中,RefIdxL0是参考帧列表RefPicL0上的索引,mvL0是参考帧列表RefPicL0上对应的运动矢量;RefIdxL1是参考帧列表RefPicL1上的索引,mvL1是参考帧列表RefPicL1上对应的运动矢量。

表1

表2

RefPicL0 RefIdxL0 mvL0
RefPicL1 RefIdxL1 mvL1

待填入的相关的运动信息可以表示为下表3,运动信息候选列表中的运动信息可以表示为下表4,其中,单向运动信息可以认为一个参考帧列表对应的参考帧索引有效,另一个参考帧列表对应的参考帧索引无效。如果预设帧间预测模式使用单向运动信息,那么在表3和表4中,参考帧索引为-1则表示无效,即表3中的RefPicL0无效,RefPicL1有效,表4中的RefPicL1无效,RefPicL0有效。

表3

RefPicL0 -1 (0,0)
RefPicL1 1 (1,0)

表4

RefPicL0 0 (1,0)
RefPicL1 -1 (0,0)

基于上述表1至表4,解码器在按照第三级策略进行查重检测时,由于RefIdxL0,mvL0,RefIdxL1,mvL1至少一个不相同,即不完全相同,因此解码器可以确定表3所示的运动信息和表4所示的运动信息不相同,进而获得的查重检测结果为待填入的相关的运动信息和运动信息候选列表中的运动信息不相同。

然而,解码器在按照第二级策略进行查重检测时,表3中的运动信息指示的是标识(POC或DOI等唯一性标识)为4的参考帧,且在该参考帧上的运动矢量是(1,0),表4中的运动信息指示的也是标识(POC或DOI等唯一性标识)为4的参考帧,且在该参考帧上的运动矢量是(1,0),因此解码器可以确定表3的运动信息和表4的运动信息所指示的参考块是相同的,进而获得的查重检测结果为待填入的相关的运动信息和运动信息候选列表中的运动信息相同。

示例性的,在本申请中,表5为参考帧列表二,其中,包括两个不同的参考帧列表RefPicL0和RefPicL1中的每一个参考帧的标识(POC或DOI等唯一性标识)。

表5

基于上述表2,待填入的相关的运动信息可以表示为下表6,运动信息候选列表中的运动信息可以表示为下表7,其中,如果预设帧间预测模式使用双向运动信息,那么在表6和表7中,参考帧索引的取值可以表征表6和表7中的RefPicL0和RefPicL1均有效。

表6

RefPicL0 0 (0,0)
RefPicL1 1 (1,0)

表7

RefPicL0 0 (1,0)
RefPicL1 1 (0,0)

基于上述表5至表7,解码器在按照第三级策略进行查重检测时,由于RefIdxL0,mvL0,RefIdxL1,mvL1至少一个不相同,即不完全相同,因此解码器可以确定表6所示的运动信息和表7所示的运动信息不相同,进而获得的查重检测结果为待填入的相关的运动信息和运动信息候选列表中的运动信息不相同。

然而,解码器在按照第二级策略进行查重检测时,表6中的运动信息指示的是标识(POC或DOI等唯一性标识)为0的参考帧和标识为16的参考帧,且在标识为0的参考帧上的运动矢量是(0,0),在标识为16的参考帧上的运动矢量是(1,0),表7中的运动信息指示的也是标识为0的参考帧和标识为16的参考帧,且在标识为0的参考帧上的运动矢量是(0,0),在标识为16的参考帧上的运动矢量是(1,0),因此解码器可以确定表6的运动信息和表7的运动信息所指示的参考块是相同的,进而获得的查重检测结果为待填入的相关的运动信息和运动信息候选列表中的运动信息相同。

本实施例提供了一种帧间预测方法,在进行运动信息候选列表的构建时,可以按照预设查重策略进行更为严谨的去重复处理,解决了运动信息候选列表中出现重复选项的问题,使得查重效果得到明显的提升,从而提高了编解码效率。

本申请实施例提供一种帧间预测方法,该方法应用于视频编码设备,即编码器。该方法所实现的功能可以通过编码器中的第二处理器调用计算机程序来实现,当然计算机程序可以保存在第二存储器中,可见,该编码器至少包括第二处理器和第二存储器。

图12为帧间预测方法的实现流程示意图四,如图12所示,编码器进行帧间预测的方法可以包括以下步骤:

步骤201、确定当前块的预测模式参数。

在本申请的实施例中,编码器可以先确定当前块的预测模式参数。具体地,编码器可以先确定当前块使用的预测模式,然后基于该预测模式确定对应的预测模式参数。其中,预测模式参数可以用于对当前块所使用的预测模式进行确定。

需要说明的是,在本申请的实施例中,待编码图像可以划分为多个图像块,当前待编码的图像块可以称为当前块,与当前块相邻的图像块可以称为相邻块;即在待编码图像中,当前块与相邻块之间具有相邻关系。这里,每个当前块可以包括第一图像分量、第二图像分量和第三图像分量;也即当前块为待编码图像中当前待进行第一图像分量、第二图像分量或者第三图像分量预测的图像块。

其中,假定当前块进行第一图像分量预测,而且第一图像分量为亮度分量,即待预测图像分量为亮度分量,那么当前块也可以称为亮度块;或者,假定当前块进行第二图像分量预测,而且第二图像分量为色度分量,即待预测图像分量为色度分量,那么当前块也可以称为色度块。

需要说明的是,在本申请的实施例中,预测模式参数指示了当前块采用的预测模式以及与该预测模式相关的参数。这里,针对预测模式参数的确定,可以采用简单的决策策略,比如根据失真值的大小进行确定;也可以采用复杂的决策策略,比如根据率失真优化(Rate Distortion Optimization,RDO)的结果进行确定,本申请实施例不作任何限定。通常而言,可以采用RDO方式来确定当前块的预测模式参数。

具体地,在一些实施例中,编码器在确定当前块的预测模式参数时,可以先利用多种预测模式对当前块进行预编码处理,获得每一种预测模式对应的率失真代价值;然后从所获得的多个率失真代价值中选择最小率失真代价值,并根据最小率失真代价值对应的预测模式确定当前块的预测模式参数。

也就是说,在编码器侧,针对当前块可以采用多种预测模式分别对当前块进行预编码处理。这里,多种预测模式通常包括有帧间预测模式、传统帧内预测模式和非传统帧内预测模式;其中,传统帧内预测模式可以包括有直流(Direct Current,DC)模式、平面(PLANAR)模式和角度模式等,非传统帧内预测模式可以包括有基于矩阵的帧内预测(Matrix-based Intra Prediction,MIP)模式、跨分量线性模型预测(Cross-componentLinear Model Prediction,CCLM)模式、帧内块复制(Intra Block Copy,IBC)模式和PLT(Palette)模式等,而帧间预测模式可以包括有普通帧间预测模式、GPM模式和AWP模式等。

这样,在利用多种预测模式分别对当前块进行预编码之后,可以得到每一种预测模式对应的率失真代价值;然后从所得到的多个率失真代价值中选取最小率失真代价值,并将该最小率失真代价值对应的预测模式确定为当前块的预测模式参数。除此之外,还可以在利用多种预测模式分别对当前块进行预编码之后,得到每一种预测模式对应的失真值;然后从所得到的多个失真值中选取最小失真值,然后将该最小失真值对应的预测模式确定为当前块使用的预测模式,并根据该预测模式设置对应的预测模式参数。如此,最终使用所确定的预测模式参数对当前块进行编码,而且在这种预测模式下,可以使得预测残差较小,能够提高编码效率。

也就是说,在编码侧,编码器可以选取最优的预测模式对当前块进行预编码,在这过程中就可以确定出当前块的预测模式,然后确定用于指示预测模式的预测模式参数,从而将相应的预测模式参数写入码流,由编码器传输到解码器。

相应地,在解码器侧,解码器通过解析码流便可以直接获取到当前块的预测模式参数,并根据解析获得的预测模式参数确定当前块所使用的预测模式,以及该预测模式对应的相关参数。

步骤202、当预测模式参数指示使用预设帧间预测模式确定当前块的帧间预测值时,按照预设查重策略构建当前块的运动信息候选列表;其中,预设查重策略用于进行去重复处理。具体地,去重复处理即为剪枝(pruning),也就是在构建运动信息候选列表的过程中将相同的运动信息进行剔除。

在本申请的实施例中,编码器在确定预测模式参数之后,如果预测模式参数指示当前块使用预设帧间预测模式确定当前块的帧间预测值,那么编码器便可以按照预设查重策略对当前块的运动信息候选列表进行构建。

需要说明的是,在本申请的实施例中,预设查重策略用于在构建运动信息候选列表的过程中进行去重复处理。

可以理解的是,在本申请的实施例中,在编码器确定预测模式参数指示使用预设帧间预测模式确定当前块的帧间预测值的情况下,就可以采用本申请实施例所提供的帧间预测方法。

示例性的,在本申请的实施例中,预设帧间预测模式可以为GPM模式、AWP模式或者其他帧间预测模式。

进一步地,在本申请的实施例中,对预设查重策略可以包括多种不同的查重检测的方式,具体地,可以先对预设查重策略进行定义。

示例性的,在本申请中,可以将预设查重策略区分为第一级策略、第二级策略以及第三级策略。以下以单向运动信息为例,分别对预设查重策略进行说明。

第一级策略:严格的查重应该是指两个单向运动信息找到的两个参考块不完全相同,即两个参考块对应位置的像素值不都相同。这是由于如果两个单向运动信息找到的两个参考块完全相同,那么使用单向运动信息的帧间预测,如AWP,就没有意义了,所以严格地来讲,如果两个单向运动信息找到的两个参考块完全相同,即使这两个单向运动信息看起来不一样,例如,两个单向运动信息的MV不一样,即(x,y)的值不一样,或者两个单向运动信息的参考帧不一样,或者两个单向运动信息对应的参考帧列表不一样,或者两个单向运动信息在参考帧列表中的参考帧索引不一样,只要两个单向运动信息找到的两个参考块完全相同,就可以认为这两个单向运动信息是重复的,将以上预设查重策略确定为第一级策略。

第二级策略:放宽一点,可以认为两个单向运动信息只有在指向同一个参考块(同一个位置)的时候才重复,反之,如果两个单向运动信息指向不同位置的参考块,则可以认为两个单向运动信息不重复。其中,两个单向运动信息指向不同位置的参考块等价于两个单向运动信息的参考帧或MV的值不完全相同。也就是说,如果两个单向运动信息的MV相同但参考帧不同,那么两个单向运动信息找到的参考块不在同一个参考帧上,位置不相同;如果两个单向运动信息参考帧相同但MV不同,那么两个单向运动信息找到的参考块位置也不同,将以上预设查重策略确定为第二级策略。

第三级策略:目前编解码标准的常用做法是使用两个参考帧列表来管理参考帧,用参考帧索引从列表中找到对应的参考帧。这种参考帧管理方法就衍生出了更宽松的查重标准。可以认为只有两个单向运动信息对应的有效的参考帧列表、参考帧索引以及MV都相同,才认为这两个单向运动信息是重复的单向运动信息,将以上预设查重策略确定为第三级策略。

然而,标准中允许同一个参考帧,即同一个POC(或DOI等唯一性标识)的参考帧,出现在两个参考帧列表里,且同一个参考帧列表中不能存在重复的参考帧,即不存在同一个POC(或DOI等唯一性标识)的参考帧,因此,如果两个单向运动信息的参考帧列表相同但参考帧索引不同,那它们对应的参考帧肯定不同;但是两个参考帧列表里可以分别有同一个参考帧,它们在各自列表中的索引可能相同,也可能不,进而会造成即使两个单向运动信息的有效的参考帧列表和参考帧索引不同,它们指向的参考帧可能是同一个参考帧的情况,

目前普遍使用的查重方法就是上述预设查重策略中的第三级策略,而且,其他一些技术中也使用了第三级策略进行查重检测,如超运动矢量表达式(ultra motion vectorexpression,UMVE)、基于历史的运动矢量预测(history-based motion vectorprediction,HMVP))。这里还要说明一点,AWP使用的全是单向运动信息,UMVE和HMVP用到的可能是单向运动信息也可能是双向运动信息。单向运动信息可以认为一个参考帧列表对应的参考帧索引有效,另一个参考帧列表对应的参考帧索引无效。而双向运动信息是两个参考帧列表对应的参考帧索引都有效。它们认为两个参考帧列表对应的参考帧索引都相同,如果某一个参考帧列表对应的参考帧索引有效,它们对应的x,y都相同,这样两个双向运动信息才算重复。

需要说明的是,VVC中同样使用的是上述预设查重策略中的第三级策略。

可以理解的是,在本申请的实施例中,对单向运动信息进行查重检测的预设查重策略或判断单向运动信息是否相同的定义可以扩展到双向运动信息。具体地,第一级策略的查重检测可以分为2个子等级,即1.1级和1.2级。其中,对于1.1级,如果两个运动信息找到的参考块根据其后续所需要的算法做出的预测块相同,就认为它们是相同的运动信息,即两个运动信息重复;对于1.2级,如果两个运动信息找到两个参考块的集合(一个运动信息最多可以找到两个参考块,如果找到了两个参考块,这两个参考块作为一个参考块的集合,如果找到了一个参考块,这一个参考块作为一个参考块的集合)相同,就认为它们是相同的运动信息,即两个运动信息重复。按照第二级策略进行查重检测时,如果两个运动信息指向的两个参考块位置的集合(一个运动信息最多可以确定两个参考块的位置,如果有两个参考块的位置,这两个参考块的位置作为一个参考块的位置的集合,如果有一个参考块的位置,这一个参考块的位置作为一个参考块的位置的集合)相同,就认为它们是相同的运动信息,即两个运动信息重复。第三级策略的查重比较宽泛,查重检测的效果相对于第一级策略和第二级策略比较差,对于单向运动信息这种差距更加明显。

应用第三级策略查重的运动信息列表的构建方法出现第一级策略和第二级策略中的重复运动信息的比例明显,这导致添加到运动信息候选列表里的第一级策略和第二级策略意义上的重复的单向运动信息实际上不会被用到,这些运动信息可能导致其他顺位靠后的不同的运动信息因为运动信息候选列表已经被占满而被放弃。另一方面,由于这些重复的运动信息占据了一个位置,导致其他的运动信息在运动信息列表中的索引值index增大,在编码索引值时需要更多的比特位数。

也就是说,目前最常使用第三级策略的查重检测效果比较差,因此,在本申请的实施例中,优选使用上述预设查重策略中所定义的第一级策略或第二级策略,即使用更加严格的查重检测方法,以获得效果更高的查重检测结果。其中,第二级策略适用于对解码复杂度要求较为严格的应用场景,第一级策略适用于对压缩性能要求很高,但编解码复杂度要求不是特别严格的应用场景。

在本申请的实施例中,进一步地,图13为帧间预测方法的实现流程示意图五,如图13所示,当预测模式参数指示使用预设帧间预测模式确定当前块的帧间预测值时,编码器按照预设查重策略构建当前块的运动信息候选列表的方法可以包括以下步骤:

步骤202a、确定当前块的相关的运动信息。

步骤202b、在将相关的运动信息依次填入运动信息候选列表的过程中,基于预设查重策略,对待填入的相关的运动信息和运动信息候选列表中的运动信息进行查重检测,获得查重检测结果。

步骤202c、基于查重检测结果完成运动信息候选列表的构建。

在本申请的实施例中,编码器在确定预测模式参数之后,如果预测模式参数指示当前块使用预设帧间预测模式确定当前块的帧间预测值,那么编码器可以先确定出当前块的相关的运动信息,然后依次将相关的运动信息填入至运动信息候选列表中。具体地,在将相关的运动信息填入至运动信息候选列表的过程中,编码器可以按照预设查重策略,对为待填入的相关的运动信息和运动信息候选列表中的运动信息进行查重检测,从而可以获得查重检测结果,并在获得查重结果之后,可以基于查重结果进一步实现运动信息候选列表的构建。

可以理解的是,在本申请的实施例中,当前块的相关运动信息可以包括但不限于以下几种运动信息中的至少一种:空域运动信息、时域运动信息、基于历史信息的运动信息。示例性的,当前块的相关运动信息可以为当前块的相邻块的运动信息。

需要说明的是,在本申请中,基于不同的帧间预测模式,编码器构建的运动信息候选列表可以为单向运动信息候选列表,也可以为双向运动信息候选列表。示例性的,在本申请中,可以将单向运动信息候选列表示为RefPicL0,也可以将单向运动信息候选列表示为RefPicList0或List0或L0中的一种;可以将双向运动信息候选列表表示为RefPicL0和RefPicL1,其中,RefPicL1也可以使用RefPicList1或List1或L1中的一种来表示。

可以理解的是,在本申请的实施例中,单向运动信息可以包括一组运动矢量和参考帧信息,相应地,在本申请中,双向运动信息可以包括二组运动矢量和参考帧信息,其中,一个参考帧信息可以包括参考帧列表和参考帧索引。

可以理解的是,在本申请的实施例中,查重检测结果可以包括相同或不相同。具体地,查重检测结果用于对待填入的相关的运动信息与运动信息候选列表中的、每一个运动信息是否相同进行确定。

进一步地,在本申请的实施例中,如果预设帧间预测模式使用单向运动信息,那么编码器在基于预设查重策略,对待填入的相关的运动信息和运动信息候选列表中的运动信息进行查重检测,获得查重检测结果时,可以先确定待填入的相关的运动信息中包括的第一参考帧信息和第一运动矢量;其中,第一参考帧信息包括第一参考帧列表和第一参考帧索引;同时可以确定运动信息候选列表中的运动信息中包括的第二参考帧信息和第二运动矢量;其中,第二参考帧信息包括第二参考帧列表和第二参考帧索引;然后便可以根据第一参考帧信息、第一运动矢量、第二参考帧信息以及第二运动矢量,确定查重检测结果。

需要说明的是,在本申请的实施例中,如果预设帧间预测模式使用单向运动信息,预设查重策略为第一级策略,那么编码器在根据第一参考帧信息、第一运动矢量、第二参考帧信息以及第二运动矢量,确定查重检测结果时,可以根据第一参考帧索引从第一参考帧列表中确定第一参考帧,并根据第一运动矢量在第一参考帧中确定第一参考块;同时根据第二参考帧索引从第二参考帧列表中确定第二参考帧,并根据第二运动矢量在第二参考帧中确定第二参考块;然后可以将第一参考块的像素信息和第二参考块的像素信息进行比较,如果第一参考块的像素信息和第二参考块的像素信息相同,那么编码器可以确定查重检测结果为待填入的相关的运动信息和运动信息候选列表中的运动信息相同;如果第一参考块的像素信息和第二参考块的像素信息不相同,那么编码器可以确定查重检测结果为待填入的相关的运动信息和运动信息候选列表中的运动信息不相同。

需要说明的是,在本申请的实施例中,如果预设帧间预测模式使用单向运动信息,预设查重策略为第二级策略,那么编码器在根据第一参考帧信息、第一运动矢量、第二参考帧信息以及第二运动矢量,确定查重检测结果时,可以先根据第一参考帧索引从第一参考帧列表中确定第一参考帧,并获取第一参考帧的第一标识;同时可以根据第二参考帧索引从第二参考帧列表中确定第二参考帧,并获取第二参考帧的第二标识;然后可以将第一标识和第二标识进行比较,将第一运动矢量和第二运动矢量进行比较,如果第一标识和第二标识相同,且第一运动矢量和第二运动矢量相同,那么编码器可以确定查重检测结果为待填入的相关的运动信息和运动信息候选列表中的运动信息相同;如果第一标识和第二标识不相同,或者,第一运动矢量和第二运动矢量不相同,那么编码器可以确定查重检测结果为待填入的相关的运动信息和运动信息候选列表中的运动信息不相同。

需要说明的是,在本申请的实施例中,如果预设帧间预测模式使用单向运动信息,预设查重策略为第三级策略,那么编码器在根据第一参考帧信息、第一运动矢量、第二参考帧信息以及第二运动矢量,确定查重检测结果时,可以直接将第一参考帧信息与第二参考帧信息进行比较,同时将第一运动矢量和第二运动矢量进行比较,如果第一参考帧信息和第二参考帧信息相同,且第一运动矢量和第二运动矢量相同,那么编码器便认为两个运动信息所指示的参考块是相同的,即确定查重检测结果为待填入的相关的运动信息和运动信息候选列表中的运动信息相同;如果第一参考帧信息和第二参考帧信息不相同,或者,第一运动矢量和第二运动矢量不相同,那么编码器便可以确定查重检测结果为待填入的相关的运动信息和运动信息候选列表中的运动信息不相同。

进一步地,在本申请的实施例中,如果预设帧间预测模式使用双向运动信息,那么编码器在基于预设查重策略,对待填入的相关的运动信息和运动信息候选列表中的运动信息进行查重检测,获得查重检测结果时,可以先确定待填入的相关的运动信息中包括的第一子信息和第二子信息;其中,第一子信息包括第三参考帧信息和第三运动矢量,第三参考帧信息包括第三参考帧列表和第三参考帧索引,第二子信息包括第四参考帧信息和第四运动矢量,第四参考帧信息包括第四参考帧列表和第四参考帧索引;同时可以确定运动信息候选列表中的运动信息中包括的第三子信息和第四子信息;其中,第三子信息包括第五参考帧信息和第五运动矢量,第五参考帧信息包括第五参考帧列表和第五参考帧索引,第四子信息包括第六参考帧信息和第六运动矢量,第六参考帧信息包括第六参考帧列表和第六参考帧索引;然后便可以根据第一子信息、第二子信息、第三子信息以及第四子信息确定查重检测结果。

需要说明的是,在本申请的实施例中,如果预设帧间预测模式使用双向运动信息,预设查重策略为第一级策略,那么编码器在根据第一子信息、第二子信息、第三子信息以及第四子信息确定查重检测结果时,可以先根据第一子信息确定第三参考块,根据第二子信息确定第四参考块;同时根据第三子信息确定第五参考块,根据第四子信息确定第六参考块;然后将第三参考块和第四参考块,分别与第五参考块和第六参考块进行比较,如果第三参考块的像素信息和第五参考块的像素信息相同,且第四参考块的像素信息和第六参考块的像素信息相同,那么编码器可以确定查重检测结果为待填入的相关的运动信息和运动信息候选列表中的运动信息相同;如果第三参考块的像素信息和第六参考块的像素信息相同,且第四参考块的像素信息和第五参考块的像素信息相同,那么编码器可以确定查重检测结果为待填入的相关的运动信息和运动信息候选列表中的运动信息相同;否则,那么编码器确定查重检测结果为待填入的相关的运动信息和运动信息候选列表中的运动信息不相同。

可以理解的是,在本申请的实施例中,编码器在根据第一子信息确定第三参考块,根据第二子信息确定第四参考块时,可以根据第三参考帧索引从第三参考帧列表中确定第三参考帧,并根据第三运动矢量在第三参考帧中确定第三参考块;同时,可以根据第四参考帧索引从第四参考帧列表中确定第四参考帧,并根据第四运动矢量在第四参考帧中确定第四参考块。

可以理解的是,在本申请的实施例中,编码器在根据第三子信息确定第五参考块,根据第四子信息确定第六参考块时,可以根据第五参考帧索引从第五参考帧列表中确定第五参考帧,并根据第五运动矢量在第五参考帧中确定第五参考块;同时,可以根据第六参考帧索引从第六参考帧列表中确定第六参考帧,并根据第六运动矢量在第六参考帧中确定第六参考块。

需要说明的是,在本申请的实施例中,如果预设帧间预测模式使用双向运动信息,预设查重策略为第二级策略,那么编码器在根据第一子信息、第二子信息、第三子信息以及第四子信息确定查重检测结果时,可以先根据第一子信息确定待填入的相关信息的第一信息组合,根据第二子信息确定待填入的相关信息的第二信息组合;同时根据第三子信息确定列表中的运动信息的第三信息组合,根据第四子信息确定列表中的运动信息的第四信息组合;然后可以将第一信息组合和第二信息组合,分别与第三信息组合和第四信息组合进行比较,如果第一信息组合与第三信息组合相同,且第二信息组合和第四信息组合相同,那么编码器便可以确定查重检测结果为待填入的相关的运动信息和运动信息候选列表中的运动信息相同;如果第一信息组合与第四信息组合相同,且第二信息组合和第三信息组合相同,那么编码器便可以确定查重检测结果为待填入的相关的运动信息和运动信息候选列表中的运动信息相同;否则确定查重检测结果为待填入的相关的运动信息和运动信息候选列表中的运动信息不相同。

可以理解的是,在本申请的实施例中,编码器在根据第一子信息确定待填入的相关信息的第一信息组合,根据第二子信息确定待填入的相关信息的第二信息组合时,可以根据第三参考帧索引从第三参考帧列表中确定第三参考帧,并根据第三参考帧的第三标识与第三运动矢量构建第一信息组合;同时,可以根据第四参考帧索引从第四参考帧列表中确定第四参考帧,并根据第四参考帧的第四标识与第四运动矢量构建第二信息组合。

可以理解的是,在本申请的实施例中,编码器在根据第三子信息确定列表中的运动信息的第三信息组合,根据第四子信息确定列表中的运动信息的第四信息组合时,可以根据第五参考帧索引从第五参考帧列表中确定第五参考帧,并根据第五参考帧的第五标识与第五运动矢量构建第三信息组合;同时,可以根据第六参考帧索引从第六参考帧列表中确定第六参考帧,并根据第六参考帧的第六标识与第六运动矢量构建第四信息组合。

可以理解的是,在本申请的实施例中,一个参考帧的标识可以为POC或DOI等唯一性标识。

需要说明的是,在本申请的实施例中,如果预设帧间预测模式使用双向运动信息,预设查重策略为第三级策略,那么编码器在根据第一子信息、第二子信息、第三子信息以及第四子信息确定查重检测结果时,可以直接将第一子信息和第二子信息,分别与第三子信息和第四子信息进行比较,如果第一子信息与第三子信息相同,且第二子信息和第四子信息相同,那么编码器便认为两个运动信息所指示的参考块是相同的;如果第一子信息与第四子信息相同,且第二子信息和第三子信息相同,那么编码器便认为两个运动信息所指示的参考块是相同的;否则确定查重检测结果为待填入的相关的运动信息和运动信息候选列表中的运动信息不相同。

可以理解的是,在本申请的实施例中,比较第三级策略与第一级策略和第二级策略,由于标准中允许同一个参考帧,即同一个POC(或DOI等唯一性标识)的参考帧,出现在两个参考帧列表里,因此,即使两个单向运动信息的参考帧列表和参考帧索引不同,它们指向的参考帧也可能是同一个参考帧。可见,使用第一级策略或第二级策略查重检测为重复的两个运动信息,有可能在使用第三级策略查重检测时被确定为不重复。

需要说明的是,在本申请的实施例中,如果解析获得的预测模式参数指示当前块使用GPM或AWP确定当前块的帧间预测值,那么当前块可以被划分为第一分区和第二分区,相应地,当前块的运动信息可以包括第一分区对应的第一信息和第二分区对应的第二信息。其中,第一信息包括第一分区对应的运动矢量和参考帧信息,第二信息包括第二分区对应的运动矢量和参考帧信息。

进一步地,在本申请的实施例中,编码器在基于查重检测结果完成运动信息候选列表的构建时,如果查重检测结果为待填入的相关的运动信息和运动信息候选列表中的运动信息不重合,那么编码器可以将待填入的相关的运动信息填入至运动信息候选列表;如果查重检测结果为待填入的相关的运动信息和运动信息候选列表中的运动信息重合,那么编码器可以忽略待填入的相关的运动信息。

由此可见,对于本申请实施例提出的预设查重策略,第一级策略查重最严格,所能获得的压缩性能也最佳,但是,由于第一级策略查重需要取出参考块才能判断运动信息是否相同,复杂度较高。通常的查重操作都会进行多次,比如一个新的运动信息候选想要加入到运动信息候选列表时,需要和运动信息候选列表中的每一个运动信息都进行查重(比较是否相同),所以对一个新的运动信息候选想要加入到运动信息候选列表的场景就需要多次去内存中取参考块,实现复杂度较第三级策略查重明显增加。因此,第一级策略适用于对压缩性能要求很高,但编解码复杂度要求不是特别严格的应用场景。

第二级策略查重与第三级策略的不同点在于,第三级策略查重直接判断参考帧列表、参考帧索引是否相同,而第二级策略查重判断参考帧(如参考帧的POC或DOI等参考帧的唯一性标识)是否相同。以POC为例,第二级策略查重相对于第三级策略查重增加的复杂度在于根据参考帧列表、参考帧索引获得参考帧POC,即从参考帧列表中找到参考帧索引的位置的参考帧的POC即可。因为存在参考帧列表、参考帧索引不同但参考帧POC相同的情况,进而在复杂度增加不明显的情况下查重效果提升明显。因此,第二级策略适用于对解码复杂度要求较为严格的应用场景。

可以理解的是,在本申请的实施例中,解码器可以预先设置不同的预测模式使用不同的预设查重策略,即对不同的预测模式所使用的预设查重策略可能是不一样的,例如,如果预测模式参数指示使用GPM确定当前块的帧间预测值,那么在构建运动信息参考列表时,使用预设查重策略中的第二级策略来进行查重检测;如果预测模式参数指示使用AWP确定当前块的帧间预测值,那么在构建运动信息参考列表时,使用预设查重策略中的第二级策略来进行查重检测;如果预测模式参数指示使用GPM和AWP以外的其他帧间预测模式确定当前块的帧间预测值,那么在构建运动信息参考列表时,使用预设查重策略中的第三级策略来进行查重检测。

步骤203、从运动信息候选列表中确定当前块的运动信息。

在本申请的实施例中,编码器在按照预设查重策略构建当前块的运动信息候选列表之后,便可以从运动信息候选列表中确定运动信息。

在本申请的实施例中,进一步地,图14为帧间预测方法的实现流程示意图六,如图14所示,编码器从运动信息候选列表中确定当前块的运动信息之后,即步骤203之后,编码器进行帧间预测的方法还可以包括以下步骤:

步骤205、将当前块对应的运动信息索引值设置为运动信息在运动信息候选列表中的索引序号值。

在本申请的实施例中,进一步地,如果预设帧间预测模式为GPM或AWP,那么编码器在确定预测模式参数之后,如果预测模式参数指示当前块使用预设帧间预测模式确定当前块的帧间预测值,编码器便可以先选择预测模式下的模式类型,然后可以根据模式类型确定当前块对应的第一分区和第二分区。

示例性的,在本申请中,编码器在根据预测模式参数确定当前块使用GPM或AWP进行帧间预测之后,还可以进一步确定当前块具体使用的模式类型,例如,GPM的64种模式之一,或AWP的56种模式之一。从而便可以按照当前块具体使用的模式类型确定出当前块对应的第一分区和第二分区。

可以理解的是,在本申请的实施例中,编码器从运动信息候选列表中确定当前块的运动信息时,可以从运动信息候选列表中确定第一分区对应的第一信息;同时从运动信息候选列表中确定第二分区对应的第二信息。

进一步地,在本申请的实施例中,如果预设帧间预测模式为GPM或AWP,那么编码器在从运动信息候选列表中确定当前块的运动信息之后,可以将第一索引值设置为第一信息在运动信息候选列表中的索引序号值,同时将第二索引值设置为第二信息在运动信息候选列表中的索引序号值;其中,第一索引值和第二索引值构成当前块的运动信息索引值。

也就是说,当前块的运动信息索引值可以包括第一信息对应的第一参考帧索引和第二信息对应的第二参考帧索引。

需要说明的是,在本申请的实施例中,编码器可以将当前块的模式类型和运动信息索引值写入码流,从而可以传输至解码侧。进一步地,不仅使解码器在解析码流之后,可以通过解析获得的预测模式参数确定当前块是否使用GPM或AWP进行帧间预测,并且在确定使用GPM或AWP进行帧间预测之后,还可以使解码器通过解析码流获得的模式类型来确定当前块具体使用的模式,例如,GPM的64种模式之一,或AWP的56种模式之一;同时,还可以使解码器通过解析码流获得两个单向运动信息的索引值,即第一分区对应的第一索引值和第二分区对应的第二索引值。

进一步地,在本申请的实施例中,预设帧间预测模式可以包括GPM或AWP,编码器可以基于模式类型确定当前块对应的第一分区和第二分区;相应地,当前块对应的运动信息索引值也可以包括第一信息对应的第一索引值,和第二信息对应的第二索引值;相应地,当前块对应的运动信息也可以包括第一分区对应的第一信息,和第二分区对应的第二信息。

步骤204、根据运动信息,确定当前块的帧间预测值。

在本申请的实施例中,编码器在从运动信息候选列表中确定运动信息之后,可以进一步根据运动信息获得当前块的帧间预测值,以完成当前块的帧间预测。

需要说明的是,在本申请的实施例中,编码器在确定当前块的运动信息之后,可以先根据运动信息确定当前块对应的参考块;然后可以再基于模式类型和参考块,确定帧间预测值。

可以理解的是,在本申请的实施例中,编码器可以从运动信息候选列表中确定出当前块对应的运动信息,然后可以利用运动信息确定出当前块对应的参考块,并基于参考块进行帧间预测,最终获得当前块的帧间预测值。

进一步地,在本申请的实施例中,对于GPM或AWP,编码器在从运动信息候选列表中确定第一分区的第一信息和第二分区的第二信息之后,可以利用第一信息计算第一分区的第一预测值,同时利用第二信息计算第二分区的第二预测值;然后可以根据第一预测值和第二预测值,确定当前块的帧间预测值。

需要说明的是,在本申请的实施例中,编码器在根据第一预测值和第二预测值,确定当前块的帧间预测值时,可以先根据模式类型确定第一分区的第一权重和第二分区的第二权重;然后可以按照第一权重和第二权重,对第一预测值和第二预测值进行加权融合处理,最终便可以获得帧间预测值。

也就是说,在本申请中,编码器在从构建的运动信息候选列表中找到当前块的两个运动信息,即第一信息和第二信息之后,然后可以利用这两个单向运动信息找到两个参考块,并根据GPM或AWP使用的具体的模式,即解析获得的模式类型,确定两个参考块在每一个像素位置的权重,最后基于第一权重和第二权重,将两个参考块加权融合,便可以得到当前块的预测块,即帧间预测值。

需要说明的是,在本申请中,如果当前模式是跳过模式,则预测块就是编码块,当前块的编码结束。如果当前模式不是跳过模式,熵编码解析量化系数,接着反量化,反变换得到残差块,将残差块与预测块相加得到编码块,当前块的编码结束。

需要说明的是,在本申请的实施例中,本申请实施例的运动信息候选列表一般是指单向运动信息候选列表,但是本申请实施例单向运动信息的构造方式可以扩展到双向运动信息的构造,从而单向运动信息候选列表的构建也可以扩展到双向运动信息候选列表的构建。

综上所述,本申请提出的帧间预测方法,在构建运动信息候选列表时,按照预设查重策略进行对运动信息进行查重检测,使用更严谨的查重标准,从而够在复杂度增加不明显的情况下查重效果提升明显。在存在参考帧列表、参考帧索引不同但参考帧相同的情况下,可以将新的定义下重复的运动信息排除,使得运动信息候选列表中不同的运动信息增多,有效运动信息的索引提前,从而提升编解码性能。

本实施例提供了一种帧间预测方法,编码器确定当前块的预测模式参数;当预测模式参数指示使用预设帧间预测模式确定当前块的帧间预测值时,按照预设查重策略构建当前块的运动信息候选列表;其中,预设查重策略用于进行去重复处理;从运动信息候选列表中确定当前块的运动信息;根据运动信息,确定当前块的帧间预测值。也就是说,本申请提出的帧间预测方法,在进行运动信息候选列表的构建时,可以按照预设查重策略进行更为严谨的去重复处理,解决了运动信息候选列表中出现重复选项的问题,使得查重效果得到明显的提升,从而提高了编解码效率。

基于上述实施例,在本申请的再一实施例中,图15为解码器的组成结构示意图一,如图15所示,本申请实施例提出的解码器300可以包括解析部分301、第一构建部分302、第一确定部分303;其中,

所述解析部分301,配置为解析码流,获取当前块的预测模式参数;

所述第一构建部分302,配置为当所述预测模式参数指示使用预设帧间预测模式确定所述当前块的帧间预测值时,按照预设查重策略构建所述当前块的运动信息候选列表;其中,所述预设查重策略用于进行去重复处理;

所述第一确定部分303,配置为根据所述当前块对应的运动信息索引值从所述运动信息候选列表中确定运动信息;以及根据所述运动信息,确定所述当前块的帧间预测值。

图16为解码器的组成结构示意图二,如图16所示,本申请实施例提出的解码器300还可以包括第一处理器304、存储有第一处理器304可执行指令的第一存储器305、第一通信接口306,和用于连接第一处理器304、第一存储器305以及第一通信接口306的第一总线307。

进一步地,在本申请的实施例中,上述第一处理器304,用于解析码流,获取当前块的预测模式参数;当所述预测模式参数指示使用预设帧间预测模式确定所述当前块的帧间预测值时,按照预设查重策略构建所述当前块的运动信息候选列表;其中,所述预设查重策略用于进行去重复处理;根据所述当前块对应的运动信息索引值从所述运动信息候选列表中确定运动信息;根据所述运动信息,确定所述当前块的帧间预测值。

集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

本申请实施例提供了一种解码器,该解码器解析码流,获取当前块的预测模式参数;当预测模式参数指示使用预设帧间预测模式确定当前块的帧间预测值时,按照预设查重策略构建当前块的运动信息候选列表;其中,预设查重策略用于进行去重复处理;根据当前块对应的运动信息索引值从运动信息候选列表中确定运动信息;根据运动信息,确定当前块的帧间预测值。也就是说,本申请提出的帧间预测方法,在进行运动信息候选列表的构建时,可以按照预设查重策略进行更为严谨的去重复处理,解决了运动信息候选列表中出现重复选项的问题,使得查重效果得到明显的提升,从而提高了编解码效率。

图17为编码器的组成结构示意图一,如图17所示,本申请实施例提出的编码器400可以包括第二确定部分401、第二构建部分402、设置部分403;其中,

所述第二确定部分401,配置为确定当前块的预测模式参数;

所述第二构建部分402,配置为当所述预测模式参数指示使用预设帧间预测模式确定所述当前块的帧间预测值时,按照预设查重策略构建所述当前块的运动信息候选列表;其中,所述预设查重策略用于进行去重复处理;

所述第二确定部分401,还配置为从所述运动信息候选列表中确定当前块的运动信息;根据所述运动信息,确定所述当前块的帧间预测值。

图18为编码器的组成结构示意图二,如图18所示,本申请实施例提出的编码器400还可以包括第二处理器404、存储有第二处理器404可执行指令的第二存储器405、第二通信接口406,和用于连接第二处理器404、第二存储器405以及第二通信接口406的第二总线407。

进一步地,在本申请的实施例中,上述第二处理器404,用于确定当前块的预测模式参数;当所述预测模式参数指示使用预设帧间预测模式确定所述当前块的帧间预测值时,按照预设查重策略构建所述当前块的运动信息候选列表;其中,所述预设查重策略用于进行去重复处理;从所述运动信息候选列表中确定当前块的运动信息;根据所述运动信息,确定所述当前块的帧间预测值。

集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

本申请实施例提供了一种编码器,该编码器确定当前块的预测模式参数;当预测模式参数指示使用预设帧间预测模式确定当前块的帧间预测值时,按照预设查重策略构建当前块的运动信息候选列表;其中,预设查重策略用于进行去重复处理;从运动信息候选列表中确定当前块的运动信息;根据运动信息,确定当前块的帧间预测值。也就是说,本申请提出的帧间预测方法,在进行运动信息候选列表的构建时,可以按照预设查重策略进行更为严谨的去重复处理,解决了运动信息候选列表中出现重复选项的问题,使得查重效果得到明显的提升,从而提高了编解码效率。

本申请实施例提供计算机可读存储介质和计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现如上述实施例所述的方法。

具体来讲,本实施例中的一种帧间预测方法对应的程序指令可以被存储在光盘,硬盘,U盘等存储介质上,当存储介质中的与一种帧间预测方法对应的程序指令被一电子设备读取或被执行时,包括如下步骤:

解析码流,获取当前块的预测模式参数;

当所述预测模式参数指示使用预设帧间预测模式确定所述当前块的帧间预测值时,按照预设查重策略构建所述当前块的运动信息候选列表;其中,所述预设查重策略用于进行去重复处理;

根据所述当前块对应的运动信息索引值从所述运动信息候选列表中确定运动信息;

根据所述运动信息,确定所述当前块的帧间预测值。

具体来讲,本实施例中的一种帧间预测方法对应的程序指令可以被存储在光盘,硬盘,U盘等存储介质上,当存储介质中的与一种帧间预测方法对应的程序指令被一电子设备读取或被执行时,包括如下步骤:

确定当前块的预测模式参数;

当所述预测模式参数指示使用预设帧间预测模式确定所述当前块的帧间预测值时,按照预设查重策略构建所述当前块的运动信息候选列表;其中,所述预设查重策略用于进行去重复处理;

从所述运动信息候选列表中确定当前块的运动信息;

根据所述运动信息,确定所述当前块的帧间预测值。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的实现流程示意图和/或方框图来描述的。应理解可由计算机程序指令实现流程示意图和/或方框图中的每一流程和/或方框、以及实现流程示意图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在实现流程示意图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。

本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。

本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

57页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:帧间预测方法、解码器、编码器及计算机存储介质

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!

技术分类