王 玭,陳 瑋,劉溫龍,邢永朋
(1.廣東工業(yè)大學(xué) 自動化學(xué)院,廣東 廣州510006;2.深圳秦安科技有限公司,廣東 深圳518108)
KVM (keyboard video mouse)Switch是一種應(yīng)用于機(jī)房的遠(yuǎn)程管理設(shè)備,KVM Switch的被控端桌面視頻序列(即KVM視頻序列)為內(nèi)容復(fù)雜、分辨率高的混合圖像。由于KVM設(shè)備對網(wǎng)絡(luò)帶寬和控制實(shí)時性要求較高,使得KVM視頻編碼成為KVM Switch技術(shù)中一個重要環(huán)節(jié)。
隨著視頻編碼技術(shù)的不斷發(fā)展,國際電信聯(lián)盟和國際標(biāo)準(zhǔn)化組織推出的視頻編碼標(biāo)準(zhǔn)H.264/AVC已廣泛應(yīng)用于視頻會議、網(wǎng)絡(luò)流媒體視頻、視頻監(jiān)控等實(shí)時編碼通信領(lǐng)域。在同等圖像質(zhì)量條件下,H.264采用多種方法針對視頻的空間冗余、時間冗余、頻譜冗余等分別處理,獲得更高效的壓縮性能和傳輸性能。目前,利用H.264編碼器來壓縮桌面視頻成為一種新研究思路[1]。
H.264編碼器用于KVM視頻編碼仍存在一些問題。首先,KVM Switch采用基于硬件的遠(yuǎn)程控制方案通過硬件采集被控端桌面視頻信號,獲得跨平臺的優(yōu)越性能的同時,限制了KVM視頻編碼器利用操作系統(tǒng) (graphical user interface,GUI)、虛擬顯示驅(qū)動等技術(shù)獲取視頻序列圖像變化區(qū)域,增加了KVM視頻編碼器的工作量。其次,KVM視頻序列存在大量局部場景切換序列,與連續(xù)變化的普通視頻序列區(qū)別較大,因此適用于普通視頻編碼的H.264編碼器直接用于KVM視頻序列的編碼并不能滿足KVM Switch設(shè)備實(shí)時編碼的要求。
本文提出一種H.264編碼器的幀間宏塊編碼模式選擇優(yōu)化策略,通過分析KVM視頻序列局部場景切換處特征,檢測出其所在宏塊區(qū)域,并結(jié)合宏塊的運(yùn)動狀態(tài)簡化H.264幀間宏塊模式預(yù)測的決策過程。在保證KVM視頻編碼質(zhì)量的同時,有效地提高實(shí)時編碼效率。
KVM視頻序列具有一些不同于普通視頻的特點(diǎn)。操作系統(tǒng)圖形用戶界面 (GUI)使得KVM視頻存在大量局部場景切換的畫面,如:窗口的彈出、關(guān)閉等。這種視頻對象內(nèi)容突然增加、減少或者運(yùn)動速度很快的視頻對象突變情況下,局部場景切換所在宏塊與前一幀的宏塊不存在時間相關(guān)性,需要采用INTRA預(yù)測模式為宏塊預(yù)測編碼[2]。而普通視頻序列運(yùn)動緩慢,預(yù)測幀 (P幀)宏塊變化小,幀間的時間冗余大,多采用INTER預(yù)測模式為宏塊預(yù)測編碼[3]。
圖1為 CIF格式stefan序列片組 (group of picture,GOP)長度為10的81個P幀中I宏塊和P宏塊分布情況。圖2為錄制分辨率1024×768桌面視頻序列中GOP長度為10的81個P幀中I宏塊和P宏塊分布情況。由圖1可以看出,普通標(biāo)準(zhǔn)視頻序列P幀中的P宏塊數(shù)目明顯多于I宏塊數(shù)目,并且P幀中絕大多數(shù)宏塊使用INTER模式編碼。圖2中的桌面視頻序列,P幀的P宏塊和I宏塊數(shù)目相當(dāng),81幀中存在40幀I宏塊數(shù)目超過P宏塊的情況。
圖1 stefan序列P幀宏塊編碼模式分布
當(dāng)局部場景切換位于B幀時,B幀的雙向預(yù)測技術(shù)可以有效地解決視頻序列的局部場景切換問題,雙向預(yù)測引入后向預(yù)測得到匹配宏塊和運(yùn)動向量[4]。當(dāng)局部場景切換處于I幀時,由于I幀可全部宏塊采用INTRA模式,利用空間相關(guān)性進(jìn)行壓縮編碼。當(dāng)局部場景切換出現(xiàn)在P幀時,編碼器根據(jù)RDO (rate distortion optimization)決策先計算利用時間冗余進(jìn)行壓縮的幀間編碼模式 (INTER模式)的率失真代價 (rate distortion cost,RDCost),再計算INTRA模式的比較選擇。決策過程計算復(fù)雜,耗費(fèi)大量編碼時間。
圖2 桌面視頻序列宏塊編碼模式分布
在幀間預(yù)測模式?jīng)Q策之前,編碼器檢測出KVM視頻序列的局部場景切換的宏塊,跳過INTER預(yù)測模式,進(jìn)入INTRA模式的決策過程,可以有效降低幀間模式預(yù)測算法的復(fù)雜度,提高編碼速度。對普通視頻序列,幀變化區(qū)域檢測研究主要是利用壓縮域和變換域的信息對視頻場景切換進(jìn)行檢測。文獻(xiàn) [5]利用幀內(nèi)模式編碼宏塊數(shù)目作為判斷依據(jù)進(jìn)行場景切換檢測。文獻(xiàn) [6]利用參考幀與當(dāng)前幀亮度與色度的變化程度進(jìn)行場景切換檢測。文獻(xiàn) [7]利用DCT比值偏移為準(zhǔn)則判斷場景切換的發(fā)生。文獻(xiàn) [5]和文獻(xiàn) [7]的檢測方法只有在宏塊編碼之后才能進(jìn)行檢測,存在一定的局限性。
本文首先利用局部場景切換處宏塊與參考幀宏塊在灰度的直方圖相關(guān)性,檢測運(yùn)動矢量為零的局部場景切換宏塊。再由宏塊的運(yùn)動狀態(tài)檢測運(yùn)動矢量非零的局部場景切換宏塊。
文獻(xiàn) [6]通過統(tǒng)計研究視頻整副圖像發(fā)生場景切換的序列發(fā)現(xiàn):沒有發(fā)生場景切換序列,灰度和色度變化緩慢平穩(wěn);有場景切換存在的序列,反應(yīng)灰度的分量Y和反應(yīng)色度的U、V分量均存在突變現(xiàn)象。由于人眼對于色度分量U、V的敏感程度遠(yuǎn)低于亮度分量Y[8],本文首先利用反應(yīng)圖像灰度分布情況的直方圖統(tǒng)計宏塊的亮度分量Y分布,然后計算巴氏距離 (bhattachryya distance)得到當(dāng)前幀宏塊和參考幀宏塊的相關(guān)性,通過巴氏距離反應(yīng)P幀宏塊與參考幀宏塊的時間冗余,巴氏距離如下所示
式中:H1、H2——運(yùn)動矢量為零的16×16宏塊與其參考幀宏塊的直方圖;
直方圖高度歸一化如下所示
式中:()H i——運(yùn)動矢量為零的16×16宏塊的直方圖高度;H′(i)——?dú)w一化以后的直方圖高度;N——宏塊尺寸。經(jīng)過歸一化這一過程將宏塊亮度分量Y各個值出現(xiàn)頻次轉(zhuǎn)化成不同亮度Y值出現(xiàn)的概率,使得其對應(yīng)的巴士距離值更加分散,可以放大宏塊與參考幀宏塊的差異,更好地描述兩者相關(guān)性,便于場景切換處宏塊的檢測。并且通過式 (2)歸一化后,使得1??梢詫褪暇嚯x進(jìn)一步簡化為式 (3)所示
宏塊運(yùn)動狀態(tài)是描述視頻對象的重要信息,宏塊運(yùn)動矢量較大說明存在運(yùn)動速度快的或劇烈變化的視頻對象[9],從而可以判斷局部場景切換的發(fā)生。研究表明,宏塊運(yùn)動矢量較大時,其宏塊分割尺寸比較精細(xì)[10]。本文按照如下方式定義宏塊運(yùn)動能量
式中:(x,y)——當(dāng)前幀宏塊坐標(biāo);mv——宏塊運(yùn)動矢量;mx、my——宏塊運(yùn)動矢量 mv 的水平與垂直分量;mode——宏塊分割尺寸。
宏塊運(yùn)動能量可以提供宏塊運(yùn)動矢量的信息,對于運(yùn)動矢量非零的宏塊,利用式 (5)判斷是否發(fā)生局部場景切換如下
P幀的預(yù)測模式選擇決策過程中,在最優(yōu)INTER模式預(yù)測之前,對宏塊進(jìn)行局部場景切換檢測,定義宏塊局部場景切換標(biāo)識PS。根據(jù)式 (4)或者式 (6)判斷該宏塊是否處于局部場景切換區(qū)域內(nèi),若滿足式 (4)或者式 (6)其中一個則該宏塊的PS為1,否則宏塊PS為0。
H.264采用RDO決策進(jìn)行宏塊編碼模式預(yù)測,對每個宏塊所有可能模式計算其RDCost,選擇代價最小模式作為編碼模式[11]。根據(jù)普通視頻序列運(yùn)動緩慢、P幀宏塊多數(shù)采用INTER模式進(jìn)行編碼,RDO決策在進(jìn)行幀間宏塊編碼模式預(yù)測的過程中,先進(jìn)行SKIP模式判斷,再搜索選擇INTER預(yù)測模式,最后進(jìn)行INTRA模式搜索,以提高模式預(yù)測的效率,保證搜索的速度[12]。RDO決策進(jìn)行P幀宏塊模式預(yù)測的具體過程為:對宏塊先判斷其是否滿足SKIP條件,若滿足則采用SKIP模式,否則計算7種INTER模式的RDCost,搜索選擇RDCost最小的INTER模式;然后判斷宏塊運(yùn)動補(bǔ)償殘差的平均比特數(shù)是否小于宏塊邊界平均誤差,若小于則宏塊的預(yù)測模式為INTER模式,否則進(jìn)入INTRA模式檢索。
但在KVM視頻P幀中出現(xiàn)局部場景切換時,P幀存在大量宏塊應(yīng)采用INTRA模式編碼。而RDO決策先進(jìn)行INTER模式選擇,再進(jìn)行INTRA模式選擇,使得計算量增加,預(yù)測時間增長。為避免對局部場景切換宏塊進(jìn)行壓縮效率低的INTER模式預(yù)測選擇過程,局部場景切換預(yù)測選擇算法跳過INTER模式選擇,直接進(jìn)入INTRA模式?jīng)Q策過程。詳細(xì)步驟如下:
(1)首先判斷條帶類型,若為P條帶則到 (2);否則按照RDO決策選擇宏塊預(yù)測模式,到 (6)。
(2)根據(jù)SKIP條件判斷,若滿足則SKIP模式為宏塊的預(yù)測模式,到 (6);否則到 (3)。
(3)若宏塊局部場景切換標(biāo)識PS=1,宏塊處于局部場景切換區(qū)域,到 (4);否則PS=0,到 (5)。
(4)利用RDO的INTRA模式預(yù)測選出最佳INTRA模式,為宏塊的預(yù)測模式,到 (6)。
(5)按照RDO決策預(yù)測宏塊的最優(yōu)預(yù)測模式,到 (6)。
(6)結(jié)束。
為了分析本文提出的算法的性能,錄制存在大量窗口彈出、關(guān)閉與切換、程序參數(shù)調(diào)整、程序調(diào)試等情況的KVM視頻序列進(jìn)行測試。KVM視頻內(nèi)容為Visual Studio生成執(zhí)行工程,分辨率為1024×768,幀數(shù)為1000。本文應(yīng)用 H.264的測試模型Joint Model(JM12.2),在2GB內(nèi)存、2.6GHz主頻的計算機(jī)上運(yùn)行實(shí)驗(yàn)。先選取KVM視頻序列的前500幀進(jìn)行測試,統(tǒng)計得到P幀中視頻對象突變處I宏塊數(shù)目。JM12.2實(shí)驗(yàn)參數(shù)設(shè)置為:①JM12.2檔次為基本檔次;②幀結(jié)構(gòu)為IPPP,GOP長度為10;③量化參數(shù)(quantization parameter,QP)為28;④參考幀數(shù)為3。
然后將本文的局部場景切換預(yù)測模式選擇算法應(yīng)用于JM12.2模型,設(shè)置不同的巴氏距離閾值Thred1和運(yùn)動能量閾值Thred2的組合,采用相同的JM12.2參數(shù)對KVM視頻序列前500幀進(jìn)行多次編碼實(shí)驗(yàn),找出最佳的巴氏距離閾值Thred1和運(yùn)動能量閾值Thred2的組合。根據(jù)巴士距離為1時,宏塊與參考幀宏塊不相關(guān),巴士距離為0時,宏塊與參考幀宏塊完全一致,將Thred1限定在0.7到0.85之間。圖3給出了四組巴氏距離閾值Thred1和運(yùn)動能量閾值Thred2組合測試的P幀局部場景切換宏塊檢測正確率。
圖3 測試P幀局部場景切換宏塊檢測正確率
圖3中局部場景切換宏塊檢測正確率為
通過仿真實(shí)驗(yàn)可以得到巴氏距離閾值Thred1取0.7,宏塊運(yùn)動能量閾值Thred2取22時,局部場景切換檢測正確率為最優(yōu)。
在錄制的KVM視頻的后500幀上分別測試H.264的RDO決策和局部場景切換預(yù)測模式選擇兩種算法,JM12.2參數(shù)設(shè)置同前面實(shí)驗(yàn),局部場景切換預(yù)測模式選擇算法的閾值Thred1和Thred2分別取0.7和22。實(shí)驗(yàn)結(jié)果見表1,所有P幀的編碼時間如圖4所示。實(shí)驗(yàn)結(jié)果顯示本文算法與采用完整RDO決策過程相比,在Y分量PSNR值沒有降低的情況下,KVM視頻序列的I幀和P幀的平均編碼時間縮短了9.96%,P幀編碼時間平均縮短了22.3%。圖4中存在多處出虛線顯示的H.264編碼時間激增的P幀,這些P幀為發(fā)生局部場景切換的P幀,實(shí)線顯示的本文算法在局部場景切換處編碼時間下降幅度更加明顯,一些大面積局部場景切換P幀編碼時間可以縮短40%左右。
表1 本文算法與H.264RDO決策編碼結(jié)果比較
圖4 P幀編碼時間
針對KVM視頻存在大量局部場景切換畫面并且難以獲得視頻序列變化區(qū)域,本文提出一種應(yīng)用于H.264的局部場景切換預(yù)測模式選擇算法,首先檢測宏塊是否處于局部場景切換區(qū)域,根據(jù)檢測結(jié)果選擇P幀宏塊的預(yù)測模式。保證信噪比的前提下,本文算法與JM12.2相比,對KVM視頻序列編碼時間可以減少9.96%,存在局部場景切換的P幀編碼時間平均可以減少20%。本文算法可以有效地降低KVM視頻中局部場景切換處的編碼時間,但是對于KVM視頻序中出現(xiàn)普通視頻對象的情形并未研究,所以今后將進(jìn)一步優(yōu)化預(yù)測模式選擇算法來解決這個問題。
[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的屏幕視頻實(shí)時編碼器優(yōu)化 [J].計算機(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].計算機(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].計算機(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幀內(nèi)預(yù)測模式的快速選擇算法 [J].計算機(jī)工程與設(shè)計,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].計算機(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].中國圖象圖形學(xué)報,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級視頻場景轉(zhuǎn)換檢測算法 [J].電子學(xué)報,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].通信學(xué)報,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ìn)的幀內(nèi)幀間模式選擇快速算法 [J].北京航空航天大學(xué)學(xué)報,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).[徐平,佘青山,金朝陽,等.基于時空預(yù)測的H.264快速幀內(nèi)預(yù)測模式選擇算法[J].通信學(xué)報,2010,31 (9):139-145.]