ファイヤープロジェクト
MPEG4の仕組み
2003-07-20T15:13+09:00   matsu
MPEG4は,かなり思い切った(そしてアツい?)仕様になっている.シーンがオブジェクトで構成されている?じゃぁ,ある動画から人だとか木だとかという人間が認識するオブジェクトを認識できるのか?という疑問が浮かんだりする.ので,もうちょっとだけ(あんまり深入りすると3日で終らすはずで,延びちゃってるこのFeatureが終らない)堀下げて調査してみた.
MPEG4のコンテンツはシーンで,シーンはオブジェクトから構成される.で,シーンにどんなオブジェクトがあって,そのオブジェクトはシーンのなかでどこに位置しているのか,などといった情報はシーン記述として記述され,デコード時に使用される(はず).このシーン記述は噂の(?)VRML(Visual Reality Modeling Language)を拡張したBIFS((BInary Format for Scene description)という言語で記述されている.
MPEG2には音声ビットストリームとビデオビットストリームがあって,両者の多重化の仕方によってpsとtsがある.すなわち,コンテンツにAOとVOがあってそれを束ねる,という符号化だ.そしてAOとVOのビットストリームはESと呼ばれた.MPEG4でもESというのがあって,それはシーンを構成するそれぞれのオブジェクト毎にある.これらのESが多重化され,そしてデコードされる.デコード時には各ESをオブジェクトディスクリプタ(なんかファイルディスクリプタを思い出す)によって区別しオブジェクト毎の処理を可能にする.なお,シーン記述やオブジェクトディスクリプタ自身もオブジェクトディスクリプタで制御される.
MPEG4のエンコードでは,まずESインタフェースを介して同期レイヤでESをSL-パケット化ストリームに変換する.この変換で,各ES間の同期をとる(のだろう).次にDMIF APIを介してSLをFlexMuxというものにまとめる.このFlexMuxというのはいくつかのESをグループ化(すなわち多重化)する.グループ化する基準は,QOS(Quality Of Service)やネットワークコネクションである.そしてFlexMuxはDMIFネットワークインタフェースを介してTransMuxレイヤに渡される.TransMuxレイヤには,いくつかの伝送手段(UDPとかRTP等)があり,状況に応じてそれらを使い分ける(はずだ).MPEG4ではこのTransMuxレイヤの各伝送手段は既定していない.逆に言うと,コンテンツ作成者はDMIFまでを考慮するだけでよく,その伝送手段まで考えなくてよい.
デコードではこれと逆の操作がなされる.
matsu(C)
Since 2002
Mail to matsu