一种深度视频快速帧内编码方法与流程

文档序号:15752354发布日期:2018-10-26 18:01阅读:330来源:国知局
一种深度视频快速帧内编码方法与流程

本发明涉及视频编码领域,尤其涉及一种深度视频快速帧内编码方法。



背景技术:

近年来,随着多媒体技术的快速发展和用户需求的不断提升,3d视频技术获得了极大的关注。3d视频所包含的信息量远远超过2d视频,对视频编码技术提出了更高的要求。根据视频表达格式的不同,3d视频编码方法可以分为两类:一类是基于多视点视频(multiviewvideo,mvv)格式,另一类是基于多视点加深度(multiviewvideoplusdepth,mvd)格式。mvd视频格式减少了彩色视频的数目,同时引入了和彩色视频对应的深度视频,可以利用基于深度图的绘制技术(depthimagebasedrendering,dibr)灵活地绘制虚拟视点,大大提高了传输效率。

深度视频具有和彩色视频不同的特性,主要由大部分具有相似深度值的平滑区域构成,只在深度不连续处存在锐利的边界。3d-hevc(新一代视频编码标准的3d扩展)是基于mvd格式的视频编码标准,其引入了多种编码工具以更加有效地编码深度视频。然而,编码效率的提升导致了复杂度的显著增加,阻碍了3d-hevc标准的实际应用。针对深度视频的低复杂度编码方法,已成为当前的研究热点。

3d-hevc是在hevc的基础上进行的拓展,继续沿用四叉树划分的编码结构,在帧内预测中除了35种传统预测模式外,针对深度视频引入了深度建模模式等编码工作,在提高压缩效率的同时,增加了编码复杂度。一些学者展开了帧内预测优化方法研究。gu等人提出了一种深度帧内编码快速dmm(深度模型模式)选择算法,该方法根据全rd(率失真)代价计算列表里的第一种模式进行预选,跳过dmm中不必要的rd代价计算过程,从而获得编码时间节省。silva等人利用深度块边界方向来减少用于模式粗选的角度预测模式数,并对planar模式和最可能模式相关性进行了探究。min等人定义了水平、竖直、和对角的边缘复杂度,通过计算父级编码单元和子级编码单元的参数值判断编码单元是否进一步划分;shang等人利用canny算子提取深度图边界信息,并定义编码单元块边界密度参数,用于判断编码单元划分是否可以提前终止。

发明人在实现本发明的过程中,发现现有技术中至少存在以下缺点和不足:

现有技术中的方法往往基于盲遍历过程,而未考虑深度视频纹理特性和帧内预测模式、预测单元(predictionunit,pu)模式之间的联系;现有方法基于四叉树的划分结构,需要依次遍历0~3深度层,缺少对深度层分布特点的研究。



技术实现要素:

本发明提供了一种深度视频快速帧内编码方法,本发明在保证视频质量无明显下降的前提下,对3d-hevc编码标准中深度视频的帧内预测编码进行优化,从而降低编码计算复杂度,详见下文描述:

一种深度视频快速帧内编码方法,所述方法包括以下步骤:

将每帧视频图像划分成编码树单元,每一个编码树单元按照四叉树结构进一步分解为若干方形的编码单元;每个编码单元又分割成一个或多个预测单元;

基于预测单元的纹理特性,结合哈达玛变换代价和方差构造快速决策公式,对预测单元的帧内模式进行提前筛选,若满足条件则直接将直流模式和平面模式加入到全rd代价计算列表中作为候选模式;

对全rd代价计算列表进行率失真优化,根据邻域pu模式和cbf标志位,为当前预测单元从intra2n×2n和intran×n两种pu模式中选出最佳的pu模式;

根据邻域ctu编码深度、结合cbf标志位确定是否对编码单元进行再次划分;

采用视点合成优化算法,利用加权平均绘制视点的失真和深度图的失真,用来度量失真,进行深度视频编码的率失真优化。

其中,所述结合哈达玛变换代价和方差构造快速决策公式具体为:

其中,var表示当前pu的方差,直观地表征预测单元的像素值变化程度;th表示设定的阈值;rhad表示哈达玛代价取值,表征当前预测单元在采用某个预测模式进行编码时的失真大小。当var=0或rhad小于等于阈值时,将dc或者planar模式作为最佳预测模式;

所述rhad由下式计算得到:

rhad=max(rplanar,rdc);

