一种高效视频编码的复杂度控制方法与流程

文档序号:11139341阅读:766来源:国知局
一种高效视频编码的复杂度控制方法与制造工艺

本发明涉及一种视频编码技术,尤其是涉及一种高效视频编码的复杂度控制方法。



背景技术:

随着网络技术和流媒体技术的快速发展,特别是高清(HD)、超高清(UHD)、三维(3D)、多视点(multi-view)和自由视点(Free viewpoint)视频技术的兴起,视频信息得到日益普及。近年来,由于移动终端和视频监控的日益增多,高清和超高清视频大量增加,而已有的MPEG-2、MPEG-4和H.264/AVC(Advanced Video Coding)等视频编码标准已经难以满足人们对高清视频压缩的要求。为了解决这个问题,高效视频编码(High Efficiency Video Coding,HEVC)标准应运而生,它是继H.264/AVC之后的新一代视频编码标准,并于2013年1月由ITU-T VCEG(Video Coding Experts Group)和ISO/IEC MPEG(Moving Pictures Experts Group)组成的视频编码联合专家组(JCT-VC,Joint Collaborative Team on Video Coding)确定为新一代国际视频编码标准。与之前的视频编码标准H.264/AVC相比,HEVC标准引入了很多新的编码技术,压缩效率相较于H.264/AVC视频编码标准提高将近一倍。

HEVC中独有的编码技术有:1)针对大尺寸的四叉树分割技术:在HEVC中,基本编码单元为编码树单元(CTU,Coding Tree Unit),尺寸大小为16×16、32×32或者64×64,每个编码树单元由亮度编码树块与对应的色度编码树块组成;2)残差四叉树变换结构:残差四叉树变换(RQT,Residual Quad-tree Transform)属于一种自适应的变换技术,是对H.264/AVC中自适应块变换(ABT,Adaptive Block-size Transform)技术的延伸和扩展;3)像素自适应补偿技术:像素自适应补偿(SAO,Sample Adaptive Offset)位于编解码环路内,通过对环路滤波后的重建图像进行分类,然后对每一类图像像素选择一种补偿方式,以减少源图像与重构图像之间的失真;4)并行设计技术:为了适应多核处理器的发展趋势,HEVC中引入了片层、条带Slice以及波形并行处理(WPP,Wavefront Parallel Processing)的思想;5)自适应熵编码技术:在HEVC中对所有的语法元素和预测残差、变换系数都采用CABAC(Context-based Adaptive Binary Arithmetic Coding)进行熵编码。虽然这些新技术带来了较高的率失真性能,以及显著提高了编码压缩效率,但是同时也引入了较高的计算复杂度,这极不利于高清视频的实时编码,从而影响了HEVC标准的实际应用。因此解决高清和超高清视频传输的高带宽和存储的大容量问题成为了视频压缩领域人们研究的主要课题。

关于HEVC编码器的编码复杂度高的问题,有两个相关的研究课题:编码复杂度降低和编码复杂度控制。对于编码复杂度降低,目标就是在保证视频编码质量的前提下,尽可能多地降低编码过程的复杂度;而对于编码复杂度控制,编码器必须在给定目标编码复杂度的情况下,并保持较好率失真性能的前提下,使实际编码复杂度达到目标编码复杂度,实现编码复杂度控制与可分级。

HEVC编码器的编码复杂度控制与可分级是一个非常重要的研究课题。实现HEVC编码器的编码复杂度控制与可分级,可以满足不同HEVC应用的复杂度要求,尤其对于功率受限和复杂度受限的视频应用尤为重要,比如手机视频应用。随着智能手机、智能穿戴设备等功率受限设备的日益增多,利用这些设备进行编解码高清视频甚至超高清视频的要求也越来越高,因此面向功率受限设备的编码复杂度控制非常重要。

