由于MPEG-1目的是針對消費類多媒體應用,以約為1.2 Mbps速率產生接近于VHS的視頻質量,而1.5 Mbps的其他部分則用于數據和音頻。MPEG-1的貢獻在于:
1)由于1.5 Mbps的速率接近于CD-ROM播放器的數據存取速度,因而大量的多媒體信息能以MPEG-1的格式存儲在CD-ROM上,使得CD-ROM可以從單純的數據信息存儲轉為以視頻為主的多媒體信息存儲,解決了多媒體信息的數字存儲問題并形成了一個制作各種影像的VCD產業,如VCD教學光盤、VCD影片等。
2)具有非常方便的交互性能,使得用戶能很容易實現交互操作,如快進、快退、隨機讀取信息,在質量不下降的前提下,隨機存取時間大約在0.5s左右。
1、視頻編碼框圖
自從1989年MPEG組織開始征集、收集評估、驗證測試一直到1992年正式公布MPEG-1的這段期間,另一個國際標準化組織ITU-T在1990年公布了視頻編碼標準H.261。進行比較發現,這兩者之間在視頻編碼方法存在很多相似性。MPEG-1視頻編碼器框圖如圖1所示。
首先對輸入視頻信號預處理,包括從RGB到YCbCr的色彩空間變換、格式轉換、預濾波等,實際上MPEG-1標準并沒有給出如何進行這些操作。其次,編碼器要為輸入圖像選擇合適的編碼類型。如果是I幀,不需要運動估計和補償,與 H.261的I幀編碼方法一樣。如果是P幀,需要進行幀間預測編碼。如果是B幀,需要進行幀間內插編碼。無論是P幀還是B幀,都需要進行運動估計和運動補償。從圖1可知,混合編碼仍然是MPEG 1視頻編碼器的核心。
2、視頻格式和圖像類型
1)圖像格式
MPEG-1處理的對象是逐行掃描視頻,對于隔行掃描的視頻圖像源則必須先轉換為非隔行掃描的輸入格式,即將兩場合并成一幀進行編碼。輸入的視頻信號必須是數字化的一個亮度和兩個色差信號(Y、Cb、Cr)。為了使壓縮后的碼率能降低到1.5 Mbps以下,MPEG定義了SIF格式,其圖像尺寸如表1所示。實際上,SIF格式很容易從ITU-R BT.601進行濾波和亞采樣得到。
表1:SIF圖像格式參數
2)圖像類型
由于MPEG-1具有良好的交互功能,能夠方便進行快進、快退和隨機存取。因此在視頻碼流中存在著一種特殊的標志,這就是MPEG-1所采用的I幀圖像編碼類型。I幀圖像稱為幀內圖像(Intra Pictures),它為用戶的交互功能提供隨機存取的訪問位置,使得解碼器可由此點開始,同時它可以作為其他圖像類型編碼的參考幀,但是I幀僅采用了DCT變換編碼加熵編碼的壓縮方法,壓縮比不高。在MPEG-1中還有一種類似于I幀的圖像編碼類型,稱為DC編碼幀(DC-coded Pictures,D幀),其DCT變換結果的DC項系數被保留,D幀不能用作其他幀的預測參考幀,定義D幀的目的只是提供一種快速搜索的方法,因此D幀一般不常見。另外MPEG-1采用了壓縮比更高的兩種類型圖像編碼,一是預測幀(Predicted Pictures)或稱為P幀圖像;另一是雙向預測幀(Bi-directional Prediction Pictures)或稱為B幀圖像。之所以MPEG-1中的P幀和B幀能提供較高的壓縮效果,是因為P幀和B幀圖像編碼所產生的碼流不是P幀和B幀圖像的所有信息,而是它與參考幀預測之后差分信息以及各宏塊的運動矢量信息。
實際上,三種常見類型圖像的組織結構是非常靈活的,它們的組合可根據編碼器的實際情況和應用需求決定,如隨機存取和編碼延時等多種因素。由于編碼P幀時需要先前的I幀或P幀進行預測,編碼B幀時需要先前和后面的I或P幀圖像進行雙向預測,因此I幀、P幀和B幀存在著前后因果關系。如下面視頻序列中的第4幀(P幀)是由第1幀(I幀)預測,由第1幀(I幀)和第4幀(P幀)共同預測出它們之間的第2幀(B幀)和第3幀(B幀),如此等等。因此,發送端編碼器輸出(或接收端解碼器輸入)圖像幀順序不是按照原始視頻序列的時間順序,而是重新調整圖像順序輸出。例如一個具有15幀圖像的視頻序列,I幀、P幀和B幀沿著時間軸上的順序,編碼器編碼傳輸順序如下表2所示:
當解碼器接收到MPEG-1視頻流信息時,解碼出運動矢量參數,然后進行運動補償。運動補償的方法是將每個宏塊解碼得到的預測值加上運動矢量所指向的參考幀對應宏塊值。盡管P幀和B幀宏塊的運動矢量是一個非常重要的參數,直接影響到編碼器的性能和效果,但是MPEG-1標準并沒有規定運動矢量的求取方法。正因為如此,MPEG-1標準在走向實用的過程中,仍然給研究和開發人員留下了非常廣闊的研究空間。
3、視覺加權量化
從圖1可以看出,MPEG-1視頻編碼器與H. 261壓縮算法大致相似,采用基于DCT的變換編碼技術減少空域冗余信息,DCT變換后系數進行視覺加權和量化。一方面,量化后系數按照“之”字掃描,然后與視頻其他信息(如運動矢量、宏塊類型、開始碼等)按照MPEG-1語法結構構成視頻比特流。另一方面,進行反量化和反DCT變換,進行當前幀圖像重建,放置到幀存中,作為編碼下一幀圖像的預測參考幀。
在減少空域冗余信息的DCT變換和量化的技術中,與H.261不同的是,其I幀的8×8塊DCT系數通過視覺加權量化矩陣方法以適應人類視覺系統。缺省的幀內塊量化矩陣如圖2所示。從幀內量化加權矩陣可以看出:
●在低頻段,量化步長較小,而在高頻段,量化步長大。充分利用了量化誤差的主觀感覺隨著DCT系數的頻率變化特性,對圖像高頻系數作比較粗的量化。
●水平方向和垂直方向的量化步長是不同的,這也利用了人類視覺系統對水平和垂直方向感覺不同的特點,即視覺對垂直方向變化的感覺更加明顯。
采用幀內量化加權矩陣通常是從提高圖像的主觀質量來考慮的。因為比較兩個能生成同樣比特率的編碼器時,一個采用上述視覺加權量化矩陣,另一個不采用視覺加權量化矩陣,結果發現前者的信噪比較低,但具有較高的主觀質量。對于非幀內塊量化,則采用與上述幀內塊不同的量化矩陣,其缺省的量化矩陣如圖3所示。之所以對非幀內編碼幀使用這種均勻量化的方式,是因為這種幀提供的運動預測誤差信息,對各個頻率分量的元素應該一視同仁。
然而,在MPEG-1中并不是所有量化器都是固定不變的,而是可以采用可調量化器進行量化。因為并不是所有的空間信息都能使人眼視覺系統產生同等的感覺,特別是對于那些信號變換梯度平穩的塊,如果有一個非常小的誤差,人眼就會覺察到塊的邊界,而對信號變換劇烈的塊,視覺對誤差的敏感覺察被掩蓋。為了適應塊之間信號的不均勻性,在塊和塊的基礎上對量化器步長進行調節。
4、視頻流層次結構和組成
與H.261類似,MPEG-1視頻圖像數據流是一個分層結構,共分6個不同的層次,依次是視頻序列層(Video Sequence)、圖像組層GOP(Group of Pictures)、圖像層(Picture)、片層(Slice)、宏塊層(Macroblock)和塊層(Block)。通過分層結構,把視頻比特流中邏輯上獨立的實體分開,盡量減少圖像幀和幀之間、圖像組和圖像組之間、宏塊和宏塊之間的相關性,減少解碼過程中碼流之間的前后相互影響。
視頻序列層表示一個圖像序列的開始,由序列頭加一個或多個圖像組構成,最后加序列結束碼結束。其中序列頭以序列頭開始碼開始,后面跟著如幀內視覺加權量化矩陣或非幀內視覺加權量化矩陣等數據元素。每一個圖像組前面可以選擇有或者沒有序列頭,初始序列頭的數據元素可以重復使用,從而使隨機地對視頻序列進行存取操作成為可能。當然,序列頭中的量化矩陣等數據元素可以改變。視頻序列層組成如圖4所示。
圖4:視頻序列層組成
圖像組層是由圖像組開始碼加一幀或多幀圖像組成的短視頻序列。圖像組層中的第一幀編碼圖像是I幀,最后一幀是I幀或者是P幀,在圖像組中存在著對視頻序列碼流隨機操作的存取點。圖像組的長度隨意,可包含一個或多個I幀圖像。在要求能隨機操作、快進、快退或正常逆放的應用場合,可使用相對較短的圖像組層。圖像層是針對每幀編碼圖像而言的,通常采用三種類型的編碼圖像,即I幀、P幀、B幀。由于要進行P幀和B幀的重新排序,在圖像層的頭信息中定義了一個時間參考標號(temporal reference number)用來指示各幀的顯示順序。其他的頭信息還包括圖像類型、同步、分辨率和運動矢量范圍等。片層是由一系列隨意個數的宏塊組成的,類似于H.261中的宏塊組。其順序與H.261相同,從圖像的左上角自左向右、自上往下進行。片的大小是可變的,最大可以是整幅圖像,最小可以是一個宏塊,最初的片層應包含圖像的第一個宏塊,而最末一個片層應是圖像的最后一個宏塊。片層頭信息指示了片在圖像中的位置以及該片的量化因子。定義量化因子可以使解碼器在片這個層次上對碼流進行校正。MPEG-1中的宏塊和塊的概念與H.261相同。
由于MPEG-1可以支持多種視頻參數,如很寬范圍的空間分辨率和時間分辨率,能使用很大范圍的碼流比特率。為了方便使用,保證不同廠家使用MPEG1標準的設備在一個主要目標內具有互通性,MPEG 1定義了一個視頻編碼參數的特殊子集,稱為限制參數集(CPS,Constrained Parameters Set)。CPS對圖像的采樣率、編碼生成的碼流比特率做了限制以減少編解碼器的計算復雜度、緩沖大小和帶寬要求,同時仍然保持最大可能的應用范圍。CPS參數表如3所示。