基于局部亮度补偿LIC的快速帧间编码模式选择方法及装置与流程

文档序号:11235190阅读:613来源:国知局
基于局部亮度补偿LIC的快速帧间编码模式选择方法及装置与流程

本发明属于视频编码领域,特别涉及一种基于局部亮度补偿lic的快速帧间编码模式选择方法及装置。



背景技术:

lic(localilluminationcompensation)是一种用于图像亮度变化的线性模型,使用缩放因子a和偏移b对原像素进行亮度补偿,并且针对每个帧间编码单元(cu)自适应地启用或禁用。最近,新一代视频编码标准的制定引入了大量的新型编码工具,lic技术则是其中之一。

近年来,随着高清、超高清视频(分辨率达4k×2k、8k×4k)应用逐步走进人们的视野,视频压缩技术受到了巨大的挑战,视频压缩编码标准体系也得到了迅猛发展,此外,各式各样的视频应用也随着网络和存储技术的发展不断涌现,如今,数字视频广播、移动无线视频、远程检测、医学成像和便携摄影等,都已走进人们的生活,大众对于视频质量的要求也越来越高,因此,视频应用的多样化和高清化趋势对于比h.265/hevc编码效率更高的下一代视频编码标准提出了更强烈的要求。正是在这样的背景下,itu-tvceg的vceg(视频编码专家组)和iso/iec的mpeg(动态图像专家组)于2016年成立了视频编码探究联合小组jvet(jointvideoexplorationteam),旨在探讨新一代视频编码标准的研发和制定。

新一代的视频编码标准依旧采用混合编码框架,包括变换、量化、熵编码、帧内预测、帧间预测以及环路滤波等模块,但是,为了提高视频压缩率,该标准采用qtbt(quadtreeplusbinarytree)的划分结构,取代了hevc的四叉树划分。在qtbt结构下,去掉了多种划分类型如cu、pu和tu分离观念,支持更弹性的cu划分类型来更好的匹配视频数据的局部特征,同时在各个模块引入了一系列相当耗时的新型编码工具,例如基于affine的merge技术,基于fruc的merge技术,局部亮度补偿技术,简称lic(localilluminationcompensation)等,这些提高压缩率的改进大幅度提高了编码器的计算复杂度,不利于新一代视频编码标准的产业化推广。因此,在保证视频主观质量下降可忽略不计的情况下优化编码器并减少编码时间是视频编解码领域亟待研究和解决的问题之一。

新一代视频编码标准引入的lic技术主要通过图像亮度变化特征和率失真函数判断当前编码块是否进行布局亮度补偿。主要分为两个步骤,第一步,若当前帧与其参考帧之间没有明显的亮度变化时,则整个帧均不进行lic。为了识别这种情况,编码器在图像进行编码之前计算出当前帧与参考帧之间的直方图差,若所有像素值的差之和小于给定的阈值,则无需对当前帧进行lic;否则,对当前帧进行lic;

在帧间预测过程中,编码器会对2nx2n、frucmerge、imv2nx2n这三种模式进行无lic和有lic两次操作,通过比较率失真函数rdcost选择当前编码块的lic模式(是或否),若是,则通过使用当前cu块及其参考块的相邻样本,采用最小二乘法计算出参数a和b。更具体地说,如图1所示,使用参考块和当前块的相邻像素的1/2下采样点进行计算,获取lic参数并对当前块所有像素点进行补偿再进行帧间预测。否则,无需补偿而直接进行帧间预测即可。

通过对新一代视频编码标准的参考软件jem的测试分析发现,在lowdelay配置下,lic技术的编码时间占总编码时间的30%~35%,因此,如果能通过相关信息提前预测出是否进行lic模式,从而避免不必要的判断选择过程将大大提高新一代视频编码标准的编码效率。



技术实现要素:

本发明的目的在于提供了一种基于局部亮度补偿lic的快速帧间编码模式选择方法及装置,通过视频的亮度变化特征和时空相关性提前预判出无需进行lic的编码块,跳过不必要且耗时的lic选择过程,降低编码的计算复杂度,减少编码时间。

