掌桥专利:专业的专利平台
掌桥专利
首页

帧内预测方法及装置、视频编码设备、存储介质

文献发布时间:2024-04-18 19:58:30


帧内预测方法及装置、视频编码设备、存储介质

本申请是申请日为2019年01月02日的PCT国际专利申请PCT/CN2019/070156进入中国国家阶段的中国专利申请号201980062167.1、发明名称为“帧内预测方法及装置、视频编码设备、存储介质”的分案申请。

技术领域

本申请实施例涉及视频编码技术,涉及但不限于帧内预测方法及装置、视频编码设备、存储介质。

背景技术

在多功能视频编码(Versatile Video Coding,VVC)中,在对当前处理块进行帧内预测时,通常将空间上对应或相邻的已完成帧内预测的预测块(也称为先前重建块)的最优预测模式(即写入码流的预测模式)、所述先前重建块的最优方向的派生模式,以及一些固定帧内预测模式组合作为当前处理块的候选预测模式集合,基于所述集合中的多个候选预测模式,对当前处理块进行帧内预测。对于亮度块,如果当前处理块选取所述集合中的多个候选预测模式进行帧内预测时,比选用所述集合外的预测模式进行帧内预测,使用了更少的比特数对其帧内预测模式进行表示。对于色度块,当前处理块只能使用所述集合中的候选模式进行帧内预测。

目前,在对当前处理块进行帧内预测之前,如果候选预测模式集合中包括方向模式,为了获得更加准确的帧内预测效果,通常在已知的候选预测方向的基础上,对候选预测方向的索引号简单地加1或减1,从而派生出新的候选预测方向,以供后续对当前处理块进行帧内预测时使用。

然而,这种简单地对已知候选预测方向的索引号加1或减1来实现帧内预测方向的构造方法(即构造新的候选预测方向),在进行帧内预测的过程中仍然没有足够准确的预测效果。

发明内容

有鉴于此,本申请实施例为解决相关技术中存在的至少一个问题而提供一种帧内预测方法及装置、视频编码设备、存储介质。

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

第一方面,本申请实施例提供一种帧内预测方法,所述方法包括:

获取与当前处理块对应的先前重建块集合;

确定所述先前重建块集合中每一先前重建块对应写入码流的第一预测模式,得到第一预测模式集合;

如果第一预测模式集合中包括至少两个方向模式,将每一所述方向模式作为第一预测方向添加至第一预测方向集合,按照预设的矢量运算规则,对所述第一预测方向集合中的任意两个或多个第一预测方向进行矢量运算,得到第二预测方向集合;

将所述第二预测方向集合与第一预测模式集合合并,得到第二预测模式集合,基于所述第二预测模式集合,对所述当前处理块进行帧内预测。

在上述方案中,所述基于所述第二预测模式集合,对所述当前处理块进行帧内预测,包括:

基于所述第二预测模式集合,对所述当前处理块进行帧内预测,得到目标预测方向和所述目标预测方向对应的当前处理块中每一像素单元的预测值与原始值之间的差值。

在上述方案中,在得到所述目标预测方向和每一所述差值之后,所述方法还包括:

将所述目标预测方向和每一所述差值写入所述当前处理块的码流。

在上述方案中,所述按照预设的矢量运算规则,对所述第一预测方向集合中的任意两个或多个第一预测方向进行矢量运算,得到第二预测方向集合,包括:

将所述第一预测方向集合中的任意两个或多个具有不同方向的第一预测方向确定为一组预测组,得到预测组集合;

按照预设的矢量运算规则,对每一所述预测组中的两个或多个第一预测方向进行矢量运算,得到第二预测方向集合。

在上述方案中,所述按照预设的矢量运算规则,对每一所述预测组中的两个或多个第一预测方向进行矢量运算,得到第二预测方向集合,包括:

确定每一所述预测组中的每一第一预测方向的权值,所述权值用于表征对应的先前重建块与所述当前处理块之间的相关程度;

对每一所述权值对应的第一预测方向进行预处理,以使所述预处理后的每一第一预测方向具有相同的长度;

将每一所述权值与对应的预处理后的第一预测方向相乘,得到第三预测方向集合;

对所述第三预测方向集合中的任意两个或多个第三预测方向进行矢量运算,得到第二预测方向集合。

在上述方案中,所述确定每一所述预测组中的每一第一预测方向的权值,包括:

确定每一所述预测组中的每一第一预测方向对应的先前重建块,与所述当前处理块之间的距离;

基于每一所述距离,按照预设的权值分配规则,给对应第一预测方向分配权值。

在上述方案中,所述对所述第三预测方向集合中的任意两个或多个第三预测方向进行矢量运算,得到第二预测方向集合,包括:

对所述第三预测方向集合中的任意两个或多个第三预测方向进行矢量相加或矢量相减,得到第二预测方向集合。

在上述方案中,所述第一预测方向至少包括以下之一:亮度帧内预测方向和色度帧内预测方向。

第二方面,本申请实施例提供一种帧内预测装置,所述装置包括:

获取模块,配置为:获取与当前处理块对应的先前重建块集合;

确定模块,配置为:确定所述先前重建块集合中每一先前重建块对应写入码流的第一预测模式,得到第一预测模式集合;如果所述第一预测模式集合中包括至少两个方向模式,将每一所述方向模式作为第一预测方向添加至第一预测方向集合中;

矢量运算模块,配置为按照预设的矢量运算规则,对所述第一预测方向集合中的任意两个或多个第一预测方向进行矢量运算,得到第二预测方向集合;