在进行哈达玛变换时,所用变换矩阵hm是一个2m×2m的矩阵,称作哈达玛变换矩阵,hm的定义式如下所示:

其中,2n为变换矩阵的阶数,用来限制m的取值范围。

进一步地,所述根据邻域pu模式和cbf标志位,为当前预测单元从intra2n×2n和intran×n两种pu模式中选出最佳的pu模式具体为:

获取邻域已编码的pu模式和cbf标志位;

按照pu模式提前决策公式计算tpcur,当三个相邻预测单元的模式均为intra2n×2n并且cbf=0时,当前pu直接选择intra2n×2n模式,跳过在intran×n模式的全rd代价计算过程。

进一步地,所述pu模式提前决策公式具体为:

tpcur=intra2n×2n,

iftpl=intra2n×2n&&tpu=intra2n×2n&&tpl-u=intra2n×2n

&&cbf=0

其中,tpcur表示当前pu的模式,tpl、tpu和tpl-u分别表示当前pu的左方、上方和左上方相邻pu的模式,cbf标志位表示变换残差系数。

其中,所述根据邻域ctu编码深度、结合cbf标志位确定是否对编码单元进行再次划分具体为:

获取邻域编码单元的深度和cbf标志位;

按照定义的判决公式,计算cu_flag,若相邻编码单元深度值均小于或等于当前编码单元的深度且cbf标志位为0时,cu_flag=false,当前编码单元不再进一步划分;

否则编码单元将继续划分,并在后续层中执行复杂的预测过程。

进一步地,所述判决公式具体为:

其中,cu_flag为编码单元是否继续划分的标志位;dc表示当前编码单元深度;dl、du和dl-u分别表示左方、上方和左上方相邻编码单元的深度。

本发明提供的技术方案的有益效果是:

1、本发明通过分析深度视频纹理特性,在保证视频质量无明显下降的情况下,节省了帧内预测的模式粗选时间和pu模式遍历时间,降低了运算复杂度;

2、本发明考虑了深度视频的空域相关性,通过分析相邻cu(编码单元)的最佳预测深度来决定当前cu是否进一步划分,实现了基于空域相关性的cu划分提前终止算法。

附图说明

图1为一种深度视频快速帧内编码方法的流程图;

图2为空域相邻编码单元示意图;

图3为本发明算法与原始3d-hevc编码方法的深度视频编码时间对比图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面对本发明实施方式作进一步地详细描述。

实施例1

为了克服现有技术的不足,本发明实施例提出了一种基于内容特性的深度视频帧内快速编码方法,在保证视频质量无明显下降的情况下减少编码时间,具体的技术方案主要分为以下几个步骤:

101:将每帧视频图像划分成编码树单元,每一个编码树单元按照四叉树结构进一步分解为若干方形的编码单元;每个编码单元又分割成一个或多个预测单元;

102:基于预测单元的纹理特性,结合哈达玛变换代价和方差,构造快速决策公式对预测单元的帧内模式进行提前筛选,满足条件则直接将直流模式和平面模式加入到全rd代价计算列表中作为候选模式;

103:对全rd代价计算列表进行率失真优化,根据邻域已编码pu模式和cbf标志位,为当前预测单元从intra2n×2n和intran×n两种pu模式中选出最佳的pu模式;

104:根据邻域ctu编码深度、结合cbf标志位确定是否对编码单元进行再次划分;

105:采用视点合成优化算法,利用加权平均绘制视点的失真和深度图的失真,用来度量失真,进行深度视频编码的率失真优化。

其中,步骤103中的根据邻域已编码pu模式和cbf标志位,从intra2n×2n和intran×n两种pu模式中选出最佳的pu模式具体为:

获取邻域已编码的pu模式和cbf标志位;

按照pu模式提前决策公式计算tpcur,当三个相邻预测单元的模式均为intra2n×2n并且cbf=0时,当前pu直接选择intra2n×2n模式,跳过在intran×n模式的全rd代价计算过程。

进一步地,步骤104中的所述根据邻域ctu编码深度、结合cbf标志位确定是否对编码单元进行再次划分具体为:

获取邻域编码单元的深度和cbf标志位;

按照定义的判决公式,计算cu_flag,若相邻编码单元深度值均小于或等于当前编码单元的深度且cbf标志位为0时,cu_flag=false,当前编码单元不再进一步划分;

否则编码单元将继续划分,并在后续层中执行复杂的预测过程。