一种基于局部亮度补偿lic的快速帧间编码模式选择方法,所有视频帧中的编码单元依次进行无lic的affinemerge模式、普通merge模式、frucmerge模式和2n×2n模式,获得每个模式下编码单元的率失真代价,选择最小率失真代价对应的模式作为编码单元的编码模式;若当前编码单元所在帧的lic模式标志位为真,则当前编码单元继续进行有lic的frucmerge模式和2n×2n模式,获取当前编码单元cu与参考帧匹配编码单元cu之间的亮度值残差和sumpixelsad与亮度直方图的差值之和sumhistsad,若当前编码单元cu中的亮度值残差率小于设定第一阈值或者当前编码单元cu中的直方图差值率小于设定第二阈值,则当前编码单元跳过lic模式;

所述参考帧匹配编码单元cu是利用当前编码单元在所选编码模式下的运动矢量mv,对参考帧同位块进行运动补偿得到的编码单元,所述同位块是指处于参考帧中,且位置和当前编码单元在当前帧中的位置一样的编码单元;

所述当前编码单元cu与参考帧匹配编码单元cu之间的亮度值残差和sumpixelsad是通过对当前编码单元cu与参考帧匹配编码单元cu之间对应像素点之间的像素值之差求和获得;

所述当前编码单元cu与参考帧匹配编码单元cu之间的亮度直方图的差值之和是通过对当前编码单元cu与参考帧匹配编码单元cu之间对应灰度级之间的直方图值之差求和获得;

wcu为当前编码单元cu中的像素点个数,第一阈值取值为1-10,第二阈值取值为0-2。

进一步地,在进行lic模式前,先计算当前编码单元cu的相邻编码单元的lic标志位为真的总数量再判断是否满足:若满足,则当前编码单元cu跳过lic模式,否则,当前编码单元继续进行有lic的frucmerge模式和2n×2n模式;

其中,cux表示当前编码单元的相邻单元,x∈{left、aboveleft、above、col},culeft、cuaboveleft、cuabove、cucol分别代表当前编码单元的左邻块、左上邻块、上邻块以及同位块,所述同位块是指处于参考帧中,且位置和当前编码单元在当前帧中的位置一样的编码单元;f(cux)表示当前编码单元的相邻单元的lic标志位,若为真,取值为1,否则,取值为0。

进一步地,当前编码单元进行有lic的frucmerge模式和2n×2n模式后,再接着进行无lic的imv_2n×2n模式,获得所有模式下对应的率失真代价,并以最小率失真代价对应的模式作为最佳模式;若最佳模式为经过lic处理的模式,且相邻编码单元lic标志位为真的总数量不为0,则当前编码单元继续进行有lic的imv_2n×2n模式;否则,当前编码单元跳过有lic的imv_2n×2n模式。

一种基于局部亮度补偿lic的快速帧间编码模式选择装置,包括:

率失真代价计算单元,用于对所有视频帧中的编码单元依次进行无lic的affinemerge模式、普通merge模式、frucmerge模式和2n×2n模式,获得每个模式下编码单元的率失真代价;

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

跳过单元,若当前编码单元所在帧的lic模式标志位为真时,按照以下规则判断当前编码单元是否跳过lic模式:

若当前编码单元cu中的亮度值残差率小于设定第一阈值或者当前编码单元cu中的直方图差值率小于设定第二阈值,则当前编码单元跳过lic模式;

其中,sumpixelsad和sumhistsad分别表示当前编码单元cu与参考帧匹配编码单元cu之间的亮度值残差和与亮度直方图的差值之和;

所述参考帧匹配编码单元cu是利用当前编码单元在所选编码模式下的运动矢量mv,对参考帧同位块进行运动补偿得到的编码单元,所述同位块是指处于参考帧中,且位置和当前编码单元在当前帧中的位置一样的编码单元;

所述当前编码单元cu与参考帧匹配编码单元cu之间的亮度值残差和sumpixelsad是通过对当前编码单元cu与参考帧匹配编码单元cu之间对应像素点之间的像素值之差求和获得;

所述当前编码单元cu与参考帧匹配编码单元cu之间的亮度直方图的差值之和sumhistsad是通过对当前编码单元cu与参考帧匹配编码单元cu之间对应灰度级之间的直方图值之差求和获得;

