視頻壓縮算法的相關知識
MPEG-1
MPEG 視頻壓縮編碼后包括三種元素:I幀(I-frames)、P幀(P-frames)和B幀(B-frames)。在MPEG編碼的過程中,部分視頻幀序列壓縮成為I幀;部分壓縮成P幀;還有部分壓縮成B幀。I幀法是幀內壓縮法,也稱為“關鍵幀”壓縮法。I幀法是基於離散余弦變換DCT( Discrete Cosine Transform )的壓縮技術,這樣的算法與JPEG壓縮算法相似。採用I幀壓縮可達到1/6的壓縮比而無明顯的壓縮痕跡。
在保證圖像質量的前提下實現高壓縮的壓縮算法,僅靠幀內壓縮是不能實現的,MPEG採用了幀間和幀內相結合的壓縮算法。 P幀法是一種前向預測算法,它考慮相鄰幀之間的同樣信息或數據,也即考慮運動的特性進行幀間壓縮。P幀法是依據本幀與相鄰的前一幀(I幀或P幀)的不同點來壓縮本幀數據。採取P幀和I幀聯合壓縮的方法可達到更高的壓縮且無明顯的壓縮痕跡。
然而,僅僅有採用B幀壓縮才干達到200:1的高壓縮。B幀法是雙向預測的幀間壓縮算法。當把一幀壓縮成B幀時,它依據相鄰的前一幀、本幀以及后一幀數據的不同點來壓縮本幀,也即僅記錄本幀與前后幀的差值。B幀數據僅僅有I幀數據的百分之十五、P幀數據的百分之五十下面。
MPEG 標准採用相似4:2:2的採用格式,壓縮后亮度信號的分辨率為352×240,兩個色度信號分辨率均為176×120,這兩種不同分辨率信息的幀率都是每秒30幀。其編碼的基本方法是在單位時間內,首先採集並壓縮第一幀的圖像為I幀。然后對於其后的各幀,在對單幀圖像進行有效壓縮的基礎上,僅僅存儲其相對於前后幀發生變化的部分。幀間壓縮的過程中也常間隔採用幀內壓縮法,因為幀內(關鍵幀)的壓縮不基於前一幀,一般每隔15幀設一關鍵幀,這樣能夠降低相關前一幀壓縮的誤差積累。MPEG編碼器首先要決定壓縮當前幀為I幀或P幀或B幀,然后採用對應的算法對其進行壓縮。一個視頻序列經MPEG全編碼壓縮后可能的格式為:IBBPBBPBBPBBPBBIBBPBBPBBPBBPBBI......
壓縮成B幀或P幀要比壓縮成I幀須要多得多的計算處理時間。有的編碼器不具備B幀甚至P幀的壓縮功能,顯然其壓縮效果不會非常好。
MPEG-2
MPEG 組織在1994年推出MPEG-2壓縮標准,以實現視/音頻服務與應用互操作的可能性。MPEG-2標准是針對標准數字電視和高清晰度電視在各種應用下的壓縮方案和系統層的具體規定,編碼碼率從每秒3兆比特~100兆比特,標准的正式規范在ISO/IEC13818中。MPEG-2不是MPEG-1的簡單升級,MPEG-2在系統和傳送方面作了更加具體的規定和進一步的完好。MPEG-2特別適用於廣播級的數字電視的編碼和傳送,被認定為SDTV和 HDTV的編碼標准。MPEG-2還專門規定了多路節目的復分接方式。MPEG-2標准眼下分為9個部分,統稱為ISO/IEC13818國際標准。
MPEG -2圖像壓縮的原理是利用了圖像中的兩種特性:空間相關性和時間相關性。一幀圖像內的不論什么一個場景都是由若干像素點構成的,因此一個像素通常與它周圍的某些像素在亮度和色度上存在一定的關系,這樣的關系叫作空間相關性;一個節目中的一個情節經常由若干幀連續圖像組成的圖像序列構成,一個圖像序列中前后幀圖像間也存在一定的關系,這樣的關系叫作時間相關性。這兩種相關性使得圖像中存在大量的冗余信息。假設我們能將這些冗余信息去除,僅僅保留少量非相關信息進行傳輸,就能夠大大節省傳輸頻帶。而接收機利用這些非相關信息,依照一定的解碼算法,能夠在保證一定的圖像質量的前提下恢復原始圖像。一個好的壓縮編碼方案就是能夠最大限度地去除圖像中的冗余信息。
MPEG-2的編碼圖像被分為三類,分別稱為I幀,P幀和B幀。
I幀圖像採用幀內編碼方式,即僅僅利用了單幀圖像內的空間相關性,而沒有利用時間相關性。I幀使用幀內壓縮,不使用運動補償,因為I幀不依賴其它幀,所以是隨機存取的入點,同一時候是解碼的基准幀。I幀主要用於接收機的初始化和信道的獲取,以及節目的切換和插入,I幀圖像的壓縮倍數相對較低。I幀圖像是周期性出如今圖像序列中的,出現頻率可由編碼器選擇。
P幀和B幀圖像採用幀間編碼方式,即同一時候利用了空間和時間上的相關性。P幀圖像僅僅採用前向時間預測,能夠提高壓縮效率和圖像質量。P幀圖像中能夠包括幀內編碼的部分,即P幀中的每個宏塊能夠是前向預測,也能夠是幀內編碼。B幀圖像採用雙向時間預測,能夠大大提高壓縮倍數。值得注意的是,因為B幀圖像採用了未來幀作為參考,因此MPEG-2編碼碼流中圖像幀的傳輸順序和顯示順序是不同的。
P 幀和B幀圖像採用幀間編碼方式,即同一時候利用了空間和時間上的相關性。P幀圖像僅僅採用前向時間預測,能夠提高壓縮效率和圖像質量。P幀圖像中能夠包括幀內編碼的部分,即P幀中的每個宏塊能夠是前向預測,也能夠是幀內編碼。B幀圖像採用雙向時間預測,能夠大大提高壓縮倍數。值得注意的是,因為B幀圖像採用了未來幀作為參考,因此MPEG-2編碼碼流中圖像幀的傳輸順序和顯示順序是不同的。
MPEG-2的編碼碼流分為六個層次。為更好地表示編碼數據,MPEG-2用句法規定了一個層次性結構。它分為六層,自上到下各自是:圖像序列層、圖像組(GOP)、圖像、宏塊條、宏塊、塊。
MPEG-4
MPEG -4於1998年11月發布, MPEG-4是針對一定比特率下的視頻、音頻編碼,更加注重多媒體系統的交互性和靈活性。MPEG-4標准力求做到兩個目標:低比特率下的多媒體通信;是多工業的多媒體通信的綜合。為此,MPEG-4引入了AV對象(Audio/Visual Objects),使得很多其它的交互操作成為可能:
"AV對象"能夠是一個孤立的人,也能夠是這個人的語音或一段背景音樂等。它具有高效編碼、高效存儲與傳播及可交互操作的特性。
MPEG -4對AV對象的操作主要有:採用AV對象來表示聽覺、視覺或者視聽組合內容;組合已有的AV對象來生成復合的AV對象,並由此生成AV場景;對AV對象的數據靈活地多路合成與同步,以便選擇合適的網絡來傳輸這些AV對象數據;同意接收端的用戶在AV場景中對AV對象進行交互操作等。
MPEG-4標准則由6個主要部分構成:
① DMIF(The Dellivery Multimedia Integration Framework)
DMIF 即多媒體傳送總體框架,它主要解決交互網絡中、廣播環境下以及磁盤應用中多媒體應用的操作問題。 通過傳輸多路合成比特信息來建立client和server端的交互和傳輸。 通過DMIF,MPEG4能夠建立起具有特殊品質服務(QoS)的信道和面向每個基本流的帶寬。
② 數據平面
MPEG4中的數據平面能夠分為兩部分:傳輸關系部分和媒體關系部分。
為了使基本流和AV對象在同一場景中出現,MPEG4引用了對象描寫敘述(OD)和流圖桌面(SMT) 的概念。OD 傳輸與特殊AV對象相關的基本流的信息流圖。桌面把每個流與一個CAT(Channel Assosiation Tag)相連,CAT可實現該流的順利傳輸。
③ 緩沖區管理和實時識別
MPEG4定義了一個系統解碼模式(SDM),該解碼模式描寫敘述了一種理想的處理比特流句法語義的解碼裝置,它要求特殊的緩沖區和實時模式。通過有效地管理,能夠更好地利用有限的緩沖區空間。
④ 音頻編碼
MPEG4的優越之處在於--它不僅支持自然聲音,並且支持合成聲音。MPEG4的音頻部分將音頻的合成編碼和自然聲音的編碼相結合,並支持音頻的對象特征。
⑤ 視頻編碼
與音頻編碼相似,MPEG4也支持對自然和合成的視覺對象的編碼。 合成的視覺對象包括2D、3D 動畫和人面部表情動畫等。
⑥ 場景描寫敘述
MPEG4 提供了一系列工具,用於組成場景中的一組對象。一些必要的合成信息就組成了場景描寫敘述,這些場景描寫敘述以二進制格式BIFS(Binary Format for Scene description)表示,BIFS與AV對象一同傳輸、編碼。場景描寫敘述主要用於描寫敘述各AV對象在一具體AV場景坐標下,怎樣組織與同步等問題。同一時候還有AV對象與AV場景的知識產權保護等問題。MPEG4為我們提供了豐富的AV場景。
與MPEG-1和MPEG-2相比,MPEG-4更適於交互AV服務以及遠程監控,它的設計目標使其具有更廣的適應性和可擴展性: MPEG-4傳輸速率在4800-64000bps之間,分辨率為176×144,能夠利用非常窄的帶寬通過幀重建技術壓縮和數據傳輸,從而能以最少的數據獲得最佳的圖像質量。因此,它將在數字電視、動態圖像、互聯網、實時多媒體監控、移動多媒體通信、Internet/Intranet上的視頻流與可視游戲、DVD上的交互多媒體應用等方面大顯身手。
H.264
H.264 是ITU-T的VCEG(視頻編碼專家組)和ISO/IEC的MPEG(活動圖像編碼專家組)的聯合視頻組(JVT:joint video team)開發的一個新的數字視頻編碼標准,它既是ITU-T的H.264,又是ISO/IEC的MPEG-4的第10 部分。1998年1月份開始草案征集,1999年9月,完畢第一個草案,2001年5月制定了其測試模式TML-8,2002年6月的 JVT第5次會議通過了H.264的FCD板。眼下該標准還在開發之中,預計明年上半年可正式通過。
H.264和曾經的標准一樣,也是 DPCM加變換編碼的混合編碼模式。但它採用“回歸基本”的簡潔設計,不用眾多的選項,獲得比H.263++好得多的壓縮性能;加強了對各種信道的適應能力,採用“網絡友好”的結構和語法,有利於對誤碼和丟包的處理;應用目標范圍較寬,以滿足不同速率、不同解析度以及不同傳輸(存儲)場合的需求;它的基本系統是開放的,使用無需版權。
H.264的算法在概念上能夠分為兩層:視頻編碼層(VCL:Video Coding Layer)負責高效的視頻內容表示,網絡提取層(NAL:Network Abstraction Layer)負責以網絡所要求的恰當的方式對數據進行打包和傳送。 H.264支持1/4或1/8像素精度的運動矢量。在1/4像素精度時可使用6抽頭濾波器來降低高頻噪聲,對於1/8像素精度的運動矢量,可使用更為復雜的8抽頭的濾波器。在進行運動預計時,編碼器還可選擇“增強”內插濾波器來提高預測的效果。H.264中熵編碼有兩種方法,一種是對全部的待編碼的符號採用統一的VLC(UVLC :Universal VLC),還有一種是採用內容自適應的二進制算術編碼。H.264 草案中包括了用於差錯消除的工具,便於壓縮視頻在誤碼、丟包多發環境中傳輸,如移動信道或IP信道中傳輸的健壯性。
在技術上,H.264 標准中有多個閃光之處,如統一的VLC符號編碼,高精度、多模式的位移預計,基於4×4塊的整數變換、分層的編碼語法等。這些措施使得H.264算法具有非常的高編碼效率,在同樣的重建圖像質量下,能夠比H.263節約50%左右的碼率。H.264的碼流結構網絡適應性強,添加了差錯恢復能力,能夠非常好地適應IP和無線網絡的應用。
H.264具有廣闊的應用前景,比如實時視頻通信、因特網視頻傳輸、視頻流媒體服務、異構網上的多點通信、壓縮視頻存儲、視頻數據庫等。H.264優越性能的獲得不是沒有代價的,其代價是計算復雜度的大大添加,據預計,編碼的計算復雜度大約相當於H.263的3 倍,解碼復雜度大約相當於H.263的2倍。
H.264建議的技術特點能夠歸納為三個方面,一是注重有用,採用成熟的技術,追求更高的編碼效率,簡潔的表現形式;二是注重對移動和IP網絡的適應,採用分層技術,從形式上將編碼和信道隔離開來,實質上是在源編碼器算法中很多其它地考慮到信道的特點;三是在混合編碼器的基本框架下,對其主要關鍵部件都做了重大改進,如多模式運動預計、幀內預測、多幀預測、統一VLC、4×4二維整數變換等。
迄今為止,H.264尚未最后定稿,但因其更高的壓縮比,更好的信道適應性,必將在數字視頻的通信或存儲領域得到越來越廣泛的應用,其發展潛力不可限量。