...
...
BIFS Command (Replace Scene)
e.g. Audio Source
Audio Stream
圖 5:OD 使得 SD 和 ES 做一連結
(2) SD(Scene Description) : 場景描述資訊是由場景描述語言(scene
description language)來完成。場景描述語言是用來描述物件之間的行為,彼 如說物件的位置、大小、物件和物件之間的關係等等。MPEG-4 所使用的場 景描述語言為 BIFS(Binary Format for Scene)。
針對 MPEG-4 system 的 binary format 場景描述語言,根據 VRML[15]的語法所延伸
Node、Field 為構成場景的基本元素
三種 BIFS command (Replace, Insert, Delete)控制場景劇情
Route 和 Event 控制場景內物件之間訊息的傳遞
些物件所構成的場景,需要額外的系統資訊來描述物件間時間與空間的關係,如 物件特效與物件的合成還有物件互動的資訊。這些建構場景所需要的系統資訊,
稱為場景描述(Scene Description)。如圖所示,這是一個場景的例子,若是將這個 場景以樹狀結構來描述就會如圖所示。
multiplexed downstream control / data
multiplexed upstream control / data
audiovisual presentation
3D objects 2D background
voice sprite
hypothetical viewer projection
z user events
audiovisual
speaker display
user input
圖 6:一多媒體物件所組成的場景
scene
globe desk
person audiovisual
presentation 2D background furniture
voice sprite
圖 7:上圖中物件所構成的場景樹
在 MPEG-4 媒體資料,是以 BIFS(Binary Format for Scene)來描述場景資訊,
BIFS 是 VRML 語言的擴充,並且 MPEG-4 新增了數個 VRML 所沒有的機制: 資 料串流、場景更新、資料壓縮。
在 BIFS 的定義中,一個場景主要由 nodes、fields、routes 所構成。經由各 種大小不同的 node 和 field 相構成就可以成為一個多媒體物件( MediaObject ),
而多媒體物件的互動行為則必須由 routes 來完成。
Node : 場景構成的基本單位,可是看為是一種物件
Field : field 為 node 的屬性,舉例來說 FontStyle node 所擁有的 fields 有以 下: family, style, size, spacing。
Event :
大部分的 Node 有能力去處理進入事件(eventIns),靠著 eventIns 指示, Node 可改變目前的狀態
Node 可以對改變的狀態有所反應,藉著送出一些發生事件 (eventOuts)
Route : 為 field 之間互相傳遞事件(event)的管道。有些特別的功能必須利 用 routes 才能完成,如使物件在場景中的移動、接收滑鼠的 click event 等。
在場景描述的架構中,場景可以隨時間產生不同的變化,所以 BIFS 定義了 場景描述命令(BIFS Command)來完成這項工作,可以插入、刪除、取代節點和 取代整個節點,透過這些命令可以改變整個場景的樹狀結構及節點內容,達到場 景轉換的目的。
ROUTE: routeID Insert
Delete
Replace
Replace Scene
Node: nodeID
Id xValue : nodeID
ROUTE: nodeID1
Inde x Begin End
NodeVa lue Inde x
Node: nodeID Id xValue : nodeID
Node: nodeID
Id xValue : nodeID
ROUTE: routeID
NodeVa lue
Inde x
nodeID1 Scene: Scene Va lue
BIFS Update
圖 8:BIFS 指令的種類
下面這個例子是用route來達成動畫的效果,這裡的動畫是一多媒體物件沿著 它所設的路徑移動。TimeSensor節點產生時間資訊給PositionInterpolator2D節點,
PositionInterpolator2D節點產生位置資訊給Transform2D節點,這樣這個多媒體物件 就會延著動畫路徑移動。
BIFS 語法:
<Route fromNode="Node1" fromField="field1" toNode="Node2" toField="field2"/>
Transform2D TimeSensor PositionInterpolator2D
value change
translation
圖 9:Route 的運作模式