帧内预测方法、视频编码方法、视频处理装置、存储介质与流程

文档序号:18524804发布日期:2019-08-24 10:08阅读:122来源:国知局
帧内预测方法、视频编码方法、视频处理装置、存储介质与流程

本发明涉及视频编码和解码技术领域,特别是涉及一种帧内预测方法、视频编码方法、视频处理装置、存储介质。



背景技术:

由于视频图像的数据量比较大,视频编码的主要作用是将视频像素数据(rgb,yuv等)压缩成为视频码流,从而降低视频的数据量,实现降低传输过程中的网络带宽和减少存储空间的目的。

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

一般来说,相邻像素点的亮度和色度信号值比较接近,具有强相关性,如果直接用采样数来表示亮度和色度信息,数据中存在较多的空间冗余。如果先去除冗余数据再编码,表示每个像素点的平均比特数就会下降,从而减少空间冗余进行数据压缩。在视频编码解码技术领域如何减小数据冗余成为人们关注的焦点问题。



技术实现要素:

本申请主要解决的技术问题是提供一种帧内预测方法、视频编码方法、视频处理装置、存储介质,能够去除空间冗余,提升帧内编码的压缩率。

为解决上述技术问题,本申请实施例采用的一个技术方案是:提供一种帧内预测方法,该帧内预测方法包括:将当前编码单元分割为多个子编码单元;根据子编码单元的尺寸构建对应的子编码单元的参考像素;在相应的预测模式下对子编码单元的参考像素进行滤波,以及对子编码单元的像素进行预测。

为解决上述技术问题,本申请实施例采用的另一个技术方案是:提供一种视频编码方法,该视频编码方法包括:获取当前编码单元;将编码单元分割为多个子编码单元;根据子编码单元的尺寸构建对应的子编码单元的参考像素;在相应的预测模式下对子编码单元的参考像素进行滤波,以及对子编码单元的像素进行预测。

为解决上述技术问题,本申请实施例采用的又一个技术方案是:提供一种视频处理装置,该视频处理装置包括处理器和与处理器电连接的存储器,存储器用于存储计算机程序,处理器用于调用计算机程序以执行上述的帧内预测方法或者上述的视频编码方法。

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

为解决上述技术问题,本申请实施例采用的又一个技术方案是:提供一种视频处理装置,该视频处理装置包括:分割模块,用于将当前编码单元分割为多个子编码单元;构建模块,用于根据子编码单元的尺寸构建对应的子编码单元的参考像素;滤波和预测模块,用于在相应的预测模式下对子编码单元的参考像素进行滤波,以及对子编码单元的像素进行预测。

本申请实施例将当前编码单元分割为多个子编码单元;根据子编码单元的尺寸构建对应的子编码单元的参考像素;在相应的预测模式下对子编码单元的参考像素进行滤波,以及对子编码单元的像素进行预测,能够减少参考像素的数目,进而减少参考像素构建时的内存开销和复杂度,去除空间冗余,提升帧内编码的压缩率。

附图说明

图1是本申请实施例的帧内预测方法的流程示意图;

图2是编码单元被划分成4个子编码单元的实例示意图;

图3是本申请实施例参考像素的填充方向的示意图;

图4是本申请实施例帧内预测的模式示意图;

图5是本申请实施例的视频编码方法的流程示意图;

图6是本申请视频处理装置的电连接示意图;

图7是本申请实施例存储介质的示意图;

图8是本申请实施例视频处理装置的模块示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

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

请参阅图1,图1是本申请实施例的帧内预测方法的流程示意图。在本实施例中,帧内预测方法可以包括以下步骤:

步骤s101:将当前编码单元分割为多个子编码单元。

其中,子编码单元是当前编码单元(cu,codingunit)继续向下划分的子单元。获取编码单元(cu,codingunit)的宽度(图幅中的横向尺寸)和高度(图幅中的纵向尺寸),并根据宽度和高度确定是否需要继续划分,在确定需要继续划分后,将当前编码单元分割为多个子编码单元。

