基于FPGA的无损图像压缩系统设计
控制单元负责产生控制信号以协调各电路模块的工作顺序;上下文模型选取单元将像素值输入存储器进行存储,产生当前像素、相邻像素和上下文预测值Δ;预测单元根据不同的上下文模型求出像素残余值;编码单元对像素残余值进行修正的二元编码或GOLOMB-RICE编码;并串转换单元负责将编码结果转换为码流进行输出。
本文引用地址:https://www.eepw.com.cn/article/267434.htm 图5所示为各个电路子模块的接口定义及连线图。其中上下文产生模块和预测模块功能具有连续性,用一个模块表示,像素值以光栅扫描的顺序逐行进行读入,需要一个行存储器对像素值进行存储,每完成对一个像素点的编码操作之后,将存储器中该处的像素值更新为当前行当前列的像素值,本方案处理的图像大小为512*512,因此只需要一个512*8比特的存储器。修正二元编码和GOLOMB-RICE编码模块算法相对复杂一些,为了加快系统的时钟频率,将算法中的计算步骤进行拆分细化。GOLOMB-RICE编码模块需要进行参数K的选取,若K的可能值有4个,则还需要256*8*4比特大小的存储器作为累加表。最后,由于编码后的码值是变长的,为了满足输出端口的要求,要对编码结果进行并串转换操作,输出端以码流的形式进行输出。
压缩系统已集成在XILINX VIRTEX-5 FPGA上,并利用开发板XUPV5_LX110T进行了验证,当工作频率为20MHZ时, 吞吐率可达45f/s,所需存储空间仅为13.1Kbits,每帧的功耗仅为13.67毫瓦。经过若干经典图像测试后发现此压缩系统的平均压缩比为2.2,和主流的无损图像压缩算法(如JPEG-LS)相当,但压缩效率提升约80%左右。
3 结语
科技的发展和移动终端的普及对图像压缩系统的处理效率提出了越来越高的要求。本方案中的无损图像压缩系统和传统压缩算法(如JPEG-LS, CALIC等)相比,在压缩比相当的情况下,算法简单,所需的存储器面积和处理时间也都大幅度下降,可以很好地兼容到医疗或航天图像压缩系统中。
参考文献:
[1] Liang J Y, Chen C S, Huang C H, et al. Lossless compression of medical images using Hilbert space-filling curves [J]. Computerized Medical Imaging and Graphics, 2008, 32(3): 174-182
[2] Wu X, Memon N. Context-based, adaptive, lossless image coding[J]. Transactions On Communications, IEEE, 1997, 45(4): 437-444
[3] Lossless and Near-Lossless Coding of Continuous Still Images (JPEG-LS), ISO/IEC JTC1/SC29 WG1 ITU-T SG8 (JPEG/JBIG), CD 14495, 1998
[4] P. G. Howard and J. S. Vitter, Fast and efficient lossless image compression[C], in Proc. IEEE Int. Conf. Data Compression, 1993
[5] Tsai T H,Lee Y H,Lee Y Y. Design and analysis of high-throughput lossless image compression engine using VLSI-oriented FELICS algorithm [J]. Transactions on Very Large Scale Integration (VLSI) Systems, IEEE, 2010
[6] 薛金勇,黑勇,陈黎明.快速高效无损图像压缩系统的低功耗硬件实现[J].哈尔滨工程大学学报,2014
fpga相关文章:fpga是什么
评论