《电子技术应用》
您所在的位置:首页 > 可编程逻辑 > 设计应用 > FPGA时序结构的LBT变换控制器设计
FPGA时序结构的LBT变换控制器设计
2019年电子技术应用第2期
顾泽凌,杨明远,丁红晖,衡 燕
上海无线电设备研究所,上海200090
摘要: JPEG XR编码算法中重叠双正交变换(LBT)传统的FPGA实现都是基于线性提升结构,无时序约束,存在亚稳态、码流不受控等问题。为此,设计了一种基于FPGA时序结构的LBT变换控制器,该设计采用混合状态机,将LBT变换算子设计为时序控制结构的数据处理模块。数据处理模块通过握手信号与前后控制模块进行指令通信,并根据指令进行相应的数据处理。为了节省FPGA内部存储空间,该设计采用单RAM循环结构,由通道选择器来切换各个控制模块与RAM之间的通道。各个控制模块根据数据处理模块反馈的应答指令实时计算图像数据的地址,交叉对RAM进行读写操作。实验结果表明,该控制器实现了对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 引言

    图像是信息传输的重要载体,随着社会科技进步,人们对图像质量要求越来越高,尤其是在航空航天、视频安防等领域,对图像传输与存储[1]的要求更高。因此在提高传输带宽的同时,对图像压缩的相关研究也同步开展,尤其是JPEG系列的发展[2]。2009年,JPEG XR(JPEG eXtended Range)正式发布[3],其采用重叠双正交变换(LBT)算法,复杂度与JPEG的离散余弦变换(DCT)相当,而还原后图像质量却能与采用较为复杂的离散小波变换(DWT)的JPEG 2000相媲美[4],因而得到了广泛研究,具有很好的应用前景。

    传统基于FPGA的LBT变换都是线性提升结构,没有时序约束,系数变换存在亚稳态,数据码流不受控制,而且线性提升结构存在大量的乘法器、除法器和移位寄存器,对FPGA硬件资源消耗极大。本文充分利用FPGA的时序约束特性,将LBT的变换算子时序化,通过握手信号与前后控制模块通信;为节省FPGA内部空间,设计了一种单RAM循环结构,使用通道选择器,根据控制指令,在不同的变换模块工作时,打开其与RAM之间的通道并关闭其他通道,根据变换顺序对RAM进行循环交叉读写,避免变换系数出现混乱;控制模块根据变换顺序,实时计算系数地址进行读写操作,该设计实现了FPGA时序特性的LBT变换。

1 JPEG XR的LBT原理与分析

1.1 LBT变换的组成

    JPEG XR编码流程与JPEG和JPEG2000类似,但其可根据图像内容实时调整处理算法,即自适应,包括图像预处理、LBT变换、量化、自适应预测、自适应扫描和自适应熵编码[5],如图1所示。

