微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于DSP的JPEG图像压缩设计

基于DSP的JPEG图像压缩设计

时间:11-02 来源:互联网 点击:

系统可以采集到一帧图像的尺寸为320点/行*240行,从SA71113输出的是4:2:2的YcrCb数据格式,一个像素用2个字节表示,一个字节表示Y,另一个字节为Cb和Cr,那么总的数据量为320×240×2=150KB。对于亮度信号,每个像素Y占一个字节,一行共320个字节,用320个存储单元存储一行的Y数据,对于色度信号Cb,一行共320点,每两个像素共用一个色度信号Cb,占一个字节,共160个字节,用160个字节单元存放一行的数据,对于色度信号Cr,存储格式与Cb一样。这样一帧图像数据需要的缓冲区大小为:320×240+160×240×2=150KB。对此选用了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等多种多媒体压缩标准。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top