使用Matlab实现JPEG压缩

姓名:李伟      学号:17101223393

【嵌牛导读】:大家都应该都知道图像压缩,但是你们都知道压缩的详细过程吗?今天和大家分享一下。

【嵌牛鼻子】:DCT 变换、图像压缩。

【嵌牛提问】:DCT变换的计算过程

【嵌牛正文】:

一、图像压缩原理

图像分成 8*8 小块 –> DCT 变换 –>用量化表对其量化 –>编码生成压缩数据

二、具体压缩过程

1、将原始图像分为 8 * 8 的小块, 每个 block 里有 64 个像素。

2、 将图像中每个 8 * 8 的 block 进行 DCT 变换。8 * 8 的图象经过 DCT 变换后,其低频分量都集中在左上角,高频分量分布在右下角。由于该低频分量包含了图象的主要信息(如亮度),而高频与之相比,就不那么重要了,所以我们可以忽略高频分量。

3、 利用量化表抑制高频变量。量化操作,就是将某一个值除以量化表中对应的值。由 于量化表左上角的值较小,右上角的值较大,这样就起到了保持低频分量,抑制高 频分量的目的。压缩时候将彩色图像的颜色空间由 RGB 转化为 YUV 格式。其中 Y 分量代表了亮度信息,UV 分量代表了色差信息。相比而言,Y 分量更重要一些。 我们可以对 Y 采用细量化,对 UV 采用粗量化,可进一步提高压缩比。所以量化表 通常有两张,一张是针对 Y 的标准亮度量化表;一张是针对 UV 的标准色彩量化表。

4、 经过量化之后右下角大部分数据变成了 0,左上角为非零数据。这时使用 Z 字型(如 图所示)的顺序来重新排列数据生成一个整数数组,这样 0 就位于数组都后端。找到数组最后一个非零元素,将其后的数据都舍弃,并加上结束标志。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 版本记录 前言 只要是做图片的或者与图片相关的,那么图片的格式就是一个不可以绕过的问题,我们见过很多的图片格式,但...
    刀客传奇阅读 14,451评论 0 5
  • 姓名:李伟 学号:17101223393 【嵌牛导读】:大家对JPEG了解吗?今天和大家分享一下。 【嵌牛鼻子...
    LW_e565阅读 2,962评论 0 1
  • JPEG是Joint Photographic Exports Group的英文缩写,中文称之为联合图像专家小组。...
    Persistently阅读 692评论 0 0
  • 最近在看图像的压缩,就想着先实现一个jpeg文件的解码。本来以为这种资料在网上会一搜一大堆,但搜了之后才发现很多网...
    月夢書阅读 10,927评论 6 14
  • 小宝会翻身啦,最近几天总是喜欢翻转身体,但只能把下半身转了过去,留下头和手就是不够力转,那个急啊,直接就大哭大闹起...
    小妤简书阅读 113评论 0 0