《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > FPGA時(shí)序結(jié)構(gòu)的LBT變換控制器設(shè)計(jì)
FPGA時(shí)序結(jié)構(gòu)的LBT變換控制器設(shè)計(jì)
2019年電子技術(shù)應(yīng)用第2期
顧澤凌,楊明遠(yuǎn),丁紅暉,衡 燕
上海無線電設(shè)備研究所,上海200090
摘要: JPEG XR編碼算法中重疊雙正交變換(LBT)傳統(tǒng)的FPGA實(shí)現(xiàn)都是基于線性提升結(jié)構(gòu),無時(shí)序約束,存在亞穩(wěn)態(tài)、碼流不受控等問題。為此,設(shè)計(jì)了一種基于FPGA時(shí)序結(jié)構(gòu)的LBT變換控制器,該設(shè)計(jì)采用混合狀態(tài)機(jī),將LBT變換算子設(shè)計(jì)為時(shí)序控制結(jié)構(gòu)的數(shù)據(jù)處理模塊。數(shù)據(jù)處理模塊通過握手信號與前后控制模塊進(jìn)行指令通信,并根據(jù)指令進(jìn)行相應(yīng)的數(shù)據(jù)處理。為了節(jié)省FPGA內(nèi)部存儲空間,該設(shè)計(jì)采用單RAM循環(huán)結(jié)構(gòu),由通道選擇器來切換各個(gè)控制模塊與RAM之間的通道。各個(gè)控制模塊根據(jù)數(shù)據(jù)處理模塊反饋的應(yīng)答指令實(shí)時(shí)計(jì)算圖像數(shù)據(jù)的地址,交叉對RAM進(jìn)行讀寫操作。實(shí)驗(yàn)結(jié)果表明,該控制器實(shí)現(xiàn)了對LBT變換的FPGA時(shí)序約束,處理后的圖像與MATLAB仿真圖像基本一致,達(dá)到了預(yù)期目的。
中圖分類號: TN958
文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.182703
中文引用格式: 顧澤凌,楊明遠(yuǎn),丁紅暉,等. FPGA時(shí)序結(jié)構(gòu)的LBT變換控制器設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2019,45(2):45-49.
英文引用格式: Gu Zeling,Yang Mingyuan,Ding Honghui,et al. Design of LBT transform controller based on FPGA′s timing structure[J]. Application of Electronic Technique,2019,45(2):45-49.
Design of LBT transform controller based on FPGA′s timing structure
Gu Zeling,Yang Mingyuan,Ding Honghui,Heng Yan
The Institute of Shanghai Radio Equipment,Shanghai 200090,China
Abstract: For the lapped bi-orthogonal transform(LBT) in JPEG XR encoding algorithm, the traditional implement method is always using linear lift structure which has no timing constraint, and it could cause some problems such as metastable state, uncontrolled code flow. Therefore, a LBT transform controller based on FPGA′s timing structure has been designed. In this design, mixed state machines is used to make the LBT transform operators to be data dealing modules that are timing-controlling-structure. The data dealing modules communicates with front and back controlling modules through handshake signals, and processes data according to relevant instructions. Single RAM cycle structure is used in the design, so that it can save FPGA internal storage space. The channels between each controlling modules and RAM are switched via channel chooser. Each controlling module computes addresses of image data in real time and reads or writes the RAM crossways on the basis of the feedback instructions of data dealing modules. Experimental results show that the controller has realized FPGA timing constraint on LBT transform, and the images processed by it are almost same to the results on MATLAB. This design has achieved desired goals.
Key words : JPEG XR;LBT;FPGA;mixed state machine;cycle structure