综上所述,本发明实施例通过上述步骤101-步骤105考虑了深度视频的空域相关性,通过分析相邻cu(编码单元)的最佳预测深度来决定当前cu是否进一步划分,实现了基于空域相关性的cu划分提前终止算法。

实施例2

下面结合具体的实例、计算公式对实施例1中的方案进行进一步地介绍,详见下文描述:

下面以视频序列kendo为例,通过对其进行编码来说明算法的具体实施过程。输入的视频序列顺序如下:彩色视点3,深度视点3,彩色视点1,深度视点1,彩色视点5,深度视点5,其中彩色视点采用原始3d-hevc编码方法进行编码,深度视点采用本发明实施例提出的方法进行编码。

一、编码树单元划分

hevc采用的是基于块的编码方式,块的尺寸可以通过划分自适应改变其大小。编码器在对一帧图像进行处理时,该图像首先被划分成64×64像素点大小的编码树单元(codingtreeunit,ctu)。每一个编码树单元可以按照四叉树结构进一步分解为若干方形的编码单元(codingunit,cu)。编码单元的尺寸可以是64×64、32×32、16×16或8×8最多可有4层分解,对应深度分别为0、1、2、3。

一个编码单元可分割成一个或多个预测单元(predictionunit,pu),预测单元是进行帧内和帧间预测的基本单位,用来承载与预测过程相关的信息。当编码单元定义为帧内预测模式时,预测单元有两种划分选择,2n×2n和n×n。预测单元划分完成后,即可为每个预测单元进行35种预测模式的率失真代价计算和优化过程。

其中,本发明实施例对35种预测模式的遍历过程做出了改进,具体工作在下述第二部分进行叙述。

二、帧内预测模式快速决策

划分出预测单元后,需要通过模式粗选(roughmodedecision,rmd)为该预测单元选出k个候选预测模式。本发明实施例提出,对于平滑预测单元,根据其纹理特性,基于哈达玛变换代价和方差进行帧内模式的提前决策:

若预测单元的方差为0或哈达玛变换代价小于设定的阈值,直接选取直流模式(dcmode)和平面模式(planarmode)[1]作为候选模式,跳过其他不必要的模式预测过程。提出的帧内预测模式的快速决策公式如下:

其中,var表示当前pu的方差,可以直观地表征预测单元的像素值变化程度,当var=0时,预测单元内像素值无变化,倾向于选择dc或者planar模式作为最佳预测模式;th表示设定的阈值,取值为10。rhad表示哈达玛代价取值表征当前预测单元在采用某个预测模式进行编码时的失真大小,可由下式计算得到:

rhad=max(rplanar,rdc);

在进行哈达玛变换时,所用变换矩阵hm是一个2m×2m的矩阵,称作哈达玛变换矩阵,hm的定义式如下所示:

其中,2n为变换矩阵的阶数,用来限制m的取值范围。

当预测单元方差为0或者哈达玛代价小于某个阈值时,为true,直接把dc模式和planar模式作为候选模式加入到全rd代价计算列表中,跳过其他预测模式的模式粗选以及率失真代价计算过程;然后对候选列表中的dc和planar模式进行率失真优化,从筛选后的模式中选取最佳模式。

其中,上述具体的率失真优化步骤为本领域技术人员所公知,本发明实施例对此不做赘述。

通过对上述的处理,从计算35种预测模式的率失真代价变成了计算2种预测模式的率失真代价,降低了计算复杂度,提高了计算速率。

三、预测单元快速决策

按照上述方法选出一个pu的最佳预测模式后,还需在intra(帧内)2n×2n和intran×n两种pu模式中,通过率失真优化选出最佳的pu模式。

新一代视频编码标准(highefficiencyvideocoding,hevc)采用z字形扫描(z-scan)顺序对cu进行编码,这意味着在编码当前cu时,其上方、左方以及左上方cu最佳编码模式及pu类型已经确定,空间位置如图2所示。对于深度视频来说,空域相关性表现得更加明显。根据其空域相关性,提出的pu模式提前决策公式如下:

tpcur=intra2n×2n,

iftpl=intra2n×2n&&tpu=intra2n×2n&&tpl-u=intra2n×2n

&&cbf=0

其中,tpcur表示当前pu的模式,tpl、tpu和tpl-u分别表示当前pu的左方、上方和左上方相邻pu的模式,cbf(codedblockflag)标志位表示变换残差系数。

