基于时空域相关性的视频编码Merge模式快速选择方法及装置与流程

文档序号:11207173阅读:417来源:国知局
基于时空域相关性的视频编码Merge模式快速选择方法及装置与流程

本发明属于视频解码领域,特别涉及一种基于时空域相关性的视频编码merge模式快速选择方法及装置。



背景技术:

fruc(frame-rateupconversion)是将任意两种不同帧率的视频显示格式进行转换的技术。除此之外fruc还可以应用于低比特率视频编码(lbr)中。在视频编码领域的许多学者早已研究过fruc技术,而最近,在新一代视频编码标准的制定中,fruc被再次提出来,并应用在新的标准中。

2015年itu-tvceg和iso/iecmpeg成立了一个专家小组jvet,开始研究一种新的视频编码标准,其压缩率将显著地超越现有的hevc标准。jem作为当下热烈讨论的最新编码软件,在编码框架上还是沿用了hevc的框架,包括帧内预测、帧间预测、变换、量化、熵编码、以及环路滤波等模块,但在每个模块内部,引入了以往没有的技术和工具。由于这些工具的加入,jem即新一代编码标准的编码器在编码性能,比如压缩率和视频质量,有着一定的提升,但同时极大地增加了jem的复杂度,使得实际应用较为困难。在新标准制定的会议上已经人提出关于jem复杂度的问题,并建议采取相应的改进。

jem编码器的帧间预测流程如下:步骤一:进行affinemerge模式,计算affinemerge模式的率失真代价,并将affinemerge模式设为最优模式;步骤二:判断最优模式是否为2nx2nmerge模式,计算2nx2nmerge模式的率失真代价,若2nx2nmerge模式的率失真代价小于当前最优模式的率失真代价,则将2nx2nmerge模式为最优模式;步骤三:判断最优模式是否为frucmerge模式,计算frucmerge模式的率失真代价,若frucmerge模式的率失真代价小于当前最优模式的率失真代价,则将frucmerge模式为最优模式;步骤四:判断最优模式是否为2nx2n模式,计算2nx2n模式的率失真代价,若2nx2n模式的率失真代价小于当前最优模式的率失真代价,则将2nx2n模式为最优模式;第五步:进行水平、垂直、四叉树分割。

由上述步骤可知,在jem中采用了一个新的帧间预测模式,frucmerge模式,它是基于fruc技术的一种模式。在这个模式中,一个编码单元的编码信息并不传输,而是在解码端直接获得。在frucmerge模式中,只有当2nx2nmerge的标志位为真时,才会进行frucmerge模式。frucmerge模式主要包括两个步骤:第一步,检查2nx2nmerge模式的运动矢量候选列表,并选出具有最小匹配误差的候选mv(运动矢量)作为起始点。第二步,根据bilateral(双边匹配)模式或者template(模版匹配)模式围绕起始点进行局部搜索,具有最小匹配误差的mv即为整个cu(编码单元)的mv。

第二步中的bilateral模式和template模式的具体过程如下:

如图1所示,bilateral模式搜索是在当前帧(curpic)的前后两个的参考帧(ref0、ref1)中,沿当前编码单元的运动轨迹(motiontrajectory),分别在两个不同的参考帧中找到最佳匹配的编码单元,由此获得一对运动向量(mv0、mv1)。假设运动轨迹是连续的,则运动矢量mv0和mv1将与当前图像和两个参考帧之间的时间距离td0和td1成正比。还有一种特殊情况,当当前帧在两个参考帧之间,并且从两参考帧到当前帧的时间距离相同时,bilateral模式可获得基于镜像的双向mv。

如图2所示,template模式是通过寻找当前编码块(curblock)与当前帧(curpic)和参考帧(ref0)的模版(template)之间的最佳匹配。

因为在进行frucmerge模式的第二步时会带来大量计算,且通过测试得知,jem在lp(低延时)配置下,frucmerge模式时间占比为20%~30%,如何减少该模式不必要的使用和简化该算法,从而减少一定的编码时间,是急需解决的问题。