0 引言

    圖像是信息傳輸?shù)闹匾d體,隨著社會科技進(jìn)步,人們對圖像質(zhì)量要求越來越高,尤其是在航空航天、視頻安防等領(lǐng)域,對圖像傳輸與存儲[1]的要求更高。因此在提高傳輸帶寬的同時(shí),對圖像壓縮的相關(guān)研究也同步開展,尤其是JPEG系列的發(fā)展[2]。2009年,JPEG XR(JPEG eXtended Range)正式發(fā)布[3],其采用重疊雙正交變換(LBT)算法,復(fù)雜度與JPEG的離散余弦變換(DCT)相當(dāng),而還原后圖像質(zhì)量卻能與采用較為復(fù)雜的離散小波變換(DWT)的JPEG 2000相媲美[4],因而得到了廣泛研究,具有很好的應(yīng)用前景。

    傳統(tǒng)基于FPGA的LBT變換都是線性提升結(jié)構(gòu),沒有時(shí)序約束,系數(shù)變換存在亞穩(wěn)態(tài),數(shù)據(jù)碼流不受控制,而且線性提升結(jié)構(gòu)存在大量的乘法器、除法器和移位寄存器,對FPGA硬件資源消耗極大。本文充分利用FPGA的時(shí)序約束特性,將LBT的變換算子時(shí)序化,通過握手信號與前后控制模塊通信;為節(jié)省FPGA內(nèi)部空間,設(shè)計(jì)了一種單RAM循環(huán)結(jié)構(gòu),使用通道選擇器,根據(jù)控制指令,在不同的變換模塊工作時(shí),打開其與RAM之間的通道并關(guān)閉其他通道,根據(jù)變換順序?qū)AM進(jìn)行循環(huán)交叉讀寫,避免變換系數(shù)出現(xiàn)混亂;控制模塊根據(jù)變換順序,實(shí)時(shí)計(jì)算系數(shù)地址進(jìn)行讀寫操作,該設(shè)計(jì)實(shí)現(xiàn)了FPGA時(shí)序特性的LBT變換。

1 JPEG XR的LBT原理與分析

1.1 LBT變換的組成

    JPEG XR編碼流程與JPEG和JPEG2000類似,但其可根據(jù)圖像內(nèi)容實(shí)時(shí)調(diào)整處理算法,即自適應(yīng),包括圖像預(yù)處理、LBT變換、量化、自適應(yīng)預(yù)測、自適應(yīng)掃描和自適應(yīng)熵編碼[5],如圖1所示。

ck2-t1.gif

    JPEG XR除具有較強(qiáng)自適應(yīng)編碼能力外,最大不同就在于其采用LBT變換,既解決了JPEG的塊效應(yīng)問題,又避免DWT復(fù)雜算法,這是其相較前兩者最明顯的優(yōu)勢[6]。LBT包括2個(gè)子變換,分別為用于消除圖像塊效應(yīng)的圖像濾波變換(POT)和將圖像從空間域變換到頻域的圖像核心變換(PCT)[7]。

1.2 LBT的變換算子及其原理

    對于單通道圖像,LBT的2個(gè)子變換又包含若干個(gè)變換算子。其中,POT又分為2類,分別是4點(diǎn)濾波(Tpre4)和4×4濾波(T4mul4),其中T4mul4由5個(gè)變換算子構(gòu)成,分別是:

    (1)2×2哈達(dá)瑪濾波變換[8](Hadamard Transform),算子符號為THEnc

    (2)2點(diǎn)前向縮放,算子符號為TS;

    (3)2點(diǎn)前向旋轉(zhuǎn),算子符號為TR;

    (4)2×2前向旋轉(zhuǎn),算子符號為TOddOdd;

    (5)2×2哈達(dá)瑪變換,算子符號為TH。

    而Tpre4只包含上述的TS和TR,但它本身也有部分運(yùn)算[9]。

    PCT只有一種,具有3個(gè)變換算子,分別是:

    (1)2×2哈達(dá)瑪變換,算子符號為TH,與T4mul4的TH相同;

    (2)一維旋轉(zhuǎn)變換,算子符號為TOdd

    (3)二維旋轉(zhuǎn)變換,算子符號為TOddOdd,與T4mul4的TOddOdd不同。

1.3 LBT的變換在圖像上的分布

    在JPEG XR中,圖像若沒有被分割成瓦片(Tile)進(jìn)行處理,LBT操作范圍是整個(gè)圖像;若圖像被分割成Tile,那LBT操作范圍就是整個(gè)Tile,處理完一個(gè)Tile再去處理下一個(gè)[10]。為方便下文闡述,將圖像或Tile統(tǒng)稱為處理對象。其中,POT在處理對象邊緣進(jìn)行Tpre4,在其內(nèi)部進(jìn)行T4mul4;而PCT的操作范圍始終是整個(gè)處理對象[11],圖2是LBT的POT和PCT在處理對象上的分布示意圖。

ck2-t2.gif

2 FPGA時(shí)序特性的變換算子

2.1 與傳統(tǒng)變換的對比分析變換算子的封裝

    本文參考ITU編碼建議書LBT各個(gè)子變換偽代碼,提出了基于FPGA時(shí)序結(jié)構(gòu)的優(yōu)化與改進(jìn)。表1是建議書的TH算子偽代碼和FPGA時(shí)序特性的TH算子對比,Step代表FPGA狀態(tài)機(jī)中的一個(gè)狀態(tài),其后面的計(jì)算是該狀態(tài)內(nèi)的數(shù)據(jù)處理過程,而建議書偽代碼一行計(jì)算就代表一個(gè)步驟,可以發(fā)現(xiàn),F(xiàn)PGA時(shí)序特性下的TH算子運(yùn)算步數(shù)少于建議書偽代碼,這就減少了LBT變換運(yùn)算時(shí)間。