本发明实施例中,采用cbf标志位进一步限制pu类型决策过程,执行过程如下:

a)获取邻域已编码的pu模式和cbf标志位。本发明实施例中,采用cbf标志位进一步限制预测单元的类型决策过程。

b)按照上述定义的pu模式提前决策公式计算tpcur。当三个相邻预测单元的模式均为intra2n×2n并且cbf=0时,当前pu直接选择intra2n×2n模式,跳过在intran×n模式的全rd代价计算过程。

四、基于空域相关性的编码单元划分提前终止

基于四叉树划分结构的编码需要依次遍历0~3深度层,在每个深度层都需要通过大量计算选取该层的最佳预测模式,此过程非常耗时。

经编码单元深度分布统计,深度视频测试序列中多数的ctu选取深度0为最佳预测深度,深度2和深度3只占到了很小的比例。由此可以看出深度视频编码中倾向于选择大尺寸的编码单元作为最佳编码单元。

根据上述cu深度分布特性,提出对cu划分进行提前终止。以ctu为单位,定义的判决条件如下:

其中,cu_flag为表示编码单元是否继续划分的标志位;dc表示当前编码单元深度;dl、du和dl-u分别表示左方、上方和左上方相邻编码单元的深度,空间位置如图2所示。

执行过程如下:

a)获取邻域编码单元的深度和cbf标志位,使用cbf标志位进一步限制cu划分提前终止过程;

b)按照上述定义的判决公式,计算cu_flag。若相邻编码单元深度值均小于或等于当前编码单元的深度且cbf标志位为0时,cu_flag=false,当前编码单元不再进一步划分;否则编码单元将继续划分,并在后续层中执行复杂的预测过程。

五、视点合成优化

深度视频编码中采用视点合成优化算法,进行深度视频编码的率失真优化。利用加权平均绘制视点的失真和深度图的失真,用来度量失真。计算公式如下:

distortion=w1ddepth+w2dsynth

其中,distortion表示通过视点合成优化后得到的失真;w1和w2表示两个加权系数;ddepth表示深度图自身的失真;dsynth表示合成视点的失真。

ddepth通过计算差值平方和(sumofsquareddifferences,ssd)或绝对误差和(sumofabsolutedifferences,sad)得到;dsynth通过合成视点的失真改变量(synthesizedviewdistortionchange,svdc)计算得到。在计算svdc时,需要绘制完整的虚拟视点帧,使用绘制模型(rendermodel)获得svdc,过程如下:

(1)初始化过程:在编码当前深度块之前,利用参考块的纹理图和深度图合成参考虚拟视点图;

(2)遍历编码模式并计算每种编码模式的失真:编码当前块时,选中一种编码模式,得到重建出的深度图,并利用该深度图合成虚拟视点图;将合成的虚拟视点图与(1)中参考虚拟视点图进行svdc计算;

(3)重新部分合成:按照步骤(2)遍历各种编码模式,选取代价最小的编码模式作为最佳编码模式,选取该模式下的深度图为当前块的深度图,并进行虚拟视点合成。将合成后虚拟视点图作为下一编码块的参考虚拟视点图。

综上所述,本发明实施例通过分析深度视频内容特性,提出了深度视频帧内快速编码方法,在保证视频质量无明显下降的情况下,降低了运算复杂度,提高了编码速度。

实施例3

下面结合具体的实验数据对实施例1和2中的方案进行可行性验证,详见下文描述:

实验测试在3d-hevc的参考软件htm16.2上进行。使用标准测试序列kendo在标准测试条件(ctc)下进行。彩色视频和深度视频量化参数对设置为(25,34),(30,39),(35,42)和(40,45),实验采用全帧内编码结构。

为使本方法的效果具有可比性,在相同的实验条件下,将本方法和htm算法进行对比:

参见图3,实验结果显示,相比htm算法,本方法提出的深度视频快速帧内编码方法整体上节省了62.9%的深度视频编码时间,而合成视点视频质量仅降低了0.0259db。

参考文献

[1]jlainema,fbossen,w-jhan,etal.intracodingofthehevcstandard[j].2013ieeetransactionsoncircuits&systemsforvideotechnology(tcsvt),2013,22(12):1792-1801.

本发明实施例对各器件的型号除做特殊说明的以外,其他器件的型号不做限制,只要能完成上述功能的器件均可。

本领域技术人员可以理解附图只是一个优选实施例的示意图,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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