帧间预测方法、视频编码方法及其相关装置与流程

文档序号:23230968发布日期:2020-12-08 15:19阅读:136来源:国知局
帧间预测方法、视频编码方法及其相关装置与流程

本申请涉及视频编码解码技术领域,特别是涉及帧间预测方法、视频编码方法及其相关装置。



背景技术:

由于视频图像数据量比较大,通常需要对其进行编码压缩,压缩后的数据称之为视频码流,视频码流通过有线或者无线网络传输至用户端,再进行解码观看。

整个视频编码流程包括预测、变换、量化、编码等过程。其中预测分为帧内预测和帧间预测两部分。帧间预测用的是图像帧间的时域相关性来对图像进行压缩。本申请的发明人在长期的研发过程中,发现目前帧间预测方法还存在一定的局限性,也在一定程度上影响了帧间预测的准确度。



技术实现要素:

本申请主要解决的技术问题是提供一种帧间预测方法、视频编码方法及其相关装置,可选取预测准确度更好的预测模式,进而提高帧间预测的准确性。

为解决上述技术问题,本申请采用的一个技术方案是:提供一种帧间预测方法,所述方法包括:

确定当前块在各个原始预测模式下的权重阵列;

将所述当前块划分多个第一子块,并基于至少两个所述第一子块的时域运动信息构建所述当前块的单向运动信息候选列表;

基于权重阵列计算编码代价,自所述单向运动信息候选列表中选取代价最小的多组运动信息作为多组第一候选运动信息;

基于多组所述第一候选运动信息,在所述原始预测模式中选取最终预测模式。

为解决上述技术问题,本申请采用的另一个技术方案是:提供一种视频编码方法,所述方法包括:

基于如上所述的帧间预测方法确定当前块的最终预测模式;

基于所述最终预测模式确定所述当前块的最终预测值,并基于所述最终预测值对所述当前块进行编码。

为解决上述技术问题,本申请采用的又一个技术方案是:提供一种视频编码系统,视频编码系统包括存储器和处理器;所述存储器中存储有计算机程序,所述处理器用于执行所述计算机程序以实现如上所述方法的步骤。

为解决上述技术问题,本申请采用的又一个技术方案是:提供一种可读存储介质,所述可读存储介质存储有能够被处理器运行的计算机程序,所述计算机程序用于实现如上所述的方法。

本申请的有益效果是:区别于现有技术的情况,本申请所提供的技术方案,通过确定当前块在各个原始预测模式下的权重阵列,并将当前块划分多个第一子块,并基于至少两个第一子块的时域运动信息构建当前块的单向运动信息候选列表,再基于权重阵列计算编码代价,自单向运动信息候选列表中选取编码代价最小的多组运动信息作为多组第一候选运动信息,基于多组第一候选运动信息,在原始预测模式中选取最终预测模式,相比于现有技术,本申请通过基于在当前块划分得到的多个第一子块中至少两个的时域运动信息,实现构建能更为准确反应当前块运动状态的单向运动信息候选列表,基于一个更为准确的单向运动信息候选列表可实现选取准确度更好的预测模式,进而提高了帧间预测的准确度。

附图说明

图1为本申请一种帧间预测方法一实施例中权重阵列示意图;

图2为本申请一种帧间预测方法一实施例中awp所支持角度示意图;

图3为本申请一种帧间预测方法另一实施例中awp所支持角度分区示意图;

图4为本申请一种帧间预测方法中参考权重配置示意图;

图5为本申请一种帧间预测方法一实施例中的流程示意图;

图6为本申请一种帧间预测方法一实施例中同位块的示意图;

图7为本申请一种帧间预测方法另一实施例中的当前块的划分示意图;

图8为本申请一种帧间预测方法另一实施例中的流程示意图;

图9为本申请一种帧间预测方法一实施例中相邻预测块的示意图;

图10为本申请一种帧间预测方法一实施例的流程示意图;

图11为本申请一种帧间预测方法又一实施例中的流程示意图;

图12为本申请一种帧间预测方法一实施例中的流程示意图;

图13为本申请中awp的当前块的分割示意图;

图14为本申请一种视频编码方法一实施例中的流程示意图;

图15为本申请一种视频编码系统一实施例中的结构示意图;

图16为本申请一种可读存储介质一实施例结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅用于解释本申请,而非对本申请的限定。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

在视频传输领域中,由于视频图像的数据量比较大,视频编码的主要作用是将视频像素数据压缩成为视频码流,从而降低视频的数据量,实现降低传输视频的过程中的网络带宽,同时还可以减少存储空间。其中,视频像素数据至少包括rgb数据和yuv数据。

视频编码的流程主要包括视频采集、预测、变换量化和熵编码几大部分。其中,预测包括帧内预测和帧间预测两部分,分别是为了去除视频图像在空间和时间上的冗余。

由于时间上相邻帧像素点的亮度和色度信号值比较接近,具有强相关性,而帧间预测正是基于相关性通过运动搜索等方法在参考帧中寻找与当前块最为接近的匹配块,并记录当前块与匹配块间的运动信息。其中,运动信息包括运动矢量mv(motionvector)和参考帧索引,在其他实施例中运动信息还可以包括其他类型的信息,在此不做限定。获得运动信息之后,对运动信息进行编码并传输到解码端。在解码端,解码器只要通过相应句法元素解析出当前块的mv,就可找到当前块在参考帧中的匹配块,并将匹配块的像素值拷贝到当前块,即为当前块的帧间预测值。

在现有的编码技术的应用领域中,帧间角度加权预测技术主要应用在avs3中,得到预测后的帧间像素值。帧间角度加权预测模式(awp:angleweightedprediction)是merge模式下的一种新的预测方式,支持的编码块尺寸范围是8x8到64x64。该预测模式通过借助帧内角度预测思想:先设置当前块周边位置(周边位置包括整像素位置以及亚像素位置)的参考权重值,而后利用角度得到每个像素位置对应的权重值,通过最终得到的权重阵列实现两个不同的图像帧间预测值的加权,两个权重阵列分别记为weight0和weight1。

请同时参见图1和图2,图1为本申请一种帧间预测方法一实施例中权重阵列示意图,图2为本申请一种帧间预测方法一实施例中awp所支持角度示意图。当前awp支持图2所示意的8种角度,每个角度支持7种参考权重配置,遍历角度和参考权重可配置56种预测模式,且在每一类块尺寸下awp均可以存在56种预测模式。在其他实施例中,所支持的预测角度可以根据实际的需要进行设定,对应的,当更改所支持的角度之后,利用角度和权重可配置的预测模式的总数也会随之改变,具体在此不做限定。

如图2所示意的,当如上所述,awp可支持8种角度,对应的所支持的预测角度的斜率绝对值可包括水平、垂直、1、2和1/2的五种。

