6.1.1 視頻信號壓縮的可能性
視頻數(shù)據(jù)中存在著大量的冗余, 即圖像的各像素數(shù)據(jù)之間存在極強的相關(guān)性。 利用這些相關(guān)性, 一部分像素的數(shù)據(jù)可以由另一部分像素的數(shù)據(jù)推導出來, 結(jié)果視頻數(shù)據(jù)量能極大地壓縮, 有利于傳輸和存儲。 視頻數(shù)據(jù)主要存在以下形式的冗余。
1. 空間冗余
視頻圖像在水平方向相鄰像素之間、 垂直方向相鄰像素之間的變化一般都很小, 存在著極強的空間相關(guān)性。 特別是同一景物各點的灰度和顏色之間往往存在著空間連貫性, 從而產(chǎn)生了空間冗余, 常稱為幀內(nèi)相關(guān)性。
2. 時間冗余
在相鄰場或相鄰幀的對應像素之間, 亮度和色度信息存在著極強的相關(guān)性。 當前幀圖像往往具有與前、 后兩幀圖像相同的背景和移動物體, 只不過移動物體所在的空間位置略有不同, 對大多數(shù)像素來說, 亮度和色度信息是基本相同的, 稱為幀間相關(guān)性或時間相關(guān)性。
3. 結(jié)構(gòu)冗余
在有些圖像的紋理區(qū), 圖像的像素值存在著明顯的分布模式。 如方格狀的地板圖案等。 已知分布模式, 可以通過某一過程生成圖像, 稱為結(jié)構(gòu)冗余。
4. 知識冗余
有些圖像與某些知識有相當大的相關(guān)性。 如人臉的圖像有固定的結(jié)構(gòu), 嘴的上方有鼻子, 鼻子的上方有眼睛, 鼻子位于臉部圖像的中線上。 這類規(guī)律性的結(jié)構(gòu)可由先驗知識得到, 此類冗余稱為知識冗余。
5. 視覺冗余
人眼具有視覺非均勻特性, 對視覺不敏感的信息可以適當?shù)厣釛墶?在記錄原始的圖像數(shù)據(jù)時, 通常假定視覺系統(tǒng)是線性的和均勻的, 對視覺敏感和不敏感的部分同等對待, 從而產(chǎn)生了比理想編碼(即把視覺敏感和不敏感的部分區(qū)分開來編碼)更多的數(shù)據(jù), 這就是視覺冗余。 人眼對圖像細節(jié)、 幅度變化和圖像的運動并非同時具有最高的分辨能力。
人眼視覺對圖像的空間分解力和時間分解力的要求具有交換性, 當對一方要求較高時, 對另一方的要求就較低。 根據(jù)這個特點, 可以采用運動檢測自適應技術(shù), 對靜止圖像或慢運動圖像降低其時間軸抽樣頻率, 例如每兩幀傳送一幀; 對快速運動圖像降低其空間抽樣頻率。
另外, 人眼視覺對圖像的空間、 時間分解力的要求與對幅度分解力的要求也具有交換性, 對圖像的幅度誤差存在一個隨圖像內(nèi)容而變的可覺察門限, 低于門限的幅度誤差不被察覺, 在圖像的空間邊緣(輪廓)或時間邊緣(景物突變瞬間)附近, 可覺察門限比遠離邊緣處增大3~4倍, 這就是視覺掩蓋效應。
根據(jù)這個特點, 可以采用邊緣檢測自適應技術(shù), 對于圖像的平緩區(qū)或正交變換后代表圖像低頻成分的系數(shù)細量化, 對圖像輪廓附近或正交變換后代表圖像高頻成分的系數(shù)粗量化; 當由于景物的快速運動而使幀間預測編碼碼率高于正常值時進行粗量化, 反之則進行細量化。 在量化中, 盡量使每種情況下所產(chǎn)生的幅度誤差剛好處于可覺察門限之下, 這樣能實現(xiàn)較高的數(shù)據(jù)壓縮率而主觀評價不變。
6. 圖像區(qū)域的相同性冗余
在圖像中的兩個或多個區(qū)域所對應的所有像素值相同或相近, 從而產(chǎn)生的數(shù)據(jù)重復性存儲, 這就是圖像區(qū)域的相似性冗余。 在這種情況下, 記錄了一個區(qū)域中各像素的顏色值, 與其相同或相近的區(qū)域就不再記錄各像素的值。 矢量量化方法就是針對這種冗余圖像的壓縮方法。
7. 紋理的統(tǒng)計冗余
有些圖像紋理盡管不嚴格服從某一分布規(guī)律, 但是在統(tǒng)計的意義上服從該規(guī)律, 利用這種性質(zhì)也可以減少表示圖像的數(shù)據(jù)量, 稱為紋理的統(tǒng)計冗余。
電視圖像信號數(shù)據(jù)存在的信息冗余為視頻壓縮編碼提供了可能。
6.1.2 視頻信號的數(shù)字化和壓縮
模擬電視信號(包括視頻和音頻)通過取樣、 量化后編碼 為二進制數(shù)字信號的過程稱為模數(shù)變換(A/D變換)或脈沖編碼調(diào)制(PCM, Pulse Coding Modulation), 所得到的信號也稱為PCM信號, 其過程可用圖6-1(a)表示。 若取樣頻率等于fs、 用n比特量化, 則PCM信號的碼率為nfs(比特/s)。 PCM編碼既可以對彩色全電視信號直接進行, 也可以對亮度信號和兩個色差信號分別進行, 前者稱為全信號編碼, 后者稱為分量編碼。
PCM信號經(jīng)解碼和插入濾波恢復為模擬信號, 如圖6-1(b)所示, 解碼是編碼的逆過程, 插入濾波是把解碼后的信號插補為平滑、 連續(xù)的模擬信號。 這兩個步驟合稱為數(shù)模變換(D/A變換)或PCM解碼。
圖 6-1 電視信號的數(shù)字化和復原
(a) A/D變換; (b) D/A變換
1. 奈奎斯特取樣定理
理想取樣時, 只要取樣頻率大于或等于模擬信號中最高頻率的兩倍, 就可以不失真地恢復模擬信號, 稱為奈奎斯特取樣定理。 模擬信號中最高頻率的兩倍稱為折疊頻率。
2. 亞奈奎斯特取樣
按取樣定理, 若取樣頻率fs小于模擬信號最高頻率fmax的2倍會產(chǎn)生混疊失真, 但若巧妙地選擇取樣頻率, 令取樣后頻譜中的混疊分量落在色度分量和亮度分量之間, 就可用梳狀濾波器去掉混疊成分。
3. 均勻量化和非均勻量化
在輸入信號的動態(tài)范圍內(nèi), 量化間隔幅度都相等的量化稱為均勻量化或線性量化。 對于量化間距固定的均勻量化, 信噪比隨輸入信號幅度的增加而增加, 在強信號時固然可把噪波淹沒掉, 在弱信號時, 噪波的干擾就十分顯著。
為改善弱信號時的信噪比, 量化間距應隨輸入信號幅度而變化, 大信號時進行粗量化, 小信號時進行細量化, 也就是采用非均勻量化(或稱非線性量化)。
非均勻量化有兩種方法, 一是把非線性處理放在編碼器前和解碼器后的模擬部分, 編、 解碼仍采用均勻量化, 在均勻量化編碼器之前, 對輸入信號進行壓縮, 這樣等效于對大信號進行粗量化, 小信號進行細量化; 在均勻量化解碼器之后, 再進行擴張, 以恢復原信號。 另一種方法是直接采用非均勻量化器, 輸入信號大時進行粗量化(量化間距大) , 輸入信號小時細量化(量化間距小)。 也有采用若干個量化間距不等的均勻量化器, 當輸入信號超過某一電平時進入粗間距均勻量化器, 低于某一電平時進入細間距量化器, 稱為準瞬時壓擴方式。
通常用Q表示量化, 用Q-1表示反量化。 量化過程相當于由輸入值找到它所在的區(qū)間號, 反量化過程相當于由量化區(qū)間號得到對應的量化電平值。 量化區(qū)間總數(shù)遠遠少于輸入值的總數(shù), 所以量化能實現(xiàn)數(shù)據(jù)壓縮。 很明顯, 反量化后并不能保證得到原來的值, 因此量化過程是一個不可逆過程, 用量化的方法來進行壓縮編碼是一種非信息保持型編碼。 通常這兩個過程均可用查表方法實現(xiàn), 量化過程在編碼端完成, 而反量化過程則在解碼端完成。
對量化區(qū)間標號(量化值)的編碼一般采用等長編碼方法。 當量化分層總數(shù)為K時, 經(jīng)過量化壓縮后的二進制數(shù)碼率為lbK比特/量值。 在一些要求較高的場合, 可采用可變字長編碼如哈夫曼編碼或算術(shù)編碼來進一步提高編碼效率。
6.1.3 ITU-R BT.601分量數(shù)字系統(tǒng)
數(shù)字視頻信號是將模擬視頻信號經(jīng)過取樣、 量化和編碼后形成的。 模擬電視有PAL、 NTSC等制式, 必然會形成不同制式的數(shù)字視頻信號, 不便于國際數(shù)字視頻信號的互通。 1982年10月, 國際無線電咨詢委員會(CCIR, Consultative Committee for International Radio)通過了第一個關(guān)于演播室彩色電視信號數(shù)字編碼的建議, 1993年變更為ITU-R(國際電聯(lián)無線電通信部分, International Telecommunications Union-Radio communications Sector)BT.601分量數(shù)字系統(tǒng)建議。
BT.601建議采用了對亮度信號和兩個色差信號分別編碼的分量編碼方式, 對不同制式的信號采用相同的取樣頻率13.5 MHz, 與任何制式的彩色副載波頻率無關(guān), 對亮度信號Y的取樣頻率為13.5 MHz。 由于色度信號的帶寬遠比亮度信號的帶寬窄, 對色度信號U和V的取樣頻率為6.75 MHz。 每個數(shù)字有效行分別有720個亮度取樣點和360×2個色差信號取樣點。 對每個分量的取樣點都是均勻量化, 對每個取樣進行8比特精度的PCM編碼。
這幾個參數(shù)對525行、 60場/秒和625行50場/秒的制式都是相同的。 有效取樣點是指只有行、 場掃描正程的樣點有效, 逆程的樣點不在PCM編碼的范圍內(nèi)。 因為在數(shù)字化的視頻信號中, 不再需要行、 場同步信號和消隱信號, 只要有行、 場(幀)的起始位置即可。 例如, 對于PAL制, 傳輸所有的樣點數(shù)據(jù), 大約需要200 Mb/s的傳輸速率, 傳輸有效樣點只需要160 Mb/s左右的速率。
色度信號的取樣率是亮度信號取樣率的一半, 常稱作4∶2∶2格式, 可以理解為每一行里的Y、 U、 V的樣點數(shù)之比為4∶2∶2。
6.1.4 熵編碼
熵編碼(Entropy Coding)是一類無損編碼, 因編碼后的平均碼長接近信源的熵而得名。 熵編碼多用可變字長編碼(VLC, Variable Length Coding)實現(xiàn)。 其基本原理是對信源中出現(xiàn)概率大的符號賦以短碼, 對出現(xiàn)概率小的符號賦以長碼, 從而在統(tǒng)計上獲得較短的平均碼長。 所編的碼應是即時可譯碼, 某一個碼不會是另一個碼的前綴, 各個碼之間無需附加信息便可自然分開。
1. 霍夫曼(Huffman)編碼
霍夫曼(Huffman)編碼是一種可變長編碼, 編碼方法如圖6-2所示。
(1) 將輸入信號符號以出現(xiàn)概率由大至小為序排成一列。
(2) 將兩處最小概率的符號相加合成為一個新概率, 再按出現(xiàn)概率的大小排序。
(3) 重復步驟(2), 直至最終只剩兩個概率。
(4) 編碼從最后一步出發(fā)逐步向前進行, 概率大的符號賦予“0”碼, 另一個概率賦予“1”碼, 直至到達最初的概率排列為止。
圖 6-2 霍夫曼(Huffman)編碼
2. 算術(shù)編碼
霍夫曼編碼的每個代碼都要使用一個整數(shù)位, 如果一個符號只需要用2.5位就能表示, 但在霍夫曼編碼中卻必須用3個符號來表示, 因此它的效率較低。 與其相比, 算術(shù)編碼并不是為每個符號產(chǎn)生一個單獨的代碼, 而是使整條信息共用一個代碼, 增加到信息上的每個新符號都遞增地修改輸出代碼。
假設(shè)信源由4個符號S1、 S2、 S3和S4組成, 其概率模型如表6-1所示。 把各符號出現(xiàn)的概率表示在如圖6-3所示的單位概率區(qū)間之中, 區(qū)間的寬度代表概率值的大小, 各符號所對應的子區(qū)間的邊界值, 實際上是從左到右各符號的累積概率。 在算術(shù)編碼中通常采用二進制的小數(shù)來表示概率, 每個符號所對應的概率區(qū)間都是半開區(qū)間, 如S1對應[0, 0.001), S2對應[0.001, 0.011)。 算術(shù)編碼所產(chǎn)生的碼字實際上是一個二進制小數(shù)值的指針, 該指針指向所編的符號所對應的概率區(qū)間。
表6-1 信源概率模型和算術(shù)編碼過程
圖 6-3 算術(shù)編碼過程示意圖
若將符號序列S3S3S2S4進行算術(shù)編碼, 序列的第一個符號為S3, 我們用指向圖6-3中第3個子區(qū)間的指針來代表這個符號, 由此得到碼字0.011。 后續(xù)的編碼將在前面編碼指向的子區(qū)間內(nèi)進行。 將[0.011, 0.111)區(qū)間再按符號的概率值劃分成4份, 對第二個符號S3, 指針指向0.1001,碼 字串變?yōu)?.1001。 然后S3所對應的子區(qū)間又被劃分為4份, 開始對第3個符號進行編碼……。
算術(shù)編碼的基本法則如下:
(1) 初始狀態(tài): 編碼點(指針所指處)C0=0, 區(qū)間寬度A0=1。
(2) 新編碼點: Ci= Ci-1 + Ai-1×Pi。
式中, Ci-1是原編碼點; Ai-1是原區(qū)間寬度;
Pi所編符號對應的累積概率。
新區(qū)間寬度Ai= Ai-1×pi
式中, pi為所編符號對應的概率。
根據(jù)上述法則, 對序列S3S3S2S4進行算術(shù)編碼的過程如下:
第一個符號S3:
C1=C0+A0×P1=0+1×0.011=0.011
A1=A0×p1=1×0.1=0.1
[0.011,0.111]
第二個符號S3: C2=C1+A1×P2
=0.011+0.1×0.011=0.1001
A2=A1×p2=0.1×0.1=0.01
[0.1001,0.1101]
第三個符號S2:
C3=C2+A2×P3=0.1001+0.01×0.001=0.10011
A3=A2×p3=0.01×0.01=0.0001
[0.10011,0.10101]
第四個符號S4: C4=C3+A3×P4=0.10011+0.0001×0.111=0.1010011
A4=A3×p4=0.0001×0.001=0.0000001
[0.1010011,0.10101)
3. 游程編碼
游程編碼(RLC, Run Length Coding)是一種十分簡單的壓縮方法, 它將數(shù)據(jù)流中連續(xù)出現(xiàn)的字符用單一的記號來表示。 例如, 字符串5310000000000110000000012000000000000可以壓縮為5310-10110-08120-12, 其中, “-”后面兩個數(shù)字是“-”前面數(shù)字的連續(xù)個數(shù)。 游程編碼的壓縮率不高, 但編碼、 解碼的速度快, 仍被得到廣泛的應用, 特別是在變換編碼后再進行游程編碼, 有很好的效果。
6.1.5 預測編碼和變換編碼
1. DPCM原理
基于圖像的統(tǒng)計特性進行數(shù)據(jù)壓縮的基本方法就是預測編碼。 它是利用圖像信號的空間或時間相關(guān)性, 用已傳輸?shù)南袼貙Ξ斍暗南袼剡M行預測, 然后對預測值與真實值的差——預測誤差進行編碼處理和傳輸。 目前用得較多的是線性預測方法, 全稱為差值脈沖編碼調(diào)制(DPCM, Differential Pulse Code Modulation), 簡稱為DPCM。
利用幀內(nèi)相關(guān)性(像素間、 行間的相關(guān))的DPCM稱為幀內(nèi)預測編碼。 如果對亮度信號和兩個色差信號分別進行DPCM編碼, 對亮度信號采用較高的取樣率和較多位數(shù)編碼, 對色差信號用較低的取樣率和較少位數(shù)編碼, 構(gòu)成時分復合信號后再進行DPCM編碼, 這樣做使總碼率更低。
利用幀間相關(guān)性(鄰近幀的時間相關(guān)性)的DPCM被稱為幀間預測編碼, 因幀間相關(guān)性大于幀內(nèi)相關(guān)性, 其編碼效率更高。 若把這兩種DPCM組合起來, 再配上變字長編碼技術(shù), 能取得較好的壓縮效果。 DPCM是圖像編碼技術(shù)中研究得最早, 且應用最廣的一種方法, 它的一個重要的特點是算法簡單, 易于硬件實現(xiàn)。 圖6-4(a)是它的示意圖, 編碼單元主要包括線性預測器和量化器兩部分。
編碼器的輸出不是圖像像素的樣值f(m, n), 而是該樣值與預測值g(m, n)之間的差值, 即預測誤差e(m, n)的量化值E(m, n)。 根據(jù)圖像信號統(tǒng)計特性的分析, 給出一組恰當?shù)念A測系數(shù), 使預測誤差主要分布在“0”附近, 經(jīng)非均勻量化, 采用較少的量化分層, 圖像數(shù)據(jù)得到壓縮。 而量化噪聲又不易被人眼所覺察, 圖像的主觀質(zhì)量并不明顯下降。 圖6-4(b)是DPCM解碼器, 其原理和編碼器剛好相反。
圖 6-4 DPCM原理
(a) DPCM編碼器; (b) DPCM解碼器
DPCM編碼性能主要取決于預測器的設(shè)計, 預測器設(shè)計要確定預測器的階數(shù)N以及各預測系數(shù)。 圖6-5是一個4階預測器的示意圖, 圖6-5(a)表示預測器所用的輸入像素和被預測像素之間的位置關(guān)系, 圖6-5(b)表示預測器的結(jié)構(gòu)。