3.MPEG-2視頻壓縮基礎
碼率壓縮要從視覺(jué)對象、視覺(jué)生理、視覺(jué)心理3個(gè)方面入手,研究符合于人類(lèi)視覺(jué)規律的視覺(jué)模型。由于視覺(jué)心理是1個(gè)很復雜的問(wèn)題,難以得到其規律。因此,碼率壓縮只能在利用圖像信號的統計特性和人類(lèi)眼睛的視覺(jué)特性的基礎上來(lái)進(jìn)行。
1) 利用圖像信號的統計特性進(jìn)行壓縮
同一幀電視圖像中相鄰像素之間的幅度值相近,即同一行上的相鄰像素之間幅值相近,相鄰行之間同樣位置上的像素幅值相近,體現了電視圖像的空間冗余度;相鄰兩幀電視圖像同一位置上像素幅度值相近,體現了電視圖像的時(shí)間(動(dòng)態(tài))冗余度,如圖14所示。另外,每個(gè)像素所用bits數的多少表示了比特結構,多用的比特數為冗余量,體現了靜態(tài)(比特結構)冗余度。

因此,為了清楚地了解空間冗余度、時(shí)間冗余度和靜態(tài)冗余度三者之間的關(guān)系,可以通過(guò)圖15所示的電視圖像信息的三維表示來(lái)說(shuō)明。需要指出的是采用運動(dòng)補償(MC)去除時(shí)間冗余度要進(jìn)行160億次的算術(shù)運算;采用離散余弦變換(DCT)和游程長(cháng)度編碼(RLC)去除空間冗余度要進(jìn)行20億次的算術(shù)運算;采用可變長(cháng)度編碼(VLC)去除靜態(tài)(比特結構)冗余度要象“Morse Code”那樣進(jìn)行比特匹配。MPEG壓縮算法如圖16所示。為了減少計算量,最佳算法的探討及其標準化是很重要的。


2) 利用人眼的視覺(jué)特性進(jìn)行壓縮
人眼對構成圖像的不同頻率成分、物體的不同運動(dòng)程度等具有不同的敏感度,這是由人眼的視覺(jué)特性所決定的,如人的眼睛含有對亮度敏感的柱狀細胞1.8億個(gè),含有對色彩敏感的椎狀細胞0.08億個(gè),由于柱狀細胞的數量遠大于椎狀細胞,所以眼睛對亮度的敏感程度要大于對色彩的敏感程度。據此,可控制圖像適合于人眼的視覺(jué)特性,從而達到壓縮圖像數據量的目的。例如,人眼對低頻信號的敏感程度大于對高頻信號的敏感程度,可用較少的bit數來(lái)表示高頻信號;人眼對靜態(tài)物體的敏感程度大于對動(dòng)態(tài)物體的敏感程度,可減少表示動(dòng)態(tài)物體的bit數;人眼對亮度信號的敏感程度大于對色度信號的敏感程度,可在行、幀方向縮減表示色度信號的bit數;人眼對圖像中心信息的敏感程度大于對圖像邊緣信息的敏感程度,可對邊緣信息少分配bit數;人眼對圖像水平向及垂直向信息敏感于傾斜向信息,可減少表示傾斜向信息高頻成分的bit數等。在實(shí)際工作中,由于眼睛對亮度、色度敏感程度不一樣,故可將其分開(kāi)處理。
為此,將單元分量RGB改變?yōu)閅UV(或YCrCb)全分量。在編碼時(shí)強調亮度信息,可去掉一些色度信息,如4:4:4變?yōu)?:2:2,碼率由270Mbps降低到180Mbps。
由上述可見(jiàn),電視系統存在著(zhù)冗余信息,在傳輸圖像信息之前,只要將這些冗余信息去除,就可以實(shí)現適度的壓縮。由于去除這些冗余信息對圖像質(zhì)量無(wú)影響,故稱(chēng)其為“無(wú)損壓縮”。如,從視頻信號中去除同步信息。無(wú)損壓縮的壓縮比不高,壓縮能力有限。為了提高壓縮比,MPEG標準采用了對圖像質(zhì)量有損傷的“有損壓縮”技術(shù)。
4. MPEG-2視頻編碼方式
為了提高壓縮比及圖像質(zhì)量,MPEG-2視頻編碼采用運動(dòng)補償預測(時(shí)間預測+內插)消除時(shí)間冗余和不隨時(shí)間變化的圖像細節;采用二維DCT(圖像像素+量化傳輸系數)分解相鄰像素,消除觀(guān)眾不可見(jiàn)、不重要的圖像細節;采用熵值編碼(已量化參數+編碼參數的熵),使bit數減少到理論上的最小值。對以上3種壓縮技術(shù),作如下說(shuō)明:
1)運動(dòng)補償預測


