<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兩個組織機構聯合組成的一個專家組,負責制定靜態的數字圖像數據壓縮編碼標準,這個專家組開發的算法稱為JPEG算法,并且成為國際上通用的標準,因此又稱為JPEG標準。JPEG是一個適用范圍很廣的靜態圖像數據壓縮標準,既可用于灰度圖像又可用于彩色圖像。

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

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

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

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

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

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

     

    5.7.2 JPEG算法的主要計算步驟

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

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

    1. 正向離散余弦變換

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

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

    圖5-14 離散余弦變換

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

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

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

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

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

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

    圖5-15 兩維DCT變換方法

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

    2. 量化

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

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

    圖5-16 均勻量化器

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

     

    3. Z字形編排

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


    圖5-17 量化DCT系數的編排

    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系數的序號

     

    4. 直流系數的編碼

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

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

    5. 交流系數的編碼

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

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

    6. 熵編碼

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

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

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

    表5-07 DC碼表符號舉例

    Value

    SSS

    0

    0

    -1, 1

    1

    -3,-2, 2,3

    2

    -7..-4, 4..7

    3

     

    7. 組成位數據流

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

    5.7.3 應用JPEG算法舉例

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


    圖5-19 JPEG壓縮編碼舉例

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

    評論:
    # re: JPEG壓縮編碼 2008-06-03 11:54 | 沈童
    怎么圖片都不顯示啊
      回復  更多評論
      
    主站蜘蛛池模板: 亚洲国产成人影院播放| 亚洲电影日韩精品| 久久精品国产亚洲AV高清热| a高清免费毛片久久| 国产成人麻豆亚洲综合无码精品| 午夜免费福利小电影| 久久精品国产精品亚洲精品| 亚洲区视频在线观看| 免费亚洲视频在线观看| 免费v片视频在线观看视频| 18gay台湾男同亚洲男同| 88xx成人永久免费观看| 亚洲字幕在线观看| 一个人看的www在线观看免费| 亚洲欧美日韩综合俺去了| 暖暖免费在线中文日本| 日本人护士免费xxxx视频| 精品久久久久久亚洲综合网| 亚洲av高清在线观看一区二区 | 四虎永久成人免费| 无忧传媒视频免费观看入口| 日本免费大黄在线观看| 亚洲国产精品嫩草影院久久| 一个人免费观看日本www视频| 精品国产麻豆免费网站| 亚洲天堂一区二区三区四区| 大地资源免费更新在线播放| 亚洲av综合色区| 最近2019免费中文字幕视频三| 精品亚洲国产成人| 十九岁在线观看免费完整版电影| 亚洲人成日本在线观看| 国产又粗又长又硬免费视频| GOGOGO高清免费看韩国| 亚洲精品美女久久久久99小说| 全免费a级毛片免费看| 亚洲另类无码专区首页| 亚洲无码在线播放| 中国好声音第二季免费播放| 天堂亚洲免费视频| 免费观看无遮挡www的视频|