JPEG2000數據壓縮的FPGA實現

2021-01-08 電子產品世界

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

近年來通信領域中信息的傳輸總量急速擴大。由於存儲空間有限、通信帶寬等因素的限制,數據通常需要通過壓縮才能有利於存儲和傳輸,數字圖像存儲和傳輸的昂貴費用成為其普及的最大障礙。為此必須對數字圖像壓縮編碼技術進行研究和實現。
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核,具有重要研究價值。


相關焦點

  • 視頻編碼應用的JPEG2000壓縮算法實現
    圖2 基站設計  測試結果主觀圖像質量比較由於採取了上述技術,理論上JPEG2000應提供更好的性能和更多的功能,下面通過幾組對比數據加以驗證。用作參考的JPEG算法是當前業界硬體平臺上使用最廣泛的壓縮算法,測試圖片為24位真彩色lenna圖。  實驗採用的壓縮性能度量是峰值信噪比(PSNR):PSNR反映的是圖像信噪比變化情況的統計平均,它是目前廣泛應用的衡量圖像主觀質量的方法。
  • mozjpeg:JPEG圖片壓縮5%,獲Facebook支持
    mozjpeg是一個來自Mozilla實驗室的JPEG圖像編碼器項目,目標是在不降低圖像質量且兼容主流的解碼器的情況下,提供產品級的JPEG格式編碼器來提高壓縮率以減小JPEG文件的大小。
  • 基於JPEG 2000的醫學圖像ROI壓縮
    JPEG2000使用基於小波變換技術和最新算術熵編碼技術,試圖使壓縮後的圖像不但擁有較高的壓縮比便於存儲傳輸,此外,JPEG2000的誤差穩定性也比較好,能更好地保證圖像的質量。所謂感興趣區域(Region of Interest, ROI)是指用戶可以任意指定其感興趣區域圖像的壓縮質量,或者選擇指定的部分先解壓縮,以達到在顯示的時候突出重點的目的。
  • 基於FPGA的Gzip解壓縮硬體設計
    Gzip解壓縮基本原理本文引用地址:http://www.eepw.com.cn/article/235597.htm  Gzip文件格式分析  Gzip壓縮後的文件主要由3個部分組成,分別是文件頭、壓縮數據部分、文件尾,如圖
  • 實現用於專業視頻的JPEG2000網絡
    因此專業視頻行業對畫質無損壓縮尤為感興趣。即壓縮方案需既能保持畫質,又能實現高效存儲和傳輸。 最後JPEG2000 在多次編/解碼流程後還能保留原有畫質,這對存在多個視頻管理階段的節目收集網絡而言,意義十分重要。 鑑於這種需求,設備供應商迅速啟動自己視頻設備上的JPEG2000 編/ 解碼器的實現工作。不過異地之間的傳輸,他們仍然有多種實現方案可供選擇,諸如專有協議等。
  • 谷歌開源JPEG編碼器Guetzli,壓縮35%也能生成高質量圖片
    這就使網站管理員可以使用更少的數據更快地加載網頁,此外,它能兼容現有的瀏覽器、圖像處理應用和JPEG標準。從實現的角度來說Guetzli 與Zopfli算法類似,並不需要引入新的格式就能生成更小的PNG和gzip文件。與前段時間谷歌推出的基於循環神經網絡(RNN)的圖像壓縮方法RAISR和WebP不同,它並不需要對客戶端和系統環境進行修改。
  • 圖片壓縮JPEGmini—PS/Lightroom插件介紹
    現在當你導出你的照片直接從Lightroom中,他們會自動優化jpegmini到最低的文件大小可能不犧牲質量。JPEGmini與JPEG2000,JPEG-XR,WebP或其他圖像格式相比如何?JPEGmini使用標準基準JPEG格式,迄今為止,該格式已在圖像壓縮領域確立了市場領先地位。
  • Mozilla 找虐,新項目繼續壓榨 JPEG 壓縮極限
    這次,Mozilla推出一款新項目Mozjpeg,這款高品質JPEG編譯器可以提升對JPEG圖像的壓縮效率。儘管如此,Mozilla也希望繼續維持與當前主流的編譯器的兼容性。在過去網際網路技術發展過程中,日益增長的圖像數量成為網站頁面重要的組成部分,尤其是每一張圖像的大小體積。Mozilla也指出,目前圖像已經制約了網站網頁加載速度、佔據了大量的網絡帶寬。
  • mozjpeg 2.0 發布,提升 JPEG 壓縮率
    Mozilla 發布了 mozjpeg 的2.0版本,與標準JPEG庫相比,這款JPEG編碼器現已能夠平均減少5%的圖像尺寸。
  • 谷歌正在開發一種新的JPEG壓縮方法
    為此,各種各樣的文件壓縮技術和標準也應運而生,圖片裡有jpeg和png,音頻裡有mp3和flac,視頻裡有rmvb和mkv,還有zip和tar等各種壓縮,只有一個目的:最大限度地保持文件的原始信息,同時生成最小體積的可讀寫文件。   現在,谷歌正在開發一種新的JPEG壓縮方法,利用神經網絡模擬人腦的工作方式去壓縮圖片。
  • 基於DSP Builder的JPEG靜態圖像壓縮算法的實現
    使用有損壓縮算法時,在壓縮比為25:1的情況下,壓縮後還原得到的圖像與原始圖像相比較,非圖像專家難於找出它們之間的區別,因此得到了廣泛的應用。例如,在VCD和DVD-Video電視圖像壓縮技術 中,就使用JPEG的有損壓縮算法來取消空間方向上的冗餘數據。 JPEG壓縮是有損壓縮,它利用了人眼視角系統的特性,使用量化和無損壓縮編碼相結合來去掉視角的冗餘信息和數據本身的冗餘信息。
  • Google 開源「Guetzli」JPEG 圖像編碼器:提升壓縮比、網頁加載更...
    與當前 JPEG 壓縮技術相比,其聲稱能夠再提升 35% 。而 Google 之所以追求更小的圖像尺寸,是為了帶來更快的 Web 加載體驗。谷歌歐洲研究院軟體工程師 Robert Obryk 和 Jyrki Alakuijala 表示:「Guetzli 念作 [guɛtsli],在瑞士德語中是小甜點(cookie)的意思」。
  • 紐約大學提出端到端優化圖像壓縮方法,全面超越JPEG2000|ICLR2017
    通過一組測試圖像,該方法的表現通常比標準JPEG和JPEG 2000壓縮方法有更好的rate-distortion性能。更重要的是,在所有比特率的所有圖像中,該方法都實現了顯著的視覺上質量的提升,這點也被客觀的質量評測方法MS-SSIM證明。雷鋒網了解到該論文將會在2017年4月24號在ICLR會議上作為第一個Contributed talk討論。
  • JPEG2000的近距離無線視頻傳輸系統設計
    系統採用專用的JPEG2000視頻壓縮器件ADV212來實現視頻壓縮;基於多外部接口和低功耗的考慮,選用Cortex-M3內核的嵌入式處理器LPC1768對整個系統進行控制;無線傳輸採用nRF24LU1+來實現。關鍵詞:無線視頻傳輸;JPEG2000;圖像採集;LPC1768引言 隨著移動通信技術的發展,無線視頻通信已經在第三代移動通信系統中得到應用。
  • 基於SoC+FPGA平臺快速動態加載驅動開發及實現
    其中ARM核內部有16KB的L1程序Cache和16KB的數據Cache,以及8KB中斷向量表存儲RAM;DSP核採用二級緩存結構,包括32KB 的L1程序Cache、32KB 的數據Cache和高達256KB可靈活配置的L2 Cache,L2可以被ARM核訪問;此外在兩核之間還有128KB的片內SHARE RAM,可用於ARM核和DSP核高速交換數據,而不影響各自的運行;  (4)低功耗設計
  • 數據壓縮算法
    概述之前在聽到數據壓縮的時候, 想著肯定是某些高深莫測的算法, 能夠完成數據的壓縮這種事情, 最近看了看, 嗯, 至少咱還是能看懂的.這是一種壓縮的方式, 處理重複數據.方案二再上一個數字串: 123456-78-123456-987-12345678從我在這個字符串中打的波折號標記, 大概就能猜到該如何處理了吧. 後面的內容與前面的相同, 即重複數據. 那就可以去前面抄啊.
  • 基於JPEG2000的一種新型率控制方法
    JPEG2000是一種新的靜止圖像壓縮編碼國際標準。由於其採用了與其他圖像壓縮標準不同的全新結構,因此,JPEG2000擁有壓縮比高,同時支持有損和無損壓縮,碼流可隨機存取和處理等優點。JPEG2000的編碼算法包括離散小波變換(DWT)和位平面熵編碼。
  • 實現MIPI DSI發送橋接 FPGA滲透中低階手機
    萊迪思總裁暨執行長DarinG.Billerbeck表示,高階手機品牌商為突顯產品差異化,正加速導入FPGA,藉此實現更安全、運算速度更快、待機時間更長、聲音及螢幕解析度更好的功能,打造更吸睛的產品。  另值得關注的是,隨著平價高規已勢不可當,二、三線手機品牌商亦正紛紛尋求低成本方案,以拉高產品螢幕規格。
  • JPEG落伍:全新圖片格式壓縮誕生:幾乎無人工痕跡
    雷鋒網按:數據壓縮是一種基礎工程問題,在數據存儲和有限容量信道傳輸中有重要的應用。圖像作為一種信息載體,數據量巨大,因此研究者們對圖像壓縮的研究從未停止過。通過一組測試圖像,該方法的表現通常比標準JPEG和JPEG 2000壓縮方法有更好的rate-distortion性能。更重要的是,在所有比特率的所有圖像中,該方法都實現了顯著的視覺上質量的提升,這點也被客觀的質量評測方法MS-SSIM證明。雷鋒網了解到該論文將會在2017年4月24號在ICLR會議上作為第一個Contributed talk討論。
  • 在使用CNN算法的雲數據中心,Altera FPGA實現的加速功能具有優異的...
    Altera公司今天宣布,微軟採用Altera Arria® 10 FPGA (現場可編程門陣列)實現基於CNN (卷積神經網絡)算法的數據中心加速功能,其每瓦性能非常優異。這些算法通常用於圖像分類、圖像識別,以及自然語言處理等。