2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

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

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

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

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

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

15、A[0…364]和N[0…364]來計算,k={0,1,2,3,4…};</p><p>  Step2:誤差映射;</p><p>  Step3:映射誤差編碼。</p><p>  變量更新:即對變量A[Q]、B[Q]、C[Q]、N[Q]的值進行更新,更新的過程必須按照預測誤差的取值情況來進行。</p><p> ?。ㄈ┯纬涕L度編碼的實

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

33、在整個系統(tǒng)上采用流水線的設計方法,而在局部引入了并行處理的模式,提高了系統(tǒng)的數(shù)據(jù)吞吐量,且能充分利用XC4VSX55芯片內(nèi)部資源,實現(xiàn)設計的面積優(yōu)化,為硬件實現(xiàn)無損壓縮提供了解決方案。</p><p><b>  參考文獻:</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算法的星載圖像無損壓縮的F

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

溫馨提示

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

評論

0/150

提交評論