JPEG2000數據壓縮的FPGA實現

2020-12-04 電子產品世界

摘要:高性能的數據壓縮可以有效的減少數據對存儲空間和通信帶寬的要求,降低通信成本。為解決圖像數據的高壓縮性能問題,本文提出了基於JPEG2000標準的數據壓縮系統的FPGA實現方案。相對於軟體算法實現和其他硬體方法,採用FPGA硬體實現可降低系統複雜度提高性能。最終設計的IP核具有資源佔用少,性能良好和便於擴展等優點,能夠滿足通信傳輸和照相設備等應用需求。
關鍵詞:JPEG2000數據壓縮FPGADWT

近年來通信領域中信息的傳輸總量急速擴大。由於存儲空間有限、通信帶寬等因素的限制,數據通常需要通過壓縮才能有利於存儲和傳輸,數字圖像存儲和傳輸的昂貴費用成為其普及的最大障礙。為此必須對數字圖像壓縮編碼技術進行研究和實現。
JPEG2000標準採用的是離散小波變換,具有壓縮率高和無邊緣效應等優點。文中的設計採用片上系統(System On Claip)方案,可實現對解析度1024x1024圖像的壓縮。在有效實現數據壓縮基礎上,系統還具有較好擴展性。研究利用FPGA實現圖像數據壓縮,將壓縮算法映射到專用集成電路(ASIC)設計,具有非常廣闊的市場應用前景。

1 基本原理
數字圖像的壓縮就是用一定的規律對需要處理的圖像數據進行變換和排列,以儘可能少的數據信息來表示儘可能多的圖像信息。圖像的壓縮是通過編碼算法來完成實現的。目前常用的壓縮方法有:圖像變換技術、預測壓縮、自適應壓縮等方法。
圖像數據之所以可以進行壓縮,主要壓縮來源於以下2點:一是在圖像數據中存在大量信息冗餘;另一點是人類的視覺觀察精度是有限的通過減少數據精度來實現圖像壓縮。
在數字圖像壓縮中主要有:編碼冗餘、像素相關冗餘和視覺心理冗餘。通過算法減少或消除冗餘就能實現圖像壓縮。另外根據人類視覺允許圖像壓縮後與原始圖像有失真。圖像壓縮就是利用圖像數據固有特性以及人類視覺特性,經過壓縮算法提取有效的數據信息,減少數據信息量,以便實現高效率的圖像數據傳輸和存儲。

2 系統結構
根據JPEG2000標準,一般來講基於JPEG2000標準的數據壓縮系統主要由預處理、DWT、量化和EBCOT組成。組成結構如圖1所示。

本文引用地址:http://www.eepw.com.cn/article/201610/306501.htm


在參考JPEG2000標準數據壓縮系統構架後,本文設計的數據壓縮系統主要包括預處理,小波變換,量化和嵌入式位平面編碼4部分,系統結構如圖2所示。


預處理:對圖像源數據進行劃分,分成tile大小,之後進行DC位移和分量變換處理。
WDT:即小波變換把圖像分解為空間頻域子帶具有能量更為集中,更好的壓縮性能,而且可以很好的消除分塊現象的優點。離散小波變換的提升算法可減少內存需求,降低計算複雜度。本文主要考慮提高壓縮性能,因此採用的是9/7離散小波變換提升算法。
量化:將小波係數進行量化處理,之後按碼塊大小(32x32)儲存量化後的小波係數,採用動態內存控制體制(DMC),降低小波係數緩存量。
EBCOT(Tier_1):對輸入的子帶小波係數進行底層嵌入式塊編,並輸出算術編碼比特流和塊編碼的統計信息給Tier_2。
EBCOT(Tier_2):進行層生成及塊信息編碼,最終輸出JPEG2000碼流。
壓縮編碼過程如下:原始圖像數據經過預處理變成許多個顏色分片(component—tile),每個分片經過小波變換後變成小波係數,量化後送入EBCOT進行編碼和碼率控制處理,為提高壓縮速率,嵌入式為平面編碼(EBCOT)模塊採用並行處理結構,分別完成對前級量化後的小波係數HL、HH以及LH和LL的處理,小波係數在通過EBCOT模塊進行編碼和碼率控制處理後,最後得到的是符合JPEG2000標準格式的壓縮數據。

