FPGA的多级小波逆变换实时系统设计与实现

时间:2011-07-30

  由JPEG工作组制定的新一代静止图像压缩标准JPEG2000,引入了小波变换和EBCOT编码的全新设计结构,使得JPEG2000拥有压缩比高、支持有损和无损压缩、码流随机存取及处理、逐渐传输显示解码等优点。随着多媒体技术的不断运用,图像压缩要求更高的性能和新的特征。为了满足静止图像在特殊领域编码的需求,JPEG2000作为一个新的标准处于不断的发展中。它不仅希望提供优于现行标准的失真率和个人图像压缩性能,而且还可以提供一些现行标准不能有效地实现甚至在很多情况下完全无法实现的功能和特性。这种新的标准更加注重图像的可伸缩表述。所以就可以在任意给定的分辨率级别上来提供一个低质量的图像恢复,或者在要求的分辨率和信噪比的情况下提取图像的部分区域。

  1 离散小波变换

  1.1 离散小波变换

  小波分析是目前数学中一个迅速发展的新领网域,它同时具有理论深刻和应用十分广泛的双重意义。小波变换的概念是由法国从事石油信号处理的工程师J.Morlet在1974年首先提出的,通过物理的直观和信号处理的实际需要经验的建立了反演公式。小波分析在时域和频域同时具有良好的局部化性质,是处理非平稳信号的有力工具。它的多分辨率分析是JPEG2000标准中进行渐进式压缩的基础。

  在JPEG中,离散余弦变换将图像压缩为8×8 的小块,然后依次放入文件中,这种算法靠丢弃频率信息实现压缩,因而图像的压缩率越高,频率信息被丢弃的越多。在极端情况下,JPEG图像只保留了反映图像外貌的基本信息,精细的图像细节都损失了。小波变换是现代谱分析工具,他既能考察局部时域过程的频域特征,又能考察局部频域过程的时域特征,因此即使对于非平稳过程,处理起来也得心应手。离散小波变换(Discrete Wavelet Transform,DWT)由连续小波ψu,s(t)对尺度参数s和位置参数u离散化得到,即取,m,n∈Z,从而得到离散小波

  在实际应用中,为了方便计算机处理,在式(1)的基础上,取a0=2,b0=1,从而得到二进小波

  在实际应用中,采用传统卷积方式实现的代小波存在一些明显缺点:

  (1)信号经过小波变换后产生的浮点数不能由有限字长的计算机地重构。

  (2)图像的尺寸大小有限制,并不能对所有尺寸的图像进行变换处理。

  (3)对内存需求量大,不适宜DSP、FPGA等硬件实现。

  为了克服这些问题并将小波普适化,目前工程应用中主要借用提升算法直接在空间域上计算小波系数的方式来构造。提升方法既保持了原有的小波特性,又克服平移伸缩不变性所带来的局限,而且还能摆脱传统的滤波器和傅里叶的频域概念,保证在高倍数据压缩情况时的图像质量。

  1.2 CDF9/7小波提升算法

  JPEG2000标准给出两种双正交小波滤波器,即有损压缩和无损压缩,前者采用CDF9/7小波,后者采用5/3小波。CDF9/7小波是图像压缩的滤波器,自然图像压缩性能好于5/3小波。提升结构和实现步骤分别如图1所示。

  对于CDF9/7小波,取(α,β,γ,δ,ζ)=(1.586 134 342,0.052 980 118,0.882 811 076,0.443 506 852,1.149 604 398)。

  2 CDF9/7小波逆变换的VLSI实现

  2.1 整体方案分析

  离散小波逆变换模块处于JPEG2000解码系统,它负责将前端EBCOT解码得到的数据进行小波逆变换处理以获得重构图像信息。由于逆变换模块的数据并不如正变换模块一样直接来自外部数据总线,而是来自前端的EBCOT解码数据,因此既不能用协议的方式规定输入数据的顺序,也不能保证EBCOT解码数据等时间间隔均匀输出。

  由于连续小波基能够消除图像的方块效应,因此为了降低高倍压缩时各编码块之间的边际效应,在满足工程实现要求的同时提高压缩质量,一般需要选择尽可能大的图像块进行处理。显然,这受限于原始图像本身的大小和存储器的大小。

  2.2 整体方案设计

  小波逆变换需要在接收到完整的一帧数据之后才能启动,而且对于N个像素点的图像,完成JPEG2000解码系统中的3层小波逆变换处理,需要M=N/16+N/16+N/4+N/4+N+N=2.625N个时钟周期。为了降低系统功耗,本设计并不采用倍频实现,而提出了一种双路并行的实现结构,其整体方案粗略结构如图2所示。

  图2中箭头指示数据流向,箭头中的数字表示数据宽度,2对片外存储器采用乒乓方式轮询切换。本方案首先使用两路并行的计算单元完成前3列2行逆变换处理,这期间的数据交替的在IRAM1和IR-AM3或者IRAM2和IRAM4之间存取;然后再使用第3个独立的计算单元(ILWC3)完成剩余的小波逆变换处理,处理完毕的数据。由于单个小波系数位宽为18 bit,在前3列2行逆变换处理过程中,每次读取的2个小波系数可以分别提供给ILWC1和ILWC2并行处理,在层小波行逆变换时则由一个二通道选择器对数据的高、低18 bit位进行选择分时提供给ILWC3。数据组织模块(Iogz)的功能就是将ILWC1和ILWC2这两个处理模块完成的行、列变换数据进行合并重组,以便对片外RAM进行读写的36 bit外部总线数据总是由两个18bit小波系数分别以总线数据的高18bit和低18 bit的形式组合而成。

  基于以上实现方案,对于N个像素点的图像,首先由ILWC1和ILWC2完成3列2行逆变换需要M1=N/32+N/32+N/8+N/8+N/2=0.812 5N个时钟周期,然后由ILWC3独立一层行变换需要M2=N个时钟周期。因此,两个处理过程所需的总时间M=M1+M2=1.812 5N不超出允许的存储器占用上限,能够保证对连续输入的小波系数进行实时的处理。4个存储器轮询状态和FPGA的功能状态参见图3。

  2.3 计算单元ILWC设计

  由图4所示,计算单元对高低频系数的伸缩扩展共用一个乘法器,因此平均每个小波系数所需进行的乘法和加法次数分别为5次和8次,相对于卷积运算的9次和14次,计算复杂度显然是降低了很多。

  3 软件及硬件资源的选用

  3.1 工作环境

  在ISE 9.1开发平台之上,使用VHDL语言(93版本)编程实现。系统采用Synplify8.1进行综合,使用Modelsim SE 6.0d进行仿真验证。在没有添加任何约束的情况下,其性能参数如表1所示。

  选用Virtex-Ⅱ系列的芯片原因在于:(1)软件开发工具友好,开发容易,性价比高;(2)低功耗、低工作电压,满足实时设备的要求;(3)仿真可靠,几乎完全接近实际情况;(4)可重复擦写型FPGA,设计灵活,适用于方案改进。

  3.2 实验结果

  本系统采用8位64×4 096的原始图像经过3层定点化小波处理所得的14位小波系数为测试数据,实验处理结果与VC软件定点化逆小波处理结果一致,图5为本系统工作整体仿真图。系统在同步信号Syn低电平有效期间,根据切换信号Exg的高、低电平选择片外存储器进行乒乓操作。首先数据由Data输入到片外存储器,作为逆变换的测试数据,处理完成之后由Result端输出,并以一个高电平脉冲信号Endn标记处理完毕。

  4 结束语

  本文讨论下JPEG2000解码系统中的CDF9/7小波逆变换模块的设计要求,借助提升算法原位操作的特点,所提出的双路并行的实时处理方案无需任何内部存储空间,而外部存储空间的大小完全取决于处理图像块尺寸的大小。在视频及卫星遥感图像这类实时性要求非常强的图像处理中,本系统能很好地满足应用需求。


  
上一篇:一种电力线窄带通信报文压缩算法的实现
下一篇:简介DSP应用于线切割机床的脉冲电源的有关设计

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料