基于KVM视频的H.264预测模式选择算法
2014-05-04刘温龙邢永朋
王 玭,陈 玮,刘温龙,邢永朋
(1.广东工业大学 自动化学院,广东 广州510006;2.深圳秦安科技有限公司,广东 深圳518108)
0 引 言
KVM (keyboard video mouse)Switch是一种应用于机房的远程管理设备,KVM Switch的被控端桌面视频序列(即KVM视频序列)为内容复杂、分辨率高的混合图像。由于KVM设备对网络带宽和控制实时性要求较高,使得KVM视频编码成为KVM Switch技术中一个重要环节。
随着视频编码技术的不断发展,国际电信联盟和国际标准化组织推出的视频编码标准H.264/AVC已广泛应用于视频会议、网络流媒体视频、视频监控等实时编码通信领域。在同等图像质量条件下,H.264采用多种方法针对视频的空间冗余、时间冗余、频谱冗余等分别处理,获得更高效的压缩性能和传输性能。目前,利用H.264编码器来压缩桌面视频成为一种新研究思路[1]。
H.264编码器用于KVM视频编码仍存在一些问题。首先,KVM Switch采用基于硬件的远程控制方案通过硬件采集被控端桌面视频信号,获得跨平台的优越性能的同时,限制了KVM视频编码器利用操作系统 (graphical user interface,GUI)、虚拟显示驱动等技术获取视频序列图像变化区域,增加了KVM视频编码器的工作量。其次,KVM视频序列存在大量局部场景切换序列,与连续变化的普通视频序列区别较大,因此适用于普通视频编码的H.264编码器直接用于KVM视频序列的编码并不能满足KVM Switch设备实时编码的要求。
本文提出一种H.264编码器的帧间宏块编码模式选择优化策略,通过分析KVM视频序列局部场景切换处特征,检测出其所在宏块区域,并结合宏块的运动状态简化H.264帧间宏块模式预测的决策过程。在保证KVM视频编码质量的同时,有效地提高实时编码效率。
1 局部场景切换
KVM视频序列具有一些不同于普通视频的特点。操作系统图形用户界面 (GUI)使得KVM视频存在大量局部场景切换的画面,如:窗口的弹出、关闭等。这种视频对象内容突然增加、减少或者运动速度很快的视频对象突变情况下,局部场景切换所在宏块与前一帧的宏块不存在时间相关性,需要采用INTRA预测模式为宏块预测编码[2]。而普通视频序列运动缓慢,预测帧 (P帧)宏块变化小,帧间的时间冗余大,多采用INTER预测模式为宏块预测编码[3]。
图1为 CIF格式stefan序列片组 (group of picture,GOP)长度为10的81个P帧中I宏块和P宏块分布情况。图2为录制分辨率1024×768桌面视频序列中GOP长度为10的81个P帧中I宏块和P宏块分布情况。由图1可以看出,普通标准视频序列P帧中的P宏块数目明显多于I宏块数目,并且P帧中绝大多数宏块使用INTER模式编码。图2中的桌面视频序列,P帧的P宏块和I宏块数目相当,81帧中存在40帧I宏块数目超过P宏块的情况。
图1 stefan序列P帧宏块编码模式分布
当局部场景切换位于B帧时,B帧的双向预测技术可以有效地解决视频序列的局部场景切换问题,双向预测引入后向预测得到匹配宏块和运动向量[4]。当局部场景切换处于I帧时,由于I帧可全部宏块采用INTRA模式,利用空间相关性进行压缩编码。当局部场景切换出现在P帧时,编码器根据RDO (rate distortion optimization)决策先计算利用时间冗余进行压缩的帧间编码模式 (INTER模式)的率失真代价 (rate distortion cost,RDCost),再计算INTRA模式的比较选择。决策过程计算复杂,耗费大量编码时间。
图2 桌面视频序列宏块编码模式分布
2 局部场景切换宏块检测
在帧间预测模式决策之前,编码器检测出KVM视频序列的局部场景切换的宏块,跳过INTER预测模式,进入INTRA模式的决策过程,可以有效降低帧间模式预测算法的复杂度,提高编码速度。对普通视频序列,帧变化区域检测研究主要是利用压缩域和变换域的信息对视频场景切换进行检测。文献 [5]利用帧内模式编码宏块数目作为判断依据进行场景切换检测。文献 [6]利用参考帧与当前帧亮度与色度的变化程度进行场景切换检测。文献 [7]利用DCT比值偏移为准则判断场景切换的发生。文献 [5]和文献 [7]的检测方法只有在宏块编码之后才能进行检测,存在一定的局限性。
本文首先利用局部场景切换处宏块与参考帧宏块在灰度的直方图相关性,检测运动矢量为零的局部场景切换宏块。再由宏块的运动状态检测运动矢量非零的局部场景切换宏块。
文献 [6]通过统计研究视频整副图像发生场景切换的序列发现:没有发生场景切换序列,灰度和色度变化缓慢平稳;有场景切换存在的序列,反应灰度的分量Y和反应色度的U、V分量均存在突变现象。由于人眼对于色度分量U、V的敏感程度远低于亮度分量Y[8],本文首先利用反应图像灰度分布情况的直方图统计宏块的亮度分量Y分布,然后计算巴氏距离 (bhattachryya distance)得到当前帧宏块和参考帧宏块的相关性,通过巴氏距离反应P帧宏块与参考帧宏块的时间冗余,巴氏距离如下所示
式中:H1、H2——运动矢量为零的16×16宏块与其参考帧宏块的直方图;
直方图高度归一化如下所示
式中:()H i——运动矢量为零的16×16宏块的直方图高度;H′(i)——归一化以后的直方图高度;N——宏块尺寸。经过归一化这一过程将宏块亮度分量Y各个值出现频次转化成不同亮度Y值出现的概率,使得其对应的巴士距离值更加分散,可以放大宏块与参考帧宏块的差异,更好地描述两者相关性,便于场景切换处宏块的检测。并且通过式 (2)归一化后,使得1。可以将巴氏距离进一步简化为式 (3)所示
宏块运动状态是描述视频对象的重要信息,宏块运动矢量较大说明存在运动速度快的或剧烈变化的视频对象[9],从而可以判断局部场景切换的发生。研究表明,宏块运动矢量较大时,其宏块分割尺寸比较精细[10]。本文按照如下方式定义宏块运动能量
式中:(x,y)——当前帧宏块坐标;mv——宏块运动矢量;mx、my——宏块运动矢量 mv 的水平与垂直分量;mode——宏块分割尺寸。
宏块运动能量可以提供宏块运动矢量的信息,对于运动矢量非零的宏块,利用式 (5)判断是否发生局部场景切换如下
P帧的预测模式选择决策过程中,在最优INTER模式预测之前,对宏块进行局部场景切换检测,定义宏块局部场景切换标识PS。根据式 (4)或者式 (6)判断该宏块是否处于局部场景切换区域内,若满足式 (4)或者式 (6)其中一个则该宏块的PS为1,否则宏块PS为0。
3 局部场景切换预测模式选择算法
H.264采用RDO决策进行宏块编码模式预测,对每个宏块所有可能模式计算其RDCost,选择代价最小模式作为编码模式[11]。根据普通视频序列运动缓慢、P帧宏块多数采用INTER模式进行编码,RDO决策在进行帧间宏块编码模式预测的过程中,先进行SKIP模式判断,再搜索选择INTER预测模式,最后进行INTRA模式搜索,以提高模式预测的效率,保证搜索的速度[12]。RDO决策进行P帧宏块模式预测的具体过程为:对宏块先判断其是否满足SKIP条件,若满足则采用SKIP模式,否则计算7种INTER模式的RDCost,搜索选择RDCost最小的INTER模式;然后判断宏块运动补偿残差的平均比特数是否小于宏块边界平均误差,若小于则宏块的预测模式为INTER模式,否则进入INTRA模式检索。
但在KVM视频P帧中出现局部场景切换时,P帧存在大量宏块应采用INTRA模式编码。而RDO决策先进行INTER模式选择,再进行INTRA模式选择,使得计算量增加,预测时间增长。为避免对局部场景切换宏块进行压缩效率低的INTER模式预测选择过程,局部场景切换预测选择算法跳过INTER模式选择,直接进入INTRA模式决策过程。详细步骤如下:
(1)首先判断条带类型,若为P条带则到 (2);否则按照RDO决策选择宏块预测模式,到 (6)。
(2)根据SKIP条件判断,若满足则SKIP模式为宏块的预测模式,到 (6);否则到 (3)。
(3)若宏块局部场景切换标识PS=1,宏块处于局部场景切换区域,到 (4);否则PS=0,到 (5)。
(4)利用RDO的INTRA模式预测选出最佳INTRA模式,为宏块的预测模式,到 (6)。
(5)按照RDO决策预测宏块的最优预测模式,到 (6)。
(6)结束。
4 仿真实验与结果
为了分析本文提出的算法的性能,录制存在大量窗口弹出、关闭与切换、程序参数调整、程序调试等情况的KVM视频序列进行测试。KVM视频内容为Visual Studio生成执行工程,分辨率为1024×768,帧数为1000。本文应用 H.264的测试模型Joint Model(JM12.2),在2GB内存、2.6GHz主频的计算机上运行实验。先选取KVM视频序列的前500帧进行测试,统计得到P帧中视频对象突变处I宏块数目。JM12.2实验参数设置为:①JM12.2档次为基本档次;②帧结构为IPPP,GOP长度为10;③量化参数(quantization parameter,QP)为28;④参考帧数为3。
然后将本文的局部场景切换预测模式选择算法应用于JM12.2模型,设置不同的巴氏距离阈值Thred1和运动能量阈值Thred2的组合,采用相同的JM12.2参数对KVM视频序列前500帧进行多次编码实验,找出最佳的巴氏距离阈值Thred1和运动能量阈值Thred2的组合。根据巴士距离为1时,宏块与参考帧宏块不相关,巴士距离为0时,宏块与参考帧宏块完全一致,将Thred1限定在0.7到0.85之间。图3给出了四组巴氏距离阈值Thred1和运动能量阈值Thred2组合测试的P帧局部场景切换宏块检测正确率。
图3 测试P帧局部场景切换宏块检测正确率
图3中局部场景切换宏块检测正确率为
通过仿真实验可以得到巴氏距离阈值Thred1取0.7,宏块运动能量阈值Thred2取22时,局部场景切换检测正确率为最优。
在录制的KVM视频的后500帧上分别测试H.264的RDO决策和局部场景切换预测模式选择两种算法,JM12.2参数设置同前面实验,局部场景切换预测模式选择算法的阈值Thred1和Thred2分别取0.7和22。实验结果见表1,所有P帧的编码时间如图4所示。实验结果显示本文算法与采用完整RDO决策过程相比,在Y分量PSNR值没有降低的情况下,KVM视频序列的I帧和P帧的平均编码时间缩短了9.96%,P帧编码时间平均缩短了22.3%。图4中存在多处出虚线显示的H.264编码时间激增的P帧,这些P帧为发生局部场景切换的P帧,实线显示的本文算法在局部场景切换处编码时间下降幅度更加明显,一些大面积局部场景切换P帧编码时间可以缩短40%左右。
表1 本文算法与H.264RDO决策编码结果比较
图4 P帧编码时间
5 结束语
针对KVM视频存在大量局部场景切换画面并且难以获得视频序列变化区域,本文提出一种应用于H.264的局部场景切换预测模式选择算法,首先检测宏块是否处于局部场景切换区域,根据检测结果选择P帧宏块的预测模式。保证信噪比的前提下,本文算法与JM12.2相比,对KVM视频序列编码时间可以减少9.96%,存在局部场景切换的P帧编码时间平均可以减少20%。本文算法可以有效地降低KVM视频中局部场景切换处的编码时间,但是对于KVM视频序中出现普通视频对象的情形并未研究,所以今后将进一步优化预测模式选择算法来解决这个问题。
[1]JIN Lei,XIE Weikai,LIN Yi,et al.Opitimization for H.264 based real-time video encoder [J].Computer Engineer,2012,38 (16):18-22 (in Chinese).[金磊,谢伟凯,林艺,等.基于H.264的屏幕视频实时编码器优化 [J].计算机工程,2012,38 (16):18-22.]
[2]WANG Xiao,DENG Yun,ZHU Liu.Frame skipping algorithm for H.264at low bit rate [J].Computer Engineering,2010,36 (23):223-225(in Chinese). [王晓,邓云,朱柳.一种低码率下的H.264跳帧算法 [J].计算机工程,2010,36 (23):223-225.]
[3]LIU Pengyu,JIA Kebin.Video ROI extraction algorithm based on reconstructed encoding information [J].Computer Engineer,2011,37 (24):278-279 (in Chinese). [刘鹏宇,贾克斌.基于重建编码信息的视频ROI提取算法 [J].计算机工程,2011,37 (24):278-279.]
[4]De Bruyne S,De Neve W,De Wolf K,et al.Temporal video segmentation on H.264/AVC compressed bit stream [C]//Advances in Multimedia Modleing,Singapore.Berlin:Sprin-ger,2007:1-12.
[5]LI Qiushan,MA Yan.Fast selection algorithm for H.264intra-prediction mode [J].Computer Engineering and Design,2009,30 (22):5136-5139 (in Chinese). [李秋山,马姸.H.264帧内预测模式的快速选择算法 [J].计算机工程与设计,2009,30 (22):5136-5139.]
[7]SUN Lifan,PU Jiexin.Fast inter-frame mode selection algorithm based on H.264standard [J].Computer Engineer,2010,36 (2):220-222 (in Chinese). [孙力帆,普杰信.基于H.264的快速帧间模式选择算法 [J].计算机工程,2010,36 (2):220-222.]
[8]GU Meihua,YU Ningmei,KOU Likang,et al.Fast mode decision algorithm for H.264based on early termination method[J].Journal of Image and Graphics,2011,16 (3):305-309(in Chinese).[顾梅花,余宁梅,寇立康,等.H.264快速模式选择算法中的提前终止策略 [J].中国图象图形学报,2011,16 (3):305-309.]
[9]GAO Yu,ZHUO Li,WANG Suyu,et al.A GOP level video scene change detection algorithm in H.264/AVC compression domain [J].ACTA Electronica Sinica,2010,38 (2):382-385(in Chinese). [高宇,卓力,王素玉,等.一种基于H.264/AVC压缩域的GOP级视频场景转换检测算法 [J].电子学报,2010,38 (2):382-385.]
[10]XU Jing,ZHOU Bing,HUANG Xueli,et al.Fast multiple reference frame selection algorithm for H.264based on spatial correlation[J].Journal on Communications,2010,31 (7):40-45 (in Chinese).[徐静,周兵,黄雪莉,等.基于空域特征的H.264快速多参考帧选择算法 [J].通信学报,2010,31 (7):40-45.]
[11]ZHU Leiqi,ZHANG Qishan,YANG Dongkai,et al.Fast most selection fot intra and inter prediction [J].Journal of Beijing University of Aeronautics and Astronautics,2008,34(12):1411-1427 (in Chinese). [朱蕾琦,张其善,杨东凯,等.改进的帧内帧间模式选择快速算法 [J].北京航空航天大学学报,2008,34 (12):1411-1427.]
[12]XU Ping,SHE Qingshan,JIN Zhaoyang,et al.New fast intra-prediction mode selection algorithm based on spatio-temporal predicting for H.264 [J].Journal of Communication,2010,31 (9):139-145 (in Chinese).[徐平,佘青山,金朝阳,等.基于时空预测的H.264快速帧内预测模式选择算法[J].通信学报,2010,31 (9):139-145.]