展会信息港展会大全

利用TMS320C6201芯片进行图像压缩
来源:互联网   发布日期:2011-09-09 14:46:27   浏览:5944次  

导读:你正在浏览的电子通信论文是利用TMS320C6201芯片进行图像压缩摘要:介绍了利用TMS320C6201 DSP芯片进行实时图像压缩的软件设计。结合该芯片的编程特点介绍了压缩...

你正在浏览的电子通信论文是利用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

赞助本站

人工智能实验室
AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港