將存儲器中前一圖像幀的重建圖像中相應的塊按編碼器端求得的運動(dòng)矢量進(jìn)行位移,這就是運動(dòng)補償過(guò)程。為了壓縮視頻信號的時(shí)間冗余度(Temporal Redundancy),MPEG采用了運動(dòng)補償預測(Motion Compensated Prediction),圖17是其運動(dòng)處理過(guò)程示意圖。運動(dòng)補償預測假定:通過(guò)畫(huà)面以一定的提前時(shí)間平移,可以局部地預測當前畫(huà)面。這里的局部意味著(zhù)在畫(huà)面內的每個(gè)地方位移的幅度和方向可以是不相同的。采用運動(dòng)估值的結果進(jìn)行運動(dòng)補償,以便盡可能地減小預測誤差。運動(dòng)估值包括了從視頻序列中提取運動(dòng)信息的一套技術(shù),該技術(shù)與所處理圖像序列的特點(diǎn)決定著(zhù)運動(dòng)補償性能的優(yōu)劣。與畫(huà)面16×16像素宏塊相關(guān)的運動(dòng)矢量支持接收機解碼器中的運動(dòng)補償預測。所謂預測,實(shí)際上是由前一(n-1)圖像幀導出當前(n)圖像幀所考慮像素的預測值,而后由運動(dòng)矢量編碼傳輸n幀的實(shí)際像素值與其預測值之間的差值。例如,設宏塊為M×N的矩形塊,將圖17中的n-1幀的宏塊與n幀的宏塊進(jìn)行比較。這實(shí)際上是一個(gè)如圖18所示的進(jìn)行宏塊匹配的運動(dòng)補償過(guò)程,即將n幀中16×16像素的宏塊與n-1幀中限定搜索區(SR)內全部16×16像素的宏塊進(jìn)行比較。若n-1幀圖像亮度信號為f n -1 (i , j),n幀圖像亮度信號為f n (i , j),其中(i , j)為n幀的M×N宏塊的任意位置,并將n幀中的一個(gè)M×N的宏塊看作是從n-1幀中平移而來(lái)的,而且規定同一個(gè)宏塊內的所有像素都具有同樣的位移值(k,l) 。這樣,通過(guò)在n-1幀限定搜索區(SR)內進(jìn)行搜索,總可以搜索到某一宏塊,使得該宏塊與n幀中要匹配的宏塊的差值的絕對值達到最小,并得到運動(dòng)矢量的運動(dòng)數據,在n-1幀和運動(dòng)數據的控制下,獲得n幀的一個(gè)相應的預測值。照此辦理,直到n幀的M×N宏塊的任意位置(i , j)的像素全部通過(guò)n-1幀的像素預測出來(lái)。即n幀與n-1幀的相關(guān)函數F(k , l)的絕對值表示為 :