帧内预测模块,配置为:将所述第二预测方向集合与第一预测模式集合合并,得到第二预测模式集合,基于所述第二预测模式集合,对所述当前处理块进行帧内预测。

第三方面,本申请实施例提供一种视频编码设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述帧内预测方法中的步骤。

第四方面,本申请实施例提供计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述帧内预测方法中的步骤。

本申请实施例中,提供一种帧内预测方法,通过对已知的两个或多个候选预测方向进行矢量运算,从而构造出新的候选预测方向,即,将所述第二预测方向集合与第一预测模式集合合并,得到第二预测模式集合,基于所述第二预测模式集合,对所述当前处理块进行帧内预测,这样,能够增加获得足够准确的预测效果的可能性。

附图说明

图1A为本申请实施例帧内预测原理示意图;

图1B为本申请实施例VVC支持的67种帧内预测方向的示意图;

图1C为本申请实施例索引号为66的帧内预测方向的预测过程示意图;

图2A为本申请实施例视频编码系统的组成结构示意图;

图2B为本申请实施例视频解码系统的组成结构示意图;

图3A为本申请实施例帧内预测方法的实现流程示意图;

图3B为本申请实施例相邻帧内预测模式示意图;

图3C为本申请实施例预测方向的构造示意图;

图4为本申请实施例矢量运算示意图;

图5A为本申请实施例图像块的排布示意图;

图5B为本申请实施例确定距离的示意图;

图6为本申请实施例再一相邻帧内预测的模式示意图;

图7为本申请实施例当前处理块对应的亮度块和色度的排布示意图;

图8为本申请实施例色度块的排布示意图;

图9为本申请实施例MDMS的帧内预测方向的遍历顺序示意图;

图10为本申请实施例另一矢量运算示意图;

图11A为本申请实施例帧内预测装置的组成结构示意图;

图11B为本申请实施例另一帧内预测装置的组成结构示意图;

图12为本申请实施例视频编码设备的一种硬件实体示意图。

具体实施方式

为了便于对本申请实施例的技术方案的理解,首先对预测编码、帧内预测、预测方向和亮度帧内预测这四个基本概念进行简单介绍。

预测编码主要的功能是:在视频编码中利用空间或时间上已有的重建图像构造当前处理块的预测值,仅将原始值和预测值的差值传输,以达到减少传输数据量的目的。

帧内预测主要的功能是:利用当前处理块与相邻的上一行像素单元和左一列像素单元构造该当前处理块的预测值。如图1A所示,利用当前处理块101周围已经恢复的邻近像素(即与当前处理块相邻的上一行102中的像素单元和左一列103中像素单元),对当前处理块101的每个像素单元进行预测。

例如,当前处理块为亮度块,在利用邻近像素构造当前亮度块的预测值时,采用多种预测方向,依次对所述当前亮度块进行预测,得到每一预测方向对应的亮度预测值矩阵;基于每一亮度预测值矩阵和当前亮度块的原始值矩阵,确定每一预测方向对应的差值矩阵;基于每一差值矩阵,确定对应预测方向的评价参数值,所述评价参数值用于表征对应预测方向对当前亮度块的预测效果;基于每一评价参数值,从这多种预测方向中确定出目标预测方向,例如,在保证视频恢复质量的前提下,能够获得最小的图像编码比特数的预测方向确定为目标预测方向;然后将该目标预测方向写入码流。需要说明的是,VVC支持的67种帧内预测方向,其中,索引号为2-66的帧内预测方向如图1B所示。

以索引号为66的帧内预测方向为例,如图1C所示,给出构造当前亮度块101的每个像素单元的亮度预测值的方法。其中,当前亮度块101相邻的上一行102数据为先前重建块。当前亮度块101的每个像素单元按照右上对角线(即索引号为66的预测方向)的像素单元值进行填充。

另外,除了上述图1C对应的构造预测块的方式,还有两种比较平坦的构造预测块方式,分别为DC模式和PLANAR模式。其中,DC模式是利用上一行或左一列的特征值(例如,色度值或亮度值)的平均值填充整个当前处理块,PLANAR模式采用渐变的方式填充当前处理块。

对于亮度模式,按照图1B中的各种模式依次预测,选取与当前亮度块最匹配(例如差值矩阵的差值和最小,或率失真代价最小)的预测模式作为目标预测模式,构造当前亮度块的每一像素单元的亮度预测值,确定每一像素单元的亮度预测值和对应的亮度原始值之间的差值。在得到目标预测模式和目标预测模式对应的每一像素单元对应的差值之后,编码端将每一像素单元对应的差值和当前处理块对应的目标预测方向的索引号写入码流。解码端在接收到码流之后,对接收的码流进行解析,得到目标预测方向的索引号后,便可计算出对应的当前处理块中每一像素单元的亮度预测值,与码流解析出的差值相加,即可得到对应像素单元的亮度重建值。

在已知上述几种基本概念的基础上,本申请实施例提供一种视频编码系统,图2A为本申请实施例视频编码系统的组成结构示意图,如图2A所示,该视频编码系统21包括:

