一种屏幕内容视频编码的快速编码方法与流程

文档序号:15359245发布日期:2018-09-05 00:26阅读:252来源:国知局

本发明涉及一种视频信号的处理方法,尤其是涉及一种屏幕内容视频编码的快速编码方法。



背景技术:

随着科学技术的快速发展,人们对视频观看和处理的要求越来越高。网络技术以及流媒体技术的快速更新,高清、超高清等视频技术的兴起,视频获取、处理及播放的方法日益增多。由于视频会议、远程教育、共享屏幕、无线显示器等应用的出现,人们对屏幕内容视频(scv)的需求日益增加。屏幕内容视频主要有四种类型:具有运动的文本和图形的视频、混合内容视频、动画、由摄像机拍摄的视频。

为了更好地适应视频处理的要求,2013年1月视频编码联合小组(jointcollaborativeteamonvideocoding,jct-vc)提出了新一代视频编码标准——高效视频标准(highefficiencyvideocoding,hevc)。与上一代视频编码标准h.264相比,视频编码标准hevc引入了新的编码技术,其压缩效率比h.264提高将近一倍。但是,视频编码标准hevc是为了适应高分辨率、高帧率的视频,对于典型的屏幕内容视频的编码效率的提升并不是很高。因此,jct-vc在2014年3月提出了针对屏幕内容视频特点的编码标准——屏幕内容编码(screencontentcoding,scc),并开发了scc测试模型(scctestmodel,scm)。

与视频编码标准hevc相比,视频编码标准scc增加了四种新的编码技术:(1)帧内块拷贝(intrablockcopy,ibc)技术,当帧内块拷贝作为当前编码单元(codingunit,cu)的最优编码模式时,当前编码单元内的所有预测单元(predictionunit,pu)在当前编码帧已编码的所有编码单元中寻找相似的重构块,因此,帧内块拷贝可以看作是帧内的运动补偿过程。(2)调色板模式(palettemode,plt),对于屏幕内容,许多块仅包含有限数量的亮度分量值,对于具有这种特点的编码单元,可以使用调色板模式枚举每个亮度值,然后将每个样本用索引值表示其属于具体那种颜色,实验表明,使用调色板模式编码这种编码单元比传统的hevc预测变换的编码效率更高。(3)自适应颜色变换(adaptivecolortransform,act),因为很多屏幕内容视频使用rgb颜色空间,所以去除色彩间冗余对于scc非常重要。marpe等人提出的自适应颜色变换技术可以提高编码效率,但是,在scc中,使用编码单元级的适配器将编码残差转换成不同的颜色空间,也就是rgb颜色空间的图像块可以被直接编码,或者是在编码时被自适应地转换为ycocg颜色空间。(4)自适应运动矢量解析(adaptivemotionvectorresolution,amvr),与连续运动的视频序列相比,屏幕内容视频通常具有离散的运动矢量,因此,对于屏幕内容,不需要使用分数运动补偿。在scc中,整像素精度和亚像素精度被分层控制,运用在不同的视频场景。上述这些新的编码技术的引入在带来较高的率失真性能和编码压缩效率的情况下,也带来了很高的编码计算复杂度,不利于视频编码的实时应用。因此,如何在不影响编码率失真性能的同时,尽可能地降低编码复杂度是当前视频编码领域的研究热点。



技术实现要素:

本发明所要解决的技术问题是提供一种屏幕内容视频编码的快速编码方法,其在保证率失真性能的前提下,能够有效降低编码时间。

本发明解决上述技术问题所采用的技术方案为:一种屏幕内容视频编码的快速编码方法,其特征在于包括以下步骤:

步骤1):将待编码的屏幕内容视频中当前待处理的屏幕内容图像定义为当前帧;

步骤2):将当前帧中当前待处理的编码树单元定义为当前编码树单元;

步骤3):将当前编码树单元中当前待编码的编码单元定义为当前编码单元;

步骤4):计算当前编码单元中的所有像素点的像素值的方差,记为var,并作为当前编码单元的第一特征;计算当前编码单元中的所有边缘像素点的总个数与当前编码单元中的所有像素点的总个数的比例,记为p,并作为当前编码单元的第二特征;统计当前编码单元中不同像素值的总个数,记为m,并作为当前编码单元的第三特征;

