重慶郵電大學(xué)通信學(xué)院 吳 建 錢(qián) 浩 張由明
虛擬網(wǎng)絡(luò)計(jì)算中圖像編碼的優(yōu)化
重慶郵電大學(xué)通信學(xué)院 吳 建 錢(qián) 浩 張由明
為了能進(jìn)行實(shí)時(shí)有效的VNC圖像傳輸,提出了將H.264視頻壓縮技術(shù)應(yīng)用到VNC的編碼模塊中。為了進(jìn)一步提高系統(tǒng)的圖像傳輸速度,對(duì)H.264進(jìn)一步優(yōu)化。將視頻幀預(yù)測(cè)模式按照在實(shí)際的模式選擇中所占比例高低以及宏塊間的相似性分成四類(lèi),從實(shí)際選擇中所占比例高的模式優(yōu)先開(kāi)始搜索,代替原來(lái)的樹(shù)狀全搜索模式以便縮短幀預(yù)測(cè)的時(shí)間,從而提高系統(tǒng)的圖像傳輸速度。實(shí)驗(yàn)結(jié)果表明,該算法與其他編碼算法相比,運(yùn)算速度較快,有效的提高了圖像編碼的速度,滿(mǎn)足實(shí)時(shí)傳輸?shù)男枨蟆?/p>
H.264;虛擬網(wǎng)絡(luò)計(jì)算;圖像編碼;幀間預(yù)測(cè)
近年來(lái),計(jì)算機(jī)科學(xué)和計(jì)算機(jī)應(yīng)用的快速發(fā)展,云計(jì)算的發(fā)展隨之加快。虛擬化技術(shù)的研究和應(yīng)用也隨著桌面云的發(fā)展逐步深入。更多的用戶(hù)利用桌面云進(jìn)行遠(yuǎn)程會(huì)議,辦公教學(xué)等業(yè)務(wù)處理。桌面的圖像壓縮和圖像傳輸是桌面云的核心技術(shù),由于桌面圖像的信息量巨大,因此,要進(jìn)行有效的實(shí)時(shí)傳輸,對(duì)桌面圖像進(jìn)行有效的圖像壓縮就顯得尤為重要。
虛擬網(wǎng)絡(luò)計(jì)算(Virtual Network Computing)[1]是一種遠(yuǎn)程控制軟件。VNC的編碼方法是基于塊的無(wú)損壓縮編碼。具體為首先把桌面分割成16×16塊,然后根據(jù)塊內(nèi)的不同的顏色信息選擇相應(yīng)的編碼方法。VNC的編碼算法主要有RRE、CoRRE,ZRLE和Hextile等。上述幾種編碼算法的特點(diǎn)是編碼和解碼的速度較快,但對(duì)于多媒體圖像的壓縮率較低。為了提高桌面圖像的壓縮效率,有人提出了混合圖像壓縮算法,將8×8的塊分文為圖像塊和文本,分別采用動(dòng)態(tài)的JPEG壓縮和JPEG-LS壓縮[2];也有人采用基于圖像編碼的方法,并針對(duì)文本和自然圖像的差別進(jìn)行改進(jìn)。但當(dāng)該算法對(duì)于實(shí)時(shí)傳輸系統(tǒng)來(lái)說(shuō),編碼速度較慢,處理的幀數(shù)較低。另外,以上算法在處理高清視頻時(shí),壓縮率較低導(dǎo)致實(shí)時(shí)性較差。對(duì)此,本文提出將H.264視頻壓縮技術(shù)應(yīng)用到虛擬網(wǎng)絡(luò)計(jì)算中。
2.1H.264 算法的介紹
H.264是一種視頻高壓縮技術(shù),是由國(guó)際電信標(biāo)準(zhǔn)化部門(mén) (ITUT) 和動(dòng)態(tài)圖像專(zhuān)家組(MPEG)聯(lián)合視頻組(JVT)共同提出的數(shù)字視頻編解碼器的標(biāo)準(zhǔn)。H.264編碼具有很高的編碼效率,并且H.264具有很強(qiáng)的網(wǎng)絡(luò)適應(yīng)性,能更好的適應(yīng)無(wú)線網(wǎng)絡(luò)的應(yīng)用。H.264算法的核心是預(yù)測(cè)編碼,預(yù)測(cè)編碼包括幀內(nèi)預(yù)測(cè)和幀間預(yù)測(cè)。幀內(nèi)預(yù)測(cè)的作用主要是消除時(shí)間冗余,幀間預(yù)測(cè)的作用主要是消除空間冗余。幀間預(yù)測(cè)劃分模式是根據(jù)樹(shù)狀結(jié)構(gòu)進(jìn)行劃分,主要采用全搜索算法進(jìn)行搜索,全搜索就是為了選擇最優(yōu)的預(yù)測(cè)模式把運(yùn)動(dòng)搜索范圍內(nèi)的所以可能的位置全搜索一遍。這種方法的算法復(fù)雜度很高并且編碼效率較低。幀間模式在編碼過(guò)程中占用了大量的時(shí)間,因此,為了提高虛擬網(wǎng)絡(luò)計(jì)算的實(shí)時(shí)性,對(duì)幀間預(yù)測(cè)編碼的模式選擇進(jìn)行優(yōu)化就尤為重要。為了降低算法的計(jì)算復(fù)雜度,提高編碼的效率,本文將針對(duì)模式搜索進(jìn)行優(yōu)化。本文為了選擇最優(yōu)的預(yù)測(cè)模式對(duì)模式分類(lèi),然后再判定選擇幀內(nèi)預(yù)測(cè)還是幀間預(yù)測(cè)。
2.2H.264像素塊預(yù)測(cè)編碼算法的優(yōu)化
預(yù)測(cè)編碼包括幀內(nèi)預(yù)測(cè)和幀間預(yù)測(cè)。視頻編碼的冗余主要是時(shí)間冗余,其次是空間冗余。幀間預(yù)測(cè)的作用主要是消除時(shí)間冗余。它是利用視頻圖像幀間的相關(guān)性來(lái)進(jìn)行圖像壓縮。幀間預(yù)測(cè)就是時(shí)域預(yù)測(cè),就是根據(jù)之前編碼過(guò)的圖像來(lái)預(yù)測(cè)要編碼的圖像。幀間預(yù)測(cè)在進(jìn)行預(yù)測(cè)時(shí)會(huì)采用樹(shù)狀劃分模式對(duì)所有的模式進(jìn)行運(yùn)動(dòng)估計(jì),選出最佳預(yù)測(cè)模式來(lái)作運(yùn)動(dòng)補(bǔ)償。
本文選擇把所有的模式分成4個(gè)模式集合M0、M1、M2和M3。M0包括SKIP模式;M1和M2均是幀間分割模式,M1包含了3個(gè)幀間分割模式,M2包含了4個(gè)較小的幀間分割模式,M3包含了Intra 16×16和Intra 4×4兩種幀內(nèi)模式。模式具體的分類(lèi)如下所示:
首先搜索M0集合,一旦滿(mǎn)足SKIP模式,就可以避免其他模式的判斷。從而可以降低計(jì)算復(fù)雜度,減少預(yù)測(cè)編碼時(shí)間。根據(jù)平均絕對(duì)差值(MAD)來(lái)判定是否使用幀內(nèi)模式;如果不使用幀內(nèi)模式,再繼續(xù)搜索幀間模式集合M1,若有最佳模式則停止搜索;否則繼續(xù)搜索模式M2,直至找到最佳模式。首先判定模式M0是否為當(dāng)前宏塊的最佳模式計(jì)算。具體方法是判斷SKIP模式的率失真代價(jià)J和預(yù)定閾值U。當(dāng)預(yù)定閾值大于J(SKIP)時(shí),則確定模式M0為當(dāng)前的最佳模式。若滿(mǎn)足模式M0,選擇過(guò)程即可終止,避免了其他模式的判斷。閾值的公式如(1)。
然后,去除mx和my兩個(gè)宏塊的均值,如式(2)。式中的K表示宏塊大小,xij和yij分別是宏塊中像素的亮度值。平均絕對(duì)差值MAD為常用的匹配準(zhǔn)則,它結(jié)合公式(1)可以判定P幀在模式選擇時(shí)是選擇幀內(nèi)模式還是幀間模式。判斷方法如公式(3)。如果:
就要求P幀選擇幀內(nèi)模式,即模式M3。當(dāng)小于等于U時(shí)P幀選擇幀間模式。由于模式M1在實(shí)際的模式選擇中所占比例較大[5],若確定M1是否為最佳模式,則可以降低計(jì)算復(fù)雜度,所以本文先在模式M1中搜索最優(yōu)模式。若M1模式集合中沒(méi)有最優(yōu)模式,那么就繼續(xù)搜索M2模式集合,直到找到最優(yōu)模式為止。
為了驗(yàn)證算法的有效性,本文用開(kāi)源的 X264代碼進(jìn)行測(cè)試。本文采用的測(cè)試序列為foreman和news,在對(duì)測(cè)試序列進(jìn)行壓縮和解壓縮后的結(jié)果如下。由表1可以看出,經(jīng)過(guò)優(yōu)化后的算法叫優(yōu)化前編碼時(shí)間有明顯的縮短。盡管表2顯示峰值信噪比有所下降,但是不會(huì)影響到圖像質(zhì)量。因此,本文算法對(duì)幀間預(yù)測(cè)有了明顯的優(yōu)化。
表1 優(yōu)化后的算法與X.264編碼時(shí)間的對(duì)比(ms)
表2 優(yōu)化后的算法與X.264峰值信噪比的對(duì)比(db)
本文選取了另外的3種編碼方法與本算法進(jìn)行了比較及分析。三種方法包括:VNC中的Hextile無(wú)損壓縮算法;Jpeg有損壓縮算法;Dynamic混合壓縮算法。用四種壓縮算法對(duì)同一圖像(原始圖像為1407KB)進(jìn)行壓縮和解壓縮。實(shí)驗(yàn)結(jié)果如表3、表4所示。
表3 各算法的編碼解碼時(shí)間(ms)
表4 各算法的峰值信噪比(db)
通過(guò)實(shí)驗(yàn)結(jié)果的比較分析,本文算法相對(duì)于其他的方法,信噪比有明顯的提高,運(yùn)算速度也較快,完全滿(mǎn)足系統(tǒng)實(shí)時(shí)性的要求。
本文將H.264視頻壓縮技術(shù)應(yīng)用到VNC的編碼模塊,并且為了提高圖像編碼效率,對(duì)H.264的預(yù)測(cè)編碼進(jìn)行優(yōu)化。首先分析了影響編碼效率的原因,并針對(duì)幀間預(yù)測(cè)中全搜索算法的進(jìn)行優(yōu)化,即對(duì)H.264幀間宏塊模式選擇算法進(jìn)行分析,優(yōu)化選擇,通過(guò)預(yù)定閾值和平均絕對(duì)差值計(jì)算宏塊間的相似性來(lái)判斷是幀內(nèi)預(yù)測(cè)或者幀間預(yù)測(cè),避免了對(duì)所有模式進(jìn)行遍歷。通過(guò)對(duì)測(cè)試序列進(jìn)行測(cè)試,驗(yàn)證了算法在沒(méi)有影響到圖像質(zhì)量的情況下,壓縮效率有了明顯的提高并能夠滿(mǎn)足VNC的實(shí)時(shí)性。
[1]VNC 介紹.http://baike.baidu.com/view/160932.htm.
[2]SAID A.Compression of compound images and video for enabling rich media in embedded systems[C].International Conference on Visual Communication and Images Processing.San Jose,CA:SPIE,2004:69-82.
[3]梁飛碟,李錦濤,史紅周.虛擬網(wǎng)絡(luò)計(jì)算(VNC)協(xié)議中的編碼方法[J].計(jì)算機(jī)應(yīng)用,2004,24(6):1-3.
[4]金磊,謝偉凱,林藝等.基于H.264的屏幕視頻實(shí)時(shí)編碼器優(yōu)化[J].計(jì)算機(jī)工程,2012,38(16):18-22.
[5]陳政,何衛(wèi)鋒.基于方向信息的幀內(nèi)預(yù)測(cè)快速模式選擇算法[J].微計(jì)算機(jī)信息,2012,28(9):344-345.
[6]張哲,趙磊,于瀟等.基于H.264的嵌入式視頻監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].山東理工大學(xué)學(xué)報(bào):自然科學(xué)版,2011,25(5):71-74.
吳建(1970—),四川人,碩士,高級(jí)工程師,現(xiàn)就職于重慶郵電大學(xué)。
錢(qián)浩【通訊作者】(1990—),山東棗莊人,碩士研究生。