变换与量化单元211、帧内估计单元212、帧内预测单元213、运动补偿单元214、运动估计单元215、反变换与反量化单元216、滤波器控制分析单元217、滤波单元218、编码单元219和解码图像缓存单元210;针对输入的原始视频信号,通过编码树块(Coding TreeUnit,CTU)的划分可以得到一个视频重建块,然后,对经过帧内或帧间预测后得到的残差像素信息,通过变换与量化单元211对该视频重建块进行变换,包括将残差信息从像素域变换到变换域,并对所得的变换系数进行量化,用以进一步减少比特率;帧内估计单元212和帧内预测单元213用于对该视频重建块进行帧内预测;其中,帧内估计单元212和帧内预测单元213用于确定该视频重建块的最优帧内预测模式(即目标预测模式);运动补偿单元214和运动估计单元215用于执行所接收的视频重建块相对于一或多个参考帧中的一或多个块的帧间预测编码,以提供时间预测信息;由运动估计单元215执行的运动估计为产生运动向量的过程,所述运动向量可以估计该视频重建块的运动,然后,由运动补偿单元214基于由运动估计单元215所确定的运动向量执行运动补偿;在确定帧内预测模式之后,帧内预测单元213还用于将所选择的帧内预测数据提供到编码单元219,而且,运动估计单元215将所计算确定的运动向量数据也发送到编码单元219;此外,反变换与反量化单元216用于该视频重建块的重构建,在像素域中重构建残差块,该重构建残差块通过滤波器控制分析单元217和滤波单元218去除方块效应伪影,然后,将该重构残差块添加到解码图像缓存单元210的帧中的一个预测性块,用以产生经重构建的视频重建块;编码单元219是用于编码各种编码参数及量化后的变换系数,在基于CABAC的编码算法中,上下文内容可基于相邻重建块,可用于编码指示所确定的帧内预测方向的信息,输出该视频信号的码流;而解码图像缓存单元210用于存放重构建的视频重建块,用于预测参考。随着视频图像编码的进行,会不断生成新的重构建的视频重建块,这些重构建的视频重建块都会被存放在解码图像缓存单元210中。

本申请实施例提供一种视频解码系统,图2B为本申请实施例视频编码系统的组成结构示意图,如图2B所示,该视频编码系统22包括:

解码单元221、反变换与反量化单元222、帧内预测单元223、运动补偿单元224、滤波单元225和解码图像缓存单元226单元;输入的视频信号经过视频编码系统21进行编码处理之后,输出该视频信号的码流;该码流输入视频解码系统22中,首先经过解码单元221,用于得到解码后的变换系数;针对该变换系数通过反变换与反量化单元222进行处理,以便在像素域中产生残差块;帧内预测单元223可用于基于所确定的帧内预测方向和来自当前帧或图片的先前经解码块的数据而产生当前视频解码块的预测数据;运动补偿单元224是通过剖析运动向量和其他关联语法元素来确定用于视频解码块的预测信息,并使用该预测信息以产生正被解码的视频解码块的预测性块;通过对来自反变换与反量化单元222的残差块与由帧内预测单元223或运动补偿单元224产生的对应预测性块进行求和,而形成解码的视频块;该解码的视频信号通过滤波单元225以便去除方块效应伪影,可以改善视频质量;然后将经解码的视频块存储于解码图像缓存单元226中,解码图像缓存单元226存储用于后续帧内预测或运动补偿的参考图像,同时也用于视频信号的输出,得到所恢复的原始视频信号。

本申请实施例主要作用于视频编码系统21的帧内预测单元213和视频解码系统22的帧内预测单元223;也就是说,如果在视频编码系统21能够通过本申请实施例提供的帧内预测方法得到一个较好的预测效果,那么,对应地,在解码端,也能够改善视频解码恢复质量。

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

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

图3A为本申请实施例帧内预测方法的实现流程示意图,如图3A所示,该方法包括以下步骤S301至步骤S306:

S301、获取与当前处理块对应的先前重建块集合;

一般来说,所述先前重建块集合中的先前重建块为所述当前处理块所在的预设范围内的且已完成帧内预测的区域;其中,先前重建块指的是已经完成帧内预测的区域;所述当前处理块指的是当前需要进行帧内预测的区域。例如,图3B所示,从当前处理块上面的所有相邻块和当前处理块左侧的所有相邻块中确定所述先前重建块,例如,将当前处理块的相邻块左(L)、上(A)、左下(BL)、右上(AR)和左上(AL)作为所述先前重建块集合中的先前重建块。

S302、确定所述先前重建块集合中每一先前重建块对应写入码流的第一预测模式,得到第一预测模式集合;

这里,需要说明的是,所述第一预测模式集合就是背景技术中所述的候选预测模式集合。一般来说,所述第一预测模式集合中包括DC模式、PLANAR模式和方向模式。

S303、如果所述第一预测模式集合中包括至少两个方向模式,将每一所述方向模式作为第一预测方向添加至第一预测方向集合中;

需要说明的是,所述第一预测方向实际上就是对应先前重建块在进行帧内预测时所确定的最优预测方向。

在其他实施例中,所述第一预测方向至少包括以下之一:亮度帧内预测方向和色度帧内预测方向。可以理解地,对于亮度块,如果当前处理块选取第一预测模式集合中的多个第一预测模式进行帧内预测时,比选用所述第一预测模式集合外的预测模式进行帧内预测,使用了更少的比特数对其帧内预测模式进行表示。当所述第一预测方向是亮度帧内预测方向时,所述先前重建块的预测值为亮度值,对于步骤S306,在对所述当前处理块的预测方向进行帧内预测时,实际上是对所述当前处理块的亮度值进行帧内预测;类似地,当所述第一预测方向是色度帧内预测方向时,所述先前重建块的预测值为色度值,对于步骤S306,在对所述当前处理块的预测方向进行帧内预测时,实际上是对所述当前处理块的色度值进行帧内预测。

