jpeg-ls遙感圖像編碼算法的fpga實(shí)現(xiàn)_第1頁(yè)
已閱讀1頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  JPEG-LS遙感圖像編碼算法的FPGA實(shí)現(xiàn)</p><p><b>  王海榮,孫雷</b></p><p> ?。ê?诮?jīng)濟(jì)學(xué)院網(wǎng)絡(luò)學(xué)院,海南 ???571127)</p><p>  摘 要:文章通過(guò)研究JPEG-LS編碼算法,對(duì)該算法采用FPGA芯片XC4VSX55-12ff1148,在Xilinx公司的開(kāi)發(fā)平臺(tái)i

2、se14.7上加以實(shí)現(xiàn)。該算法采取模塊化的設(shè)計(jì)思想,從圖像數(shù)據(jù)的采集和存儲(chǔ)、變量更新、Golomb編碼、常規(guī)模式編碼、游程模式編碼、編碼的輸出和存儲(chǔ)上來(lái)實(shí)現(xiàn)模塊化,各模塊采用VHDL語(yǔ)言來(lái)描述。最后綜合得出單幅圖像編碼的編碼速率、綜合速率和芯片的利用率。</p><p>  關(guān)鍵詞:FPGA;JPEG-LS;VHDL </p><p>  中圖分類(lèi)號(hào):TN919.81 文獻(xiàn)標(biāo)識(shí)碼

3、:A 文章編號(hào):(2017)03</p><p>  FPGA Implementation Of JPEG-LS Remote Sensing Image Coding Algorithm</p><p>  WANG Hai-rong</p><p>  (Network College, Haikou University of Econo

4、mics, Haikou, Hainan, 571127)</p><p>  Abstract: In this paper, through the research of JPEG-LS encoding algorithm, the algorithm is implemented with FPGA chip XC4VSX55-12ff1148, which is implemented on the

5、ise14.7 development platform of Xilinx company. The algorithm adopts modular design idea,from the image data collection and storage, variable update, Golomb encoding, regular mode encoding, run length mode encoding, enco

6、ding output and storage to achieve modular, each module is described in VHDL language. Finally, the coding rate,</p><p>  Key words: FPGA;JPEG-LS;VHDL </p><p><b>  前言</b></p>

7、<p>  JPEG-LS是ISO/ITU標(biāo)準(zhǔn)中用于靜態(tài)連續(xù)色調(diào)圖像無(wú)損/近無(wú)損壓縮的一種圖像編碼算法[1],是HP實(shí)驗(yàn)室提出的低復(fù)雜度的圖像壓縮算法[2]。目前廣泛使用的無(wú)損圖像壓縮算法有JBIG、JPEG2000、DPCM等,其中JBIG壓縮算法主要針對(duì)二值圖像,應(yīng)用于打印系統(tǒng)內(nèi)部;JPEG2000圖像壓縮算法采用小波技術(shù),利用其局部的分辨特性獲得感興趣區(qū)域的壓縮碼流,小波運(yùn)算硬件實(shí)現(xiàn)復(fù)雜度高,需存儲(chǔ)數(shù)據(jù)量大,不便于FPG

8、A實(shí)現(xiàn);DPCM是比較早的無(wú)損壓縮算法,主要是通過(guò)預(yù)測(cè)和差分編碼方式來(lái)減少冗余,從而實(shí)現(xiàn)壓縮的目的[3];而JPEG-LS采用的核心算法為L(zhǎng)OCO-I算法[4],該算法是一種基于上下文的預(yù)測(cè)差分編碼方法,對(duì)于圖像中的平坦區(qū)域采用游長(zhǎng)模式編碼,否則采用常規(guī)模式編碼,與以上壓縮算法相比較,JPEG-LS在無(wú)損壓縮領(lǐng)域具有高保真度、低復(fù)雜度,便于硬件實(shí)現(xiàn)。</p><p>  國(guó)內(nèi)外對(duì)于JPEG-LS算法的改進(jìn)和優(yōu)化在

