航空圖像壓縮系統的DSP設計及實現
航空圖像由于可以提供大量豐富的直觀信息,因而在軍事偵察、搶險救災、氣象探測等領域得到了廣泛應用。航空圖像由于是遠距離成像,所以分辨率較低且數據量很大。如果要把拍攝的航空圖像實時回傳,就必須對其進行壓縮編碼。由于圖像壓縮算法復雜,因此決定了回傳系統必須采用高速數字信號處理芯片來實現。DSP作為當前運算性能最高的信號處理芯片,成為實現系統方案的最佳選擇。
本文引用地址:http://www.104case.com/article/86629.htm目前進行圖像壓縮的方法很多,主要集中在小波變換、分形壓縮、神經網絡編碼等幾個領域。其中小波變換編碼憑借其優良的時頻特性和多分辨率特性成為最熱門的研究方向之一,并在圖像壓縮領域占據了主導地位。但傳統的小波變換計算復雜,且都是在頻域進行。1994年,W.Sweldens提出了一種新的小波構造方案——提升小波。它可以進行原位運算,硬件實現時較為容易,且可以節省內存空間,這一點對于提高系統性能、降低系統成本非常重要;和傳統的小波變換相比,它可以把計算復雜度減小一半,運算速度非??欤淮送?,提升方案適合用SIMD(單指令多數據流)來實現,這和DSP的多總線讀寫結構是一致的[1]。鑒于提升方案的諸多優點,本系統在具體實現時其小波變換部分采用提升算法來實現。
Shaprio于1992年提出了零樹編碼方案,它采用全新的零樹結構來表征小波系數,使小波變換應用于圖像壓縮的優越性得到了充分的體現[2]。由于零樹法高效的性能,人們在其基礎上又提出了各種改進方法。1996年,Said和Pearlman提出了基于等級樹集合分割的算法——SPIHT算法[3]。該算法也是基于零樹思想,但采用集合劃分來進行編碼,在系數組織方面更有效,壓縮效率也更高。SPIHT算法已經成為公認的編碼效率最高的算法之一,即使不采用算術編碼進行熵編碼,編碼效率仍然很高,優于前面的零樹編碼。因此,本系統在具體實現時采用SPIHT算法對小波系數進行編碼。
1 軟件實現
1.1提升小波的實現
由于圖像的非平穩統計特性,任何一組小波基都不可能同時最優地刻畫所有的圖像特征,因此存在小波基的選取問題。從熵、峰-峰比PPR、廣義編碼增益、抗誤差性能分析等幾個方面綜合比較,本系統采用Antini9/7作為提升方案的小波基[4]。該小波提升方案的實現過程如下:
Antini9/7的分析濾波器為:
首先對圖像進行行變換,然后進行列變換,最后對圖像系數按圖1所示的規則進行重新排列。
1.2 邊界處理問題
在圖像壓縮的工程應用時,邊界處理問題是關鍵技術之一。如果處理不好,信號將不能完全重構,會直接影響重構圖像的質量。對此,提升方案原文中介紹的做法是采用插值細分算法,在邊界點重新計算濾波器的系數值,這樣就無需對信號進行邊界處理[5]。但通過對插值細分算法實現過程的深入研究發現,這樣會帶來浮點計算等額外的計算量,并且破壞了提升方案原本多讀單寫的結構特點,使邊界處理問題變得非常復雜。此外,對于二維圖像處理而言,無需考慮不規則面的情況,在邊界點的處理上可以采用相對簡單的邊界延拓法。經過比較發現,采用邊界延拓法處理問題更為簡單,不僅計算量大大減少,而且保留了多讀單寫的結構,效果也不錯。因此,本系統在具體實現時用邊界延拓法代替提升方案原文中的插值細分算法,實際使用的是全對稱延拓方式。
1.3 SPIHT算法的具體實現
對SPIHT算法進行編程實現時,為了提高執行效率,對具體實現過程做了部分改進。
假設LIS為非顯著點集鏈表,每個鏈表的元素為坐標值(i,j)和類型標志;LIP為非顯著點鏈表,每個鏈表的元素為坐標值(i,j);LSP為顯著點鏈表,每個鏈表的元素為坐標值(i,j)。
用C語言對該算法進行實現時,LIP和LSP結構存儲了像素點在圖像中的坐標位置,根據它可從圖像中檢索出相應的像素值。對于C6xDSP,這樣做需要用多條取數指令輾轉訪問內存才能獲得像素值。但經過分析知道,在編碼程序中,僅當對LIS鏈表中元素進行零樹判斷和子節點處理時才需要根據坐標進行像素點訪問,像素點被放入LIP或者LSP后,只需對像素值進行訪問、修改,沒有必要再通過坐標進行像素值的訪問,可直接在LIP和LSP結構中存儲像素值,從而提高編碼速度。
在解碼時,因為在LIP和LSP的掃描過程中需根據輸入位流的0、1值對像素值進行更新,所以必須存儲像素點的坐標,由于圖像可以改為用一維線性數組存儲,故只需在LIP和LSP中存儲像素點在圖像中的偏移。
評論