本單元將對影像壓縮系統的方塊圖進行基本介紹,再來介紹區塊轉換編碼。
**影像壓縮系統(Image Compression System)**的系統方塊圖,如下圖所示
影像壓縮系統基本包含兩個元件,分別為編碼器(Encoder)與解碼器(Decoder)。而常常看到的 Codec 就是 Coder 和 Decoder 的組合縮寫,稱為編解碼器。
輸入的數位影像為f(x,y),在傳送端以編碼器進行影像編碼,編碼後的訊息再透過通道傳輸,接收端收到訊息後進行解碼,重建輸出的數位影像。理想的影像壓縮系統,目的是希望輸出影像接近輸入影像,才不會產生失真。
除了上述的熵編碼技術外,目前的影像壓縮系統使用的編碼技術相當多。例如:傳真機使用的Run-Length編碼、BMP使用的LZW編碼等等。以下我們來介紹一個最具代表性的影像壓縮技術-區塊轉換編碼(Block Transform Coding)。區塊轉換編碼不僅是JPEG影像壓縮標準的核心技術,同時也被延伸應用於許多數位視訊標準,例如:H.26X、MPEG等。
區塊轉換編碼技術的系統方塊圖分成編碼器與解碼器兩部分。區塊轉換編碼是以失真壓縮為止,可以突破夏農所定義的壓縮極限,但仍能保留重要的影像資訊。
編碼器的處理步驟如下:
(1)根據輸入影像,影像大小為 M * N,分割成互不重疊的區塊(Block),或稱為子影像(Subimage),區塊
大小為 n * n。n 通常是選取 4 的倍數。若無法除盡,則可在後面補 0。因此,總共可以產生 個區塊。
(2)採用基於矩陣的正交轉換,例如:DFT、DCT、WHT等,對每個獨立的區域進行正轉換(Forward Transform)。 經過轉換後的區塊大小仍為 n * n。由於輸入影像的強度(灰階)是介於0~255的正整數,轉換後的結果稱為轉換係數(Transform Coefficients),例如:DFT係數、DCT係數、WHT係數等。轉換係數也會根據選取的正交轉換而有所不同,例如:DFT係數為複數,DCT係數為浮點數,WHT係數為正整數或負整數等。
(3)量化器(Quantizer)的目的是進一步將正轉換後的係數,量化成有限的數值集合,稱為源符號(Source Symbols),以便進行區塊的影像編碼。經過轉換後的係數,通常會包含許多數值較小的係數,因此可以在考慮影像壓縮的前提下,將這些係數去除。同時,數值較大的係數,仍然可以維持主要的影像資訊。
(4)符號編碼器(Symbol Encoder)的目的,是根據源符號進行編碼,通常是採用熵編碼技術,例如:霍夫曼編碼等等。因此,這個階段的編碼過程,是以無失真壓縮為主。經過編碼器的處理步驟,將會以區塊為單位產生0與1的數值資料,可以用來輸出壓縮影像,以便數位影像的儲存或傳輸。
而解碼器的處理步驟為:
(1)根據輸入的壓縮影像,並以區塊為單位,採用與編碼器對應的熵編碼技術進行解碼。
(2)根據解碼的結果,即是轉換係數,進行逆轉換。通常逆轉換後的結果,需檢查數值範圍是否介於0~255之間
(3)將 n * n 的區塊合併,重建成輸出的數位影像,或稱為解壓縮影像(Decompressed Image)。以區塊轉換編碼而言,通常,解壓縮影像不會與原始的輸入影像完全相同,會造成影像失真現象。