影响HEVC编码器的编码复杂度的因素有很多。在HEVC编码过程中,编码树单元分割尺寸和预测单元(PU,Prediction Unit)尺寸的确定、率失真优化(Rate Distortion Optimization,RDO)、运动估计(Motion Estimation,ME)、去块滤波以及像素自适应补偿SAO都占有一定的编码复杂度,但是它们所占的比例并不相同。编码树单元分割尺寸的确定过程是通过四叉树遍历方式递归实现的,其中采用了率失真优化技术来选择最优的编码参数,因而编码树单元分割尺寸确定过程的复杂度是非常高的。通过探索编码树单元分割尺寸与编码复杂度之间的关系,可以通过调节不同编码树单元的最大分割深度来实现准确地编码复杂度控制。在HEVC编码器的编码复杂度控制方面,主要有三类编码复杂度控制算法。第一类编码复杂度控制算法是通过复杂度分配的方法实现的,其思想类似于视频编码中的码率分配,给定目标编码复杂度,通过合理地分配复杂度资源实现在保持较好的率失真性能的前提下,使实际编码复杂度达到目标复杂度。第二类编码复杂度控制算法是利用各种编码参数实现复杂度可配置,编码参数主要有运动估计的搜索范围和精度、参考帧的数目以及预测模式的选择等。第三类编码复杂度控制算法是利用各种提前中止算法实现编码复杂度控制。也就是说,现有的编码复杂度控制算法主要是从调节编码树单元的最大分割深度、设置提前中止条件或者调节预测编码参数(预测模式、参考帧数目、运动估计的搜索范围等)这三个角度进行的。

通过上面对HEVC编码器的编码复杂度的分析可知,在影响HEVC编码器的编码复杂度的因素中,编码树单元的最大分割深度对编码复杂度控制的影响较大。现有的三类编码复杂度控制算法主要是在编码树单元级进行的,由于并没有考虑图像组层和帧层上的编码复杂度控制,因而并不能对编码复杂度进行精确的控制和分级,如属于第一类编码复杂度控制算法的有Correa等人提出的HEVC编码树深度估计方法,该方法充分利用编码树单元的时空域相关性来调节编码树单元的最大分割深度,在一定程度上实现了编码复杂度的控制,但是该方法没有考虑图像组层和帧层上的编码复杂度控制,编码复杂度控制精度并不高,并且该方法对编码树单元的时空域信息依赖比较大,不利于HEVC的并行编解码。因此,为了实现对HEVC编码器的编码复杂度进行精确地控制,需要深入探索编码结构的统计特征和编码树单元的最大分割深度与编码复杂度之间的关系,从图像组(GOP)层、帧层和编码树单元层三个层级上实现逐层分配编码复杂度。



技术实现要素:

本发明所要解决的技术问题是提供一种面向功率受限设备的高效视频编码的复杂度控制方法,其在保证编码复杂度控制精度和编码率失真性能的前提下,能够有效地实现HEVC编码复杂度的准确控制和可分级。

本发明解决上述技术问题所采用的技术方案为:一种高效视频编码的复杂度控制方法,其特征在于该复杂度控制方法在基于HEVC视频编码标准的视频编码校验模型HM上,采用低延时编码配置的图像组结构对待处理的视频进行编码,在编码过程中对待处理的视频中的第4个图像组至最后一个图像组中的所有P帧采用如下步骤进行编码:

①计算分配给待处理的视频中的第4个图像组至最后一个图像组的每个图像组的目标编码复杂度,将分配给待处理的视频中的第g个图像组的目标编码复杂度记为其中,g的初始值为4,4≤g≤NumGOP,NumGOP表示待处理的视频中包含的图像组的总个数,Ttarget表示待处理的视频的目标编码复杂度;

②将待处理的视频中当前待处理的第g个图像组定义为当前图像组;

③计算当前图像组中的每帧P帧的帧层复杂度比例,将当前图像组中的第k帧P帧的帧层复杂度比例记为Pg,k,然后计算分配给当前图像组中的每帧P帧的目标编码复杂度,将分配给当前图像组中的第k帧P帧的目标编码复杂度记为其中,k的初始值为1,1≤k≤4,Pg-1,k表示待处理的视频中的第g-1个图像组中的第k帧P帧的帧层复杂度比例,Pg-2,k表示待处理的视频中的第g-2个图像组中的第k帧P帧的帧层复杂度比例,g=4时令g=4或g=5时令表示采用视频编码校验模型HM的原始方案对待处理的视频中的第g-1个图像组中的第k帧P帧中的每个编码树单元进行编码后、所有编码树单元所用的实际编码复杂度之和,表示采用视频编码校验模型HM的原始方案对待处理的视频中的第g-2个图像组中的第k帧P帧中的每个编码树单元进行编码后、所有编码树单元所用的实际编码复杂度之和;