步骤5):当当前编码单元的尺寸为64×64时,将当前编码单元的第一特征、第二特征和第三特征作为输入参数,输入到已训练好第一bp神经网络模型中对当前编码单元进行分类,输出当前编码单元的标签,若当前编码单元的标签为1,则当前编码单元为屏幕内容编码单元;若当前编码单元的标签为0,则当前编码单元为自然内容编码单元;

当当前编码单元的尺寸为32×32时,将当前编码单元的第一特征、第二特征和第三特征作为输入参数,输入到已训练好第二bp神经网络模型中对当前编码单元进行分类,输出当前编码单元的标签,若当前编码单元的标签为1,则当前编码单元为屏幕内容编码单元;若当前编码单元的标签为0,则当前编码单元为自然内容编码单元;

当当前编码单元的尺寸为16×16时,将当前编码单元的第一特征、第二特征和第三特征作为输入参数,输入到已训练好第三bp神经网络模型中对当前编码单元进行分类,输出当前编码单元的标签,若当前编码单元的标签为1,则当前编码单元为屏幕内容编码单元;若当前编码单元的标签为0,则当前编码单元为自然内容编码单元;

步骤6):定义屏幕内容帧内预测模式包括帧内预测模式中的dc模式、planar模式、数字标识为10的方向模式、数字标识为18的方向模式、数字标识为26的方向模式、数字标识为34的方向模式;当当前编码单元为屏幕内容编码单元时,采用屏幕内容帧内预测模式以及帧内块拷贝和调色板模式对当前编码单元进行编码,然后判断编码过程中确定的当前编码单元的最优模式是否为dc模式或planar模式或帧内块拷贝中的merge模式或调色板模式,如果是,则执行步骤7);否则,执行步骤8);

当当前编码单元为自然内容编码单元时,采用帧内预测模式对当前编码单元进行编码,然后执行步骤7);

步骤7):判断编码过程中确定的当前编码单元的最优模式是否为的dc模式或planar模式,如果是,则执行步骤9);否则,执行步骤8);

步骤8):如果当前编码单元的深度等于2或3,则执行步骤9);如果当前编码单元的深度等于0或1,则对当前编码单元进行分割,得到当前编码单元的下一深度的四个编码单元,然后将下一深度左上的编码单元作为当前单元编码,然后返回步骤4)继续执行;

步骤9):将当前编码树单元中下一个待编码的编码单元作为当前编码单元,然后返回步骤4)继续执行,直至当前编码树单元中的所有编码单元处理完毕;

步骤10):将当前帧中下一个待处理的编码树单元作为当前编码树单元,然后返回步骤3)继续执行,直至当前帧中的所有编码树单元处理完毕;

步骤11):将待编码的屏幕内容视频中下一帧待处理的屏幕内容图像作为当前帧,然后返回步骤2)继续执行,直至所有屏幕内容图像处理完毕。

所述的步骤4)中,其中,n表示当前编码单元中包含的像素点的总个数,n为正整数,i为正整数,1≤i≤n,li表示当前编码单元中的第i个像素点的像素值。

所述的步骤4)中,当前编码单元中的边缘像素点是根据三阶sobel算子确定的。

所述的步骤5)中,bp神经网络模型的训练过程为:

获取多幅屏幕内容图像,将多幅屏幕内容图像构成训练集;然后按照步骤4)的过程,以相同的方式获取训练集中的每幅屏幕内容图像中的每个编码树单元中的每个编码单元的第一特征、第二特征和第三特征;接着将训练集对应的所有尺寸为64×64的编码单元的第一特征、第二特征和第三特征作为样本输入到第一bp神经网络进行训练,训练得到第一bp神经网络模型;并将训练集对应的所有尺寸为32×32的编码单元的第一特征、第二特征和第三特征作为样本输入到第二bp神经网络进行训练,训练得到第二bp神经网络模型;将训练集对应的所有尺寸为16×16的编码单元的第一特征、第二特征和第三特征作为样本输入到第三bp神经网络进行训练,训练得到第三bp神经网络模型;其中,在训练前确定第一bp神经网络、第二bp神经网络和第三bp神经网络的输入节点数均为3个、输出节点数均为2个、隐藏层数均为1层,在训练前确定第一bp神经网络的隐藏层的节点数为16、第二bp神经网络的隐藏层的节点数为22、第一bp神经网络的隐藏层的节点数为30,在训练前确定训练过程中的最大迭代次数为5000次、目标错误率为0.01,在训练前确定输出标签为1或0,1表示编码单元为屏幕内容编码单元,0表示编码单元为自然内容编码单元。

