论文部分内容阅读
大数据时代,采用数据压缩技术可以有效地降低各种数据应用对存储空间和传输带宽的需求。数据无损压缩技术可以在不降低重构信息质量的前提下减小数据量,因而得到越来越多的应用。哈夫曼编码作为一种熵编码技术被广泛运用于数据无损压缩领域。哈夫曼编码在对待编码数据中各种字符出现次数计数结果的基础上,“自底向上”地构建二叉树,然后再为每种字符分配异字头的、平均长度最短的编码,是一种基于字符统计频率和二叉树数据结构的编码方法。这种方式保证了极好的数据压缩率性能,也因此常被称为最优编码。研究发现,随着数据无损压缩理论、硬件电路性能以及设计方式的发展,硬件无损压缩技术也日渐得到重视。相较于基于软件平台执行数据压缩的传统途径,设计完善的专用数据压缩模块在计算资源利用率、任务执行效率以及系统功耗方面具有明显优势。针对当前数据无损压缩系统的研究中,存在的以提升系统安全性、吞吐率等单项指标为目标,常以削弱系统压缩率性能为代价的问题,本论文的研究工作针对现有动态哈夫曼编码的硬件算法存在的不足进行了改进,通过充分利用硬件电路的并行计算和流水线结构的优势,均衡地提升了系统的编码效率。研究工作取得了以下创新性成果:(1)提出一种应用于哈夫曼编码的数据分块方式,用以缓解提升系统吞吐率的需求和消耗存储器资源之间的矛盾。研究面向各种典型大小的数据分块,经过统计计算和比较编码流程中各项子任务所需时间后发现,将待压缩数据分块时,数据分块大于25.2 KB是在系统中高效应用并行计算和流水线结构的必要条件。综合系统复杂度,存储器利用率考虑,哈夫曼编码系统采用32 KB、64 KB等典型的固定数据分块方式。(2)设计一种根据统计频率对字符节点进行排序的硬件算法。该算法基于快速排序和堆排序算法,根据统计频率分布情况将字符节点分配到3个(或者2个)区间,然后并行的在每个区间内对节点进行排序。实验证明,所设计的结构通过运用并行计算特性,可提升字符节点排序速率2倍以上。(3)提出一种构建动态哈夫曼树的算法和存储哈夫曼树的电路结构。基于块存储器、分布式寄存器,采用新的“父节点指向子节点”映射关系,构建并存储动态哈夫曼树,用以支持按层次顺序为字符节点分配编码。在不增加资源消耗的前提下,为哈夫曼树中的叶节点快速分配编码。实验证明,结合零节点快速处理技术,利用新生成内部节点频率有序性,可将建立哈夫曼树和产生节点编码的速率提升4倍以上。(4)提出一种基于新型动态哈夫曼树结构处理溢出节点的方法,在保证压缩数据安全的同时,对溢出叶节点进行批量调整。该方法充分利用了硬件的并行计算优势,相较面向溢出节点逐个调整的传统方法,将处理速率提升了2倍以上。在此基础上,还提出了一种拼接变长编码的算法和相应电路结构。测试结果表明:核心时钟频率为125 MHz时,平均吞吐率可达40 MBps。(5)提出使用字典压缩算法预处理原数据的方法,能够促进系统获得更优的压缩率性能。本文设计了一种高速高命中率的数据匹配算法和相应的硬件结构,测试结果表明:核心时钟频率为125 MHz时,平均吞吐率达到93.22 MBps;相较传统数据匹配方法的吞吐率提升幅度达1.49倍,确保了整个系统的数据吞吐率性能。