wcu为当前编码单元cu中的像素点个数,第一阈值取值为1-10,第二阈值取值为0-2。

进一步地,在进行lic模式前,通过统计当前编码单元cu的相邻编码单元的lic标志位为真的总数量并判断是否为0,若为0,则当前编码单元cu跳过lic模式,否则,当前编码单元继续进行有lic的frucmerge模式和2n×2n模式。

进一步地,还包括最佳模式选取单元,若选取的最佳模式属于经过lic处理的模式,且相邻编码单元lic标志位为真的总数量不为0,则当前编码单元继续进行有lic的imv_2n×2n模式,否则,跳过lic的imv_2n×2n模式;

所述最佳模式选取单元是在当前编码单元进行有lic的frucmerge模式和2n×2n模式后,再接着进行无lic的imv_2n×2n模式,获得所有模式下对应的率失真代价,并以最小率失真代价对应的模式选出最佳模式。

有益效果

本发明提供了一种基于局部亮度补偿lic的快速帧间编码模式选择方法及装置,该方案通过视频的亮度变化特征和时空相关性提前预判出无需进行lic的编码块,跳过不必要且耗时的lic选择过程,降低编码的计算复杂度,减少编码时间;具体体现在以下几点:

1.利用当前编码单元cu与参考帧匹配块的直方图获得视频序列的亮度变化特征,避免编码流程中耗时的lic模式选择过程,减少编码时间;

2.利用视频序列的时空相关性避免编码流程中耗时的lic模式选择过程,降低了新一代视频编码的计算复杂度,大幅度地提升了编码效率;

3.利用非imv模式得到的最佳lic模式信息避免imv_2n×2n模式中不必要的lic模式选择过程,提高编码效率;

4.本发明简单易行,有利于新一代视频编码标准的产业化推广。

附图说明

图1为获取lic参数的相邻像素示意图;

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

具体实施方式

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

为减少编码时间,提高工作效率,本发明具体采用的技术方案为:首先判断当前块所在图像帧是否需要进行lic模式的选择,若是,则首先计算当前块与参考帧匹配块的亮度直方图之差的和sumhistsad以及亮度值残差的和sumpixelsad,若sumhistsad/wcu<λ0或者sumpixelsad/wcu<λ1,则认为当前块与参考帧匹配块亮度变化不明显,则提前判定当前块无需进行亮度补偿,并跳过lic模式选择过程。其次,若非imv中最佳模式的lic模式为否,则跳过imv模式的lic模式选择过程。另外,根据视频序列的时空相关性,获取当前块的相邻块和同位块对其lic模式进行预判,若其相邻块和同位块的lic模式均为否,则认为当前块的lic模式也为否,直接跳过耗时的lic模式选择过程。

一种基于局部亮度补偿lic的快速帧间编码模式选择装置,包括:

率失真代价计算单元,用于对所有视频帧中的编码单元依次进行无lic的affinemerge模式、普通merge模式、frucmerge模式和2n×2n模式,获得每个模式下编码单元的率失真代价;

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

跳过单元,若当前编码单元所在帧的lic模式标志位为真时,按照以下规则判断当前编码单元是否跳过lic模式:

若当前编码单元cu中的亮度值残差率小于设定第一阈值或者当前编码单元cu中的直方图差值率小于设定第二阈值,则当前编码单元跳过lic模式;

其中,sumpixelsad和sumhistsad分别表示当前编码单元cu与参考帧匹配编码单元cu之间的亮度值残差和与亮度直方图的差值之和;

所述参考帧匹配编码单元cu是利用当前编码单元cu在所选编码模式下的运动矢量mv,对参考帧同位块进行运动补偿得到的编码单元,所述同位块是指处于参考帧中,且位置和当前编码单元在当前帧中的位置一样的编码单元;

所述当前编码单元cu与参考帧匹配编码单元cu之间的亮度值残差和sumpixelsad是通过对当前编码单元cu与参考帧匹配编码单元cu之间对应像素点之间的像素值之差求和获得;

