JPEG2000數(shù)據(jù)壓縮的FPGA實現(xiàn)
摘要:高性能的數(shù)據(jù)壓縮可以有效的減少數(shù)據(jù)對存儲空間和通信帶寬的要求,降低通信成本。為解決圖像數(shù)據(jù)的高壓縮性能問題,本文提出了基于JPEG2000標準的數(shù)據(jù)壓縮系統(tǒng)的FPGA實現(xiàn)方案。相對于軟件算法實現(xiàn)和其他硬件方法,采用FPGA硬件實現(xiàn)可降低系統(tǒng)復雜度提高性能。最終設(shè)計的IP核具有資源占用少,性能良好和便于擴展等優(yōu)點,能夠滿足通信傳輸和照相設(shè)備等應(yīng)用需求。
關(guān)鍵詞:JPEG2000;數(shù)據(jù)壓縮;FPGA;DWT
近年來通信領(lǐng)域中信息的傳輸總量急速擴大。由于存儲空間有限、通信帶寬等因素的限制,數(shù)據(jù)通常需要通過壓縮才能有利于存儲和傳輸,數(shù)字圖像存儲和傳輸?shù)陌嘿F費用成為其普及的最大障礙。為此必須對數(shù)字圖像壓縮編碼技術(shù)進行研究和實現(xiàn)。
JPEG2000標準采用的是離散小波變換,具有壓縮率高和無邊緣效應(yīng)等優(yōu)點。文中的設(shè)計采用片上系統(tǒng)(System On Claip)方案,可實現(xiàn)對分辨率1024x1024圖像的壓縮。在有效實現(xiàn)數(shù)據(jù)壓縮基礎(chǔ)上,系統(tǒng)還具有較好擴展性。研究利用FPGA實現(xiàn)圖像數(shù)據(jù)壓縮,將壓縮算法映射到專用集成電路(ASIC)設(shè)計,具有非常廣闊的市場應(yīng)用前景。
1 基本原理
數(shù)字圖像的壓縮就是用一定的規(guī)律對需要處理的圖像數(shù)據(jù)進行變換和排列,以盡可能少的數(shù)據(jù)信息來表示盡可能多的圖像信息。圖像的壓縮是通過編碼算法來完成實現(xiàn)的。目前常用的壓縮方法有:圖像變換技術(shù)、預測壓縮、自適應(yīng)壓縮等方法。
圖像數(shù)據(jù)之所以可以進行壓縮,主要壓縮來源于以下2點:一是在圖像數(shù)據(jù)中存在大量信息冗余;另一點是人類的視覺觀察精度是有限的通過減少數(shù)據(jù)精度來實現(xiàn)圖像壓縮。
在數(shù)字圖像壓縮中主要有:編碼冗余、像素相關(guān)冗余和視覺心理冗余。通過算法減少或消除冗余就能實現(xiàn)圖像壓縮。另外根據(jù)人類視覺允許圖像壓縮后與原始圖像有失真。圖像壓縮就是利用圖像數(shù)據(jù)固有特性以及人類視覺特性,經(jīng)過壓縮算法提取有效的數(shù)據(jù)信息,減少數(shù)據(jù)信息量,以便實現(xiàn)高效率的圖像數(shù)據(jù)傳輸和存儲。
2 系統(tǒng)結(jié)構(gòu)
根據(jù)JPEG2000標準,一般來講基于JPEG2000標準的數(shù)據(jù)壓縮系統(tǒng)主要由預處理、DWT、量化和EBCOT組成。組成結(jié)構(gòu)如圖1所示。
在參考JPEG2000標準數(shù)據(jù)壓縮系統(tǒng)構(gòu)架后,本文設(shè)計的數(shù)據(jù)壓縮系統(tǒng)主要包括預處理,小波變換,量化和嵌入式位平面編碼4部分,系統(tǒng)結(jié)構(gòu)如圖2所示。
預處理:對圖像源數(shù)據(jù)進行劃分,分成tile大小,之后進行DC位移和分量變換處理。
WDT:即小波變換把圖像分解為空間頻域子帶具有能量更為集中,更好的壓縮性能,而且可以很好的消除分塊現(xiàn)象的優(yōu)點。離散小波變換的提升算法可減少內(nèi)存需求,降低計算復雜度。本文主要考慮提高壓縮性能,因此采用的是9/7離散小波變換提升算法。
量化:將小波系數(shù)進行量化處理,之后按碼塊大小(32x32)儲存量化后的小波系數(shù),采用動態(tài)內(nèi)存控制體制(DMC),降低小波系數(shù)緩存量。
EBCOT(Tier_1):對輸入的子帶小波系數(shù)進行底層嵌入式塊編,并輸出算術(shù)編碼比特流和塊編碼的統(tǒng)計信息給Tier_2。
EBCOT(Tier_2):進行層生成及塊信息編碼,最終輸出JPEG2000碼流。
壓縮編碼過程如下:原始圖像數(shù)據(jù)經(jīng)過預處理變成許多個顏色分片(component—tile),每個分片經(jīng)過小波變換后變成小波系數(shù),量化后送入EBCOT進行編碼和碼率控制處理,為提高壓縮速率,嵌入式為平面編碼(EBCOT)模塊采用并行處理結(jié)構(gòu),分別完成對前級量化后的小波系數(shù)HL、HH以及LH和LL的處理,小波系數(shù)在通過EBCOT模塊進行編碼和碼率控制處理后,最后得到的是符合JPEG2000標準格式的壓縮數(shù)據(jù)。
3 系統(tǒng)各組成模塊的設(shè)計
本系統(tǒng)主要實現(xiàn)數(shù)據(jù)的壓縮處理,源圖像通過預處理模塊對圖像源數(shù)據(jù)進行劃分,分成tile(512x512)大小,之后經(jīng)過小波變換和EBCOT模塊完成數(shù)據(jù)壓縮處理,輸出壓縮碼流。
3.1 預處理模塊
由于原始圖像數(shù)據(jù)較大,通過預處理模塊可以大大降低數(shù)據(jù)對系統(tǒng)存儲空間的要求。本文采用的預處理有:分片和電平平移,通過分片將原始圖像分割成tile(512x512)大小的區(qū)塊,每個分片進行獨立壓縮;電平平移使得圖像數(shù)據(jù)關(guān)于零對稱,有利于編碼處理。
3.2 小波變換模塊
采用離散小波變換對圖像進行處理,得到圖像的小波系數(shù)分為LL、LH、HL、HH 4個子帶。通過級聯(lián),進行多級小波變換,小波系數(shù)中,高頻數(shù)據(jù)分量表示圖像中局部區(qū)域如圖像的邊緣,低頻分量表示圖像中的低頻信息如圖像的背景信息。可見通過小波變換,即使比特率不高的情況下,也能保證圖像中較多的細節(jié)信息。圖像通過小波變換時可進行不同級數(shù)的編解碼處理,進而得到具有不同空間分辨率的圖像信息。為實現(xiàn)較好壓縮效果,需要對小波變換進行多次層分解,主要分解形式有:Mallat、Spacl和Packet,如圖3所示。
其中最為常用的分解方式為Mallat分解,每次分解實在對上一層的低頻分量(LL)繼續(xù)做Mallat分解,如圖4所示。
一般來講,多數(shù)設(shè)備是串行工作方式,圖像數(shù)據(jù)普遍采用逐行的掃描方式,因此,在本文設(shè)計的數(shù)據(jù)壓縮系統(tǒng)中,圖像數(shù)據(jù)以逐行掃描方式輸入DWT變換模塊,小波變換采用9/7有損壓縮,分解結(jié)構(gòu)采用5層Mallat分解。
3.3 量化處理
人的視覺可分辨的圖像是有一定范圍的,因此通過適當量化減小數(shù)據(jù)精度實現(xiàn)對壓縮。設(shè)計的量化步長決定了壓縮效果的好壞。對圖像量化操作是有損壓縮,會產(chǎn)生一定的量化誤差。量化后的圖像數(shù)據(jù)都是由符號和幅值表示,量化后的系數(shù)在進行下一步的編碼處理。
3.4 嵌入式塊編碼
在JPEG2000系統(tǒng)中,將量化后的子帶劃分成小的碼塊,認為碼塊間相互獨立,以碼塊為單元,進行嵌入式編碼。嵌入式編碼的基本思想是通過計算適當?shù)拇a流截斷點,將壓縮生成的碼流劃分成若干子集,每一子集表示對源圖像的一個壓縮。嵌入式碼流可在任意一處被截斷,得到具有不同碼率或質(zhì)量的重構(gòu)圖像。
在本設(shè)計中,模塊采用了并行處理的方式來提高處理能力,嵌入式塊編碼分為Tier1和Tier2兩部分:
Tier1模塊主要處理模塊有:流程控制模塊、比特平面編碼、過程編碼模塊和算術(shù)編碼模塊,結(jié)構(gòu)如圖5所示。
工作流程是:首先,小波系數(shù)暫存于小波系數(shù)存儲器中,然后進入EBCOT模塊,對小波系數(shù)進行比特平面編碼和過程掃描編碼,進過處理的比特信息送入算術(shù)編碼模塊進行基于上下文的二進制算術(shù)編碼。
Tier2模塊主要功能模塊有:率失真計算模塊、碼率控制模塊和碼流組織模塊,結(jié)構(gòu)如圖6所示。
工作過程是:率失真模塊完成編碼塊的失真率計算,傳給后級模塊,碼率控制模塊據(jù)此進行碼流截斷控制,之后給編碼模塊進行碼流組織,不同子帶方向上的碼流合并輸出JPEG2000壓縮碼流。
4 測試驗證
文中設(shè)計的JPEG2000數(shù)據(jù)壓縮系統(tǒng)在FPGA開發(fā)板上進行了驗證,最終結(jié)果顯示,可支持處理512x512大小16灰度級的tile圖像分片,碼塊大小是32x32,實現(xiàn)對1 024x1 024的16灰度級的圖像壓縮處理,輸入是圖像數(shù)據(jù)信息,輸出是符合JPEG2000標準的壓縮碼流。仿真時采用的工作時鐘是50 MHz,對于1 024x1 024的16灰度級的圖像完成16:1的壓縮率,結(jié)果顯示需要大約1 s左右的時間,滿足設(shè)計要求。
5 結(jié)論
文中首先對JPEG2000標準進行了介紹,并詳細分析了數(shù)據(jù)壓縮的實現(xiàn)原理,之后給出系統(tǒng)總體方案對各個模塊進行了設(shè)計。由測試結(jié)果可知達到了設(shè)計要求,設(shè)計的IP核采用以離散小波變換(DWT)算法,具有明顯的性能優(yōu)勢,可代替JPEG標準廣泛應(yīng)用于網(wǎng)絡(luò)傳輸和無線通訊等領(lǐng)域。但由于JPEG2000算法較為復雜,系統(tǒng)的壓縮速率和壓縮比還有提升空間,因此需要進一步對算法進行研究和改進,通過研究其FPGA實現(xiàn)方法,映射為專用集成電路,最終設(shè)計實現(xiàn)具有自主知識產(chǎn)權(quán)的JPEG2000數(shù)據(jù)壓縮IP核,具有重要研究價值。