可以理解的是,在其他实施例中,可根据图像的纹理或者是图像块的纹理对应减少预测角度的数量,如在一实施例中角度维度为6个,且不包括当前块对角方向角度,即将图2所示意的对角方向的角度0和角度4去掉。而将去掉角度0和角度4时,此时所支持的预测角度所对应的斜率绝对值为水平、垂直、2和1/2的四种。在其他实施例中,还可以根据实际的需求去掉其他不影响图像构建的预测角度,如去掉一些远离水平或垂直方向的角度,或者根据实际需要增加所支持的角度,具体在此不一一列举。在当前实施例中,通过减少一些不影响预测准确度的角度,可以在保证基本性能不变的前提下,减少帧间预测计算的复杂度,进而可提高帧间预测的响应速度。

进一步地,请参见图3,图3为本申请一种帧间预测方法另一实施例中awp所支持角度分区示意图。在当前实施例中,可将所支持的角度分为4个分区,如图3所示意的,根据角度所在区域不同,分为4个角度分区:角度分区0、角度分区1、角度分区2和角度分区3,其中,角度分区0包括角度0和角度1,角度分区1包括角度2和角度3,角度分区2包括角度4和角度5,角度分区3包括角度6和角度7。

更进一步地,当根据实际的需求减少所支持的角度,可保持对于角度分区不变,即依然如图3所示意的将左下对角线的角度分为一个分区,将靠近水平方向的角度分为一个分区,将靠近左上对角线的角度分为一个分区,将靠近垂直方向的角度分为一个分区。可以理解的是,当改变角度数量后,也可以按照新的分区方式进行分区,具体在此不一一阐述。

再进一步地,在其他实施例中,还可以以均匀或非均匀的方式对所支持的角度种类进行减少。然后在减少角度之后,将剩余角度以原方式进行分区划分得到角度分区,也可以采取新的方式划分得到不同的角度分区。

在减少角度之后,也可以对应减少后续运动补偿中对运动信息进行umve偏移的预测模式数量,如可以由原来的对42种预测模式进行umve偏移减少为对35种或28种预测模式进行umve偏移,进而在保证预测准确度的前提下提高了帧间预测的响应速度。

对应的,在减少角度之后,还可以根据实际的需要自适应修改角度模式排序。如:可以结合当前编码块的宽高比对角度模式进行排序。对应的,本申请所提供的帧间预测方法包括:结合当前块的宽高比,对当前块的角度模式进行排序。

如:对于宽高比为8:1或者4:1的编码块,先对水平方向及其附近的角度模式进行排序,再对垂直方向及其附近的角度模式进行排序;对于宽高比为1:8或者1:4的编码块,先对垂直方向及其附近的角度模式进行排序,再对水平方向及其附近的角度模式进行排序;对于宽高比为1:2或者2:1的编码块,先对垂直方向及其附近的角度模式进行排序,再对水平方向及其附近的角度模式进行排序。可以理解的是,在其他实施例中,当编码块的宽高比不同时,还可以依据其他顺序自适应调整对于角度模式的排列顺序。当前实施例中,与现有技术相比,通过针对不同宽高比的编码块采用不同的排序方式进行角度模式排序,可以减少传输预测模式所带来的比特开销,进一步提高了帧间预测时的响应速度。

awp支持的参考权重配置可包括如图4所示的7种参考权重配置,图4示意的是本申请一种帧间预测方法中参考权重配置示意图。参考权重配置可以是根据参考权重索引值得到的参考权重值的分布函数,如图4所示,以参考权重有效长度的8等分点位置(图4中的黑色箭头所指处)为基准点进行非严格单调递增函数赋值,其中参考权重有效长度由预测角度以及当前块尺寸计算得到。

遍历8种角度和7种参考权重配置,可以配置得到awp的56种原始预测模式。

请参见图5,图5为本申请一种帧间预测方法一实施例中的流程示意图。

s510:确定当前块在各个原始预测模式下的权重阵列。

在执行步骤s510之前,首先遍历当前所支持的角度和参考权重配置确定所有原始预测模式,然后确定当前块在所有原始预测模式下的权重阵列。其中,在本申请所提供的技术方案中,将基于角度和参考权重配置确定的所有预测模式定义为原始预测模式,将选定的用于进行帧间预测的预测模式定义为最终预测模式,将在选取最终预测模式过程中在所有原始预测模式中所选取的部分预测模式定义为候选预测模式。

进一步地,可以基于各个原始预测模式分别逐像素导出,进而得到当前块在各个原始预测模式下的权重阵列。其中,逐像素导出的流程如下:

以上图所示意的将角度分为4个分区为例,由于角度所在区域不同,亮度逐像素权重导出的公式稍有差异。可以基于当前亮度块的预测模式中角度所在区域对应的逐像素权重导出的公式,逐像素导出权重,以得到当前亮度块的权重阵列。设当前亮度块的块尺寸为mxn,其中m为宽,n为高,x为log2(权重预测角度斜率绝对值),y为权重预测位置。

i)位于角度分区0的角度0以及角度1对应的亮度块逐像素权重导出的公式如下[1]-[3]所示:

[1]计算参考权重有效长度validlength

validlength=(n+(m>>x))<<1

[2]设置参考权重值referenceweights[x],其中x∈[0,validlength-1]

firstpos=(validlength>>1)-6+y*((validlength-1)>>3)

referenceweights[x]=clip3(0,8,x-firstpos)

[3]逐像素导出权重sampleweight[x][y]

sampleweight[x][y]=referenceweights[(y<<1)+((x<<1)>>x)]

ii)位于角度分区1的角度2以及角度3对应的亮度块逐像素权重导出的公式如下所示:

[1]计算参考权重有效长度validlength

validlength=(n+(m>>x))<<1

[2]设置参考权重值referenceweights[x],其中x∈[0,validlength-1]

firstpos=(validlength>>1)-4+y*((validlength-1)>>3)–((m<<1)>>x)

referenceweights[x]=clip3(0,8,x-firstpos)

[3]逐像素导出权重sampleweight[x][y]

sampleweight[x][y]=referenceweights[(y<<1)-((x<<1)>>x)]

iii)位于角度分区2的角度4以及角度5对应的亮度块逐像素权重导出的公式如下所示:

[1]计算参考权重有效长度validlength

validlength=(m+(n>>x))<<1

[2]设置参考权重值referenceweights[x],其中x∈[0,validlength-1]

firstpos=(validlength>>1)-4+y*((validlength-1)>>3)–((n<<1)>>x)

referenceweights[x]=clip3(0,8,x-firstpos)

[3]逐像素导出权重sampleweight[x][y]

