matlab数据块的dct编码,[转载]基于DCT图像压缩编码算法的MATLAB实现

这篇博客详细介绍了图像压缩的过程,包括映射变换、量化器和熵编码器的作用。重点讨论了离散余弦变换(DCT)在图像压缩中的应用,解释了DCT的定义和图像压缩原理,并提供了MATLAB的仿真实现步骤,包括DCT变换、量化、预测编码和熵编码等。还探讨了无损和有损编码的区别以及保真度准则。
摘要由CSDN通过智能技术生成

图像压缩的过程可以概括成图所示的三个步骤,原始图像经映射变换后的数据再经量化器和熵编码器成为码流输出。

(1)映射变换。其目的是通过映射改变图像数据的特性,使之更有利于压缩编码。

(2)量化器。在限失真编码中要对映射后的数据进行量化,若量化是对映射后的数据逐个的进行的,则称标准量化,若量化是成组的进行的,则称矢量量化,量化总会造成某些信息丢失,形成失真,即量化失真或量化噪声,为使失真小,应量化的精细,但压缩比就高不了,这是一对矛盾,应选用恰当的量化级数和量化曲线形状来缓解这对矛盾,量化器的引入是图像编码产生失真的根源,在要求复原图像与原图完全一致的无失真编码器中必须不用量化器,但这样一来,压缩比难以提高,在多数应用中,存在少量失真并不可怕,只要把失真的程

度和性质控制在允许的范围内,也就是把复原图像的主观质量控制在允许的程度内,就可以

在满足应用要求的前提下提高压缩比,值得注意的是,对于同样的量化失真,不同的映射变

换和反变换反映不同性质的复原图像的失真,人眼对某些性质的失真敏感而对另一些性质

的失真不敏感。

(3)熵编码器。这一步是用来消除符号编码冗余度的,它一般不产生失真,理想的情况

是编出的码流的平均码长等于量化后数据的信息熵,常用的编码方法有许多种,例如分组

码、行程码(RLC)和变长码(VLC)、不分组码以及算术码(Arithmatic Coing等)。行程码传输

的是数据行程长度而不是数据本身,例如要传108个0,用行程码是改为传行程码标记和行程长度1080在变长码中最常用的是霍夫曼(Hufman)码,基本原则是对出现概率大的数值用短码来编,对出现概率小的数值用长码来编,从而使平均码长减小。降低码率,在实际编码器中常把RLc和Hufman码结合起来,称为霍夫曼行程码,在H.261,JPEG,啪PEG等国际昧准中用到它,而算术码则用于JPEG,H.263,JBIG等国际标准中。

3) MATLAB仿真实现

根据压缩编码算法,要将一幅灰度图像进行压缩编码,首先把图像分成8×8的像素块,分块

进行DCT变换后,根据标准量化表Es]对变换系数进行量化后,再对直流系数(DC)进行预测编码,然后根据标准的Huffman码表蜘进行熵编码,输出压缩图像的比特序列,实现了图像压缩。在接收端,则经过Huffman熵解码、DC系数和AC系数可变长解码、反量化后,再进行反DCT变换得到重建图像。对一幅图像进行编解码的MATLAB程序流程图:

2、离散余弦变换(DCT)

2.1DCT的定义

DCT变换利用傅立叶变换的性质.采用图像边界褶翻将像变换为偶函数形式,然后对图像进行二维傅立叶变换,

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值