所述当前编码单元cu与参考帧匹配编码单元cu之间的亮度直方图的差值之和sumhistsad是通过对当前编码单元cu与参考帧匹配编码单元cu之间对应灰度级之间的直方图值之差求和获得;

wcu为当前编码单元cu中的像素点个数,第一阈值取值为1-10,第二阈值取值为0-2。

在进行lic模式前,通过统计当前编码单元cu的相邻编码单元的lic标志位为真的总数量并判断是否为0,若为0,则当前编码单元cu跳过lic模式,否则,当前编码单元继续进行有lic的frucmerge模式和2n×2n模式。

还包括最佳模式选取单元,若选取的最佳模式属于经过lic处理的模式,且相邻编码单元lic标志位为真的总数量不为0,则当前编码单元继续进行有lic的imv_2n×2n模式,否则,跳过lic的imv_2n×2n模式;

所述最佳模式选取单元是在当前编码单元进行有lic的frucmerge模式和2n×2n模式后,再接着进行无lic的imv_2n×2n模式,获得所有模式下对应的率失真代价,并以最小率失真代价对应的模式选出最佳模式。

实施例一

一种基于局部亮度补偿lic的快速帧间编码模式选择方法,包括以下步骤:

步骤一:在帧间预测中,jem编码器依次进行无lic(无lic:未进行局部亮度补偿)的affinemerge、普通merge、frucmerge和2n×2n模式,然后根据率失真代价决策出一个最佳模式;

步骤二:首先获取当前编码单元cu所在图像帧的lic模式标志位,以此来初始化当前块的lic标志位cur_icflag,若cur_icflag=true,则继续步骤三;否则,转到步骤八;

步骤三:利用步骤一中得到的最佳模式获取运动矢量mv,然后对参考帧同位块进行运动补偿,即根据该mv对同位块进行平移得到当前cu的匹配块refcu;

步骤四:利用步骤三获得的匹配块refcu,获取当前块和匹配块中各个像素点的亮度值。据此生成亮度直方图currhist[npel]、refhist[npel],其中,npel为视频序列中亮度的最大取值,由于测试序列中亮度取值范围为0~255,故算法中取值为255。另外,通过

计算当前块与匹配块亮度值残差的和sumpixelsad,式中currcu[i]、refcu[i]分别为当前块和匹配块的像素值,wcu为cu尺寸,即像素点数。

另外,直方图生成方式如下

hist[i]=∑f(x,y,i)(x,y)∈cu,i∈[0,npel]

其中,pixel_value(x,y)为当前编码单元cu中坐标点为(x,y)处的像素值。

步骤五:利用步骤四生成的直方图currhist[npel]、refhist[npel],通过

计算当前块与匹配块亮度直方图之差的和sumhistsad。

步骤六:利用步骤四和步骤五计算所得的sumpixelsad和sumhistsad进行如下判断,若满足两式中的任意一个,则认为当前编码单元cu与匹配块亮度变化不明显,无需进行局部亮度补偿,赋值cur_icflag=false并转到步骤八;否则,cur_icflag维持原取值,即为真,并继续下一步骤

sumhistsad/wcu<λ0

sumpixelsad/wcu<λ1

式中,λ0、λ1为阈值(经过大量实验统计,当取λ0=0.5、λ1=5时编码效果最佳),wcu为当前cu尺寸,即像素点数。

步骤七:编码器进行有lic(有lic:进行局部亮度补偿)的frucmerge模式和2n×2n模式,并根据率失真代价决策出最佳模式。

步骤八:编码器进行无lic的整像素imv_2n×2n模式,依然根据率失真代价决策出最佳模式并获取该最佳模式的lic信息ic_flag_temp。然后根据cur_icflag选择后续操作,若cur_icflag=true,则进行下一步骤,否则,转到步骤十一。

步骤九:根据步骤八获得的ic_flag_temp,若为真,直接进行下一步骤,否则,转到步骤十一,认为当前编码单元cu无需进行lic模式选择过程,并赋值cur_icflag=false,

步骤十:编码器进行有lic的imv_2n×2n模式。

步骤十一:结束当前算法并进行后续其他模式的判断。

实施例二