9、理論研究和程序?qū)崿F(xiàn)上已經(jīng)比較成熟。而對(duì)于硬件的實(shí)現(xiàn)上,目前也取得了很大的進(jìn)步,比喻對(duì)于該算法的VLSL實(shí)現(xiàn)[5],對(duì)于圖像無(wú)損壓縮IP核的FPGA設(shè)計(jì)[6],以及JPEG-LS算法內(nèi)某一編碼方法改進(jìn)后的硬件實(shí)現(xiàn)等。本設(shè)計(jì)采用模塊化的設(shè)計(jì)思想,從圖像數(shù)據(jù)的采集和存儲(chǔ)、變量更新、Golomb編碼、常規(guī)模式編碼、游程模式編碼、編碼的輸出和存儲(chǔ)上來(lái)實(shí)現(xiàn)模塊化,各模塊采用VHDL語(yǔ)言來(lái)描述,并將該算法在FPGA芯片XC4VSX55-12ff114

10、8上加以實(shí)現(xiàn)。</p><p>  一、JPEG-LS遙感圖像編碼算法的實(shí)現(xiàn)原理</p><p>  JPEG-LS遙感圖像編碼算法是一種非常有效的圖像壓縮編碼算法,該算法最大的優(yōu)點(diǎn)就是計(jì)算簡(jiǎn)單、復(fù)雜度低,無(wú)需DCT變換和算術(shù)編碼,只需進(jìn)行差分預(yù)測(cè)和熵編碼,能夠高質(zhì)量地恢復(fù)原圖像,便于硬件實(shí)現(xiàn)。</p><p> ?。ㄒ唬﹫D像樣本輸入和編碼模式選擇</p>

11、;<p>  在編碼過(guò)程中,通過(guò)對(duì)圖像數(shù)據(jù)的一些樣本進(jìn)行掃描,并建立“上下文”模型,利用當(dāng)前樣本值與其鄰居之間的相關(guān)性來(lái)進(jìn)行建模,將圖像樣本值輸入差分預(yù)測(cè)器,編碼模式選擇結(jié)構(gòu)如圖1。在預(yù)測(cè)器中通過(guò)圖像樣本值來(lái)計(jì)算局部梯度,計(jì)算得到的梯度值如果都為0或者全小于等于NEAR(近無(wú)損壓縮的壓縮比控制因子)時(shí),選擇游程長(zhǎng)度編碼模式,否則選擇常規(guī)模式編碼。</p><p>  圖1 編碼模式選擇結(jié)構(gòu)圖<

12、/p><p>  (二)常規(guī)模式編碼的實(shí)現(xiàn)原理[1]</p><p>  若進(jìn)入常規(guī)編碼模式,則按照預(yù)測(cè)、預(yù)測(cè)誤差編碼、變量更新三個(gè)步驟來(lái)進(jìn)行。常規(guī)模式編碼步驟如圖2: </p><p>  圖2 常規(guī)模式編碼步驟</p><p>  在進(jìn)行預(yù)測(cè)之前要對(duì)上面求得的梯度值進(jìn)行量化并合并,這也是為了減少上下文的數(shù)量,進(jìn)入預(yù)測(cè)后主要按照以下4個(gè)步驟來(lái)完

13、成:</p><p>  Step1:邊界檢測(cè),即計(jì)算出預(yù)測(cè)值Px;</p><p>  Step2:預(yù)測(cè)值修正,對(duì)Px的值進(jìn)行修正,Px的值應(yīng)被約束在[0…MAXVAL], MAXVAL為一副圖像的最大可能值;</p><p>  Step3:預(yù)測(cè)誤差計(jì)算,這里預(yù)測(cè)誤差為e,實(shí)際圖像的樣本值為Ix,則e=sign(Ix-Px),sign={-1,1};</p

14、><p>  Step4:預(yù)測(cè)誤差量化并重建值,在NEAR=0,重建值Rx=Ix,在NEAR>0,對(duì)e進(jìn)行量化,量化后再重建Rx。</p><p>  在完成預(yù)測(cè)值的確定和量化后,就要進(jìn)行預(yù)測(cè)誤差的編碼即Golomb編碼,此編碼過(guò)程分3個(gè)步驟來(lái)完成:</p><p>  Step1:Golomb變量計(jì)算,計(jì)算Golomb編碼變量k,k值為誤差映射值的最不重要位,由

15、A[0…364]和N[0…364]來(lái)計(jì)算,k={0,1,2,3,4…};</p><p>  Step2:誤差映射;</p><p>  Step3:映射誤差編碼。</p><p>  變量更新:即對(duì)變量A[Q]、B[Q]、C[Q]、N[Q]的值進(jìn)行更新,更新的過(guò)程必須按照預(yù)測(cè)誤差的取值情況來(lái)進(jìn)行。</p><p> ?。ㄈ┯纬涕L(zhǎng)度編碼的實(shí)

