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