JPEG文件結構

      JPEG文件由八個部分組成,每一個部分的標記字節爲兩個,首字節固定爲:0xFF,固然,准許在其前面再填充多個0xFF,以最後一個爲準。下面爲各部分的名稱和第二個標記字節的數值,用ultraedit的16進制搜索功能可找到各部分的起始位置,在嵌入式系統中可用相似的數值匹配法定位。html

      段結構:段標識(FF)+段類型(D8)+段長度+段內容,段長度:2byte,包括段內容和段長度自己,不包括段標識和段類型。app

段類型表:ide

  • 名稱   標記碼    說明
  • SOI     D8    文件頭
  • EOI     D9   文件尾
  • SOF0  C0    幀開始(標準JPEG)
  • SOF1  C1    同上
  • DHT   C4   定義Huffman表(霍夫曼表)
  • SOS   DA   掃描行開始
  • DQT   DB   定義量化表
  • DRI   DD   定義從新開始間隔
  • APP0  E0   定義交換格式和圖像識別信息
  • COM   FE   註釋
 

1、圖像開始SOI(Start of Image)標記,數值0xD8ui

2、APP0標記(Marker),數值0xE0url

一、APP0長度(length)                            2bytecomponent

二、標識符(identifier)                     5byteorm

三、版本號(version)                        2bytehtm

四、X和Y的密度單位(units=0:無單位;units=1:點數/英寸;units=2:點數/釐米)                        1byteblog

五、X方向像素密度(X density)                      2byte索引

六、Y方向像素密度(Y density)                       2byte

七、縮略圖水平像素數目(thumbnail horizontal pixels)                       1byte

八、縮略圖垂直像素數目(thumbnail vertical pixels)                            1byte

九、縮略圖RGB位圖(thumbnail RGB bitmap),由前面的數值決定,取值3n,n爲縮略圖總像素   3n byte

3、APPn標記(Markers),其中n=1~15,數值對應0xE1~0xEF   

一、APPn長度(length)

二、應用細節信息(application specific information)

參考:http://www.cppblog.com/lymons/archive/2010/02/23/108266.aspx

4、一個或者多個量化表DQT(difine quantization table),數值0xDB

一、量化表長度(quantization table length)

二、量化表序號(quantization table number)

三、量化表(quantization table)

5、幀圖像開始SOF0(Start of Frame),數值0xC0

一、幀開始長度(start of frame length)

二、精度(precision),每一個顏色份量每一個像素的位數(bits per pixel per color component)

三、圖像高度(image height)

四、圖像寬度(image width)

五、顏色份量數(number of color components)

六、對每一個顏色份量(for each component)

包括:ID、垂直方向的樣本因子(vertical sample factor)、水平方向的樣本因子(horizontal sample factor) 、量化表號(quantization table#)

 

6、一個或者多個霍夫曼表DHT(Difine Huffman Table),數值0xC4

一、霍夫曼表的長度(Huffman table length)

二、類型、AC或者DC(Type, AC or DC)

三、索引(Index)

四、位表(bits table)

五、值表(value table)

①JPEG文件裏有2類Haffman表:一類用於DC(直流量),一類用於AC(交流量)。通常有4個表:亮度的DC和AC,色度的DC和AC。最多可有6個。

②一個DHT段能夠包含多個HT表,每一個都有本身的信息字節③HT表是一個按遞增次序代碼長度排列的符號表。

7、掃描開始SOS(Start of Scan),數值0xDA

一、掃描開始長度(start of scan length)

二、顏色份量數(number of color components)

三、每一個顏色份量

包括:ID、交流係數表號(AC table #)、直流係數表號(DC table #)

四、壓縮圖像數據(compressed image data)

8、圖像結束EOI(End of Image),數值0xD9

參考文章:http://wenku.baidu.com/link?url=a5ucr_urgkDLhnfX1XwkwNok_YkngnJ0MZ1WUDnEusEKl67GPdkZBVFbVIuiK-X7MPCwQCBsyr8LpwXO6h5NW59NmD6lhMtPgU66wdX_0O7

http://www.360doc.com/content/14/1027/14/20066350_420310862.shtml

轉載請註明地址:http://www.cnblogs.com/bandy/p/4956086.html

相關文章
相關標籤/搜索