[筆記] 資訊理論與編碼技巧 Lecture 9.1 Image Data Compression

資訊理論與編碼技巧 (共筆)
課程內容出處:

  • Image Data Compression
Lecture 9.1 
1.Introduction
  • 資料壓縮的目的在於減少表達一個圖像或資料所需要的bits,進而達到增加資料傳輸速度或是減少資料所需的儲存空間之效,更進一步地,若我們處理的是壓縮過的資料(working with compressed data),也會使處理的速度變快,因此也可以將資料壓縮的應用看成使演算法加速
  • Image data compression method 分兩大類
  • Redundancy Coding 將重複性的data壓縮,不失真
  • Entropy Coding : 使用有限的domain去coding連續的domain的data,不可避免地會失真真實世界是在連續的domain,所以理論上,只有已經 digitized data才有可能讓我們做到 "不失真壓縮" 
  • Entropy Coding 的典型方法
  • Subsampling : 例如每兩個點(Pixel)選一點留下來,降低sample rate
  • Coarse Quantization : 例如原本每個 Pixel 用 8 bits 存,共有256種Level,現在只降為 4 bits,剩下16 種Level,可存放的資料描述的精確度降低
  • Frame Repetition/Interlacing : 例如原本每秒鐘 30 個 frame,人眼會有視覺暫留,所以我們每秒 frame 在送的時候,採用每兩個 frame 只送一張,這樣實際上每秒只送了 15 張 frame,那漏掉的另外 15 張 frame 可以採用下列兩種方法來補上,多用在相鄰兩frame變化不大的時候
  • Repetion : 複製前一張 frame
  • Interlacing : 利用前一張 frame 與後面一張 frame 取平均值
  • Pixel(Picture element) Coding :  以一個Pixel為Coding unit 
  • Predictive Coding : 用已知的資訊去猜要Coding的資料,真正Coding的是Prediction error (Intra-frame為同一個時間點所產生的資料,例如一張相片中的所有Pixel;Inter-frame為不同時間點所產生的資料,其有前後關係,在Coding時可能會利用兩個時間點差的關係來Coding ),to remove mutual redundancy between successive pixels and encode only the new information.
  • Transform Coding : 將原來的資料轉換到利於之後處理(Ex : Quantization)的Domain

  2. DPCM 
  (differential pulse code modulation)
  p.s. PCM: Pulse-code modulation
  • 原理
  • 在資料序列u(m)中,目前已經Coding到時間點m=n-1,也就是說時間點n以前的都已經reproduce完成, 而
  • 表示在時間點n-1的reproduce資料(上標wave表reproduce資料),在m=n時,有新(未壓縮的原始)資料u(n),我們可以根據預測規則
  • 加上已經reproduce出來的資料可以推測出時間點n的資料
  • 以下列方式表示時間點n的預測資料(上標wave+bar表根據預測規則所預測出來的reproduce資料)
  • 因此預測錯誤(prediction error)就為(其中u(n)為原始資料)
  • e(n)經過處理(編碼或量化)得到(有所誤差)
  • 最後我們所reproduce的時間點m=n的資料就為
  • 架構圖

  • 整體的編碼解碼所造成的錯誤即是quantization error
  • DPCM的預測方式是基於past output的方式,意思是在時間點n-1的prediction error會feedback給下一個時間點n的quantizer並當作其input之一(在控制理論中稱為負回授),因此又稱為feedback prediction,可以有穩定prediction error之作用並避免prediction error的累加
  • Feedback V.s. Feedforward Prediction



Feedback Prediction (DPCM)Feedforward Prediction
based on past outputpast input
Mean square error of e(n)較小較大
error accumulation
  • Example : 