④计算当前图像组中的每帧P帧中的每个编码树单元的复杂度分配权重,将当前图像组中的第k帧P帧中的第m个编码树单元的复杂度分配权重记为ωg,k,m,然后计算分配给当前图像组中的每帧P帧中的每个编码树单元的目标编码复杂度,将分配给当前图像组中的第k帧P帧中的第m个编码树单元的目标编码复杂度记为接着对分配给当前图像组中的每帧P帧中的每个编码树单元的目标编码复杂度进行归一化处理,将归一化处理后得到的目标编码复杂度作为最终的目标编码复杂度,将分配给当前图像组中的第k帧P帧中的第m个编码树单元的最终的目标编码复杂度记为其中,符号“||”为取绝对值符号,1≤m≤Mg,k,Mg,k表示当前图像组中的第k帧P帧中包含的编码树单元的总个数,pg,k,m(i,j)表示当前图像组中的第k帧P帧中的第m个编码树单元中坐标位置为(i,j)的像素点的原始像素值,表示当前图像组中的第k帧P帧中的第m个编码树单元中坐标位置为(i,j)的像素点的预测像素值,1≤i≤64,1≤j≤64,Rg,k表示当前图像组中的第k帧P帧中已编码的所有编码树单元所用的实际编码复杂度,ωg,k,n表示当前图像组中的第k帧P帧中的第n个编码树单元的复杂度分配权重,表示当前图像组中的第k帧P帧中还未编码的所有编码树单元的复杂度分配权重之和,

⑤计算当前图像组中的每帧P帧中的每个编码树单元的最大分割深度,将当前图像组中的第k帧P帧中的第m个编码树单元的最大分割深度记为然后根据当前图像组中的每帧P帧中的每个编码树单元的最大分割深度,对当前图像组中的每帧P帧中的每个编码树单元进行编码;

⑥令g=g+1,将待处理的视频中下一个待处理的图像组作为当前图像组,然后返回步骤③继续执行,直至待处理的视频中的所有图像组处理完毕;其中,g=g+1中的“=”为赋值符号。

所述的步骤④中的获取过程为:其中,表示采用视频编码校验模型HM的原始方案并根据分割深度0对待处理的视频中的第2个图像组中的第k帧P帧中的每个编码树单元进行编码后、所有编码树单元各自所用的实际编码复杂度中的最小实际编码复杂度,表示采用视频编码校验模型HM的原始方案并根据分割深度3对待处理的视频中的第2个图像组中的第k帧P帧中的每个编码树单元进行编码后、所有编码树单元各自所用的实际编码复杂度中的最大实际编码复杂度。

所述的步骤④中的获取过程为:其中,表示采用视频编码校验模型HM的原始方案并根据分割深度0对待处理的视频中的第3个图像组中的第k帧P帧中的每个编码树单元进行编码后、所有编码树单元各自所用的实际编码复杂度中的最小实际编码复杂度,表示采用视频编码校验模型HM的原始方案并根据分割深度3对待处理的视频中的第3个图像组中的第k帧P帧中的每个编码树单元进行编码后、所有编码树单元各自所用的实际编码复杂度中的最大实际编码复杂度。

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

1)本发明方法充分考虑了编码结构的统计特征对目标编码复杂度分配的影响,功率受限设备视频编码采用常用的低延时编码配置的分层B帧的IPPP的图像组结构,由于不同时域层级帧采用不同的编码量化参数,因此不同时域层级帧具有不同的目标编码复杂度,这样可以实现更准确地编码复杂度分配。

2)本发明方法深入探索了不同编码树单元的最大分割深度与目标编码复杂度之间的关系,将HEVC编码复杂度控制问题转换为调节每个编码树单元的最大分割深度问题,从而可在图像组层和帧层的目标编码复杂度分配的基础上,在编码树单元层实现更加精细地目标编码复杂度的分配。

