顧名思義,靜態影像(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.軟體加硬體 此乃是將靜態影像壓縮架構裡面比較花費時間的部分使用硬體電 路實現,而比較不花費時間的部分使用計算機軟體程式來完成。 結語 隨著多媒體時代的來臨,電腦所處理與儲存的資料將不再僅侷限 於傳統的文字型態,而電腦進行處理與儲存影像資料的機會與日俱 增,因而,對於影像的壓縮處理技術的需求亦將隨之提昇。
全站熱搜
留言列表