JPEG文件由八個部分組成,每個部分的標記字節為兩個,首字節固定為:0xFF,當然,準許在其前面再填充多個0xFF,以最后一個為準。下面為各部分的名稱和第二個標記字節的數值,用ultraedit的16進制搜索功能可找到各部分的起始位置,在嵌入式系統中可用類似的數值匹配法定位。
一、圖像開始SOI(Start of Image)標記,數值0xD8
二、APP0標記(Marker),數值0xE0
1、APP0長度(length)
2、標識符(identifier)
3、版本號(version)
4、X和Y的密度單位(units=0:無單位;units=1:點數/英寸;units=2:點數/厘米)
5、X方向像素密度(X density)
6、Y方向像素密度(Y density)
7、縮略圖水平像素數目(thumbnail horizontal pixels)
8、縮略圖垂直像素數目(thumbnail vertical pixels)
9、縮略圖RGB位圖(thumbnail RGB bitmap),由前面的數值決定,取值3n,n為縮略圖總像素
三、APPn標記(Markers),其中n=1~15,數值對應0xE1~0xEF
1、APPn長度(length)
2、應用細節信息(application specific information)
四、一個或者多個量化表DQT(difine quantization table),數值0xDB
1、量化表長度(quantization table length)
2、量化表數目(quantization table number)
3、量化表(quantization table)
五、幀圖像開始SOF0(Start of Frame),數值0xC0
1、幀開始長度(start of frame length)
2、精度(precision),每個顏色分量每個像素的位數(bits per pixel per color component)
3、圖像高度(image height)
4、圖像寬度(image width)
5、顏色分量數(number of color components)
6、對每個顏色分量(for each component)
包括:ID、垂直方向的樣本因子(vertical sample factor)、水平方向的樣本因子(horizontal sample factor) 、量化表號(quantization table#)
六、一個或者多個霍夫曼表DHT(Difine Huffman Table),數值0xC4
1、霍夫曼表的長度(Huffman table length)
2、類型、AC或者DC(Type, AC or DC)
3、索引(Index)
4、位表(bits table)
5、值表(value table)
七、掃描開始SOS(Start of Scan),數值0xDA
1、掃描開始長度(start of scan length)
2、顏色分量數(number of color components)
3、每個顏色分量
包括:ID、交流系數表號(AC table #)、直流系數表號(DC table #)
4、壓縮圖像數據(compressed image data)
八、圖像結束EOI(End of Image),數值0xD9
以上為基本可供檢索的信息,細節內容不是小篇幅可以說清的,那可是一本書中至少一章的內容,幾十頁紙啊,最好到書店去買一本相關工具書,搞圖像可少不了書的。
解碼程序:http://m.zg4o1577.cn/bbs/dpj-92775-1.html
|