sampleweight[x][y]=referenceweights[(x<<1)-((y<<1)>>x)]

iv)位于角度分区3的角度6以及角度7对应的亮度块逐像素权重导出的公式如下所示:

[1]计算参考权重有效长度validlength

validlength=(m+(n>>x))<<1

[2]设置参考权重值referenceweights[x],其中x∈[0,validlength-1]

firstpos=(validlength>>1)-6+y*((validlength-1)>>3)

referenceweights[x]=clip3(0,8,x-firstpos)

[3]逐像素导出权重sampleweight[x][y]

sampleweight[x][y]=referenceweights[(x<<1)+((y<<1)>>x)]

对于色度块逐像素权重导出的过程如下:同样以图3所示意的,对于当前色度块而言,可以直接取用对应的亮度块的权重阵列的左上角位置的权重,记当前块的块尺寸为mxn,其中m为宽,n为高,则当前色度块的x的取值范围是0~(m/2-1);当前色度块的y的取值范围是0~(n/2-1)。

色度块逐像素权重导出的公式为:sampleweightchroma[x][y]=sampleweight[x>>1][y>>1]。

s520:将当前块划分多个第一子块,并基于至少两个第一子块的时域运动信息构建当前块的单向运动信息候选列表。

将当前块划分为多个第一子块,然后基于划分所得的至少两个第一子块的时域运动信息构建当前块的单向运动信息候选列表。

进一步地,在一实施例中,是对当前块进行十字平均分割获得四个第一子块,然后基于至少两个第一子块的时域运动信息构建当前块的单向运动信息候选列表。其中,预先设定单向运动信息候选列表中可容纳的运动信息的数量,即预先设定单向运动信息候选列表的长度,如可以设定单向运动信息候选列表的长度为5,或者是设定为4或者8,在此不做限定。

在将当前块划分为多个第一子块之后,进一步获取各个第一子块对应的时域运动信息,进而以所得的第一子块和第一子块对应的时域运动信息进行运动补偿和后续的代价计算。

对应的,在一实施例中,当将当前块十字平均分割为4个第一子块时,则以第一子块为单元,然后获取每个第一子块各自的时域运动信息,并以第一子块为单元进行预测。其中,获取第一子块的时域运动信息的方式如下:

首先,确定当前第一子块对应时域同位块的空域位置。

设bx,by为当前第一子块以scu(smallcodingunit)为单元的在整帧中的位置坐标,利用一个mask来确定同位块的空域位置。其中,mask=(-1)^3。“^”代表按位异或,将-1和3按位异或后,mask的最后两位为0。其中,scu为4*4大小的cu(codingunit)。

然后,设同位块空域位置的坐标(以第一子块为单元)为(xpos,ypos):

xpos=(bx&mask)+2;

ypos=(by&mask)+2;

其中,xpos可能取到的范围为:bx-1,bx,bx+1,bx+2;ypos可能取到的范围为:by-1,by,by+1,by+2。同一个坐标位置的当前第一子块只会对应一个时域同位块,不同坐标的当前块所对应的时域同位块范围如图6所示意。

请参见图6,图6为本申请一种帧间预测方法一实施例中同位块的示意图。图6中所有小圆点的位置就是第一子块cur所有可能的同位块的坐标,每个小方块代表一个scu。按照上述获取运动信息的方式,对这4个第一子块进行遍历,以当前块四个角落的scu为基准,利用上述mask和第一子块的坐标去获取每个第一子块对应的时域块位置,并获取对应的4个时域mv。然后对于每个第一子块,看当前第一子块包含哪个角落的scu,就把该角落的scu对应的时域mv作为该第一子块的时域mv。

请参见图7,图7为本申请一种帧间预测方法另一实施例中的当前块的划分示意图。

如图7所示意的,把scu1对应的时域mv作为第一子块1的时域mv,scu2对应的时域mv作为第一子块2的时域mv,scu3对应的时域mv作为第一子块3的时域mv,scu4对应的时域mv作为第一子块4的时域mv。若有一个角落没法获取到有效的时域mv,则该角落对应的第一子块mv就直接拿当前块的tmvp(时域运动信息)作为该第一子块的时域mv。最后,对候选列表中的mvp进行遍历,遍历到原先的tmvp时,则对4个第一子块分别进行运动补偿。

需要说明的是,在此并不限定步骤s510和步骤s520的执行顺序,步骤s510和步骤s520可以是同时执行,也可以是先执行步骤s510再执行步骤s520,又或者是先执行步骤s520再执行步骤s510。

s530:基于权重阵列计算编码代价,自单向运动信息候选列表中选取代价最小的多组运动信息作为多组第一候选运动信息。

在确定当前块在各个原始预测模式下的权重阵列,并构建得到当前块的单向运动信息候选列表后,进一步基于权重阵列计算求得单向运动信息候选列表中的各个运动信息在各个原始预测模式下对应的编码代价,然后对所得的各个原始预测模式下的编码代价排序结果,自单向运动信息候选列表中选取编码代价最小的多组运动信息作为每个原始预测模式的多组第一候选运动信息。其中,第一候选运动信息为自单向运动信息候选列表中选取的用于选取最终预测模式的运动信息。

进一步地,在一实施例中,步骤s530是基于编码代价自单向运动信息候选列表中选取代价最小的两组运动信息作为每个原始预测模式的第一候选运动信息。

进一步地,原始预测模式数量为多个,单向运动信息候选列表中包括多个运动信息时,则步骤s530中是分别基于各个原始预测模式所对应的权重阵列计算各个运动信息在各个原始预测模式下的编码代价,然后对各个运动信息在每个原始预测模式下所对应的编码代价进行排序,并选择每个预测模式中编码代价最小的多组运动信息作为多组第一候选信息。如一实施例中,单向运动信息候选列表中包括5组运动信息v、w、x、y和z,且一共存在56种原始预测模式,并依次对原始预测模式进行编号为1至56,则会分别求取在每个原始预测模式下5组运动信息对应的编码代价,然后对所得的编码代价进行排序求得最小的多组运动信息作为多组第一候选运动信息,如运动信息v、w、x、y和z在原始预测模式下的编码代价排序,选取编码代价最小的两组运动信息作为第一候选运动信息。

更进一步地,在一实施例中,原始预测模式数量为56种,单向运动信息候选列表中包括5组运动信息时,则可设定步骤s530在每个原始预测模式下2组编码代价最小的运动信息作为第一候选运动信息。

s540:基于多组第一候选运动信息,在原始预测模式中选取最终预测模式。

