顧名思義,靜態影像(still  image)即是指靜止不動的單張影像
    圖片,例如一張彩色圖片。而有靜態就會有動態,動態影像
    (motion image)則是連續性的動作,例如電視與電影畫面等。本文
    將只針對靜態影像壓縮(still  image compression)技術作一概略
    性的介紹。

    影像壓縮的優點

      通常一般我們所見的單張彩色靜態影像,它是由很多一個點一個
    點的像素 (pixel) 所組成,而每一個像素主要由R(紅)、G(綠 )、
    B(藍 )三原色所構成,每一個原色用一個字元(byte)來表示。例如
    :欲儲存一張長 512 pixel 、寬 512 pixel 的彩色圖片需要的記
    憶體為:

        512 x 512 x 3 bytes = 768 kbytes

      由上例中可以看出:未經壓縮的影像在儲存時,會佔用非常大量
    的儲存空間,且未經壓縮的影像資料透過通訊網路傳送時,所需的
    傳輸時間也將相對地拉長。為解決上述的問題,使用者如能將影像
    予以壓縮,即可達到減少儲存空間、縮短傳輸時間的雙重效能。

    靜態影像壓縮的國際標準

      由於有感於靜態影像壓縮需要一個大家可以共同遵循的國際標準
    ,因此由國際標準組織     (International    Standardization
    Organization;  ISO)  與國際電報電話諮詢委員會(Consultative
    Committee on International Telegraph and Telephone; CCITT)
    兩邊人員共同成立聯合影像專家群(Joint  Photographic  Expert
    Group;  JPEG ) ,他們共同制定了一個稱為JPEG 的靜態影像壓縮
    之國際標準。

    JPEG 的分類

      JPEG  根據壓縮技術的不同,而把靜態影像壓縮的方式分為兩種
    ,一種是有失真模式  (Information Loss),另一種是無失真模式
    (Information Lossless)。茲將此兩種壓縮模式分述如下:

    1. 有失真模式:

      ‧採用離散餘弦轉換 (Discrete Cosine Transform; DCT) 的技
        術。

      ‧經過壓縮與解壓縮還原之後的影像會有失真產生,幸好人的眼
        睛對於少許失真不易察覺。

      ‧壓縮率高,壓縮 30 倍仍能獲得高品質。

      ‧應用於一般圖片、多媒體。

      ‧應用廣泛,目前的應用絕大部份都是採用此種模式。

    2. 無失真模式:

      ‧採用差值訊號編碼  (Differential Pulse Code Modulation;
        DPCM) 的技術。

      ‧經過壓縮與解壓縮還原之後的影像與原始影像相比完全沒有失
        真產生。

      ‧壓縮率低,通常在 10 倍以下。

      ‧主要應用於醫學影像,因為醫學上寧可壓縮率低確保影像品質
        ,而不願高壓縮率引起的影像失真造成誤診。

      ‧因為壓縮率不高,除了醫學影像之外,目前的應用很少採用此
        種模式。

    壓縮原理

      因為目前靜態影像壓縮大部份採用有失真模式,因此,以下將針
    對有失真模式進行介紹。

      圖一是整個影像壓縮  (Compression) 的方塊圖,圖二則是解壓
    縮 (Decompression)的方塊圖。透過此二圖我們可以知道:壓縮與
    解壓縮的過程類似,僅是執行的順序相反而已,因此,對於解壓縮
    文中將不再贅述。

 

    圖一  壓縮 (Compression) 方塊圖

 

    圖二  解壓縮 (Decompression) 方塊圖
    A. RASTER -> BLOCK

      如圖三所示,把整個圖片分割成多個 8 x 8 點的小方塊(block)
    ,每個小方塊有64 點也就是 64 個像素。整個壓縮的過程是以小
    方塊為單位作處理。

 

      圖三  整個圖片分割成多個 8x8 點的小方塊

    B. RGB -> YUV

      原始影像每一個點 (像素) 是由紅 (R)、綠 (G)、藍 (B)三原色
    所構成,在此把它轉換成一個亮度訊號  (Luminance) Y 與二個色
    差訊號 (Chrominance) U、V。R、G、B 轉換為 Y、U、V 的公式如
    下:

            Y =  77/256R + 150/256G +  29/256B
            U = -44/256R -  87/256G + 131/256B + 128
            V = 131/256R - 110/256G -  21/256B + 128

    C. DCT (Discrete Cosine Transform;離散餘弦轉換)

      離散餘弦轉換的輸入是  8  x 8 個點,輸出則是 8 x 8 個係數
    (coefficients)。此轉換把影像由空間定義域 (space domain) 轉
    換到頻率定義域 (frequency domain),每個 8 x 8 小方塊裡面係
    數的位置愈靠近左上角,它代表的頻率愈低,愈靠近右下角,則它
    代表的頻率愈高。

      一般而言,大部份的影像能量會集中在低頻部份,也就是轉換之
    後的輸出係數在低頻部份的值較大,而輸出係數在高頻部份的值很
    小。所以當輸出係數經過量化 (quantization) 之後,高頻部份的
    值大部份都會變為 0。文中所描述的靜態影像壓縮是採用離散餘弦
    轉換的壓縮技術,它的主要精神在於:能量集中。

      離散餘弦轉換的公式如下:

 

      離散餘弦轉換需要冗長的運算,所以它是整個影像壓縮過程最花
    時間的部份。如果以純軟體實現影像壓縮,約  75% 的時間花
    在離散餘弦轉換的計算。

    D. QUANTIZATION

      此處的量化(quantization)是採用線性量化(linear quantization) 
    的方式,對於相同頻率的輸入值都除以一固定值。

      根據測試,人的眼睛對不同頻率之敏感度不同,對低頻較敏感,
    然而對高頻較不敏感,因此低頻的失真應該儘量降低,而對於高頻
    部份則可允許有較多的失真。所以在低頻採用小的量化位準
    (quantization level);而在高頻採用大的量化位準。表一是對應
    於 8 x 8小方塊裡面各個不同頻率之亮度的量化位準,表二是色差
    的量化位準。一般而言,人的眼睛對於亮度的失真較色差的失真敏
    感,因此表一比表二採用較小的量化位準。

         表一  亮度的量化位準 (quantization level)

        ┌─┬─┬─┬─┬──┬──┬──┬──┐
        │16│11│10│16│24  │40  │51  │61  │
        ├─┼─┼─┼─┼──┼──┼──┼──┤
        │12│12│14│19│26  │58  │60  │55  │    
        ├─┼─┼─┼─┼──┼──┼──┼──┤
        │14│13│16│24│40  │57  │69  │56  │    
        ├─┼─┼─┼─┼──┼──┼──┼──┤
        │14│17│22│29│51  │87  │80  │62  │    
        ├─┼─┼─┼─┼──┼──┼──┼──┤
        │18│22│37│56│68  │109 │103 │77  │    
        ├─┼─┼─┼─┼──┼──┼──┼──┤
        │24│35│55│64│81  │104 │113 │92  │  
        ├─┼─┼─┼─┼──┼──┼──┼──┤
        │49│64│78│87│103 │121 │120 │101 │   
        ├─┼─┼─┼─┼──┼──┼──┼──┤
        │72│92│95│98│112 │100 │103 │99  │  
        └─┴─┴─┴─┴──┴──┴──┴──┘


        表二  色差的量化位準 (quantization level)

        ┌─┬─┬─┬─┬─┬─┬─┬─┐
        │17│18│24│47│66│99│99│99│    
        ├─┼─┼─┼─┼─┼─┼─┼─┤
        │18│21│26│66│99│99│99│99│    
        ├─┼─┼─┼─┼─┼─┼─┼─┤
        │24│26│56│99│99│99│99│99│    
        ├─┼─┼─┼─┼─┼─┼─┼─┤
        │47│66│99│99│99│99│99│99│    
        ├─┼─┼─┼─┼─┼─┼─┼─┤
        │99│99│99│99│99│99│99│99│    
        ├─┼─┼─┼─┼─┼─┼─┼─┤
        │99│99│99│99│99│99│99│99│    
        ├─┼─┼─┼─┼─┼─┼─┼─┤
        │99│99│99│99│99│99│99│99│    
        ├─┼─┼─┼─┼─┼─┼─┼─┤
        │99│99│99│99│99│99│99│99│    
        └─┴─┴─┴─┴─┴─┴─┴─┘

 

      表三  鋸齒狀掃描 (zigzag scan) 的順序

    D. RUN LENGTH ENCODE

      經過量化之後,每個  8 x 8 的小方塊裡面除了左上角區域以外
    其它部份幾乎都會變為0。為了把連續 0 的個數予以編碼,對每個
    8 x 8 的小方塊做鋸齒狀掃描 (zigzag scan ) ,使得二維變成一
    維,掃描的順序如表三所示。在經過掃描之後,對連續零的個數做
    編碼 (run length encode),以達到壓縮的目的。

    E. HUFFMAN ENCODE

      我們可以使用哈夫曼編碼  (Huffman coding)使得資料量再一次
    降低。哈夫曼編碼的主要精神是:出現機率大的符號用長度短的碼
    表示,出現機率小的符號用長度長的碼表示,因而其平均使用的資
    料量較小。

      舉一個例子說明:符號 A、B 、C 、D 出現的機率分別為 0.7、
    0.1、0.1 、0.1。


       一般編碼如表四所示,
     2x0.7+2x0.1+2x0.1+2x0.1=2.0
     平均每個符號需用 2 個位元 (bits) 表示。

        表四  一般編碼
        ┌──┬─┐
        │符號│碼│     
        ├──┼─┤
        │ A  │00│    
        │ B  │01│    
        │ C  │10│    
        │ D  │11│     
        └──┴─┘

      哈夫曼編碼如表五所示,
      1x0.7+2x0.1+3x0.1+3x0.1=1.5
      平均每個符號需用 1.5 個位元 (bits) 表示。

        表五  哈夫曼編碼

        ┌──┬──┐
        │符號│ 碼 │
        ├──┼──┤
        │ A  │ 0  │
        │ B  │ 11 │
        │ C  │100 │    
        │ D  │101 │    
        └──┴──┘

      由上面的例子可以看出哈夫曼編碼會把需要的資料量降低。

    實現方式

      前述的靜態影像壓縮,它的實現方式有純粹軟體、純粹硬體以及
    軟體加硬體三種,分述如下:

    1.純粹軟體

      使用計算機軟體程式來完成全部的工作,此方式速度最慢但是並
      不需要額外的硬體電路,所以成本最低。

      動態影像對速度的要求較高,因為速度慢會演變成慢動作,這並
      不是原來所要的。而靜態影像對於速度的要求並不是很嚴苛,因
      為速度慢使用者只是多等一下,並不影響整個靜態影像的品質。
      同時也由於計算機的速度愈來愈快,使用純粹軟體的方式來實現
      靜態影像壓縮可以預料將是大勢所趨。

    2.純粹硬體

      此方式乃整個靜態影像壓縮架構全部使用硬體電路實現,速度最
      快,但是相對成本也最高。此種方式適合用在大量的影像圖片的
      處理。

    3.軟體加硬體

      此乃是將靜態影像壓縮架構裡面比較花費時間的部分使用硬體電
      路實現,而比較不花費時間的部分使用計算機軟體程式來完成。

    結語

      隨著多媒體時代的來臨,電腦所處理與儲存的資料將不再僅侷限
    於傳統的文字型態,而電腦進行處理與儲存影像資料的機會與日俱
    增,因而,對於影像的壓縮處理技術的需求亦將隨之提昇。
arrow
arrow
    全站熱搜

    nasawenc1 發表在 痞客邦 留言(0) 人氣()