3 系統各組成模塊的設計
本系統主要實現數據的壓縮處理,源圖像通過預處理模塊對圖像源數據進行劃分,分成tile(512x512)大小,之後經過小波變換和EBCOT模塊完成數據壓縮處理,輸出壓縮碼流。
3.1 預處理模塊
由於原始圖像數據較大,通過預處理模塊可以大大降低數據對系統存儲空間的要求。本文採用的預處理有:分片和電平平移,通過分片將原始圖像分割成tile(512x512)大小的區塊,每個分片進行獨立壓縮;電平平移使得圖像數據關於零對稱,有利於編碼處理。
3.2 小波變換模塊
採用離散小波變換對圖像進行處理,得到圖像的小波係數分為LL、LH、HL、HH 4個子帶。通過級聯,進行多級小波變換,小波係數中,高頻數據分量表示圖像中局部區域如圖像的邊緣,低頻分量表示圖像中的低頻信息如圖像的背景信息。可見通過小波變換,即使比特率不高的情況下,也能保證圖像中較多的細節信息。圖像通過小波變換時可進行不同級數的編解碼處理,進而得到具有不同空間解析度的圖像信息。為實現較好壓縮效果,需要對小波變換進行多次層分解,主要分解形式有:Mallat、Spacl和Packet,如圖3所示。


其中最為常用的分解方式為Mallat分解,每次分解實在對上一層的低頻分量(LL)繼續做Mallat分解,如圖4所示。


一般來講,多數設備是串行工作方式,圖像數據普遍採用逐行的掃描方式,因此,在本文設計的數據壓縮系統中,圖像數據以逐行掃描方式輸入DWT變換模塊,小波變換採用9/7有損壓縮,分解結構採用5層Mallat分解。
3.3 量化處理
人的視覺可分辨的圖像是有一定範圍的,因此通過適當量化減小數據精度實現對壓縮。設計的量化步長決定了壓縮效果的好壞。對圖像量化操作是有損壓縮,會產生一定的量化誤差。量化後的圖像數據都是由符號和幅值表示,量化後的係數在進行下一步的編碼處理。
3.4 嵌入式塊編碼
在JPEG2000系統中,將量化後的子帶劃分成小的碼塊,認為碼塊間相互獨立,以碼塊為單元,進行嵌入式編碼。嵌入式編碼的基本思想是通過計算適當的碼流截斷點,將壓縮生成的碼流劃分成若干子集,每一子集表示對源圖像的一個壓縮。嵌入式碼流可在任意一處被截斷,得到具有不同碼率或質量的重構圖像。
在本設計中,模塊採用了並行處理的方式來提高處理能力,嵌入式塊編碼分為Tier1和Tier2兩部分:
Tier1模塊主要處理模塊有:流程控制模塊、比特平面編碼、過程編碼模塊和算術編碼模塊,結構如圖5所示。


工作流程是:首先,小波係數暫存於小波係數存儲器中,然後進入EBCOT模塊,對小波係數進行比特平面編碼和過程掃描編碼,進過處理的比特信息送入算術編碼模塊進行基於上下文的二進位算術編碼。
Tier2模塊主要功能模塊有:率失真計算模塊、碼率控制模塊和碼流組織模塊,結構如圖6所示。
工作過程是:率失真模塊完成編碼塊的失真率計算,傳給後級模塊,碼率控制模塊據此進行碼流截斷控制,之後給編碼模塊進行碼流組織,不同子帶方向上的碼流合併輸出JPEG2000壓縮碼流。

4 測試驗證
文中設計的JPEG2000數據壓縮系統在FPGA開發板上進行了驗證,最終結果顯示,可支持處理512x512大小16灰度級的tile圖像分片,碼塊大小是32x32,實現對1 024x1 024的16灰度級的圖像壓縮處理,輸入是圖像數據信息,輸出是符合JPEG2000標準的壓縮碼流。仿真時採用的工作時鐘是50 MHz,對於1 024x1 024的16灰度級的圖像完成16:1的壓縮率,結果顯示需要大約1 s左右的時間,滿足設計要求。

5 結論
文中首先對JPEG2000標準進行了介紹,並詳細分析了數據壓縮的實現原理,之後給出系統總體方案對各個模塊進行了設計。由測試結果可知達到了設計要求,設計的IP核採用以離散小波變換(DWT)算法,具有明顯的性能優勢,可代替JPEG標準廣泛應用於網絡傳輸和無線通訊等領域。但由於JPEG2000算法較為複雜,系統的壓縮速率和壓縮比還有提升空間,因此需要進一步對算法進行研究和改進,通過研究其FPGA實現方法,映射為專用集成電路,最終設計實現具有自主智慧財產權的JPEG2000數據壓縮IP核,具有重要研究價值。


