1、将图像分成8*8数据块(数字信号数组,即YCbCr)
2、进行DCT变换:
可以利用一维DCT变换来实现二维的DCT变换公式1,将公式1改写成矩阵运算形式F = CfCT其中,C为带余弦基本函数的变换系数矩阵,CT为C 的转置,则DCT变换公式可以分解成串联的两次一维变换,如下:
即写成矩阵形式为:F=CY,Y=fCT,这里,Y为中间乘积矩阵(Y的列等于f行的一维DCT 输出) 。因此,在做二维DCT变换时,可以应用一维DCT 变换来计算,即先沿f的行进行一维DCT 计算获得Y,再沿着Y的转置的行进行一维DCT运算。这其中就包含一个转置存储器。这样的算法结构如图:
3、进行量化,量化有对应的量化表(色度和亮度的量化表不同),将DCT变换的结果与对应量化表中的数相除;
4、之字形输出,即将量化后的数据按之字形输出即可(直流分量在最前,之后是交流分量),经过此步骤后,低频分量数据靠前排列,高频分量数据靠后排列;
5、Huffman编码,此部分有对应的色度和亮度编码表。此部分也可以根据数值出现的可能性大小来提高编码速度。
二:系统结构
整个系统可以分成两大部分:DE2开发板图像预处理部分和DSP图像压缩部分,另外采用EMIF进行数据交换。
1)DE2开发板图像预处理部分(如图4中的黑色虚线表示)包括视频AD转换和FPGA处理,其中视频AD转换可以采用DE2开发板自带的ADV7181转换芯片实现,可以将PAL/NTSC制式的信号转换为CCIR656制式的信号;FPGA处理部分采用Altera的嵌入式软核NiosII作为控制单元,将CCIR656制式信号进一步转换为YCbCr制式信号方便DSP做处理,将YCbCr信号缓存到SRAM中为DSP处理提供数据源。
2)DSP图像压缩部分(如图4中的红色虚线表示)采用TI公司的TMS320VC5509A处理器,其具有乘法累加和累减单元,能在单周期内完成1次乘法运算和1次累加运算,将上面的公式2和公式3进一步转换,都可以变换成乘法累加/累减:
可见采用DSP做DCT变换非常合适(其实DCT变换就是FFT变换的变型,在很多设计中都能看到采用DSP设计FFT变换的);量化一步中会涉及到除法,但是可以近似采用乘法的方法代替(譬如除以3,可以转换为乘以0.333,再转换为乘以333再除以1000), 之字形扫描只是按照一定的规律将数据从新排列,此步骤很容易;编码一步采用静态的Huffman编码表,对应编码表,按照一定的顺序打包输出;从描述中可以看出,设计会用到一些表,可以采用片外存储的方式进行实现。
3)FPGA和DSP之间采用EMIF(外部存储器接口)进行数据交换,它们之间的握手信号可以采用中断实现。
4)整个系统可以采用NiosII作为总的控制单元,由其发起信号采集,缓存以及数据压缩等模块的功能。
用户450216 2016-5-11 13:19
用户593939 2016-5-8 18:24
用户1301577 2013-2-1 12:32
sunyzz 2013-1-9 14:05
Hoki 2013-1-9 12:49
sunyzz 2013-1-8 14:32
Hoki 2013-1-8 13:45