为什么压缩图片和压缩

为什么要压缩图片?

表示图像需要大量的数据,但图像数据是高度相关的,或者说存在冗余(Redundancy)信息,去掉这些冗余信息后可以有效压缩图像,同时又不会损害图像的有效信息。

视网膜上有两种感光细胞,能够感知亮度变化的视杆细胞,以及能够感知颜色的视锥细胞,由于视杆细胞在数量上远大于视锥细胞,所以我们更容易感知到明暗细节。


数字图像的冗余表现为以下几种形式:空间冗余、时间冗余、视觉冗余、信息熵冗余、结构冗余和知识冗余。

(1)空间冗余:图像内部相邻像素之间存在较强的相关性所造成的冗余。

(2)时间冗余:视频图像序列中的不同帧之间的相关性所造成的冗余。

(3)视觉冗余:是指人眼不能感知或不敏感的那部分图像信息。

(4)信息熵冗余:也称编码冗余,如果图像中平均每个像素使用的比特数大于该图像的信息熵,则图像中存在冗余,这种冗余称为信息熵冗余。

(5)结构冗余:是指图像中存在很强的纹理结构或自相似性。

(6)知识冗余:是指有些图像还包含与某些先验知识有关的信息。

压缩分类

无损压缩:第一类压缩过程是可逆的,也就是说,从压缩后的图象能够完全恢复出原来的图象,信息没有任何丢失

有损压缩:第二类压缩过程是不可逆的,无法完全恢复出原图象,信息有一定的丢失

压缩图片的应用

图象压缩一般通过改变图象的表示方式来达到,因此压缩和编码是分不开的。图象压缩的主要应用是图象信息的传输和存储,可广泛地应用于广播电视、电视会议、计算机通讯、传真、多媒体系统、医学图象、卫星图象等领域。

编码的种类

    压缩编码的方法有很多,主要分成以下四大类:(1)象素编码;

                                                                                (2)预测编码;

                                                                                (3)变换编码;

                                                                                (4)其它方法。

             

1:所谓象素编码是指,编码时对每个象素单独处理,不考虑象素之间的相关性。

2:所谓预测编码是指,去除相邻象素之间的相关性和冗余性,只对新的信息进行编码。举个简单的例子,因为象素的灰度是连续的,所以在一片区域中,相邻象素之间灰度值的差别可能很小。如果我们只记录第一个象素的灰度,其它象素的灰度都用它与前一个象素灰度之差来表示,就能起到压缩的目的。如248,2,1,0,1,3,实际上这6个象素的灰度是248,250,251,251,252,255。表示250需要8个比特,而表示2只需要两个比特,这样就实现了压缩。

3:所谓变换编码是指,将给定的图象变换到另一个数据域(如频域)上,使得大量的信息能用较少的数据来表示,从而达到压缩的目的。

JPEG压缩算法

JPEG算法的第一步:图像被分割成大小为8X8的小块,

第二步:颜色转换RGB为YCbCr

所谓“颜色空间”,是指表达颜色的数学模型,比如我们常见的“RGB”模型,就是把颜色分解成红绿蓝三种分量,这样一张图片就可以分解成三张灰度图,数学表达上,每一个8X8的图案,可以表达成三个8X8的矩阵,其中的数值的范围一般在[0,255]之间。

不同的颜色模型各有不同的应用场景,例如RGB模型适合于像显示器这样的自发光图案,而在JPEG压缩算法中,需要把图案转换成为YCbCr模型,这里的Y表示亮度(Luminance),Cb和Cr分别表示绿色和红色的“色差值”。

人们发现红绿蓝三种颜色所贡献的亮度是不同的,绿色的“亮度”最大,蓝色最暗,设红色所贡献的亮度的份额为KR,蓝色贡献的份额为KB,

最终可以得到RGB转换为YCbCr的数学公式为

PEG把图像转换为YCbCr之后,就可以针对数据得重要程度的不同做不同的处理。

第三步:DCT(离散余弦变换)

利用数学函数,将矩阵

第四步:量化

离散余弦变换,图像数据虽然已经面目全非,但仍然是处于“可逆”的状态。

JPEG压缩的最后一步:对数据进行哈弗曼编码

JPEG压缩过程总结

整个JPEG压缩图片的过程:

  • 将整张图片分为若干8*8的矩阵
  • 对每个8*8矩阵进行DCT变换
  • 对DCT后的矩阵进行量子化
  • 重新进行ZIGZAG排序
  • 将DC分量和AC分量分别进行DPCM和RLE编码
  • 将整体信息进行Huffman编码
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值