3)本发明方法采用逐层分配的策略进行目标编码复杂度分配,即从图像组层、帧层和编码树单元层分别进行目标编码复杂度的分配,从而实现了HEVC编码复杂度从宏观到微观地更加精细地分配和控制。

4)本发明方法通过利用编码结构的统计特征和编码树单元的最大分割深度与编码复杂度之间的关系,从图像组(GOP)层、帧层和编码树单元层三个层级上实现了逐层分配目标编码复杂度,在保证编码复杂度控制精度和编码率失真性能的前提下,能够有效地实现HEVC编码复杂度的准确控制和可分级。

附图说明

图1为本发明方法的总体实现框图;

图2a为在视频编码校验模型HM的原始方案下“BQSquare”视频序列中的第8帧的残差与CU分割的关系示意图;

图2b为在视频编码校验模型HM的原始方案下“BQSquare”视频序列中的第11帧的残差与CU分割的关系示意图;

图3a为采用本发明方法对“BlowingBubbles”视频序列进行编码后在4个不同目标编码复杂度下的率失真曲线示意图;

图3b为采用本发明方法对“Kimono”视频序列进行编码后在4个不同目标编码复杂度下的率失真曲线示意图。

具体实施方式

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

本发明提出的一种高效视频编码的复杂度控制方法,该复杂度控制方法在基于HEVC视频编码标准的视频编码校验模型HM(HEVC Test Model)上,采用视频编码联合专家组(JCT-VC,Joint Collaborative Team on Video Coding)推荐的低延时(LP-Main,Lowdelay-P Main)编码配置的图像组结构对待处理的视频进行编码,低延时编码配置的图像组结构除了第1帧为I帧外其余各帧都为P帧,每帧P帧的编码量化参数都是在I帧的编码量化参数的基础上加上一个偏移量,并且除第1个图像组外的每个图像组中的4帧P帧的编码量化参数的偏移量分别为3、2、3和1。通过对低延时编码配置进行统计分析可知,在低延时编码配置和IPPP的图像组结构中,每个图像组的编码时间大致相近。表1给出了当编码量化参数为32时“BQMall”视频序列中的不同时域层级的P帧的统计特征,表2给出了当编码量化参数为32时“BasketballDrive”视频序列中的不同时域层级的P帧的统计特征,对于“BQMall”视频序列来说,每个图像组的编码时间基本相同并且变化的标准差较小,由于每个图像组包含4帧,因此每个图像组的帧间相关性非常强,即使两个图像组之间存在场景切换,每个图像组的编码时间也非常接近;另外,从表1中可知,相同时域层级的P帧的编码时间变化是非常小的,最大标准差小于1.54秒;对于“BasketballDrive”视频序列来说,从表2中可知,相同时域层的P帧的编码时间变化也是非常小,最大标准差小于3.35秒。从相同时域层的P帧的编码复杂度来看,第4帧P帧的编码复杂度最高,其次是第2帧P帧,编码复杂度最低的是第1帧P帧和第3帧P帧,且第1帧P帧和第3帧P帧的编码复杂度非常接近,这是由对应时域层级P帧采用的编码量化参数和图像特征决定的。当然,不仅对于“BQMall”和“BasketballDrive”视频序列,其他视频序列也具有这样的编码规律。根据这种编码规律和图像组结构的特点,本发明提出了图像组层、帧层和编码树单元层的编码复杂度控制策略。

表1 当编码量化参数为32时“BQMall”视频序列中的不同时域层级的P帧的统计特征

表2 当编码量化参数为32时“BasketballDrive”视频序列中的不同时域层级的P帧的统计特征

本发明方法在编码过程中对待处理的视频中的I帧及第1个图像组至第3个图像组中的每帧P帧采用视频编码校验模型HM的原始方案进行编码,而对待处理的视频中的第4个图像组至最后一个图像组中的所有P帧采用如下步骤进行编码,总体实现框图如图1所示:

①计算分配给待处理的视频中的第4个图像组至最后一个图像组的每个图像组的目标编码复杂度,将分配给待处理的视频中的第g个图像组的目标编码复杂度记为其中,g的初始值为4,4≤g≤NumGOP,NumGOP表示待处理的视频中包含的图像组的总个数,Ttarget表示待处理的视频的目标编码复杂度。