S304、按照预设的矢量运算规则,对所述第一预测方向集合中的任意两个或多个第一预测方向进行矢量运算,得到第二预测方向集合;

需要说明的是,所述第二预测方向集合中的每一第二预测方向实际上就是在对所述当前处理块的预测方向进行帧内预测时的候选预测方向;一般来说,所述第一预测方向集合中的每一第一预测方向也是在对所述当前处理块的预测方向进行帧内预测时所使用的候选预测方向。

为了避免得到的多个第二预测方向之间具有相同的方向,通常情况下,是对所述第一预测方向集合中的任意两个或多个具有不同方向的第一预测方向进行矢量运算,从而得到第二预测方向集合。

可以理解地,在实际应用中,如果只是简单地将第一预测方向的索引号加1或者减1,来构造所述当前处理块的候选预测方向,在进行帧内预测时,可能并不能够达到足够准确的预测效果,这是因为,这种构造方法得到的候选预测方向,没有充分考虑到当前处理块的局部内容的特点,而且没有充分利用到当前处理块周边的方向信息,因此,在本申请实施例中,按照预设的矢量运算规则,对所述第一预测方向集合中的任意两个或多个第一预测方向进行矢量运算,得到第二预测方向集合,即新的候选预测方向集合,从而在对所述当前处理块的预测方向进行帧内预测时,增加获得足够准确的预测效果的可能性。

举例来说,如图3C所示,假设当前处理块307的先前重建块308具有垂直条纹信息(例如AB线段),先前重建块308对应的最优预测方向为BA,当前处理块307的先前重建块309具有水平条纹信息(例如CD线段),先前重建块309对应的最优预测方向为DC,当前处理块307包括的图像信息是BD弧线;此时,在基于已知方向BA和DC构造新的候选预测方向时,如果仅仅是对方向BA和DC各自对应的索引号加1,得到相邻方向B’A’和D’C’,那么,在基于方向BA、B’A’、DC和D’C’进行帧内预测时,得到的预测结果为当前处理块307包括的图像信息为线段D’O和线段OB’,这与真实情况(即当前处理块307包括的图像信息是BD弧线)具有较大的差别。所以,为了增加获得足够准确的预测效果的可能性,可以对方向BA和DC进行矢量相减,从而得到方向BD,将方向BD也作为候选预测方向(即第二预测方向)。

S305、将所述第二预测方向集合与第一预测模式集合合并,得到第二预测模式集合;

S306、基于所述第二预测模式集合,对所述当前处理块进行帧内预测。

在实际应用中,所述第二预测方向集合中不仅包括第二预测方向的方向信息,还包括对应的索引信息。

本申请实施例中,提供一种帧内预测方法,获取与当前处理块对应的先前重建块集合;确定所述先前重建块集合中每一先前重建块对应写入码流的第一预测方向(即所述当前处理块的已知候选预测方向),得到第一预测模式集合;如果所述第一预测模式集合中包括至少两个方向模式,将每一所述方向模式作为第一预测方向添加至第一预测方向集合中;按照预设的矢量运算规则,对所述第一预测方向集合中的任意两个或多个第一预测方向进行矢量运算,得到第二预测方向集合(可以理解地,所述第二预测方向集合中的第二预测方向为所述当前处理块的新的候选预测方向);将所述第二预测方向集合与第一预测模式集合合并,得到第二预测模式集合,基于所述第二预测模式集合,对所述当前处理块进行帧内预测。

这样,通过对已知的两个或多个候选预测方向进行矢量运算,从而构造出新的候选预测方向,即,将所述第二预测方向集合与第一预测模式集合合并,得到第二预测模式集合,基于所述第二预测模式集合,对所述当前处理块进行帧内预测,能够增加获得足够准确的预测效果的可能性。

本申请实施例提供另一种帧内预测方法,包括步骤S401至步骤S407:

S401、获取与当前处理块对应的先前重建块集合;

S402、确定所述先前重建块集合中每一先前重建块对应写入码流的第一预测模式,得到第一预测模式集合;

S403、如果所述第一预测模式集合中包括至少两个方向模式,将每一所述方向模式作为第一预测方向添加至第一预测方向集合中;

S404、按照预设的矢量运算规则,对所述第一预测方向集合中的任意两个或多个第一预测方向进行矢量运算,得到第二预测方向集合;

S405、将所述第二预测方向集合与第一预测模式集合合并,得到第二预测模式集合;

S406、基于所述第二预测模式集合,对所述当前处理块进行帧内预测,得到目标预测方向和所述目标预测方向对应的当前处理块中每一像素单元的预测值与原始值之间的差值;

这里,需要说明的是,步骤S406,实际上是上述实施例步骤S306的一种实施示例。

一般来说,所述目标预测方向为所述当前处理块的最优预测方向,也就是说,通过所述目标预测方向能够获得较小的率失真代价,或者,能够使所述当前处理块的每一像素单元的预测值与原始值之间的差值最小,从而提高视频压缩比,节约视频编码的比特数。

S407、将所述目标预测方向和每一差值写入所述当前处理块的码流。

在其他实施例中,在将所述目标预测方向写入所述当前处理块的码流时,可以将所述目标预测方向的索引号写入所述当前处理块的码流中。对于亮度模式,如果所述目标预测方向是由两个第一预测方向进行矢量运算得到的,那么在确定目标预测方向之后,可以从图1B所示的VVC支持的67种帧内预测方向中,确定出与所述目标预测方向的夹角小于预设阈值的预测方向,将小于预设阈值的预测方向的索引号作为所述目标预测方向的索引号,写入所述当前处理块的码流。