3. Delta Modulation (DM) 
  • 最簡單的一種 predicted coding 的方法
  • Predictor :  one-step delay function 直接拿上時間點的output (u(n-1)wave) 作為現在時間點預測資料
  • Quantizer  : one-bit quantizer,看 input 跟預測資料誰大誰小,如果input比較大就得到正的prediction error 反之得到負的 prediction error
  • DM 所遇到的問題
  • Slope overload:如果input有比較快速的變化,但是由於我們的 step size 都是固定的1個 delta 所以output的slope的成長速度跟不上實際slope的變化速度
  • Granularity Noise:在slope比較平滑的區域時,由於DM的 1 bit Quantizer 只要稍微比較大一點,或是比較小一點,就會有 +delta 與 - delta 的明顯變化,呈現有不穩定跳動noise的情形,因此通道雜訊(Channel noise)的影響會很大
  • DM 問題的解決方法:Adaptive Delta Modulation
  • 讓 delta size可以調整,如果連續三次delta 都是成長的,那代表可能正在快速成長中就把 delta 的單位提升1.5倍;反之,如果正負delta連續出現時,代表可能處在slope較平的地方,此時把 delta 的單位調整為 0.5 倍

4. DPCM System Design
  • There are two components to design DPCM system:
  • 1. The predictor
  • 2. The quantizer
  • 使用 linear 與 nonlinear的方法調配 predictor 跟 quantizer 以獲取最佳的DPCM效果
  • 以下列出幾種方法
  • 1. Linear Predictor
  • 2. Zero-memory quantizer
  • 在這些方法中,我們定義 Quantizing Level (M) 即直接影響到壓縮率,經驗上 M >= 8 可得到好的壓縮效果

Quantizer
上面兩張圖都是 Uniform Quantizer 
  • Midtread quantizer 有一個 y = 0 的對應區域 (0 是 one of quantization of Y)
  • Midriser quantizer 沒有 y = 0 的對應

Zero-Memory quantization: sample 之間都是independant

QE: Quantization Error 
D: Quantization Distortion (失真) 
SNR: Signal to Noise Ratio 單位 dB

在一些 sample 分布的狀況下,使用 Non-uniform Quantizer 會得到更好的壓縮效果
例如我們 sample 的pdf分佈如下圖的情形,呈現 Laplacian 分佈
補充說明: pdf 代表 probability distribution function

Uniform Quantizer  轉換 non-Uniform Quantizer
右上圖是 uniform quantizer 左下圖是我們要得到的 Non-uniform Quantizer
  • 將 uniform quantizer Y軸的點 水平投影透過一個 Compressor function 轉換,在垂直投影到 non-Uniform Quantizer X軸,得到Non-uniform Quantizer X軸上的 sample
  • 將 uniform quantizer X軸的點 垂直投影透過一個 Expander function 轉換,在垂直投影到 non-Uniform Quantizer X軸,得到Non-uniform Quantizer Y軸上的 sample
Compressor function 與 Expander function 互為反函數

5. Non-uniform Quantizer 
最有名的 Non-uniform Quantizer - Lloyd-Max Quantizer 
Lloyd-Max Quantizer  有兩種實作法
  • u-law (mu law) 用於美國 加拿大 日本 台灣
  • a-law 歐洲用 變化細節很微小的情況下,表現更好

結果比較
在一般情況下,每增加1個bit的,可以提昇 SNR 6dB
PCM 與 DPCM 的 SNR 效果差距在最下面那行 -> DPCM 可以 improve 訊雜比 (SNR) 的程度

SNR 衡量
如果我們有辦法提出一個方法 SNR 如果改善 0.5dB 就可以發Paper發表了!

 6. 各種 DPCM 種類與改善訊雜比的排名
  • 使用 DPCM 可以相較於 PCM 好,訓雜比整整差距了 8~10 dB 這是相當大的改善差距!
  • Two-Dimensional DPCM 在圖上,由左到右,由上到下掃描
  • 所以目前的X點,只能參考到 "左上, 上, 右上, 左" 這四個點去 predict
SNR最佳排名:用 2D DPCM 比 Line-by-line DPCM 好,PCM 最差

留言

這個網誌中的熱門文章

[筆記] CRLF跟LF之區別 --- 隱形的 bug

[ML筆記] Batch Normalization

[筆記] 統計實習(1) SAS 基礎用法 (匯入資料並另存SAS新檔,SUBSTR,計算總和與平均,BMI)

[ML筆記] Ensemble - Bagging, Boosting & Stacking