摘要:介紹了小波變換在靜態圖像壓縮、實時連續媒體流等多媒體業務中的應用,並結合ADV611晶片提出一套音視頻數據採集和壓縮的方案。為進一步提高媒體服務質量,在本方案中根據實際情況提出了幀間壓縮和碼率控制兩種解決方案。
本文引用地址:http://www.eepw.com.cn/article/242388.htm關鍵詞:小波變換 圖像壓縮 實時連續媒體流 碼率控制 幀間編碼
隨著網絡用戶對多媒體業務需求的大量增加,基於Internet的音視頻數據採集、壓縮技術成為各種多媒體業務運營的基本要求,國際標準化組織提出了多種國際標準(H.26X、MPEG-4等)來實現低碼率及甚低碼率下的多媒體數據壓縮、傳輸及存儲。而國內外各大網絡軟硬體廠商紛紛出臺相應的解決方案。在這些標準、方案中,小波變換使信號的低頻長時特性和高頻短時特性同時得到處理,有效地克服了傅氏變換在處理非常平穩複雜圖像信號時所存在的局限性,因而各種多媒體業務應用領域受到了廣泛的重視[1、2]。本文將以此為基礎對小波變換這一工具應用到圖像壓縮、實時連續媒體流等領域做一些有益的嘗試與探討。
1 小波變換在圖像壓縮中的應用
小波變換以其特有的變換特性在圖像壓縮領域得到了廣泛的應用。如JPEG-2000、MPEG-4靜態圖像壓縮都採用了小波變換的方式。對於小波變換在靜態圖像壓縮中的應用已經有很多文獻對此做出了論述,此處不再贅述。以下只討論應用價值更為廣闊的小波算法的硬體實現。
1.1 小波算法的硬體實現
美國AD公司的ADV611數字視頻編解碼晶片是一款低價、單片、多功能、全數字的CMOS超大規模集成電路,片內集成了視頻接口、主機接口和SRAM,可以廣泛應用於各個相關領域[5]。以下將從內部框圖和算法分析兩個方面介紹該晶片的使用情況。
1.1.1 內部框圖
圖1是ADV611的內部框圖,大致可以分為六個模塊,其中較有特色的部分是清晰窗口和量化控制兩部分。清晰窗口(Quality Box)是將用戶感興趣的部分圖像採用壓縮比較小的方式編碼,而對其餘背景區域則加大壓縮比。這種方式可以認為是小波編碼在空間可伸縮性的一種應用。量化控制是為了滿足不同的網絡帶寬,不同的服務質量而設定的改變編碼碼率的參量。通過設置不同比特每象素值(Bit Per Pixel)而改變編碼碼流的數據量,滿足不同的網絡帶寬。圖2是採用與ADV611相同壓縮算法的軟體模擬結構。表1是算法效果統計。
表1 算法效果統計
其中圖2(a)是原始圖像(720×486×24位1025K),(b1)、(b2)、(b3)是比特每象素值分別為1、0.5、0.1時的恢復圖像。從數據中可以看出隨著比特每象素值的降低,壓縮後數據量隨之降低,而恢復圖像與原圖的PSNR降低並不多。
1.1.2 算法分析
ADV611內部的小波變換採用雙正交9-7小波基。經過大量的實驗證明雙交9-7小波基在圖像處理中是一種較好的小波基,目前多個國際標準中有關小波壓縮的算法,一般都採用這種小波基。ADV611晶片中的小波算法生成的Mallat框圖如圖3所示。
在量化階段ADV611採用可程控的量化方式。在量化順序上採用先低頻後高頻的順序(ADV611沒有採用零樹編碼),如對圖3量化的順序為H、F、G、E、C、D、B、A。在量化係數的選取上充分考慮人類視覺特性給定了每個Mallat塊的參考量化係數如圖4.圖5顯示的編/解碼端相應的量化方法,圖中的BW是Mallat塊的參考量化係數。
對量化後的數據ADV611採用遊程編碼與霍夫曼編碼相結合的方式進行熵編碼,以達到高壓縮比的目的。一般來說遊程編碼和霍夫曼編碼屬於無損壓縮,壓縮比都不高,但在小波變換及係數量化後會出現大量的連零係數,這時採用遊程編碼與霍夫曼編碼相結合的方式能達到很高的壓縮比[3]。
2 小波變換在媒體流壓縮中的應用
很多對小波變換的研究僅停留在靜態圖像上,沒有就此深入下去。筆者希望小波變換這種方式不僅在靜態圖像上,還要在連續媒體流上得到更為廣闊的應用。基於小波變換本身的特點以及ADV611晶片的特性,將從以下兩個方面提出改進方案以使系統更加適用於連續媒體流業務。
2.1 基於小波變換係數的幀間算法
靜態圖像小波壓縮是通過減少圖像本身的空間冗餘性,達到壓縮效果的編碼方法,屬於幀內壓縮。在處理連續媒體流時應注意到幀間相似性是很大的,即幀與幀之間有著很大的時間冗餘性,減少這種冗餘可以達到更高壓縮比,使碼流適合於更低比特的信道傳輸。在處理這一部分上國際標準一般採用運動估計運動補償的方式,實現幀間壓縮[4]。在綜合考慮ADV611硬體實現的基礎上,提出一種對小波變換後係數估計補償的算法。具體的原理圖如圖6所示。其中小波變換與熵編碼是由ADV611硬體實現的。編碼後的數據延時一幀後進行存儲器,與後一幀係數數據相減,求殘差數據,並對殘差數據重編碼,包括二次量化、霍夫曼編碼等。解碼端反操作即可。
實現這種算法要求具有兩個先題條件:(1)小波變換的穩定性。對同一幀圖像兩次小波變換後生成的碼流是相同的,那麼當其中一幀圖像發生輕微變化時,編碼生成後的碼流也只是發生少量變化,從而殘差數據將會有大量的連零數據出現;(2)編碼後碼流數據量較小,考慮到硬體實現時要求有存儲器存儲前一幀變換後的係數,如果碼流數據量太大將不適合硬體的實現(此處應該注意的是連續兩幀之間熵編碼後數據量不一定相同,對缺少的數據補零處理)。利用news序列的前8幀做測試序列,得到的幀間相關性結果如表2所示。
表1 news序列前8幀編碼系統相關性列表
以上實驗數據表明小波變換後係數存在著極大的幀間相關性。熵編碼後相關性降低,但仍然較高,可以充分應用這種相關性。進行幀間壓縮。在硬體實現方案中,由於採用ADV611晶片,接口的輸出碼流是經過熵編碼後的數據,幀間壓縮的效果沒有如圖6中虛線所示流程的壓縮效果好,但仍然可以一步提高視頻序列的壓縮比。
2.2 基於小波變換的碼率控制
當前連續媒體流業務中越來越多地考慮對客戶的服務質量問題,QoS的提出要求對編碼碼率的控制更加靈活,以適應不同的用戶要求和不同的信道狀況。利用ADV611中可程控的量化方式就可以方便地達到碼率控制的目的。其原理框圖如圖7所。B/P是比特每象素的設置,通過軟體監控網絡狀態[5],並按照一定的經驗規律實時更改壓縮過程中的B/P設置,以完成對碼率的控制。
3 實現方案
開發小組在充分地進行理論研究及實現方案論證的基礎上,應用小波壓縮算法,、按照MPEG-4標準的思路提出了一套音視頻採集壓縮傳輸的解決方案。硬體實現系統框圖如圖8所示。
在上述系統壓縮/解壓縮模塊中,採用ADV611壓縮晶片,並結合2.1中提出的小波變換係數的幀間算法,簡略地實現視頻序列的幀間壓縮;同時按照控制單元的速率控制參數完成碼率控制的過程。