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