文獻標識碼: 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體,隨著社會科技進步,,人們對圖像質(zhì)量要求越來越高,,尤其是在航空航天、視頻安防等領域,,對圖像傳輸與存儲[1]的要求更高,。因此在提高傳輸帶寬的同時,對圖像壓縮的相關研究也同步開展,,尤其是JPEG系列的發(fā)展[2],。2009年,,JPEG XR(JPEG eXtended Range)正式發(fā)布[3],其采用重疊雙正交變換(LBT)算法,,復雜度與JPEG的離散余弦變換(DCT)相當,,而還原后圖像質(zhì)量卻能與采用較為復雜的離散小波變換(DWT)的JPEG 2000相媲美[4],因而得到了廣泛研究,,具有很好的應用前景,。
傳統(tǒng)基于FPGA的LBT變換都是線性提升結構,沒有時序約束,,系數(shù)變換存在亞穩(wěn)態(tài),,數(shù)據(jù)碼流不受控制,而且線性提升結構存在大量的乘法器,、除法器和移位寄存器,,對FPGA硬件資源消耗極大。本文充分利用FPGA的時序約束特性,,將LBT的變換算子時序化,,通過握手信號與前后控制模塊通信;為節(jié)省FPGA內(nèi)部空間,,設計了一種單RAM循環(huán)結構,,使用通道選擇器,根據(jù)控制指令,,在不同的變換模塊工作時,,打開其與RAM之間的通道并關閉其他通道,,根據(jù)變換順序?qū)AM進行循環(huán)交叉讀寫,避免變換系數(shù)出現(xiàn)混亂;控制模塊根據(jù)變換順序,,實時計算系數(shù)地址進行讀寫操作,,該設計實現(xiàn)了FPGA時序特性的LBT變換,。
1 JPEG XR的LBT原理與分析
1.1 LBT變換的組成
JPEG XR編碼流程與JPEG和JPEG2000類似,,但其可根據(jù)圖像內(nèi)容實時調(diào)整處理算法,即自適應,,包括圖像預處理,、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,在其內(nèi)部進行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)內(nè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內(nèi)部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ù),再按該地址逆序?qū)⒔Y果保存到RAM中,。PCT讀模塊收到POT結束指令后,,開始從RAM中按光柵掃描順序讀取4×4個系數(shù)進行PCT變換,如圖8所示,。PCT讀模塊處理完成后就會向PCT變換寫模塊發(fā)送第一個變換系數(shù)的地址,,后者接收到PCT變換后的系數(shù)后,再按光柵掃描順序?qū)⒆儞Q結果保存到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ā)送到上位機串口調(diào)試助手,;將數(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變換質(zhì)量與速度將是下一步的研究方向。
參考文獻
[1] 祁志恒,,姜喆,,張為.基于ADV212的雷達圖像壓縮傳輸系統(tǒng)[J].電子技術應用,2015,,41(11):78-80,,84.
[2] 張慧慧.基于FPGA的JPEG壓縮編碼器的設計與實現(xiàn)[D].太原:中北大學,2017.
[3] 劉致遠,,陳耀武.基于主觀質(zhì)量的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幀內(nèi)預測技術[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)