本文的目的在於給出有關MPEGl和MPEG2視頻編碼算法及標準的概述、以及它們在視頻通信中的作用。論文的正文是這樣安 排的:首先回顧了與MPEG視頻壓縮標準有關的那些基本概念和技術:接著較詳細地敘述了MPEGl和MPEG2的視頻編碼算法;最後的內容為標準中與其應用有關的一些特征。
MPEG視頻壓縮算法的基本原理
一般說來,在幀內以及幀與幀之間,眾多的視頻序列均包含很 大的統計冗餘度和主觀冗餘度。視頻源碼的最終目標是:通過挖掘 統計冗餘度和主觀冗餘度,來降低存儲和傳送視頻信息所需的比特 率;並采用嫡編碼技術,以便編製出“最小信息組”一個實用的 編碼方案,是在編碼特性(具有足夠質量的高壓縮)與實施複雜性 之間的一種折衷。對於MPEG壓縮算法的開發來講,計及到這些標 準的壽命周期應考慮到現代超大規模集成電路技術的能力,這一點 是最重要的。 根據應用的要求,我們也許會想到視頻數據的“無損失”編碼 和“有損失”編碼“無損失”編碼的目的在於:在保持原圖像質 量(即解碼後的圖像質量等同於編碼前的圖像質量)情況下,來減 少需要存儲和傳送的圖像或視頻數據。與此相反,“有損失”編碼 技術(該技術跟MPEG—l和MPEG2視頻標準未來的應用有關) 的目的是,去符合給定的存儲和傳送比特串。重要的一些應用包 括;利用限定的帶寬或很窄的帶寬,通過通信頻道采傳送視頻信 息;有效地存儲視頻信息。在這些應用中,高的視頻壓縮是以降低 視頻質量的辦法來實施的,即跟編碼以前的原始圖像相比,解碼後 的圖像“客觀”質量有所降低(也就是取原始圖像和再現圖像之間 的均方差,作為評定客觀圖像質量的標準)頻道的目標比特率越低;那麼視頻所必須進行的壓縮率就越大,通常可察覺的編碼人工 產物也越多。有損失編碼技術的最終目的是:在指定的目標比特串 條件下,獲取最佳的圖像標準。這裏應服從“客觀”或“主觀”上 的最佳標準。這裏應該指出,圖像的降級程度(指客觀降低以及可 察覺到的人工產物的數量)取決於壓縮技術的複雜性——對於結構 簡單的畫麵和視頻活動少的圖像來講,就是采用簡單的壓縮技術, 也許能獲得根本不帶可察覺人工產物的良好的再現圖像
(A)MPEG視頻編碼器源模式
MPEG數字視頻編碼技術實質上是一種統計方法。在時間和空 間方向上,視頻列通常包含統計冗餘度。MPEG壓縮技術所依賴的 基本統計特性為像素之間(interpel)的相關性,這裏包含這樣一個 設想:即在各連續幀之間存在簡單的相關性平移運動。這裏假定: 一個特殊畫麵上的像素量值,可以(采用幀內編碼技術)根據同幀 附近像素來加以預測,或者可以(采用幀間技術)根據附件幀中的 像素來加以預測。直覺告訴我們:在某些場合,如一個視頻序列鏡 頭變化時,各附近幀中像素之間的時間相關性就很小,甚至消失 —這時,該視頻鏡頭就成為一組無相關牲的靜止畫麵的組合。在 這種情況下,可采用幀內編碼技術來開發空間相關性,來實現有效 的數據壓縮,MPEG壓縮算法采用離散餘弦變換(DCT)編碼技 術,以8×8像素的畫麵塊為單位,有效地開發同一麵麵各附近像 索之間的空間相關性。然而,若附近幀中各像素間具有較大的相關 性時,也就是說兩個連續幀的內容很相似或相同時,就可以采用應 用時間預測(幀間的運動補償預測)的幀間DPCM編碼技術。在多 種MPEG視頻編碼方案中,若將時間運動補償預測路剩餘空間信息 的變換碼自適應地結合起來,就能實現數據的高壓縮(視頻的 DPCM/DCT混合編碼) 圖1給出了一個畫麵的帕內像素問相關性特性的舉例,這裏采 用了一個非常簡單,但很有價值的統計模式。這個假設的簡單模式已包括了許多“典型”畫麵的一些基本的相關特性,也就是指相鄰 像素間的高度相關性,以及隨著像素間距的增大相關性的單值衰減 特性。我們以後將利用這一模式來展示變換區域編碼的一些特性。 圖1一些“典型”畫麵的像素間的空間相關性,是應用具有 高度像素間相關性的AR(1)GaussMarkov畫麵模式來加以計算 的。變量X和Y分別表示像素之間在畫麵水平和垂直方向上的距離.
(B)二次取樣和內插法
幾乎所有本論文中所敘述的視頻編碼技術,在編碼之前,均大 量地進行了二次取樣和量化工序。二次取樣的基本概念是想減少輸 入視頻的Dimension 水平Dimension和或垂直Dimension),並在進 行編碼處理之前先對像素進行編號。值得注意的是:在有些應用場 合,在時間方向上也對視頻進行二次取樣,以便在編碼之前降低幀 頻。在接收機端,已解碼圖像是通過內插法來加以顯示的。這一方 法可以認為是一種最簡單的壓縮技術,這種壓縮技術利用了人眼特 有的生理特姓,因而去除了視頻數據中的含有的主觀冗餘度—即 與色度信號的變化相比,人眼對亮度信號的變化更靈敏。故眾多 MPEG編碼方案首先將畫麵分成YUV與量信號(一個亮度分量和 二個色度分量)接著,相對於亮度分量,對色度分量進行二次取 樣,對於一些特殊應用,有一個Y:U:V比率(即對於MPEG—2 標準,采用4:1:1或4:2:2.
(C)運動補償預測
運動補償預測是一個有力的工具,以便減小幀間的時間冗餘 度;並作為用於時間DPCM編碼的預測技術,這一工具在MPEGl 和MPEG2視頻編碼標準中得到廣泛應用。運動補償概念是以對視 頻幀間運動的估算為基礎的,也就是說,若視頻鏡頭中所有物體均在空間上有一位移,那麼用有限的運動參數(如對於像素的平移運 動,可用運動矢量來描述)來對幀間的運動加以描述。在這一簡單 例子中,一個來自前編碼幀的運動補償預測像素,就能給出一個有 效像素的最佳預測。通常,預測誤差和運動矢量均傳送至接收機。 然而,將一個運動信息對每一個編碼畫麵像素進行編碼,這既不值 得也沒有這個必要。由於一些運動矢量之間的空間相關性通常較 高,有時可以這樣認為:一個運動矢量代表一個相鄰像素塊的運 動。為了做到這一點,畫麵一般劃分成一些不連接的像素塊(在 MPEGl和MPEG2標準中一個像素塊為16×16像素),對於每一個 這樣的像素塊,隻對一個運動矢量進行估算、編碼和傳送(圖2)。 在MPEG壓縮算法中,運動補償預測技術用來減少幀間的時間 冗餘度,隻對預測誤差畫麵(原始畫麵與運動補償預測畫麵之間的 差別)加以編碼。總的來說,由於采用依據於前編碼幀的預測,與 圖l中所示的幀內相關性相比較,待編碼的運動補償幀間誤差圖像 中像素之間的相關性就差了。 圖2用於運動補償的塊匹配法:在待編碼的第N有效幀中,為 每一個畫麵塊估算一個運動矢量(mv)該運動矢量針對前已編碼 的第N—l幀中同樣大小的一個參照畫麵塊。運動補償預測誤差是 這樣計算的:在帶有前幀參照塊中運動飄移對應物的麵麵塊中,減 去一個像素。
(D)變換或編碼
二十年來,人們已對變換編碼進行了大量的研究,它已成為用 於靜止畫麵編碼和視頻編碼的一種非常流行的壓縮方法。變換編碼 的目的在於去掉幀內或幀間誤差圖像內容的相關性,對變換係數進 行編碼,不是對畫麵的原始像素進行編碼。為此,輸入畫麵被分成 不連接的b像素的畫麵塊(即N×N像素)。以一個線性、可分離的 和單元前向變換為基礎,本變換可表示為一個矩陣操作,采用一個N×N變換矩陣A,采獲取N×N變換係數C。 C=AbAt 這裏AT表示變換矩陣A的一種移項式。注意:這種變換是可逆的, 原因是,采用線性和可分離的反向變換,可以再現原始的N×N個 b像素的畫麵塊. b=AtCa 利用許多可能的方法,應用於較小的由8×8像素組成的畫麵 塊的離散餘弦變換(DCT)已成為一種最佳的變換,用於靜止畫麵 和視頻編碼。事實上,由於基於DCT的方法具有較高的抗相關性 能,並能獲得快速DCT算法,適用於實時應用,已在大多數畫麵 和視頻編碼標準中加以使用。VLSI技術的運行速率適合較廣泛的 視頻應用範圍,故已商業化。 變換編碼的主要目的是使盡量多的變換係數足夠的小,使它仍 無效(從統計和主觀測量角度來看)。同時,應盡量減小係數之間 的統計相關性,目的在於減少對剩餘係數進行編碼所需的比特數 量。 圖3示出了幀內DCT係數8×8像素塊的方差(能量),這裏是 以圖1中已討論過的簡單的統計模式設想為基礎的。此處,每一個 係數的方差,表示了係數(大量幀的乎均值)的可變性。與方差大 的係數相比,方差小的係數在畫麵像素塊再現時意義就不大了。如 圖3中所示,一般來說,為了獲得畫麵像素塊的有用的近似再現, 隻要將少量DCT係數傳送給接收機就行。然而,那些最高有效位 DCT係數集中在左上角(低DCT係數),麵隨著距離的增加,係數 的有效牲就逐步下降。這意味著:與較低位的係數相比,較高位的 DCT係數在畫麵像素塊再現時的重要性就差一些。采用運動補償預測,DCT變換的結果是,使DCT定義域中的時間DPCM信號實現 筒單的再現—這實質上繼承了這種相似的統計相關性,如以DCT 定義域中的這個DPCM信號來再現圖2中的幀內信號(雖然能量有 所減少)—這就是為什麼為了使幀間壓縮獲得成功MPEG算法要采用DCT編碼的原因 圖3圖示了DCT係數的方差分布情況,典型地計算了大量的畫 麵塊而獲得的平均值。DCT係數方差計算是以圖1中的統計模式為 基礎的。U和V分別該8×8塊中水平和垂直畫麵變換域變量。大 多數總方差集中在DCDC了係數周圍(U=0,v=0) DCT跟離散傅裏葉變換很接近,而認識到以下這點是重要的, 即可以對DCT係數加以頻率說明,使其更接近於DFTo在畫麵塊 內,低位的Dcr係數與較低的空間頻率有關而高位的DCT係數 與較高的頻率有關。這一特性在MPEG編碼方案中被加以應用,以 便去除畫麵數據中所包含的主觀冗餘度,這一切是以人類視覺係統 標準為基礎的。由於跟較高空間頻率有關的再現誤差比較,觀眾對 較低空間頻率的再現誤差更加敏感,故在給定比特率情況後,為了 要改進解碼畫麵的視覺質量往往根據視覺(感覺量化)對係數進 行頻率自適應加權(量化) 上述兩種技術—時間運動補償預測和變換域編碼—的結 合,被認為是MPEG編碼標準的關鍵點 MPEG算法的第三個特 點是這兩種技術的處理是較小的畫麵塊(典型情況是:在16×16 像素上進行運動補償,在8×8像素上進行DCT編碼)。由於這個原 因,MPEG編碼算法通常又叫作基於畫麵塊的DPCM/DCT混合算法.
MPEG-1:一個通用標準-一個應用於數字存儲媒體
(最高速率達1.5Mb/s)的活動圖像和伴音的編碼標準
由MPEG—1開發出來的視頻壓縮技術的應用範圍很廣,包 括從CD—ROM上的交互係統,到電信網絡上的視頻傳送 MPEG1視頻編碼標準被認為是一個通用標準。為了支持多種應用, 可有用戶來規定多種多樣的輸人參數,包括靈活的圖像尺寸和幀 頻。MPEG推薦了一組係統規定的參數:每一個MPEG—l兼容解碼器至少必須能夠支持視頻源參數,最佳可達電視標準:包括每行 最小應有720個像素,每個圖像起碼應有576行,每秒最少不低於 30幀,及最低比特率為1.86Mb/s,標準視頻輸入應包括非隔行掃 描視頻圖像格式。應該指出:但並不是說,MPEGl的應用就限製 於這一係統規定的參數組。 根據JPiG和H。261活動,已開發出MPEG—l視頻算法。當 時的想法是:盡量保持與CCITT H.261標準的共同性,這樣,支 持兩個標準的做法就似乎可能。當然,MPEGl主要目標在於多媒 體CD—ROM的應用,這裏需要由編碼器和解碼器支持的附加函數 牲。由MPEGl提供的重要特性包括:基於幀的視頻隨機存取,通 過壓縮比特流的快進/快退搜索,視頻的反向重放,及壓縮比特流 的編輯能力。
(A)基本的MPEG—1幀間編碼方案
基本MPEGl(及MPEG2)視頻壓縮技術的基礎為:宏模塊結 構、運動補償及宏模塊的有條件再補給。如圖49所示,MPEG—1 編碼算法以幀內編碼模式(I圖像)對視頻序列的第一幀進行編碼。 每一個下一幀采用幀間預測法(P圖像)進行編碼——僅僅采用來 自前麵最近的已編碼I或P幀的數據,來進行預測,MPEG—l算 法對基於畫麵塊視頻序列的幀加以處理。視頻序列中的每一個彩色 輸入幀被分割成多個非重迭的“宏模塊”,如圖4b所示。每一個宏 模塊包含4個亮度塊(Y1,Y2,Y3,Y4)及兩個色度塊(U,V), 每個宏模塊的尺寸為8*8像素,這些數據塊來自於亮度帶和共址 的色度帶。在Y:U:V亮度與色度像素之間的取樣比為4:1:1 以最近的前幀為基礎,采用運動補償預測法來對P圖像加以編 碼。每一幀被分割成不連接的“宏模塊”(MB)。 圖4b對於每一個宏模塊,對有關4個亮度塊(Y 3,Y2,Y3, Y4)和兩個彩色決(U,V)的信總均加以編碼。每個包含8×8個 像素。 基本的混合型DPCM/DCT MPEGl編碼器和解碼器結構的方 塊圖示於圖5之中。視頻序列第1幀(I圖像)以幀內(INTRA) 模式加以編碼不參照任何一個過去幀或未來幀。在編碼器處,DCT 被加到每一個8×8亮度塊和色度塊上,在DC了輸出之後,該64個 DCT係數中的每一個係數被均勻量化(Q),在宏模塊中被用來對 DCT係數進行量化的量化器步長,傳送給接收機。‘量化之後,最低 位DO係數(DC係數)的處理方法跟保留(remaining)係數 (AC係數)的處理方法是不一樣的,DC係數表示分量模塊的平均 亮度,可用微分DC預測法對DC係數加以編碼。保留DCT係數及 它們位置的非零量化器值被Z字形掃描,並采用可變長度編碼 (VLC)表對其進行掃描寬度嫡編碼。 圖5一個基本混合型DC了/DPCM 編碼器和解碼器結構的方決圖 圖6中表示出了係數Z字形掃描的概念。因為要利用係數將這 個兩維的畫麵信號變換成一個單維的比特流,故在量化DCT域二 維信號掃描之後,進行的是可變長度碼—字分配工序。並沿著掃描 行和兩個連續非零係數之間的距離(行程),對這些非零AC係數量 化器值(長度)加以檢測。采用僅傳送—個VLC碼字的方法,對 每一個連續(行程、長度)對進行編碼,Z字形掃描的目的在於: 在跟蹤高頻係數之前先去跟蹤低頻DCT係數(包含最大的能量) 圖6在8×8塊內,已量化DCT係數的Z字形掃描。僅僅對非 零量化DCT係數加以編碼。圖中指出了非零DCT係數可能的位置 Z字形掃描的做法要想做到按係數的有效性去跟蹤DCT係數 參看圖3,最低位的DCT係數(0,0)包含了這些決中的最大部分 的能量,這些能量集中在較低位的DCT係數周圍 解碼器執行反向操作,首先從比特流中提取可變長度編碼字 (VLD)並加以解碼,以便為每一個畫麵塊獲取非零DCT係數的位 置和量化器值。隨著一個畫麵塊所有非零DCT係數的再現(Q) 及隨後獲得的反DCT(DCT—1),就得到量化塊像素值。通過對整 個比特流的處理,就對所有的畫麵塊進行了解碼,並加以了再現。 為了對P圖像進行編碼,前麵的I圖像的第N—l幀,存儲在 設置在編碼器和解碼器內的幀存儲器中。在宏模塊中執行運動補償 (MC)—對於即將進行編碼的那個宏模塊,在第N幀與第N—1 幀之間,僅對一個運動矢量進行估算。這些運動矢量被編碼及傳送 至接收機。運動補償預測誤差是這樣計算的:即在帶有前幀運動飄 移對應物的宏模塊中減去一個像素。然後是將8×8DCT加入到包 含在該宏模塊內的每一個8×8塊中,接著是對DCT係數進行量化 (Q),並進行掃描寬度編碼和炳編碼(VLC)o這裏需用一個視頻緩 衝器;以確保編碼器能產生一個常量的目標比特率輸出。對於幀內 每一個宏模塊來講,量化步進(SZ)是可以調整的,以便獲得給定 的目標比特率,並避免緩衝器出現溢流和下溢現象。 解碼器采用反向處理,以便在接收機中再生第N幀的一個宏模 塊。對包含在視頻解碼器緩衝器(VB)中的可變長度字(VLD) 進行解碼之後,就能再現(Q和DCT—1操作)預測誤差像素值。 來自包含在幀存儲器(FS)中的前第N—1曲的運動補償像素,被 加入到預測誤差之中,以恢複第N幀的那一宏模塊。 在圖7a一圖7d中9采用了一個典型的測試序列,描述了采用 運動補償預測編碼視頻的好處,而該預測是以MPEG編碼器中的前 第N—1再現幀為依據的。用7a示出在N時間上將要進行編碼的一 個幀,圖7b示出了在N—1時間上的再現幀,其存儲在設置在編碼器和解碼器中的幀存儲器(FS)內。采用編碼器運動估算方法已對 圖7b中所示的塊運動矢量(mv,參照圖2)加以估算,並能預測第 N幀中每個宏模塊的平移運動的位移(參照第N—1幀)。圖7b出 示了這個純幀差信號(第N幀減去第N—1幀),若在編碼過程根本 不采用運動補償預測,那麼就能獲得這個幀差信號——即假定所有 運動矢量為零。圖7d出示了:當采用圖7b的運動矢量來進行預測 時的運動補償幀差信號。很明顯,跟圖7c中的純幀差編碼相比,采 用運動補償,大大減縮了這個將要被編碼的殘差信號。 圖7:(a)在N時間上將要被編碼的幀:(b)在P4—1時間上 的幀,用來預測第N幀的內容(注意:四麵中所示的運動矢量,並 不是存儲在編碼器和解碼器內的再現畫麵的一部分;(c)沒采用運 動補償所獲取的預測誤差畫麵——假設所有的運動矢量均為零; (d)若采用運動補償預測,將要進行編碼的預測誤差畫麵.
(B)條件再補給
MPEG1編碼算法所支持有一個基本特點是,如需要時(即與 前幀同一個宏模塊相:比,宏模塊內容已有變更時),可以在解碼器 中更新宏模塊的信息(條件宏模塊再補給)在較低比特率要實行 規頻序列的有效編碼的關鍵,是選擇合適的預測模式,以實現條件 再補給,MPEG標準主要區分有三種不同的宏模塊編碼類型(MB 類型): 跳躍MB:來自前幀的預測,運動矢量為零。根本無宏模塊信息被進行編碼,及被傳送至接收機。 幀間MB:根據前幀,采用運動補償預測。傳送MB類型及MB 地址;如需要,也傳送運動矢量、DCT係數及量化步長。 幀內MB:根本不采用來自前幀的預測(僅僅采用幀內預測) 僅僅向接收機傳送MB類型、MB地址、DCT係數及量化步長
(C)特殊的存儲媒體功能
為了從存儲媒體中存取視頻,MPEG1視頻壓縮算法設計成能 支持一些重要功能,如隨機存取有及快進(FF)和快倒(FR)重 放等功能。考慮到對存儲媒體的需求比及進一步探索運動補償和運 動內描的優越性,由MPEGl引入B圖像(雙向預測測/雙向內掃圖 像)概念。這一概念示於圖8,對象為視頻序列中的一組連接圖像。 圖像有三種類型:幀內圖像(I圖像)編碼時,不參照視頻序列中 的其它圖像,已在圖4中介紹過,I圖像允許存取點進行隨機存取, 並對比特流進行FF/FR功能,不過隻能進行低壓縮。幀內預測圖 像(P圖像)編碼時要參照挨差最近的前一個已編碼的I圖像或P 圖像,通常采用運動補償,以提高編碼效率。由於通常用P圖像作 為參照物來預測未來幀或過去幀,故P圖像不提供用於隨機存取或 編輯的合適的存取點。雙向預測/內描的圖像(B圖像)備用過去幀 和未來幀作為參照物。為了實現高壓縮,可以依據挨得最近的過 去、未來的P圖像或I,圖像,來實施運動補償。B圖像本身永不會 當作參照物來加以使用。 圖8在MPEGl視頻序列中所采用的I圖像(I)、P圖像(P) 和B圖像(B),依據兩個最近的已編碼幀(I圖像或P圖像)采用 運動補償預測,可以對B圖像進行編碼。為了適應不同應用的需 求,視頻序列內圖像編碼類型的安排具有靈活性。圖中指出了預測 的方向。 使用者在安排視頻序列中的圖像類型時具有很大的靈活性,以 適應各種不同應用的需求。作為總的原則,僅僅采用I圖像(IIIIII.....)編碼的視頻序列,具有最好的隨機存取、FF/FR和編輯功 能,但隻能實現低壓縮。已編碼的,帶有一個常規修正的I圖像及 無B圖像的序列(即IPPPPPPIPPP......),能實現中度壓縮,具 有一定程度的隨機存取及FF/FR功能。所有這三種圖像類型的結 合,如圖8中所示(1BBPBBPBBIBBP......),能做到高壓縮,具有 較好的隨機存取和FF/FR功能,但大大增加了編碼延遲時間。這 一延遲也許在一些應用場合是不允許的,如視頻電話、視頻會議 .
(D)速率控製 MPEGl編碼算法所支持的一個重要特點是,通過調節量化 DCT係數的量化器步長(sz)(見圖5),為了滿足特殊應用的要 求,可以調節比特率(因而也調節了再現視頻信號的質量) DCT 係數的粗量化能對具有高的視頻信號進行存儲或傳送,但會產生較 大的編碼人工產物,這取決於量化等級 MPEGI標準允許編碼器 為每一個已編碼宏模塊選擇不同的量化器值——這樣,可以對需要 改進畫麵質量的位置上分配比特,具有很大的靈活性。另外,還能 產生常量和變量比特率,用於壓縮視頻的存儲或實時傳送。 壓縮的視頻信息從實質上來講本來就是可變的。通常是由連續 視頻幀的變化的內容所引起的,必須對由編碼器產生的可變比特流 緩衝於視頻緩衝器中,如圖5所示。進入到編碼器VB的輸入在時 間上是可變的,而輸出是一個恒定比特流。在解碼器,VB輸入比 特流是恒定的,用於解碼的輸出是可變的 MPEG編碼器和解碼器 采用同樣尺寸的緩衝器,以避免產生再現誤差。 編碼器中的速率控製算法,依據視頻內容和活動程度,調節量 化器的步長(SZ),以保證視頻緩衝器永不溢流——同時,應保持 緩衝器盡可能的滿,以盡量提高畫麵質量。理論上講,采用大的視 頻緩衝器,可以避免緩衝器出現溢流現象。然而,除大型緩衝器價 格昂貴外,對於要求在編碼器與解碼器之間的延遲小的應用場合,大型緩衝器還存在另外一些缺點,如對話或視頻的實時傳送。如果 由於采用了視頻緩衝器來產生一個恒定的比特率輸出,編碼器比特 流是平坦的,那麼在編碼處理跟在解碼器視頻再現時間之間就會引 入一個延遲。通常,緩衝器越大,所引入的延遲時間越長 MPEG已規定了最小的視頻緩衝器的尺寸,它需要獲得所有解 碼器運作的支持。該數值等同於VB尺寸的最大值,編碼器用它來 產生比特流。然而,為了減少延遲或編碼器的複雜性,在編碼器選 擇一個虛擬緩衝器尺寸值是可能的,該值比需要得到解碼器支持的 最小VB尺才要小。在發送視頻比特流之前,先將該虛擬緩衝器尺 才值傳送給解碼器。 用於壓縮視頻的速率控製算法不屬於MPEG—1標準,這就留 給實施者去開發有效的戰略方法。應著重指出:製造廠商以指定比 特率去壓縮視頻所選擇的速率控製算法的效率,對在解碼器再現的 視頻的可視質量有非常大的影響
(E)隔行視頻源的編碼
用於MPEG—1的標準化視頻輸人格式是非隔行製。然而,對 MPEG1來講,隔行彩色電視(525行,29.97幀/每秒及625行, 25幀/秒)編碼是一個重要的應用。基於隔行源到逐行中間格式的 轉換,MPEGl已對Rec.601數字彩色電視信號的編碼提出一個建 議。從本質上講,隻對每一個隔行視頻輸入幀中的一個水平二次取 樣場進行編碼,即二次取樣頂(top)場。在接收機,根據已解碼的 和水乎內插的奇數場,采預測偶數場,加以顯示。在編碼之前所必 須的預處理及編碼之後所需的後處理,均在MPEGl國際標準文件 的信息附錄中有詳細敘述.
MPEG2標準:用於活動圖像和伴音的 通用編碼
世界範圍的MPEGl正在開發一個重要的及成功的視頻編碼標 準,有關產品不斷增多,並開始商品化。成功的關鍵因素在於標準 的通用結構,能支持廣泛的應用及應用的特別參數。然而,在1991 年,MPEG繼續它的標準化努力,進入第二階段(MPEG—2),為 MPEG—l最初沒有包括在內或尚未想到的應用,提供了一種視頻 編碼方法。特別是,已對MPEG—2提出一個要求,即它所提供的 視頻質量,不能低於NTSC/PAL,最高應可達到CCIR601質量。 正在出現的一些應用,如數字有線電視分配、通過ATM的網絡數 據庫業務、數字VTR應用以及衛星和地麵數字廣播分配等,由於 新的MPEG—2標準化階段結果提高了圖像質量,均能從中受益。 已與ITU—TSGl5專家組(ATM視頻編碼專題)聯合,開展了研 究工作。1994年,發布了MPEG—2的草案國際標準(與ITU—T H.262建議書相同)該標準的技術規格打算應具有通用性—所 以,該標準的目的在於,應有助於比特流在不同應用、傳輸和存儲 媒體之間的互換。 從本質上說,MPEG—2可以視為是一組MPEG—1的最高級 編碼標準,並設計或能向後跟MPEG—1相兼容—每一個MPEG —2兼容解碼器能對有效的MPEG—1比特流進行解碼。為了滿足 多種不同應用的需求,許多視頻編碼算法被綜合於單個句法之中。 為獲得足夠的性能和質量,MPEG—2已增添了新的編碼特性,已 開發出來的預測模式,是為了支持隔行視頻的有效編碼。此外,還 引進了可分等級的視頻編碼擴展,以提供另外的功能,如數字電視 和HDTV的嵌入式編碼,沒出現傳輸誤差時質量的緩慢降低。 然而,整個句法的實施,對於大部分應用來講也許是不實際 的,MPEG—2已引進了“型”和“層”的概念,來規定設備之間 的一致性,並不支持整個句法的實施。型和層提供了定義句法子集 的方法,以及對特殊比特流進行解碼所需的解碼器功能。表2和表 3中表明了這種概念。 作為一般法規,每一個型定義一組新的算法,作為最高級組加在下一個型中的算法上。層規定了參數的範圍,在實施中得到支持 (即畫麵尺寸、幀頻和比特率)主型(MAINProfile)的MPEG—2 核心算法的特點是,對於逐行和隔行視頻源均為非可分等級編碼。 並希望:大部分MPEG—2實施過程至少應符合位於主層(MAIN LEvel)的主型,該主型支持數字視頻的非可分等級編碼,並擁有近 似的數字電視參數—最大的取樣密度,每幀576行,每行720 個取樣;最高的幀頻30幀/秒;最高的比特率15Mb/s。
(A)MPEG—2非可分等級編碼模式
在主型中所定義的MPEG—2算法,是MPEG—I編碼方案的 直接擴展,以適應隔行視頻的編碼,同時保留了MPEG—1所提供 的所有功能。與MPEG—1標準一樣,MPEG—2編碼算法的基礎 為通用的混合DCT/DPCM編碼方案,如圖5所示,並並入了宏模 塊結構、運動補償和編碼模式,以便執行宏模塊的條件再補給。圖 8中所示的I圖像、P圖像和B圖像的概念,在MPEG—2中全部保 留,以獲得有效的運動頸測及有助於隨機存取功能的實現。注意: MPEG—2單型(SIMPLEFrofile)中所定義的算法9基本上跟主型 中的算法相同,不一樣的地方是,在編碼器根本不存在B圖像預測 模式。故B圖像解碼所需要的額外的實施複雜性和另外的幀存儲 器,對於MPEG—2解碼器來說不必要的,而隻要求MPEG—2解 碼器符合該單型就行。 場圖像和幀圖像:MPEG—2已介紹了幀圖像和場圖像的概念, 也介紹了特殊的幀預測和場預測模式,以適應逐行和隔行視頻的編 碼。對於隔行序列來講,假設編碼器輸入是由一係列奇數(頂)場 和偶數(底)場所組成,而奇數場與偶數場在時間相隔—場的時 間。一幀中兩場是分別編碼的(場圖像,見圖9)在這種情況下, 每一場被分離成相鄰的不重疊的宏模塊,並對場進行DCT處理。 另一種方法是,將兩場看成為一幀(幀圖像),與一般的逐行視頻 序列編碼相類似,一起進行編碼。在這裏,頂場和底場的連續行就簡單地彙合組成幀。注意:在單一的視頻序列中,幀圖像和場圖像 均能被使用 圖9場圖像概念和可能的場預測舉例。頂場和底場是分別編碼 的。采用以那個前編碼頂場為依據的運動補償場間預測,來對每一 個底場進行編碼。而頂場編碼采用的是運動補償場間預測,依據是 前編碼頂場或者是前編碼底場。這一概念可以加以延伸,以並入B 圖像。 場和幀預測:MPEG—2已介紹了一些新的運動補償場預測模 式,以便有效地對場圖像和幀圖像加以編碼。圖9中簡單描述了這 種新概念的一個例子,這裏出示的是一個隔行視頻序列,隻會有三 個場圖像,不帶B圖像。在場預測中,是采用來自一個或多個前解 碼場的數據,來對每一場單獨進行預測的,也就是說,對於頂場來 說,測是根據一個前解碼頂場(采用運動補償預測)或屬於同一 圖像的前解碼底場來獲取的。一般來說,若場間根本沒有運動時, 寧願采用依賴於同一圖像解碼場的場間預測。采用哪一個參照場來 進行預測,這一信息隨著比特流被發送出去。在場圖像中,所有預測 均為場預測。 幀預測作出幀圖像的預測,依據於一個或多個前解碼幀。在幀 圖像中,可以采用場預測,也可以采用幀預測;可以一個宏模塊一 個宏模塊地,來選擇所喜愛的那種預測模式。 然而必須值得,頸測所依賴的那些場和幀,它們本身也許曾作 為場圖像或者幀像,已完成了解碼工序 MPEG—2已介紹了一些新的運動補償模式,以便有效地探索 場間的時間冗長餘度,名稱叫做“雙主”(Dual Prime)預測,運動補 償基於16×8畫麵塊。這些方法的討論已超出本文的範疇。 色度格式:MPEG—2已規定了補充的Y:V:V亮度和色度二 次取樣比率格式,以促進最高視頻質量需求的應用。除了已得到 MPEG—1所支持4:2:0格式外,MPEG—2的規格已擴展至4:2:2格式,符合演播全視頻編碼應用的要求.
(B)MPEG—2可分等級編碼的擴展
MPEG—2已對可分級性方法進行了標準化,這些方法所支持 的應用範圍,已超出基本主型編碼算法所支持的應用範圍。可分級 編碼的目的在於,在不同業務之間能提供互操作性,能較靈活地支 持具有不同顯示功能的各種接收機。有的接收機既沒有能力或者也 不要求再現視頻的全部清晰度,那麼就可以隻對分層比特流的子集 進行解碼,以較低的空間或時間清晰度,或者較低的質量,來顯示 視頻圖像。可分級編碼的另一個重要目的是可提供分層視頻比特 流,它適合用於按優先順序的傳輸。這裏主要的難點在於,在出現 額道誤差情況下,如基於ATM傳輸網絡中單元的丟失,或地麵數 字廣播的同頻道幹擾,這時如何可靠地來傳送視頻信號。 能靈活地支持多種清晰度,這一功能對於DHTV跟標準清晰度 電視(SDTV)相互配合運作來講十分重要,這裏問題是HDTV接 收機應跟SDTV產品相兼容。對HDTV源進行了可分級編碼,就 能實現這一兼容性,這就能避免很浪費地將兩個單獨的比特流分別 地傳輸給HDTV和SDTV接收機。可分級編碼的其它一些重要應 用,包括視頻數據庫瀏覽以及在多媒體環境中視頻的多清晰度重 放。 圖10顯示了多級視頻編碼方案的一般原理。這裏提供了兩層, 每一層支持著一個不同級上的視頻,即將輸入視頻信號降級成為一 種較低清晰度視頻(在空間上或時間上降低取樣率),就能實現多 清晰度的顯示。可對降低視頻進行編碼,進入基層比特流,這樣也 降低了比特率。可用升級再現的基層視頻(在空間上或時間上提高 取樣率)來對原始輸入視頻信號加以預測。預測測誤差經編碼進入一 個增強層比特流。若接收機沒能力或不需要顯示視頻信號的全部質 量,那就可以隻對基層比特流加以解碼,以再現降級的視頻信號。 這裏著重指出:如隻對較低比特率的基層進行解碼,那麼最高清晰度視頻的顯示,質量也可能有所降低。對於每一層均分配有一個合 適比特率的視頻,可以對其進行可分級編碼,以滿足傳輸頻道或存 儲媒體對帶寬的特殊需求。這一功能被認為對於瀏覽視頻數據庫和 經不同網絡的視頻傳輸等業務是有用的。 在MPEG—2的標準化階段,發現下麵的想法是不可能實現的, 去開發一個通用的可分級編碼方案,以適應已想到的所有各種應用 的需求。有些應用被限製於低的裝置複雜性,另外一些要求非常高 的編碼效率。結果是MPEG—2已對三種可分級編碼方案進行了標 準化:SNR(質量)可量測性、空間可量測性及時間可量測性—— 每一種方案的目標在於有助於滿足特殊應用的需求。這些可分級性 方法可將算法擴展到主型定義的非可分級方案。可以將不同的可分 級姓方法結合於一個混合編碼方案之中,也就是說,將空間可分級 性和時間可分級性方法結合於一個混合層編碼方案之中,這樣,擁 有不同空間清晰度和幀頻的各種業務之間的互操體性就能得到支 持。將空間可分級性與SNR可分級性相結合,就能夠獲得HDTV 與SDTV業務之間的互操作性,並對頻道誤差有一定的恢複功能 MPEG—2句法最多可支持三個不同的可分級層。 空間可分級性已經開發完成,以便在接收機顯示不同的空間清 晰度—從基層能夠再現空間清晰度較低的視頻,這一功能對於許 多應用均是有用的,包括對HDTV/TV係統采用嵌入式編碼,這樣 就允許從數字TV業務向具有較高空間清晰度的HDTV業務過渡。 這一算法的依據是用於逐行掃描畫麵編碼的一種標準錐形方法,空 間可分級性能夠靈活的支持很寬範圍的空間清晰度,但給主要編碼 方案增添了很大的裝置複雜性。 SNR可分級性:該方法已基本開發成功,對於按優先排列傳輸 媒體來說,SNR可分級性能使視頻質量下降時比較緩慢(質量可分級性),如果基層能避免受到傳輸誤差的影響,那麼隻要對基層信 號加以解碼,就能獲得質量衰減緩慢的視頻。用來實現質量緩慢衰 減的算法,它基於一種頻率(DCT域)可分級性技術。圖11中的 兩個層以同樣的空間清晰度對視頻信號加以圖編碼,11a和圖llb 示出了SNR可分級性編碼器和解碼器可能的實施方法。該方法的 實施,也就是主型MPEG—2的一種簡明的擴展,能夠獲得極佳的 編碼效率。 在基層,DCT係數被低級量化和發送,以便在低比特率情況下 來獲取適中的圖像質量。非量化DCT係數跟來自基層、量化步長 較小的量化係數之間存在差值,而增強層就對這一差值進行編碼, 加以發送。在解碼器,通過對較低層和較高層比特流進行解碼,就 能再現最高質量的視頻信號。 利用這一方法,也可能在接收機中獲取空間清晰度較低的視頻 圖像。如果解碼器從基層比特流選用最低的N×N DCT係數,就可 用非標準反向DCT係數(尺寸為N×N)來再現空間清斷度已降低 了的視頻圖像。然而,這個最低層已降級的視頻易於發生漂移現 象,這取決於編碼器和解碼器的操作運行。 已開發的時間可分級性方法的目的跟空間可分級性的相類似 —具有一個適用於立體顯示功能接收機的分層比特流,立體視頻 就能得到支持。以由基層發送出來的、從對麵觀看到的編碼圖像為 依據,來預測增強層的立體視頻的一個圖像(左視圖像),這樣就 實現了分層工序。 當在ATM,地麵廣播或者磁記錄環境中出現傳輸或頻道誤差 時,數據分配的作用在於促進誤差隱蔽功能。由於這一做法完全可 以作為任一單層編碼方案的後處理和預處理技術采用,它與MPEG —2的標準化工作尚未正式完成,但在MPEG—2DIS文件的信息 附錄中,已注明了有關這一做法的資料來源。該算法依賴於DCT 係數的分離,跟SNR可分類性方法相類似,與其它可分級編碼方 案相比較,這一算法實施起來較為簡單。為了提供誤差保護,比特 流中的已編碼DCT係數,在帶有不同誤差的兩個層中被分離和發送。
詳細製作DVD的過程---從PRO輸出MPEG2---TMPGEnc DVD author編碼成VOB---用NRO刻錄