所述的步骤8)中,对当前编码单元进行分割的具体过程为:

a1、判断当前编码单元所属的屏幕内容图像的帧序号是否为10的整数倍,如果是,则采用scm8.3原始平台对当前编码单元进行分割,完成当前编码单元的分割过程;否则,执行步骤a2;

其中,待编码的屏幕内容视频中的屏幕内容图像的帧序号从0开始计;

a2、计算当前编码单元的灰度共生矩阵的能量,记为jcur;

a3、判断当前编码单元是否为边缘编码单元,如果是,则将当前编码单元的最大深度设置为3,然后返回步骤4)继续执行;否则,执行步骤a4;

其中,边缘编码单元的确定过程为:编码单元的参考编码单元包括已编码同位编码单元、已编码上编码单元、已编码左编码单元、已编码左上编码单元及已编码右上编码单元,将仅有已编码同位编码单元的编码单元、仅有已编码上编码单元的编码单元、仅有已编码左编码单元的编码单元确定为边缘编码单元;

a4、判断jcur与当前编码单元的每个参考编码单元的灰度共生矩阵的能量的差值是否均小于设定阈值t,如果是,则将当前编码单元的最大深度设置为当前编码单元的所有参考编码单元的最优深度中的最大值,然后返回步骤4)继续执行;否则,执行步骤a5;

其中,设定阈值t为0.0001;

a5、判断当前编码单元所属的屏幕内容图像中已编码的与当前编码单元相同尺寸的编码单元的灰度共生矩阵的能量中是否存在一个能量与jcur相同,如果存在,则终止对当前编码单元的分割,并采用帧内块拷贝模式对当前编码单元进行编码,然后返回步骤4)继续执行;如果不存在,则执行步骤a6;

a6、判断当前编码单元的所有参考编码单元中是否存在两个或两个以上的参考编码单元的类型与当前编码单元的类型相同,如果存在,则将当前编码单元的最大深度设置为当前编码单元的所有同类型的参考编码单元的最优深度中的最大值,然后返回步骤4)继续执行;否则,将当前编码单元的最大深度设置为3,然后返回步骤4)继续执行;

其中,类型是指屏幕内容编码单元或自然内容编码单元。

与现有技术相比,本发明的优点在于:

1)本发明方法考虑了屏幕内容视频与传统hevc视频内容特性的不同,根据屏幕内容视频的内容特性对编码单元进行分类,根据编码单元的不同类型采取不同的预测模式,降低预测过程的编码复杂度。

2)本发明方法用bp神经网络可以更准确地对编码单元进行分类,避免编码单元分类不准确带来的率失真性能损失。

3)本发明方法用灰度共生矩阵衡量编码单元的复杂度,并结合时空域相关性可以更准确地对编码深度进行设置,节省了大量的编码时间。

附图说明

图1为本发明的总体流程框图;

图2为一幅屏幕内容图像中的屏幕内容编码单元和自然内容编码单元的示意图。

具体实施方式

以下结合附图实施例对本发明作进一步详细描述。

本发明提出的一种屏幕内容视频编码的快速编码方法,其总体流程框图如图1所示,其包括以下步骤:

步骤1):将待编码的屏幕内容视频中当前待处理的屏幕内容图像定义为当前帧。

步骤2):将当前帧中当前待处理的编码树单元定义为当前编码树单元。

步骤3):将当前编码树单元中当前待编码的编码单元定义为当前编码单元。

步骤4):计算当前编码单元中的所有像素点的像素值的方差,记为var,并作为当前编码单元的第一特征;计算当前编码单元中的所有边缘像素点的总个数与当前编码单元中的所有像素点的总个数的比例,记为p,并作为当前编码单元的第二特征;统计当前编码单元中不同像素值的总个数,记为m,如若当前编码单元中的像素值有2、54、200、60,则m=4,并作为当前编码单元的第三特征。

在本实施例中,步骤4)中,其中,n表示当前编码单元中包含的像素点的总个数,n为正整数,i为正整数,1≤i≤n,li表示当前编码单元中的第i个像素点的像素值。

