張霞霞,孫萬(wàn)蓉,成 龍,岳智佳,李沛甲
(西安電子科技大學(xué) 電子工程學(xué)院,陜西 西安 710071)
?
視頻圖像壓縮在物聯(lián)網(wǎng)監(jiān)測(cè)系統(tǒng)中的應(yīng)用
張霞霞,孫萬(wàn)蓉,成龍,岳智佳,李沛甲
(西安電子科技大學(xué) 電子工程學(xué)院,陜西 西安 710071)
在物聯(lián)網(wǎng)監(jiān)測(cè)系統(tǒng)中,由于視頻圖像所占空間較大,且所需的通信帶寬要求高,會(huì)在傳輸和存儲(chǔ)的過(guò)程中造成困難,因此需要對(duì)視頻圖像進(jìn)行壓縮。文中介紹了一種適用于物聯(lián)網(wǎng)監(jiān)測(cè)系統(tǒng)的視頻圖像壓縮方法,即通過(guò)幀預(yù)測(cè)、DCT變換和可變長(zhǎng)編碼相結(jié)合的方式對(duì)視頻圖像進(jìn)行編碼和相應(yīng)的解碼。經(jīng)過(guò)實(shí)驗(yàn)表明,該方法有效地壓縮了視頻圖像,且在提高視頻圖像傳輸速率的同時(shí),減少了傳輸時(shí)間。
視頻圖像壓縮;運(yùn)動(dòng)補(bǔ)償;運(yùn)動(dòng)估計(jì);DCT變換
物聯(lián)網(wǎng)[1]監(jiān)測(cè)系統(tǒng)主要由3大部分組成:感知層、網(wǎng)絡(luò)層和應(yīng)用層,如圖1所示。其中,在感知層用傳感器采集數(shù)據(jù),然后通過(guò)網(wǎng)絡(luò)層傳輸?shù)綉?yīng)用層,在瀏覽器中便可看到采集的數(shù)據(jù)。
圖1 物聯(lián)網(wǎng)監(jiān)測(cè)系統(tǒng)3層架構(gòu)
同理,在感知層采集到視頻圖像信息后,要先對(duì)其進(jìn)行壓縮,再通過(guò)網(wǎng)絡(luò)傳輸?shù)綉?yīng)用層,對(duì)其解壓后再觀察。
2.1視頻圖像壓縮的必要性和可行性
在采集視頻圖像時(shí),獲得的數(shù)據(jù)量通常較大,如不經(jīng)適當(dāng)?shù)膲嚎s編碼處理[2],視頻圖像傳輸所需的高速率和存儲(chǔ)所需的巨大容量將成為其推廣應(yīng)用的最大障礙。
由于組成圖像的各個(gè)像素點(diǎn)之間無(wú)論在行的方向還是在列的方向上均具有相關(guān)性,整個(gè)圖像數(shù)據(jù)具有較大的冗余度,也就有一定的壓縮潛力。而且評(píng)價(jià)圖像品質(zhì)的最終標(biāo)準(zhǔn)取決于人眼,而人眼由于其視覺(jué)特性對(duì)圖像的細(xì)微差別還是難以分辨的,在對(duì)圖像數(shù)據(jù)進(jìn)行壓縮時(shí),可允許一定程度的失真[3]。
所以,無(wú)論是從視頻圖像自身特點(diǎn)還是評(píng)價(jià)圖像品質(zhì)的對(duì)象來(lái)看,對(duì)大量的視頻圖像數(shù)據(jù)做壓縮編碼以降低傳輸時(shí)間和存儲(chǔ)空間的方法是可行的。
2.2常用的視頻圖像壓縮編碼方法
最經(jīng)典的視頻壓縮編碼技術(shù)是預(yù)測(cè)編碼、變換編碼和統(tǒng)計(jì)編碼。
2.2.1預(yù)測(cè)編碼
預(yù)測(cè)編碼的基本原理是先得到預(yù)測(cè)值,該值是根據(jù)數(shù)據(jù)的統(tǒng)計(jì)特性獲得,接著傳輸預(yù)測(cè)值與圖像像素差值信號(hào),降低傳輸碼率,最終實(shí)現(xiàn)壓縮。壓縮編碼后傳輸?shù)牟⒉皇窍袼乇旧淼娜臃?,而是該取樣的預(yù)測(cè)值和實(shí)際值之差[4]。
預(yù)測(cè)編碼的原理如圖2所示。
圖2 預(yù)測(cè)編碼原理圖
在圖2(a)中,x(n)為原始數(shù)據(jù);p(n)為預(yù)測(cè)值;d(n)=x(n)-p(n),即實(shí)際值和預(yù)測(cè)值之差,q(n)是輸出量化值;s(n)是編碼輸出。在圖2(b)中,s(n)經(jīng)解碼并反量化后得到d′(n),將d′(n)和預(yù)測(cè)值p′(n)求和,便可得到恢復(fù)后的數(shù)據(jù)x′(n),x′(n)=d′(n)+p′(n)。預(yù)測(cè)編碼可分為幀內(nèi)預(yù)測(cè)和幀間預(yù)測(cè)。
幀內(nèi)預(yù)測(cè):即根據(jù)一個(gè)像素點(diǎn)周圍的像素值,來(lái)預(yù)測(cè)當(dāng)前像素值。具體方法有一維預(yù)測(cè)和二維預(yù)測(cè)。人眼視覺(jué)特性實(shí)驗(yàn)表明,在亮度突變部分,量化誤差大一些人眼不會(huì)太敏感,可采取粗量化(量化節(jié)距大);反之,在亮度變化緩慢區(qū)域,則應(yīng)取細(xì)量化。利用人眼這種掩蓋效應(yīng)采用非線性(不均勻)量化,可使總碼率有所下降[5]。表1是預(yù)測(cè)編碼的一個(gè)差值量化表,第一行的值是差值,差值越大,說(shuō)明變化越快,量化節(jié)距便可取得越大。
表1 差值量化表
當(dāng)進(jìn)行完預(yù)測(cè)后,將測(cè)量到的實(shí)際值與預(yù)測(cè)值比較得出差值,將此差值記錄并編碼,而不是直接對(duì)實(shí)際值編碼。
幀間預(yù)測(cè):即利用相鄰幀之間像素點(diǎn)的相關(guān)性進(jìn)行預(yù)測(cè),視頻圖像前后幀之間,相同位置處的像素點(diǎn)有較強(qiáng)的相關(guān)性。在視頻中,物體運(yùn)動(dòng)大多是平移運(yùn)動(dòng)。因此,若能判斷出當(dāng)前幀的某個(gè)物體是由上一幀中的某個(gè)物體運(yùn)動(dòng)而來(lái),便可將上一幀中該物體附近區(qū)域的像素點(diǎn)直接“復(fù)制”到當(dāng)前幀中對(duì)應(yīng)的位置,作為該宏塊的預(yù)測(cè)值[6]。與幀內(nèi)預(yù)測(cè)不同的是,除了記錄差分值外,幀間預(yù)測(cè)還要對(duì)運(yùn)動(dòng)矢量進(jìn)行編碼。
2.2.2變換編碼
變換編碼不直接對(duì)空間域圖像數(shù)據(jù)進(jìn)行編碼,而是將空間域圖像數(shù)據(jù)映射變換到另一個(gè)正交向量空間,得到一組變換系數(shù),然后對(duì)這些變換系數(shù)進(jìn)行量化、編碼、傳輸。對(duì)變換系數(shù)進(jìn)行壓縮編碼,比直接對(duì)圖像數(shù)據(jù)本身進(jìn)行壓縮更容易獲得高的效率[7]。
變換編碼的原理圖,如圖3所示。變換編碼的基本方法:將數(shù)字圖像分成一定大小的子圖像塊,用某種變換對(duì)子圖像塊進(jìn)行變換,得到變換域中的系數(shù)矩陣,然后選用其中的主要系數(shù)進(jìn)行量化和編碼,圖像顯示時(shí)再經(jīng)過(guò)逆變換即可重構(gòu)原圖像。
圖3 變換編碼原理框圖
變換編碼的方法有:K-L變換、離散傅里葉變換、離散余弦變換、離散沃爾什變換、離散哈達(dá)瑪變換和小波變換等。
相比預(yù)測(cè)編碼的消除時(shí)間冗余,變換編碼消除了空間的冗余度[8]。
2.2.3統(tǒng)計(jì)編碼
統(tǒng)計(jì)編碼是根據(jù)消息出現(xiàn)概率分布的特性而進(jìn)行的壓縮編碼。其宗旨在于,在消息和碼字之間找到明確的一一對(duì)應(yīng)關(guān)系,并將這種失真或不對(duì)應(yīng)概率限制到可容忍的范圍內(nèi),但無(wú)論何種途徑,其總是要使平均碼長(zhǎng)或碼率壓低至最低限度[9]。
常用的編碼有:Huffman編碼、算術(shù)編碼和Shannon-Famo碼等。
本文的視頻圖像壓縮方法采用的是幀預(yù)測(cè)、運(yùn)動(dòng)估計(jì)、運(yùn)動(dòng)補(bǔ)償、DCT變換和可變長(zhǎng)編碼(VLC)的混合編碼模式,編解碼框圖如圖4所示。
圖4 視頻圖像壓縮編碼方法
編碼過(guò)程:(1)對(duì)錄入視頻圖像進(jìn)行預(yù)處理:分離視頻信號(hào)與音頻信號(hào),將視頻拆分成一幀一幀的圖像,并將每幅圖像的R、G、B分量提取出來(lái);(2)將輸入幀信號(hào)與預(yù)測(cè)幀信號(hào)之差作DCT變換,將其量化再反量化作IDCT緩存,作下一幀信號(hào)的預(yù)測(cè)幀時(shí)使用;(3)將量化后的作VLC編碼(可變長(zhǎng)編碼)后輸出壓縮信號(hào)。
解碼過(guò)程:利用VLC解碼方法對(duì)壓縮信號(hào)進(jìn)行重構(gòu),經(jīng)反量化和離散余弦逆變換(IDCT)后,先將其緩存作為下一幀圖像的參考幀使用,然后將其與預(yù)測(cè)幀信號(hào)求和得到當(dāng)前幀的視頻圖像。最后,將解壓過(guò)的一幀幀圖像用算法重建視頻圖像。
3.1幀預(yù)測(cè)
幀預(yù)測(cè)是利用相鄰幀之間的相關(guān)性來(lái)對(duì)下一幀圖像中同一個(gè)物體的位置進(jìn)行估計(jì),即運(yùn)動(dòng)估計(jì),為對(duì)此物體的位置進(jìn)行準(zhǔn)確預(yù)測(cè),還需要用到運(yùn)動(dòng)補(bǔ)償算法。
3.1.1運(yùn)動(dòng)估計(jì)
視頻圖像兩幀之間的物體運(yùn)動(dòng)是平移運(yùn)動(dòng),位移量并不大,所以會(huì)以塊作為單位分配運(yùn)動(dòng)矢量,在運(yùn)動(dòng)估計(jì)中采用了大量的參考幀預(yù)測(cè)來(lái)提高精度,當(dāng)前的待編碼塊可在緩存內(nèi)的所有重建幀中尋找最優(yōu)的匹配塊進(jìn)行運(yùn)動(dòng)補(bǔ)償,以便較好的去除時(shí)間域的冗余度。為每一個(gè)塊尋求一個(gè)運(yùn)動(dòng)矢量,并進(jìn)行運(yùn)動(dòng)補(bǔ)償預(yù)測(cè)編碼。
一般的運(yùn)動(dòng)估計(jì)方法如下:設(shè)t時(shí)刻的幀圖像為當(dāng)前幀f(x,y),t′時(shí)刻的幀圖像為參考幀f′(x,y),參考幀在時(shí)間上可以超前或者滯后于當(dāng)前幀,當(dāng)t′
3.1.2運(yùn)動(dòng)補(bǔ)償
運(yùn)動(dòng)補(bǔ)償是一種描述相鄰幀(相鄰在這里表示在編碼關(guān)系上相鄰,在播放順序上兩幀未必相鄰) 差別的方法,具體而言是描述前面一幀的每個(gè)小塊怎樣移動(dòng)到當(dāng)前幀中的某個(gè)位置去。即運(yùn)動(dòng)補(bǔ)償是通過(guò)先前的局部圖像來(lái)預(yù)測(cè)、補(bǔ)償當(dāng)前的局部圖像,其是減少幀序列冗余信息的有效方法,包括全局運(yùn)動(dòng)補(bǔ)償和分塊運(yùn)動(dòng)補(bǔ)償兩類[10]。
3.2DCT變換
DCT變換的全稱是離散余弦變換(Discrete Cosine Transform),是指將一組光強(qiáng)數(shù)據(jù)轉(zhuǎn)換成頻率數(shù)據(jù),以便得知強(qiáng)度變化的情形。
DCT變換壓縮的特點(diǎn)是將從前密度均勻的信息分布變換為密度不同的信息分布。在圖像中,低頻部分的信息量要大于高頻部分的信息量,盡管低頻部分的數(shù)據(jù)量比高頻部分的數(shù)據(jù)量要小的多。若對(duì)高頻的數(shù)據(jù)做些修飾,再轉(zhuǎn)回原來(lái)形式的數(shù)據(jù)時(shí),顯然與原始數(shù)據(jù)有差異,但人眼卻不易辨認(rèn)出來(lái)。壓縮時(shí),將原始圖像數(shù)據(jù)分成8×8數(shù)據(jù)單元矩陣。
3.3可變長(zhǎng)編碼(VLC)
可變長(zhǎng)編碼(VLC)由行程編碼和哈夫曼編碼兩部分構(gòu)成,行程編碼是對(duì)圖像塊按Zigzag方法掃描然后由行程+幅值構(gòu)成,哈夫曼編碼則對(duì)行程碼作符號(hào)統(tǒng)計(jì)然后根據(jù)哈夫曼編碼表對(duì)之編碼[11]。
哈夫曼數(shù)據(jù)壓縮步驟:(1)檢查字符在數(shù)據(jù)中的出現(xiàn)頻率;(2)構(gòu)建哈夫曼樹(shù);(3)創(chuàng)建哈夫曼編碼表;(4)生成壓縮后結(jié)果,由一個(gè)文件頭和壓縮后的數(shù)據(jù)組成。
在進(jìn)行圖像預(yù)處理時(shí),需要將每一幀圖像的R、G、B分量分別提取出來(lái),圖5所示為預(yù)處理對(duì)比圖,圖6為第2幀圖像的預(yù)測(cè)圖像,圖7為解壓后的重建圖像,圖8為重建彩色圖像與原彩色圖像對(duì)比圖。
本文采用的視頻圖像壓縮算法與DCT編碼算法、Huffman編碼算法的壓縮比和峰值信噪比的比較結(jié)果如表2所示。
表2 壓縮編碼方法比較
圖5 預(yù)處理對(duì)比圖
圖6 第二幀圖像預(yù)測(cè)
圖7 壓縮前后對(duì)比圖
圖8 重建彩色圖像與原彩色圖像對(duì)比
從表2可看出,本文采用的混合編碼算法的圖像壓縮比高于Huffman編碼算法,又低于DCT編碼算法;其峰值信噪比高于DCT編碼算法和Huffman編碼算法(峰值信噪比越大,表示前后兩幅圖像越相近)。因此,本文采用的視頻圖像壓縮算法既有較好的圖像壓縮比,又有適當(dāng)?shù)姆逯敌旁氡?,滿足了視頻圖像壓縮編碼的要求。
本文采用幀預(yù)測(cè)、運(yùn)動(dòng)估計(jì)、運(yùn)動(dòng)補(bǔ)償、DCT變換和可變長(zhǎng)編碼(VLC)的混合編碼模式來(lái)進(jìn)行視頻圖像壓縮,在物聯(lián)網(wǎng)監(jiān)測(cè)系統(tǒng)的視頻傳輸過(guò)程中有效減少了傳輸時(shí)間,提高了傳輸效率,從而節(jié)約了傳輸帶寬。相信隨著信息技術(shù)的發(fā)展,能研究出更高效的針對(duì)視頻圖像壓縮編碼算法,更好地為物聯(lián)網(wǎng)監(jiān)測(cè)服務(wù)。
[1]張春紅,裘曉峰,夏海輪,等.物聯(lián)網(wǎng)技術(shù)與應(yīng)用[M].北京:人民郵電出版社,2011.
[2]張強(qiáng),王正林.精通Matlab圖像處理[M].2版.北京:電子工業(yè)出版社,2012.
[3]Kalva H.The H.264 video coding stardard[J].IEEE Multimedia,2006,13(4): 86-90.
[4]路錦正.MPEG-4/H.264視頻編解碼工程實(shí)踐[M].北京:電子工業(yè)出版社,2011.
[5]劉衍琦,詹福宇.Matlab圖像與視頻處理實(shí)用案例詳解[M].北京:電子工業(yè)出版社,2015.
[6]許錄平.數(shù)字圖像處理[M].北京:科學(xué)出版社,2007.
[7]陳靖,劉京,曹喜信.深入理解視頻編解碼技術(shù)-基于H.264標(biāo)準(zhǔn)及參考模型[M].北京:北京航空航天大學(xué)出版社,2012.
[8]黃樂(lè).基于輪廓提取的視頻壓縮與還原方法研究[D].西安:長(zhǎng)安大學(xué),2013.
[9]Zhu Shiping,Wang Zaikuo,Kamel Belloulata. A novel fractal monocular and stereo video codec based on MCP and DCP[C].Shanghai: IEEE International Conference on Industrial Technology,2010.
[10] Rafael C Gonzalez, Richard E Woods,Steven L Eddins.數(shù)字圖像處理:Matlab版 [M].2版.北京:電子工業(yè)出版社,2013.
[11] 高文,趙德斌,馬思偉.數(shù)字視頻編碼技術(shù)原理[M].北京:科學(xué)出版社,2010.
Video Image Compression for a Monitoring System in the Internet of Things
ZHANG Xiaxia, SUN Wanrong, CHENG Long, YUE Zhijia, LI Peijia
(School of Electronic Engineering, Xidian University, Xi’an 710071, China)
Video capture has become an important part in a monitoring system in the Internet of things. But video images require substantial storage space and communication bandwidth, which may cause great difficulties in transmission and storage, thus the need for video image compression. This paper discusses a video image compression method for a monitoring system in the Internet of Things, which combines the frame prediction, DCT transformation and variable length encoding to realize video encoding and decoding accordingly. Experimental results show that this method can effectively compress the video image and improve the transmission rate of the video images while reducing the transmission time.
video image compression; motion compensation; motion estimation; DCT transformation
2015- 11- 27
張霞霞(1991-),女,碩士研究生。研究方向:物聯(lián)網(wǎng)監(jiān)測(cè)系統(tǒng)中的視頻圖像壓縮編碼。孫萬(wàn)蓉(1960-), 女,教授。研究方向:數(shù)據(jù)采集與傳輸技術(shù),圖像信號(hào)處理。
10.16180/j.cnki.issn1007-7820.2016.09.028
TN919.85
A
1007-7820(2016)09-102-04