用于HEVC的帧内决策方法、装置和存储介质与流程

文档序号:17376838发布日期:2019-04-12 23:24阅读:156来源:国知局
用于HEVC的帧内决策方法、装置和存储介质与流程
本发明涉及视频处理
技术领域
,尤其是用于hevc的帧内决策方法、装置和存储介质。
背景技术
:术语解释:高效视频编码标准(hevc,highefficiencyvideocoding):是一种在2013年发布的视频编码技术,它是在h.264标准的基础上为了满足数字视频产业对高清和超高清视频存储及传输的日益迫切的发展需求而开发的新一代视频编码标准。hevc在混合编码框架的基础上,结合大量技术创新,在保证相同视频质量的情况下,相比h.264节省近50%的码流。编码树单元(ctu,codingtreeunit)、编码单元(cu,codingunit)、预测单元(pu,predictionunit):ctu、cu和pu均为hevc中的数据结构。粗略模式决策(rmd,roughmodedecision)、率失真优化(rdo,ratedistortionoptimization):rmd和rdo均为hevc中的数据处理过程。哈达玛(hadamard)变换代价(cost):是哈达玛变换过程中得到的一个数值。为了灵活、高效适应不同视频场景,hevc采用了基于块的树形分层结构,首先把一帧图像划分为固定大小64*64的ctu,一个ctu可以直接作为一个编码单元cu,也可以如图1所示,以四叉树的形式递归划分为子cu。如图2所示,cu的大小根据四叉树划分深度depth变化,其中depth=0即ctu不划分时,cu有最大尺寸64*64;划分depth=3时cu有最小尺寸8*8。因此hevc中划分深度允许范围[0,3],cu的大小范围[8*8,64*64]。cu划分完成后进行预测单元pu的划分,hevc的帧内预测单元pu的划分内模式如图3所示,大于8*8的2n*2ncu,pu为2n*2n模式;8*8的cu,pu有2n*2n和n*n两种可选模式。其中亮度分量帧内预测支持5种大小的pu:4*4/8*8/16*16/32*32。每一种大小的pu都对应35种预测模式,包括dc模式、planar模式和33种角度模式,如图4所示。如果每个pu都要遍历全部35种模式,通过rdo过程选择最优,将导致非常高的复杂度。当前的hevc编码端采用三个步骤的帧内模式决策:第一步,执行粗略模式决策,根据hadamard变换成本构建候选列表;第二步,根据相邻pu的模式添加到候选列表中找到mpm(mostprobablemodes),添加到候选列表;最后一步,遍历候选列表中的所有模式,通过rdo过程获得最佳的帧内预测模式。现有技术的缺点在于,rdo过程需要遍历每个预测单元的模式,而预测单元可能存在的模式有35个,这导致了rdo过程有非常高的复杂度。一些现有技术为了解决这个问题,通过sobel算子为预测单元中的每个像素计算梯度,根据梯度方向选择少量模式作为候选,但这又引入了复杂的算法,需要较高的时间复杂度。技术实现要素:为了解决上述技术问题,本发明的目在于提供用于hevc的帧内决策方法、装置和存储介质。一方面,本发明包括一种用于hevc的帧内决策方法,包括以下步骤:获取至少一个预测单元;分别计算各预测单元中多个不同方向对应的像素差值;根据每个预测单元各自对应的多个像素差值对各预测单元进行分类;组建第一候选列表;所述第一候选列表用于标明各预测单元、分类结果以及像素差值最小值对应的方向;分别计算各预测单元在每个候选模式下的哈达玛变换代价;根据所述哈达玛变换代价计算所述第一候选列表的预测能力分数;根据各预测能力分数,从第一候选列表中选择具有相应大小和哈达玛变换代价的预测单元,从而组建第二候选列表;执行率失真优化过程对第二候选列表中的预测单元进行处理,输出最优预测单元。进一步地,所述分别计算各预测单元中多个不同方向对应的像素差值这一步骤,具体为:分别计算各预测单元中水平方向、垂直方向、右下方向和右下方向对应的像素差值。进一步地,所述水平方向对应的像素差值所用的计算公式为:d(h)=|f(1,2)-f(1,0)|+|f(2,3)-f(2,1)|;所述垂直方向对应的像素差值所用的计算公式为:d(v)=|f(2,1)-f(0,1)|+|f(3,2)-f(1,2)|;所述右下方向对应的像素差值所用的计算公式为:d(dr)=|f(3,2)-f(1,0)+|f(2,3)-f(0,1)+|f(3,3)-f(0,0)|;所述左下方向对应的像素差值所用的计算公式为:d(dl)=|f(2,0)-f(0,2)+|f(3,1)-f(1,3)|+|f(3,0)-f(0,3)|;式中,d(h)为水平方向对应的像素差值,d(v)为垂直方向对应的像素差值,d(dr)为右下方向对应的像素差值,d(dl)为左下方向对应的像素差值,f(x,y)为各预测单元中坐标点(x,y)对应的像素值。进一步地,所述根据每个预测单元各自对应的多个像素差值对各预测单元进行分类这一步骤,具体包括:分别查找每个预测单元各自对应的多个像素差值中的最小值和次最小值;计算每个预测单元各自对应的像素差值次最小值与像素差值最小值之比;当预测单元的像素差值次最小值与像素差值最小值之比大于第一阈值时,将该预测单元分类为强预测类;当预测单元的像素差值次最小值与像素差值最小值之比小于第一阈值,且像素差值次最小值对应的方向与像素差值最小值对应的方向是相邻的时,将该预测单元分类为弱预测类;当预测单元的像素差值次最小值与像素差值最小值之比小于第一阈值,且像素差值次最小值对应的方向与像素差值最小值对应的方向是相对的时,将该预测单元分类为无效预测类。进一步地,所述根据所述哈达玛变换代价计算所述第一候选列表的预测能力分数这一步骤,具体包括:根据对应哈达玛变换代价的大小顺序对第一候选列表中的各预测单元进行排列;遍历第一候选列表,根据第一候选列表中的预测单元总数、各哈达玛变换代价以及哈达玛变换代价最小值,计算所述第一候选列表的预测能力分数。进一步地,所述第一候选列表的预测能力分数的计算公式为式中,chada(m)为预测单元m的哈达玛变换代价,m为第一候选列表,α为第一候选列表的预测能力分数,c0为第一候选列表中各预测单元对应的哈达玛变换代价的最小值。进一步地,在所述获取至少一个预测单元这一步骤之前,还包括以下步骤:使用具有多层的分类器接收输入的编码树单元;所述分类器中除最后一层以外的各层用于根据设定的深度输出第一标志位;所述分类器的最后一层用于输出第二标志位;所述第一标志位用于控制由编码树单元划分得到编码单元的过程,所述第二标志位用于控制由编码单元划分得到预测单元的过程;接收根据第二标志位划分得到的大小为4×4的预测单元。进一步地,所述分类器包括第一层、第二层、第三层和第四层,所述第一层用于输出与大小为64×64的编码单元对应的第一标志位,所述第二层用于输出与大小为32×32的编码单元对应的第二标志位,所述第三层用于输出与大小为16×16的编码单元对应的第三标志位,所述第四层用于输出与大小为8×8的编码单元对应的第四标志位。另一方面,本发明还包括一种用于hevc的帧内决策装置,包括存储器和处理器,所述存储器用于存储至少一个程序,所述处理器用于加载所述至少一个程序以执行本发明方法。另一方面,本发明还包括一种存储介质,其中存储有处理器可执行的指令,所述处理器可执行的指令在由处理器执行时用于执行本发明方法。本发明的有益效果是:通过建立第一候选列表,使得hevc中的rdo过程无需遍历每个预测单元的模式,只需要处理第一候选列表中的预测单元的模式,大幅降低了算法复杂度和时间复杂度。附图说明图1为hevc技术中将ctu划分为cu的原理图;图2为hevc技术中所得cu的结构示意图;图3为hevc技术的帧内预测单元pu的划分内模式原理图;图4为hevc技术的预测单元的预测模式示意图;图5为本发明帧内决策方法的流程图;图6为本发明实施例中预测单元上各像素的示意图;图7为本发明实施例所用分类器的原理图;图8为本发明实施例所用分类器的结构图。具体实施方式本发明一种用于hevc的帧内决策方法,参照图5,包括以下步骤:s1.获取至少一个预测单元;s2.分别计算各预测单元中多个不同方向对应的像素差值;s3.根据每个预测单元各自对应的多个像素差值对各预测单元进行分类;s4.组建第一候选列表;所述第一候选列表用于标明各预测单元、分类结果以及像素差值最小值对应的方向;s5.分别计算各预测单元在每个候选模式下的哈达玛变换代价;s6.根据所述哈达玛变换代价计算所述第一候选列表的预测能力分数;s7.根据各预测能力分数,从第一候选列表中选择具有相应大小和哈达玛变换代价的预测单元,从而组建第二候选列表;s8.执行率失真优化过程对第二候选列表中的预测单元进行处理,输出最优预测单元。通过执行步骤s2-s4,建立用于粗略模式决策过程的第一候选列表。本实施例中,执行步骤s1获取大小为4×4的预测单元。所述步骤s2,即分别计算各预测单元中多个不同方向对应的像素差值这一步骤,具体为:s2.分别计算各预测单元中水平方向、垂直方向、右下方向和右下方向对应的像素差值。对于如图6所示的预测单元,每个小方格分别表示预测单元上的一个像素点,每个小方格中的数对(x,y)表示该像素的坐标,该像素具有相应的像素值f(x,y),两个像素点之间的像素值之差为像素值差。所述水平方向对应的像素差值所用的计算公式为:d(h)=|f(1,2)-f(1,0)|+|f(2,3)-f(2,1)|;所述垂直方向对应的像素差值所用的计算公式为:d(v)=|f(2,1)-f(0,1)|+|f(3,2)-f(1,2)|;所述右下方向对应的像素差值所用的计算公式为:d(dr)=|f(3,2)-f(1,0)+|f(2,3)-f(0,1)+|f(3,3)-f(0,0)|;所述左下方向对应的像素差值所用的计算公式为:d(dl)=|f(2,0)-f(0,2)+|f(3,1)-f(1,3)|+|f(3,0)-f(0,3)|;式中,d(h)为水平方向对应的像素差值,d(v)为垂直方向对应的像素差值,d(dr)为右下方向对应的像素差值,d(dl)为左下方向对应的像素差值。本实施例中,所述步骤s3,即根据每个预测单元各自对应的多个像素差值对各预测单元进行分类这一步骤,具体包括:s301.分别查找每个预测单元各自对应的多个像素差值中的最小值和次最小值;s302.计算每个预测单元各自对应的像素差值次最小值与像素差值最小值之比;s303.当预测单元的像素差值次最小值与像素差值最小值之比大于第一阈值时,将该预测单元分类为强预测类;s304.当预测单元的像素差值次最小值与像素差值最小值之比小于第一阈值,且像素差值次最小值对应的方向与像素差值最小值对应的方向是相邻的时,将该预测单元分类为弱预测类;s305.当预测单元的像素差值次最小值与像素差值最小值之比小于第一阈值,且像素差值次最小值对应的方向与像素差值最小值对应的方向是相对的时,将该预测单元分类为无效预测类。步骤s301-s305是在执行步骤s2的基础上执行的。通过执行步骤s2,每个预测单元都分别具有相应的四个像素差值,即d(h)、d(v)、d(dr)和d(dl),由于运动方向上的像素变化比其他方向上的像素变化更加缓慢,因此每个预测单元对应的这四个像素差值一般具有不同的大小。通过执行步骤s301,将某个预测单元中四个像素差值中的最小值,即像素差值最小值找出来,记为mindir,然后将四个像素差值中的仅大于最小值的次最小值,即像素差值次最小值找出来,记为secmindir。步骤s302中,计算每个预测单元的secmindir与mindir之比,即步骤s303-s305中,通过将每个预测单元的与预设的第一阈值thre1进行比较,来对预测单元进行分类。当认为当前的预测方向十分贴近运动方向,将该预测单元分类为强预测类;当并且mindir和secmindir的方向相邻的,认为得到的预测方向比较贴近运动方向,将该预测单元分类为弱预测类;当并且mindir和secmindir的方向相对,认为得到的预测方向是无效的,将该预测单元分类为无效预测类。根据步骤s301-s305的分类结果,执行步骤s4,可以得到如表1所示的第一候选列表。表1其中,第一候选列表中的每个预测单元在候选模式栏下,具体地用hevc中模式的索引号“0,1,5...15”等来表示。由表1可以得知,经过步骤s2-s4的处理,每个预测单元都至少获得了“像素差值最小值对应的方向”这一参数,这可以为后续的率失真优化过程提供信息,可以更加科学地选择出率失真优化过程的候选列表,避免只依赖预测单元的大小来决定率失真优化过程的处理对象,使得率失真优化过程的处理结果更加准确。本实施例中,所述步骤s6,即根据所述哈达玛变换代价计算所述第一候选列表的预测能力分数这一步骤,具体包括:s601.根据对应哈达玛变换代价的大小顺序对第一候选列表中的各预测单元进行排列;s602.遍历第一候选列表,根据第一候选列表中的预测单元总数、各哈达玛变换代价以及哈达玛变换代价最小值,计算所述第一候选列表的预测能力分数。步骤s601中,优选地,根据对应哈达玛变换代价的升序对第一候选列表中的各预测单元进行排列。进一步作为优选的实施方式,在步骤s602中,所述第一候选列表的预测能力分数的计算公式为式中,chada(m)为预测单元m的哈达玛变换代价,m为第一候选列表,α为第一候选列表的预测能力分数,c0为第一候选列表中各预测单元对应的哈达玛变换代价的最小值。步骤s7中,将各预测单元对应的预测能力分数α与预设的第二阈值thre2进行比较,根据比较结果,从第一候选列表中选择具有相应大小和哈达玛变换代价的预测单元,从而组建第二候选列表,具体比较方法为:当α>thre2时,表明第一候选列表中不同预测单元的哈达玛变换代价相差较大,预测能力明显不同,率失真优化过程需要较多的候选模式才能保证预测准确性,因此将选择较多的预测单元,这些预测单元对应着多个不同的分类结果。当α<thre2时,表明第二候选列表中不同预测单元的预测能力比较接近,因此率失真优化过程需要较少的预测模式即可,将选择较少的预测单元。在预测能力分数α与预设的第二阈值thre2进行比较的过程中,还考虑预测单元大小的影响,即选择出来组成第二候选列表的预测单元的个数n是预测能力分数α与预测单元大小size的函数,即n(size,α)。通过执行步骤s7,可以得到如表2所示的第二候选列表,表中的数字表示rdo过程要处理的预测单元的个数。表2size\α[0,0.2)[0.2,0.4)[0.4,0.6)[0.6,1)2*211234*424688*8246816*16112332*32112364*641123进一步作为优选的实施方式,在步骤s1,即获取至少一个大小为4×4的预测单元这一步骤之前,还包括以下步骤:使用具有多层的分类器接收输入的编码树单元;所述分类器中除最后一层以外的各层用于根据设定的深度输出第一标志位;所述分类器的最后一层用于输出第二标志位;所述第一标志位用于控制由编码树单元划分得到编码单元的过程,所述第二标志位用于控制由编码单元划分得到预测单元的过程;接收根据第二标志位划分得到的大小为4×4的预测单元。所述分类器包括第一层、第二层、第三层和第四层,所述第一层用于输出与大小为64×64的编码单元对应的第一标志位,所述第二层用于输出与大小为32×32的编码单元对应的第二标志位,所述第三层用于输出与大小为16×16的编码单元对应的第三标志位,所述第四层用于输出与大小为8×8的编码单元对应的第四标志位。本实施例使用神经网络进行cu-pu划分的快速决策。cu-pu的划分决策基于一个四层的分类器,如图7所示,针对一个ctu,对应图2根据中的划分深度depth,使用分类器的层级l,l∈{1,2,3,4}标记。前三层表示cu的划分,使用标志位标识对于当前cu或者子cu是否继续进行四叉树划分(=1表示划分,=0表示不继续划分)。当划分到depth=3时,第四层标志位表示8*8大小的cu选择pu划分为n*n模式即4*4的pu(=1),或者2n*2n模式即8*8大小的pu(=0)。因此神经网络的预测输出即每层的划分标志位的预测值本实施例中cu-pu快速划分神经网络结构如图8所示,以一个ctu为输入,以分类器中每层的划分标志位输出。首先,网络输入一个ctu后,对应分类器的层级l,l∈{1,2,3,4}产生四个分支,分别对应64*64/32*32/16*16/8*8的cu的标志位;第二步,预处理进行下采样时,由于l越小即当前cu的划分depth越小,纹理越光滑,因此对分支b1/b2/b3分别下采样至8*8/16*16/32*32,b4不进行下采样即保持64*64;第三步,进行卷积提取特征的过程中,为了特征的多样性,仍然将所有四个分支上后面两个卷积层提取到的特征集中到一个矢量中,最终的特征矢量共包含8个featuremaps;第四步,b1,b2,b3,b4在全连接层的最终输出分别对应l=1,2,3,4的cu标志位,分别有1,4,16,64个参数,也即本实施例的实验结果:为了证明本实施例方法的效果,使用参考软件hm16.17,在allintra配置下,分别设置qp=22,27,32,37,使用classb/c/d/e/f中的测试序列,统计每个视频序列bd-rate和编码时间的平均值,结果如表3所示。表3本发明还包括一种用于hevc的帧内决策装置,包括存储器和处理器,所述存储器用于存储至少一个程序,所述处理器用于加载所述至少一个程序以执行本发明所述用于hevc的帧内决策方法。本发明用于hevc的帧内决策装置可执行方法实施例的任意组合实施步骤,具备该方法相应的功能和有益效果。本发明还包括一种存储介质,其中存储有处理器可执行的指令,所述处理器可执行的指令在由处理器执行时用于执行本发明所述用于hevc的帧内决策方法。将经过本发明改进的hevc应用在视频编码,可以取得更佳的编码质量。以上是对本发明的较佳实施进行了具体说明,但对本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1