- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
光电图像处理综合课程设计
图像二维整数离散余弦变换(DCT)变换算法
和DSP实现
20 13年 10 月 23 日
PAGE
PAGE I
目录
摘要、关键词1
一. 背景1
二.课程设计的目的和任务1
三. 离散余弦变换原理1
四.整数离散余弦变换原理2
五.采用蝶形快速算法实现整数DCT3
程序设计流程图4
七. C语言程序设计4
八.结论8
九.心得8
参考文献8
PAGE
PAGE 1
摘 要 为了更有效地计算二维离散余弦变换——DCT,提出了一种直接作用于二维数据集的快速算法,分析了该算法的运算特点。并用C语音程序实现了一个4×4和8×8点的整数DCT变换。
关键词 离散余弦变换 二维 快速算法
一. 背景
离散余弦变换(简称DCT)自从1974年提出后,在图像和视频编码领域得到了广泛的应用,其变换性能在所有次优变换中非常显著,能极大地去除图像元素在变换域中的相关性,为高效率的图像压缩奠定了基础。因此不断有新的DCT的快速算法提出。二维DCT的常规算法是行、列法,对于计算N×N DCT,需要计算2N个一维DCT。为了更有效地计算二维DCT,在这里提出了一种直接作用于二维数据集的快速算法 该算法对于计算N×N DCT(N=)只需计算N个一维DCT(N=)因此,本算法的目的是减少运算次数,即所需乘法次数只是常规算法的一半。本算法的计算结构具有高度的规则性,并只要求用实数进行运算。
二. 课程设计的目的和任务
目的:
1.理解离散余弦变换和逆变换的原理;
2.理解整数离散余弦变换原理;
3.掌握4*4点的整数DCT变换,8*8点的整数DCT变换。
任务:
1.阐述离散余弦变换和逆变换的原理、整数离散余弦变换原理;
2.画出程序设计流程图;
3.C语言程序设计:4*4点的整数DCT变换;
4.DSP程序调试(基于实验现有图像处理程序);
5.完成课程设计报告撰写。
三.离散余弦变换原理
离散余弦变换(DCT for Discrete Cosine Transform)是与傅里叶变换相关的一种变换,它类似于离散傅里叶变换(DFT f),但是只使用实数。离散余弦变换相当于一个长度大概是它两倍的离散傅里叶变换,这个离散傅里叶变换是对一个实偶函数进行的(因为一个实偶函数的傅里叶变换仍然是一个实偶函数)。
二维离散余弦变换
正变换(公式1):
PAGE
PAGE 8
逆变换(公式2):
其中:
4×4变换系数矩阵如下:
更为简洁的定义方法是采用矩阵式定义。根据以上公式定义可知,离散余弦变换的系数矩阵可以写成如下:
四.整数离散余弦变换原理
由于DCT的变换矩阵式是用浮点数表示,浮点运算量较大,占用较多的系统资源。为了提高变换效率,DCT有发展出用定点计算或者较大的整型变换逼近浮点运算,由于存在精度误差,即使没有经过量化,反变换后也不能完全恢复图像数据,也就是编码的可逆性不强。整数变换的产生,同时解决了计算精度误差大和编码效率低的问题,其特点是用整数变换矩阵代替DCT的浮点数变换矩阵,这样变换过程完全是整数运算,不存在精度误差,保证了编码的可逆性;同时整数乘法可用加减法和位移代替,因此变换过程可以完全通过加减法和位移实现,运算量大幅度减少。
以4×4的图像块为例进行变换操作,则相应的4×4变换矩阵为:
相应的矩阵显示的二维DCT定义为
等效:
其中, d =c/b(≈01414). 为了简化计算, 取d =1/2,再经过加减和左移就可实现。整数DCT的变换与通常DCT运算结果近似,但因为b和c的值有所变化,所以结果有差别
五.采用蝶形快速算法实现整数DCT
观察公式(1),会发现F(u,v)可以通过两次一维整数DCT变换来实现,先对矩阵的每行进行一维整数DCT变换,在对所得矩阵的每列应用一维整数DCT进行变换,这样每次一维整数DCT就可以采用蝶形快速算法进行运算,可以节省运算时间,如下图所示:
蝶形快速算法利用了矩阵乘法中的重复单元,将这些冗余计算储存起来,很大程度上减少了运算次数,易于在DSP处理器上实现。
六.程序设计流程图
由于N×N二维离散函数f(x,y)的DCT变换为F(u,v),从公式(1)可看出其存在可分离性质:
根据可分离性原理,一次二维DCT变换,可以通过二次一维DCT正变换完成,其算法流程如下所示: F(u,v)=x*y
N×N二维离散序列f(x,y)F(x,v)F(u,v)
N×N二维离散序列f(x,y)
F(x,v)
F(u,v)
按行进行一维DCT变换按列进行一维DCT变换
按行进行一维DCT变换
按列进行一维DCT变换
七.C语言程序设计
4*4与8*8点的整数DCT变换只是数组的不同,两者算法的本质是一样的,这里以8*8为例,用C语言
您可能关注的文档
最近下载
- 2014职工履历表样表.doc VIP
- 招投标知识培训通用实用PPT解析课件.pptx
- 赣科技版信息科技七年级上册 第2课《网络硬件》第1课时《网络传输介质的分类》课件.pptx
- 山东省德州市2025年中考英语试题(含答案) .pdf VIP
- 小学2022年版科学课程标准解读与讲座分享课件.pptx VIP
- 第三单元 口语交际:长大以后做什么-写作指导+范文赏析+病文升格-2022-2023学年二年级语文下册同步写话素材积累(部编).docx VIP
- 便桥施工方案.docx VIP
- 2025年中职高考中职英语二轮专题 主谓一致课件(共80张PPT).pptx VIP
- 酒店保洁服务接管计划方案.docx VIP
- 《办公软件应用(Office 2016)》课件 项目8--任务1 使用图表分析员工考评成绩.pptx
原创力文档


文档评论(0)