在本实施例中,步骤4)中,当前编码单元中的边缘像素点是根据三阶sobel算子确定的。

步骤5):当当前编码单元的尺寸为64×64时,将当前编码单元的第一特征、第二特征和第三特征作为输入参数,输入到已训练好第一bp神经网络模型中对当前编码单元进行分类,输出当前编码单元的标签,若当前编码单元的标签为1,则当前编码单元为屏幕内容编码单元(screencontentcu,sccu);若当前编码单元的标签为0,则当前编码单元为自然内容编码单元(naturecontentcu,nccu)。

当当前编码单元的尺寸为32×32时,将当前编码单元的第一特征、第二特征和第三特征作为输入参数,输入到已训练好第二bp神经网络模型中对当前编码单元进行分类,输出当前编码单元的标签,若当前编码单元的标签为1,则当前编码单元为屏幕内容编码单元;若当前编码单元的标签为0,则当前编码单元为自然内容编码单元。

当当前编码单元的尺寸为16×16时,将当前编码单元的第一特征、第二特征和第三特征作为输入参数,输入到已训练好第三bp神经网络模型中对当前编码单元进行分类,输出当前编码单元的标签,若当前编码单元的标签为1,则当前编码单元为屏幕内容编码单元;若当前编码单元的标签为0,则当前编码单元为自然内容编码单元。图2给出了一幅屏幕内容图像中的屏幕内容编码单元和自然内容编码单元的示意图,图2中的sccu区域指屏幕内容编码单元、nccu区域指自然内容编码单元。在本实施例中,步骤5)中,bp神经网络模型的训练过程为:

获取多幅屏幕内容图像,将多幅屏幕内容图像构成训练集;然后按照步骤4)的过程,以相同的方式获取训练集中的每幅屏幕内容图像中的每个编码树单元中的每个编码单元的第一特征、第二特征和第三特征;接着将训练集对应的所有尺寸为64×64的编码单元的第一特征、第二特征和第三特征作为样本输入到第一bp神经网络进行训练,训练得到第一bp神经网络模型;并将训练集对应的所有尺寸为32×32的编码单元的第一特征、第二特征和第三特征作为样本输入到第二bp神经网络进行训练,训练得到第二bp神经网络模型;将训练集对应的所有尺寸为16×16的编码单元的第一特征、第二特征和第三特征作为样本输入到第三bp神经网络进行训练,训练得到第三bp神经网络模型;其中,在训练前确定第一bp神经网络、第二bp神经网络和第三bp神经网络的输入节点数均为3个、输出节点数均为2个、隐藏层数均为1层,在训练前确定第一bp神经网络的隐藏层的节点数为16、第二bp神经网络的隐藏层的节点数为22、第一bp神经网络的隐藏层的节点数为30,在训练前确定训练过程中的最大迭代次数为5000次、目标错误率为0.01,在训练前确定输出标签为1或0,1表示编码单元为屏幕内容编码单元,0表示编码单元为自然内容编码单元。在理论上,获取两幅及以上的屏幕内容图像构成训练集即可训练bp神经网络模型,在本实施例中,直接选用webbrowsing序列中的前35帧屏幕内容图像以及kimono1序列中的前30帧屏幕内容图像构成训练集,该训练集中共有22100个编码树单元,88400个尺寸大小为32×32的编码单元,353600个尺寸大小为16×16的编码单元。

步骤6):定义屏幕内容帧内预测模式包括帧内预测模式中的dc模式、planar模式、数字标识为10的方向模式、数字标识为18的方向模式、数字标识为26的方向模式、数字标识为34的方向模式;当当前编码单元为屏幕内容编码单元时,采用屏幕内容帧内预测模式以及帧内块拷贝(ibc)和调色板模式(plt)对当前编码单元进行编码,然后判断编码过程中确定的当前编码单元的最优模式是否为dc模式或planar模式或帧内块拷贝中的merge模式或调色板模式,如果是,则执行步骤7);否则,执行步骤8)。

当当前编码单元为自然内容编码单元时,采用帧内预测模式对当前编码单元进行编码,然后执行步骤7)。

步骤7):判断编码过程中确定的当前编码单元的最优模式是否为的dc模式或planar模式,如果是,则执行步骤9);否则,执行步骤8)。