16、現(xiàn)原理</p><p>  若進(jìn)入游程長(zhǎng)度編碼模式,則按照游程掃描、游程長(zhǎng)度編碼、游程中斷值編碼三個(gè)步驟來(lái)完成,流程圖如圖3:</p><p>  圖3 游程長(zhǎng)度編碼流程圖</p><p>  游程掃描:掃描圖像數(shù)據(jù),首先是行掃描,得x的實(shí)際值Ix,ABS(Ix-Ra)<=NEAR,則繼續(xù)掃描,且游程長(zhǎng)度n加1,一行掃描結(jié)束,則中斷掃描;</p>

17、<p>  游程長(zhǎng)度編碼:對(duì)上面統(tǒng)計(jì)的游程長(zhǎng)度值n進(jìn)行編碼,如果游程在一行的結(jié)尾被終止,若n>0則輸出碼字為‘1’,然后取下一個(gè)值進(jìn)行類(lèi)似于Golomb的編碼;</p><p>  游程中斷編碼:如果游程不是在圖像行尾結(jié)束,對(duì)于這個(gè)新的中斷值要進(jìn)行編碼(類(lèi)似于Golomb的編碼)。</p><p>  游程編碼結(jié)束后也需按照常規(guī)模式編碼時(shí)對(duì)相關(guān)變量進(jìn)行更新。</p&

18、gt;<p>  二、JPEG-LS遙感圖像編碼算法中關(guān)鍵技術(shù)的FPGA實(shí)現(xiàn)</p><p>  JPEG-LS編碼算法流程清晰,便于硬件語(yǔ)言實(shí)現(xiàn),在FPGA實(shí)現(xiàn)中采用了模塊化的設(shè)計(jì)思想,具體可以劃分為以下幾個(gè)模塊:數(shù)據(jù)緩存模塊,確定圖像數(shù)據(jù)的位置并建立上下文模型;梯度計(jì)算模塊,完成上下文模型梯度值的計(jì)算,并進(jìn)行編碼模式的選擇;常規(guī)編碼模塊、游程長(zhǎng)度編碼模塊以及參數(shù)的更新模塊等。整個(gè)算法在FPGA的

19、實(shí)現(xiàn)上采用了流水線(xiàn)的方式,而局部則采用并行設(shè)計(jì),既降低了流水深度,又提高了系統(tǒng)的編碼效率[7],在采用VHDL語(yǔ)言實(shí)現(xiàn)該算法時(shí),編碼流程如圖4所示:</p><p>  圖4 JPEG-LS編碼流程圖</p><p> ?。ㄒ唬┚幋a模塊中使用的IP核</p><p>  在JPEG-LS編碼模塊中,在對(duì)源圖像數(shù)據(jù)的采集和存儲(chǔ)問(wèn)題上,合理地使用了ise14.7中提供的

20、IP核aqram、fifora、fifostream,aqram為內(nèi)部單端口塊存儲(chǔ)器,用于存儲(chǔ)變量A[Q]、B[Q]、C[Q]、N[Q]的值[8],用于變量的隨時(shí)更新。fifora用于存儲(chǔ)上行編碼的結(jié)果,為當(dāng)前行的編碼提供b、c、d的數(shù)據(jù),每個(gè)數(shù)據(jù)的編碼結(jié)果都能及時(shí)地傳送至該FIFO中,從而做到數(shù)據(jù)的及時(shí)更新。fifostream用于臨時(shí)緩存輸入的碼流數(shù)據(jù)。</p><p><b> ?。ǘ┏R?guī)編碼模

21、塊</b></p><p>  本設(shè)計(jì)主模塊(包含常規(guī)編碼和游程編碼)在一個(gè)進(jìn)程中實(shí)現(xiàn),由于編碼需要使用前一個(gè)數(shù)據(jù)來(lái)計(jì)算上下文,從而構(gòu)成反饋,所以采用狀態(tài)機(jī)來(lái)完成,首先通過(guò)梯度的運(yùn)算情況來(lái)判斷是進(jìn)入常規(guī)模式編碼還是進(jìn)入游程模式編碼,判斷過(guò)程在狀態(tài)S0,S0同時(shí)還計(jì)算SIGN的值。常規(guī)編碼流程及所需要的時(shí)鐘如圖5:</p><p>  圖5 常規(guī)編碼時(shí)鐘分配圖</p>