在确定了多组第一候选运动信息后,分别对多组第一候选运动信息进行运动补偿得到第一候选运动信息在各个预测模式下的第一预测值。然后基于所得的第一预测值求取第一候选运动信息在各个原始预测模式下所对应的编码代价,并将最小编码代价所对应的原始预测模式选取为最终预测模式。在确定了最终预测模式之后,可进一步基于权重阵列和最终预测模式确定当前块的最终预测值,用于编码和后续的解码。

本申请图5所提供的技术方案,通过确定当前块在各个原始预测模式下的权重阵列,并将当前块划分多个第一子块,并基于至少两个第一子块的时域运动信息构建当前块的单向运动信息候选列表,再基于权重阵列计算编码代价,自单向运动信息候选列表中选取编码代价最小的多组运动信息作为多组第一候选运动信息,基于多组第一候选运动信息,在原始预测模式中选取最终预测模式,相比于现有技术,本申请通过基于在当前块划分得到的多个第一子块中至少两个的时域运动信息,实现构建能更为准确反应当前块运动状态的单向运动信息候选列表,基于一个更为准确的单向运动信息候选列表可实现选取准确度更好的预测模式,进而提高了帧间预测的准确度。

请参见图8,图8为本申请一种帧间预测方法另一实施例中的流程示意图。在当前实施例中,本申请所提供的帧间预测方法包括:

s81:确定当前块在各个原始预测模式下的权重阵列。

步骤s81与上述步骤s510相同,具体请参见上文对应部分的阐述,在此不再赘述。

当前实施例中,上述步骤s520将当前块划分多个第一子块,并基于至少两个第一子块的时域运动信息构建当前块的单向运动信息候选列表之前,本申请所提供的方法还包括步骤s82至步骤s84。

s82:判断是否存在与当前块对应的目标相邻预测块。

在构建单向运动信息候选列表时,首先构建候选运动信息列表,其中,候选运动信息列表与单向运动信息候选列表容纳相同数量的运动信息。其中,构建候选运动信息列表过程如下:首先取出当前块可用相邻预测块,然后利用空域相邻块的运动信息导出单向运动信息,将单向运动信息填入候选运动信息列表。预先为候选运动信息列表设定与单向运动信息候选列表相同的长度,故在候选运动信息列表中的运动信息小于设定的数量时,进一步将划分所得的子块的时域运动信息加入至候选运动信息列表。

其中,目标相邻预测块为采用帧间预测模式的相邻预测块。步骤s82判断是否存在与当前块对应的、且采用帧间预测模式的相邻预测块,并在判断结果为是时执行下述步骤s83。反之,若判断得到不存在与当前块对应的相邻预测块,和/或判断得到所有的相邻预测块均不是采用帧间预测模式的相邻预测块时,则判断得到不存在与当前块对应的目标相邻预测块,则会直接执行下述步骤s85及之后的步骤,以将至少一个第一子块的时域运动信息填入候选运动信息列表,直至候选运动信息列表的运动信息数量达到预设数量,进而完成对当前块的候选运动信息列表的构建。

s83:若经过判断得到存在与当前块对应的目标相邻预测块,获取当前块的所有目标相邻预测块,并对目标相邻预测块的运动信息进行查重,以确定可用相邻预测块。

若经过判断得到存在与当前块对应的目标相邻预测块,则取出当前块对应的所有目标相邻预测块。然后对所有的目标相邻预测块的运动信息进行查重,以确定目标相邻预测块是否为可用相邻预测块。其中,可用相邻预测块为运动信息与候选运动信息列表中的运动信息均不相同的目标相邻预测块。

进一步地,在一实施例中,步骤对目标相邻预测块的运动信息进行查重,以确定可用相邻预测块进一步包括:利用全查重方式对目标相邻预测块的运动信息进行查重,以确定可用相邻预测块。其中,全查重是在对每一个目标相邻预测块进行查重时,会将该目标相邻预测块的运动信息与在前填入候选运动信息列表中的每个运动信息进行比对判断,以规避将与在前填入当前块对应的候选运动信息列表中的运动信息相同的运动信息填入。

s84:将可用相邻预测块的运动信息加入候选运动信息列表。

当经过上述判断和查重确定了可用相邻预测块之后,将可用相邻预测块的运动信息加入候选运动信息列表。具体地,按照判断顺序将可用相邻预测块的运动信息依次填入至候选运动信息列表,直至候选运动信息列表达到设定长度,或将所有可用相邻预测块的运动信息全部加入候选运动信息列表。

进一步地,请参见图9,图9为本申请一种帧间预测方法一实施例中相邻预测块的示意图。如图9所示意的,每个当前块可对应多个相邻预测块。

在一实施例中,当每个当前块对应多个相邻预测块时,首先按照设定的顺序取出当前块的相邻预测块,然后判断其是否为采用帧间预测模式的相邻预测块,若是,则判断其为目标相邻预测块。然后再判断当前目标相邻预测块的运动信息与在先填入候选运动信息列表的运动信息是否相同,若否,则判断当前目标相邻预测块为可用相邻预测块,反之,则进一步判断下一个相邻预测块是否为可用相邻预测块,依次循环直至将当前块所对应的所有相邻预测块判断完毕。

在另一实施例中,当每个当前块对应多个相邻预测块时,首先按照设定的顺序取出当前块的所有相邻预测块,然后分别判断所有相邻预测块是否为采用帧间预测模式的相邻预测块,并将采用帧间预测模式的相邻预测块取出作为目标相邻预测块,然后按照设定的顺序判断目标相邻预测块是否为可用相邻预测块,并在判断得到目标相邻预测块为可用相邻预测块时,进一步将可用相邻预测块填入至候选运动信息列表。需要说明的是,在后进行判断的目标相邻预测块,需要与所有在前填入候选运动信息列表的运动信息进行比对,以判断当前目标相邻预测块的运动信息与在先写入候选运动信息列表的运动信息是否相同,以避免在候选运动信息列表中填入相同的运动信息。

如图9所示意的,当前块的相邻预测块包括f、g、c、a、和d(跳过b)。在一实施例中,判断确定f、g、c、a、和d是否为可用相邻预测块的流程如下:

首先,确定f、g、c、a、和d是否为具备可用性的目标相邻预测块,流程如下:

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

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

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

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

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

其次,对可用的各个目标相邻预测块进行运动信息的查重,并将通过查重的可用相邻预测块的运动信息填入候选运动信息列表中。查重过程如下:

(1)首先判断f的可用性,如果f可用,则候选运动信息列表中填入f,否则,f不可用,进入下一步(2);

(2)判断g的可用性:若g不可用,则设置g不可用,进入下一步(3),否则若g可用,进一步判断f是否可用,若不可用,则g设为可用,可加入候选运动信息列表;

否则,f可用时,需要比较f和g的mv是否重复,若不重复则g设为可用,否则,g不可用;