举例来说,如果目标预测方向F

本申请实施例提供又一种帧内预测方法,包括步骤S501至步骤S508:

S501、获取与当前处理块对应的先前重建块集合;

S502、确定所述先前重建块集合中每一先前重建块对应写入码流的第一预测模式,得到第一预测模式集合;

S503、如果所述第一预测模式集合中包括至少两个方向模式,将每一所述方向模式作为第一预测方向添加至第一预测方向集合中;

S504、将所述第一预测方向集合中的任意两个或多个具有不同方向的第一预测方向确定为一组预测组,得到预测组集合;

举例来说,假设所述第一预测方向集合中具有不同方向的第一预测方向为方向1、方向2和方向3,那么,限定预测组内方向数为2则得到的预测组集合包括3组预测组,即:(方向1,方向2)、(方向1,方向3)和(方向2,方向3)。

可以理解地,如果只将所述第一预测方向集合中的任意两个或多个具有不同方向的第一预测方向确定为一组预测组,可以减少预测组集合中的预测组数目,从而减小实施步骤S504的计算量。

S505、按照预设的矢量运算规则,对每一所述预测组中的两个或多个第一预测方向进行矢量运算,得到第二预测方向集合;

这里,需要说明的是,实际上,步骤S504和步骤S505是上述实施例步骤S304或者步骤S304的一种实施示例。

第二预测方向集合中包括第一预测方向集合中的每一第一预测方向。以得到的预测组(方向1,方向2)、(方向1,方向3)和(方向2,方向3)为例,假设对每一预测组中的两个方向进行矢量相加,例如,方向1和方向2进行矢量相加,得到方向4;方向1和方向3进行矢量相加,得到方向5;方向2和方向3进行矢量相加,得到方向6;那么,得到的第二预测方向集合中包括方向1、方向2、方向3、方向4、方向5和方向6。

S506、将所述第二预测方向集合与第一预测模式集合合并,得到第二预测模式集合;

S507、基于所述第二预测模式集合,对所述当前处理块进行帧内预测,得到目标预测方向和所述目标预测方向对应的当前处理块中每一像素单元的预测值与原始值之间的差值;

S508、将所述目标预测方向和每一差值写入所述当前处理块的码流。

本申请实施例提供再一种帧内预测方法,包括步骤S601至步骤S611:

S601、获取与当前处理块对应的先前重建块集合;

S602、确定所述先前重建块集合中每一先前重建块对应写入码流的第一预测模式,得到第一预测模式集合;

S603、如果所述第一预测模式集合中包括至少两个方向模式,将每一所述方向模式作为第一预测方向添加至第一预测方向集合中;

S604、将所述第一预测方向集合中的任意两个或多个具有不同方向的第一预测方向确定为一组预测组,得到预测组集合;

S605、确定每一所述预测组中的每一第一预测方向的权值,所述权值用于表征对应的先前重建块与所述当前处理块之间的相关程度;

一般来说,距离所述当前处理块越近的先前重建块,与所述当前处理块之前的相关程度越大,对应的权值也就越大。

S606、对每一所述权值对应的第一预测方向进行预处理,以使所述预处理后的每一第一预测方向具有相同的长度;

例如,每一预测方向都是单位长度。

S607、将每一所述权值与对应的预处理后的第一预测方向相乘,得到第三预测方向集合;

这里,需要说明的是,实际上,步骤S604至步骤S607是上述实施例步骤S505的一种实施示例。

可以理解地,一个数值(即所述权值)和一个矢量相乘,只会改变该矢量的长度,不会改变该矢量的方向。举例来说,如图4所示,预处理后的第一预测方向为单位长度的OA,如果OA的权值为2,则相乘后得到的第三预测方向为OA’。

S608、对所述第三预测方向集合中的任意两个或多个第三预测方向进行矢量运算,得到第二预测方向集合;

可以理解地,为了得到最有可能的第二预测方向来作为当前处理块的候选预测方向,一般会给与当前处理块相关性较强的先前重建块对应的预测方向分配一个较大的权值,给与当前处理块相关性较弱的先前重建块对应的预测方向分配一个较小的权值,例如,图4所示,给方向OA分配的权值为2,给方向AB分配的权值为1,对应地,权值2与方向OA相乘得到方向OA’,权值1与方向AB相乘得到方向AB,将方向AB位移到A’点,得到方向A’B’,可见,方向OA’的长度大于方向A’B’的长度,这样,在对方向OA’和方向A’B’进行矢量相加时,得到的方向OB’(即第二预测方向)更偏向于方向OA’,从而能够获得较为准确的预测效果。相比于直接对OA和AB进行矢量运算,得到当前处理块的候选预测方向OB,这里,通过权值处理后再进行矢量运算得到的第二预测方向OB’,更加接近真实情况。

S609、将所述第二预测方向集合与第一预测模式集合合并,得到第二预测模式集合;

S610、基于所述第二预测模式集合,对所述当前处理块进行帧内预测,得到目标预测方向和所述目标预测方向对应的当前处理块中每一像素单元的预测值与原始值之间的差值;

S611、将所述目标预测方向和每一差值写入所述当前处理块的码流。

本申请实施例提供另一种帧内预测方法,包括步骤S701至步骤S711:

S701、获取与当前处理块对应的先前重建块集合;

S702、确定所述先前重建块集合中每一先前重建块对应写入码流的第一预测模式,得到第一预测模式集合;

S703、如果所述第一预测模式集合中包括至少两个方向模式,将每一所述方向模式作为第一预测方向添加至第一预测方向集合中;

S704、将所述第一预测方向集合中的任意两个或多个具有不同方向的第一预测方向确定为一组预测组,得到预测组集合;

S705、确定每一所述预测组中的每一第一预测方向对应的先前重建块,与所述当前处理块之间的距离;

这里,需要说明的是,实际上,步骤S704和步骤S705是上述实施例步骤S605的一种实施示例。

S706、基于每一所述距离,按照预设的权值分配规则,给对应第一预测方向分配权值;

在其他实施例中,所述权值分配规则可以是距离与权值的映射表,基于该映射表就可以确定每一所述距离对应的权值,从而为每一所述距离对应的第一预测方向分配权值。比如,距离越小,分配的权值越大,这样在进行矢量运算时,就会使得到的预测方向更偏向于权值大的预测方向,从而在进行帧内预测时,增加获得足够准确的预测效果的可能性。

举例来说,对于步骤S704,例如,可以根据先前重建块与当前处理块之间相隔的块数来确定该先前重建块与当前处理块之间的距离。例如,图5A所示,当前处理块501与先前重建块502之间相隔块503和块504,此时,可以确定先前重建块502与当前处理块501之间的距离为2。假设预测的权值分配规则如下表1所示:

表1

基于上表1,可以确定先前重建块502对应的第一预测方向的权值为2。

再如,对于步骤S704,还可以根据先前重建块与当前处理块之间相隔的像素单元数来确定该先前重建块与当前处理块之间的距离。例如,图5B所示,以当前处理块503的像素单元A为参考点,确定从当前处理块503的像素单元A到先前重建块504的像素单元B之间经过的像素总数M,将M确定为先前重建块504与当前处理块503之间的距离。需要说明的是,每一当前处理块的参考点的设置规则都是一致的,例如,可以以当前处理块的中心点为参考点。假设预测的权值分配规则如下表2所示:

表2

基于上表2,就可以确定M所属的距离范围,从而得到对应的权值。

S707、对每一所述权值对应的第一预测方向进行预处理,以使所述预处理后的每一第一预测方向具有相同的长度;

S708、将每一所述权值与对应的预处理后的第一预测方向相乘,得到第三预测方向集合;

S709、对所述第三预测方向集合中的任意两个或多个第三预测方向进行矢量运算,得到第二预测方向集合;

在其他实施例中,对于步骤S709,可以对所述第三预测方向集合中的任意两个或多个第三预测方向进行矢量相加或矢量相减,得到第二预测方向集合。

S710、将所述第二预测方向集合与第一预测模式集合合并,得到第二预测模式集合;

S711、基于所述第二预测模式集合,对所述当前处理块进行帧内预测。

本申请实施例提供又一种帧内预测方法,包括步骤S801至步骤S809:

S801、获取与当前处理块对应的相邻先前重建块集合;

S802、确定所述相邻先前重建块集合中每一相邻先前重建块对应写入码流的第一预测模式,得到第一预测模式集合;

S804、如果所述第一预测模式集合中包括至少两个方向模式,将每一所述方向模式作为第一预测方向添加至第一预测方向集合中;

S805、将所述第一预测方向集合中的任意两个具有不同方向的第一预测方向确定为一组预测组,得到预测组集合;

S806、对每一所述预测组中的两个第一预测方向进行矢量相加,得到第二预测方向集合;

S807、将所述第二预测方向集合与第一预测模式集合合并,得到第二预测模式集合;

S808、基于所述第二预测模式集合,对所述当前处理块进行帧内预测,得到目标预测方向和所述目标预测方向对应的当前处理块中每一像素单元的预测值与原始值之间的差值;

S809、将所述目标预测方向和每一差值写入所述当前处理块的码流。

目前,已有的帧内预测方向的构造方法包括以下三种。

第一种,是VVC草案的亮度帧内预测方向构造方法,相关说明如下:

早期的JEM中,亮度预测方向编码中采用了包含6个最可能模式的最可能模式列表,即MPM列表。如图3B所示,MPM列表的推导过程考虑当前处理块601的5个相邻块的帧内预测方向(也称为帧内预测方向),即左(L)块、上(A)块、左下(BL)块、右上(AR)块和左上(AL)块。

MPM列表的候选预测方向被分为三组:相邻预测方向、派生预测方向和默认预测方向。首先,在MPM列表中添加相邻预测方向。MPM列表中每种帧内预测方向只能添入一次,即MPM列表中不能包含重复的预测方向。若完成相邻预测方向的添加后MPM列表中包含的预测方向不满6个,则添加派生的帧内预测方向到MPM列表中。若完成派生预测方向的添加后MPM列表中包含的预测方向仍不满6个,则添加默认预测方向到MPM列表中,直到导出了包含6个最可能帧内预测方向的MPM列表。

在对每个亮度块的帧内预测方向进行熵编码时,首先获取该亮度块的MPM列表,判断该亮度块选中的帧内预测方向是否在MPM列表中,若在则使用截断二元码对该预测方向在MPM中的索引号进行二进制化,索引号越小产生的截断二元码越小,之后通过算数编码器对截断二元码进行编码,可以节省比特开销。若该亮度块选中的帧内预测方向是不在MPM列表中的剩余的61种预测方向中的一个,则对这61种预测方向重新从0开始编号,选择编号能被4整除的16个预测方向作为选择模式。若该帧内预测方向在选择模式中,则使用固定4比特长度对其进行旁路编码。若该帧内预测方向在剩余的45个非选择模式中,再次重新标号,使用截断二元码对其进行二进制化,根据编号大小,产生5或6个比特长度的比特串,之后进行旁路编码。

因为JEM中的6MPM列表较为复杂,后来又有人提出使用简化的3MPM列表的方案。但是3MPM列表包括的预测方向较少,获得的预测效果不够准确,后来,又有人提出使用简化的6MPM列表(也是目前的VVC草案中使用的方法)。例如,基于图6中的上(A)块对应的目标预测方向和左(L)块对应的目标预测方向,构造当前处理块601的新的候选预测方向,其推导过程如下:

dirL==dirA

·dir<2

MPM0=dir(Planar或DC)

MPM1=Planar/DC

MPM2=50(垂直)

MPM3=18(水平)

MPM4=50-4

MPM5=50+4

·dir>=2

MPM0=dir

MPM1=Planar

MPM2=DC

MPM3=dir-1

MPM4=dir+1

MPM5=dir-2

dirL!=dirA

·都是角度

MPM0=dirL

MPM1=dirA

MPM2=Planar

MPM3=DC

MPM4=大的角度-1

MPM5=大的角度+1

·有一个是角度

MPM0=dirL

MPM1=dirA

MPM2=Planar/DC

MPM3=角度-1

MPM4=角度+1

MPM5=角度-2

第二种,是VVC草案的色度帧内预测方向构造方法,该方法的相关说明如下,如表3所示:

表3

图7为本申请实施例当前处理块对应的亮度块和色度的排布示意图,如图7所示,右侧的正方形的左半部分的灰色区域为当前处理色度块71,左侧的正方形的左半部分的灰色区域为当前处理色度块71对应的亮度区域,进行当前色度块71的帧内预测时,利用所述亮度区域的中心位置记录的预测模式,即为图7的左侧正方形中CR亮度块701的预测模式。

结合表3和图7所示的内容,可以确定,若DM得出的预测方向与后四种预测方向中的某一预测方向相同时,会将3-6行的相同模式替换为索引号为66的预测方向。

第三种,是MDMS,该方法的相关说明如下:

MDMS是一种更为复杂的色度帧内预测方向构造方法,如表4所示,相比于第一种方案,有0.2%的码率节省量,但因为复杂度过高,尚未应用到VVC中。

表4

图8为表4中DM模式和色度邻近块模式中分别采用的色度块的排布示意图,如图8(a)块801至805所示,表4中的DM模式为采用的当前色度块中心CR、左上TL、右上TR、左下BL、右下BR五个位置的对应亮度块的帧内预测模式,如图8(b)的块806至810所示,表4中的色度邻近块模式为采用的色度块空间邻近左、左上、左下、上和右上块的帧内预测方向,即写入码流的预测方向。

图9为MDMS的帧内预测方向的遍历顺序示意图,如图9所示,按照标号1至17的遍历顺序,依次进行:1.中心亮度luma块C,2.左上亮度块TL,3.右上亮度块TR,4.左下亮度块BL,5.右下亮度块BR,6.左色度chroma块L,7.左上色度块AL,8.左下色度块LB,9.上色度块A,10.右上色度块AR,11.PLANAR,12.DC,13.已有的预测方向索引号加减1,14.VER,15.HOR,16.预测方向索引号为2,17.预测方向索引号为34。

需要说明的是,上表4中的DC模式、PLANAR模式、VER(18)模式和HOR(50)模式为强制填充模式,候选列表满的情况下,会替换列表尾部的候选模式。

由上述三种已有的预测方向的构造方法可以看出,VVC亮度帧内预测方向的构造方法简单,在MPM中的已有预测方向的基础上进行增减时,都是使用已有预测方向的索引号加减1、加减2这样取邻近预测方向的操作。MDMS增益比较明显,而在MPM中的已有预测方向的基础上进行增减时,也是使用已有预测方向的索引号加减1这样取邻近预测方向的操作。

然而,这种通过已有预测方向的索引号加减1、2,构造新的预测方向的方法,没有充分考虑到当前处理块的局部内容的特点,而且没有充分利用到当前处理块周边的方向信息,因此在预测的过程中仍没有足够准确的预测效果。

基于此,在本申请实施例中,如果当前处理块周围的方向信息有多个方向时,可以利用其均值构造新的预测方向。

举例来说,在对当前处理块进行亮度和/或色度帧内预测时,如果有多个预测方向(即所述第一预测方向)作为参考,可以构造新的均值预测方向(即所述第二预测方向)作为备选信息,具体推导方法如图10所示,图10(a)中得到A块的预测方向d

在亮度MPM列表构造中的具体实现示例中,例如,A块的预测方向d

需要说明的是,以VTM3.0为基准,在原有方案的技术上,本申请实施例的技术方案能够在相同恢复视频质量的前提下,节省编码码率,具体有0.01%的比特率下降。

在其他实施例中,对于确定色度预测方向候选列表(即所述第二预测方向集合)的实现方式,例如,在MDMS及其类似解决方案下,得到的DM为角度模式,且具有相互不同的方向(例如,两个方向的索引号不同);或者,得到的当前色度块相邻块的帧内预测方向为角度模式,且有相互不等的值时,例如,有两个不同的方向d

在其他实施例中,可以只使用一个平均角度方向(即所述第二预测方向)加入候选列表(即所述第二预测方向集合),如只加入对方向d

在其他实施例中,可以只使用一个平均角度方向加入候选列表,如只加入对方向d

在其他实施例中,在构造色度预测模式列表时,由于MDMS一类的技术可以产生多个不同的角度,那么可以使用多个平均角度方向加入候选列表,如有d

基于前述的实施例,本申请实施例提供一种帧内预测装置,该装置包括所包括的各模块、以及各模块所包括的各单元,可以通过视频编码设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)或现场可编程门阵列(FPGA)等。

图11A为本申请实施例帧内预测装置的组成结构示意图,如图11A所示,所述装置11包括:

获取模块111,配置为:获取与当前处理块对应的先前重建块集合;

确定模块112,配置为:确定所述先前重建块集合中每一先前重建块对应写入码流的第一预测模式,得到第一预测模式集合;如果所述第一预测模式集合中包括至少两个方向模式,将每一所述方向模式作为第一预测方向添加至第一预测方向集合中;

矢量运算模块113,配置为:按照预设的矢量运算规则,对所述第一预测方向集合中的任意两个或多个第一预测方向进行矢量运算,得到第二预测方向集合;

帧内预测模块114,配置为:将所述第二预测方向集合与第一预测模式集合合并,得到第二预测模式集合,基于所述第二预测模式集合,对所述当前处理块进行帧内预测。

在其他实施例中,帧内预测模块114,配置为:基于所述第二预测模式集合,对所述当前处理块进行帧内预测,得到目标预测方向和所述目标预测方向对应的当前处理块中每一像素单元的预测值与原始值之间的差值。

在其他实施例中,如图11B所示,所述装置11还包括写入模块115;写入模块115,配置为将所述目标预测方向和每一所述差值写入所述当前处理块的码流。

在其他实施例中,矢量运算模块113,包括:

确定单元,配置为:将所述第一预测方向集合中的任意两个或多个具有不同方向的第一预测方向确定为一组预测组,得到预测组集合;

矢量运算单元,配置为:按照预设的矢量运算规则,对每一所述预测组中的两个或多个第一预测方向进行矢量运算,得到第二预测方向集合。

在其他实施例中,矢量运算单元,包括:

确定子单元,配置为:确定每一所述预测组中的每一第一预测方向的权值,所述权值用于表征对应的先前重建块与所述当前处理块之间的相关程度;

预处理子单元,配置为:对每一所述权值对应的第一预测方向进行预处理,以使所述预处理后的每一第一预测方向具有相同的长度;

计算子单元,配置为:将每一所述权值与对应的预处理后的第一预测方向相乘,得到第三预测方向集合;

矢量运算子单元,配置为:对所述第三预测方向集合中的任意两个或多个第三预测方向进行矢量运算,得到第二预测方向集合。

在其他实施例中,确定子单元,配置为:

确定每一所述预测组中的每一第一预测方向对应的先前重建块,与所述当前处理块之间的距离;

基于每一所述距离,按照预设的权值分配规则,给对应第一预测方向分配权值。

在其他实施例中,矢量运算子单元,配置为:

对所述第三预测方向集合中的任意两个或多个第三预测方向进行矢量相加或矢量相减,得到第二预测方向集合。

在其他实施例中,所述第一预测方向至少包括以下之一:亮度帧内预测方向和色度帧内预测方向。

以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。

需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的帧内预测方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得视频编码设备(可以是手机、平板电脑、台式机、个人数字助理、导航仪、数字电话、视频电话、电视机、传感设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件和软件结合。

对应地,本申请实施例提供一种视频编码设备,图12为本申请实施例的一种视频编码设备的硬件实体示意图,如图12所示,所述视频编码设备120包括存储器1201和处理器1202,所述存储器1201存储有可在处理器1202上运行的计算机程序,所述处理器1202执行所述程序时实现上述实施例中提供的帧内预测方法中的步骤。

需要说明的是,存储器1201配置为存储由处理器1202可执行的指令和应用,还可以缓存待处理器1202以及视频编码设备120中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(Random Access Memory,RAM)实现。

对应地,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中提供的帧内预测方法中的步骤。

这里需要指出的是:以上存储介质和设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质和设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。

应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台视频编码设备执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。

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

工业实用性

本申请实施例中,提供一种帧内预测方法,获取与当前处理块对应的先前重建块集合;确定所述先前重建块集合中每一先前重建块对应写入码流的第一预测方向(即所述当前处理块的已知候选预测方向),得到第一预测模式集合;如果所述第一预测模式集合中包括至少两个方向模式,将每一所述方向模式作为第一预测方向添加至第一预测方向集合中;按照预设的矢量运算规则,对所述第一预测方向集合中的任意两个或多个第一预测方向进行矢量运算,得到第二预测方向集合(可以理解地,所述第二预测方向集合中的第二预测方向为所述当前处理块的新的候选预测方向);将所述第二预测方向集合与第一预测模式集合合并,得到第二预测模式集合,基于所述第二预测模式集合,对所述当前处理块进行帧内预测。

这样,通过对已知的两个或多个候选预测方向进行矢量运算,从而构造出新的候选预测方向,即,将所述第二预测方向集合与第一预测模式集合合并,得到第二预测模式集合,基于所述第二预测模式集合,对所述当前处理块进行帧内预测,能够增加获得足够准确的预测效果的可能性。

相关技术
  • 视频编码参数的配置方法、装置、设备和存储介质
  • 视频编码方式的调整方法、装置、计算机存储介质及设备
  • 帧内预测方法及装置、视频编码设备、存储介质
  • 视频编码的帧内预测方法和装置、存储介质及电子设备
技术分类

06120116501613