文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.182839
中文引用格式: 連佳佳,王志有,王利斌,等. 基于JPEG2000算法的圖像編碼裝置的設(shè)計[J].電子技術(shù)應用,2019,45(3):46-49.
英文引用格式: Lian Jiajia,Wang Zhiyou,Wang Libin,et al. Design and implementation of multi-interface high frame-rate image compression device[J]. Application of Electronic Technique,2019,45(3):46-49.
0 引言
在現(xiàn)代遙感技術(shù)中,人們對于圖像傳輸?shù)囊笤絹碓礁撸渲兴俾屎唾|(zhì)量的提高以及圖像數(shù)據(jù)的實時傳輸是現(xiàn)在最主要的研究熱點[1]。而伴隨著遠程遙感設(shè)備采集到的圖像質(zhì)量的不斷提高,信道中攜帶的數(shù)據(jù)量也隨之增加,增加傳輸信道帶寬的方法僅僅是治標不治本,并且信道并不能無限制使用。因此,本文基于遙感器的特殊工作環(huán)境和模式,提出了數(shù)據(jù)壓縮編碼技術(shù)的硬件實現(xiàn)方法,從根本上解決問題[2]。
國內(nèi)某研究所針對相關(guān)遙感項目提出關(guān)鍵指標:空間遙感圖像采集、壓縮速率為100幀/s,壓縮倍數(shù)為75倍,對地圖像傳輸通道波特率為2.457 6 Mb/s?;谏鲜鲋笜?,本文提出了基于JPEG2000算法的圖像編碼裝置的硬件實現(xiàn)方法。
1 壓縮編碼算法介紹
相比JPEG算法,JPEG2000編碼算法具有更高的壓縮比和抗誤碼性能[3],解決了在低比特率編碼時會出現(xiàn)的方塊效應,以及比特差錯時出現(xiàn)的嚴重損壞問題,其主要由四部分組成,包括預處理、DWT、均勻量化和EBCOT編碼,如圖1所示。
預處理:將不能滿足JPEG2000壓縮算法要求的原始圖像數(shù)據(jù)分成矩形塊,與JPEG編碼相比JPEG2000中的每個矩形塊的大小并不需要是規(guī)定且一致的,最小單位可以到像素大小,其中每個矩形塊都單獨使用自己的參數(shù)實現(xiàn)編碼[4-5]。由于在離散小波變換之前的圖像數(shù)據(jù)要求軸對稱分布,因此對于無符號數(shù)需要先進行平移,再進行歸一化處理,之后采取分量變換的方式以便除去彩色分量之間的相關(guān)性,以減少數(shù)據(jù)量。本文采用不可逆的實數(shù)彩色變換(ICT),這是一種將RGB圖像轉(zhuǎn)換為亮度和色差數(shù)據(jù)的一種變換方式,本文主要采用YCbCr4:2:2的方式,對亮度的采樣率是對顏色采樣率的兩倍關(guān)系,并且優(yōu)先傳輸比較重要的亮度信息,RGB到Y(jié)CbCr的變換式如式(1)所示。
DWT:離散小波變換的主要作用是將圖像的能量收斂到權(quán)重更高的低頻子帶,其本質(zhì)是產(chǎn)生大量無限接近于0的小波系數(shù)。離散小波變換本質(zhì)上是對每個矩形塊先進行水平方向的濾波,再對得到的每個輸出用同樣的濾波器組進行垂直方向的濾波。圖2為一個二級小波變換示意圖,原始圖像通過第一級小波變換后會被分為代表信號中低頻成分的LL子帶和代表信號中邊緣、紋理、細節(jié)等高頻成分的LH、HL、HH子帶,而第二級的小波變換針對的就是經(jīng)過第一級變換得到的LL低頻子帶,LL低頻子帶參照第一級小波變換進行進一步分解。以此類推,經(jīng)過多級小波變換后,圖像數(shù)據(jù)完成了主要信息和邊緣信息的分別存儲,為后面比特層掃描編碼和碼流優(yōu)化截斷提供了條件[6]。
量化:JPEG2000編碼標準提供了一種死區(qū)標量量化的處理方式,所謂“死區(qū)”就是在零點附近的輸入?yún)^(qū)間內(nèi)量化步長寬度是其他輸入?yún)^(qū)間的兩倍,應注意小波變換后的子帶已經(jīng)是最小單元,因此每個子帶都只采用一個量化步長。量化的公式如式(2)所示,該處理方式主要是根據(jù)小波子帶的視覺特性或者碼率控制的要求分析得出量化步長Δ,將步長Δ帶入式(2)即可得到量化后的值q[7]。
EBCOT編碼:經(jīng)過離散小波變換和量化之后的小波系數(shù)并不能完全消除它們之間的相關(guān)性,因此需要進行EBCOT編碼進一步地消除。先將經(jīng)過量化的小波系數(shù)劃分為尺寸是2的整數(shù)次冪大小的矩形碼塊,以矩形碼塊為最小單位編碼。EBCOT編碼分為兩步進行:(1)Tier1部分包括比特層掃描編碼和算數(shù)編碼,比特層掃描編碼是以碼塊為單位從最高有效位平面開始編碼,通過對每一層分別進行3次掃描,將其根據(jù)一定的規(guī)則分為3個通道分別進行處理并生成上下文、決策位,這3個通道數(shù)據(jù)再通過算數(shù)編碼器,最后針對每個碼塊就生成了嵌入式編碼碼流。(2)在Tier2部分,具有截斷點的編碼碼流根據(jù)失真率優(yōu)化原則,將權(quán)重較低的碼流數(shù)據(jù)舍棄,并對截斷點的位置信息進行編碼,最終將保留下的各比特層的數(shù)據(jù)碼流打包,輸出最終的JPEG2000圖像數(shù)據(jù)碼流[8-10]。
2 系統(tǒng)設(shè)計
本圖像壓縮裝置采用FPGA+JPEG2000標準芯片結(jié)構(gòu),以FPGA為主控芯片實現(xiàn)對各模塊的邏輯控制以及數(shù)據(jù)通信,實現(xiàn)運用JPEG2000標準編碼算法進行圖像壓縮的硬件設(shè)計??傮w方案如圖3所示,本裝置主要包括以下5個模塊:系統(tǒng)控制、圖像接收、圖像緩存、壓縮編碼以及數(shù)據(jù)傳輸。
本裝置中系統(tǒng)采集到的原始圖像數(shù)據(jù)通過圖像接收模塊(LVDS接口)接收,并且進行解串之后,為了解決由于傳輸速率過快可能導致的數(shù)據(jù)丟失問題,需要先進行數(shù)據(jù)緩存,再將數(shù)據(jù)無失真地傳輸給壓縮編碼模塊。最后為了測試圖像壓縮編碼后的效果,通過數(shù)據(jù)傳輸模塊(RS422)把壓縮編碼后的數(shù)據(jù)轉(zhuǎn)化為異步串行數(shù)據(jù)傳輸?shù)缴衔粰C[11],再經(jīng)過MATLAB解碼可以查看到圖片是否失真。
2.1 LVDS圖像采集接口設(shè)計
采集接口采用了LCD Panel通用的接口標準LVDS低壓差分信號接口,信號的傳輸速率可達幾百Mb/s,是在TTL電平方式傳輸寬帶高碼率數(shù)據(jù)時,為了降低系統(tǒng)功耗以及消除EMI電磁干擾而被研究出來的一種數(shù)字視頻信號傳輸方式。
圖4為LVDS信號實際測試波形圖,圖中的幀同步信號、行同步信號和同步時鐘信號都是高電平有效,當幀同步信號有效時讀取圖像數(shù)據(jù)中的一幀,行同步信號有效時讀取圖像數(shù)據(jù)中的一行。只有幀同步信號、行同步信號同時為高電平時,在時鐘的上升沿觸發(fā)下才可以讀取到LVDS接口原始圖像數(shù)據(jù)。
本裝置中LVDS接口輸入的圖像為YCbCr4:2:2格式,它的主要功能是將輸入的圖像數(shù)據(jù)進行處理,為提升系統(tǒng)速度,充分利用時鐘資源,使存入到SRAM的數(shù)據(jù)為16 bit,數(shù)據(jù)在FPGA內(nèi)部用時鐘打2拍[11]。
2.2 圖像緩存設(shè)計
本裝置選用兩片SRAM進行乒乓緩存,以提升傳輸速率,數(shù)據(jù)處理流程如下:系統(tǒng)上電后,緩存模塊初始化選擇SRAM0,當檢測到有數(shù)據(jù)輸入時,SRAM0寫請求信號使能有效,開始存儲數(shù)據(jù),數(shù)據(jù)從SRAM0的地址0開始寫入,當寫入的數(shù)據(jù)量達到已設(shè)置好的容量后,地址計數(shù)器給出SRAM0滿標志信號,停止寫入數(shù)據(jù),同時將SRAM0的寫地址計數(shù)器清零,等待壓縮模塊讀取圖像數(shù)據(jù)。此時SRAM1寫請求信號使能有效寫入數(shù)據(jù),同時SRAM0讀請求信號使能有效[12]。原理圖如圖5所示。
2.3 壓縮編碼模塊設(shè)計
ADV212是一款專用壓縮編解碼芯片,具有實時壓縮和解壓縮的功能。在工作時具有延遲小、功耗低、工作模式靈活可控的優(yōu)點[13]。
本裝置中圖像壓縮模塊的工作流程如圖6所示。首先在系統(tǒng)正常工作前需要對ADV212進行參數(shù)配置,即對內(nèi)部的直接寄存器和間接寄存器進行初始化操作,其中對間接寄存器的配置需要通過把要調(diào)用的地址寫入直接寄存器IADDR和STAGE中,再把數(shù)據(jù)寫入到寄存器IDATA中。本模塊的主要功能是將從存儲模塊讀取到的原始圖像數(shù)據(jù)進行JPEG2000標準編碼處理,然后通過接收讀取數(shù)據(jù)命令,回讀編碼后的數(shù)據(jù)[14]。
本裝置中,選用9/7濾波器將每個矩形塊分解成許多子帶,同時將產(chǎn)生的小波系數(shù)寫入到相應寄存器中[15],其中輸出的碼流格式為包含亮度和色彩數(shù)據(jù)的YCbCr格式。在本模塊中,對于YCbCr格式,樣本值是每行像素值的兩倍。因此,壓縮一幅320×240的彩色圖像,固件參數(shù)應當設(shè)置為160×120。
3 系統(tǒng)測試
測試和控制該裝置接收和存儲壓縮編碼數(shù)據(jù)的地面測試軟件操作界面如圖7所示,上位機軟件正在接收經(jīng)過壓縮模塊的圖像數(shù)據(jù)。
通過地面測試臺發(fā)送原始彩色圖像,如圖9所示,其尺寸為150 KB。再將接收到的壓縮編碼圖像數(shù)據(jù)通過圖像解碼顯示軟件解碼顯示,如圖10所示,一幀圖像大小約為2 KB。對比發(fā)現(xiàn),系統(tǒng)實際實現(xiàn)的壓縮比約為75:1,通過實際測試發(fā)現(xiàn),解碼后的圖像失真度較小,壓縮效果較好,滿足系統(tǒng)要求。
4 結(jié)束語
本文基于箭載的航天背景,設(shè)計并實現(xiàn)了一種基于JPEG2000算法的高幀頻圖像壓縮編碼裝置。最后通過系統(tǒng)測試平臺對壓縮編碼裝置進行了系統(tǒng)測試,經(jīng)過分析,該裝置滿足了預期要求的壓縮倍數(shù)和壓縮速率。結(jié)果表明,本文設(shè)計的圖像壓縮編碼裝置在滿足高幀頻的同時可以實現(xiàn)高壓縮比的要求,并且系統(tǒng)穩(wěn)定,具有極高實用價值。
參考文獻
[1] 翁天陽,莊宇,于瑋,等.基于HPS和FPGA的圖像壓縮感知編解碼系統(tǒng)[J].電子技術(shù)應用,2017,43(5):90-93.
[2] 祁志恒,姜喆,張為.基于ADV212的雷達圖像壓縮傳輸系統(tǒng)[J].電子技術(shù)應用,2015,41(11):78-80,84.
[3] 朱秀昌,劉峰,胡棟.數(shù)字圖像處理與圖像通信[M].北京:北京郵電大學出版社,2016.
[4] 祁志恒.基于ADV212的JPEG2000圖像壓縮系統(tǒng)設(shè)計[D].天津:天津大學, 2016.
[5] CHRYSAFITS C,ORTEGA A.Line-based, reduced memory,wavelet image compression[J].IEEE Transactions on Signal Process,2000,9(3):378-389.
[6] 姜喆.高性能JPEG2000圖像編碼器的VLSI設(shè)計[D].天津:天津大學,2012.
[7] 王丹,楊允基.ADV212編解碼芯片原理及應用[J].艦船電子工程,2008(5):106-109.
[8] 孫寶海.基于TI DM8148構(gòu)架的視頻編碼系統(tǒng)的設(shè)計與實現(xiàn)[D].太原:中北大學,2017.
[9] 黃德祥,湯愛武,徐升,等.基于ADV212的無人機實時視頻解碼系統(tǒng)設(shè)計[J].無線電工程,2014,44(10):59-63.
[10] 晁富邦.基于ARM的嵌入式視頻采集與壓縮系統(tǒng)設(shè)計與研究[D].重慶:重慶大學,2009.
[11] 劉敏慧,高楓,劉文怡.基于FPGA和ADV212的彩色圖像實時壓縮系統(tǒng)的設(shè)計[J].現(xiàn)代電子技術(shù),2017,40(22):88-90,94.
[12] 藺志強.大容量緩存壓縮裝置的設(shè)計與實現(xiàn)[D].太原:中北大學,2013.
[13] 齊鳳梅,孫立成.機載高速相機圖像準實時下傳方法[J].飛行器測控學報,2012,31(4):25-28.
[14] 王剛,陳曉曙.面向無線傳輸?shù)膶崟r視頻壓縮編碼系統(tǒng)設(shè)計[J].合肥工業(yè)大學學報(自然科學版),2011,34(12):1819-1822.
[15] 關(guān)曉磊,孟立凡.JPEG2000的近距離無線視頻傳輸系統(tǒng)設(shè)計[J].單片機與嵌入式系統(tǒng)應用,2011,11(11):41-44.
作者信息:
連佳佳1,王志有2,王利斌3,劉文怡1,張會新1
(1.中北大學 電子測試技術(shù)重點實驗室,山西 太原030051;
2.北京宇航系統(tǒng)工程研究所,北京100076;3.北京強度環(huán)境研究所,北京100076)