当前位置:首页 > EDA > 电子设计自动化
[导读]针对JPEG2000解码系统中的核心处理模块——离散小波逆变换(IDWT),提出了一种基于FPGA的多级小波逆变换的高速、实时的硬件解决方案。仿真验证表明本方案能够满足连续输入的数据进行实时处理的要求,并且所设计的系统具有功耗低、成本低等优点。

由JPEG工作组制定的新一代静止图像压缩标准JPEG2000,引入了小波变换和EBCOT编码的全新设计结构,使得JPEG2000拥有压缩比高、支持有损和无损压缩、码流随机存取及处理、逐渐传输显示解码等优点。由于受实现复杂度高、成本控制困难等因数制约,未能得到广泛应用。据统计,JPEG2000实现复杂度约是目前主流JPEG实现的30倍。因此,一种廉价、有效、实时的解决方案,对于JPEG2000的推广应用较为有利。本文针对JPEG2000解码系统中核心处理模块——离散小波逆变换(IDWT),采用提升小波算法,提出了一种双路并行的实现结构,并基于Xilinx公司低功耗的xc2v3000-4-fg676芯片进行布局布线仿真验证表明,该方案是一种高速、实时的硬件解决方案,能较好地解决JPEG200 0解码系统中对于小波逆变换实时处理的瓶颈。

1 离散小波变换
1.1 离散小波变换
   
小波理论是在调和分析的数学理论上发展起来的一个新的应用数学分支,它和傅里叶变换(Fourier)分析具有密切联系,但却克服了Fo-urier在时域里局部分析能力的缺陷,能够同时提供较精确的时域定位和较精确的频域定位,是一种可变分辨率分析。小波分析在时域和频域同时具有良好的局部化性质,是处理非平稳信号的有力工具。它的多分辨率分析是JPEG2000标准中进行渐进式压缩的基础。
    离散小波变换(Discrete Wavelet Transform,DWT)由连续小波ψu,s(t)对尺度参数s和位置参数u离散化得到,即取,m,n∈Z,从而得到离散小波
   
    在实际应用中,为了方便计算机处理,在式(1)的基础上,取a0=2,b0=1,从而得到二进小波
   
    在实际应用中,采用传统卷积方式实现的第一代小波存在一些明显缺点:
    (1)信号经过小波变换后产生的浮点数不能由有限字长的计算机精确地重构。
    (2)图像的尺寸大小有限制,并不能对所有尺寸的图像进行变换处理。
    (3)对内存需求量大,不适宜DSP、FPGA等硬件实现。
    为了克服这些问题并将小波普适化,目前工程应用中主要借用提升算法(Lifting Scheme)直接在空间域上计算小波系数的方式来构造。提升方法既保持了原有的小波特性,又克服平移伸缩不变性所带来的局限,而且还能摆脱传统的滤波器和傅里叶的频域概念,保证在高倍数据压缩情况时的图像质量。
1.2 CDF9/7小波提升算法
   
JPEG2000标准给出两种双正交小波滤波器,即有损压缩和无损压缩,前者采用CDF9/7小波,后者采用5/3小波。CDF9/7小波是图像压缩的首选滤波器,自然图像压缩性能好于5/3小波。因此本论文选择CDF9/7小波进行提升格式小波变换硬件设计,其提升结构和实现步骤分别如图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解码数据等时间间隔均匀输出,所以在前端EBCOT模块和离散小波反变换模块之间需要使用存储器进行缓存。
    由于连续小波基能够消除图像的方块效应,因此为了降低高倍压缩时各编码块之间的边际效应,在满足工程实现要求的同时提高压缩质量,一般需要选择尽可能大的图像块进行处理。显然,这受限于原始图像本身的大小和存储器的大小。为避免小波变换的图像尺寸受存储器的大小限制,同时避免使用昂贵的大内存FPGA芯片,本设计中选择使用片外存储器缓存接收到的数据帧。
2.2 整体方案设计
   
小波逆变换需要在接收到完整的一帧数据之后才能启动,而且对于N个像素点的图像,完成JPEG2000解码系统中的3层小波逆变换处理,需要M=N/16+N/16+N/4+N/4+N+N=2.625N个时钟周期。为了降低系统功耗,本设计并不采用倍频实现,而提出了一种双路并行的实现结构,其整体方案粗略结构如图2所示。


    图2中箭头指示数据流向,箭头中的数字表示数据宽度,2对片外存储器采用乒乓方式轮询切换。本方案首先使用两路并行的核心计算单元(ILWC1和ILWC2)完成前3列2行逆变换处理(第3层小波逆变换、第2层小波逆变换和第1层小波列逆变换),这期间的数据交替的在IRAM1和IR-AM3或者IRAM2和IRAM4之间存取;然后再使用第3个独立的核心计算单元(ILWC3)完成剩余的最后一次小波逆变换处理(第一层小波行逆变换),处理完毕的数据。由于单个小波系数位宽为18 bit(4 bit小数位确保精度要求),因此片外存储器每个36 bit的存储单元中可以同时存放两个小波系数。在前3列2行逆变换处理过程中,每次读取的2个小波系数可以分别提供给ILWC1和ILWC2并行处理,在第一层小波行逆变换时则由一个二通道选择器(MUX2)对数据的高、低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不超出允许的存储器占用上限(2N),能够保证对连续输入的小波系数进行实时的处理。4个存储器轮询状态和FPGA的功能状态参见图3。


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



3 软件及硬件资源的选用
3.1 工作环境

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

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

最近为什么越来越多的研究开始利用FPGA作为CNN加速器?FPGA与CNN的相遇究竟能带来什么神奇效果呢?原来,FPGA拥有大量的可编程逻辑资源,相对于GPU,它的可重构性以及高功耗能效比的优点,是GPU无法比拟的;同时...

关键字: FPGA 可编程逻辑资源 GPU

FPGA的应用领域包罗万象,我们今天来看看在音乐科技领域及医疗照护的智能巧思。

关键字: FPGA 科技领域 智能

强大的产品可降低信号噪音并提高分辨率与动态

关键字: Spectrum仪器 数字化仪 FPGA

最近某项目采用以太网通信,实践起来有些奇怪,好像设计成只能应答某类计算机的ICMP(ping)命令, 某类计算机指的是Windows特定系统,其他系统发送ping都不能正确识别。

关键字: 嵌入式Linux FPGA 协议

近两年,国外厂商的FPGA芯片价格飙升,由于价格,货期,出口管制等多方面因素的影响,很多公司都在寻找FPGA国产化替代方案。我工作中正在使用的几款芯片也面临停产的风险,用一片少一片,了解到国产FPGA发展的也不错,完全自...

关键字: FPGA 芯片 EDA

大家好,我是鲏。认识我的朋友都知道,我是一个实践派,相比研究枯燥的理论知识,我更喜欢做自己想做的项目,用技术来实现自己的想法的感觉真的很棒。所以从大学期间一直到现在,除了工作中的项目外,我依然保持着自己做项目的习惯,有坚...

关键字: 系统设计 技术选型 需求分析

本篇是FPGA之旅设计的第十二例,在前面的例程中,完成了DS18B20温度传感器数据的采集,并且将采集到的数据显示在数码管上。由于本例将对温湿度传感器DHT11进行采集,而且两者的数据采集过程类似,所以可以参考一下前面的...

关键字: FPGA DS18B20温度传感器

这是FPGA之旅设计的第十三例啦,本例是一个综合性的例程,基于OLED屏幕显示,和DHT11温湿度采集,将DHT11采集到的温湿度显示到OLED屏幕上。

关键字: FPGA OLED屏幕

第八例啦,本例将介绍如何通过FPGA采集DS18B20传感器的温度值。

关键字: FPGA DS18B20传感器

这是FPGA之旅设计的第九例啦!!!本例将介绍如何使用FPGA驱动OLED屏幕,并在接下来的几例中,配合其它模块,进行一些有趣的综合实验。由于使用的OLED屏是IIC接口的,对IIC接口不是很清楚的,可以参考第五例的设计...

关键字: FPGA OLED屏幕

电子设计自动化

21191 篇文章

关注

发布文章

编辑精选

技术子站

关闭