<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-57  評論-202  文章-17  trackbacks-0
    6.3 JPEG格式

    6.3.1 簡介

    微處理機中的存放順序有正序(big endian)和逆序(little endian)之分。正序存放就是高字節存放在前低字節在后,而逆序存放就是低字節在前高字節在后。例如,十六進制數為A02B,正序存放就是A02B,逆序存放就是2BA0。摩托羅拉(Motorola)公司的微處理器使用正序存放,而英特爾(Intel)公司的微處理器使用逆序。JPEG文件中的字節是按照正序排列的。


    JPEG委員會在制定JPEG標準時,定義了許多標記(marker)用來區分和識別圖像數據及其相關信息,但筆者沒有找到JPEG委員會對JPEG文件交換格式的明確定義。直到1998年12月從分析網上具體的JPG圖像來看,使用比較廣泛的還是JPEG文件交換格式(JPEG File Interchange Format,JFIF)
    本號為1.02。這是1992年9月由在C-Cube Microsystems公司工作的Eric Hamilton提出的。此外還有TIFF JPEG等格式,但由于這種格式比較復雜,因此大多數應用程序都支持JFIF文件交換格式。

    JPEG文件使用的顏色空間是CCIR 601推薦標準進行的彩色空間(參看第7章)。在這個彩色空間中,每個分量、每個像素的電平規定為255級,用8位代碼表示。從RGB轉換成YCbCr空間時,使用下面的精確的轉換關系:

           Y = 256 * E'y

          Cb = 256 * [E'Cb] + 128

          Cr = 256 * [E'Cr] + 128
    其中亮度電平E'y和色差電平E'Cb和E'Cb分別是CCIR 601定義的參數。由于E'y的范圍是0~1,E'Cb和E'Cb的范圍是-0.5~+0.5,因此Y, Cb和Cr的最大值必須要箝到255。于是RGB和YCbCr之間的轉換關系需要按照下面的方法計算。

    (1) 從RGB轉換成YCbCr

    YCbCr(256級)分量可直接從用8位表示的RGB分量計算得到:

           Y =   0.299 R + 0.587 G  + 0.114 B

         Cb = - 0.1687R - 0.3313G  + 0.5   B + 128

        Cr = 0.5 R - 0.4187G - 0.0813 B + 128

    需要注意的是不是所有圖像文件格式都按照R0,G0,B0,…… Rn,Gn,Bn的次序存儲樣本數據,因此在RGB文件轉換成JFIF文件時需要首先驗證RGB的次序。

    (2) 從YCbCr轉換成RGB

    RGB分量可直接從YCbCr(256級)分量計算得到:

         R = Y                 + 1.402 (Cr-128)

          G = Y - 0.34414 (Cb-128) - 0.71414 (Cr-128)

          B = Y + 1.772 (Cb-128)

    在JFIF文件格式中,圖像樣本的存放順序是從左到右和從上到下。這就是說JFIF文件中的第一個圖像樣本是圖像左上角的樣本。

    6.3.2 文件結構

    JFIF文件格式直接使用JPEG標準為應用程序定義的許多標記,因此JFIF格式成了事實上JPEG文件交換格式標準。JPEG的每個標記都是由2個字節組成,其前一個字節是固定值0xFF。每個標記之前還可以添加數目不限的0xFF填充字節(fill byte)。下面是其中的8個標記:

    1. SOI  0xD8            圖像開始
    2. APP0 0xE0            JFIF應用數據塊
    3. APPn 0xE1 - 0xEF    其他的應用數據塊(n, 1~15)
    4. DQT  0xDB           量化表
    5. SOF0 0xC0            幀開始
    6. DHT  0xC4           霍夫曼(Huffman)表
    7. SOS  0xDA           掃描線開始
    8. EOI  0xD9            圖像結束

    為使讀者對JPEG定義的標記一目了然,現將JPEG的標記碼列于表6-05,并保留英文解釋。

    表6-05 JPEG定義的標記

    Symbol

    (符號)

    Code Assignment

    (標記代碼)

    Description

    (說明)

    Start Of Frame markers, non-hierarchical Huffman coding

    SOF0

    0xFFC0

    Baseline DCT

    SOF1

    0xFFC1

    Extended sequential DCT

    SOF2

    0xFFC2

    Progressive DCT

    SOF3

    0xFFC3

    Spatial (sequential) lossless

    Start Of Frame markers, hierarchical Huffman coding

    SOF5

    0xFFC5

    Differential sequential DCT

    SOF6

    0xFFC6

    Differential progressive DCT

    SOF7

    0xFFC7

    Differential spatial lossless

    Start Of Frame markers, non-hierarchical arithmetic coding

    JPG

    0xFFC8

    Reserved for JPEG extensions

    SOF9

    0xFFC9

    Extended sequential DCT

    SOF10

    0xFFCA

    Progressive DCT

    SOF11

    0xFFCB

    Spatial (sequential) Lossless

    Start Of Frame markers, hierarchical arithmetic coding

    SOF13

    0xFFCD

    Differential sequential DCT

    SOF14

    0xFFCE

    Differential progressive DCT

    SOF15

    0xFFCF

    Differential spatial Lossless

    Huffman table specification

    DHT

    0xFFC4

    Define Huffman table(s)

    arithmetic coding conditioning specification

    DAC

    0xFFCC

    Define arithmetic conditioning table

    Restart interval termination

    RSTm

    0xFFD0~0xFFD7

    Restart with modulo 8 counter m

    Other marker

    SOI

    0xFFD8

    Start of image

    EOI

    0xFFD9

    End of image

    SOS

    0xFFDA

    Start of scan

    DQT

    0xFFDB

    Define quantization table(s)

    DNL

    0xFFDC

    Define number of lines

    DRI

    0xFFDD

    Define restart interval

    DHP

    0xFFDE

    Define hierarchical progression

    EXP

    0xFFDF

    Expand reference image(s)

    APPn

    0xFFE0~0xFFEF

    Reserved for application use

    JPGn

    0xFFF0~0xFFFD

    Reserved for JPEG extension

    COM

    0xFFFE

    Comment

    Reserved markers

    TEM

    0xFF01

    For temporary use in arithmetic coding

    RES

    0xFF02~0xFFBF

    Reserved

    JPEG文件由下面的8個部分組成:

    (1) 圖像開始SOI(Start of Image)標記

    (2) APP0標記(Marker)

    ① APP0長度(length)

    ② 標識符(identifier)

    ③ 版本號(version)

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

    ⑤ X方向像素密度(X density)

    ⑥ Y方向像素密度(Y density)

    ⑦ 縮略圖水平像素數目(thumbnail horizontal pixels)

    ⑧ 縮略圖垂直像素數目(thumbnail vertical pixels)

    ⑨ 縮略圖RGB位圖(thumbnail RGB bitmap)

    (3) APPn標記(Markers),其中n=1~15(任選)

    ① APPn長度(length)

    ② 由于詳細信息(application specific information)

    (4) 一個或者多個量化表DQT(difine quantization table)

    ① 量化表長度(quantization table length)

    ② 量化表數目(quantization table number)

    ③ 量化表(quantization table)

    (5) 幀圖像開始SOF0(Start of Frame)

    ① 幀開始長度(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)

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

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

    ③ 索引(Index)

    ④ 位表(bits table)

    ⑤ 值表(value table)

    (7) 掃描開始SOS(Start of Scan)

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

    ② 顏色分量數(number of color components)

    ③ 每個顏色分量

      • ID
      • 交流系數表號(AC table #)
      • 直流系數表號(DC table #)

    ④ 壓縮圖像數據(compressed image data)

    (8) 圖像結束EOI(End of Image)

    表6-06表示了APP0域的詳細結構。有興趣的讀者可通過UltraEdit或者PC TOOLS等工具軟件打開一個JPG圖像文件,對APP0的結構進行分析和驗證。

    表6-06 JFIF格式中APP0域的詳細結構

    偏移

    長度

    內容

    塊的名稱

    說明

    0

    2 byte

    0xFFD8

    (Start of Image,SOI)

    圖像開始

    2

    2 byte

    0xFFE0

    APP0(JFIF application segment)

    JFIF應用數據塊

    4

    2 bytes

     

    length of APP0 block

    APP0塊的長度

    6

    5 bytes

     

    "JFIF"+"0"

    識別APP0標記

    11

    1 byte

     

    <Major version>

    主要版本號(如版本1.02中的1)

    12

    1 byte

     

    <Minor version>

    次要版本號(如版本1.02中的02)

    13

    1 byte

     

    <Units for the X
    and Y densities>

    X和Y的密度單位

    units=0:無單位

    units=1:點數/英寸

    units=2:點數/厘米

    14

    2 bytes

     

    <Xdensity>

    水平方向像素密度

    16

    2 bytes

     

    <Ydensity>

    垂直方向像素密度

    18

    1 byte

     

    <Xthumbnail>

    縮略圖水平像素數目

    19

    1 byte

     

    <Ythumbnail>

    縮略圖垂直像素數目

     

    3n

     

    < Thumbnail RGB bitmap>

    縮略RGB位圖(n為縮略圖的像素數)

         

    Optional JFIF extension APP0 marker segment(s)

    任選的JFIF擴展APP0標記段

     

    ……

     

    ……

     
     

    2 byte

    0xFFD9

    (EOI) end-of-file

    圖像文件結束標記

     

    posted on 2005-06-22 16:53 小米 閱讀(8748) 評論(7)  編輯  收藏 所屬分類: 其它

    評論:
    # re: JPEG格式[未登錄] 2007-03-21 13:04 | steven
    你好~請問你有 JPEG huffman AC DC 的 huffman table嗎??

    對照表~我非常需要,如果有的可寄到我的MAIL: R9406021@mail.dyu.edu.tw

    非常感謝~~感激不盡  回復  更多評論
      
    # re: JPEG格式 2008-10-24 15:41 | lianaie
    求 JPEG huffman AC DC 的 huffman table   回復  更多評論
      
    # re: JPEG格式 2008-11-14 16:00 | shen
    文中提到獲取尺寸(也就是高度和寬度) 是在出現0xff 0xc0后的第四位到第7位來獲得,請問 如果該文件中出現了兩次0xff 0xc0,那該如何處理  回復  更多評論
      
    # re: JPEG格式 2008-11-29 13:57 | 新用戶
    我有好多jpeg的圖片打不開想請您幫幫忙Q893268446謝謝了!  回復  更多評論
      
    # re: JPEG格式 2009-02-11 19:23 | 王強
    我有好多jpeg的圖片打不開想請您幫幫忙Q:375970326  回復  更多評論
      
    # re: JPEG格式 2009-04-10 02:48 | yefe
    下的電影  回復  更多評論
      
    # re: JPEG格式 2010-07-19 18:20 | cch
    您好!
    請問您有AC DC 的 huffman table嗎?
    如果有的請發到我的郵箱: cch001@163.com
    Thank you!
      回復  更多評論
      
    主站蜘蛛池模板: 日本人的色道免费网站| 国内精品免费在线观看| 亚洲色图.com| 十九岁在线观看免费完整版电影| 亚洲精品无码国产| 暖暖日本免费中文字幕| 亚洲国产精品lv| 最近最新高清免费中文字幕 | 两个人看的www高清免费视频 | 亚洲啪AV永久无码精品放毛片| 97热久久免费频精品99| 亚洲精品综合在线影院| 日本一区二区三区日本免费| 亚洲国产日韩a在线播放| 国产特级淫片免费看| 色屁屁www影院免费观看视频| 鲁丝片一区二区三区免费| 久久久亚洲精品国产| 免费观看无遮挡www的视频| 亚洲午夜成人精品无码色欲| 国产免费小视频在线观看| 中文无码日韩欧免费视频| 亚洲欧洲一区二区| 成人免费视频观看无遮挡| 美女隐私免费视频看| 亚洲乱码无码永久不卡在线 | 久久九九全国免费| 亚洲第一精品电影网| 日本不卡在线观看免费v| 男女拍拍拍免费视频网站| 亚洲色四在线视频观看| 成年私人影院免费视频网站| 成人免费网站久久久| 亚洲va中文字幕无码久久| 久久久久久久久免费看无码| 老司机午夜精品视频在线观看免费 | 春暖花开亚洲性无区一区二区 | 精品亚洲av无码一区二区柚蜜| 精品国产日韩亚洲一区| 91免费播放人人爽人人快乐| 日本特黄特色AAA大片免费|