(3)判断c的可用性:若c不可用,则设置c不可用,进入下一步(4),否则若c可用,则进一步判断g是否可用,若不可用,则c设为可用,可加入候选运动信息列表;

若g可用,需要比较c和g的mv是否重复,若不重复则c设为可用,否则,c不可用;

(4)判断a的可用性:若a不可用,则设置a不可用,进入下一步(5),否则若a可用,则进一步判断f是否可用,若不可用,则a设为可用,可加入候选运动信息列表;

若f可用,需要比较a和f的mv是否重复,若不重复则a设为可用,否则,a不可用;

(5)判断d的可用性:若d不可用,则设置d不可用,完成可用性判断,否则若d可用,则进一步判断a是否可用,若a不可用,则初始化a的mv为不可用;否则,获取其mv,判断d与a的mv是否重复;

再判断g是否可用,若不可用,则初始化g的mv为不可用;否则,获取其mv,判断d与g的mv是否重复,具体地根据下述条件一和条件二判断d与g的mv是否重复;

条件一:若a不可用或可用时,d与a的mv不重复;

条件二:若g不可用或可用时,d与g的mv不重复;

若以上两个条件同时成立,则d最终可用,否则d不可用。

在另一实施例中,判断确定f、g、c、a、和d的是否为可用相邻预测块的流程如下:

(1)判断f的可用性,如果f可用,则候选运动信息列表中填入f,否则若f不可用,进入下一步(2)。

(2)判断g的可用性:若g不可用,则设置g不可用,进入下一步(3),否则若g可用,进一步判断f是否可用,若不可用,则g设为可用,可加入候选运动信息列表;

否则,f可用时,需要比较f和g的mv是否重复,若不重复则g设为可用,否则,g不可用。

(3)判断c的可用性:若c不可用,则设置c不可用,进入下一步(4),否则若c可用,则进一步g是否可用,若可用再判断c的mv与g的mv是否重复;

判断f是否可用,若可用再判断c与f是否重复;

条件一:若g不可用或可用时c与g的mv不重复;

条件二:若f不可用或可用时c与f的mv不重复;

若以上两个条件同时成立,则c最终可用,否则c不可用。

(4)判断a的可用性,a不可用,进入下一步(5),否则若a可用,分别检查a的mv与f/g/c的mv是否重复,只有在a与f/g/c的mv不相同时,a才可用。

(5)判断d的可用性,d不可用,则判断结束,反之,进一步分别检查d的mv与f/g/c/a的mv是否重复,只有在d与f/g/c/a的mv不相同时,d才可用。

进一步地,在一实施例中,由于现有方式进行查重时采用的是参考帧索引和运动矢量是否相同,即使参考帧索引不同,poc也有可能相同,也就会造成运动信息重复。而为了规避上述问题,本申请所提供的技术方案进一步采用图像序号查重方式(poc查重方式)对目标相邻预测块的运动信息进行查重,进而替换原有的参考帧索引查重方式,利用poc查重可以较好地提高查重的准确度,进而更好地避免在候选运动信息列表中填入相同的运动信息,进而实现确定更为准确的候选运动信息列表,然后基于准确的候选运动信息列表确定更为准确的单向运动信息候选列表,从而提高了帧间预测的准确度。其中,图像序号查重方式的流程详见下图10所对应的实施例。

在将可用相邻预测块的运动信息加入候选运动信息列表之后,若候选运动信息列表中的运动信息数量达到预设数量后,则不会再执行下述步骤s85,跳过步骤s85直接执行步骤s86至s87。若候选运动信息列表中的运动信息数量尚未达到预设数量后,还会进一步执行下述步骤s85,以使得候选运动信息列表的长度达到预设长度。

上述步骤s520中的基于至少两个第一子块的时域运动信息构建当前块的单向运动信息候选列表,进一步包括步骤s85和步骤s86。

s85:按照第一子块的预设位置顺序,依序将不同第一子块的时域运动信息加入至候选运动信息列表中,直至候选运动信息列表的运动信息数量达到预设数量。

若候选运动信息列表中的运动信息数量尚未达到预设数量后,则会按照第一子块的预设位置顺序,依照位置顺序将不同第一子块的时域运动信息加入至候选运动信息列表中。

在将不同第一子块的时域运动信息加入至候选运动信息列表中之前,还会进一步对加入至候选运动信息列表的第一子块的时域运动信息进行查重,以避免在候选运动信息列表中填入相同的运动信息。其中,查重包括:判断第一子块的时域运动信息与候选运动信息列表中的运动信息是否相同,若相同,在判断当前第一子块的运动信息重复,则不会将当前第一子块的时域运动信息填入候选运动信息列表,并判断下一个第一子块的时域运动信息是否重复;反之,若判断第一子块的时域运动信息与候选运动信息列表中的运动信息不相同,则判断第一子块的运动信息不重复可写入候选运动信息列表。

在一实施例中,在将第一子块的时域运动信息加入至候选运动信息列表之前,本申请所提供的方法还包括:

判断候选运动信息列表中是否存在与当前第一子块的时域运动信息相同的运动信息;若判断候选运动信息列表中不存在与当前第一子块的时域运动信息相同的运动信息,则将第一子块的时域运动信息加入至候选运动信息列表中;若判断候选运动信息列表存在与当前第一子块的时域运动信息相同的运动信息,则不将第一子块的时域运动信息加入至候选运动信息列表中,并继续判断下一个第一字块,直至候选运动信息列表中的运动信息数量达到预设数量,和/或遍历完所有的第一子块。其中,可以通过比对两个运动信息所对应的poc来判断两个运动信息是否相同。

在执行步骤s85之前包括:将当前块划分多个第一子块。

进一步地,上述步骤s85中的按照第一子块的预设位置顺序,依序将不同第一子块的时域运动信息加入至候选运动信息列表中,包括:在所有第一子块的时域运动信息均加入至候选运动信息列表中后,若候选运动信息列表的运动信息数量仍然小于预设数量,则基于候选运动信息列表中的运动信息生成至少一个新的运动信息,以使候选运动信息列表的运动信息数量达到预设数量。

在一实施例中,基于候选运动信息列表中的运动信息生成至少一个新的运动信息,包括:选取候选运动信息列表中的首个运动信息,并对所选取的运动信息进行不同的缩放,再将缩放后的运动信息加入至候选运动信息列表,直至候选运动信息列表的运动信息数量达到预设数量。

在另一实施例中,基于候选运动信息列表中的运动信息生成至少一个新的运动信息,包括:从候选运动信息列表中的首个运动信息开始,依序对运动信息进行缩放,并将缩放后的运动信息加入至候选运动信息列表,直至候选运动信息列表的运动信息数量达到预设数量。

