520 likes | 766 Views
影 像 壓 縮. 中原大學 電子工程學系暨研究所 通訊科技研究實驗室 繆紹綱 博士. 資料壓縮. 壓縮使資料量減少,以利儲存與傳輸 壓縮兼有保密的效果,壓縮過程中對資料重新編碼,若沒有相對 應的解壓縮程式就難回復 壓縮系統包含兩個子系統,一為 壓縮器 (compressor) 或是 編碼器 (encoder) ,另一為 解壓器 (decompressor) 或是 解碼器 (decoder). 資料壓縮 (Cont.). 理想的資料壓縮系統滿足下列特性: A≒A’ size (B) < size (A)
E N D
影 像 壓 縮 中原大學 電子工程學系暨研究所 通訊科技研究實驗室 繆紹綱 博士
資料壓縮 • 壓縮使資料量減少,以利儲存與傳輸 • 壓縮兼有保密的效果,壓縮過程中對資料重新編碼,若沒有相對 應的解壓縮程式就難回復 • 壓縮系統包含兩個子系統,一為壓縮器(compressor) 或是編碼器 (encoder),另一為解壓器(decompressor) 或是解碼器(decoder)
資料壓縮(Cont.) • 理想的資料壓縮系統滿足下列特性: • A≒A’ • size (B) < size (A) • size(A)/size(B) = 壓縮率(compression ratio,CR) A 壓縮器 B B 解壓器 A’ 資料壓縮系統方塊圖
資料的冗餘性 • 資料與訊息:資料是傳遞訊息的載體,同樣的訊息可以用不同量的資料來代表 • 資料的冗餘性(redundancy):提供無關緊要或重複已知訊息的資料特性 • 三種影像資料的冗餘性: 1. 編碼(coding)冗餘性 • 採用等長度自然二進碼來表示影像 • 對出現機率較大的灰階分配較少的位元長度,稱為 可變長度編碼(variable-length coding)
資料的冗餘性(Cont.) 2. 像素間(interpixel)冗餘性 • 影像中像素間有高度的相關性,使像素所攜帶的資訊量減少 • 將原始影像信號透過轉換或映射(mapping)來解除影像信號間的相關性 3. 視覺(psychovisual)冗餘性 • 可以被刪去而對影像的主觀品質不會造成太大影響的冗餘性 • 視覺冗餘性被刪除,造成某些訊息的損失,形成有損耗的資料壓縮
保真度準則 • 客觀保真度準則(objective fidelity criterion) 原輸入影像 與壓縮再解壓縮之輸出影像 間的差異 均方根誤差 均方訊雜比(mean-square SNR) 尖峰訊雜比(peak SNR):
電視畫質的等級尺度 保真度準則(Cont.) • 主觀保真度準則(subjective fidelity criterion) 對典型的解壓縮影像評分,而評分可以用一種絕對等級尺度
影像壓縮模型 • 通用的影像壓縮系統 (刪去輸入冗餘性) (增強抗雜訊能力) 訊源 編碼器 通道 編碼器 編碼器 通道 訊源 解碼器 通道 解碼器 解碼器
訊息量測 • 訊息的產生可用機率程序的模型來度量 • 隨機事件E 的自身訊息(self-information) : P(E) = 1(即事件總是發生),I(E) = 0,即它不提供訊息 P(E) = 0.99,當告知該事件已經發生時,還是傳遞了一點點訊息 • 對數的基底決定度量訊息的單位:以2為底時稱位元(bit)
訊息通道(1) (1) 訊息源 訊息源:A={a1,a2,…..,aJ} ; 機率集 z = [P(a1), P(a2),…., P(aj)]T k個訊號輸出的平均自身訊息 = 觀察每各訊息源輸出所得的平均訊息量或不確定性(uncertainty) 或熵(entropy) 訊息源 通道 訊息使用者
訊息通道(2) (2) 通道 通道輸出B={b1,b2,…….,bK} ; 機率集 v = [P(b1), P(b2),……., P(bk)]T 完全(total)機率 輸出字元符號的機率分佈: 通道矩陣
; 訊息通道(3) (3) 具有通道矩陣Q之資訊通道的容量(capacity) • 觀察某一個輸出 bk,訊息源的熵: • 輸出字元符號bk,訊息源的平均訊息量: • H(z)與 之差代表觀得一個輸出字元符號所獲得的平均訊息量,稱為 z 與 v 的交互訊息量 I (z,v) = H (z) - H (z|v) • 通道矩陣Q所呈現的通道容量
Example 二元訊息源的輸入字元符號集 A={a1,a2}={0,1} 對應的機率為 P (a1) = p;P (a2) = 1– p = ;機率集 二元熵函數(binary entropy function) 錯誤機率為 pe 的二元對稱通道(binary symmetric channel, BSC) 輸出字元符號集B={b1,b2}={0,1} ; 通道矩陣 輸出機率分佈
Example (Cont.) BSC的交互訊息: 通道容量: = 1 – Hb(pe) 二元熵函數 BSC的交互訊息量 BSC的容量 交互訊息量(位元/字元符號) 容量(位元/字元符號) 熵(位元/字元符號) 1 機率p 機率p 機率pe 1 1/2 1 1
基本編碼定理(1) • 無雜訊下之編碼定理 以n個字元符號為一個輸出單元,字元符號集 假設 熵: 代表 之碼字的合理整數長度: 碼字的平均長度: 編碼效率(efficiency): 或
基本編碼定理(2) • 有雜訊下之編碼定理 有雜訊存在時 ----- 一離散雜訊無記憶通道的容量C,且有一正速率為R的訊息源,其中 R < C,則存在有一碼,使訊息源輸出在此通道傳輸時,具有任意小 的錯誤機 率。 屬於通道編碼(channel coding)或錯誤更正碼(error correcting code)的領域
失真D 基本編碼定理(3) • 訊源編碼定理 對所有符號的平均失真: 所有編碼解碼程序的集合: 位元率-失真函數: 選取適當的Q使I(z,v)最小化之條件限制: ; d(Q) = D ; R(D) 典型的位元率-失真函數
無失真壓縮 • 可變長度編碼 原始資料: 編碼後: 30位元 00 11 11 00 01 00 00 11 00 10 01 00 11 00 00 重新編碼: 25位元 0 10 10 0 110 0 0 10 0 111 110 0 10 0 0
霍夫曼(Huffman)編碼 • 對訊息源符號一次一個個別編碼時,霍夫曼編碼對每個原始符號 所產生的碼具有最短的平均碼長,因此是最佳的編碼 • 此訊息源的熵為2.14位元/符號
霍夫曼編碼(Cont.) • 產生的霍夫曼代碼:即時唯一可解(instaneous and uniquely decodable)的區塊碼 • 編碼的平均長度: 位元/符號 • 霍夫曼碼的效率:
霍夫曼編碼演算法的過程 步驟一:讀入整個影像檔案,統計每個影像資料出現的次數 步驟二:建構霍夫曼樹 根節點 1 分枝 階層1 0 X 0 1 階層2 1 0 0 末端節點 1 內部節點 0 階層n 1 C 1 0 階層n A B
霍夫曼編碼演算法的過程(Cont.) 步驟三:把霍夫曼樹轉成查閱表 (樹的追蹤) 步驟四:查表寫入代碼 • • • a2 a6 a1a1 a1 a1 • • • = • • • 100010110100011 • • • a1: 011 a2 : 1 a3: 01010 a4 : 0100 a5: 01011 a6: 00 01 a2 0 1 a6 0 1 a1 0 1 a4 0 1 a3 a5
同色長編碼 (Run Length Encoding, RLE) • 概念:將一連串重複的資料用兩個位元組(byte)表示,第一個位元組代表該字串的長度(重複次數),第二個位元組才是資料 • 缺點:重複的次數為1(亦即沒有重複),則壓縮後反而會比原始的資料多出一個位元組,即有資料量膨脹的現象
同色長編碼的結果展示 (a)不適合作同色長編碼的影像,CR = 0.6464 • (b)適合作同色長編碼的影像,CR = 9.5969
PCX檔的壓縮法 • 編碼時若碰到重複次數為1的資料,則原封不動輸出該位元組 • 前一個位元組為重複次數加上c0h,後一個位元組才是資料 • PCX的RLE使用6個位元來表示重複的次數 <bit7與bit6均設為1>
CUT檔的壓縮法 • 將不重複的資料收集成串,並在最前面加上一個位元組,以記錄此不重複資料的位元組數 • 前一個重複次數加上80h(亦即bit7設為1),後一個位元組才是資料
有損耗壓縮 • 基本特性 : 1. 壓縮只能在一定限度之內可逆(恢復),超過此限度, 必然帶來失真 2. 允許的失真越大,壓縮率也可以越大 熵壓縮 量化 特徵抽取 分析-合成編碼 零記憶量化 序列量化 分組量化 預測編碼 直接映射 轉換編碼 均 勻 量 化 L M 量 化 壓 擴 量 化 其 它 向 量 量 化 神 經 網 路 方 塊 截 尾 其 它 K L T D C T D S T D F T W H T S L T H A A R 非線性預測 自適性預測 其轉 它換 非 正 交 增量調變 線性預測 運動補償預測
影像壓縮標準 JPEG (1) • 特性: 1. 有損耗的壓縮技術 2. 不限定所要處理的影像型態 3. 在影像的品質與壓縮率間可權衡取捨 4. 提供四種壓縮方式 ( 循序模式 / 漸進模式 / 不失真壓縮 / 階層式 ) • 壓縮過程 Cb 壓縮 資料 順向DCT 量化 編碼 Cr Y 88 區塊 量化表 編碼表
影像壓縮標準 JPEG (2) • R, G, B與Y, Cr, Cb 的轉換
, {DC} { ~ AC ~ } JPEG (3) • 離散餘弦轉換 (discrete cosine transform, DCT) 一維的DCT: EX: 去掉較不重要的高頻部份,對影像品質影響不大,卻能提高壓縮率
AC1 AC5 DC AC2 AC63 JPEG (4) • JPEG使用二維的連續色調影像之DCT,處理一個 的二維矩陣資料 FDCT: IDCT: • Zigzag掃瞄:轉換成64個係數(1個DC與63個AC)
... ... a b c d e 縮減取樣 ... ... 擴增取樣 ... ... JPEG (5) • 彩色影像壓縮 • Y,Cr,Cb各色彩成分都切割成不相重疊的區塊,再各別作FDCT的處理 • Cr,Cb對視覺上較不敏感,故通常對其執行縮減去樣 • 要取樣的該點和其左右2點以2:1:1的比重相加:縮減取樣 • 每兩個取樣點間加入一點,其值為兩個取樣點的中間值:擴增取樣
JPEG (6) • 量化: JPEG 提供兩個DCT係數的量化表 將64個DCT係數除以表中相對應的值,取其最接近的整數: • 量化表的值會影響影像品質及壓縮率
JPEG (7) • 編碼: 採用霍夫曼編碼法 1. DC 部份:將DC的值減掉上一個DCT區塊的DC值,該差值表示成 (SS), VV ,即位元數與差值 位元數 DC差值非零AC值範圍 1 2 3 4 5 6 7 8 9 10 11 -1 -3,-2 -7…-4 -15…-8 -31…-16 -63…-32 -127…-64 -255…-128 -511…-256 -1023…-512 -2047…-1024 1 2,3 4…7 8…15 16…31 32…63 64…127 128…255 256…511 512…1023 1024…2047
JPEG (8) 2. AC部份:依照Zigzag由AC1到AC63,找到每一個非零的AC值, 將其表示成 (NN/SS),VV • 當NN超過15時,則以(15/0)來表示有16個連續的零 • 有一串的零延伸到AC63,直接用(0/0)來代表區塊編碼結束 3. 將這些轉換符號對應霍夫曼編碼表得到實際的壓縮資料(位元流) • 一般有四個表:亮度的DC與AC,及色度的DC與AC
(NN/SS) 亮度碼 色度碼 亮度碼 (SS) 色度碼 0/0 0/1 0/2 0/3 0/4 0/5 0/6 0/7 0/8 0/9 0/A 1/1 1/2 1/3 . . F/9 F/A 1010 00 01 100 1011 11010 1111000 11111000 1111110100 1111111110000010 1111111110000011 1100 11011 1111001 . . 1111111111111101 1111111111111110 00 01 100 1010 1000 11001 111000 1111000 111110100 1111110110 111111110100 1011 111001 11110110 . . 1111111111111101 1111111111111110 0 1 2 3 4 5 6 7 8 9 10 11 00 01 10 110 1110 11110 111110 1111110 11111110 111111110 1111111110 11111111110 00 01 10 110 1110 11110 111110 1111110 11111110 111111110 1111111110 11111111110 JPEG (9) DC值 AC值
– 45 壓縮率 霍夫曼編碼 (3),5 (2/2),-2 (15/0) (1/1),1 (0/0) ==>100 101 11111000 01 111111110111 1100 1 1010 648個位元 ( 壓縮前 ) 37個位元 (壓縮後) JPEG (10) • Example DCT係數 轉換符號 (3),5 (2/2),–2 (15/ 0) (1/1),1 (0/0)
動態視訊壓縮 • 視訊壓縮標準 MPEG-2之特性: 1. 提供漸進式與交錯式的掃描格式 2. 提供3:2 轉換功能 3. 提供移動型的視窗顯示 4. 畫面品質的可調度更大 5. 隨機擷取 6. 高低複雜度的解碼器 7. 錯誤的遮隱
MPEG-2標準之原理(1) • MPEG-2標準 1. ISO/IEC 13818-1系統 2.ISO/IEC 13818-2影像部份 3.ISO/IEC 13818-3音效部份 4.ISO/IEC 13818-4相容性 • MPEG-2資料結構 1. 視訊序列是最上層 2. 畫面組以I畫面(I picture)為開始 3. 畫面層是視訊序列內每一張個別的畫面 畫面組 畫面組 畫面 畫面切片 巨集區塊
MPEG-2標準之原理(2) 4. MPEG-2定義三種畫面:I 畫面(內部編碼,intracoded) P 畫面(預測編碼,predicted) B 畫面(雙向預測編碼,bi-directionary predicted) 5. 一個視訊序列的組成 I B B P B B P B B P 播放: 1 2 3 4 5 6 7 8 9 10 編碼: 1 3 4 2 6 7 5 9 10 8
MPEG-2標準之原理(3) 6. 每一畫面分成若干個切片(Slice),每個切片包含若干個巨集區塊(MB) 7. 根據不同的Y、Cb、Cr比例,產生 三組YUV比例: 4:2:0 、 4:2:2 、 4:4:4 16 4:2:0 16 8 4:2:2 8 4:4:4 Y (亮度) U (Cr) V (Cb)
MPEG-2影像解碼器 • MPEG-2的應用環境 音訊 介面 立體聲 MPEG-2 音訊解碼 音訊輸出 已壓縮 MPEG資料流 解調 子系統 陸地/人造衛星 廣播或有線電視 MPEG-2 傳輸解多工 DRAM 調變 子系統 壓縮MPEG 資料流 NTSC/PAL 編碼器 MPEG-2 視訊解碼器 視訊/音訊 複合式 視訊輸出 MPEG-2 編碼器 磁碟 輸入 DRAM
MPEG-2影像解碼器(Cont.) • 影像解碼器的主要控制單元: (1) 內部微處理器:影像解碼器的控制中心 (2) 解碼器:根據對照表,將壓縮的資料轉換成一串同色長編碼 (3) 反量化器: (4) 對還原的係數矩陣進行反離散餘弦轉換 (5) 動態補償:根據< 移動向量 >來計算出真正的巨集區塊 (6) 記憶體介面 (7) 主處理器介面 (8) 顯示控制器介面 (Z字型掃瞄) (交錯型掃瞄) 同色長碼 霍夫曼碼 掃瞄組成一個8×8矩陣 將8×8矩陣乘上量化因數得到還原的係數矩陣 執行DPCM求得DC係數
以小波轉換壓縮之實例(1) 影像 LL HH LL LH 階層 = 1 類形 = 0 階層 = 1 類形 = 1 階層 = 1 類形 = 2 階層= 1 類形= 3 LLLL LLHH LLLH LLHL 階層= 2 類形= 3 階層= 2 類形= 0 階層= 2 類形= 1 階層= 2 類形= 2 • 方法:將影像小波轉換所得的小波係數做向量量化(VQ),同時使 用金字塔型多解析度結構
以小波轉換壓縮之實例(2) • 向量量化準則 1. 碼簿設計方法:LBG演算法 2. 多解析碼簿:對不同階層或類形的小波係數分別給向量維度或 碼簿大小可能不同的向量量化 編碼器 解碼器 反小波轉換 向量分解 影像 小波轉換 影像 向量重建 Vi W1 W1 編碼後之Vi W2 W2 傳輸通道 Wj 指標 WN WN 多解析度碼簿 多解析度碼簿
階層 類形 N k bpp L-M SNR LBG SNR 1.0 3 1 2 1 1.68 2.32 1.0 3 1 4 2 - 3.75 1.0 3 1 16 4 - 5 . 47 1.0 4 1 2 1 2.10 2.45 1.0 4 1 4 2 - 3.88 1.0 4 1 16 4 - 6.38 2.0 3 1 4 1 6.40 6.82 2.0 3 1 16 2 - 8.67 2.0 4 1 4 1 6.83 7.33 2.0 4 1 16 2 - 9.93 3.0 3 1 8 1 7.89 11.85 3.0 3 1 64 2 - 13.75 3.0 4 1 8 1 9.09 12.48 3.0 4 1 64 2 - 16.80 以小波轉換壓縮之實例(3) • 與純量量化之比較 SQ:Lloyd-Max量化器 VQ:LBG演算法所得之 向量量化器 向量之維度: k 位元率:R bpp 碼簿大小:
以小波轉換壓縮之實例(4) • 小波係數之統計分佈 1. 階層 2類形1的小波係數機率密度函數 (1) (2) (3) (4) Gaussian (1) Lena.2.1 (2) gamma(x,1) (3) laplacian(x,1) (4) gaussian(x,1) Laplacian Gamma
以小波轉換壓縮之實例(5) 2.在同一階層或不同階層中所有類形均有類似的小波係數分佈
以小波轉換壓縮之實例(6) 3.小波係數的統計特性
以小波轉換壓縮之實例(7) • 能量分佈 階層 類形 1 1 0.563 1 2 0.220 1 3 0.094 階層 1 的總和 0.877 2 1 1.528 2 2 0.527 2 3 0.318 階層 2 的總和 2.373 3 1 2.492 3 2 0.807 3 3 0.691 階層 3 的總和 3.99 4 1 5.179 4 2 1.298 4 3 1.088 階層 4 的總和 7.565 4 0 85.19