式(1)表明要匹配的宏塊已經(jīng)匹配,并得到水平及垂直位移為(k , l)的運動(dòng)矢量的運動(dòng)數據。通過(guò)匹配不僅將傳輸的差值減到最小,而且補償了匹配對象在圖像中的位移,這就是運動(dòng)補償。為了改善預測效果,可以采用場(chǎng)預測。由于在電視圖像連續幀之間有較大程度的共同性,即時(shí)間冗余度,多數圖像之間差值極小,尤其是在大多數時(shí)間傳輸小范圍內的值時(shí),采用運動(dòng)補償預測可使碼率明顯降低。在接收端的解碼器中以同樣的運動(dòng)補償預測重現預測值,重現預測值加上差值就得到像素的原幅值。圖 19是基本MPEG視頻編碼器框圖,圖中虛線(xiàn)左邊為運動(dòng)補償預測編碼所需要的基本功能器件。其中固定存儲器存儲n-1幀的復原數據,將其與n幀數據一同送入運動(dòng)補償參數估值器,估值后就可以得到運動(dòng)矢量的數據。用運動(dòng)矢量數據和n-1幀的復原數據去控制用于塊匹配的可變存儲器,將n幀的當前像素值預測出來(lái)。這里,預測是按幀差僅有1幀進(jìn)行的,實(shí)際上MPEG-1和MPEG-2可以當前幀之前若干幀的某一幀為基準進(jìn)行預測。值就得到像素的原幅值。圖 19是基本MPEG視頻編碼器框圖,圖中虛線(xiàn)左邊為運動(dòng)補償預測編碼所需要的基本功能器件。其中固定存儲器存儲n-1幀的復原數據,將其與n幀數據一同送入運動(dòng)補償參數估值器,估值后就可以得到運動(dòng)矢量的數據。用運動(dòng)矢量數據和n-1幀的復原數據去控制用于塊匹配的可變存儲器,將n幀的當前像素值預測出來(lái)。這里,預測是按幀差僅有1幀進(jìn)行的,實(shí)際上MPEG-1和MPEG-2可以當前幀之前若干幀的某一幀為基準進(jìn)行預測。

需要說(shuō)明的是:MPEG定義了基于幀、基于場(chǎng)及雙場(chǎng)的圖像預測,也定義了16×8的運動(dòng)補償。
MPEG-2:有逐行掃描方式,可以采用基于幀的圖像預測;有隔行掃描方式,也可以采用基于場(chǎng)的圖像預測。因此,MPEG-2編碼器要對每個(gè)圖像先判斷是幀模式壓縮還是場(chǎng)模式壓縮。在隔行掃描方式下:運動(dòng)少的場(chǎng)景時(shí),采用基于幀的圖像預測,因為基于幀的圖像兩相鄰行間幾乎沒(méi)有位移,幀內相鄰行間相關(guān)性強于場(chǎng)內相關(guān)性,從整個(gè)幀中去除的空間冗余度比從個(gè)別場(chǎng)中去除得多;劇烈運動(dòng)的場(chǎng)景時(shí),采用基于場(chǎng)的圖像預測,因為基于幀的相鄰兩行間存在1場(chǎng)延遲時(shí)間,相鄰行像素間位移較大,幀內相鄰行間相關(guān)性會(huì )有較大下降,基于場(chǎng)的圖像兩相鄰行間相關(guān)性強于幀內相鄰行間相關(guān)性,在1幀內,場(chǎng)間運動(dòng)有很多高頻分量,從場(chǎng)間去除的高頻分量比從整個(gè)幀中去除的多。由上述可見(jiàn),選擇基于幀的圖像預測還是基于場(chǎng)的圖像預測的關(guān)鍵是行間相關(guān)性。所以,在進(jìn)行DCT之前,要作幀DCT編碼或場(chǎng)DCT編碼的選擇,對16×16 的原圖像或亮度進(jìn)行運動(dòng)補償后所獲得的差值作幀內相鄰行間和場(chǎng)內相鄰行間相關(guān)系數的計算。若幀內相鄰行間相關(guān)系數大于場(chǎng)內相鄰行間相關(guān)系數,就選擇幀DCT編碼,反之選場(chǎng)DCT編碼。幀DCT編碼與場(chǎng)DCT編碼如圖20所示。

聯(lián)系客服