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