②将待处理的视频中当前待处理的第g个图像组定义为当前图像组。

③计算当前图像组中的每帧P帧的帧层复杂度比例,将当前图像组中的第k帧P帧的帧层复杂度比例记为Pg,k,然后计算分配给当前图像组中的每帧P帧的目标编码复杂度,将分配给当前图像组中的第k帧P帧的目标编码复杂度记为其中,k的初始值为1,1≤k≤4,Pg-1,k表示待处理的视频中的第g-1个图像组中的第k帧P帧的帧层复杂度比例,Pg-2,k表示待处理的视频中的第g-2个图像组中的第k帧P帧的帧层复杂度比例,g=4时令g=4或g=5时令表示采用视频编码校验模型HM的原始方案对待处理的视频中的第g-1个图像组中的第k帧P帧中的每个编码树单元进行编码后、所有编码树单元所用的实际编码复杂度之和,表示采用视频编码校验模型HM的原始方案对待处理的视频中的第g-2个图像组中的第k帧P帧中的每个编码树单元进行编码后、所有编码树单元所用的实际编码复杂度之和。

④计算当前图像组中的每帧P帧中的每个编码树单元的复杂度分配权重,将当前图像组中的第k帧P帧中的第m个编码树单元的复杂度分配权重记为ωg,k,m,然后计算分配给当前图像组中的每帧P帧中的每个编码树单元的目标编码复杂度,将分配给当前图像组中的第k帧P帧中的第m个编码树单元的目标编码复杂度记为接着对分配给当前图像组中的每帧P帧中的每个编码树单元的目标编码复杂度进行归一化处理,将归一化处理后得到的目标编码复杂度作为最终的目标编码复杂度,将分配给当前图像组中的第k帧P帧中的第m个编码树单元的最终的目标编码复杂度记为其中,符号“||”为取绝对值符号,1≤m≤Mg,k,Mg,k表示当前图像组中的第k帧P帧中包含的编码树单元的总个数,pg,k,m(i,j)表示当前图像组中的第k帧P帧中的第m个编码树单元中坐标位置为(i,j)的像素点的原始像素值,表示当前图像组中的第k帧P帧中的第m个编码树单元中坐标位置为(i,j)的像素点的预测像素值,1≤i≤64,1≤j≤64,Rg,k表示当前图像组中的第k帧P帧中已编码的所有编码树单元所用的实际编码复杂度,ωg,k,n表示当前图像组中的第k帧P帧中的第n个编码树单元的复杂度分配权重,表示当前图像组中的第k帧P帧中还未编码的所有编码树单元的复杂度分配权重之和,

⑤计算当前图像组中的每帧P帧中的每个编码树单元的最大分割深度,将当前图像组中的第k帧P帧中的第m个编码树单元的最大分割深度记为然后根据当前图像组中的每帧P帧中的每个编码树单元的最大分割深度,对当前图像组中的每帧P帧中的每个编码树单元进行编码。

⑥令g=g+1,将待处理的视频中下一个待处理的图像组作为当前图像组,然后返回步骤③继续执行,直至待处理的视频中的所有图像组处理完毕;其中,g=g+1中的“=”为赋值符号。

在此具体实施例中,步骤④中的获取过程为:其中,表示采用视频编码校验模型HM的原始方案并根据分割深度0对待处理的视频中的第2个图像组中的第k帧P帧中的每个编码树单元进行编码后、所有编码树单元各自所用的实际编码复杂度中的最小实际编码复杂度,表示采用视频编码校验模型HM的原始方案并根据分割深度3对待处理的视频中的第2个图像组中的第k帧P帧中的每个编码树单元进行编码后、所有编码树单元各自所用的实际编码复杂度中的最大实际编码复杂度。

或步骤④中的获取过程为:其中,表示采用视频编码校验模型HM的原始方案并根据分割深度0对待处理的视频中的第3个图像组中的第k帧P帧中的每个编码树单元进行编码后、所有编码树单元各自所用的实际编码复杂度中的最小实际编码复杂度,表示采用视频编码校验模型HM的原始方案并根据分割深度3对待处理的视频中的第3个图像组中的第k帧P帧中的每个编码树单元进行编码后、所有编码树单元各自所用的实际编码复杂度中的最大实际编码复杂度。

