文獻標識碼: 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.
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所示。
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在處理對象上的分布示意圖。
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變換運算時間。
2.2 變換算子的封裝
圖3是TH算子模塊,控制模塊將要進行變換的系數(shù)送到輸入端口后向TH發(fā)送請求,TH收到請求接收數(shù)據(jù)向控制模塊發(fā)送應答;TH變換完成將數(shù)據(jù)送到輸出端口,向控制模塊發(fā)送處理完成請求,控制模塊收到請求接收數(shù)據(jù)并向TH發(fā)送接收完成應答。至此,TH變換任務完成,等待下一組變換數(shù)據(jù)輸入請求。
3 FPGA設計與邏輯分析
3.1 FPGA頂層模塊設計
系統(tǒng)采用FPGA內部ROM作為模擬圖像源,用MATLAB將圖4所示的6個64×64像素測試圖生成存儲初始化文件存放到ROM中。圖5是FPGA的頂層模塊設計,包括模擬源、變換控制、RAM及通道控制和并轉串模塊。
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通道。
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所示。
4 FPGA仿真與結果分析
4.1 FPGA在線仿真
本文采用Signal Tap進行FPGA設計驗證,圖10是模擬源模塊部分數(shù)據(jù)地址仿真,A中是第1到第4個系數(shù),這也是第一次Tpre4的變換系數(shù);B中是第一次T4mul4的16個變換系數(shù)。
以TR算子為例,圖11是POT的TR算子變換仿真圖,A中是控制模塊發(fā)來的輸入請求和TR算子的應答,B中是TR算子變換完成發(fā)出的請求和控制模塊返回的應答。
圖12是RAM控制模塊工作仿真,A中是T4mul4模塊向RAM寫控制模塊發(fā)送的寫請求后,模塊打開RAM通道控制器,在B中將POT變換結果寫入RAM,在C中將通道關閉。通過Signal Tap進行仿真驗證,表明FPGA時序約束下的LBT變換受控。
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)。
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)