22、<p>  在采用VHDL語(yǔ)言實(shí)現(xiàn)常規(guī)模式編碼時(shí),采用狀態(tài)機(jī)來(lái)實(shí)現(xiàn),狀態(tài)跳轉(zhuǎn)如圖6所示:</p><p>  圖6 常規(guī)編碼模塊狀態(tài)跳轉(zhuǎn)圖</p><p>  S0:編碼模式的選擇;</p><p>  S12:計(jì)算預(yù)測(cè)值Px,并對(duì)其作邊界處理;</p><p>  S6:讀取A[Q]、B[Q]、C[Q]、N[Q]的值;對(duì)Px進(jìn)

23、行校正;計(jì)算k值;</p><p>  S7:對(duì)aqram的值初始化;對(duì)校正后的Px進(jìn)行邊界處理;根據(jù)m,zero_num和k值計(jì)算MErrval的值;</p><p>  S8:根據(jù)MErrval值計(jì)算Errval的值;判斷如果是第0行第255列,就不讀fiforam,否則就讀fiforam;</p><p>  S13:根據(jù)SIGN計(jì)算Rx;同時(shí)更新變量A[Q]

24、、B[Q]、C[Q]、N[Q]的值;</p><p>  S14:調(diào)整Ra、Rb、Rc和Rd的值;調(diào)整A[Q]、B[Q]、C[Q]、N[Q]的值;</p><p>  S15:將調(diào)整后的A[Q]、B[Q]、C[Q]、N[Q]的值寫(xiě)往aqram中;</p><p>  S16:作換行運(yùn)算。</p><p>  (三)游程長(zhǎng)度編碼模塊</p

25、><p>  游程長(zhǎng)度編碼有兩種情況,第一種情況(游程1),如果進(jìn)入游程編碼后,而且至少輸出一個(gè)游程數(shù)據(jù),然后才結(jié)束游程;第二種情況(游程2),雖然滿(mǎn)足游程條件,但是并不輸出游程數(shù)據(jù),而是直接進(jìn)入游程中斷。對(duì)于游程1的狀態(tài)跳轉(zhuǎn)如圖7:</p><p>  圖7 游程1的狀態(tài)跳轉(zhuǎn)圖</p><p>  S2:判斷編碼狀態(tài),并輸出壓縮編碼的數(shù)據(jù),其中S2a~S2d狀態(tài)為輸出

26、數(shù)據(jù)而附加的時(shí)鐘。</p><p>  S3:通過(guò)對(duì)fifora的讀寫(xiě)控制信號(hào)來(lái)調(diào)整Ra、Rb、Rc和Rd的值;調(diào)整RUNindex,根據(jù)2J[RUNindex]的值來(lái)判斷游長(zhǎng)編碼是否完成: </p><p>  S4:調(diào)整Ra、Rb、Rc和Rd的值;</p><p>  S5:讀出fifora內(nèi)數(shù)據(jù);調(diào)整Ra、Rb、Rc和Rd的值;</p><

27、p>  S18:游程中斷譯碼:根據(jù)Ra-Rb的絕對(duì)值與NEAR的關(guān)系來(lái)讀取A[Q]、B[Q]、C[Q]、N[Q];判斷SIGN的值;</p><p>  S61、S71、S81與常規(guī)模式編碼中S6、S7、S8的功能相同;</p><p>  S9:計(jì)算Errval的值;</p><p>  S11:更新A[Q]、B[Q]、C[Q]、N[Q]的值;計(jì)算Rx的值;

28、</p><p>  S141:將更新的A[Q]、B[Q]、C[Q]、N[Q]值賦給Aq365、Bq365、Cq365、Nq365、Nnq365或Aq366、Bq366、Cq366、Nq366、Nnq366;對(duì)行結(jié)束做處理。</p><p>  游程2的編碼與常規(guī)編碼基本相同,只是Q的值為365或者366,這里不再贅述,游程2狀態(tài)跳轉(zhuǎn)如圖8:</p><p>  圖

