c++ hough变换代码_FPGA时序结构的LBT变换控制器设计

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

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

1 JPEG XR的LBT原理与分析

1.1 LBT变换的组成

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

0380f2cb9bd018073b3ce7042a88c46d.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在处理对象上的分布示意图。

39e8f1106cbfc7123e52f8a8855613c7.gif

2 FPGA时序特性的变换算子

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

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

84c9843c1f74e009ef0bd5a3c0974d3f.gif

2.2 变换算子的封装

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

bd39b2681e3dfb18d87e2db12bcfe94b.gif

3 FPGA设计与逻辑分析

3.1 FPGA顶层模块设计

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

b9a50fe99d6c935b3e5896101425ae77.gif

3.2 LBT变换模块设计

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

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所示。

01ac3e73e15a34f3259a2491de9e9f4d.gif 9c200d893d40ca3f04bfc0b393724818.gif eb2968fa0b664c1c1fb60c33b6efc9e3.gif

4 FPGA仿真与结果分析

4.1 FPGA在线仿真

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

6e08edb1bee4c9a77248e3cb12f77ab4.gif

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

3c7b79bfaba148d9f3d59a30439d5d57.gif

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

a177f72f3ed893ff662f5f2978c95f56.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变换基本实现。

c1580b973ff5af8cef6eb2c0f9f8f169.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)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值