基于DSP的JPEG图像压缩的设计与实现
用了8M×32bit的SDRAM,而且选取用了具有3Mbit缓冲的FIFO。
三、JPEG压缩编码算法原理与实现
JPEG压缩编码主要由预处理、DCT变换、量化、Huffman编码等流程构成。
JPEG压缩编码时,需先将原始YcbCr空间的二维图像分成8×8的数据块,然后将各数据块按从左到右,从上到下的顺序分别进行DCT变换、量化、"之"字型(Zig-Zag)扫描和Huffman编码(量化和Huffman编码分别需要量化表和Huffman表的支持)。
DCT优化的实现
DCT变换的快慢决定了整个JPEG算法的速度。因此,采用了行列法来减少计算量。将8×8数据块的DCT转换为16次一维8点DCT变换,只要提高一维DCT的速度就可以提高二维DCT的速度。因此将DCT算法分成两级运算,即第一级蝶形运算,第二级乘法累加运算,减少了运算级数,这样利用DSP的专用指令乘累加运算大大优化了DCT算法。
四、结束语
本文以上述算法和流程为基础,设计以DSP的开发环境,实现JPEG的编码算法,并进行了优化。与基于ASIC的方法相比,具有通用性强、灵活高效的特点。图3为在dsp的CCS调试环境下,采用C和汇编混合编程,对采集的320*240*8位的灰度视频图像进行JPEG标准压缩后复原的图像。
从上面的结果可以看出,整个压缩系统基本上可以实现对视频图像压缩编码。对本算法进行适当修改,可以应用到数码相机,手机等多种嵌入式系统中。同时,该压缩系统可以通过PCI总线控制,将压缩后的码流通过JPEG文件的形式传输给PC机。另外,该压缩系统可以成为一个通用的视频图像采集压缩平台,在该平台上可以实现JPEG2000,H.263,MPEG-2等多种多媒体压缩标准。
参考文献:
[1]G.K,Wallace."THE JPEG Still Picture Compression Standard".IEEETransaction On Consumer Electronics Vol.38,No.1, FeBruary 1992.
[2]TMS320C6000 Chip Support Library API User's Guide. Texas Instruments, 2001[3]张益贞,刘滔.Visual C++实现MPEG/JPEG编解码技术[M].北京:人民邮电出版社,2002.
[4]胡越黎,王俊,等.基于TMS320C6711的图像处理系统设计.电视技术,2005(6).
[5]许彬,郑链.基于DSK的图像处理算法仿真系统.计算机工程.2005(10).
[6]田金文,李景奇.基于TMS320C6414的视频采集处理硬件系统设计.2005(7).
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- FPGA的DSP性能揭秘(06-16)
- 用CPLD实现DSP与PLX9054之间的连接(07-23)
- DSP+FPGA结构在雷达模拟系统中的应用(01-02)