ck2-b1.gif

2.2 變換算子的封裝

    圖3是TH算子模塊,控制模塊將要進(jìn)行變換的系數(shù)送到輸入端口后向TH發(fā)送請求,TH收到請求接收數(shù)據(jù)向控制模塊發(fā)送應(yīng)答;TH變換完成將數(shù)據(jù)送到輸出端口,向控制模塊發(fā)送處理完成請求,控制模塊收到請求接收數(shù)據(jù)并向TH發(fā)送接收完成應(yīng)答。至此,TH變換任務(wù)完成,等待下一組變換數(shù)據(jù)輸入請求。

ck2-t3.gif

3 FPGA設(shè)計(jì)與邏輯分析

3.1 FPGA頂層模塊設(shè)計(jì)

    系統(tǒng)采用FPGA內(nèi)部ROM作為模擬圖像源,用MATLAB將圖4所示的6個(gè)64×64像素測試圖生成存儲初始化文件存放到ROM中。圖5是FPGA的頂層模塊設(shè)計(jì),包括模擬源、變換控制、RAM及通道控制和并轉(zhuǎn)串模塊。

ck2-t4.gif

ck2-t5.gif

3.2 LBT變換模塊設(shè)計(jì)

    在變換模塊中,又分為單RAM循環(huán)結(jié)構(gòu)的LBT變換控制器和RAM通道選擇器,后者根據(jù)變換控制器的通道控制指令對各個(gè)子變換與RAM之間的通信進(jìn)行交叉控制。變換控制器根據(jù)LBT的4個(gè)子變換(第一階段的POT和PCT、第二階段的POT和PCT)分為4個(gè)部分,每個(gè)部分都有一個(gè)指令來控制通道選擇器。因?yàn)镽AM讀寫是不能同時(shí)進(jìn)行的,所以要考慮RAM控制器對通道控制指令的交錯(cuò),即交叉對RAM進(jìn)行操作,因此不能同時(shí)打開RAM通道,圖6是RAM讀寫模塊對通道控制的時(shí)序分析,為了避免兩個(gè)控制模塊同時(shí)打開RAM通道,在寫模塊關(guān)閉通道后,讀模塊空等一個(gè)周期(狀態(tài))再打開RAM通道。

ck2-t6.gif

3.3 FPGA控制模塊工作流程

    圖7是POT讀模塊流程圖,按照先處理圖2中最上側(cè)Tpre4;再按每4行中先處理左邊2次Tpre4、中間的T4mul4、右邊2次Tpre4;最后再處理最下側(cè)Tpre4的先后順序從ROM中讀取圖像數(shù)據(jù)。POT讀模塊處理完4個(gè)Tpre4或16個(gè)T4mul4就會向POT寫模塊發(fā)送最后一個(gè)變換系數(shù)地址,后者接收到POT變換后的系數(shù),再按該地址逆序?qū)⒔Y(jié)果保存到RAM中。PCT讀模塊收到POT結(jié)束指令后,開始從RAM中按光柵掃描順序讀取4×4個(gè)系數(shù)進(jìn)行PCT變換,如圖8所示。PCT讀模塊處理完成后就會向PCT變換寫模塊發(fā)送第一個(gè)變換系數(shù)的地址,后者接收到PCT變換后的系數(shù)后,再按光柵掃描順序?qū)⒆儞Q結(jié)果保存到RAM,如圖9所示。

ck2-t7.gif

ck2-t8.gif

ck2-t9.gif

4 FPGA仿真與結(jié)果分析

4.1 FPGA在線仿真

    本文采用Signal Tap進(jìn)行FPGA設(shè)計(jì)驗(yàn)證,圖10是模擬源模塊部分?jǐn)?shù)據(jù)地址仿真,A中是第1到第4個(gè)系數(shù),這也是第一次Tpre4的變換系數(shù);B中是第一次T4mul4的16個(gè)變換系數(shù)。

ck2-t10.gif

    以TR算子為例,圖11是POT的TR算子變換仿真圖,A中是控制模塊發(fā)來的輸入請求和TR算子的應(yīng)答,B中是TR算子變換完成發(fā)出的請求和控制模塊返回的應(yīng)答。