一种基于局部亮度补偿lic的快速帧间编码模式选择方法,包括以下步骤:

步骤一:在帧间预测中,jem编码器依次进行无lic(无lic:未进行局部亮度补偿)的affinemerge、普通merge、frucmerge和2n×2n模式,然后根据率失真代价决策出一个最佳模式;

步骤二:首先获取当前编码单元cu的lic模式标志位,以此来初始化当前块的lic标志位cur_icflag,若cur_icflag=true,则继续步骤三;否则,转到步骤九;

步骤三:利用步骤一中得到的最佳模式获取运动矢量mv,然后对参考帧同位块进行运动补偿,即根据该mv对同位块进行平移得到当前编码单元cu的匹配块refcu;

步骤四:利用步骤三获得的匹配块refcu,获取当前编码单元和匹配块中各个像素点的亮度值。据此生成亮度直方图currhist[npel]、refhist[npel],其中,npel为视频序列中亮度的最大取值,由于测试序列中亮度取值范围为0~255,故算法中取值为255。另外,通过

计算当前编码单元cu与匹配块亮度值残差的和sumpixelsad,式中currcu[i]、refcu[i]分别为当前编码单元cu和匹配块的像素值,wcu为cu尺寸,即像素点数。

另外,直方图生成方式如下

hist[i]=∑f(x,y,i)(x,y)∈cu,i∈[0,npel]

其中,pixel_value(x,y)为当前编码单元cu中坐标点为(x,y)处的像素值。

步骤五:利用步骤四生成的直方图currhist[npel]、refhist[npel],通过

计算当前编码单元cu与匹配块亮度直方图之差的和sumhistsad。

步骤六:利用步骤四和步骤五计算所得的sumpixelsad和sumhistsad进行如下判断,若满足以下两式中的任意一个,则认为当前编码单元cu与匹配块亮度变化不明显,无需进行局部亮度补偿,赋值cur_icflag=false并转到步骤九;否则,cur_icflag维持原取值,即为真,并继续下一步骤;

sumhistsad/wcu<λ0

sumpixelsad/wcu<λ1

式中,λ0、λ1为阈值(经过大量实验统计,当取λ0=0.5、λ1=5时编码效果最佳),wcu为当前cu尺寸,即像素点数。

步骤七:若步骤六中的公式均不满足,获取当前编码单元cu的上方、左方、左上方、以及参考帧同位块cuabove、culeft、cuaboveleft、cucol。这些相邻块和同位块均已经完成编码,可以获得其lic标志位icflag(标志着某cu块是否进行局部亮度补偿),根据

其中,cux∈{cuabove、culeft、cuaboveleft、cucol},计算得到当前编码单元cu的lic模式标志位cur_icflag。若cur_icflag=true,进行下一步骤,否则,转到步骤九。

步骤八:编码器进行有lic(有lic:进行局部亮度补偿)的frucmerge模式和2n×2n模式,并根据率失真代价决策出最佳模式。

步骤九:编码器进行无lic的整像素imv_2n×2n模式,依然根据率失真代价决策出最佳模式并获取该最佳模式的lic信息ic_flag_temp。然后根据cur_icflag选择后续操作,若cur_icflag=true,则进行下一步骤,否则,转到步骤十一。

步骤十:编码器进行有lic的imv_2n×2n模式。

步骤十一:结束当前算法并进行后续其他模式的判断。

实施例三

一种基于局部亮度补偿lic的快速帧间编码模式选择方法,具体过程如图2所示,包括以下步骤:

步骤一:在帧间预测中,jem编码器依次进行无lic(无lic:未进行局部亮度补偿)的affinemerge、普通merge、frucmerge和2n×2n模式,然后根据率失真代价决策出一个最佳模式;

步骤二:首先获取当前cu的lic模式标志位,以此来初始化当前块的lic标志位cur_icflag,若cur_icflag=true,则继续步骤三;否则,转到步骤九;

步骤三:利用步骤一中得到的最佳模式获取运动矢量mv,然后对参考帧同位块进行运动补偿,即根据该mv对同位块进行平移得到当前cu的匹配块refcu;