29、8 游程2的狀態(tài)跳轉(zhuǎn)圖</p><p><b>  三、仿真與綜合結(jié)果</b></p><p>  本文采用精度為10,高1024,寬256的圖像作為輸入測(cè)試圖像,通過(guò)Modelsim軟件對(duì)基于FPGA實(shí)現(xiàn)的JPEG-LS編碼算法進(jìn)行系統(tǒng)級(jí)和模塊級(jí)的前仿真和后仿真,得出了仿真波形。連續(xù)輸入該測(cè)試圖像數(shù)據(jù),得到的仿真結(jié)果如圖9所示:</p><p&g

30、t;  圖9 圖像輸入測(cè)試結(jié)果</p><p>  該編碼器主要負(fù)責(zé)對(duì)一副子圖像進(jìn)行壓縮編碼,經(jīng)ise14.7FPGA開(kāi)發(fā)平臺(tái)在 XC4VSX55-12ff1148芯片上綜合后生成的ENC模塊配置如圖10:</p><p>  圖10 JPEG-LS編碼器綜合芯片配置圖</p><p>  主要端口說(shuō)明如下:dataout8(7:0)輸出碼流數(shù)據(jù);datain(10

31、:0)編碼器輸入數(shù)據(jù);addr(17:0)編碼器輸入數(shù)據(jù)對(duì)應(yīng)地址</p><p>  表1中列出了JPEG-LS編碼算法在FPGA芯片XC4VSX55-12ff1148上實(shí)現(xiàn)后,硬件資源的使用情況,以及編碼的速度即壓縮一副圖像所需要的時(shí)間。</p><p>  表1 JPEG-LS編碼模塊綜合性能表</p><p>  從表中數(shù)據(jù)可以得出結(jié)論:該編碼器占用芯片的邏

32、輯單元數(shù)較少,只占17%,系統(tǒng)占用的面積較少,已經(jīng)實(shí)現(xiàn)了面積的優(yōu)化,可以在該芯片上擴(kuò)展其它一些功能;綜合的時(shí)鐘頻率達(dá)到135.09MHZ,可以滿(mǎn)足并行處理的要求。</p><p><b>  四、結(jié)論</b></p><p>  本文選用Xilinx公司的XC4VSX55芯片為硬件實(shí)現(xiàn)平臺(tái),利用硬件描述語(yǔ)言VHDL來(lái)實(shí)現(xiàn)JPEG-LS編碼算法,并采用模塊化的設(shè)計(jì)思想,

33、在整個(gè)系統(tǒng)上采用流水線(xiàn)的設(shè)計(jì)方法,而在局部引入了并行處理的模式,提高了系統(tǒng)的數(shù)據(jù)吞吐量,且能充分利用XC4VSX55芯片內(nèi)部資源,實(shí)現(xiàn)設(shè)計(jì)的面積優(yōu)化,為硬件實(shí)現(xiàn)無(wú)損壓縮提供了解決方案。</p><p><b>  參考文獻(xiàn):</b></p><p>  [1] WEINBER GERMJ, SEROUSSIG, SAPIROG. The LOCO-I Lossless

34、 Image Compression Algorithm: Principle sand Standardization into JPEG-LS[J]. IEEE Transactions on Image Processing,2000,9(8):1309-1324.</p><p>  [2] An Improved Image Compression Based On JPEG-LS[A]. Li-xin

35、 ZHANG and Pei-pei WANG. Proceedings of 2015 International Conference on Computer Science and Information Engineering[C].2015</p><p>  [3] Efficient lossless multi-channel EEG compression based on channel cl

36、ustering[J]. Behzad Hejrati, Abdolhossein Fathi, Fardin Abdali-Mohammadi. Biomedical Signal Processing and Control. Volume 31, January 2017, Pages 295-300.</p><p>  [4]陳軍,王懷超,顧曉東,等.基于LOCO-I算法的星載圖像無(wú)損壓縮的F

37、PGA實(shí)現(xiàn)[J].微電子學(xué)與計(jì)算機(jī),2011,28(11):169-173.</p><p>  [5]聶永康,雷杰,李云松等.JPEG-LS近無(wú)損圖像編碼器VLSI結(jié)構(gòu)設(shè)計(jì)[J].西安電子科技大學(xué)學(xué)報(bào)(自然科學(xué)版),2016,43(4):75-80.</p><p>  [6]韓俊萍,程永強(qiáng),戴鑫.JPEG-LS圖像無(wú)損壓縮的IP固核設(shè)計(jì)[J].太原理工大學(xué)學(xué)報(bào),2010,41(6):7

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論