基于FPGA的实时无损数据压缩系统设计

时间:2011-07-26来源:网络

用FPGA实现LZW算法要解决以下几个问题:
①压缩过程中字典的缓存问题。因为所有数据处理和传输工作都是由FPGA完成,且考虑到实时压缩速度,字典的缓存使用FPGA内部的RAM资源。
②字典的建立与更新问题。字典的建立使用FPGA片内资源来完成,大容量字典虽然会提高压缩比,但必须考虑到FPGA内部的资源量。因此选用9位的定长编码方式对数据进行处理。
③压缩后输出数据流传输和存储问题。由于压缩后是9位的数据流,不利于数据的存储,因此将9位的数据转换成8位的数据流进行传输和存储。
3 系统测试及性能分析
首先测试LZW算法模块能否正确无误地压缩数据。先由上位机发送数据给FPGA,FPGA压缩数据并写入SRAM存储器。压缩结束后,上位机读取SRAM中的数据并存为一个文件,最后再将这个文件与用软件压缩的结果作比较,来判断结果正确与否。图3是压缩原文件和解压后文件以十六进制形式对比后的结果,从图中下方框中的信息可知,两个文件的大小都是248 714字节,0字节差异,完全匹配。为了提高测试的全面性,避免出现因为偶然而造成的个别功能死角没被测到,利用格式各异的数据文件进行了大量的压缩结果对比实验,最终实验结果表明软硬件压缩的结果是一致的,并且解压后与源文件也是一样的,说明LZW数据压缩模块实现了功能上的要求。

d.JPG


然后对压缩模块的压缩率进行测试。整个设计最初的定位是应用于微体积、微功耗的测试系统中,现选取了实验室里一些实测数据(图4~6),对其分别用LZW与WinRAR进行压缩实验。WinRAR是一种商业的无损压缩软件,使用的是混合压缩算法,可根据需要向计算机申请内存作为哈希字典,字典大小可达4 MB。压缩后的最终结果如表1所列。表中的压缩率是按压缩后的数据量除以压缩前的数据量计算的,压缩率数值越小表明压缩效果越好。

1 2 3 4

关键词: FPGA 数据压缩 系统设计

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版