技术实现要素:

本发明提供了一种基于时空域相关性的视频编码merge模式快速选择方法及装置,其目的在于,通过时域和空域的信息提前终止frucmerge模式,并且根据运动信息简化frucmerge的计算复杂度,针对jem编码器中的一个新工具fruc,在保证编码质量的同时,减少编码时间,提高jem的实用性。

一种基于时空域相关性的视频编码merge模式快速选择方法,在jem中,所有视频帧中的编码单元依次进行2nx2n模式、2nx2nmerge模式、affinemerge模式和frucmerge模式,获得每个模式下编码单元的率失真代价,选择最小率失真代价对应的模式作为编码单元的编码模式;若当前视频帧中当前待编码的编码单元cu在2nx2nmerge模式下的最优运动矢量mvbest=(0,0)且该编码单元cu的变换系数全0标志位cbfflag=1,则当前待编码的编码单元cu不需进行frucmerge模式。

若当前视频帧不为b帧,则当前待编码的编码单元cu跳过frucmerge模式中的bilateral模式,只进行frucmerge模式中的template模式;

进一步地,若当前视频帧为b帧,在当前待编码的编码单元cu进行frucmerge模式中的bilateral模式计算前,先计算当前待编码的编码单元cu的相邻编码单元的失真加权和disttotal以及相邻编码单元中选择frucmerge模式中的bilateral模式的编码单元数量km,再判断是否满足:km=0且disttotal>th,若满足,则当前待编码的编码单元cu跳过frucmerge模式中的bilateral模式,直接进行template模式,否则,依次进行frucmerge模式中的bilateral模式和template模式;

disttotal=distl*α+dista*β+distal*γ

