基于DSP Builder的JPEG静态图像压缩算法的实现

发布者:创新之星最新更新时间:2011-08-16 来源: 电子技术应用关键字:JPEG  图像压缩 手机看文章 扫描二维码
随时随地手机看文章
   

摘  要: 利用Altera公司提供的数字信号处理开发工具DSP Builder和现代DSP技术,在Matlab/Simulink环境中建立了JPEG算法模型,并进行了仿真验证,最后将编译代码下载到硬件上进行了在线调试。
关键词: DSP Builder;JPEG;图像压缩;FPGA

 随着数字信号处理技术在应用领域的迅速发展,以DSP处理器(如TI的TMS320系列)为应用系统核心器件的传统DSP技术,由于其硬件结构的不可变性和固定的数据总线宽度,很难满足用户对DSP系统可重配置性或可定制性的要求。而以大容量、高速度的FPGA为核心器件的现代DSP技术的出现成功解决了以上问题。FPGA内嵌有可配置的高速RAM、PLL以及硬件乘法累加器等DSP模块。因此,用FPGA实现数字信号处理可以很好地解决并行性和速度问题,而且其灵活的可配置特性,使得以FPGA为核心器件的DSP系统易于修改、测试及硬件升级。
    本文利用Altera公司推出的一个面向DSP开发的系统级设计工具DSP Builder,在深入研究JPEG算法原理的基础上,设计了JPEG算法模型,并在Matalab/Simulink环境下进行了算法级仿真;最后将算法编译下载到FPGA硬件上,利用DSP Builder的HIL(Hardware In Loop)功能,由Simulink通过下载电缆向硬件输入测试数据,然后将测试结果送入Simulink中显示。采用这种方法实现了硬件级的仿真验证。
1 DSP Builder介绍
    DSP Builder开发工具是Altera公司提供的数字信号处理平台,它是一个系统级(或算法级)设计工具,架构在多个软件工具之上,并把系统级和RTL级两个设计领域的设计工具连接起来,最大程度地发挥了两种工具的优势。DSP Builder依赖于MathWorks公司的数学分析工具Matlab/Simulink,以Simulink的Blockset出现,可以在Simulink中进行图形化设计和仿真,同时通过SignalCompiler把Matlab/Simulink的设计文件(.mdl)转成相应的硬件描述语言VHDL设计文件(.vhd),以及用于控制综合与编译的TCL脚本。而对后者的处理可以由FPGA/CPLD开发工具Quartus II来完成。
    设计人员能够同时进行多个HDL模型或者QuartusII软件设计工程的设计,为每一个模块生成一个独立的仿真模型,并且能够在同一设计环境中,以标准Simulink/DSP Builder模型来仿真HDL模块。此外,该工具可充分利用和重复使用现有设计,从而大大提高产品开发速度。在仿真软件方面,除了可以利用Simulink的仿真环境,DSP Builder还提供了与Modelsim的接口,充分利用Modelsim仿真的优势。以前DSP开发者只能直接使用VHDL或VerilogHDL语言进行FPGA的DSP系统设计,难度比较大。现在利用基于FPGA的DSP开发工具DSP Builder以及完整的软件开发平台,可以使设计者遵循一条类似于软件设计流程的开发方法进行FPGA的DSP设计,设计效率大为提高。基于DSP Builder的系统级开发流程如图1所示。

。基于DSP Builder的系统级开发流程

2 JPEG算法原理

    JPEG专家组开发了两种基本的压缩算法,一种是以离散余弦变换DCT(Discrete Cosine Transform)为基础的有损压缩算法;另一种是以预测技术为基础的无损压缩算法。使用有损压缩算法时,在压缩比为25:1的情况下,压缩后还原得到的图像与原始图像相比较,非图像专家难于找出它们之间的区别,因此得到了广泛的应用。例如,在VCD和DVD-Video电视图像压缩技术 中,就使用JPEG的有损压缩算法来取消空间方向上的冗余数据。
    JPEG压缩是有损压缩,它利用了人眼视角系统的特性,使用量化和无损压缩编码相结合来去掉视角的冗余信息和数据本身的冗余信息。JPEG算法框图如图2所示。

