<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
    5.7 JPEG壓縮編碼

    5.7.1 JPEG算法概要

    JPEG(Joint Photographic Experts Group) 是一個由 ISO和IEC兩個組織機構(gòu)聯(lián)合組成的一個專家組,負責(zé)制定靜態(tài)的數(shù)字圖像數(shù)據(jù)壓縮編碼標準,這個專家組開發(fā)的算法稱為JPEG算法,并且成為國際上通用的標準,因此又稱為JPEG標準。JPEG是一個適用范圍很廣的靜態(tài)圖像數(shù)據(jù)壓縮標準,既可用于灰度圖像又可用于彩色圖像。

    JPEG專家組開發(fā)了兩種基本的壓縮算法,一種是采用以離散余弦變換(Discrete Cosine Transform,DCT)為基礎(chǔ)的有損壓縮算法,另一種是采用以預(yù)測技術(shù)為基礎(chǔ)的無損壓縮算法。使用有損壓縮算法時,在壓縮比為25:1的情況下,壓縮后還原得到的圖像與原始圖像相比較,非圖像專家難于找出它們之間的區(qū)別,因此得到了廣泛的應(yīng)用。例如,在V-CD和DVD-Video電視圖像壓縮技術(shù)中,就使用JPEG的有損壓縮算法來取消空間方向上的冗余數(shù)據(jù)。為了在保證圖像質(zhì)量的前提下進一步提高壓縮比,近年來JPEG專家組正在制定JPEG 2000(簡稱JP 2000)標準,這個標準中將采用小波變換(wavelet)算法。

    JPEG壓縮是有損壓縮,它利用了人的視角系統(tǒng)的特性,使用量化和無損壓縮編碼相結(jié)合來去掉視角的冗余信息和數(shù)據(jù)本身的冗余信息。JPEG算法框圖如圖5-13所示,壓縮編碼大致分成三個步驟:

    1. 使用正向離散余弦變換(forward discrete cosine transform,F(xiàn)DCT)把空間域表示的圖變換成頻率域表示的圖。
    2. 使用加權(quán)函數(shù)對DCT系數(shù)進行量化,這個加權(quán)函數(shù)對于人的視覺系統(tǒng)是最佳的。
    3. 使用霍夫曼可變字長編碼器對量化系數(shù)進行編碼。

    譯碼或者叫做解壓縮的過程與壓縮編碼過程正好相反。

    JPEG算法與彩色空間無關(guān),因此“RGB到Y(jié)UV變換”和“YUV到RGB變換”不包含在JPEG算法中。JPEG算法處理的彩色圖像是單獨的彩色分量圖像,因此它可以壓縮來自不同彩色空間的數(shù)據(jù),如RGB, YCbCr和CMYK。

    圖5-13 JPEG壓縮編碼-解壓縮算法框圖

     

    5.7.2 JPEG算法的主要計算步驟

    JPEG壓縮編碼算法的主要計算步驟如下:

    1. 正向離散余弦變換(FDCT)。
    2. 量化(quantization)。
    3. Z字形編碼(zigzag scan)。
    4. 使用差分脈沖編碼調(diào)制(differential pulse code modulation,DPCM)對直流系數(shù)(DC)進行編碼。
    5. 使用行程長度編碼(run-length encoding,RLE)對交流系數(shù)(AC)進行編碼。
    6. 熵編碼(entropy coding)。

    1. 正向離散余弦變換

    下面對正向離散余弦變換(FDCT)變換作幾點說明。

    (1) 對每個單獨的彩色圖像分量,把整個分量圖像分成8×8的圖像塊,如圖5-14所示,并作為兩維離散余弦變換DCT的輸入。通過DCT變換,把能量集中在少數(shù)幾個系數(shù)上。

    圖5-14 離散余弦變換

    (2) DCT變換使用下式計算,

     ...... (5-1)
    它的逆變換使用下式計算,

     ...... (5-2)
    上面兩式中,
    C(u), C(v) = 1/, 當u, v = 0;
    C(u), C(v) = 1, 其他。
    f(i, j)經(jīng)DCT變換之后,F(0,0)是直流系數(shù),其他為交流系數(shù)。

    (3) 在計算兩維的DCT變換時,可使用下面的計算式把兩維的DCT變換變成一維的DCT變換,

      ............ (5-3)

     ............. (5-4)

    圖5-15 兩維DCT變換方法

    實際的計算方法可參看[6]

    2. 量化

    量化是對經(jīng)過FDCT變換后的頻率系數(shù)進行量化。量化的目的是減小非“0”系數(shù)的幅度以及增加“0”值系數(shù)的數(shù)目。量化是圖像質(zhì)量下降的最主要原因。

    對于有損壓縮算法,JPEG算法使用如圖5-16所示的均勻量化器進行量化,量化步距是按照系數(shù)所在的位置和每種顏色分量的色調(diào)值來確定。因為人眼對亮度信號比對色差信號更敏感,因此使用了兩種量化表:如表5-05所示的亮度量化值和表5-06所示的色差量化值。此外,由于人眼對低頻分量的圖像比對高頻分量的圖像更敏感,因此圖中的左上角的量化步距要比右下角的量化步距小。表5-05和表5-06中的數(shù)值對CCIR 601標準電視圖像已經(jīng)是最佳的。如果不使用這兩種表,你也可以把自己的量化表替換它們。

    圖5-16 均勻量化器

    表5-05 亮度量化值表 表5-06 色度量化值

     

    3. Z字形編排

    量化后的系數(shù)要重新編排,目的是為了增加連續(xù)的“0”系數(shù)的個數(shù),就是“0”的游程長度,方法是按照Z字形的式樣編排,如圖5-17所示。這樣就把一個8 8的矩陣變成一個1 64的矢量,頻率較低的系數(shù)放在矢量的頂部。


    圖5-17 量化DCT系數(shù)的編排

    0

    1

    5

    6

    14

    15

    27

    28

    2

    4

    7

    13

    16

    26

    29

    42

    3

    8

    12

    17

    25

    30

    41

    43

    9

    11

    18

    24

    31

    40

    44

    53

    10

    19

    23

    32

    39

    45

    52

    54

    20

    22

    33

    38

    46

    51

    55

    60

    21

    34

    37

    47

    50

    56

    59

    61

    35

    36

    48

    49

    57

    58

    62

    63

    圖5-18 量化DCT系數(shù)的序號

     

    4. 直流系數(shù)的編碼

    8 8圖像塊經(jīng)過DCT變換之后得到的DC直流系數(shù)有兩個特點,一是系數(shù)的數(shù)值比較大,二是相鄰8 8圖像塊的DC系數(shù)值變化不大。根據(jù)這個特點,JPEG算法使用了差分脈沖調(diào)制編碼(DPCM)技術(shù),對相鄰圖像塊之間量化DC系數(shù)的差值(Delta)進行編碼,

    DeltaDC(0, 0)k-DC(0, 0)k-1 ........ (5-5)

    5. 交流系數(shù)的編碼

    量化AC系數(shù)的特點是1 64矢量中包含有許多“0”系數(shù),并且許多“0”是連續(xù)的,因此使用非常簡單和直觀的游程長度編碼(RLE)對它們進行編碼。

    JPEG使用了1個字節(jié)的高4位來表示連續(xù)“0”的個數(shù),而使用它的低4位來表示編碼下一個非“0”系數(shù)所需要的位數(shù),跟在它后面的是量化AC系數(shù)的數(shù)值。

    6. 熵編碼

    使用熵編碼還可以對DPCM編碼后的直流DC系數(shù)和RLE編碼后的交流AC系數(shù)作進一步的壓縮。

    在JPEG有損壓縮算法中,使用霍夫曼編碼器來減少熵。使用霍夫曼編碼器的理由是可以使用很簡單的查表(lookup table)方法進行編碼。壓縮數(shù)據(jù)符號時,霍夫曼編碼器對出現(xiàn)頻度比較高的符號分配比較短的代碼,而對出現(xiàn)頻度較低的符號分配比較長的代碼。這種可變長度的霍夫曼碼表可以事先進行定義。

    [例5.1] 表5-07所示的是DC碼表符號舉例。如果DC的值(Value)為4,符號SSS用于表達實際值所需要的位數(shù),實際位數(shù)就等于3。

    表5-07 DC碼表符號舉例

    Value

    SSS

    0

    0

    -1, 1

    1

    -3,-2, 2,3

    2

    -7..-4, 4..7

    3

     

    7. 組成位數(shù)據(jù)流

    JPEG編碼的最后一個步驟是把各種標記代碼和編碼后的圖像數(shù)據(jù)組成一幀一幀的數(shù)據(jù),這樣做的目的是為了便于傳輸、存儲和譯碼器進行譯碼,這樣的組織的數(shù)據(jù)通常稱為JPEG位數(shù)據(jù)流(JPEG bitstream)。

    5.7.3 應(yīng)用JPEG算法舉例

    有關(guān)JPEG算法更詳細的信息和數(shù)據(jù),請參看JPEG標準ISO/IEC 10918。下面是使用JPEG算法對一個8×8圖像塊計算得到的結(jié)果。在這個例子中,計算正向離散余弦變換(FDCT)之前對源圖像中的每個樣本數(shù)據(jù)減去了128,在逆向離散余弦變換之后對重構(gòu)圖像中的每個樣本數(shù)據(jù)加了128。


    圖5-19 JPEG壓縮編碼舉例

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

    評論:
    # re: JPEG壓縮編碼 2008-06-03 11:54 | 沈童
    怎么圖片都不顯示啊
      回復(fù)  更多評論
      
    主站蜘蛛池模板: 24小时免费直播在线观看| 成人免费av一区二区三区| 四虎国产成人永久精品免费| 亚洲伦乱亚洲h视频| 全黄A免费一级毛片| 亚洲精品成人区在线观看| 污视频网站免费观看| 免费又黄又硬又爽大片| 国产成人 亚洲欧洲| 亚洲欧洲一区二区三区| a级黄色毛片免费播放视频| 亚洲AV无码成人精品区在线观看 | 最新国产乱人伦偷精品免费网站| 久久亚洲色一区二区三区| 两个人看的www高清免费观看| 久久精品夜色国产亚洲av| 中文字幕免费在线| 国产精品高清视亚洲精品| 国产成人免费爽爽爽视频| 亚洲av纯肉无码精品动漫| 亚洲人成国产精品无码| 无码日韩精品一区二区三区免费| 亚洲色欲www综合网| 拍拍拍又黄又爽无挡视频免费| 国产成人综合亚洲一区| 亚洲午夜无码片在线观看影院猛| a级成人免费毛片完整版| 亚洲一二成人精品区| 中文字幕无码不卡免费视频| 精品韩国亚洲av无码不卡区| 久久精品国产亚洲Aⅴ蜜臀色欲 | gogo免费在线观看| 久久久久亚洲精品无码系列| 999久久久免费精品国产| 粉色视频免费入口| 亚洲AV成人无码久久精品老人| 岛国av无码免费无禁网站| 深夜久久AAAAA级毛片免费看| 亚洲嫩模在线观看| 免费a级毛片无码a∨性按摩| 久久久国产精品福利免费|