论文部分内容阅读
[摘 要] 针对大量数据占用存储空间大和在通信中传输速度慢的问题,本文提出了一种基于FPGA的数据无损压缩系统设计,并采用VHDL硬件编程语言实现了基于字典的无损压缩算法LZW编码算法。采用该算法能够有效的减少存储空间,获得较大的数据压缩率。
[关键词] 无损压缩 数据压缩 压缩率
1.引言
数据压缩技术广泛应用于国防、航空航天、遥感等各个领域,成为人类生活中不可缺少的重要组成部分。它主要研究数据的表示、传输和转换方法,目的是减少数据所占据的存储空间和传输时所需用的时间。如对于卫星遥感遥测这类贵重的科学数据来说,显然应该采用无损数据压缩技术;而在多媒体压缩技术中经常采用有损压缩算法,可以获得很高的压缩比[1]。
根据压缩的可逆性分为有损压缩和无损压缩。1970年,由以色列研究人员J.Ziv和A.Lempel在两篇论文中提出了两种不同但又有联系的编码技术,简称为LZ码。1984年,T.A.Welch对LZ78算法的实用修正,后称为LZW算法[2]。
2.LZW算法编码原理
LZW的编码原理是:编码器逐个输入字符并累积成一个字符串I。每输入一个字符就被串接在I的后面,然后在字典中查找I;只要在字典中找到I,该过程就继续进行。直到在某一点,添加下一个字符x导致搜索失败;字符串I在字典中,而Ix(字符x串接在I后)却不在,这时编译器:(1)输入指向字符串I的字典指针;(2)在下一个可用的字典词条中,存储字符串Ix;(3)把字符I预置为x。
图1:数据流流程图
3.数据压缩系统设计
3.1基于VHDL的LZW算法实现
串行通信的基本方式可分为两种:异步串行方式和同步串行方式。异步串行方式是通信的数据流中,字符间异步,字符内部各位间同步的通信方式;同步串行方式是通信的数据流中,字符间以及字符内部各位间都同步的通信方式。
本系统采用的串口通信的原理:跳变检测器检测到电平从1跳到到0时,启动接收控制器接收数据,控制器将1位传送时间等分为16等份,位检测器在7、8、9三个状态也就是在位信号中央采样三次。而且三次采样中至少有两次相同的值被确认为位数据,这样就可以减小干扰的影响。如果起始位接收到的值不是0,则为无效起始位,复位接收电路。如果起始位为0,则开始接收本帧的其他各位数据。控制器发出的内部移位脉冲将数据移入移位寄存器,当8位数据全部移入后,就将数据锁存在接收缓存区内。首先我把串口通信模块,分为串行接收和并行发送两个大的部分,在这其中串行接收是设计的重点,它是RS232通信方式控制DDS的核心,它能否稳定、可靠的接收处理直接影响到整个设计。
3.2数据压缩系统
数据压缩的原始数据由计算机输出,数据串行的输入到串口。数据在串口中经过串并转换,FPGA从串口中并行的读取数据,对这些数据进行压缩,压缩代码存放到外部RAM,计算机从RAM将压缩代码取走[3]。
计算机的串口是RS232电平,而硬件电路串口是TTL电平,二者之间必须进行电平转换。MAX232是一种双组驱动器/接收器,片内含有一个电容性电压发生器以便在单5V电源供电时提供EIA/TIA-232-E电平。
图3:MAX232S串行通信
LV3245:是电平转换器,由于芯片的工作电压不匹配,所以常需要进行电平转换使它们的电压匹配,芯片的电压匹配之后才能正常工作。DIR是它的数据端口电压转换方向;OE为它的片选信号,低电平有效;A、B为8位数据端口。计算机并口的工作电压是5V,FPGA的I/O驱动电压是3.3V,两者电压不匹配,为了使电压匹配,采用LV3245实现5V和3.3V电压之间的转换。
图4:LV3245电平转换电路
XCF01S是FPGA的专用配置可编程芯片,是串行发送数据的系统内可编程Platform Flash PROM,可多次编程,上电时,XCF01里的程序数据通过JTAG口自动地被下载到FPGA内。XCF01S配置芯片采用3.3V电源供电,当FPGA在主串行模式时,它所产生的配置时钟驱动PROM。当数据下载到FPGA芯片开始时,使能端OE被启动,数据(DATA)引脚连接到FPGA引脚。新的数据可在时钟上升沿到达时,快速的写入FPGA,FPGA生成适当数量的时钟脉冲完成配置。
图5:FPGA的配置电路
4.实验结果
从仿真波形可以很清楚的看出,压缩前的数据流是串行输入到芯片中的,数据经过压缩处理之后明显比压缩前的数据减少,压缩率很高。压缩后的数据会并行的输出。通过对仿真结果的分析,可以知道LZW算法很适合应用于数据的压缩,压缩速度也很快,它是一种比较先进的压缩方法。
5.总结
通过系统仿真验证了采用LZW数据压缩算法能够较好的对数据进行压缩,能够将高速信号变成缓变信号进行传输,且降低了通信的信道容量。不足之处在于对系统的可靠性的验证将在下一步进入深入研究。
参 考 文 献
[1]王国权,朱振玉等.数据压缩技术的应用与研究.硕士学位论文[D].黑龙江科技学院.2003.
[2]DavidSalomon.吴乐南等译.数据压缩原理[M].电子工业出版社.2003.
[3]李广军.可编程ASIC设计及应用[M].西安:西安电子科技大学出版社.2005.
[4]孙浩,于斌.基于遥测数据的压缩算法设计[J].舰船电子工程.2010
[5]余佳彬,刁海南,尹本玉.遙测数据压缩算法的设计及硬件实现[J].通信技术.2008
[6]朱云华,王凤阳,刘泳.CCSDS无损数据压缩算法的实现与应用研究[J].中国空间科学技术.2008■
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文
[关键词] 无损压缩 数据压缩 压缩率
1.引言
数据压缩技术广泛应用于国防、航空航天、遥感等各个领域,成为人类生活中不可缺少的重要组成部分。它主要研究数据的表示、传输和转换方法,目的是减少数据所占据的存储空间和传输时所需用的时间。如对于卫星遥感遥测这类贵重的科学数据来说,显然应该采用无损数据压缩技术;而在多媒体压缩技术中经常采用有损压缩算法,可以获得很高的压缩比[1]。
根据压缩的可逆性分为有损压缩和无损压缩。1970年,由以色列研究人员J.Ziv和A.Lempel在两篇论文中提出了两种不同但又有联系的编码技术,简称为LZ码。1984年,T.A.Welch对LZ78算法的实用修正,后称为LZW算法[2]。
2.LZW算法编码原理
LZW的编码原理是:编码器逐个输入字符并累积成一个字符串I。每输入一个字符就被串接在I的后面,然后在字典中查找I;只要在字典中找到I,该过程就继续进行。直到在某一点,添加下一个字符x导致搜索失败;字符串I在字典中,而Ix(字符x串接在I后)却不在,这时编译器:(1)输入指向字符串I的字典指针;(2)在下一个可用的字典词条中,存储字符串Ix;(3)把字符I预置为x。
图1:数据流流程图
3.数据压缩系统设计
3.1基于VHDL的LZW算法实现
串行通信的基本方式可分为两种:异步串行方式和同步串行方式。异步串行方式是通信的数据流中,字符间异步,字符内部各位间同步的通信方式;同步串行方式是通信的数据流中,字符间以及字符内部各位间都同步的通信方式。
本系统采用的串口通信的原理:跳变检测器检测到电平从1跳到到0时,启动接收控制器接收数据,控制器将1位传送时间等分为16等份,位检测器在7、8、9三个状态也就是在位信号中央采样三次。而且三次采样中至少有两次相同的值被确认为位数据,这样就可以减小干扰的影响。如果起始位接收到的值不是0,则为无效起始位,复位接收电路。如果起始位为0,则开始接收本帧的其他各位数据。控制器发出的内部移位脉冲将数据移入移位寄存器,当8位数据全部移入后,就将数据锁存在接收缓存区内。首先我把串口通信模块,分为串行接收和并行发送两个大的部分,在这其中串行接收是设计的重点,它是RS232通信方式控制DDS的核心,它能否稳定、可靠的接收处理直接影响到整个设计。
3.2数据压缩系统
数据压缩的原始数据由计算机输出,数据串行的输入到串口。数据在串口中经过串并转换,FPGA从串口中并行的读取数据,对这些数据进行压缩,压缩代码存放到外部RAM,计算机从RAM将压缩代码取走[3]。
计算机的串口是RS232电平,而硬件电路串口是TTL电平,二者之间必须进行电平转换。MAX232是一种双组驱动器/接收器,片内含有一个电容性电压发生器以便在单5V电源供电时提供EIA/TIA-232-E电平。
图3:MAX232S串行通信
LV3245:是电平转换器,由于芯片的工作电压不匹配,所以常需要进行电平转换使它们的电压匹配,芯片的电压匹配之后才能正常工作。DIR是它的数据端口电压转换方向;OE为它的片选信号,低电平有效;A、B为8位数据端口。计算机并口的工作电压是5V,FPGA的I/O驱动电压是3.3V,两者电压不匹配,为了使电压匹配,采用LV3245实现5V和3.3V电压之间的转换。
图4:LV3245电平转换电路
XCF01S是FPGA的专用配置可编程芯片,是串行发送数据的系统内可编程Platform Flash PROM,可多次编程,上电时,XCF01里的程序数据通过JTAG口自动地被下载到FPGA内。XCF01S配置芯片采用3.3V电源供电,当FPGA在主串行模式时,它所产生的配置时钟驱动PROM。当数据下载到FPGA芯片开始时,使能端OE被启动,数据(DATA)引脚连接到FPGA引脚。新的数据可在时钟上升沿到达时,快速的写入FPGA,FPGA生成适当数量的时钟脉冲完成配置。
图5:FPGA的配置电路
4.实验结果
从仿真波形可以很清楚的看出,压缩前的数据流是串行输入到芯片中的,数据经过压缩处理之后明显比压缩前的数据减少,压缩率很高。压缩后的数据会并行的输出。通过对仿真结果的分析,可以知道LZW算法很适合应用于数据的压缩,压缩速度也很快,它是一种比较先进的压缩方法。
5.总结
通过系统仿真验证了采用LZW数据压缩算法能够较好的对数据进行压缩,能够将高速信号变成缓变信号进行传输,且降低了通信的信道容量。不足之处在于对系统的可靠性的验证将在下一步进入深入研究。
参 考 文 献
[1]王国权,朱振玉等.数据压缩技术的应用与研究.硕士学位论文[D].黑龙江科技学院.2003.
[2]DavidSalomon.吴乐南等译.数据压缩原理[M].电子工业出版社.2003.
[3]李广军.可编程ASIC设计及应用[M].西安:西安电子科技大学出版社.2005.
[4]孙浩,于斌.基于遥测数据的压缩算法设计[J].舰船电子工程.2010
[5]余佳彬,刁海南,尹本玉.遙测数据压缩算法的设计及硬件实现[J].通信技术.2008
[6]朱云华,王凤阳,刘泳.CCSDS无损数据压缩算法的实现与应用研究[J].中国空间科学技术.2008■
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文