JPEG算法框图

 

 

    压缩编码大致分成三个步骤:
    (1)使用正向离散余弦变换FDCT把空间域表示的图变换成频率域表示的图。
    (2)使用加权函数对DCT系数进行量化,这个加权函数对于人的视觉系统是最佳的。
    (3)使用霍夫曼可变字长编码器对量化系数进行编码。译码(或者叫解压缩)过程与压缩编码过程相反。
3 JPEG算法模型的实现
    在DSP Builder下进行系统搭建。DSP Builder平台提供了加法器、乘法器以及数字信号处理涉及到的众多模块,对这些模块可以进行可视化的参数编辑。本设计从Matlab的Workspace中导入需要压缩的图像,然后通过用DSP Builder构建的JPEG压缩算法压缩编解码,最后在Matlab中显示重建的图像。JPEG静态图像压缩算法压缩的对象是YCbCr格式的,所以在进行图像压缩前要进行预处理。通过Matlab中的Color Space Conversion将RGB格式的图像转换成YcbCr格式。
    待压缩的图像数据首先要进行DCT变换,受FPGA硬件资源的限制,可以先进行一维行变换,将得到的数据按列存储到RAM中,等到数据全部输入到RAM中,再对RAM中的数据进行一维的DCT行变换。然后重复利用一维的DCT模块,以节省硬件资源。
    DCT变换后的频率系数要进行量化。JPEG算法使用均匀量化器进行量化,量化步距按照系数所在的位置和每种颜色分量的色调值确定。因为人眼对亮度信号与对色差信号敏感度不同,因此使用了两种量化表。设计实现方法为:将DCT系数除以量化步长取整数。为了保证DCT系数中低频分量先出现,高频分量后出现,量化后的系数要重新编排,JPEG算法采用Z字型编码,增加了连续“0”系数的个数,即“0”的游程长度,以达到用更少的数据表示更多信息的目的,从而优化编码。量化的目的是减小非“0”系数的幅度以及增加“0”值系数的数目。
    JPEG算法使用了差分脉冲调制编码(DPCM)技术,对相邻图像块之间量化DC系数的差值(Delta)进行编码。量化交流AC系数的特点是1×64矢量中包含许多“0”系数,并且许多“0”是连续的,因此使用非常简单和直观的游程长度编码(RLE)对它们进行编码。使用熵编码还可以对DPCM编码后的直流DC系数和RLE编码后的交流AC系数作进一步压缩。在JPEG有损压缩算法中,通过使用霍夫曼编码器来减少熵,原因是使用霍夫曼编码器可以用很简单的查表(Lookup Table)方法进行编码。压缩数据符号时,霍夫曼编码器对出现频度比较高的符号分配比较短的代码,而对出现频度较低的符号分配比较长的代码。这种可变长度的霍夫曼码表可以事先定义。
    JPEG编码的最后一个步骤是把各种标记代码和编码后的图像数据组成一帧一帧的数据,以便于传输、存储和译码器译码,这种数据通常称为JPEG位数据流。