进一步地,当前块包括田字排布的四个第一子块,第一子块的预设位置顺序依序为左上角、右上角、左下角和右下角。可以理解的是,在其他实施例中,第一子块的预设位置顺序还可以把控其他类型的顺序,在此不一一列举。

进一步地,在一实施例中,在按照第一子块的预设位置顺序,依序将不同第一子块的时域运动信息加入至候选运动信息列表中后,本申请所提供的方法还包括:基于候选运动信息列表中的运动信息构建单向运动信息候选列表。

进一步地,步骤基于候选运动信息列表中的运动信息构建单向运动信息候选列表包括步骤s86所述的内容。

s86:从候选运动信息列表中的运动信息中选取前向运动信息或后向运动信息,对应填入单向运动信息候选列表相同位置。

其中,运动信息包括前向运动信息和/或后向运动信息。

具体地,按列表的奇偶性选取候选运动信息列表中候选运动信息的前向运动信息或者后向运动信息放入列表中,进而构建得到单向运动信息候选列表。即在候选列表第1、3、5位置只取前向运动信息填入列表中,若前向运动信息不存在,则填入后向运动信息;而其余位置只取后向运动信息填入列表中,同理,若后向运动信息不存在,则取前向运动信息填入列表中。

s87:基于权重阵列计算编码代价,自单向运动信息候选列表中选取代价最小的多组运动信息作为多组第一候选运动信息;

s88:基于多组第一候选运动信息,在原始预测模式中选取最终预测模式。

当前实施例中的步骤s87和步骤s88与上述步骤s530和步骤s540相同,具体可以参见上文对应部分的阐述,在此不赘述。

请参见图10,图10为本申请一种帧间预测方法一实施例的流程示意图。

在当前实施例中,上述利用全查重方式对所述目标相邻预测块的运动信息进行查重,进一步包括:

s101:获取目标相邻预测块中运动信息所对应的参考帧图像序号。

其中,每个运动信息对应一个参考帧图像序号,图像序号用于标识图像在图像序列中的顺序,图像序号在本申请所提供的技术方案中具备唯一性的,一个图像序号只对应一帧图像。

同理,在步骤s102之前还会获取候选运动信息列表中每个运动信息对应的图像序号。

s102:判断当前目标相邻预测块所对应的参考帧图像序号与候选运动信息列表中的任意一个运动信息所对应的参考帧图像序号是否相同,并判断当前目标相邻预测块对应的运动矢量和候选运动信息列表中的任意一个运动信息所对应的运动矢量是否相同。

在获取目标相邻预测块中运动信息所对应的参考帧图像序号,以及单向运动信息候选列表中每个运动信息对应的图像序号之后,进一步判断当前目标相邻预测块所对应的参考帧图像序号与单向运动信息候选列表中的任意一个运动信息所对应的参考帧图像序号是否相同。

s103:若判断当前目标相邻预测块所对应的参考帧图像序号与候选运动信息列表中的任意一个运动信息所对应的参考帧图像序号相同,且当前目标相邻预测块所对应的运动矢量和候选运动信息列表中的任意一个运动信息所对应的运动矢量相同,则判断目标相邻预测块为不可用相邻预测块。

若上述步骤s102判断当前目标相邻预测块所对应的参考帧图像序号与候选运动信息列表中的任意一个运动信息所对应的参考帧图像序号相同,且判断当前目标相邻预测块所对应的运动矢量和候选运动信息列表中的任意一个运动信息所对应的运动矢量相同,故判断当前目标相邻预测块为不可用相邻预测块;若当前目标相邻预测块所对应的参考帧图像序号与候选运动信息列表中的所有运动信息所对应的参考帧图像序号均不相同,和/或判断得到当前目标相邻预测块所对应的运动矢量和候选运动信息列表中的所有运动信息所对应的运动矢量均不相同,则判断当前目标相邻预测块为可用相邻预测块。当前实施例中,通过结合图像序号查重方式,可以更为准确的判断当前目标相邻预测块的运动信息与候选运动信息列表中的运动信息是否重复,获得更为准确的候选运动信息列表,进而实现构建一个更为准确反应当前块运动状态的单向运动信息候选列表。

进一步地,参考帧列表包括第一方向列表和第二方向列表。在其他实施例中,第一方向为前向,第二方向为后向。

在一实施例中,上述步骤利用全查重方式对目标相邻预测块的运动信息进行查重,还包括:若判断当前目标相邻预测块在第一方向的参考帧不可用,候选运动信息列表中的候选运动信息在第二方向的参考帧不可用,则进一步判断当前目标相邻预测块在第二方向上的运动信息与候选运动信息列表中的当前候选运动信息在第一方向的运动信息是否相同。

若当前目标相邻预测块的运动信息所对应的参考帧图像序号与当前候选运动信息所对应的参考帧图像序号相同且运动矢量对应相同,则目标相邻预测块的运动信息与当前候选运动信息重复,反之,判断目标相邻预测块的运动信息与当前候选运动信息不重复,并继续判断目标相邻预测块的运动信息与下一候选运动信息是否重复。若经过判断得到目标相邻预测块的运动信息与候选运动信息列表中的所有候选运动信息均不重复,则判断当前目标相邻预测块为可用相邻预测块,反之,若判断得到目标相邻预测块的运动信息与候选运动信息列表中任意一个候选运动信息重复,则当前目标相邻预测块为不可用相邻预测。在当前实施例中,将候选运动信息中所包括的运动信息定义为候选运动信息。

如:若采用poc查重方式进行查重,且参考帧列表包括第一方向列表和第二方向列表(分别用l0和l1表示第一方向列表和第二方向列表)时,当判断得到相邻预测块a在l0方向参考帧不可用,候选运动信息列表中的运动信息b(或相邻预测块b)在l1方向参考帧不可用,需要判断a在l1方向与b在l0方向运动信息是否相同,若poc相同,且mv在x和y方向的值相同,则a和b的运动信息重复,则在a和b中只取其一。

在另一实施例中,上述步骤利用全查重方式对目标相邻预测块的运动信息进行查重,还包括:若判断当前目标相邻预测块在第一方向和第二方向的参考帧均可用,且候选运动信息列表中的候选运动信息在第一方向和第二方向的参考帧可用,则进一步判断目标相邻预测块在第一方向的运动信息与当前候选运动信息在第二方向的运动信息是否相同,及判断目标相邻预测块在第二方向的运动信息与当前候选运动信息在第一方向的运动信息是否相同。

