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