560 likes | 799 Views
Chapter 2. 無失真壓縮方法與標準. Basic Theory. Digital Video Good quality for storage and transmission Immunity of noise Trend of DSP VLSI Problem with a digital video system Huge amount of data Solution: Video Compression. Generic Image/Video Compression System. Source Coding.
E N D
Chapter 2 無失真壓縮方法與標準
Basic Theory • Digital Video • Good quality for storage and transmission • Immunity of noise • Trend of DSP VLSI • Problem with a digital video system • Huge amount of data • Solution: Video Compression
Source Coding • Reduction of data redundancy • Temporal redundancy • Motion Estimation/Compensation (ME/MC) • Spatial redundancy • Discrete Cosine Transform (DCT) • Statistical redundancy • Variable Length Code (VLC) • Perceptual redundancy • Quantization (Q)
Compression Measure • Compression Ratio • Bits Per Pixel (bpp)
Fidelity Measure • Objective Fidelity Measure • Easy to generate • Not necessarily correlated to our perception • Seemingly unbiased
Fidelity Measure • Subject Fidelity Measure
Entropy • Basic theory: • A theoretical minimum for the average number of bits per pixel that could be used to encode the image. • Theoretically optimal • A metric for judging the success of a coding scheme.
Entropy • Measure the average in formation in an image pi = the probability of the i-th gray level nk = the total number of pixels with gray value k. L = the total number of gray levels. • The range of the entropy:
Huffman Coding • Huffman coding will always at least equal the efficiency of Shannon-Fano coding, so it has become the predominate coding method of this type. • It was shown that Huffman coding cannot be improved or with any other integral bit-width coding stream. • JPEG, MPEG, and etc
Huffman Coding • Given the statistical distribution of the gray levels. • Generate a code that is as close as possible to the minimum bound, entropy. • A variable length code.
Huffman Coding • Five Steps: • Find the gray-level probabilities for the image. • Order the input probabilities (Histogram magnitudes) form smallest to largest. • Combine the smallest two by addition. • GOTO step 2 until only two probabilities are left. • By working backward along the tree, generate code by alternating assignment of 0 and 1
算術編碼 • Huffman 編碼已經被證明是即時碼中最好的 • 只要編碼方法是給每個符號一個整數個位元的碼,那麼它的效能就無法超過 Huffman 編碼。 • Huffman 編碼的問題在於碼的長度必須是整數。 • 假如一個符號的出現機率是 1/3,最好的編碼應該是用差不多1.6 個位元來編碼這個符號。 • Huffman編碼卻只能選擇用一個位元或兩個位元來編碼這個符號, • 無論那一種選擇都將導致壓縮效能跟理論上的推測有段距離。
算術編碼 • 假設我們所採用的模式計算出某個符號的出現機率為 0.9,那麼它的最佳編碼長度應該是 0.15 個位元。 • Huffman 編碼即使只使用一個位元來編碼它,也比實際所需高六倍。 • Fax • 二元影像 • 算術編碼避開了一個符號一個碼的想法, • 它採取用一個實數來表示一串符號的新點子。
算術編碼 • 假設我們要壓縮下列的訊息: BILL GATES
算術編碼 • 首先,我們看到的第一個字母是 B,為了將來能解碼成功,我們最後所編碼得之實數一定得介於 0.2 到 0.3 之間。 • 令 low 及 high 分別表示編碼後所得之實數其可能範圍的下界及上界。 • 在還沒讀入任何輸入符號前,low 設定為 0.0 而 high 則設定為1.0。 • 現在讀入的第一個符號為 B,由範圍表知道其範圍為 0.2 到 0.3,因此我們將 low 重新設定為 0.2,high 重新設定為 0.3。
算術編碼 • 再讀入下一個符號,I, • 由範圍表知道其範圍為 0.5≤ r<0.6, • 因此在編碼後,輸出實數的可能範圍得縮小到 0.2~0.3 這個範圍的第 50% 到第 60% 的部分, • 即 low 變為 0.25 而 high 變成 0.26。
算術編碼 • 算術編碼-編碼 第一步:low← 0.0;high←1.0; 第二步:讀入下一個符號,c; 第三步:range← high-low; 第四步:查範圍表,令c的範圍為 l ≤ r < h; 設定 high← low+range×h;low← low+range×l; 第五步:如果還有輸入符號還沒編碼,則回 到第二步,否則執行第六步; 第六步:輸出 low;
算術編碼: Example • 因此,最後的 low 值 0.2572167752 將用來編碼 “BILL^GATES” 這個訊息。
算術編碼: Example • 解碼的程序剛好反過來 • 由範圍表我們知道 0.2572167752 落在 0.2 到 0.3 的範圍內(符號 B 之範圍),因此第一個符號必然是 B。 • 將 B 的影響從 0.2572167752 除去。 • 首先減去 B 的 l值得到 0.0572167752, • 然後除以 B 的範圍,h-l=0.1,這樣做之後我們得到0.572167752。 • 然後,再從範圍表裡找出這個數字落在那個符號的範圍內, • 那也就是我們下一個解碼出的符號,I。 • 重複以上的步驟直到 l變回 0 為止。
算術編碼 • 算術編碼-解碼 第一步:讀入編碼值,number; 第二步:從範圍表裡找出 number 落在那 一個符號的範圍 內,假設是 c 而 且 c 的範圍從 l 到 h; 第三步:輸出 c; 第四步:number←number - l; 第五步:number←number / (h – l ); 第六步:回到第二步直到 number 為 0;
算術編碼: example • 解碼: BILL^GATES
算術編碼 • 和 Huffman 編碼比起來,算術編碼看起來好像比較複雜,但實際寫成程式兩者卻差不了多少。 • 至於壓縮結果算術編碼則比Huffman編碼好一些。 • 和 Huffman 編碼比起來,算術編碼看起來好像比較複雜,但實際寫成程式兩者卻差不了多少。 • 至於壓縮結果算術編碼則比Huffman編碼好一些。
0 (64) • 1 (128) • 2 (32) • 3 (32) • Code: 002310
Golomb & Rice Code • 幾何機率分布 p(n) = (1- p) pn • 如果 p表示 0 出現的機率,那麼 p(n) 就表示連續出現 n個 0 後出現非 0 的機率。 • 令 n = mq + r • 將q編碼為連續 q個 0 後面接一個 1。 • 如果 ,則使用 個位元來表示它,否則使用 個位元來表示 . • 將 q的碼與 r的碼接起來即為 n的 Golomb 碼。
G3 & G4 • G1:使用類比技術。透過電話線傳真一張 A4 文件大約需要六分鐘。 • G2:也是使用類比技術。透過電話線傳真一張 A4 文件大約需要三分鐘。 • 由於 G1 與 G2 都使用類比通訊,因此都不做資料壓縮。 • G3:使用數位技術。透過電話線傳真一張 A4 文件大約需要一分鐘。 . • G4:也是使用數位技術。傳輸速度與 G3 一樣。 • 由於 G3 與 G4 都使用數位通訊,因此都有做資料壓縮。
G3 & G4 • G3 & G4 使用串長編碼與 Huffman 編碼。 • 1D 方法 • 白色像素的串長、黑色像素的串長、白色像素的串長、黑色像素的串長…… • 串長 r表示為 64m+t (m=1, 2, …, 27). • 再將 m與 t做 Huffman 編碼 • 2D • MR (Modified READ) • G4 使用 MMR (Modified modified READ)
JBIG & JBIG2 • JBIG 與 JBIG2 都使用算術編碼 • 根據前文而改變的算術編碼 • QM 編碼器
無失真 JPEG • 無失真壓縮:
無失真 JPEG2000 • 使用整數小波 • 使用 JBIG2 對整數小波係數做無失真資料壓縮
LOCO-I / JPEG-LS • JPEG-LS演算法的核心是 • LOw COmplexity LOssless COmpression for Image. • JPEG-LS 要求 : • 低時間複雜度 • 無失真 / 近乎無失真