《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > FPGA時序結構的LBT變換控制器設計
FPGA時序結構的LBT變換控制器設計
2019年電子技術應用第2期
顧澤凌,楊明遠,丁紅暉,衡 燕
上海無線電設備研究所,上海200090
摘要: JPEG XR編碼算法中重疊雙正交變換(LBT)傳統(tǒng)的FPGA實現(xiàn)都是基于線性提升結構,無時序約束,存在亞穩(wěn)態(tài)、碼流不受控等問題。為此,設計了一種基于FPGA時序結構的LBT變換控制器,該設計采用混合狀態(tài)機,將LBT變換算子設計為時序控制結構的數(shù)據(jù)處理模塊。數(shù)據(jù)處理模塊通過握手信號與前后控制模塊進行指令通信,并根據(jù)指令進行相應的數(shù)據(jù)處理。為了節(jié)省FPGA內部存儲空間,該設計采用單RAM循環(huán)結構,由通道選擇器來切換各個控制模塊與RAM之間的通道。各個控制模塊根據(jù)數(shù)據(jù)處理模塊反饋的應答指令實時計算圖像數(shù)據(jù)的地址,交叉對RAM進行讀寫操作。實驗結果表明,該控制器實現(xiàn)了對LBT變換的FPGA時序約束,處理后的圖像與MATLAB仿真圖像基本一致,達到了預期目的。
中圖分類號: TN958
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.182703
中文引用格式: 顧澤凌,楊明遠,丁紅暉,等. FPGA時序結構的LBT變換控制器設計[J].電子技術應用,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體,隨著社會科技進步,人們對圖像質量要求越來越高,尤其是在航空航天、視頻安防等領域,對圖像傳輸與存儲[1]的要求更高。因此在提高傳輸帶寬的同時,對圖像壓縮的相關研究也同步開展,尤其是JPEG系列的發(fā)展[2]。2009年,JPEG XR(JPEG eXtended Range)正式發(fā)布[3],其采用重疊雙正交變換(LBT)算法,復雜度與JPEG的離散余弦變換(DCT)相當,而還原后圖像質量卻能與采用較為復雜的離散小波變換(DWT)的JPEG 2000相媲美[4],因而得到了廣泛研究,具有很好的應用前景。

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

1 JPEG XR的LBT原理與分析

1.1 LBT變換的組成

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

ck2-t1.gif

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

1.2 LBT的變換算子及其原理

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

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

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

    (3)2點前向旋轉,算子符號為TR

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

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

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

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

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

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

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

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

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

ck2-t2.gif

2 FPGA時序特性的變換算子

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

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

ck2-b1.gif

2.2 變換算子的封裝

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

ck2-t3.gif

3 FPGA設計與邏輯分析

3.1 FPGA頂層模塊設計

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

ck2-t4.gif

ck2-t5.gif

3.2 LBT變換模塊設計

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

ck2-t6.gif

3.3 FPGA控制模塊工作流程

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

ck2-t7.gif

ck2-t8.gif

ck2-t9.gif

4 FPGA仿真與結果分析

4.1 FPGA在線仿真

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

ck2-t10.gif

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

ck2-t11.gif

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

ck2-t12.gif

4.2 LBT變換結果對比分析

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

ck2-t13.gif

5 結論

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

參考文獻

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

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

[3] 劉致遠,陳耀武.基于主觀質量的JPEG XR量化參數(shù)選擇[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] 鄔春明,焦龍龍,張金強.基于圖像紋理特征的JPEG-XR幀內預測技術[J].東北師大學報(自然科學),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.



作者信息:

顧澤凌,楊明遠,丁紅暉,衡  燕

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

此內容為AET網站原創(chuàng),未經授權禁止轉載。