随笔 - 27,  文章 - 0,  评论 - 3,  阅读 - 43120

    接上一篇JPEG压缩数据格式,本篇文章通过分析实例图片来理解学习文件格式。

图片实例一、

    通过16进制打开图片一,如下图所示,所有的标记和标记段已标出。

 

 

 依次解析这些字段:

①、SOI:独立标记,标识图像开始;

②、APP0:预留的APP数据,APP0一般为交换格式和图像识别信息。

       00 10  => APP0段长度等于16字节

       4A 46 49 46 00 =>ASCII码"JFIF",包含一个空字符

       01 01 =>主版本号01,次版本号01

       00  =>像素密度单位; 0=无单位;1=点数/英寸;2=点数/厘米

       00  01 => 水平方向密度

       00 01 => 垂直方向密度

       00 00 => 缩略图水平像素数目 缩略图垂直像素数目

③、DQT:定义量化表

       00 43 => DQT段长度是67字节

       00      => 量化表精度是8Bit,标号0量化表

       08 ~ 33 => 这64字节为标号0的量化表数据

④、DQT:定义量化表

       00 43 => DQT段长度是67字节

       01      => 量化表精度是8Bit,标号1量化表

       09 ~ 33 => 这64字节为标号1的量化表数据

⑤、SOF0:表示使用Baseline DCT变化、霍夫曼编码

       00 11 => 本段长度是17字节

       08      => 采样精度是8bit

       01 B9 => 图像高度为441像素

       01 66 => 图像宽带为358像素

       03      => 图像包含三个分量,为YCbCr图像  (1=灰度图,3=YCbCr/YIQ 彩色图,4=CMYK 彩色图)

       01 22 00 => Y分量的水平采样因子=2,垂直采样因子=2,使用标号0的量化表

       02 11 01 => Cb分量的水平采样因子=1,垂直采样因子=1,使用标号1的量化表

       03 11 01 => Cr分量的水平采样因子=1,垂直采样因子=1,使用标号1的量化表l

⑥、DHT:定义霍夫曼编码表

       00 1F  => 本段长度为31字节

       00       => DC表,标号0

       00 01 05 01 01 01 01 01 01 00 00 00 00 00 00 00 => 表示16种霍夫曼码的每种数量,可以累加这16个数=12

       00 01 02 03 04 05 06 07 08 09 0A 0B                    => 这12个数表示每种霍夫曼关联的值

⑦、DHT:定义霍夫曼编码表

       00 B5  => 本段长度为181字节

       10       => 交流表,标号0

       00 02 01 03 03 02 04 03 05 05 04 04 00 00 01 7D  => 表示16种霍夫曼码的每种数量,可以累加这16个数=162

       01 02  03 ... F8 F9 FA => 这162个数表示每种霍夫曼关联的值

⑧、DHT:定义霍夫曼表

       00 1F  => 本段长度为31字节

       01       => DC表,标号1

       00 03 01 01 01 01 01 01 01 01 01 00 00 00 00 00   => 表示16种霍夫曼码的每种数量,可以累加这16个数=12

       00 01 02 03 04 05 06 07 08 09 0A 0B                      => 这12个数表示每种霍夫曼关联的值

⑨、DHT:定义霍夫曼编码表

       00 B5  => 本段长度为181字节

       11       => 交流表,标号1

        00 02 01 02 04 04 03 04 07 05 04 04 00 01 02 77 =>  表示16种霍夫曼码的每种数量,可以累加这16个数=162

        00 1 02 ... F8 F9 FA => 这162个数表示每种霍夫曼关联的值

⑩、SOS:扫描数据开始

       00 0C  => SOS标记段长度是12字节

       03      => 图像包含三个分量,为YCbCr图像  (1=灰度图,3=YCbCr/YIQ 彩色图,4=CMYK 彩色图),与SOF0中的字段相同

       01 00 => 图像第一分量(Y),选择标号0的DC霍夫曼表和标号0的AC霍夫曼表

       02 11 => 图像第二分量(Cb),选择标号1的DC霍夫曼表和标号1的AC霍夫曼表

       03 11 => 图像第三分量(Cr),选择标号1的DC霍夫曼表和标号1的AC霍夫曼表

 

       00      => 在Baseline DCT中,值为0

       3F      => 在Baseline DCT中,值为63

       00      => 在Baseline DCT中,值为0

       在SOS段之后紧跟着的就是图像编码数据,按照扫描行排列,数据以zig-zag顺序是从左到右、从上到下。

       F7 FA 28 ... 56 65 73 => 图像编码数据

⑪、EOI:独立标记,标识图像结束;

       

posted on   沉默的思想  阅读(1117)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示