编码单元的划分有垂直划分和水平划分两种划分方式,且只对尺寸大于4x4的编码单元进行划分,其中4x8和8x4的编码单元都划分成2个相同的子编码单元,其它尺寸的编码单元划分成4个相同的子编码单元,每个编码单元只能采用一种划分方式进行一次划分。如图2所示,图2是编码单元被划分成4个子编码单元的实例示意图。

步骤s102:根据子编码单元的尺寸构建对应的子编码单元的参考像素。

其中,根据子编码单元的尺寸构建对应的子编码单元的参考像素的步骤具体可以包括:获取子编码单元的宽度和高度;根据子编码单元的宽度和子编码单元的高度计算子像素单元的参考像素的数目,参考像素的数目为子编码单元的宽度和子编码单元的高度之和的两倍加一。

在本实施例中,在构建参考像素时是通过子编码单元的尺寸来构建,可以减少参考像素的数目,通过减少参考像素的数目减少了参考像素构建时的内存开销和复杂度。

按照子编码单元的左下角到左上角再到右上角的顺序填充参考像素,对于不可用的参考像素都用按照填充顺序上之前的像素进行填充,填充方向如图3所示,图3是本申请实施例参考像素的填充方向的示意图。如果起始的左下角像素位置块不可用,则按照参考像素填充方向找到第一个可用的参考像素,然后将起始到当前位置的参考像素都填充为该可用像素值。

步骤s103:在相应的预测模式下对子编码单元的参考像素进行滤波,以及对子编码单元的像素进行预测。

其中,在相应的预测模式下对所述子编码单元的参考像素进行滤波,以及对子编码单元的像素进行预测的步骤具体可以包括:选取与预测模式对应的滤波方式对子编码单元的参考像素进行滤波;根据预测模式和滤波后的参考像素对子编码单元的像素进行预测。其中,对子编码单元的参考像素进行滤波是指参考像素的平滑滤波。

请参阅图4,图4是本申请实施例帧内预测的模式示意图。在本申请实施例中,帧内预测模式分为planar、dc和多种角度模式三类,其中2~n表示普通角度模式,planar和dc为普通非角度模式。除了上述模式,本实施例还增加了一些宽角度模式。若n取66,则包括宽角度模式在内的所有帧内预测模式如图4所示,其中,2~66为普通角度模式,角度模式-13~1和67~81为宽角度模式,分别代表了不同的预测方向,模式18和50分别为水平和垂直方向。

在一种实施例中,选取与预测模式对应的滤波方式对子编码单元的参考像素进行滤波的步骤具体可以包括:在预测模式为对角线模式时,采用[121]的平滑滤波系数对参考像素进行滤波。例如,图4中所示的对角线模式是指模式2、模式34以及模式66。

在一种实施例中,选取与预测模式对应的滤波方式对子编码单元的参考像素进行滤波的步骤具体可以包括:在预测模式为planar模式时,采用[121]的平滑滤波系数对参考像素进行滤波。例如,图4中所示的planar模式是指模式0。

在一种实施例中,选取与预测模式对应的滤波方式对子编码单元的参考像素进行滤波的步骤,包括:

在预测模式为第一类普通角度模式或者第一类宽角度模式,且子编码单元的高度小于或等于预设阈值时,对子编码单元的参考像素进行离散余弦变换滤波。

在预测模式为第一类普通角度模式或者第一类宽角度模式,且子编码单元的高度大于预设阈值时,对子编码单元的参考像素进行高斯滤波。

在预测模式为第二类普通角度模式或者第二类宽角度模式,且子编码单元的宽度小于或等于预设阈值时,对子编码单元的参考像素进行离散余弦变换滤波。

在预测模式为第二类普通角度模式或者第二类宽角度模式,且子编码单元的宽度大于预设阈值时,对子编码单元的参考像素进行高斯滤波。

例如,如图4所示,第一类普通角度模式是指模式3~33(不包括水平模式18),第一类宽角度模式是指模式-13~1。第二类普通角度模式是指模式35~65(不包括垂直模式50),第二类宽角度模式是指宽角度模式67~81。预设阈值可以是1、2、4、8或16。离散余弦变换滤波可以是dct-ifchroma滤波。

