创龙教仪 发表于 2024-1-11 14:32

基于TIC6000 DSP教学实验箱_数字图像处理操作教程:5-20 图像离散余弦变换(LCD显示)

<h1 id="_0">一、实验目的</h1>

<p>学习图像离散余弦变换的原理,掌握图像的读取方法,并实现在LCD上显示余弦变换前后的图像。</p>

<h1 id="_2">二、实验原理</h1>

<h2 id="_3">图像离散余弦变换</h2>

<p>图像的离散余弦变换广泛用于图像的压缩。对原始图像进行离散余弦变换,变换后DCT系数能量主要集中在左上角,其余大部分系数接近于零,DCT具有适用于图像压缩的特性。将变换后的DCT系数进行门限操作,将小于一定值得系数归零,这就是图像压缩中的量化过程,然后进行逆DCT运算,可以得到压缩后的图像。</p>

<p>离散余弦变换(DCT for Discrete Cosine Transform)是与傅里叶变换相关的一种变换,它类似于离散傅里叶变换(DFT for Discrete Fourier Transform),但是只使用实数。离散余弦变换相当于一个长度大概是它两倍的离散傅里叶变换,这个离散傅里叶变换是对一个实偶函数进行的(因为一个实偶函数的傅里叶变换仍然是一个实偶函数),在有些变形里面需要将输入或者输出的位置移动半个单位。</p>

<p>对于给定的实际数据序列x( 0 ),X( 1 ),x( 2 )&hellip;&hellip;X(N-1)的DCT算法如下:</p>

<p>&nbsp;</p>

<div style="text-align: center;"></div>

<p>&nbsp;</p>

<p>其中:</p>

<p>&nbsp;</p>

<div style="text-align: center;"></div>

<p>&nbsp;</p>

<p>二维离散余弦变换如下:</p>

<p>&nbsp;</p>

<div style="text-align: center;"></div>

<p>&nbsp;</p>

<p>其逆运算是:</p>

<p>&nbsp;</p>

<div style="text-align: center;"></div>

<p>&nbsp;</p>

<h2 id="_14">量化</h2>

<p>量化过程实际上就是对DCT系数的一个优化过程。它是利用了人眼对高频部分不敏感的特性来实现数据的大幅简化。整个过程实际上是简单地把频率领域上每个成份,除以一个对应于该成份的常数,接着四舍五入取最接近的整数。这是整个过程中的主要的运算。以这个结果来说,经常会把很多高频率的成份四舍五入而接近0,且剩下很多会变成小的正或负数。</p>

<p>整个量化的目的是减小非&ldquo;0&rdquo;系数的幅度以及增加&ldquo;0&rdquo;值系数的数目。量化是图像质量下降的最主要原因。</p>

<p>因为人眼对亮度信号比对色差信号更敏感,因此使用了下表两种量化表:亮度量化值和色差量化值。</p>

<h3 id="_18">JPEG亮度量化表</h3>

<p>&nbsp;</p>

<div style="text-align: center;"></div>

<p>&nbsp;</p>

<h3 id="_20">JPEG色度量化</h3>

<p>&nbsp;</p>

<div style="text-align: center;"></div>

<p>&nbsp;</p>

<h2 id="_22">程序流程设计</h2>

<p>程序流程设计中首先要进行外设使能配置,接着进行LCD管脚复用配置和LCD中断配置,进行LCD显示的初始化,然后读取工程目录下的BMP图像并进行图片的色彩分离,进行DCT和IDCT变换,最后将图像还原并将图像数据显示到LCD上。</p>

<p>&nbsp;</p>

<div style="text-align: center;"></div>

<p>&nbsp;</p>

<h2 id="_25">图形处理库</h2>

<p>C6000 图像处理库 (IMGLIB) 是为 C 程序员优化的图像/视频处理函数库。它包括 C 可调用的通用图像/视频处理例程,使用这些例程,可以获得比使用同等标准 ANSI C 语言代码更高的性能。通过提供带有源代码的即用型 DSP 功能,IMGLIB 可以显着缩短应用程序开发时间。提供的功能包括压缩、视频处理、机器视觉和医学成像。本实验中使用的功能是图像压缩和解压,实现正向和反向 DCT。</p>

<p>TMS320C6748处理器使用的是imglib_c64Px_3_1_0_1。</p>

<p>imglib_c64Px_3_1_0_1</p>

<p>将安装到CCS5.5 的安装路径,安装完成后会有相应的文件夹出现。源码所在路径:\imglib_c64Px_3_1_0_1\packages\ti\vlib\src</p>

<p>&nbsp;</p>

<div style="text-align: center;"></div>

<p>&nbsp;</p>

<h2 id="_31">DCT变换</h2>

<p>程序使用 IMGLIB 的库来进行DCT变换,调用的程序源码和使用说明可以安装IMGLIB后查看。调用的DCT变换函数中,第一个参数是指向 8x8 DCT 块的指针,第二个参数是DCT块的数量。</p>

<p>&nbsp;</p>

<div style="text-align: center;"></div>

<p>&nbsp;</p>

<h2 id="_34">IDCT反变换</h2>

<p>程序使用 IMGLIB 的库来进行IDCT反变换,调用的程序源码和使用说明可以安装IMGLIB后查看。调用的DCT变换函数中,第一个参数是指向 8x8 IDCT 块的指针,第二个参数是IDCT块的数量。</p>

<p>&nbsp;</p>

<div style="text-align: center;"></div>

<p>&nbsp;</p>

<h1 id="_37">三、操作现象</h1>

<h2 id="_38">实验设备</h2>

<p>&nbsp;</p>

<div style="text-align: center;"></div>

<p>&nbsp;</p>

<h2 id="_40">硬件连接</h2>

<p>(1)连接仿真器和电脑的USB接口,</p>

<p>(2)将拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。</p>

<p>&nbsp;</p>

<div style="text-align: center;"></div>

<p>&nbsp;</p>

<h2 id="_44">软件操作</h2>

<p>导入工程,选择Demo文件夹下的对应工程</p>

<p>编译工程,生成可执行文件</p>

<p>将CCS连接实验箱并加载程序</p>

<p>程序加载完成后点击运行程序</p>

<p>运行程序后,CCS的Console窗口会打印相关信息,同时LCD会显示标题。</p>

<p>稍等片刻后,图像处理完成,LCD会显示原图像、DCT变换图像、IDCT变换图像及还原后的图像。</p>

<p>实验结束后,先点击黄色按钮暂停程序运行,再点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。</p>

<p>&nbsp;</p>

<div style="text-align: center;"></div>

<p>&nbsp;</p>

<p>&nbsp;</p>

<div style="text-align: center;"></div>

<p>&nbsp;</p>

通途科技 发表于 2024-9-8 19:18

页: [1]
查看完整版本: 基于TIC6000 DSP教学实验箱_数字图像处理操作教程:5-20 图像离散余弦变换(LCD显示)