3.2 模块设计
duram是双口sram作为片内存储单元存储输入的数据,当采用FPGA进行验证时,直接调用Altera公司的宏功能块即可;ari_core是实现算术编码的运算处理单元,包含一个存储概率估值和当前MPS符号的表以及LPS和MPS编码子程序;模块control是数据流控制单元,用于组织片内存储单元duram和运算处理单元ari_core以及片外sram的数据交换。模块control是整个设计的控制单元,负责调度以上各个模块,产生控制和联络信号以及地址信号。模块结构原理如图3所示。
3.3 电路验证
将布局布线后生成的文件下载到自行设计的一块FPGA的PCI开发板里进行验证,如图4所示。板上是一片Altera cyclone系列FPGA ep1c12qfp240,该FPGA含有约25万逻辑门、30KB内部RAM。PCI接口控制逻辑也是在FPGA中实现[6~8],然后编写PCI驱动程序和应用程序,先由Jasper软件处理,抽取软件中量化模块处理后的数据,输入FPGA中进行处理,再将数据返回给软件中的下一模块,验证本文设计的算术编码IP核的正确性,并计算处理时间。
4 实验结果与分析
(1)将Verilog源程序在QuartusⅡ软件中综合后,得到的参数如下:
1)器件名称:EP20K200efc484-2x;
2)FPGA时钟最高频率:45.18MHz;
3)Total logic elements:3660/8320 (44%)。
(2)功能验证。目前,只有JBIG[8]标准中有验证算术编码器编码正确性的测试向量,因此该测试向量被用以测试本文设计IP核的正确性。需要说明的是:JBIG标准中的算术编码器会产生“FF AC”标志位[8],而JPEG2000中的MQ-Coder算术编码器并不产生该标志位[1]。
将JBIG中的测试向量作为输入,经过本文设计的算术编码IP核处理后的结果如图5所示,由图5可知本文设计的算术编码IP核完全正确。
(3)由概述可知,Jasper软件具有一定的权威性,因此在实验中被使用。表1列出了对于同一个图像文件,Jasper软件中算术编码模块执行所需的时间和本文设计的算术编码IP核执行所需的时间以及两者时间之比。
5 结论
本文提出的一种实现算术编码的集成电路IP核,经过仿真和FPGA验证,能够符合JPEG2000标准,仿真结果表明,在相同的条件下,该IP核编码所需时间仅约为软件编码所需时间的40%,从而大大提高了算术编码的效率,使得将来其应用于实时处理系统成为可能;并且将来可以定制所需的ASIC电路,用于新一代数字照相机等具有广泛市场前景的项目。