论文部分内容阅读
Huffman(霍夫曼、哈夫曼)编码是一种以最优二叉树为核心的无损压缩编码方式,在图像处理、文件传真、数学计算等领域有广泛应用。随着科技的不断发展,人们对Huffman编码无论在速度上还是在精度上都有了更高的要求。因此,研究在保证Huffman编码精度的同时,提高编码速度和结果向内存中的存取速度具有十分重要的意义和价值。多数Huffman编码都是在软件平台上,通过C语言或者其他软件语言进行编码,这些软件语言无一不都是串行顺序执行指令,大大增加了编码时间。FPGA具有强大的并行处理数据的能力,可以大幅度提高Huffman编码的速度。本文通过研究Huffman编码及FPGA的特点,提出了一种在FPGA平台上实现Huffman编码以及高速存入DDR3SDRAM存储器的研究方案。该方案针对Huffman编码的统计、排序、二叉树构建三个核心模块分别给出了各自的寄存器(RTL)级电路结构,并在FPGA平台上通过硬件描述语言实现该电路结构。最终将编码结果存入DDR3 SDRAM中。整个系统硬件平台由FPGA芯片、DDR3SDRAM存储器以及时钟晶振、LED发光二极管等其他电子元件搭建而成。方案的创新点是在完全硬件条件下并行实现Huffman编码及存储控制器,大大提升编码和存储效率。为了验证设计方案,搭建了硬件测试平台,选取351个ASCII码值作为数据源通过Verilog HDL语言进行Huffman编码。同时,通过Gcc编译工具对Huffman编码的关键模块用C语言代码实现。通过Modelsim软件的仿真和Chipscope在线逻辑分析仪的测试,结果显示:最终压缩率为44.12%,每一次统计、排序的速度比Gcc编译工具上C语言串行实现的时间提高了5158.26倍,写入DDR3 SDRAM内存中的效率为理论上最大值的70%。结果证明,无论在编码速度上,还是存储效率上,本系统都有很大提升,具备一定的研究价值。