<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ù)  更多評論
      
    主站蜘蛛池模板: 亚洲va在线va天堂va888www| 久久免费精彩视频| 亚洲免费在线视频观看| 国产啪亚洲国产精品无码| 最近的免费中文字幕视频| 91久久青青草原线免费| 一级毛片视频免费| 亚洲爆乳无码精品AAA片蜜桃| 亚洲韩国在线一卡二卡| 亚洲成a人片在线观看日本| 免费在线观看日韩| 日韩免费无砖专区2020狼| 免费视频专区一国产盗摄| 99re这里有免费视频精品| 中文字幕看片在线a免费| 免费国产va视频永久在线观看| 亚洲hairy多毛pics大全| 亚洲娇小性xxxx| 亚洲图片激情小说| 亚洲色欲www综合网| 亚洲国产综合专区电影在线| 亚洲狠狠婷婷综合久久久久| 亚洲中文字幕伊人久久无码| 免费国产在线观看| jizzjizz亚洲| 一级毛片直播亚洲| 亚洲国产精品成人| 亚洲精品无码成人片在线观看| 亚洲av再在线观看| 亚洲男人的天堂在线va拉文| 亚洲第一福利网站在线观看| 亚洲国产精品无码久久青草 | 亚洲酒色1314狠狠做| 久久久亚洲欧洲日产国码aⅴ | 人妻免费久久久久久久了| 免费大片av手机看片| 国产VA免费精品高清在线| 青青操免费在线观看| 国产成人无码区免费内射一片色欲| 丝袜捆绑调教视频免费区| 久草免费福利视频|