其中,cux表示当前待编码的编码单元的相邻单元,x∈{left、aboveleft、above、col},culeft、cuaboveleft、cuabove、cucol分别代表当前待编码的编码单元的左邻块、左上邻块、上邻块以及同位块,所述同位块是指处于参考帧中,且位置和当前待编码的编码单元在当前帧中的位置一样的编码单元;f(mode(cux)表示当前待编码的编码单元的相邻单元的模式标志,若属于bilateral模式,取值为1,否则,取值为0;distl、dista、distal分别代表当前待编码的编码单元的的左邻块、上邻块、左上邻块所在当前模式的失真;α、β、γ分别为当前待编码的编码单元的的左邻块、上邻块、左上邻块的加权系数,取值范围为0-1;th表示加权和阈值,取值在5500~7500之间。

进一步地,所述当前待编码的编码单元的的左邻块、上邻块、左上邻块的加权系数α、β、γ的取值分别为0.4,0.4,0.2。

进一步地,所述加权和阈值th的取值为6000。

进一步地,编码单元cu在frucmerge模式中bilateral模式下的率失真代价rdcostbi按照以下公式计算获得:

rdcostbi=d+λr

其中,λ为拉格朗日乘子,r为编码单元在bilateral模式下的比特数,d是编码单元在bilateral模式下的失真,取值为sadt;

所述sadt是利用编码单元cu在2nx2n模式下的最优运动矢量对对当前视频帧图像进行运动补偿,得到补偿图像pic0、pic1,并通过计算补偿图像pic0、pic1在编码单元cu范围内所有像素之间的绝对误差和。

一种基于时空域相关性的视频编码merge模式快速选择装置,包括:

率失真代价计算单元,用于在jem中,计算所有视频帧中的编码单元依次进行各种帧间预测模式的率失真代价;

所述帧间预测模式包括2nx2n模式、2nx2nmerge模式、affinemerge模式和frucmerge模式;

选择单元,用于选择最小率失真代价对应的模式作为编码单元的编码模式;

跳过单元,对编码单元进行判断,若满足以下条件,则当前待编码的编码单元跳过frucmerge模式:

当前视频帧中当前待编码的编码单元cu在2nx2nmerge模式下的最优运动矢量mvbest=(0,0)且该编码单元cu的变换系数全0标志位cbfflag=1。

进一步地,按照以下规则对待编码的编码单元是否需要跳过frucmerge模式中的bilateral模式进行判断:

若当前视频帧为b帧,在当前待编码的编码单元cu进行frucmerge模式中的bilateral模式计算前,先计算当前待编码的编码单元cu的相邻编码单元的失真加权和disttotal以及相邻编码单元中选择frucmerge模式中的bilateral模式的编码单元数量km,再判断是否满足:km=0且disttotal>th,若满足,则当前待编码的编码单元cu跳过frucmerge模式中的bilateral模式,直接进行template模式,否则,依次进行frucmerge模式中的bilateral模式和template模式;

disttotal=distl*α+dista*β+distal*γ

其中,cux表示当前待编码的编码单元的相邻单元,x∈{left、aboveleft、above、col},culeft、cuaboveleft、cuabove、cucol分别代表当前待编码的编码单元的左邻块、左上邻块、上邻块以及同位块,所述同位块是指处于参考帧中,且位置和当前待编码的编码单元在当前帧中的位置一样的编码单元;f(mode(cux)表示当前待编码的编码单元的相邻单元的模式标志,若属于bilateral模式,取值为1,否则,取值为0;distl、dista、distal分别代表当前待编码的编码单元的的左邻块、上邻块、左上邻块所在当前模式的失真;α、β、γ分别为当前待编码的编码单元的的左邻块、上邻块、左上邻块的加权系数,取值范围为0-1;th表示加权和阈值,取值在5500~7500之间。

进一步地,所述当前待编码的编码单元的的左邻块、上邻块、左上邻块的加权系数α、β、γ的取值分别为0.4,0.4,0.2。

进一步地,所述加权和阈值th的取值为6000。

进一步地,所述率失真代价计算单元在frucmerge模式中bilateral模式下计算编码单元的率失真代价rdcostbi时按照以下公式计算获得:

rdcostbi=d+λr

其中,λ为拉格朗日乘子,r为编码单元在bilateral模式下的比特数,d是编码单元在bilateral模式下的失真,取值为sadt;

所述sadt是利用编码单元cu在2nx2n模式下的最优运动矢量对对当前视频帧图像进行运动补偿,得到补偿图像pic0、pic1,并通过计算补偿图像pic0、pic1在编码单元cu范围内所有像素之间的绝对误差和。

有益效果

本发明提供了一种基于时空域相关性的视频编码merge模式快速选择方法及装置,该方法通过时域和空域的信息提前终止frucmerge模式,并且根据运动信息简化frucmerge的计算复杂度,在保证编码质量的同时,极大的减少了编码时间,具体体现在以下几点:

1.通过2nx2nmerge模式的mv以及cbf标志,避免了进行不必要的frucmerge模式,由此减少了编码时间,提高了编码效率;

2.通过2nx2n模式所获得的运动信息,简化了frucmerge的计算过程,降低了frucmerge的计算复杂度,节省了编码时间;

3.通过判断邻块的最优模式是否全不为bilateral模式,从而避免了进行不必要的frucmerge中的bilateral模式,进一步获得了较大的时间减少量;

通过大量的实验表明,本发明所述的编码效果明显优于现有技术,且本发明简单易用,结构简单,极大地提高了jem的实用性。

附图说明

图1为bilateral模式结构示意图;

图2为template模式结构示意图;

图3为本发明的整体流程图。

具体实施方式

下面将结合附图和实施例对本发明做进一步地说明。

本发明所述方案的主要过程为,首先获取当前cu在2nx2nmerge模式下的运动信息,利用该信息来判断是否有必要进行frucmerge模式。如果2nx2nmerge模式已经足够匹配,则再进行frucmerge模式为多余,经过测试多个序列判断准确度达到95%以上。由于视频内容具有空间相关性,又通过测试发现frucmerge模式中bilateral模式时间占比较大,所以通过空域邻块的模式信息来判断是否进行bilateral模式。最后,通过2nx2n模式获得的运动矢量来简化bilateral模式中的计算。

如图3所示,一种基于时空域相关性的视频编码merge模式快速选择方法,包括以下步骤:

步骤1:jem中,首先是进行2nx2nmerge模式、affinemerge模式和frucmerge模式。

为了在frucmerge模式中获得2nx2n模式的运动矢量,需要先于frucmerge模式执行2nx2n模式。

在2nx2n模式中,会进行全搜索的运动估计,由此可以获得2nx2n模式下的最优运动矢量,其中,运动矢量包含水平位移分量mvx和垂直位移分量mvy。

且如果当前帧为b帧,会对前后两个参考帧进行搜索,因此会得到一对运动矢量,否则只有一个。

步骤2:在2nx2nmerge模式中,会根据时域和空域构建一个2nx2nmerge模式的运动矢量候选列表,在计算率失真代价时,会对该列表中的每一个mv进行计算,得到率失真代价最小的mv,作为当前待编码的编码单元cu的2nx2nmerge的最优运动矢量mvbest。

cbfflag为一个判断当前待编码的编码单元cu是否平滑的标志,即变换系数是否全为0,若cbfflag=1则代表该cu较平滑,否则纹理较为复杂。若满足:

mvbest=(0,0)&&cbfflag=1(1)

则跳过frucmerge模式,即提前终止frucmerge模式,进入步骤9结束本算法直接进行后续模式;否则,进入步骤3;

步骤3:提取当前待编码的编码单元的相邻编码单元culeft、cuaboveleft、cuabove、cucol,分别代表当前cu的左邻块、左上邻块、上邻块以及同位块。

由于culeft、cuaboveleft、cuabove、cucol均已经完成编码,可以获得上述编码单元的最优模式mode(cux),x∈{left、aboveleft、above、col}。

disttotal=distl*α+dista*β+distal*γ(4)

其中,λ为frucmerge模式中的bilateral模式,km为上述邻块cu中为bilateral模式的个数总和,distl、dista、distal分别代表左、上、左上邻块当前模式的失真,disttotal为上述邻块失真的加权和,经过大量测试得到α、β、γ的值分别为0.4,0.4,0.2时效果最佳。

若满足

km=0&&disttotal>th(5)

(th的取值在5500~7500之间,经测试得到为6000时效果最佳),则提前终止frucmerge中的bilateral模式,转到步骤8直接进行template模式;否则进行步骤4;

步骤4:如果当前帧为b帧(双向预测帧),则进行bilateral模式的预处理并继续执行步骤5,否则执行步骤8;

步骤5:提取在2nx2n模式中获得的一对最优运动矢量mv0、mv1;

步骤6:将当前待编码的编码单元cu投影到参考帧中得到cu′,根据最优运动矢量,对cu′进行运动位置补偿,具体公式如公式6、7所示:

其中,pic0,pic1代表补偿后的cu块,refpic0、refpic1代表当前待编码的编码单元cu在参考帧0和参考帧1上的投影,scu为cu的范围。

由公式8计算绝对误差和sad

得到pic0、pic1在当前cu范围内像素之间的计算绝对误差和sadt。

步骤7:判断一个编码模式是否为最佳模式的主要依据是率失真代价rdcost,如公式9所示。

rdcost=d+λr(9)

其中λ为拉格朗日乘子,r为当前预测模式下的比特数,d是当前预测模式下的失真。

在计算bilateral模式的率失真代价rdcostbi时,将公式8中得到的sadt带入到公式9中的d,避免了在计算rdcost时需要进行运动搜索所带来的复杂计算。

步骤8:进行template模式,在该模式中,有预先规定好的模版。分别对各个模版计算率失真代价rdcost,选择rdcost最小的一个作为template模式的rdcosttemp。

步骤9:结束算法进行后续其他模式。

一种基于时空域相关性的视频编码merge模式快速选择装置,包括:

率失真代价计算单元,用于在jem中,计算所有视频帧中的编码单元依次进行各种帧间预测模式的率失真代价;

所述帧间预测模式包括2nx2n模式、2nx2nmerge模式、affinemerge模式和frucmerge模式;

选择单元,用于选择最小率失真代价对应的模式作为编码单元的编码模式;

跳过单元,对编码单元进行判断,若满足以下条件,则当前待编码的编码单元跳过frucmerge模式:

当前视频帧中当前待编码的编码单元cu在2nx2nmerge模式下的最优运动矢量mvbest=(0,0)且该编码单元cu的变换系数全0标志位cbfflag=1。

按照以下规则对待编码的编码单元是否需要跳过frucmerge模式中的bilateral模式进行判断:

若当前视频帧为b帧,在当前待编码的编码单元cu进行frucmerge模式中的bilateral模式计算前,先计算当前待编码的编码单元cu的相邻编码单元的失真加权和disttotal以及相邻编码单元中选择frucmerge模式中的bilateral模式的编码单元数量km,再判断是否满足:km=0且disttotal>th,若满足,则当前待编码的编码单元cu跳过frucmerge模式中的bilateral模式,直接进行template模式,否则,依次进行frucmerge模式中的bilateral模式和template模式;

disttotal=distl*α+dista*β+distal*γ

其中,cux表示当前待编码的编码单元的相邻单元,x∈{left、aboveleft、above,colj,culeft、cuaboveleft、cuabove、cucol分别代表当前待编码的编码单元的左邻块、左上邻块、上邻块以及同位块,所述同位块是指处于参考帧中,且位置和当前待编码的编码单元在当前帧中的位置一样的编码单元;f(mode(cux)表示当前待编码的编码单元的相邻单元的模式标志,若属于bilateral模式,取值为1,否则,取值为0;distl、dista、distal分别代表当前待编码的编码单元的的左邻块、上邻块、左上邻块所在当前模式的失真;α、β、γ分别为当前待编码的编码单元的的左邻块、上邻块、左上邻块的加权系数,取值范围为0-1;th表示加权和阈值,取值在5500~7500之间。

在本装置中,所述当前待编码的编码单元的的左邻块、上邻块、左上邻块的加权系数α、β、γ的取值分别为0.4,0.4,0.2;所述加权和阈值th的取值为6000。

所述率失真代价计算单元在frucmerge模式中bilateral模式下计算编码单元的率失真代价rdcostbi时按照以下公式计算获得:

rdcostbi=d+λr

其中,λ为拉格朗日乘子,r为编码单元在bilateral模式下的比特数,d是编码单元在bilateral模式下的失真,取值为sadt;

所述sadt是利用编码单元cu在2nx2n模式下的最优运动矢量对对当前视频帧图像进行运动补偿,得到补偿图像pic0、pic1,并通过计算补偿图像pic0、pic1在编码单元cu范围内所有像素之间的绝对误差和。

为了验证本方案的有效性,利用本方案和其他传统的编码器对测试序列进行编码进行比对实验,具体如表1所示。

表1实验结果

表1中qp为量化参数,δbits%为与传统的编码器相比比特率变化百分比,δpsnr/db为与传统的编码器相比峰值信噪比变化,ts/%为与传统的编码器相比所节省的时间百分比。δbdbr表示了在同样的客观质量下,传统编码器和改进的编码器的码率节省情况。δbdbr越小说明算法效果越好。

通过在实验仿真,利用本发明所提出的最佳方案时,平均时间减少ts/%为12.96%,δbdbr/%为0.52。该算法在保证了视频质量的同时,减少了一定的编码时间,提高了编码效率。

本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

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