总的比特数为31,其压缩比为64*8/31=16.5。
五、实验程序流程图
(1) 主程序流程图
图6.3 主程序流程图 (2)C-ENCODE
读入 图像 将Y划分成8X8的子图像块,UV划分成4X4的块 YUV分量的DCT变换和量化dct-quant() “之”字扫描zz-scan() 分别对YUV分量进行熵编码huff-vlc结束 开始 采集 C_ENCODE Y_ENCODE 结束 图6.4 彩色图像JPEG流程图
对于Y-ENCODE模块,其流程图与C-ENCODE类似,区别在于Y-ENCODE仅有Y分量。
六、实验步骤
1.步骤1至步骤6参见《DSP图像处理实验箱》实验指导书实验一的实验步骤介绍,其中在步骤2中加载JPEG编码工程,编译运行。在步骤6“选择实验类型”对话框中选择“图像处理实验”。
2. 选择“JPEG编码实验”。点击“开始”,通知下位机开始采集第一幅图像,如图6.5。 3.当“接收采集图像”按钮可点时,表明下位机图像采集完毕,点击“接收处理后图像”按钮,如图6.6。在实验过程中,若对采集到的图像不满意,可点击“停止”,重新开始实验。点击“取消”则停止实验,点击“保存”可保存图像。观察处理前后的图像变化
图6. 5 采集第一幅图像图 图 6.6 接收编码后的图像
七、实验内容
修改JPEG编码中的DCT变换、量化等函数,用汇编语言实现,统计程序修改前后的DCT、量化处理的时钟周期。本实验的工程文件在D:\\DSPLAB\\LAB6文件夹中。 1.找到C语言编写的DCT、量化函数,明确函数的入口、出口及函数功能。
2.编写DCT、量化的汇编程序文件,并添加到工程文件中。同时屏蔽原C语言编写的DCT、量化函数,修改cmd文件。
20
注意:混合编程中参数传递及函数命名规则(参考实验三)。 3. 重新编译、链接、运行程序,观察实验结果。
4. 统计程序修改前后的DCT、量化处理的时钟周期数。统计方法见教材376页,时钟测量部分内容。
5. 请尝试修改实验程序相关参数,压缩质量参数,来完成JPEG编码,并观察修改前后实验结果的不同之处(图像质量,图像文件大小)。
八、实验报告要求
1.简述JPEG编码的基本原理、步骤。 2. 编写DCT、量化的汇编程序。
3.记录实验结果(编码前后图像的质量、文件大小对比,DCT、量化程序修改前后时钟周期数对比)。
21