步骤8):如果当前编码单元的深度等于2或3,则执行步骤9);如果当前编码单元的深度等于0或1,则对当前编码单元进行分割,得到当前编码单元的下一深度的四个编码单元,然后将下一深度左上的编码单元作为当前单元编码,然后返回步骤4)继续执行。

在本实施例中,步骤8)中,对当前编码单元进行分割的具体过程为:

a1、判断当前编码单元所属的屏幕内容图像的帧序号是否为10的整数倍,如果是,则采用scm8.3原始平台对当前编码单元进行分割,完成当前编码单元的分割过程;否则,执行步骤a2。其中,待编码的屏幕内容视频中的屏幕内容图像的帧序号从0开始计。

a2、计算当前编码单元的灰度共生矩阵的能量,记为jcur。

a3、判断当前编码单元是否为边缘编码单元,如果是,则将当前编码单元的最大深度设置为3,然后返回步骤4)继续执行;否则,执行步骤a4。其中,边缘编码单元的确定过程为:编码单元的参考编码单元包括已编码同位编码单元、已编码上编码单元、已编码左编码单元、已编码左上编码单元及已编码右上编码单元,将仅有已编码同位编码单元的编码单元、仅有已编码上编码单元的编码单元、仅有已编码左编码单元的编码单元确定为边缘编码单元。

a4、判断jcur与当前编码单元的每个参考编码单元的灰度共生矩阵的能量的差值是否均小于设定阈值t,如果是,则将当前编码单元的最大深度设置为当前编码单元的所有参考编码单元的最优深度中的最大值,然后返回步骤4)继续执行;否则,执行步骤a5。其中,设定阈值t为0.0001。

a5、判断当前编码单元所属的屏幕内容图像中已编码的与当前编码单元相同尺寸的编码单元的灰度共生矩阵的能量中是否存在一个能量与jcur相同,如果存在,则终止对当前编码单元的分割,并采用帧内块拷贝模式对当前编码单元进行编码,然后返回步骤4)继续执行;如果不存在,则执行步骤a6。

a6、判断当前编码单元的所有参考编码单元中是否存在两个或两个以上的参考编码单元的类型与当前编码单元的类型相同,如果存在,则将当前编码单元的最大深度设置为当前编码单元的所有同类型的参考编码单元的最优深度中的最大值,然后返回步骤4)继续执行;否则,将当前编码单元的最大深度设置为3,然后返回步骤4)继续执行。其中,类型是指屏幕内容编码单元或自然内容编码单元。

步骤9):将当前编码树单元中下一个待编码的编码单元作为当前编码单元,然后返回步骤4)继续执行,直至当前编码树单元中的所有编码单元处理完毕。

步骤10):将当前帧中下一个待处理的编码树单元作为当前编码树单元,然后返回步骤3)继续执行,直至当前帧中的所有编码树单元处理完毕。

步骤11):将待编码的屏幕内容视频中下一帧待处理的屏幕内容图像作为当前帧,然后返回步骤2)继续执行,直至所有屏幕内容图像处理完毕。

为了验证本发明方法的有效性,将本发明方法在scm参考软件scm-8.3上进行实现以测试其率失真性能和编码时间。实验平台的硬件配置为intel(r)core(tm)i5-4590cpu@3.3ghz,内存为8.0ghz,操作系统为windows764位。实验的主要编码参数为全帧内编码模式,量化参数(quantizationparameter,qp)分别为22、27、32和37。

表1给出了各个测试序列采用本发明方法进行编码的编码时间节省以及率失真性能情况。表1中的bdbr表示相同图像质量条件下码率变化的百分比,δt表示相同图像质量条件下编码时间节省的百分比。由表1所列的实验结果可以看出,本发明方法对不同测试序列均可以降低编码复杂度。这是因为:用scm-8.3原始平台进行编码时,每个编码单元都需要遍历0、1、2、3深度的所有预测模式,而使用本发明方法可以根据编码单元的类型不同采用不同的帧内编码模式以及根据灰度共生矩阵(glcm)和时空域相关性(参考编码单元)判定编码单元的深度,从而节省了编码时间。

表1各个测试序列采用本发明方法进行编码的编码时间节省以及率失真性能情况

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