名称字节数值
------------------
段标识1FF
段类型1D9
------------------
说明:这两个字节构成了JPEG文件尾。
三、实例分析
用系统自带的画图程序画一个32×24的红色方块,另存为JPG文件,这个文件的全部数据如下:
0000:FFD8FFE000104A464946000101010060
0010:00600000FFDB00430008060607060508
0020:0707070909080A0C140D0C0B0B0C1912
0030:130F141D1A1F1E1D1A1C1C20242E2720
0040:222C231C1C2837292C30313434341F27
0050:393D38323C2E333432FFDB0043010909
0060:090C0B0C180D0D1832211C2132323232
0070:32323232323232323232323232323232
0080:32323232323232323232323232323232
0090:3232323232323232323232323232FFC0
00A0:00110800180020030122000211010311
00B0:01FFC4001F0000010501010101010100
00C0:00000000000000010203040506070809
00D0:0A0BFFC400B510000201030302040305
00E0:0504040000017D010203000411051221
00F0:31410613516107227114328191A10823
0100:42B1C11552D1F02433627282090A1617
0110:18191A25262728292A3435363738393A
0120:434445464748494A535455565758595A
0130:636465666768696A737475767778797A
0140:838485868788898A9293949596979899
0150:9AA2A3A4A5A6A7A8A9AAB2B3B4B5B6B7
0160:B8B9BAC2C3C4C5C6C7C8C9CAD2D3D4D5
0170:D6D7D8D9DAE1E2E3E4E5E6E7E8E9EAF1
0180:F2F3F4F5F6F7F8F9FAFFC4001F010003
0190:01010101010101010100000000000001
01A0:02030405060708090A0BFFC400B51100
01B0:02010204040304070504040001027700
01C0:01020311040521310612415107617113
01D0:22328108144291A1B1C109233352F015
01E0:6272D10A162434E125F11718191A2627
01F0:28292A35363738393A43444546474849
0200:4A535455565758595A63646566676869
0210:6A737475767778797A82838485868788
0220:898A92939495969798999AA2A3A4A5A6
0230:A7A8A9AAB2B3B4B5B6B7B8B9BAC2C3C4
0240:C5C6C7C8C9CAD2D3D4D5D6D7D8D9DAE2
0250:E3E4E5E6E7E8E9EAF2F3F4F5F6F7F8F9
0260:FAFFDA000C03010002110311003F00E2
0270:E8A28AF993F710A28A2800A28A2800A2
0280:8A2803FFD9
分析:
0000-0001:FFD8(文件头)
0002-0013:APP0段,其中:
0002-0003:FFE0(段标记)
0004-0005:0010(段长度=16字节)
0006-000A:4A46494600(“JFIF”的ASCII码)
000B-000C:0101(主次版本号=1.01)
000D:01(密度单位为点数/英寸)
000E-0011:00600060(水平和垂直的密度均为每英寸96像素)
0012-0013:0000(没有缩略图)
0014-0058:DQT段,其中:
0014-0015:FFDB(段标记)
0016-0017:0043(段长度=67字节)
0018:00(QT号=0,QT精度=8bit)
0019-0058:QT
0059-009D:DQT段,其中:
0059-005A:FFDB(段标记)
005B-005C:0043(段长度=67字节)
005D:01(QT号=1,QT精度=8bit)
005E-009D:QT
009E-00B0:SOF0段,其中:
009E-009F:FFC0(段标记)
00A0-00A1:0011(段长度=17字节)
00A2:08(样本精度=8bit)
00A3-00A6:00180020(图像高=24,图像宽=32)
00A7:03(组件数量=3,YCbCr彩色图)
00A8:01(ID号=1,这是亮度Y组件)
00A9:22(化为二进制=00100010,表明垂直和水平采样系数均=2)
00AA:00(使用QT号=0的量化表)
00AB:02(ID号=2,这是色度Cb组件)
00AC:11(化为二进制=00010001,表明垂直和水平采样系数均=1)
00AD:01(使用QT号=1的量化表)
00AE:03(ID号=3,这是色度Cr组件)
00AF:11(化为二进制=00010001,表明垂直和水平采样系数均=1)
00B0:01(使用QT号=1的量化表)
00B1-00D1:DHT段,其中:
00B1-00B2:FFC4(段标记)
00B3-00B4:001F(段长度=31字节)
00B5:00(HT号=0,DC表)
00B6-00C5:这16个数字之和=12,说明下面的HT值表的长度=12字节)
00C6-00D1:HT值表
00D2-0188:DHT段,这是HT号=0的AC表,参照上面分析
0189-01A9:DHT段,这是HT号=1的DC表,参照上面分析
01AA-0260:DHT段,这是HT号=1的AC表,参照上面分析
0261-026E:SOS段,其中:
0261-0262:FFDA(段标记)
0263-0264:000C(段长度=12字节)
0265:03(组件数量=3)
0266-0267:0100(组件ID=1,Y组件,使用HT表号=0的AC表)
0268-0269:0211(组件ID=2,Cb组件,使用HT表号=1的DC表)
026A-026B:0311(组件ID=3,Cr组件,使用HT表号=1的DC表)
026C-026E:003F00(几乎每个JPG文件中这3个字节的值都相同,但用途不明)
026F-0282:图像压缩数据
0283-0284:FFD9(文件尾)