一种基于FPGA的Deflate压缩算法研究与实现

来源 :桂林理工大学 | 被引量 : 0次 | 上传用户:V13_ywj
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
FPGA技术已经取得了巨大进步,FPGA芯片在容量和速度上都达到了较高的水平,现在已经有许多学者研究如何使用FPGA完成对应用程序的加速。Deflate算法是无专利保护的可以自由使用的无损压缩算法,一方面用历史数据的指针来代替输入数据,另一方面通过哈夫曼编码对替换后的数据再次压缩。Deflate压缩由Deflate编码和哈夫曼编码两部分组成。哈夫曼编码是经典的信息编码算法之一,可以应用到各种领域中,目前已经有许多的研究哈夫曼编码的硬件实现。而Deflate编码方面,虽然也存在许多研究,但是字典窗口大小都比较小,这极大地影响了硬件实现的压缩性能。   本文对FPGA及压缩算法做简要介绍,对Deflate的原理及性能进行分析。在分析的基础上,采用脉动阵列方法,在芯片110T FPGA上实现Deflate压缩算法的硬件加速,主要工作如下:   1、本文研究了不同的分块压缩、以及字典采用的窗口大小对编码性能的影响。研究发现,为了进一步发挥硬件的并行性,硬件系统可以同时实现多路编码模块,对同一个文件进行分块压缩或同时压缩不同的文件。其中,前者可以加速单个文件的压缩过程,后者可以提高系统的整体吞吐率。在使用分块压缩时,本块无法使用其它块的历史信息,所以当字典窗口大小小于32K的时,压缩效果降低严重。因此本文提出一种基于FPGA的窗口大小为32K的Deflate压缩算法的硬件系统设计。   2、本文研究了不同的最大匹配长度对编码性能的影响。Deflate编码阶段是整个压缩过程的核心部分,研究发现最大匹配长度在16时,能较好地完成对测试集的压缩。因此为了节约开销,在不过分损失性能的前提下,本文最终确定采用最大匹配长度为16的硬件实现方案。   3、由于Deflate压缩算法是一种结合哈希表的压缩算法,会产生一定程度的哈希表膨胀的问题。为了解决该问题,提出一种了基于改进后的循环存储的哈希表实现方法,避免了窗口的移动。该方法能在不移动窗口内数据的前提下,实现对哈希表的截断。   通过对上述设计进行的性能分析可以得出,该设计具备兼顾单个文件的压缩速度和系统整体吞吐率等优势。同时,该方案所实现的系统在使用110T FPGA芯片时可以工作在200MHz,相对于3GHz的Xeon处理器有2.4倍的加速比。
其他文献
管理信息系统(Management Information System,简称MIS)主要任务是最大限度的利用现代计算机及网络通讯技术加强企业的信息管理,通过对企业拥有的人力、物力、财力、设备、技术等
学位
高等教育是国民教育的最重要的组成部分。高等教育质量的高低,直接影响到我国高等人才质量和国家经济建设的发展水平。为了加强教学质量的管理与提高,教学质量评价则是必不可少
汽车防抱死制动系统(Anti-lock Braking System,ABS)作为主动安全装置的典型代表,主要目的是防止紧急制动时车轮抱死,保持车辆制动时方向的稳定性和方向盘的可操纵性,缩短制
云任务调度算法在很大程度上决定了云集群的性能以及用户是否拥有良好的服务体验,而数据本地性任务的选择又是研究云调度算法所需要重点考虑的部分。延时调度算法是公平调度
知识工程是人工智能的一种实现方法,对那些需要专家知识才能解决的应用难题提供求解的手段,它在中医学领域中的应用方兴未艾。本文介绍了浙江大学CCNT实验室与中国中医科学院
覆盖控制作为无线传感器网络(Wireless Sensor Networks, WSN)中的一个最基本的问题,是衡量无线传感器网络工作性能的重要评价指标。它不仅使WSN的空间资源得到优化,而且影响
随着软件规模的逐渐增大,对软件测试的要求也越来越高,手工测试已经不能满足测试需求,自动化测试技术逐渐地应用到各种类型应用程序的测试中。测试脚本是自动化测试中的关键要素
本体作为一种能在语义和知识层次上描述知识系统的概念模型和建模工具,自被提出就引起了国内外众多科研人员的关注,并在计算机的许多领域得到了广泛应用。但是本体的构建研究
在织物染色配色问题研究中,由于染料本质的问题,本文中提出两种不同的解决问题的思想,并且建立了两种模型。第一种方法采用数学建模方法,主要针对三种染料与三刺激值之间关系
模型驱动架构(MDA)是对象管理组织(OMG)提出的一种新的软件开发框架。与传统软件开发不同,MDA以模型为中心,使用模型来指导系统的设计、开发和维护。它将模型和实现技术分离,