在一种实施例中,选取与预测模式对应的滤波方式对子编码单元的参考像素进行滤波的步骤,包括:

在预测模式为第一类普通角度模式或者第一类宽角度模式,且子编码单元的宽度大于高度时,对子编码单元的参考像素进行离散余弦变换滤波;

在预测模式为第一类普通角度模式或者第一类宽角度模式,且子编码单元的宽度小于或者等于高度时,对子编码单元的参考像素进行高斯滤波;

在预测模式为第二类普通角度模式或者第二类宽角度模式,且子编码单元的宽度小于或者等于高度时,对子编码单元的参考像素进行离散余弦变换滤波;

在预测模式为第二类普通角度模式或者第二类宽角度模式,且子编码单元的宽度大于高度时,对子编码单元的参考像素进行高斯滤波。

例如,如图4所示,第一类普通角度模式是指模式3~33(不包括水平模式18),第一类宽角度模式是指模式-13~1。第二类普通角度模式是指模式35~65(不包括垂直模式50),第二类宽角度模式是指宽角度模式67~81。离散余弦变换滤波可以是dct-ifchroma滤波。

在上述实施方式中,根据子编码单元的尺寸和预测模式,选择相应的滤波方式,能够使得参考像素滤波更加平滑,滤波效果更好。

在一种实施方式中,还可以根据子编码单元的宽高和预测模式,对参考像素进行不同类型的滤波。首先根据当前编码的宽高和普通预测模式判断在普通预测模式下参考像素是否需要进行[121]的平滑滤波系数滤波(简称[121]滤波),如果需要滤波,将这个滤波标识flag设置为1,否则设置成0;然后确定非对角线普通角度模式的滤波,对于非对角线普通角度模式,如果flag为1,非对角线普通角度模式下参考像素进行高斯滤波,否则进行dct-ifchroma滤波;另外所有的宽角度模式下参考像素都进行高斯滤波,dc模式下参考像素不进行滤波,planar模式下在当前编码单元的宽*高>32的情况下参考像素进行[121]滤波。以n=66为例,如图4,所有角度模式的具体滤波器选取过程如下,首先将所有的角度模式分成以下四类:

a.垂直模式和水平模式(模式50,18);

b.对角线模式(模式2,34,66);

c.其余常规角度模式(模式2~66,去除a类和b类模式);

d.宽角度模式(-13~1,67~81,其中这里的0和1表示角度模式的0和1)。

滤波方式如下:

a.如果log2size=2,a类和b类模式不滤波,c类模式进行dct-ifchroma滤波,d类模式进行高斯滤波;

b.如果log2size=3,a类模式不滤波,b类模式进行[121]滤波,c类中模式3,33,35,65下使用高斯滤波,c类中其他模式下用dct-ifchroma滤波,d类模式用高斯滤波;

c.如果log2size=4,a类模式不滤波,b类模式进行[121]滤波,c类中模式3-15,21-33,35-47,53-65下用高斯滤波,c类中其他模式下用dct-ifchroma滤波,d类模式进行高斯滤波;

d.如果log2size=5,a类模式不滤波,b类模式进行[121]滤波,c类模式进行高斯滤波,d类模式进行高斯滤波;

e.如果log2size=6,方式同log2size=5。a类模式不滤波,b类模式进行[121]滤波,c类模式进行高斯滤波,d类模式进行高斯滤波。

其中,log2size=((log2[width]+log2[height])>>1),width为当前编码单元的宽度,height为当前编码单元的高度。

对于角度模式3~33(不包括水平模式18)和宽角度模式-13~1,若当前子编码单元的高小于等于8,子编码单元参考像素进行dct-ifchroma滤波,否则进行高斯滤波;对于角度模式35~65(不包括垂直模式50)和宽角度模式67~81,若当前子编码单元的宽小于等于8时,子编码单元参考像素进行dct-ifchroma滤波,否则进行高斯滤波;其他模式下子编码单元参考像素不进行滤波。