ck2-t1.gif

    JPEG XR除具有较强自适应编码能力外,最大不同就在于其采用LBT变换,既解决了JPEG的块效应问题,又避免DWT复杂算法,这是其相较前两者最明显的优势[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统称为处理对象。其中,POT在处理对象边缘进行Tpre4,在其内部进行T4mul4;而PCT的操作范围始终是整个处理对象[11],图2是LBT的POT和PCT在处理对象上的分布示意图。

ck2-t2.gif

2 FPGA时序特性的变换算子

2.1 与传统变换的对比分析变换算子的封装

    本文参考ITU编码建议书LBT各个子变换伪代码,提出了基于FPGA时序结构的优化与改进。表1是建议书的TH算子伪代码和FPGA时序特性的TH算子对比,Step代表FPGA状态机中的一个状态,其后面的计算是该状态内的数据处理过程,而建议书伪代码一行计算就代表一个步骤,可以发现,FPGA时序特性下的TH算子运算步数少于建议书伪代码,这就减少了LBT变换运算时间。

ck2-b1.gif

2.2 变换算子的封装

    图3是TH算子模块,控制模块将要进行变换的系数送到输入端口后向TH发送请求,TH收到请求接收数据向控制模块发送应答;TH变换完成将数据送到输出端口,向控制模块发送处理完成请求,控制模块收到请求接收数据并向TH发送接收完成应答。至此,TH变换任务完成,等待下一组变换数据输入请求。

ck2-t3.gif

3 FPGA设计与逻辑分析

3.1 FPGA顶层模块设计

    系统采用FPGA内部ROM作为模拟图像源,用MATLAB将图4所示的6个64×64像素测试图生成存储初始化文件存放到ROM中。图5是FPGA的顶层模块设计,包括模拟源、变换控制、RAM及通道控制和并转串模块。

ck2-t4.gif

ck2-t5.gif

3.2 LBT变换模块设计

    在变换模块中,又分为单RAM循环结构的LBT变换控制器和RAM通道选择器,后者根据变换控制器的通道控制指令对各个子变换与RAM之间的通信进行交叉控制。变换控制器根据LBT的4个子变换(第一阶段的POT和PCT、第二阶段的POT和PCT)分为4个部分,每个部分都有一个指令来控制通道选择器。因为RAM读写是不能同时进行的,所以要考虑RAM控制器对通道控制指令的交错,即交叉对RAM进行操作,因此不能同时打开RAM通道,图6是RAM读写模块对通道控制的时序分析,为了避免两个控制模块同时打开RAM通道,在写模块关闭通道后,读模块空等一个周期(状态)再打开RAM通道。

ck2-t6.gif

3.3 FPGA控制模块工作流程

    图7是POT读模块流程图,按照先处理图2中最上侧Tpre4;再按每4行中先处理左边2次Tpre4、中间的T4mul4、右边2次Tpre4;最后再处理最下侧Tpre4的先后顺序从ROM中读取图像数据。POT读模块处理完4个Tpre4或16个T4mul4就会向POT写模块发送最后一个变换系数地址,后者接收到POT变换后的系数,再按该地址逆序将结果保存到RAM中。PCT读模块收到POT结束指令后,开始从RAM中按光栅扫描顺序读取4×4个系数进行PCT变换,如图8所示。PCT读模块处理完成后就会向PCT变换写模块发送第一个变换系数的地址,后者接收到PCT变换后的系数后,再按光栅扫描顺序将变换结果保存到RAM,如图9所示。

ck2-t7.gif

ck2-t8.gif

ck2-t9.gif

4 FPGA仿真与结果分析

4.1 FPGA在线仿真

    本文采用Signal Tap进行FPGA设计验证,图10是模拟源模块部分数据地址仿真,A中是第1到第4个系数,这也是第一次Tpre4的变换系数;B中是第一次T4mul4的16个变换系数。

ck2-t10.gif

    以TR算子为例,图11是POT的TR算子变换仿真图,A中是控制模块发来的输入请求和TR算子的应答,B中是TR算子变换完成发出的请求和控制模块返回的应答。

ck2-t11.gif

    图12是RAM控制模块工作仿真,A中是T4mul4模块向RAM写控制模块发送的写请求后,模块打开RAM通道控制器,在B中将POT变换结果写入RAM,在C中将通道关闭。通过Signal Tap进行仿真验证,表明FPGA时序约束下的LBT变换受控。

ck2-t12.gif

4.2 LBT变换结果对比分析

    第二次PCT变换完成,整个LBT变换结束,此时RAM中存放最终的变换结果,并转串模块从RAM中读取且以9 600 b/s的速度通过CP2102发送到上位机串口调试助手;将数据保存为txt文件,使用MATLAB对数据进行重构。图13各分图中,左图是测试图MATLAB的LBT仿真结果,右图是FPGA的LBT处理结果。测试结果表明,FPGA的LBT变换结果与MATLAB仿真结果相似, FPGA时序结构的LBT变换基本实现。

ck2-t13.gif

5 结论

    本文提出了一种基于FPGA时序特性的单RAM循环存储结构的LBT变换算法。相较于传统的线性提升结构,该算法能对变换过程进行实时控制,利用混合状态机按时序进行,避免出现码流混乱,最终得到了LBT变换结果。但由于该设计的系数精度不够,而且仅支持单通道图像变换,通过提高变换系数的精度和实现多通道图像(彩色图像)变换以提高LBT变换质量与速度将是下一步的研究方向。

参考文献

[1] 祁志恒,姜喆,张为.基于ADV212的雷达图像压缩传输系统[J].电子技术应用,2015,41(11):78-80,84.

[2] 张慧慧.基于FPGA的JPEG压缩编码器的设计与实现[D].太原:中北大学,2017.

[3] 刘致远,陈耀武.基于主观质量的JPEG XR量化参数选择[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)