图2a给出了在视频编码校验模型HM的原始方案下“BQSquare”视频序列中的第8帧的残差与CU分割的关系示意图;图2b给出了在视频编码校验模型HM的原始方案下“BQSquare”视频序列中的第11帧的残差与CU分割的关系示意图。从图2a和图2b中可以看出,在帧间低延时编码配置下,帧间CU分割与残差分布及其大小有着非常紧密的关系。为了实现编码树单元的目标编码复杂度的分配,采用绝对差值和(Sum of Absolute Difference,SAD)作为编码树单元的复杂度分配权重,由于绝对差值和可以反映预测残差的大小,因此可以很好的反映编码树单元的帧间CU分割特征。本发明方法利用绝对差值和作为编码树单元的复杂度分配权重进行目标编码复杂度的分配,实现了精确地编码复杂度控制。

图3a给出了采用本发明方法对“BlowingBubbles”视频序列进行编码后在4个不同目标编码复杂度下的率失真曲线示意图;图3b给出了采用本发明方法对“Kimono”视频序列进行编码后在4个不同目标编码复杂度下的率失真曲线示意图。从图3a中可以看出,本发明方法对于“BlowingBubbles”视频序列在目标编码复杂度(Target Complexity,TC)TC=90%时的率失真曲线和原始HM-13.0方法基本一致,在目标编码复杂度TC=80%、70%和60%时率失真性能也没有较大的损失。从图3b中可以看出,对于目标编码复杂度TC=90%、80%、70%和60%,本发明方法能够保持较好的率失真性能,与原始HM-13.0方法的率失真曲线基本保持一致。从图3a和图3b可以确定,本发明方法能够在保持较好率失真性能的情况下,准确地达到目标编码复杂度。

为了测试本发明方法的编码率失真性能和复杂度控制精度,在Intel(R)Core(TM)i5-4590CPU@3.3GHZ,内存为8.0GHZ,操作系统为Window 7 64位SP1的计算机上,对表3中JCT-VC提供的视频测试序列利用HEVC测试软件HM-13.0进行编码。实验的主要编码参数为低延时编码配置,编码量化参数分别为22、27、32和37,图像组结构采用的是IPPP,其大小为4,编码树单元的最大尺寸为64×64,样本自适应偏移(Sample Adaptive Offset,SAO)使能,快速编码器设置(Fast Encoder Setting,FEN)和融合模式快速判决(Fast Decision for Merge,FDM)使能,帧内间隔Intra Period为-1。

为了验证本发明方法的有效性,采用编码时间节省比例TS作为时间复杂度降低的衡量,其定义为:其中,TimeHM-13.0表示测试视频序列在视频编码校验模型HM-13.0下进行编码的时间复杂度,Timeproposed表示测试视频序列在本发明方法下进行编码的时间复杂度。各复杂度控制算法中的编码复杂度是通过Visual Studio平台下的clock()函数计算得到的编码时间进行衡量的,并采用比特率的上升ΔBR和PSNR的损失ΔPSNR作为各复杂度控制算法率失真性能的衡量,各复杂度控制算法对4个目标编码复杂度级别进行测试分析,4个目标编码复杂度级别分别为TC=90%、80%、70%和60%。

表4给出了各视频测试序列采用本发明方法相对采用HM原始方法在不同目标编码复杂度下的编码性能情况。从表4中的实验结果可以看出,本发明方法能够达到设定的目标编码复杂度,控制精度很高。复杂度偏差Deviation定义为所有视频测试序列的实际编码复杂度与目标编码复杂度的绝对差值的平均值,并且所有视频测试序列的平均实际编码复杂度与目标编码复杂度偏差非常小(对于TC=70%,复杂度偏差最大为2.33%;对于TC=90%,复杂度偏差最小为1.42%)。在低延时编码配置下,本发明方法能够在率失真性能下降可接受的情况下实现目标编码复杂度高达60%,因此本发明方法可以满足功率受限设备的编码要求。

表3 视频测试序列

表4 各视频测试序列采用本发明方法相对采用HM方法在不同目标编码复杂度下的编码性能

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