帧内预测方法进一步包括:根据子编码单元的宽度和高度以及子编码单元对应的普通角度模式获取子编码单元的宽角度模式。例如,在本实施例中,对子编码单元的像素进行预测的步骤包括:对于宽角度模式,根据当前子编码单元的尺寸选择宽角度模式,根据该宽角度模式和参考像素进行预测得到预测值。例如,在子编码单元宽度和高度不相等的情况下选择宽角度模式,根据宽度高度比选择相应的宽角度模式。

在当前子编码单元经过模式预测后,每个模式下都会得到一个预测块,通过率失真代价rdcost计算,且通过比较找出代价最小的模式做为最佳预测模式,最佳预测模式对应的预测块即为最佳预测块。rdcost代价计算的数学关系如下:

rdcost=d+λ*r(式1)

其中d、r表示采用不同预测模式时的失真和比特数,λ为拉格朗日因子。

对子编码单元的像素进行预测的步骤之后可以包括:对预测获得的预测值进行补偿。例如,在一种实施方式中,在预测得到预测值之后还可以先对预测值进行补偿,然后再进行代价计算。对预测值进行补偿具体可以为:先根据实际的预测模式和当前子编码单元的尺寸来确定预测值做预测补偿的像素范围和预测补偿的权重;然后根据预测补偿的规则获取预测补偿的像素值;最后将预测值和补偿的像素值进行加权得到该模式下的最终预测值。另外可以对子编码单元预测补偿加一些条件的限制,比如仅对符合尺寸条件的子编码单元进行预测补偿和减少预测补偿的模式等。

请参阅图5,图5是本申请实施例的视频编码方法的流程示意图。

在本实施例中,视频编码方法可以包括以下步骤:

步骤s201:获取当前编码单元。

步骤s202:将编码单元分割为多个子编码单元。

步骤s203:根据子编码单元的尺寸构建对应的子编码单元的参考像素。

步骤s204:在相应的预测模式下对子编码单元的参考像素进行滤波,以及对子编码单元的像素进行预测。

请参阅图6,图6是本申请视频处理装置的电连接示意图,该实施方式中,视频处理装置100包括处理器110和存储器120,处理器110与存储器120电连接(可以为无线电连接或者有线电连接),存储器120用于存储计算机程序,处理器110用于执行该计算机程序以实现上述任一实施例的帧内预测方法或者视频编码方法。

视频处理装置100可以是视频编解码器。处理器110还可以称为cpu(centralprocessingunit,中央处理单元)。处理器110可以是一种集成电路芯片,具有信号的处理能力。处理器110还可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器110可以是微处理器或者该处理器也可以是任何常规的处理器等。

请参阅图7,图7是本申请实施例存储介质的示意图,该实施方式中,存储介质200存储有计算机程序210,该计算机程序210被执行时能够实现上述任一实施例的帧内预测方法或者视频编码方法。

其中,该程序210可以以软件产品的形式存储在上述存储介质200中,包括若干指令用以使得一个设备或处理器执行本申请各个实施方式方法的全部或部分步骤。

存储介质200是计算机存储器中用于存储某种不连续物理量的媒体。而前述的存储介质200可以为:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序210代码的介质。

图8是本申请实施例视频处理装置的模块示意图。视频处理装置包括:

分割模块81,用于将当前编码单元分割为多个子编码单元;

构建模块82,用于根据子编码单元的尺寸构建对应的子编码单元的参考像素;

滤波和预测模块83,用于在相应的预测模式下对子编码单元的参考像素进行滤波,以及对子编码单元的像素进行预测。

在本申请所提供的几个实施方式中,应该理解到,所揭露的方法以及设备,可以通过其它的方式实现。例如,以上所描述的设备实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。

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

另外,在本发明各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

本申请实施例将当前编码单元分割为多个子编码单元;根据子编码单元的尺寸构建对应的子编码单元的参考像素;在相应的预测模式下对子编码单元的参考像素进行滤波,以及对子编码单元的像素进行预测,能够去除空间冗余,提升帧内编码的压缩率。

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

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