若判断得到目标相邻预测块在第一方向的运动信息与候选运动信息列表中的一个候选运动信息在第二方向的运动信息相同,且目标相邻预测块在第二方向的运动信息与候选运动信息列表中的一个候选运动信息在第一方向的运动信息相同,则判断目标相邻预测块的运动信息与当前候选运动信息重复,反之,则判断目标相邻预测块的运动信息与当前候选运动信息不重复,并继续判断目标相邻预测块的运动信息与下一候选运动信息是否重复。若经过判断得到目标相邻预测块的运动信息与候选运动信息列表中的所有候选运动信息均不重复,则判断当前目标相邻预测块为可用相邻预测块,反之,若判断得到目标相邻预测块的运动信息与候选运动信息列表中任意一个候选运动信息重复,则当前目标相邻预测块为不可用相邻预测。在当前实施例中,将候选运动信息中所包括的运动信息定义为候选运动信息。

如:若采用poc查重方式进行查重,当判断得到a和b在l0和l1两个方向均可用,则需判断a在l0和b在l1方向运动信息是否相同,以及a在l1和b在l0方向运动信息是否相同,若均相同,则a和b的运动信息重复。

请参见图11,图11为本申请一种帧间预测方法又一实施例中的流程示意图。在当前实施例中,上述步骤s530中的基于所述权重阵列计算编码代价,进一步包括:

s1101:对单向运动信息候选列表中的每个运动信息分别进行运动补偿获得各自对应的第一预测值。

在构建得到单向运动信息候选列表之后,分别利用单向运动信息候选列表中的每个运动信息对当前块进行运动补偿,进而获得每个运动信息对应的第一预测值。

进一步地,在本申请所提供的技术方案,利用角度和参考权重配置可确定多个预测模式,则步骤s1101中会分别确定单向运动信息候选列表中的每个运动信息在各个预测模式下所对应的第一预测值。

s1102:基于第一预测值,计算求得各个运动信息所对应的编码代价。

基于所求得的第一预测值,计算各个运动信息所对应的编码代价。

当步骤s1101中计算得到每组运动信息对应多个第一预测值,则步骤s1102则会分别基于每个第一预测值,分别求得各个运动信息在各个预测模式下所对应的编码代价。

进一步地,在一实施例中,还可以在awp中引入高级运动矢量表达(ultimatemotionvectorexpression,umve)技术。如,当利用角度和参考权重配置可确定56种预测模式,每个单向运动信息候选列表中包括5个运动信息时,将单向运动信息候选列表中符合条件的运动信息作为base_mv进行umve偏移(其中,umve偏移包括4个方向*5种setp,一共20种偏移结果),并将进行了umve偏移的mv与不偏移的mv比较编码代价,最终根据编码代价比较结果决定采用偏移后的mv还是偏移前的mv作为最终的mv。流程如下:

(i)对单向运动信息候选列表中所有运动信息进行运动补偿得到第一预测值;并计算有umve偏移的运动信息和无umve偏移的运动信息的像素差的平方和(sad:sumofabsolutedifference)。

(j)56种预测模式下,对单向运动信息候选列表中的所有运动信息按照无umve偏移的方式计算加权rdcost并排序,然后在每种预测模式下选取rdcost最小的两组运动信息cost0和cost1作为第一候选运动信息。

(k)在所有的预测模式中选择部分模式对运动信息进行umve偏移,在选定的原始预测模式下对所有单向运动信息候选列表中的运动信息按照有umve偏移的方式计算加权rdcost并排序,并在每种预测模式下选取rdcost最小的两组运动信息cost0和cost1作为第一候选运动信息。

其中,需要说明的是,与上一步(j)不同的是(k)步骤不是遍历所有原始预测模式,而是选取部分原始预测模式进行umve偏移,选取方式包括a)和b)两种,具体如下:

a)如果当前块已被访问过,即之前执行过awp,则只对上次参与细选的原始预测模式(最多7种)进行umve偏移;

b)如果当前块未曾访问过,即没有执行过awp,则对第一运动信息56种模式下的代价(cost0)进行排序,选取代价最小的42种原始预测模式将进行umve偏移。

进一步地,在确定了第一候选运动信息之后,进一步基于多组第一候选运动信息,在原始预测模式中选取最终的预测模式。在当前实施例中,基于多组第一候选运动信息选取最终预测模式的过程如下:

上述步骤(k)中所有的原始预测模式(包括有umve偏移和无umve偏移)均会进入rdo(率失真优化:ratedistortionoptimation)粗选阶段,利用satd(sumofabsolutetransformeddifference)计算出每组第一候选运动信息在各个进入至rdo粗选阶段的预测模式下的代价并排序。选出7种代价最小的预测模式(每种预测模式包含两组第一候选运动信息)作为候选预测模式进入最终的细选阶段。其中,在当前步骤中两组第一候选运动信息的index不能相同,若有umve偏移,则umve的index也不能相同。

(6)在求取7种编码代价最小的预测模式之后,进一步对各个第一候选运动信息进行插值、求残差、变换量化、反变换、反量化得到重建像素等过程,再利用rdo过程求得rdcost(sse),比较第一候选运动信息在7种候选预测模式下的rdcost的大小,将rdcost最小的模式作为最终的预测模式。

进一步地,上述步骤对单向运动信息候选列表中的每个运动信息分别进行运动补偿获得各自对应的第一预测值,进一步包括:分别利用当前块所包括的多个第一子块的时域运动信息对各个第一子块进行运动补偿,进而基于各个第一子块的运动补偿结果获得当前块的对应的第一预测值。

请参见图12,图12为本申请一种帧间预测方法一实施例中的流程示意图。在当前实施例中,上述步骤将当前块划分多个第一子块,包括步骤s1201。

s1201:对当前块进行十字平均划分,以获得四个第一子块。

对当前块进行十字平均划分,进而获得面积相同的四个第一子块。其中,四个第一子块呈现田字排布,第一子块的预设位置顺序依序为左上角、右上角、左下角和右下角。

s1202:依据每个原始预测模式对应的分割方式将当前块划分,得到两个第二子块。

在当前实施例中,会预先为每个原始预测模式预先设定对应的划分方式,当选用哪一种原始预测模式,则会对应选取与之对应的分割方式对当前块进行划分,以得到两个第二子块。

上述步骤对单向运动信息候选列表中的每个运动信息分别进行运动补偿获得各自对应的第一预测值,进一步包括:

s1203:选取与第二子块所对应的第一子块的时域运动信息,对第二子块进行运动补偿,以获取当前块对应的第一预测值。

在当前实施例中,与第二子块对应的第一子块是依据两个第二子块的边界确定,也可以理解为基于当前块的划分得到第二子块的分割方向确定。

请结合图13,图13为本申请中awp的当前块的分割示意图,图13中展示了不同原始预测模式下当前块分割得到两个第二子块的划分结构示意图。