相關焦點

  • 基於FPGA的無損圖像壓縮系統設計
    編者按:  摘要:本文簡要介紹了圖像壓縮的重要性和常用的無損圖像壓縮算法,分析了快速高效無損圖像壓縮算法(FELICS)的優勢,隨後詳細分析了該算法的編碼步驟和硬體實現方案,最後公布了基於該方案的FPGA性能指標。
  • 谷歌開源JPEG編碼器Guetzli,壓縮35%也能生成高質量圖片
    這就使網站管理員可以使用更少的數據更快地加載網頁,此外,它能兼容現有的瀏覽器、圖像處理應用和JPEG標準。從實現的角度來說Guetzli 與Zopfli算法類似,並不需要引入新的格式就能生成更小的PNG和gzip文件。與前段時間谷歌推出的基於循環神經網絡(RNN)的圖像壓縮方法RAISR和WebP不同,它並不需要對客戶端和系統環境進行修改。
  • 基於小波變換的JPEG2000圖像壓縮編碼系統的仿真與
    但由於有損壓縮的原因,傳統JPEG在許多對圖像質量要求較高的應用場合無法勝任。與傳統JPEG基於離散餘弦變換不同,JPEG2000基於離散小波變換,它不僅在壓縮性能方面明顯優於JPEG,還具有很多JPEG無法提供或無法有效提供的新功能,比如,同時支持有損和無損壓縮、大幅圖像的壓縮、漸進傳輸、感興趣區編碼、良好的魯棒性、碼流隨機訪問等。一個典型的JPEG2000的壓縮過程如圖1所示。
  • 聲納圖像動態範圍擴展與FPGA實現
    基於課題組研製的多波束成像聲納原理樣機的研製,分析了數據動態範圍壓縮導致圖像細節丟失的原因及其對成像質量的影響,採用JPL快速平方根近似算法改善了開方運算FPGA實現過程的資源佔用和系統延時。最後,對改進設計方案進行了實驗驗證,通過多波束成像聲納系統的消聲水池實驗證明了本文動態範圍擴展方法的有效性和可行性,系統成像質量改善明顯,達到優化設計的預期目標。
  • 紐約大學提出端到端優化圖像壓縮方法,全面超越JPEG 2000 | ICLR...
    在這個深度學習會議舉辦之前,雷鋒網也將圍繞會議議程及論文介紹展開一系列的覆蓋和專題報導,敬請期待。數據壓縮是一種基礎工程問題,在數據存儲和有限容量信道傳輸中有重要的應用。圖像作為一種信息載體,數據量巨大,因此研究者們對圖像壓縮的研究從未停止過。
  • 基於DSP Builder的JPEG靜態圖像壓縮算法的實現
    使用有損壓縮算法時,在壓縮比為25:1的情況下,壓縮後還原得到的圖像與原始圖像相比較,非圖像專家難於找出它們之間的區別,因此得到了廣泛的應用。例如,在VCD和DVD-Video電視圖像壓縮技術 中,就使用JPEG的有損壓縮算法來取消空間方向上的冗餘數據。
  • 紐約大學提出端到端優化圖像壓縮方法,全面超越JPEG2000|ICLR2017
    通過一組測試圖像,該方法的表現通常比標準JPEG和JPEG 2000壓縮方法有更好的rate-distortion性能。更重要的是,在所有比特率的所有圖像中,該方法都實現了顯著的視覺上質量的提升,這點也被客觀的質量評測方法MS-SSIM證明。雷鋒網了解到該論文將會在2017年4月24號在ICLR會議上作為第一個Contributed talk討論。
  • 基於FPGA的脈衝壓縮仿真與實現
    為解決這一矛盾,大多數現代雷達採用脈衝壓縮技術,調製信號頻率或相位,從而產生大時寬帶寬信號,接收端通過具有匹配濾波器的接收機接收,產生窄時間脈衝,提高距離解析度。以數字方式實現的脈衝壓縮具有可靠性高、靈活性好、可編程、便於應用。
  • 用FPGA實現FFT算法
    FFT算法除了必需的數據存儲器ram和旋轉因子rom外,仍需較複雜的運算和控制電路單元,即使現在,實現長點數的FFT仍然是很困難。本文提出的FFT實現算法是基於FPGA之上的,算法完成對一個序列的FFT計算,完全由脈衝觸發,外部只輸入一脈衝頭和輸入數據,便可以得到該脈衝頭作為起始標誌的N點FFT輸出結果。
  • 基於DSP和FPGA的機器人聲控系統設計與實現
    2 系統硬體總體設計 系統的硬體功能是實現語音指令的採集和步進電機的驅動控制,為系統軟體提供開發和調試平臺。如圖1所示。 i2c模式下,數據是分為3個8 b寫入的。而tlv320aic23有7位地址和9位數據,也就是說,需要把數據項上面的最高位補充到第二個8 b中的最後一位。 mcbsp串口通過6個引腳clkx,clkr,fsx,fsr,dr和cx與tlv320aic23相連。數據經mcbsp串口與外設的通信通過dr和dx引腳傳輸,控制同步信號則由clkx,clkr,fsx,fsr四個引腳實現。
  • 如何在FPGA中實現狀態機
    如果您要在物理組件中實現這些狀態圖(工程師在FPGA問世之前就是這麼做的),首先就得生成當前狀態和後續狀態表,然後生成實現狀態機所需的邏輯。不過由於我們將使用FPGA來實現設計,因此我們可以直接從狀態轉換圖開始工作。
  • 基於FPGA IP核的FFT實現
    流結構允許輸入數據連續處理,並輸出連續的複數據流,這個過程不需要停止FFT函數數據流的進出。變量流結構允許輸入數據連續處理,並產生一個與流結構相似連續輸出數據流。緩衝突發數據流結構的FFT需要的存儲器資源比流動I/O數據流結構少,但平均模塊吞吐量減少。突發數據流結構的執行過程和緩衝突髮結構相同,不同的是,對於給定參數設置,突髮結構在降低平均吞吐量的前提下需要更少的存儲資源。
  • OFDM系統中DAGC的應用研究及FPGA實現
    在硬體實現中,通常影響定點化FFT算法精度的有量化誤差、捨入誤差和溢出誤差。一旦決定了量化方式和數據位寬後,量化誤差和捨入誤差都是可估計的,而溢出誤差則隨著輸入信號功率的增大而急劇增加,造成SNR嚴重惡化。  中射頻接收時,通常使用AAGc和DAGC來改善ADC正常工作的動態範圍。
  • 基於FPGA的實時中值濾波器硬體實現
    在許多實際應用場合,如高清視頻監控、X光圖像的降噪等,需要快速且實時地進行中值濾波,軟體實現達不到實時處理的要求,因此選用硬體實現。 在硬體實現上,文獻[1]、[2]等採用行延遲的方法形成鄰域數據,以實現3×3的中值濾波。文獻[7]為了提高紅外成像跟蹤器設計了大窗口的中值濾波器。
  • 用FPGA實現FFT算法(圖)
    fft算法除了必需的數據存儲器ram和旋轉因子rom外,仍需較複雜的運算和控制電路單元,即使現在,實現長點數的fft仍然是很困難。本文提出的fft實現算法是基於fpga之上的,算法完成對一個序列的fft計算,完全由脈衝觸發,外部只輸入一脈衝頭和輸入數據,便可以得到該脈衝頭作為起始標誌的n點fft輸出結果。
  • 基於FPGA的複數浮點協方差矩陣實現
    故目前國內外協方差運算的FPGA實現都是採用定點運算方式。 在所有運算都是定點運算的情況下,每次乘法之後數據位寬都要擴大一倍。若相乘後的數據繼續做加減運算,為了保證數據不溢出,還必須將數據位寬擴展一位,而協方差矩陣的運算核心就是乘累加單元,隨著採樣點數的增加,位寬擴展呈線性增加。最終導致FPGA器件資源枯竭,無法實現設計。
  • 圖像的二維提升小波變換的FPGA實現
    小波變換是一種很好的圖像分解方法,非常適合於分析突變信號而用於靜止圖像邊緣的提取和壓縮。高階小波變化還可以用於實時處理視頻圖像信號,在減少編碼時間、提高壓縮比和降低失真度方面,都有很好的效果。因此,小波變換在圖像處理中具有十分優越的性能。
  • 圖片壓縮網站哪家強?
    這個網站可以幫我們解決壓縮圖片這個問題,而且壓縮之後的效果基本和原圖沒有什麼差別。 網站使用也非常簡單,只需要點擊虛線區域選擇圖片,或者將圖片拖拽至虛線區域,就可以幫我們壓縮,並且還支持批量壓縮功能。一般來說圖片體積越大,壓縮空間就越大。
  • ...TECHNOLOGY發布了適用於LatticeECP3 FPGA系列的壓縮和加密IP核
    IP核採用了非常強大和成熟的LZRW無損壓縮算法,它已經由Helion的客戶量產使用了超過五年以上。本文引用地址:http://www.eepw.com.cn/article/118407.htm  此外,LZRW無損壓縮核可單獨用於更適合於嵌入式實現的應用。該內核有僅壓縮、僅擴展或壓縮/擴展結合版,並支持超過500Mbps的數據速率。
  • fpga應用領域_fpga應用三個主要方向
    fpga的優勢   1)通信高速接口設計。FPGA可以用來做高速信號處理,一般如果AD採樣率高,數據速率高,這時就需要FPGA對數據進行處理,比如對數據進行抽取濾波,降低數據速率,使信號容易處理,傳輸,存儲。   2)數位訊號處理。包括圖像處理,雷達信號處理,醫學信號處理等。