一种基于时空相关性的快速屏幕内容编码方法与流程

文档序号:13534464阅读:332来源:国知局
一种基于时空相关性的快速屏幕内容编码方法与流程

本发明属于屏幕内容编码(scc)技术领域,尤其涉及一种低复杂度的快速scc帧内视频编码方法。



背景技术:

近年来,随着高清、超高清视频(分辨率达4k×2k、8k×4k)应用走进人们的视野,视频压缩技术受到了巨大的挑战。此外,各式各样的视频应用也随着网络和存储技术的发展不断涌现。视频应用的多样化和高清趋势对视频压缩性能提出了更高的要求。为此,2010年4月itu-t的视频编码专家组(vceg)和iso/iec的运动图像专家组(mpeg)成立了视频编码联合开发组(jct-vc),联手制定新一代视频编码标准,在2013年完成了高效视频编码hevc(highefficiencyvideocoding)标准,也称为h.265。hevc编码标准是根据自然采集图像序列在时间、空间上的相关性进行编码的。但是屏幕内容图像不仅包括相机捕获内容,还有大量计算机生成的图形和文字。这导致屏幕内容图像有不同的特性,包括高对比度,有限的色彩数目,较多的平整、重复区域,高频成分比较多等,使其采用hevc标准编码达不到理想效果。对此,根据屏幕内容特性,在hevc编码标准基础上扩展出了屏幕内容编码(scc)标准,其标准化工作在2016年已经基本完成。hevc标准的编码复杂度约为上一代编码标准h.264/avc的2到3倍,而scc标准新增帧内块复制(ibc)、调色板(plt)模式、自适应色彩变换(act)、自适应运动矢量分辨率(amvr)等编码工具,导致编码复杂度进一步增加。scc的帧内编码复杂度主要集中在编码单元(cu)划分和帧内预测模式选择上。scc同样采用灵活的块划分模式,包括编码单元(cu)、预测单元(pu)、变换单元(tu)。cu的尺寸有64×64,32×32、16×16、8×8,分别对应着划分深度为0、1、2、3。其中64×64的cu被定义为编码树单元(ctu),采用四叉树划分结构,每个ctu能够递归的划分成4个大小相等的cu,直到最小的cu(8×8)。为了找到最优化的cu划分方案,编码器必须要考虑所有的划分情况。图1表示了一个ctu如何被划分成子cu的过程。每个cu都有对应关联的pu和tu,其中pu是帧内预测、帧间预测的基本单元。一切与预测相关的信息都定义在pu中。对于一个2n×2n的cu,帧内预测单元pu的划分模式有两种:2n×2n和n×n,其中n×n模式,只有当cu尺寸为最小时才会采用。当scc作帧内预测时,除了传统帧内预测模式(conventionalintraprediction,cip),还包括帧内块复制模式(intrablockcopying,ibc)和调色板(palette,plt)模式,在编码器中的使用顺序如图2所示。其中,cip模式包括dc模式,planar模式和33种角度预测模式。ibc模式是一种类似于运动补偿的方法,在当前帧内找到与当前cu匹配的已重建过的cu,并以块矢量(bv)来表示。因此,ibc适用于出现重复图案的cu。plt模式适用于像素值数目有限的cu,其原理就是将有限的像素值进行编号并构造一个像素表,cu中的每个像素都会在像素表中有一个相对应的索引号,scc对这些索引号和像素表进行编码。最后,scc采用率失真优化(rdo)技术从众多模式中选取率失真代价最小的模式作为最佳模式。由于帧内编码时,scc编码器需要遍历所有可能的cu划分组合和帧内预测模式,这个遍历过程的计算量太大了,这样大的计算负担对于很多需要实时编码的应用是不合适的。



技术实现要素:

本发明的目的是针对现有scc视频编码复杂高的缺点,提出了一种基于时空相关性的快速屏幕内容编码方法,在保证编码质量的同时降低编码的复杂度,尤其适用于需要对屏幕视频实时压缩的场合,例如各种便携式移动终端设备。