在一实施例中,当依据每个原始预测模式对应的分割方式将当前块划分,得到两个左右或上下分布的第二子块时,则步骤选取与第二子块所对应的第一子块的时域运动信息,对第二子块进行运动补偿进一步包括:选用左上角的第一子块的运动信息对分布于上侧或左侧的第二子块进行运动补偿,选用右下角的第一子块的运动信息对分布于下侧或右侧的第二子块进行运动补偿。

在另一实施例中,当依据每个原始预测模式对应的分割方式将当前块划分,得到两个左右或上下分布的第二子块时,则步骤选取与第二子块所对应的第一子块的时域运动信息,对第二子块进行运动补偿进一步包括:选用左下角的第一子块的运动信息对分布于左侧或下侧的第二子块进行运动补偿,选用右上角的第一子块的运动信息对分布于右侧或上侧的第二子块进行运动补偿。

在又一实施例中,当依据原始预测模式对应的分割方式将当前块划分,且用于划分两个第二子块的分割线与对角线、水平线和竖直线均不平行时,则选用靠近每个第二子块重心的第一子块的运动信息对该第二子块进行运动补偿。

在再一实施例中,当依据原始预测模式对应的分割方式将当前块划分,且用于划分两个第二子块的分割线与任意一条对角线平行时,则步骤选取与第二子块所对应的第一子块的时域运动信息,对第二子块进行运动补偿进一步包括:选用沿着与分割线相交的对角线分布的第一子块的运动信息对应对两个第二子块进行运动补偿。

结合图13,当如图13中第4列的方式进行划分,得到呈现上下两个第二子块。对于第4列采用右上角和左下角第一子块的tmvp,并将当前块分成上下两个第二子块,上边第二子块采用左上角第一子块的tmvp,下边第二子块采用右下角的tmvp进行运动补偿。

对于第5-7列采用左上角和右下角第一子块的tmvp,将当前块分成左右两个第二子块,左边第二子块采用左下角第一子块的tmvp,右边第二子块采用右上角第一子块的tmvp进行运动补偿。

在另一实施例中,对于图13中的第1列、第2列、第3列及最后一列的原始预测模式采用左上角第一子块和右下角第一子块的时域运动信息(tmvp),并将当前块分成左右两个第二子块,左边第二子块采用左上角第一子块的tmvp进行运动补偿,右边第二子块采用右下角第一子块的tmvp进行运动补偿。

对于第4列、第5列、第6列、第7列的原始预测模式采用右上角第一子块和左下角第一子块的tmvp,并将当前块分成左右两个第二子块,左边第二子块采用右上角第一子块的tmvp进行运动补偿,右边第二子块采用左下角第一子块的tmvp进行运动补偿。

在另一实施例中,对于第1列及最后一列的原始预测模式采用左上角第一子块和右下角第一子块的tmvp分别进行运动补偿,并将当前块分成左右两个第二子块,左边第二子块采用左上角第一子块的tmvp进行运动补偿,右边第二子块采用右下角第一子块的tmvp进行运动补偿。

对于第2、3列采用左上角第一子块和右下角第一子块的tmvp分别进行运动补偿,并将当前块分成上下两个第二子块,上边第二子块采用左上角第一子块的tmvp进行运动补偿,下边第二子块采用右下角的tmvp进行运动补偿。

当前实施例中所提供的技术方案主要结合subtmvp的思想,同时考虑到不同预测模式下,awp可以选择不同位置scu的tmvp对当前块进行运动补偿,即利用不同位置处的tmvp对当前块进行分块运动补偿,进而实现获取更准确的预测值。

在其他实施例中,还可以采用subtmvp的技术,替代原始的tmvp,并依旧只占用候选列表中的一个位置。并且当前块可对应划分为四个第一子块,也就会存有四个第一子块的运动信息,在进行运动补偿时,该subtmvp会对四个第一子块分别进行运动补偿得到各自的预测值,进而基于四个第一子块的预测值得到当前块的预测值。可以理解的,在其他实施例中,还可以依据其他方式选用第一子块的运动信息对第二子块进行运动补偿,在此不一一列举,只要是依据每个原始预测模式对应的分割方式将当前块划分,得到两个第二子块,并选取与第二子块所对应的第一子块的时域运动信息,对第二子块进行运动补偿,以获取当前块对应的第一预测,皆可以认为是保护在本申请的保护范围。

在一实施例中,本申请所提供的方法还包括:遍历由角度和参考权重配置,确定所有预测模式,其中所述角度维度为7个,且不包括所述当前块对角方向角度。

在一实施例中,本申请所提供的方法还包括:结合当前块的宽度和高度之比,对当前块的角度模式对应进行排序,具体可以参见上文图2至图3所对应部分的阐述。

请参见图14,图14为本申请一种视频编码方法一实施例中的流程示意图。本申请所提供的方法包括:

s1410:确定当前块的最终预测模式。

其中,最终预测模式是根据如图1至图13及其所对应的任意一个实施例所述的方法确定的。

s1420:基于最终预测模式确定当前块的最终预测值,并基于最终预测值对当前块进行编码。

根据如图1至图13及其所对应的任意一个实施例所述的方法确定最终预测模式之后,进一步基于所确定的最终预测模式确定当前块的最终预测值,并基于最终预测值对当前块进行编码。

其中,基于当前块的最终预测值对当前块进行编码,包括:对单向运动信息候选列表中的一个运动信息的索引进行编码。

进一步地,本申请所提供的方法还包括:确定当前块的纹理方向。

在确定当前块的纹理方向之后,基于当前块的纹理方向对预测模式进行重新排序。具体的、可以是以和纹理方向相同或最接近的角度对应的预测模式为起点对所有预测模式进行重新排序。更进一步地,基于当前块的预测值对当前块进行编码,包括:对当前块的预测模式重新排序后的索引进行编码。

请参见图15,图15为本申请一种视频编码系统一实施例中的结构示意图。视频编码系统包括存储器和处理器;存储器中存储有计算机程序,处理器用于执行计算机程序以实现如图1至图14及各个图所对应的任意一个实施例中的所述方法。

其中,存储器1502包括本地储存(图未示),且存储有计算机程序,计算机程序被执行时可以实现图1至图14及其所对应的任意一个实施例中所述的方法。

处理器1501与存储器1502耦接,处理器1501用于运行计算机程序,以执行如上图1至图14及其对应的任意一个实施例中所述的方法。

参见图16,图16为本申请一种可读存储介质一实施例结构示意图。该可读存储介质1600存储有能够被处理器运行的计算机程序1601,该计算机程序1601用于实现如上图1至图14及其对应的任意一个实施例中所描述的方法。具体地,上述存储介质1600可以是存储器、个人计算机、服务器、网络设备,或者u盘等其中的一种,具体在此不做任何限定。

以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

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