你正在浏览的电子通信论文是利用TMS320C6201芯片进行图像压缩
摘要:介绍了利用TMS320C6201 DSP芯片进行实时图像压缩的软件设计。结合该芯片的编程特点介绍了压缩算法,并给出了部分关键程序,具有一定的参考价值。
关键词:图像压缩 C6201 FDCT变换 霍夫曼编码
图像中含有丰富的信息,在现代科技中将图像作为一种探测手段,正受到越来越广泛的青睐。有很多探测设备,采用扫描成像仪器作为前端探测器。作为一种很常见的情况,成像仪器采集到的图像要通过无线信道进行发送。但是,图像数据通常都是海量数据,无线信道的传输带宽无法满足要求,必须对图像进行压缩处理,才能通过无线信道进行传输。
实现图像实时无线传输必须研制专门的图像压缩,该压缩器须满足如下要求:(1)图像实时压缩?鸦(2)能够较好地保存图像质量。笔者以TI公司的高速DSP芯片TMS320C6201为核心的数字信号处理板作为图像压缩器的硬件平台,通过自行开发的压缩程序,实现了图像的实时压缩。
1 数字信号处理板的硬件功能框图
数字信号处理板的硬件功能框图如图1所示。TMS320C6201是一种高性能的定点数字信号处理器。工作频率为200MHz时,每个指令周期为5ns,运算速度可达1600MIPS;具有VLIW(甚长指令集)体系结构,每周期8个32bit的指令并行执行;8个独立的功能单元,有两个16bit乘法器和6个算术逻辑单元;采用加载存储体系结构,数据在多处理单元之间的传输依靠32个32bit的通用寄存器。C6000的存储器寻址空间为32bit,片内有1Mbit的SRAM。片内RAM被分为两块:一是内部程序/cache存储器,二是内部数据存储器。32bit外部存储器接口(EMIF)可与不同存储器接口,可方便地配置不同速度、不同容量、不同复杂程度的存储器。此外,C6000还有两通道Boot-loading DMA处理器、16bit的主机接口HPI、两个多通道缓冲串口(McBSP),并且其片内锁相环(PLL)时钟发生器,可以对输入时钟进行不同的倍频处理。这种芯片用来处理图像压缩这种运算密集型的工作是非常合适的。功能框图的其它部分不再做介绍。
图3 图像压缩器的工作过程方框图
2 图像压缩算法
图像压缩中的图像有彩色和灰度之分。考虑到彩色图像和灰度图像的压缩类似,且大多数的扫描成象设备扫的是灰度图像,所以仅以灰度图像的压缩为例介绍DSP上的图像压缩。图像压缩算法原理图如图2所示。
图中,首先将原始灰度图像分为8×8的图块,然后对每一图像块进行FDCT变换,再将变换得到的DCT系数使用量化表进行量化。量化后可得到如下形式的数据:
(x)是不为零的数据)
x x x x 0 0 0 0
x x x 0 0 0 0 0
x x 0 0 0 0 0 0
x 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
该数据在存储器中存放的顺序如下:
z[0] z[1] z[2] z[3] z[4] x[5] z[6] z[7]
z[8] z[9] z[10] z[11] z[12] z[13] z[14] z[15]
z[16] z[17] z[18] z[19] z[10] z[21] z[22] z[23]
z[24] z[25] z[26] z[27] z[28] z[29] z[30] z[31]
z[32] z[33] z[34] z[35] z[36] z[37] z[38] z[39]
z[40] z[41] z[42] z[43] z[44] z[45] z[46] z[47]
z[48] z[49] z[50] z[51] z[52] z[53] z[54] z[55]
z[56] z[57] z[58] z[59] z[60] z[61] z[62] z[63]
在存储器中,非零数据和零数据交替存放,不便于压缩,所以要对数据进行重排列,数据的重排列形式如下:
z[0] z[1] z[5] z[6] z[14] z[15] z[27] z[28]
z[2] z[4] z[7] z[13] z[16] z[26] z[29] z[42]
z[3] z[8] z[12] z[17] z[25] z[30] z[41] z[43]
z[9] z[11] z[18] z[24] z[31] z[40] z[44] z[53]
z[10] z[19] z[23] z[32] x[39] z[45] z[52] z[54]
z[20] z[22] z[33] z[38] z[46] z[51] z[55] z[60]
z[21] z[34] z[37] z[47] z[50] z[56] z[59] z[61]
z[35] z[36] z[48] z[49] z[57] z[58] z[62] z[63]
变换完成后再根据编码表对DC系数和AC系数分别进行编码,就完成了图像的压缩。
图4 量化表
3 利用DSP芯片进行图像压缩
3.1 图像压缩器的工作过程
图像压缩器工作过程方框图如图3所示。
图像数据通过I/O接口送入数字信号处理板,由DSP芯片中的DMA控制器负责将数据放入输入缓冲区中,DSP对缓冲的图像数据进行压缩后,通过HPI接口将压缩数据送出。
3.2 编程介绍
这里主要介绍压缩参数初始化和压缩程序。
3.2.1 压缩参数初始化
由图2所示的图像压缩算法可知,图像压缩过程中需要量化表和编码表,量化表如图4(a)所示。
量化操作就是把8×8图块进行FDCT变换,将变换后的的DCT系数用量化表元素来除。由于DSP中有硬件乘法器和移位指令,为了充分提高程序的执行速度,应该将除法运算转化为乘法运算和移位运算,对上面的量化表元素逐个求倒数并用16进制表示,如图4(b)所示。
编码表有两个,一个是直流差值编码表,另一个是交流系数编码表,如图5所示。
编码表中的最左端的一列代表中间码字,具体编码时要根据8x8图块的DCT系数产生中间码字,再由中间码字查编码表,将中间码字转换为霍夫曼码,完成编码。在DSP程序初始化阶段要生成量化表和编码表,量化表可直接将图4(b)所示的量化表元素代入来得到,编码表就要按照霍夫曼码的编码方法生成霍夫曼码来得到。由于在压缩过程中要频繁地查找编码表,因此,编码表的组织形式对程序的执行效率影响很大。
3.2.2 压缩程序
图像压缩包括F