| |
MPEG-4-Video Standard
Seite 54 von 103
Technische Informatik
10.10.2003
#Beispiel für dynamisches Verhaltens mittels ROUTE
Group {
DEF position Transform {
translation 1 0 0
children [
Shape {
geometry DEF MeineÜberschrift Text {
string Neues aus Paderborn
}
}
]
}
}
DEF PosInterp PositionInterpolator {
key [0 1]
keyValye [1 0 0, -1 0 0] # Bewegung von x=1 nach x=-1
DEF MeineZeit TimeSensor {
loop TRUE
StoppTime 1
}
ROUTE MeineZeit.fraction_changed TO PosInterp.key
ROUTE PosInterp.keyValue to position.translation
Szenen-Handling
Szenen können für sich als Hauptszenen stehen oder als Subscenes in anderen
Szenenen eingebettet sein. Gründe für eine derartige Handhabung sind zu große
und zu komplexe Szenen, die schwer zu Handeln sind; bestimmte Teile müssen
öfter als Andere modifiziert werden; Subscenes werden von verschiedene
Autoren entworfen oder Subscenes müssen gegen Veränderungen außerhalb
der Hauptszene geschützt werden.
Subscenes werden über Gruppen-Knoten, den Inline-Nodes in Szenen
integriert, wobei deren Kinder über Inline_URL-Felder ermittelt werden. Eine
weitere Methode zwei Szenen zu verbinden stellt das Hyperlinking über Anchor-
Nodes (ähnlich wie HTML) dar. Auch hier sind Anchor-Nodes wieder Gruppen-
Knoten, deren Kinder diesmal aber wie Hyperlinks (mit URL-Feldern) agieren.
Ein weiteren Vorteil den BIFS bietet, ist seine Qualitätsanpassung. Ähnlich wie I-
und P-Frames bei MPEG-2 existieren hierfür I- (Inital Scene) und P- (Scene
Update) Zustände (States) zur Steuerung der Qualität. Ein BIFS-SD-Strom ist wie
jeder andere Strom ein ES-Strom, in dem I-States in einer AU (Access Unit) und
P-States in den nachfolgenden AUs verpackt werden. I-States, bestehend aus
einer Liste von PROTOS, einem Inital-Szenebaum und einer Liste aus ROUTES
bieten hierbei einen Random Access, P-States nicht.
Um Inhalte einer Szene zu ändern und Szenen durch Bewegungen zu
bereichern, stehen zwei Mechanismen zur Verfügung:
BIFS-Commands
Sind einzelne Veränderungen der Szene, verpackt in AUs des SD-Stroms und zu
finden in BIFS-AUs oder im Buffer von Conditional-Knoten. Die Grund-
Kommandos sind Insert, Delete und Replace und können auf Knoten,
ROUTEs, Felder oder einfache Werte angewandt werden. Zeitlich gesteuert
werden sie über Zeitstempel. Will man z.B. die Farbe und die Position eines
Objektes verändern, so benutzt man BIFS-Commands.
|  |
|
| |
|
|