4 模型仿真分析
    设计采用DSP Builder的HIL进行仿真验证。HIL把设计包裹在一套接口中间进行编译,然后下载到板子的FPGA中。首先将模型文件(.mdl)用SignalCompiler编译生成Quartus II的工程文件(.qpf);然后将工程文件加载到HIL模块中,在HIL模块中进行时钟、复位等信号设置,选择FPGA器件型号;最后编译文件并将配置下载到FPGA中。Simulink通过下载电缆把测试数据不断输入,然后在输出端不断获得硬件运行的结果。利用HIL在硬件上进行仿真,可以加快仿真速度,同时可对算法、时序和引脚配置进行检测。由于FPGA可以无限次烧录,所以利用HIL进行仿真非常方便。HIL仿真模块如图3所示。

    利用HIL进行图像的压缩和解压仿真验证,观察经过压缩和解压后的图像可以发现,该仿真模型成功实现了JPEG静态图像压缩的编解码算法,解压后的图像效果很好。把SignalCompiler编译生成Quartus II的工程文件(.qpf)下载到FPGA芯片中,观察到使用的逻辑单元块LE(Logic Elements)数量为1 224个,而用VHDL语言编写JPEG算法下载到FPGA芯片中将占用1 483个单元块。表1表明用DSP Builder进行系统级的算法设计与用传统的VHDL语言进行设计更节省硬件资源。

    应用现代DSP技术,通过Altera公司提供的数字信号处理开发工具DSP Builder搭建了JPEG静态图像压缩编解码模型,并用HIL进行了仿真验证。实验结果表明,设计的JPEG模型能够成功实现静态图像的压缩编解码,且重建的图像效果很好。应用DSP Builder进行系统级的算法设计相比用VHDL语言设计更节省硬件资源。

关键字:JPEG  图像压缩 引用地址:基于DSP Builder的JPEG静态图像压缩算法的实现

上一篇:用DSP实现新型无分电器点火装置
下一篇:一种高速帧同步和相位模糊估计的方法及其FPGA实现

推荐阅读最新更新时间:2024-05-02 21:32

基于DSP的图像压缩无线传输系统设计
   1 引言   随着航空航天技术的发展,图像无线传输技术日趋成熟。而嵌入式图像无线传输技术以其安装方便、灵活、适合广泛普及等优点在广大领域备受关注。本文介绍一种基于DSP的无线图像传输系统的设计方案与实现方法。    2 系统总体设计方案   图1为该系统设计框图。该系统分为图像采集、图像数据处理及无线通信3个模块。图像采集完成图像数据的采集;图像处理实现图像数据的压缩及相关处理:无线通信传输压缩数据。该系统选用TMS320VC5509A型DSP作为主处理器。    3 系统硬件设计   3.1图像采集模块   图像信号采集电路的基本工作方法分为独立和处理器两种采集法。前者采用专用图像采集器件,自动完成图像
[嵌入式]
JPEG2000小波提升在DSP上的缓存管理
  JPEG2000压缩标准与JPEG相比有更高的压缩效率,尽管如此,它在执行时间上还存在一些问题。为缩短执行时间,必须对小波变换编码进行优化。小波提升方案与传统的卷积滤波相比需要更小的内存和计算量。可是,提升方案在执行垂直小波滤滤时仍存在严重的缓存失败问题。   Meerwald曾经提出过行扩展和聚合的方法,Chatterjee和Brooks也提出了条采集和递归数据设计来改善提升方案的缓存处理。尽管这些方法可以降低缓存挫败率,却不能完全消除缓存失败问题。缓存失败问题在一个内存有限的嵌入式系统中变得较为突出,尤其是在DSP中更为严重。为解决这一问题,笔者提出了一种新的方法与DSP相匹配。      1 主要方法   图
[嵌入式]
<font color='red'>JPEG</font>2000小波提升在DSP上的缓存管理
JPEG编解码芯片ZR36060在远程视频监视系统中的应用
    摘要: 简要地叙述了JPEG编解码芯片ZR36060的主要特点、内部结构和工作模式,并给出发一个应用实例——基于JPEG的远程视频监视系统。     关键词: JPEG编解码器  压缩  解压缩     随着改革开放的进一步深入,各界对于安全防范和现场记录报警系统的需求越来越大,要求也越来越高。数字化的图像监视系统已经逐步淘汰了传统的闭路电视监视系统。对于需要以图像画面作为证据的远程视频监视系统而言,H.261和H.263图像的质量已无法胜任,这时需要传输高质量的JPEG图像。Zoran公司的JPEG编解码芯片ZR36060正是这样一种适合于基于JPEG的监视系统和数字图像采集、编辑的芯片。本文
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved