提要:MPEG-4是1998年12月正式發布的,旨在為視、音頻數據的通信、存取與管理提供一個靈活的框架及一套開發的編碼工具,它用在64Kbit/s以下的低速率視音頻編碼十分有效。MPEG-4與MPEG-1、MPEG-2相比,最重要的特徵有:(1)編碼是基於對象的。它把圖像和視頻分割成不同的對象,對每一個對象的編碼形成一個對象碼流層,該碼流中包含著對象的形狀、位置、紋理及其他方面的屬性。對一幅圖像編碼所形成的碼流由一系列對象層碼流構成,用戶可直接對「對象層」進行存取操作,這樣就使得操作、控制對象成為可能,而傳統的編碼都是基於幀的,無法對對象進行操作。(2)MPEG-4可根據現場帶寬和誤碼率的客觀條件在時域和空域有靈活的可擴展性。時域擴展是在帶寬允許時在基本層上的增強層中增加幀率,在帶寬窄時在基本層中減少幀率;空域擴展是指對基本層中的圖像進行插值,增加或減少空間解析度,以達到充分利用帶寬,使圖像質量更好。為了實現上面所說的功能,MPEG-4將音視頻碼流的語法層次分為視頻會話VS、視頻對象VO、視頻對象層VOL和視頻對象平面VOP。一個完整的視頻序列由若干個VS構成。VO是給定場景中的一些具體對象,是用戶能夠存取和操作的實體。若干個VO構成一個VS;VOL是表明VO的空間和時間解析度的一個類型,與空間和時間分級性密切相關。每個VO可有多層VOL;VOP是VO在某一時刻的表象,即某一幀VO,MPEG-4對每個VOP獨立進行編解碼。本文力求簡明地闡述MPEG-4系統的內容和特點,並部分地與MPEG-2系統做了簡要的比較。 0 引言 MPEG-4標準的目標與以往MPEG 1/2標準有了很大的不同,眼光更為遠大,應用前景也更為廣闊。MPEG-4的主要目標是:a.基於對象的壓縮標準;b.具有可交互性;c. 碼率的寬範圍適應性(5k~10Mbit/s)。 由於以上所確定的目標,給MPEG-4帶來了許多變化,例如:強調了低碼率(5~64kb/s)的編碼標準,對H263的兼容擴展,加強了MPEG4標準在互聯網上的應用適應性。這些目標所帶來的變化在MPEG4系統中有了更多的體現。總之,MPEG4標準在使用技術的先進性上有了很大的提高,這一方面是由於多媒體技術發展成就的,另一方面也是用戶需求不斷提高推動的。 1 MPEG 4的主要技術概覽摘 要:簡要介紹了MPEG-4標準的主要內容,並在此基礎上著重介紹了音頻對象的編碼和視頻對象的編碼。 1、多媒體傳輸集成框架多媒體傳輸集成框架(DMIF)主要解決交互網路中、廣播環境下以及磁碟中多媒體應用的操作問題,通過傳輸多路合成比特信息,建立客戶端和伺服器端的握手和傳輸。與過去不同的是,由於MPEG-4碼流中,包括許多的AV對象,一般而言,這些AV對象都有各自的緩衝器,而不僅僅是視頻緩衝器和音頻緩衝器。2、語法描述MPEG 4定義了一個句法描述語言來描述AV對象比特流表示和場景描述信息。這個句法描述語言是對C++的擴展,不僅易於表達其AV對象特性,而且也易於軟體模擬實現與模型驗證。與MPEG 4相比,MPEG 1和MPEG 2則採用一種類C語言的描述,MPEG-4描述語言反映了面向對象技術來描述對象。3、音頻對象的編碼視頻音頻的壓縮編碼自然仍是MPEG-4的核心所在。不過,與以前的MPEG-1、MPEG-2不同的是:MPEG-4不僅支持自然的聲音(如語音和音樂),而且支持基於描述語言的合成聲音,支持音頻的對象特徵。即一個場景中,同時有人聲和背景音樂,它們也許是獨立編碼的音頻對象。3.1、自然聲音編碼MPEG-4研究比較了現有的各種音頻編碼演算法,支持2~64K的自然聲音編碼。如8kHz採樣頻率的2~4kbit/s的語音編碼,以及8或16kHz採樣頻率4~16kbit/s的音頻編碼,一般採用參數編碼;6~24kbit/s的語音編碼,一般採用碼激勵線性預測(CELP)編碼技術;16kbit/s以上碼率的編碼,則可採用時頻(T/F)變換編碼技術。這些技術實質上借鑒了已有的音頻編碼標準,如G.723、G.728以及MPEG-1和MPEG-2等。圖1是MPEG-4的可伸縮自然音頻編碼器示意圖,包括了3種編碼技術。3.2 合成聲音在合成聲音編碼當中,MPEG-4引入了2個極有吸引力的編碼技術:文本到語音編碼和樂譜驅動合成編碼技術。這為網路上低比特率下交互的帶有語音的遊戲鋪平了道路。事實上,合成聲音編碼技術即是一種基於知識庫的參數編碼。特別值得一提的是MPEG-4的樂譜驅動合成技術,在該技術中,解碼器是由一種特殊的合成語言--結構化的音頻管絃樂團語言(SAOL)驅動的。其中的"管絃樂團"是由不同的"樂器"組成的。當解碼器不具有某一"樂器"時,MPEG-4還允許解碼器從編碼器下載該"樂器"到解碼器,以便正確恢複合成聲音。可見,MPEG-4不是提供一組角MIDI音樂標準中的"樂器",而是提供了一個可隨時擴充的"管絃樂團",因此其可"演奏"樂譜自然更加豐富多彩。4、視覺對象的編碼同樣,MPEG-4也支持對自然和合成的視覺對象編碼。合成的視覺對象如2D、3D動畫,人的面部表情動畫等,這些合成圖像單獨編碼,不僅可有效壓縮,而且還便於操作。對自然視覺對象的編碼,仍是MPEG-4的重點。相對於靜止圖像,MPEG-4採用零樹小波演算法(Zero tree Wavelet algorithm)以提供高壓縮比,同時還提供多達11級的空間解析度和質量的可伸縮性。對於運動視頻對象的編碼,MPEG-4採用瞭如圖2所示的編碼框圖,以支持圖像的編碼。可見,MPEG-4為了支持基於對象的編碼,引入了形狀編碼模塊。為了支持高效壓縮,MPEG-4仍然採用了MPEG-1、MPEG-2中的變換、預測混合編碼框架。對於一般的任意形狀的視頻對象,MPEG-4編碼後的碼流結構見圖3。對於實時的極低比特率的應用,如可視電話,MPEG-4視頻編碼採用極低比特率視頻(VLBV)核進行編碼,類似於ITU的H.263直接對矩形視頻編碼,而不採用形狀編碼模塊。編碼後的碼流結構見圖4。可見,MPEG-4採取了向前兼容H.263,同時,也提供了一些高層特性,如基於內容的編碼。其擴充的方式見圖5。MPEG-4支持有誤碼信道傳輸下的魯棒性,提供了更好的同步和誤碼恢復機制。5、場景描述場景描述主要用於描述以上單個的AV對象如何在一個具體AV場景坐標下的組織與同步等問題。同時還有AV對象和AV場景的知識產權保護等問題。6、MPEG-4展望MPEG-4的應用將是廣泛而深遠的。這一新的標準將至少可以應用於以下場合:2 實時多媒體監控;2 極低比特率下的移動多媒體通信;2 基於內容存儲和檢索多媒體系統;2 Internet/Intramet上的視頻流與可視遊戲;2 基於面部表情模擬的虛擬會議;2 DVD上的交互多媒體應用;2 基於計算機網路的可視化合作實驗室場景應用;2 演播室和電視的節目製作。2 MPEG4系統 正是由於上述MPEG4標準目標的特點,決定了MPEG4系統的特殊性或者說是與以前MPEG 1/2系統的不同。可以說,MPEG4系統的內容和特點與上述MPEG4標準的目標是密不可分的。MPEG4 System 規範了標準的整體結構,並且定義了MPEG4 Visual和MPEG4 Audio如何合成在一起,此外還包括多路復用、同步和緩存管理。MPEG4 System引入了BIFS的概念(Binary Format for Scence)。BIFS定義了MPEG4的許多交互性的內容。所有關於媒體對象、場景描述的信息或是控制信息都包含在基本碼流中。基本碼流是信息的載體。基本碼流包含由標籤或指針,叫做對象描述子。對象描述子描述了構成MPEG4流的基本元素並決定了MPEG4流是如何在接收端解碼的。對象描述子能使接收端識別出送來的媒體類型並正確地重現它。這允許內容的作者決定媒體對象的層次並將無信息加入到媒體流中。所有基本流都在同步層中進行存儲。同步層確保基本流使用公用的系統來傳輸時間和幀信息。這裡先做一簡單地介紹,後面再詳細介紹。MPEG-4系統的組成內容如下:2 系統解碼器模型,這是每一個系統都應該有的特殊模型2 場景描述(Scence DescriPtion)2 對象描述框架(Object Description Framework)2 基本碼流同步(同步層)2 MPEG-J2 基本碼流的多路合成這六大部分基本上概括MPEG-4的系統的主要內容。 2.1 系統解碼器模型 系統解碼器模型(SDM:System Decoder Model)提供了對MPEG4終端行為的一種抽象描述。目的是在接收端重構使場景得以重現的AV信息時,允許發送端能夠預測接收端是如何根據緩衝區管理和同步信息進行動作的。系統解碼模型包括定時模型和緩衝區模型。系統解碼器模型定義了以下內容:2 DAI介面;2 用於存儲單個基本碼流的解碼緩衝區;2 基本碼流解碼器的解碼方式;2 存儲解碼數據的合成存儲區;2 從各個合成存儲區中將數據輸出到合成器的方式。從圖1的系統解碼器模型中我們可以看出,MPEG-4系統解碼緩衝區通過DAI(DMIF Application Interface)獲得碼流數據,DAI解復用得到同步層打包的數據包流,按其包頭指示的類型送往相應的解碼緩衝區,並在到解碼緩衝區之前去除包頭,累積成AU(Access Unit)單元(這一工作可以由ESI完成,AU單元由產生基本碼流的實體決定,長度不定,例如對於H263來說,AU單元就是一幀圖象的數據)後送入對應的解碼器進行解碼,每一AU單元解碼後得到的媒體數據對應於一個或多個CU單元,將其送往合成存儲區,在這裡如果有必要就進行重新排序,最後再在CTS(合成時間標記)的時刻送往合成器。 2.1.1 DMIF和 DAI 在圖1系統解碼器模型中首先是DIMF應用介面(DAI)。要講到DAI,必須要先提到DMIF(Delivery Multimedia Integration Framework),譯為:發送多媒體集成框架。從這一名稱就可以猜到DMIF是集成了現有諸多相關發送協議的一個集成框架,目的是最大限度的利用這些協議標準並避免功能的重複定義。許多協議標準都已支持一些DMIF的概念,這一工作是與相應的標準組織協調完成的。讓這些協議標準具有DIMF的可擴展件,可以使DIMF直接使用這些標準。DIMF提供了網路、廣播和文件訪問方式的抽象描述,以方便內容提供商們完成一次的內容對發就可以將其應用於不同的傳輸技術手段;而不再像MPEG-l/2那樣必須有自己特殊的傳輸環境要求。為什麼會產生這個DIMF呢?MPEG-4的設計目標之一是為了應用的廣闊性和bit率的寬範圍適應性,而MPEG組無法知道發送應用的具體情況,因此乾脆將傳送方式的決定權留給了根據特定網路傳輸方式的服務提供商。就是這個原因,標準將發送和壓縮處理成兩個獨立的結構。DIMF規範了MPEG-4流與不同網路技術和協議的介面。DMIF提供了MPEG-4流的全面的發送結構。就其內容的範圍而言,可以這麼說:MPEG-4系統 DIMF=傳統意義上的MPEG 1/2系統。DMIF並不在MPEG-4系統規範中,而是單獨作為MPEG-4標準的一部分。原則上來說,所有的DIMF的原理已經被考慮到了適應接收端和發送端的操作。而連通DMIF和MPEG-4 System之間的橋樑就是所謂的DAI(DMIF Application Interface)。DAI終於浮出水面了。DMIF定義的這個叫做DAI的介面,用來在應用的開發與發送技術分離開後作為它們之間的介面。通過DAI,應用可以從本地存儲設備,從廣播通道以及從遠程伺服器中無縫地訪問內容。而且,不同地發送技術被隱藏起來,如IP和本地ATM、IP廣播和MPEG2廣播。系統終端解碼器就通過DAI來訪問媒體流。一個DAI濾波器處理請求並且決定DIMF的類型,對該DIMF的請求是基於由應用所提供的URL的基礎之上的。相對於所需的傳輸技術類型,一個應用能夠請求不止一種DIMF服務。例如,一個DMIF可以指定IP多點傳送的同時另一個DIMF能夠指定衛星廣播,在這一點上DIMF被設計成支持在多種傳輸技術和協議之上同時傳輸多個流的技術。DMIF實現了相當於OSI的對話層。而DAI則代表話路服務程序訪問點(SSAP:Session Service Access Points),即,在DAI下面集成了不同的傳輸服務程序訪問點(TSAP:Transport Service Access Points)。將發送細節從對多媒體軟體開發中分離出來,通過DAI無縫的訪問本地存儲和廣播發送通道,可以使得多媒體軟體的開發在繼續研發和不斷完善的同時不必關注或是擔心新的發送技術的發展或成功。通過DAI介面傳輸與QoS有關的媒體,應用能夠表達它們對QoS的需要而無需具備對專門發送技術的知識。DMIF中的這一規則使應用可以僅開發一次。然而MPEG-4終端並不是完全有必要遵循DAI,因為DAI將MPEG-4模型中與發送有關的部分(DMIF)和與發送無關的部分(系統)分離開來,從而允許應用脫離下面的發送技術而獨立開發。然而,個僅僅專門用於本地存儲的實現可以設計成最優化地使用其專門類別的發送媒體。機頂盒也會有同樣的考慮,即可以將機頂盒專門設計成僅從 MPEG2 廣播發送中獲取內容。而如果應用的開發需很大的靈活性,例如,從不同發送媒體無縫的訪問數據,包括本地存儲和廣播,DAI的使用將給開發者提供很有利的條件。2.1.2 定時模型和緩衝區模型 與MPEG-2系統一樣,MPEG-4系統也定義了定時模型和緩衝區模型,並且非常類似。定時模型定義了時間參考機制,這樣接收端就能夠以此建立起時間的概念並處理與時間有關的事件。這樣就允許接收端在跳過或不跳過某種特別媒體時仍可以保持同步,就如同在處理用戶交互事件時一樣。定時模型要求傳輸數據流中顯示或隱式地包含時間信息。並定義了兩種時間信息:時鐘參考(CR)和時間標記(TS)。時鐘參考常用來傳輸發送端相對於接收端的時間。時間標記用來傳輸特定事件的時間,例如,已編碼的音視頻信息的各個部分期望解碼的時間,或是合成時間。緩衝區能使發送端監視和控制在對話期間每一單獨基本碼流解碼所需要的緩衝區的資源。所需要的緩衝區資源在對話開始前以基本流描述子的方式被送到接收端,這樣接收端就可以決定是否有能力處理這一對話。在某些信息從緩衝區刪除時,本模型允許發送端指定和調整數據的傳輸,使接收端的緩衝區不出現溢出。2.1.3 基本碼流介面(ESI) 基本碼流介面(ESI:Elementary Stream Interface)是一個概念上的介面,規範了哪些數據是要在生成基本碼流的實體與同步層之間進行交換的。在編碼層和同步層之間傳遞的不僅僅是壓縮的媒體,還有附加的信息,如時間碼,AU單元的長度等。 然而,ISO/IEC 14496-l的一個實現不是必須要有ESI的。也可以是將SL-pscketized 流(後面會講到)的解析和媒體數據的解壓縮在同一個解碼器中綜合完成。要注意的是,即使這樣,解碼器在輸入端通過DAI接收到的是打包序列而不是數據流。 欲從同步層接收基本流數據的ESI介面有許多參數,這些參數反映了在解析輸入的SL-packetized流時接收到的一端的信息: ES.receiveData (ESdata,dataLength,idleFlag,objectClockReference,decodingTimeStamp,compositionTimeStamp,accessUnitStartFlag,randomAccessFlag,accessUnitEndF1ag,accessUnitLength,degradationPriority,errorStatus) 對於將基本碼流發送到同步層有類似的介面,它要求下列參數隨後會在同步層上被編碼: ESI.sendData(ESdata,dataLength,idleFlag,objectClockRefence,decodingTimpStamp,compositionTimeStamp,accessUnitStartFlag,randomAccessFlag,accessUnitEndFlag,accessUnitLength,degradationPriority) 解碼器及時準確地於定義的時刻從解碼緩衝區中抽取AU單元後進行解碼,解碼得到一個和多個CU(Composition Unit)單元,送入合成器。一個解碼器和多個解碼緩衝區對應,即單個解碼器可以解碼多個同類型的基本碼流。特別注意的是,因為MPEG-4標準支持多種類型的媒體,這裡的解碼器就不僅僅指MPEG-4視頻格式的解碼器了,也可以是其它視頻格式的解碼器、如MPEG2和MPEG1,還可能是靜止圖象地解碼器,如Jpeg的解碼器,音頻的解碼器或是其它格式媒體的解碼器。不管傳送任何一種格式媒體,都可以在這裡掛上相應的解碼器,這也是一種很好的擴展方式。例如,現在目前非常流行的Flash媒體格式,MPEG-4標準中沒有定義支持這種格式,但是第三方可以較容易的將支持Flash的解碼器掛到系統上,作為自己獨特的應用,目前此項工作正在進行中。 2.1.5 合成器 合成器從合成存儲區中獲得CU單元,或處理之或略棄之,例如,對AV數據來說就要合成並顯示。ISO/IEC 14496-l標準(系統)並沒有規範合成器,因為合成器的具體過程與系統解碼模型沒有關係。合成器在具體應用時,採用軟體或硬體手段將AV數據合成顯示來達到實現的目的,例如在軟體實現時採用OpenGL的方式來完成AV數據的合成與重現。2.2 現場描述 MPEG-4的最大的特點是基於對象,即將媒體元素,例如跑動的汽車,行動的人,背景,聲音等等作為對象來進行單獨的編碼。而場景描述就是用來說明如何有效的根據AV對象的時間和空間屬性將它們有效的組織起來。場景描述就是規定了場景中AV對象的組織方式,即通過空間和時間位置的方式實現之。這樣的信息足以使得將各個AV對象分別解碼重構後,組合和重現它們。在編碼端,將場景描述的信息進行編碼,在解碼端再將場景描述信息恢復出來,AV對象就可以根據這些信息恢復原始的AV場景了。為什麼要將場景描述信息與AV對象分離開來呢?這是因為場景描述信息是場景結構的屬性而不是單獨AV對象的屬性。因此,它也要用單獨的流來傳輸。這對於bitstream的編輯和本質上講是基於內容MPEG-4的功能實現都是非常重要的。對於bitstream的編輯,可以在不解碼bitstream的情況下就改變AV對象的組合以及它們的內容。而如果對象的位置是對象bitstream的一部分,這一點就很難做到。 2.2.1 場景描述原理場景描述作為MPEG-4 System規範的一部分,描述了用於傳輸時空位置信息的格式,這些信息描述了個別AV對象如何組成一個場景,它說明瞭對象如何在時間和空間上組合成MPEG-4場景;場景於何時、如何進行更新。這其中當然也包括屬於用戶交互的信息,如場景中的某一對象如何響應用戶的交互行為。這些信息構造的層次方式可以用一顆樹來表示。這樣一棵樹的葉節點總是表示AV對象,還有其它節點用來實現分組,空間轉移等功能。這樣的分層結構使得場景的構造和內容的編輯簡單化。這一結構和場景描述性能惜助於VRML的一些概念,並包括所有VRML的節點和一些MPEG-4自己特有的節點,MPEG-4所定義的附加節點可以適用於純2D環境。只要熟悉VRML,就很容易理解場景描述這一部分,它們的原理,用法和用途幾乎是一樣的。只不過MPEG-4在VRML的基礎上做了補充和改進。VRLM有著優秀的場景描述的機制,MPEG-4正是看中 VRLM的這種優勢,而的確VRML技術給MPEG-4帶來了很大的方便。圖2就是場景描述的一個具體實例的結構,它帶給我們的這樣一個場景:一個正在講話(voice)的老師(person)站在黑板(2D background)前,旁邊有一張放有地球儀(globe)的桌子(desk),該圖包括了由一些基本媒體對象組成的混合媒體對象。基本對象對應於樹的葉片,而合成媒體對象則包含了整棵樹或是某個枝條。就像圖中所示:如果那位在講話的"老師(person)"這一視頻對象和"配音聲(voice)"這一音頻對象結合在一起,就構成了一個"老師在講話"的音視頻混合對象。這樣的分組允許創作者構建複雜的場景,也使得客戶對這些對象作自己有意義的操作。場景描述採用如圖2所示的樹狀結構,是為了便於增加場景的編輯和交互功能。樹的每個葉節點都是一個基本節點,它對應一個基本流,任何一個子(葉片)節點的父節點是混合節點,混合節點主要用於場景的編輯和組合。在實際的應用中這種結構並不是"靜態結構"(VRML就是"靜態結構")而是"動態結構",即用戶能夠實施添加、刪除和改變節點的操作。與VRML相比,MPEG-4有了更大靈活性。 為了允許用戶對顯示的AV信息進行更有效的操作,MPEG-4系統規範提供對交互操作的支持。交互機制與場景描述綜合在一起,通過連接事件源和目的地的方式實現,就如同連接了一條路線,又好比感測器一樣(特殊的節點在特殊的條件下可以發出事件)。這些事件源和目的地是場景描述節點的一部分,因而允許停止即將到來的特定場景的動態和交互的行為聯結。MPEG-4標準並沒有規定專門的用戶介面或是機制來進行用戶行為(如:敲擊鍵盤或滑鼠移動)對事件的映射。本地或用戶端的交互行為通過BIFS的路由和感測其機制來實現。像這樣的交互性行為不需要上傳通道。MPEG-4標準葉也提供了用於客戶一伺服器對話交互的手段,這通過建立上傳基本流通道來實現。2.2.2 場景描述內容MPEG-4根據VRML開發了一種自己的二進位語言用來進行場景描述,這就是BIFS-BInary Format for Scenes(二進位場景格式)。MPEG-4的BIFS就是VRML交互機制在MPEG-4中應用的體現。BIFS使用的是參數方法,場景描述由一些帶有屬性和其它信息(包括事件源和目標)的節點構成的編碼層次(樹)組成。樹中的葉節點表示特定的AV對象(媒體對象),但是有一些媒介節點來實現分組,空間轉移和其它操作(場景描述節點)。BIFS可以隨著其更新升級而不斷改進。BIFS目的就是攜帶場景描述信息,它實際上就是一個協議:首先它規定了如何重現MPEG-4對象的場景圖(在任意時間和空間上放置MPEG-4對象),實現對象的動畫和可交互行為以及對這些元素的發送加以時序化和同步化;其次,它還是一種有效的對數據進行重現和發送的壓縮工具;另外,它還定義了事件處理、對象組合的節點和運行規則。圖3顯示了"BIFS內容",從中我們可以看出BIFS進行場景描述的大體流程。這裡值得注意的是,從圖中"場景圖管理"部分我們可以看到,BIFS在對VRML節點支持的基礎上進行了擴充。MPEG-4傳送的對象包括VRML節點和MPEG-4獨有的MPEG-4節點,這就進一步說明瞭MPEG-4對VRML的兼容和改進。BIFS採用了BIFS-Command機制,它能夠改變場景圖的任何屬性。例如:Transform節點可以修改對象在空間中的移動,Material節點能夠改變對象的外觀,幾何節點的域可以整體或部分的改變對象的幾何外形等。總之,節點和行為可以增加和刪除。為了修改場景,發端必須發送一BIFS-Command幀,其中包括一條或多條更新的命令,這其實就是圖3中的BIFS-Update ES,它用於在給定的時刻及時地修改場景的一系列屬性。BIFS提供了兩種描述場景變化的機制,對於修改場景連續變化的參數就需要用到動畫方案來解決--"BIFS-Anim"機制,這一機制可以對特殊節點的域作連續的更新,整合不同類型的動畫,如對帶有網格、2D/3D位置、旋轉、伸縮因子和顏色屬性的臉部模型完成動畫的能力。MPEG-4容許用戶互動式地操作各種對象,這種互動式可以分為兩類:客戶端交互和服務端交互。客戶端交互就是改變場景描述節點的屬性,如使某個對象可見或消失、通過滑鼠或鍵盤改變對象的位置或3D對象的視點以及文本對象的字體和尺寸等,這些操作都是在解碼端完成,不需要改變碼流的內容。客戶端的交互性可以進一步分為簡單目標操作類型和事件常規類型。前者(如重新定位,隱藏,改變屬性等)不需要來自於MPEG-4的標準化支持。後者(如超鏈接.觸發等)就需要MPEG-4的標準化支持。當服務端在終端和發送端間要求通信時,位於一個MPEG-4的本地終端的客戶端就響應。伺服器端交互是通過用戶在解碼端進行操作而服務端對該操作進行相應的反映來實現的,顯然這種交互需要上行通道。注意,服務端的交互性也需要MPEG-4的支持。MPEG-4的系統組目前正致力於將需求特性最小化,且不限制應用場合和在主機上的應用不對操作環境有特殊要求,這樣將有利於交互性更好的實現。這一切就正是使用了VRML模式的路由機制。圖4展示了一個完整的MPEG-4多媒體系統,從圖中可以看到,MPEG-4將AV對象、場景描述信息、對象描述子等作為基本碼流進行傳輸,依靠場景描述信息和對象描述子將AV對象組合、生成多媒體互動式的場景。注意:場景描述僅僅描述場景的結構。將這些目標放置在同一顯示空間的行為稱作組合。將來自於同一顯示空間的對象傳輸到專門的播放設備(即揚聲器和顯示窗口)的行為稱作生成。但是在MPEG-4系統規範中,並沒有規定專門的組合和重現算祛和結構,因為他們是依賴於具體的應用實現的,例如,就PC應用來說,在Windows系統下和在Linux系統下,不同軟體應用都會有各自的組合生成演算法實現。注意,圖2所示的"場景描述樹狀結構"就是圖4中的「場景描述信息」部分。2.3 對象描述框架前面講到,為了方便創作、操作和交互工具的開發,場景描述與基本媒體對象的碼流應該分開獨立編碼。對用於場景描述的參數的確認要進行專門的處理。這就要靠不同的參數來做到。就像一些參數用來提高一個對象的編碼效率(如視頻編碼算祛中的運能動矢量),還有一些用來修飾一個對象(如該對象在場景中的位置)。因此MPEG-4應該允許,在使用後面這些參數作修飾時,不需要將基本的媒體流解碼,這些參數置於場景描述中而不是原始媒體對象中。為了實現上述的獨立編碼,MPEG-4增加了VRML沒有的"對象描述子"(OD:Object Descriptor)來增強其功能的靈活性。場景描述並不直接從其基本流參考,而是從專門制定的這一媒體對象--對象描述子。MPEG-2系統中也有描述子的概念。MPEG-4系統中的描述子與MPEG-2系統中的描述子在形式上差不多,都是以8位標籤值開始,標籤值之後是各自的數據欄位,只是少了描述子長度這一欄位。兩者在作用上有相同之處也有區別。MPEG-2系統中的描述子是原始流描述子,用來擴展原始流定義的結構,提供了一種可擴展定義的識別方式。因為使用8位標籤故總共可定義256個描述子,而標準有明確定義的只有15個。這15個描述子更具有「描述」的含義。例如:視頻流描述子用以識別視頻編碼標準(ITU-T Rec.H.262 ISO/IEC 13818-2或ISO/IEC 11172-2)中描述的視頻原始流編碼參數;多路復用緩衝區描述子用以識別所描述的多路復用緩衝區的配置信息。而MPEG-4系統中所用到的描述子叫做對象描述子(OD),雖然也是描述子,但是前面的定語已經不同,這就決定了它的性質和作用起了變化。MPEG-4系統中,對象描述子的主要作用是提供一種間接的機制便於將場景結構、媒體對象同所用傳輸設備分離開來,這樣他們之間的運行不會相互影響。這些描述子用來識別、描述和將有關的基本碼流聯繫起來,還可以將基本碼流和場景描述中的AV對象聯繫起來。OD也使用8位的標籤即總共256個描述子,標準有明確定義的是32個(還可能有擴充)。MPEG-4的描述子有一大特點就是可以嵌套:一個描述子可以包括多種類型的描述子(如:OCI,IPMP,Language描述子),而每一類型的描述子可以多達幾十上百,這樣做的目的是在描述基本碼流及其屬性時,基於碼流所對應的對象描述子可以包含不同的附加描述子,等效於將這些描述子看作其部件,因此,標準將這些描述子稱作對象描述子的部件。而正是由於可以嵌套的緣故,所有的描述子都被看作對象描述子的部件。另外,MPEG-4中對象描述子也以相同和不同的方式實現了MPEG-2系統中流描述子的部分功能,例如,MPEG-2系統中註冊描述子的語法:語法因為MPEG-4是基於對象的,所以用面向對象的語言來描述。但不難看出兩者對註冊描述子的定義相差無幾。而且對語義的說明也是類似的。當然MPEG-4增加了許多新的描述子的內容。負責有效組織描述子的機制正是對象描述子框架。其目的是識別,描述和關聯AV場景的各種部件的基本流。一個對象描述於集合了一個或多個基本流描述子,因此這些基本流描述子都與這一對象描述子有關,它們提供了單個對象(媒體對象或場景描述)流的配置及其它信息。每一個媒體對象都必須要有指向一個對象描述子的基本流數據,這通過數字標識符-ObjectDescriPtorID方式實現。基本流描述子包含流來源的信息,其方式可以使用唯一數字識別符(the Elementary Stream ID)或URL來指向流的遠程來源。ES Ids在傳輸復用層(TransMux layer)分派給特定的傳輸通道。ES描述子還包含編碼格式的信息,解碼處理和同步層打包的配置信息,以及流傳輸的服務質量(QoS)需求和智能屬性識別信息。流之間的依賴關係也可以表示,例如,在可分級的音視頻重現情況下就要指示增強層對其基本層的依賴關係,又或者是同一語音內容在不同種語言下的有效性應用。初始化對象描述子是對象描述子的部件之一,在最初訪問符合MPEG-4標準的內容時就要利用它。在它被接收以後,客戶端就會根據其指向接收BIFS流和OD(對象描述於)流,該OD流中的許多對象描述子解碼後有很多的用途:用於建立場景中某一對象同實際媒體流的聯繫;用於識別媒體流的類型,用於設置緩衝器的大小等等。一句話,對象描述子框架的目地就是使得基本流相互之間以及媒體對象之間可以識別開並正確地建立聯繫。對象描述子同場景描述和AV對象一樣都在其專門的基本碼流(對象描述碼流)中傳輸。該碼流可以動態的地傳輸更新和刪除完整的對象描述於,或是其描述子部件。更新和刪除行為的發生是靠基本碼流結構中除描述子之外的另一內容:對象描述子命令(OD Command)。一個對象描述碼流的AU單元由一個和多個對象描述子命令,或者說要在同一時刻進行處理的所有OD命令組成了單獨的一個AU單元。對象描述子和其部件都作為描述子命令的一部分進行傳輸,命令執行了對這些對象描述於和其部件的「更新」或「刪除」操作。標準定義了6條OD命令:命令MPEG-4中提供了智能屬性管理和保護(IPMP)框架,允許MPEG-4終端使用一個或多個IPMP系統。一個IPMP系統是非標準部件,其利用IPMP基本碼流和描述子所帶的信息,保護那些對終端有效的符合國際標準14496的內容。IPMP系統的語義和解碼過程不在系統中規範,只規範了IPMP系統的介面。2.4 MPEG-JMPEG-J是MPEG-4的擴展,允許在MPEG-4的內容中使用Java語言。Java的代碼可以修改場景,部分的參與場景交互機制以及控制媒體的解碼。它還能夠產生圖形用戶界面(GUI)的部件直接實現應用功能。但是Java代碼不能放入實時媒體數據流中。例如,在實現視頻解碼時,Java代碼不能加入,這是為了確保媒體解碼的高質量。Java代碼將在自己的基本碼流中傳輸並由MPEG-4終端接收,而且使用專門的節點和規則的對象描述子工具來與場景進行關聯。因為MPEG-J只是輔助工具,本文只做簡單介紹。MPEG-J在標準規範中有相當長的篇幅,其詳細內容,請參見標準。2.5 基本碼流同步(同步層)同步層(SL)指定基本碼流數據打包成AU單元或是AU單元的一部分的語法。這樣的數據包成為SL數據包。基本碼流是任意數據源的基本抽象。同步層中,一個基本碼流產生的一個數據包序列,就稱為同步層打包流(SPS:SL-packetized stream)。打包信息用來在生成基本碼流的實體和同步層之間交換信息,這兩層之間的抽象介面就是前面講到的基本碼流介面(ESI)。同步層打包流通過在DAI中描述的傳輸機制來傳輸,傳輸機制指明同步層與與其之間需要交換的信息,這一傳輸數據的基本特徵是同步層產生數據的成幀方式。基本流在碼流多路復用介面處以同步層打包流的方式傳輸。這種打包方式附加了時間和同步信息,碎片和隨機訪問信息。從SL中提取時間信息能夠使解碼同步化,並且隨後將基本流數據合成。同步層和ESI以及DAI的關係見圖5。AU單元是同步層中唯一需要在端到端保護的語義數據。它們的內容是不透明的,這也就是說同步層對基本碼流數據打包以AU單元為單位。一個SL數據包有一個SL包頭和一個有效載荷(payload)組成。SL包頭提供防止數據丟失的連續性檢測方祛,並且攜帶有編碼表示的時間標記和相關信息。SL包頭不是固定,而是可以配置的。一個SL數據包中並沒有其長度指示,因此組幀方法即AU單元的恢復就必須用一個低層協議來實現,例如用MPEG-4提供的FlexMux工具。因此SPS不是一個自包含的數據流,不能靠自身解包,如果不重新組幀恢復AU單元是不能存儲和解碼的。前面說過,SL包頭的目的是防止數據有效載荷丟失,並攜帶有編碼表示的時間標記和相關信息,而不與數據有效載荷的內容發生直接關係。有效載荷是不透明的。因此一個SPS並不能在SL包頭中提供識別標識基本碼流的ES_ID功能。而這種關聯就必須靠傳輸機制中適當的發送信號的方法通過一個碼流映射表來表達。2.6 基本碼流的多路合成解復用提供了提供了傳輸/存儲工具和其它系統層之間的介面。其基本的功能是從下載流通道(到達終端)中恢復基本流以及復用上傳流數據到上傳通道(離開終端)。這些基本流載有對象數據,場景描述信息,或是對象描述子。系統設計了兩層的復用:傳輸復用(TransMux:transport multiplex)和MPEG-4復用(FlexMux)。TransMux不在MPEG-4規範之中,它可以是現存的或是將來任意一種復用工具。TransMux是第一層(最底層)的復用層,是為了數據的交織並確保它們通過通訊媒質的傳輸。為了建立服務的最大靈活性和應用設計,該層並沒有規範在MPEG-4系統中。然而對這一層的介面卻被很好的定義了,這樣就允許MPEG-4內容的傳輸通過任意類型的傳輸層工具(例如,ITU-T推薦的H.22x,MPEG-2 Transport Stream,IETF RTP,MPEG-2 TS)。FlexMux層提供了一種數據交織的靈活方式並且是一種用以識別數據流的AU單元的最小工具。它並不意味著能夠抗差錯,因為它可以放置於具有抗差錯性能的TransMux層的上面。FlexMux層完全定義MPEG-4中,但它的使用具有可選性並不帶有標準的強制性:如果願意,應用可以直接操作在傳統的傳輸層(TransMux)上,不使用它,仍然是完美合格的MPEG-4系統。但是該結構對於各種通訊環境中配置MPEG-4提供了顯著的靈活性。FlexMux是系統設計者們可能樂意使用的應用級別的復用工具。FlexMux是ISO/IEC 14496-1(系統)中規範的工具,但是它也可以有效地使用ISO/IEC 14496-6(DMIF)的實現中。DMIF為配置FlexMux提供了信號方式。DAI在控制平面和使用平面中提供了原始方法,這種原始方法將發送技術細節和FlexMux細節隱藏與DAI之上:即在DAI之上的應用僅管理基本碼流而不包括FlexMux碼流,從而意識不到FlexMux的存在。該模型在接收端已經證明是有效的了,但還需要在發送端進行進一步的考慮。FlexMux作為一種靈活的復用工具,能夠容納瞬時bit率變化的多個SPS的交織。FlexMux的基本數據實體是一個FlexMux數據包,其長度是可變的,並可內嵌一個或多個SL數據包。FlexMux 工具提供了識別來自不同基本碼流的SL數據包的能力,這一點是通過定義FlexMux通道數目的方式做到的。每個SPS都被映射到一個FlexMux信道,因此包含來自不同SPS數據的FlexMux數據包就可以任意的交織。交織在同一碼流中的FlexMux數據包序列就稱為一個FlexMux碼流。FlexMux提供了兩種特徵和複雜度的操作模式,它們是Simple模式和MuxCode模式。用Simple模式和MuxCode模式可以使得FlexMux包含任意混合的FlexMux數據包。在Simple模式中,一個FlexMux數據包只封裝一個SL數據包;而在MuxCode模式中,一個FlexMux數據包可以封裝一個或多個SL數據包。3 結束語MPEG-4系統是MPEG-4標準得以實現的重要部分,由於MPEG-4的應用實現不僅僅只涉及到MPEG-4 AV格式的自然媒體對象,還有人造媒體對象,以及場景環境和交互性,這就使得包含這些內容的MPEG-4系統顯得特別重要。MPEG-4系統與傳統的MPEG-l/2系統有了許多區別。基本的區別在於MPEG-4的主要任務在於將自然/人工AV對象的顯現進行編碼。因此,系統層就必須解決這些對象如何組合成一幅場景,以及用戶如何與這些對象進行交互。此外,基於對象的這種結構有必要使得AV信息可以在進行多路復用時得到修改。MPEG-4系統將發送機制分離出去,形成獨立的DMIF標準規範之一,使得MPEG-4有著非常靈活的復用結構並且不需要像MPEG-2一樣的傳輸層的工具(即MPEG-2的TS和PS結構),這用靈活的復用結構依靠"對象描述子(Object Descriptor)"來實現,正是這種結構用以描述基本流,並將基本流聯繫起來以構成場景描述。系統部分是直接與應用緊密聯繫的。相信MPEG-4會象MPEG-1和MPEG-2的巨大成功一樣,會不斷有更新更好並給用戶以極大方便和樂趣的應用出現。本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/msgsnd/archive/2008/03/14/2181965.aspx
推薦閱讀:

查看原文 >>
相關文章