没有合适的资源?快使用搜索试试~ 我知道了~
首页JPEG编-解码详细解读
JPEG编-解码详细解读
需积分: 16 10 下载量 147 浏览量
更新于2023-03-16
1
收藏 66KB DOCX 举报
里面有很详细的jpeg编辑码的解读,以及一些简单的实例,可以动手试试看,非常详细
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/6643183/bg1.jpg)
JPEG 文件编/解码详解
猫猫
()是联合图像专家小组的英文缩写。
它由国际电话与电报咨询委员会 (
)与国际标准化组织 于 ! 年联合成立
的一个小组,负责制定静态数字图像的编码标准。
小组一直致力于标准化工作,开发研制出连续色调、多级灰度、静止图像
的数字图像压缩编码方法,即 算法。 算法被确定为国际通用标准,
其适用范围广泛,除用于静态图像编码外,还推广到电视图像序列的帧内图像
压缩。而用 算法压缩出来的静态图片文件称为 文件,扩展名通常为
"#$、"#$"#$。
专家组开发了两种基本的压缩算法、两种数据编码方法、四种编码模
式。具体如下:
压缩算法:
有损的离散余弦变换(%&,%);
无损的预测技术压缩。
数据编码方法:
哈夫曼编码;
算术编码;
编码模式:
基于 % 顺序模式:编'解码通过一次扫描完成;
![](https://csdnimg.cn/release/download_crawler_static/6643183/bg2.jpg)
基于 % 递进模式:编'解码需要多次扫描完成,扫描效果从粗糙到精细,
逐级递进;
无损模式:基于 %(,保证解码后完全精确恢复到原图像采样值;
层次模式:图像在多个空间多种分辨率进行编码,可以根据需要只对低
分辨率数据作解码,放弃高分辨率信息。
在实际应用中, 图像使用的是离散余弦变换、哈夫曼编码、顺序模式。
压缩编码算法的主要计算步骤如下:
)*+ " 分块。
)+正向离散余弦变换),%+。
)-+量化)./+。
)0+1 字形编码)//+。
)2+使用差分脉冲编码调制)%(+对直流系数)%+进行编码。
)3+使用行程长度编码)45+对交流系数)6+进行编码。
)!+熵编码。
笔者在实践过程中查阅了大量的资料,发现大多数书籍资料和网上资料都
是从编码角度分析 的编'解码方式,并且都只是介绍编码过程中的主要方
法。所以,本文从解码角度详细分析 的编'解码过程,并且加入许多笔者
实践过程中遇到的问题和解决方法,希望从另一个角度说明问题,以更好帮助
读者结合其他资料解决问题。
不过,介绍解码过程之前,首先要了解 文件中数据的存储格式。
![](https://csdnimg.cn/release/download_crawler_static/6643183/bg3.jpg)
一、JPEG 文件格式介绍
文件使用的数据存储方式有多种。最常用的格式称为 文件交换
格式(,,,,,)。而 文件大体上可以分成两
个部分:标记码)+和压缩数据。
标记码由两个字节构成,其前一个字节是固定值 *,,,后一个字节则根据
不同意义有不同数值。在每个标记码之前还可以添加数目不限的无意义的 *,,
填充,也就说连续的多个 *,, 可以被理解为一个 *,,,并表示一个标记码的
开始。而在一个完整的两字节的标记码后,就是该标记码对应的压缩数据流,
记录了关于文件的诸种信息。
常用的标记有 、6*、%7、,*、%8、%4、、。
注意, 等都是标记的名称。在文件中,标记码是以标记代码形式出现。
例如 的标记代码为 *,,% ,即在 文件中的如果出现数据 *,,% ,
则表示此处为一个 标记。
本文附录列出一张完整的 定义的标记表,供读者查阅。这里仅列出几
个常用标记的标记代码、占用字节长度和表示的意义。
99999999SOI,&,图像开始
9标记代码 - 字节 固定值 *,,%
999999APP0,6,应用程序保留标记 *
9标记代码 - 字节 固定值 *,,*
9包含 个具体字段:
9①数据长度 - 字节 ①:⑨9 个字段的总长度
即不包括标记代码,但包括本字段
![](https://csdnimg.cn/release/download_crawler_static/6643183/bg4.jpg)
9②标识符 3 字节 固定值 *262!22!**,即字符串
“,,*;
9③版本号 - 字节 一般是 ***-,表示 ,, 的版本号 #-
99 可能会有其他数值代表其他版本
9④< 和 = 的密度单位 字节 只有三个值可选
*:无单位;:点数'英寸;-:点数'厘米
9⑤< 方向像素密度 - 字节 取值范围未知
9⑥= 方向像素密度 - 字节 取值范围未知
9⑦缩略图水平像素数目 字节 取值范围未知
9⑧缩略图垂直像素数目 字节 取值范围未知
9⑨缩略图 4> 位图 长度可能是 0 的倍数 缩略图 4> 位图
数据
本标记段可以包含图像的一个微缩版本,存为 -2 位的 4> 像素。如果
没有微缩图像(这种情况更常见),则字段⑦“缩略图水平像素数目”和字段
⑧“缩略图垂直像素数目”的值均为 *。
999999APPn,6,应用程序保留标记 ,其中 ?~3)任选+
9标记代码 - 字节 固定值 *,,:*,,,
9包含 - 个具体字段:
9①数据长度 - 字节 ①:②2 个字段的总长度
即不包括标记代码,但包括本字段
9②9详细信息 数据长度@- 字节 内容不定
![](https://csdnimg.cn/release/download_crawler_static/6643183/bg5.jpg)
例如,6A 生成的 图像中就用了 6 和 60 两
个标记段分别存储了一幅图像的副本。
999999DQT,%&7/A,定义量化表
9标记代码 - 字节 固定值 *,,%>
9包含 个具体字段:
9①数据长度 - 字节 字段①和多个字段②的总长度
即不包括标记代码,但包括本字段
9②9量化表 数据长度@- 字节
+99999999精度及量化表 % 字节 高 2 位:精度,只有两个可选值
*: 位;:! 位
低 2 位:量化表 %,取值范围为 *~0
A+9999999表项 )!2B)精度C++字节 例如 位精度的量化表
其表项长度为 !2B(*C)?!2 字节
本标记段中,字段②可以重复出现,表示多个量化表,但最多只能出现
4 次。
999999SOF0,&,,帧图像开始
9标记代码 - 字节 固定值 *,,*
9包含 个具体字段:
9①数据长度 - 字节 ①:⑥ 六个字段的总长度
即不包括标记代码,但包括本字段
②精度 字节 每个数据样本的位数
通常是 位,一般软件都不支持 - 位和 ! 位
剩余27页未读,继续阅读
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)