本发明提出了一种基于时空相关性的快速屏幕内容编码方法,具体实现包括基于时空相关性的cu划分模块、基于时空相关性的模式选择模块和基于编码比特的cu划分模块。

基于时空相关性的cu划分模块是先计算当前帧cu与前一帧同位置的cu的绝对帧差,将cu划分为两类。然后根据当前帧cu与其时空相邻的cu在深度和帧内预测模式上的相关性,判定当前cu提前结束划分,或者判定当前cu只做plt模式预测。

基于时空相关性的模式选择模块,利用当前cu与其时空相邻cu的模式相关性,跳过特定的预测模式。

基于编码比特的cu划分模块,先通过cu击中率与编码比特的曲线图得到各深度下cu编码比特的阈值,若当前cu的编码比特小于该阈值,则提前结束cu的划分。

本发明利用屏幕内容图像中cu的深度和帧内预测模式在时空上的相关性,减少了cu划分的复杂度,简化了帧内预测模式的选择过程,有效地提高了scc的编码效率。

本发明解决其技术问题所采用的技术方案如下

(一)基于时空相关性的cu划分模块

步骤(i)、计算当前cu与前一帧同位置cu的绝对帧差值afd,以描述两者的相似度;afd的计算公式如下:

其中,pcur(i,j)表示在当前cu位置(i,j)的像素y分量值,而pcol(i,j)表示在前一帧同位置cu位置(i,j)的像素y分量值,w和h分别表示当前cu的宽和高。

步骤(ii)、根据相似度大小将cu分为两类:i类和ii类。i类cu与前一帧同位置cu的相似度比较高,而ii类cu与前一帧同位置处cu的相似度较低;具体分类规则如下:

其中,η为调整参数,根据实验确定为1。因此上述式(2)中的afd的阈值实际上就是当前cu的尺寸。

步骤(ⅲ)对i类cu和ii类cu进行相应划分优化。设置标记flag_ns并初始化为0,作为cu是否提前结束划分的条件。

针对i类cu,采用前一帧同位置cu的深度来对当前cu的划分进行优化,规则如下:

1)当前cu深度depthcur小于前一帧同位置cu深度depthcol,即depthcur<depthcol,对当前cu只作plt模式预测,跳过cip模式和ibc模式。

2)当前cu深度depthcur大于或等于前一帧同位置cu深度depthcol,即depthcur≥depthcol,且前一帧同位置cu的预测模式不为plt模式,则判定当前cu提前结束划分,设定标记flag_ns为1。

针对ii类cu,采用时空相邻cu的深度来对当前cu的划分规则进行优化,规则如下:

1)获取时空相邻cu的深度信息,设当前帧ft中的cu块cucur的左邻cu、上邻cu、左上邻cu和其前一帧ft-1同位置的cu分别表示为culef,cuabv,cuabl,cucol,这四个cu对应的深度为depthlef、depthabv、depthabl、depthcol。并计算相邻cu的最大深度值depthmax和最小深度值depthmin:

depthmax=max(depthlef,depthabv,depthabl,depthcol)(3)

depthmin=min(depthlef,depthabv,depthabl,depthcol)(4)

2)确定当前cu的深度范围,当depthcur<depthmin,当前cu只做plt模式预测,跳过cip模式和ibc模式。当depthcur>depthmax,判定当前cu提前结束划分,设定标记flag_ns为1。

(二)基于时空相关性的模式选择模块:

步骤(1)、对每个cu,获取时空相邻cu的帧内预测模式。

设当前帧ft中的cu块cucur的左邻cu、上邻cu、左上邻cu和其前一帧ft-1同位置的cu分别表示为culef,cuabv,cuabl,cucol,这四个cu对应的预测模式分别记为mlef、mabv、mabl、mcol;

步骤(2)、对每个cu采用sobel算子计算边缘点的数目gn,并统计具有不同亮度分量值的像素数目pvn。

步骤(3)、根据相邻cu的帧内预测模式、gn以及pvn,对当前cu的帧内模式选择进行相应的优化,跳过特定的预测模式。其中,模式选择优化规则为:

模式条件(3a)跳过ibc模式,只做cip模式预测和plt模式预测;

模式条件(3b)跳过cip模式,只做ibc模式预测和plt模式预测;

模式条件(3c)跳过ibc模式和cip模式,只做plt模式预测。

其中,α、β、γ为调整参数,根据实验确定为0.1、0.5、10。

(三)基于编码比特的cu划分模块:

对于深度小于3的cu,若编码比特biti小于阈值ti,则当前cu提前结束划分,否则继续划分cu。

本发明有益效果如下:

本发明的基本原理是利用与当前帧cu时间相邻的cu,以及与当前帧cu空间相邻的cu在深度和帧内预测模式上的相关性,以时空相邻的cu深度和编码模式来判断当前帧cu的深度和帧内预测模式,提出了cu提前结束划分和跳过特定预测模式的算法;以及利用编码比特与cu深度和纹理的相关性,即当cu纹理简单的时候,所需的编码比特较少,因此cu被继续划分的可能性较小,据此提出了cu提前结束划分的算法,以降低屏幕内容编码的复杂性,大大节省scc视频编码的时间。经过实验测定,在保持视频编码质量的前提下,使用本发明的低复杂度scc编码方法比标准scc编码方法能够在编码时间上节省50%以上,而编码码率仅仅提高了1.4%,大大提高了视频编码的效率,具有较强的实用性。

附图说明

图1为scc的cu划分模式示意图;

图2为scc的帧内预测模式示意图;

图3为时空相邻cu的具体位置示意图;

图4为本发明的方法流程图;

图5为cu击中率与编码比特阈值的曲线图;

图6为本发明的方法流程图;

具体实施方式

下面结合附图和实施例子对本发明作进一步说明。

如图1-6所示,一种基于时空相关性的快速屏幕内容编码方法,采用scc视频编码的scm2模型,测试条件参考jct-vc的通用测试条件(jctvc-r1015),使用scm2模型自带屏幕内容编码的全帧内编码配置文件encoder_intra_main_scc.cfg。

一种基于时空相关性的快速屏幕内容编码方法,其流程图如图4所示,其中基于时空相关性的cu划分模块的具体步骤是:

步骤(i)、计算当前cu与前一帧同位置cu的绝对误差和afd以描述两者的图像相似度,afd的计算公式如下:

其中,pcur(i,j)表示在当前cu位置(i,j)的像素y分量值,而pcol(i,j)表示在前一帧同位置cu位置(i,j)的像素y分量值,w和h分别表示当前cu的宽和高。

步骤(ii)、根据相似度大小将cu分为两类,i类和ii类。i类cu与前一帧同位置cu的相似度比较高,而ii类cu与前一帧同位置处cu的相似度较低,具体分类规则如下:

其中,η为调整参数,根据实验确定为1。因此上述式(2)中的afd的阈值实际上就是当前cu的尺寸。

对两类cu分别采用一定的规则进行划分优化,其中,设置标记flag_ns并初始化为0,作为cu是否提前结束划分的条件。i类cu和ii类cu的优化规则如下:

(i)针对i类cu,采用前一帧同位置cu的深度来对当前cu的划分进行优化,规则如下:

1)当前cu深度小于前一帧同位置cu的深度,即depthcur<depthcol,对当前cu只计算复杂度较低的plt模式的率失真代价,跳过cip模式和ibc模式。

2)当前cu深度大于或等于当前一帧同位置cu深度,即depthcur≥depthcol,且前一帧同位置cu的模式不为plt模式,则判定当前cu提前结束划分,设定标记flag_ns为1。

(ii)针对ii类cu,采用时空相邻cu的深度来对当前cu的划分规则进行优化,规则如下:

1)获取时空相邻cu的深度信息。如图3所示,设当前帧ft中的cu块cucur的左邻cu、上邻cu、左上邻cu和其前一帧ft-1同位置的cu分别表示为culef,cuabv,cuabl,cucol,这四个cu对应的深度为depthlef、depthabv、depthabl、depthcol。并计算相邻cu的最大深度值depthmax和最小深度值depthmin:

depthmax=max(depthlef,depthabv,depthabl,depthcol)(3)

depthmin=min(depthlef,depthabv,depthabl,depthcol)(4)

2)确定当前cu的深度范围,当depthcur<depthmin,当前cu只做plt模式预测,跳过cip模式和ibc模式,当depthcur>depthmax,判定当前cu提前结束划分,设定标记flag_ns为1。

基于时空相关性的模式选择模块的具体步骤是:

步骤(1)、对每个cu,获取时空相邻cu的帧内模式。如图3所示,设当前帧ft中的cu块cucur的左邻cu、上邻cu、左上邻cu和其前一帧ft-1同位置的cu分别表示为culef,cuabv,cuabl,cucol,这四个cu对应的预测模式分别记为mlef、mabv、mabl、mcol;

步骤(2)、对每个cu采用sobel算子计算边缘点的数目gn,并统计具有不同亮度分量值的像素数目pvn。其中,边缘点数目gn的计算方法为:

a、根据sobel边缘检测算子,分别计算每个像素梯度的水平分量和垂直分量,当前cu位置为(i,j)的像素p(i,j)的梯度分量计算公式如下:

其中,i=2,3,…,w-1,j=2,3,…,h-1,w和h分别是cu的宽度和高度。

b、得到每个像素的梯度幅值g(i,j),其简化计算公式如下:

g(i,j)=|gx(i,j)|+|gy(i,j)|(7)

c、统计当cu的梯度幅值大于阈值的像素点数目,即边缘点数目gn:

其中,函数δ(g(i,j))定义为:

其中,λ为阈值,根据实验确定为128。

步骤(3)、根据相邻cu的帧内模式情况、gn以及pvn,对当前cu的帧内模式选择进行相应的优化,跳过特定的预测模式,模式选择优化规则为:

模式条件(3a)跳过ibc模式,只做cip模式预测和plt模式预测;

模式条件(3b)跳过cip模式,只做ibc模式预测和plt模式预测;

模式条件(3c)跳过ibc模式和cip模式,只做plt模式预测。

其中,α、β、γ为调整参数,根据实验确定为0.1、0.5、10;w、h分别表示当前cu块的宽和高。

最后,对深度小于3的cu,采用基于编码比特的cu划分方法。对于深度小于3的cu,当编码比特biti小于阈值ti时,当前cu提前结束划分,否则继续划分cu。阈值ti的计算方法如下:

不同深度cu的编码比特阈值是不同的。通过计算cu击中率与编码比特的关系来确定各深度的阈值ti(i=0,1,2),这里cu击中率定义为:采用本发明提出的基于编码比特的cu划分方法,所得到的判定为提前结束划分的cu深度,与原始scc编码得到的cu深度相比较,统计具有相同深度值的cu数目,然后将其除以提前结束划分的总cu数目,就得到cu的击中率。cu各深度的阈值ti(i=0,1,2)的具体计算方法如下:

(1)采用20帧视频格式为yuv4:4:4的4个视频序列kimono1、sc_robot、sc_programming和basketballscreen序列,统计每个cu深度下当qp取22、27、32、37,编码比特位于[0,300]区间时的cu击中率。这样就得到每个qp下,对应于3个cu深度的cu击中率与编码比特的曲线图,如图5的第1,2,3,4行所示。

(2)对于每一个cu深度,将其对应于4个qp下的cu击中率与编码比特的曲线图的数据进行平均,即对图5中的每一列第1行到第4行的曲线数据求平均,得到该深度下的平均cu击中率与编码比特的曲线图,即图5中最后1行的曲线图。在图5最后一行曲线图中,从左到右分别表示深度为0,1,2情况下的平均cu击中率与编码比特的曲线图。在每个平均cu击中率与编码比特的曲线图中,选择一个最小的编码比特阈值ti(i=0,1,2),使得其对应的图中4个序列kimono1、sc_robot、sc_programming和basketballscreen的cu击中率都大于90%。这样,深度为i=0,1,2下的cu的编码比特阈值ti就可以分别确定为40,25,35。

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