ck2-t11.gif

    圖12是RAM控制模塊工作仿真,A中是T4mul4模塊向RAM寫控制模塊發(fā)送的寫請求后,模塊打開RAM通道控制器,在B中將POT變換結(jié)果寫入RAM,在C中將通道關(guān)閉。通過Signal Tap進(jìn)行仿真驗(yàn)證,表明FPGA時(shí)序約束下的LBT變換受控。

ck2-t12.gif

4.2 LBT變換結(jié)果對比分析

    第二次PCT變換完成,整個(gè)LBT變換結(jié)束,此時(shí)RAM中存放最終的變換結(jié)果,并轉(zhuǎn)串模塊從RAM中讀取且以9 600 b/s的速度通過CP2102發(fā)送到上位機(jī)串口調(diào)試助手;將數(shù)據(jù)保存為txt文件,使用MATLAB對數(shù)據(jù)進(jìn)行重構(gòu)。圖13各分圖中,左圖是測試圖MATLAB的LBT仿真結(jié)果,右圖是FPGA的LBT處理結(jié)果。測試結(jié)果表明,F(xiàn)PGA的LBT變換結(jié)果與MATLAB仿真結(jié)果相似, FPGA時(shí)序結(jié)構(gòu)的LBT變換基本實(shí)現(xiàn)。

ck2-t13.gif

5 結(jié)論

    本文提出了一種基于FPGA時(shí)序特性的單RAM循環(huán)存儲結(jié)構(gòu)的LBT變換算法。相較于傳統(tǒng)的線性提升結(jié)構(gòu),該算法能對變換過程進(jìn)行實(shí)時(shí)控制,利用混合狀態(tài)機(jī)按時(shí)序進(jìn)行,避免出現(xiàn)碼流混亂,最終得到了LBT變換結(jié)果。但由于該設(shè)計(jì)的系數(shù)精度不夠,而且僅支持單通道圖像變換,通過提高變換系數(shù)的精度和實(shí)現(xiàn)多通道圖像(彩色圖像)變換以提高LBT變換質(zhì)量與速度將是下一步的研究方向。

參考文獻(xiàn)

[1] 祁志恒,姜喆,張為.基于ADV212的雷達(dá)圖像壓縮傳輸系統(tǒng)[J].電子技術(shù)應(yīng)用,2015,41(11):78-80,84.

[2] 張慧慧.基于FPGA的JPEG壓縮編碼器的設(shè)計(jì)與實(shí)現(xiàn)[D].太原:中北大學(xué),2017.

[3] 劉致遠(yuǎn),陳耀武.基于主觀質(zhì)量的JPEG XR量化參數(shù)選擇[J].計(jì)算機(jī)工程,2014,40(1):239-245.

[4] HORVATH K,STOGNER H,UHL A.Effects of JPEG XR compression settings on iris recognition systems[C].Computer Analysis of Images and Patterns,International Conference,Caip 2011,Seville,Spain,August 29-31,2011,Proceedings.DBLP,2011:73-80.

[5] PAN C,CHIEN C,CHAO W,et al.Architecture design of full HD JPEG XR encoder for digital photography applications[J].IEEE Transactions on Consumer Electronics,2008,54(3):963-971.

[6] 鄔春明,焦龍龍,張金強(qiáng).基于圖像紋理特征的JPEG-XR幀內(nèi)預(yù)測技術(shù)[J].東北師大學(xué)報(bào)(自然科學(xué)),2016(1):54-59.

[7] IIDA K,KOBAYASHI H,KIYA H.Secure identification based on fuzzy commitment scheme for JPEG XR images[C].Signal Processing Conference.IEEE,2016:968-972.

[8] ZHONG G,CHENG L,CHEN H.Integer lapped biorthogonal transform[C].International Conference on Image Processing.IEEE,2001:471-474.

[9] MALVAR H S.Lapped biorthogonal transforms for transform coding with reduced blocking and ringing artifacts[C].IEEE International Conference on Acoustics,Speech,and Signal Processing.IEEE,1997:2421-2424.

[10] YU L.Evaluating and implementing JPEG XR optimized for video surveillance[D].Sweden:Linkopings University,2010.

[11] SUZUKI T,YOSHIDA T.Lower complexity lifting structures for hierarchical lapped transforms highly compatible with JPEG XR standard[J].IEEE Transactions on Circuits & Systems for Video Technology,2017,27(12):2652-2660.



作者信息:

顧澤凌,楊明遠(yuǎn),丁紅暉,衡  燕

(上海無線電設(shè)備研究所,上海200090)

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。