步骤四:利用步骤三获得的匹配块refcu,获取当前块和匹配块中各个像素点的亮度值。据此生成亮度直方图currhist[npel]、refhist[npel],其中,npel为视频序列中亮度的最大取值,由于测试序列中亮度取值范围为0~255,故算法中取值为255。另外,通过

计算当前块与匹配块亮度值残差的和sumpixelsad,式中currcu[i]、refcu[i]分别为当前块和匹配块的像素值,wcu为cu尺寸,即像素点数。

另外,直方图生成方式如下

hist[i]=∑f(x,y,i)(x,y)∈cu,i∈[0,npel]

其中,pixel_value(x,y)为当前cu中坐标点为(x,y)处的像素值。

步骤五:利用步骤四生成的直方图currhist[npel]、refhist[npel],通过

计算当前块与匹配块亮度直方图之差的和sumhistsad。

步骤六:利用步骤四和步骤五计算所得的sumpixelsad和sumhistsad进行如下判断,若满足两式中的任意一个,则认为当前编码单元cu与匹配块亮度变化不明显,无需进行局部亮度补偿,赋值cur_icflag=false并转到步骤九;否则,cur_icflag维持原取值,即为真,并继续下一步骤;

sumhistsad/wcu<λ0

sumpixelsad/wcu<λ1

式中,λ0、λ1为阈值(经过大量实验统计,当取λ0=0.5、λ1=5时编码效果最佳),wcu为当前cu尺寸,即像素点数。

步骤七:若步骤六中的公式均不满足,则获取当前cu的上方、左方、左上方、以及参考帧同位块cuabove、culeft、cuaboveleft、cucol。这些相邻块和同位块均已经完成编码,可以获得其lic标志位icflag(标志着某cu块是否进行局部亮度补偿),根据

其中,cux∈{cuabove、culeft、cuaboveleft、cucol},计算得到当前编码单元cu的lic模式标志位cur_icflag。若cur_icflag=true,进行下一步骤,否则,转到步骤九。

步骤八:编码器进行有lic(有lic:进行局部亮度补偿)的frucmerge模式和2n×2n模式,并根据率失真代价决策出最佳模式。

步骤九:编码器进行无lic的整像素imv_2n×2n模式,依然根据率失真代价决策出最佳模式并获取该最佳模式的lic信息ic_flag_temp。然后根据cur_icflag选择后续操作,若cur_icflag=true,则进行下一步骤,否则,转到步骤十二。

步骤十:根据步骤九获得的ic_flag_temp,若为真,直接进行下一步骤,否则,转到步骤十二,认为当前编码单元cu无需进行lic模式选择过程,并赋值cur_icflag=false;

步骤十一:编码器进行有lic的imv_2n×2n模式。

步骤十二:结束当前算法并进行后续其他模式的判断。

在实例中所述的块即为编码单元。

为了验证本发明的正确性以及有效性,基于参考软件jem4.0在visualstudio2015软件上实现实施例三所述方法。所有实验的具体编码参数的配置选用jem标准配置文件:encoder_lowdelay_jvet10.cfg以及对应测试序列的标准配置文件。

为了验证算法性能的好坏,采用bdbr(bjotegaarddeltabitrate)以及δt两个指标来进行评估。其中,bdbr是用来评估算法对视频质量的影响,bdbr越大说明算法对视频质量的影响越大,即算法的性能越差,其主要是通过设置四组不同的量化参数qp以获取四组不同bits以及psnr来进行计算。δt则是反映当前算法对编码器效率的提升,其计算公式如下所示:

其中,torg代表使用不加任何快速算法的原始编码器编码所使用的时间,tnew代表加快速算法后编码所需时间,δt则代表加快速算法后编码器在效率上提升的百分比。

通过实验仿真,实验结果如表1所示,δbits%为与传统的编码器相比比特率变化百分比,δpsnr/db为与传统的编码器相比峰值信噪比变化。

表1实验结果

根据实验仿真结果表1可知:应用本发明所述方法后,编码时间降低了24%,而bdbr上升仅为0.49。由此实验结果可以看出,本发明在保证视频主观质量的前提下,大幅度地提高了编码效率,达到了本发明的目的。

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

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