微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于FPGA的JPEG2000数据压缩实现

基于FPGA的JPEG2000数据压缩实现

时间:04-04 来源:互联网 点击:

需要对小波变换进行多次层分解,主要分解形式有:Mallat、Spacl和Packet,如图3所示。

其中最为常用的分解方式为Mallat分解,每次分解实在对上一层的低频分量(LL)继续做Mallat分解,如图4所示。

一般来讲,多数设备是串行工作方式,图像数据普遍采用逐行的扫描方式,因此,在本文设计的数据压缩系统中,图像数据以逐行扫描方式输入DWT变换模块,小波变换采用9/7有损压缩,分解结构采用5层Mallat分解。

3.3 量化处理

人的视觉可分辨的图像是有一定范围的,因此通过适当量化减小数据精度实现对压缩。设计的量化步长决定了压缩效果的好坏。对图像量化操作是有损压缩,会产生一定的量化误差。量化后的图像数据都是由符号和幅值表示,量化后的系数在进行下一步的编码处理。

3.4 嵌入式块编码

在JPEG2000系统中,将量化后的子带划分成小的码块,认为码块间相互独立,以码块为单元,进行嵌入式编码。嵌入式编码的基本思想是通过计算适当的码流截断点,将压缩生成的码流划分成若干子集,每一子集表示对源图像的一个压缩。嵌入式码流可在任意一处被截断,得到具有不同码率或质量的重构图像。

在本设计中,模块采用了并行处理的方式来提高处理能力,嵌入式块编码分为Tier1和Tier2两部分:

Tier1模块主要处理模块有:流程控制模块、比特平面编码、过程编码模块和算术编码模块,结构如图5所示。

工作流程是:首先,小波系数暂存于小波系数存储器中,然后进入EBCOT模块,对小波系数进行比特平面编码和过程扫描编码,进过处理的比特信息送入算术编码模块进行基于上下文的二进制算术编码。

Tier2模块主要功能模块有:率失真计算模块、码率控制模块和码流组织模块,结构如图6所示。

工作过程是:率失真模块完成编码块的失真率计算,传给后级模块,码率控制模块据此进行码流截断控制,之后给编码模块进行码流组织,不同子带方向上的码流合并输出JPEG2000压缩码流。

4 测试验证

文中设计的JPEG2000数据压缩系统在FPGA开发板上进行了验证,最终结果显示,可支持处理512x512大小16灰度级的tile图像分片,码块大小是32x32,实现对1 024x1 024的16灰度级的图像压缩处理,输入是图像数据信息,输出是符合JPEG2000标准的压缩码流。仿真时采用的工作时钟是50 MHz,对于1 024x1 024的16灰度级的图像完成16:1的压缩率,结果显示需要大约1 s左右的时间,满足设计要求。

5 结论

文中首先对JPEG2000标准进行了介绍,并详细分析了数据压缩的实现原理,之后给出系统总体方案对各个模块进行了设计。由测试结果可知达到了设计要求,设计的IP核采用以离散小波变换(DWT)算法,具有明显的性能优势,可代替JPEG标准广泛应用于网络传输和无线通讯等领域。但由于JPEG2000算法较为复杂,系统的压缩速率和压缩比还有提升空间,因此需要进一步对算法进行研究和改进,通过研究其FPGA实现方法,映射为专用集成电路,最终设计实现具有自主知识产权的JPEG2000数据压缩IP核,具有重要研究价值。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top