Next: Definitionsbereiche für Elemente
Up: Das root-Element
Previous: Multimediainformationen
Contents
Index
Definitionsbereiche
Es gibt zwei Arten von Definitionsbereichsangaben:
: Definitionsbereiche für die möglichen Werte (auch Werte von Variablen), die ein Element annehmen kann
: Definitionsbereiche für die (echten) Werte, die ein Element enthalten kann
Auf die Arten der Definitionsbereiche wird nachfolgend ausführlicher eingegangen.
Die Angabe eines Definitionsbereichs besteht aus zwei Teilen
und
.
Der erste Teil des Definitionsbereichseintrags ist der Name
des Elements, für das der Definitionsbereich gilt. Elemente, für die Definitionsbereiche festgelegt werden können, sind in Tabelle 5 auf Seite
zu sehen.
Dort sind auch für die Standarddefinitionsbereiche der Elemente eingetragen. Von den angegebenen Standarddefinitionsbereich können die skalaren Unterdefinitionsbereiche geändert werden, es sollten aber nicht die Anzahl der skalaren Unterdefinitionsbereiche geändert werden (wenn nicht anders angegeben, wie z. B. für Positionsvektoren
). Wenn der Standarddefinitionsbereich eines Elements aus der Menge der skalare Werte kommt (z. B.
), sollte für das Element niemals ein Vektordefinitionsbereich gesetzt werden. Andererseits sollte für Element, deren Standarddefinitionsbereiche für Vektoren mit
-Elementen ist, immer nur Definitionsbereiche für Vektoren mit
-Elementen gesetzt werden. Auf diese Weise können beispielsweise Eigenschaften immer gleich interpretiert werden.
Für Elemente (z. B. für eine Eigenschaft), welche nicht in Tabelle 5 aufgeführt werden, können die Definitionsbereiche natürlich frei eingestellt werden.
Der zweite Teil des Definitionsbereichseintrags ist der Definitionsbereich
, der für das Element
gelten soll. Eine Auflistung der möglichen Definitionsbereiche ist in Tabelle 6 auf Seite
zu sehen.
Werte außerhalb ihres Definitionsbereichs werden auf Werte im Definitionsbereich gerundet. Bei Zahlen (Skalaren) ist der gerundete Wert eines nicht gerundeten Werts der Wert mit dem minimalen Abstand zum nicht gerundeten Wert. Wenn es davon mehrere gibt, wird der kleinste Wert von ihnen als gerundeter Wert genommen.
Das Runden bei Vektoren geschieht über deren Abstand. Der Abstand zwischen zwei Vektoren ist die Summe der Abstände ihrer Elemente. Der gerundete Vektor eines Definitionsbereichs ist der Vektor im Definitionsbereichs mit dem kleinsten Abstand zum ungerundeten Vektor. Haben mehrere Vektoren einen minimalen Abstand zu dem ungerundeten Vektor, so ist der gerundete Vektor der, dessen erste
-Elemente einen minimalen Abstand zum ungerundeten Vektor haben. Wobei
, von der Anzahl der Elemente im ungerundeten Vektor ausgehend, solange um 1 verringert wird, bis ein Vektor gefunden wird oder 1 erreicht wird. Sollten auch dabei mehrere Vektoren übrig bleiben, ist der gerundeten Vektor der, dessen
'tes Element kleiner ist als das
'te Element der anderen in Betracht kommenden Vektoren, wobei
von 1 auf die Anzahl der Elemente hochgezählt wird.
Hat der zu rundende Vektor zuviele Elemente, wird die Anzahl seiner Elemente auf die richtige Anzahl reduziert. Sollte der zu rundende Vektor zuwenig Elemente haben, werden die fehlenden Elemente erzeugt und mit dem Nullwert des jeweiligen Elementedefinitionsbereichs belegt.
Jeder Definitionsbereich hat einen Nullwert. Der Nullwert eines skalaren Definitionsbereichs (ein Definitionsbereich für Zahlen), ist der Wert, den
gerundet auf einen Wert im Definitionsbereich ergibt.
Bei Vektoren ist der Nullvektor der Vektor, der entsteht, wenn ein Vektor, dessen Elemente alle
sind, auf einen Vektor im Definitionsbereich gerundet wird.
Jeder skalare Definitionsbereich hat einen maximalen Wert und einen minimalen Wert. Der maximale Wert ist der größte Wert im Definitionsbereich, und der minimale Wert ist der kleinste Wert.
Die Definitionsbereiche, welche nur Ganzzahlen enthalten, haben einen Skalierungsfaktor
, der für das entsprechende Element
gilt. Dieser Faktor
, ist eine Gleitkommazahl, mit dem die Werte des unskalierten Definitionsbereichs multipliziert werden, um den skalierten Definitionsbereich zu erhalten. Als Standard wird der Skalierungsfaktor
angenommen. Der Skalierungsfaktor ist beispielsweise nützlich, wenn die horizontale Dimension nicht in Meter
, sondern Millimetern
gemessen werden soll oder wenn die Temperatur nicht auf Grad Kelvin, sondern auf Zehntel Grad Kelvin genau angegeben ist.
In der nachfolgenden Notation wird der Skalierungsfaktor dadurch angegeben, dass der Definitionsbereich mit ihm multipliziert "
" wird. Ein Skalierungsfaktor von
wird dabei nicht angegeben. Beispielsweise bedeutet "
", dass der 16-Bit-Ganzzahl Definitionsbereich mit dem Skalierungsfaktor
skaliert wird. Dagegen ist bei nur "
" der Skalierungsfaktor
, d. h. der Definitionsbereich wird nicht skaliert.
Beispiel: Der Definitionsbereich sind die natürlichen Zahlen von
bis
(also 4 Werte) mit den Skalierungsfaktor
. Möglich Werte sind:
;
;
;
. Ist nun im Element zum Definitionsbereich eine Zahl, die unskaliert
bedeuten würde, bedeutet sie mit Skalierung
.
Table:
Namen von Elementen für Definitionsbereiche
Name |
Beschreibung |
Standarddefinitionsbereich |
|
|
|
dim( , , , ) |
Dies ist der Definitionsbereich für Positionsvektoren. Dabei gibt die Anzahl der Dimensionen bzw. Elemente eines Positionsvektors an. Der Wert ist jeweils eine Ganzzahl, wohin (bzw. in welche Richtung) die Dimension gemappt wird (siehe Tabelle 7 auf Seite für mögliche Werte. Dabei werden dort die Zahlenwerte [in der Spalte "Wert"] angegeben). Der Definitionsbereich ist ein Vektor mit -Zahlen (bzw. Skalaren). Der Standardwert für die Anzahl der Dimensionen ist . Dieser wird angenommen, wenn kein Definitionsbereich für Positionsvektoren angegeben wird. Dann (Standardfall) geht die erste Dimension in Richtung horizontal und die zweite in Richtung vertikal. Unabhängig davon überschreiben Richtungsangaben in den der Definitionsbereichen für Elemente (auch Ererbte) immer die der Definitionsbereiche für Werte . Im Normalfall sollten allerdings die Richtungsangaben in allen Positionsvektordefinitionsbereichen gleich sein. |
, ,
|
subfunction |
Werte, die in einer Unterfunktion auftauchen können |
|
area |
Dies ist der Definitionsbereich für Bereichselemente (siehe Abschnitt 12.6 auf Seite ). Der zugehörige Definitionsbereich ist ein Vektordefinitionsbereich mit 2 Elementen /Unterdefinitionsbereichen. Das erste Element bzw. der erste Unterdefinitionsbereich dient für die Anzahl ( ) der Unterbereiche, er ist ein Definitionsbereich aus den natürlichen Zahlen. Das zweite und letzte Element ist der Definitionsbereich für die Vektoren für die Unterbereiche ( ) und ist ein Definitionsbereich für Vektoren dessen zwei Elemente ganze Zahlen sind. |
,
|
inVar(i) |
Definitionsbereich der i'ten Eingabevariable ( ) |
|
set |
Nullter Definitionsbereich für set-Elemente |
,
|
set(i) |
i'ter Definitionsbereich für set-Elemente |
,
|
matrix |
nullter Definitionsbereich für Matrixelemente |
,
|
matrix(i) |
i'ter Definitionsbereich für Matrixelemente |
,
|
externSubobject( Number ) |
Definitionsbereich für das externe Unterobjekt mit angegebenen der Nummer (siehe Abschnitt 12.10 auf Seite ) des Multimediaobjekts. Mit Werten aus diesem Definitionsbereich können die Ausgabewerte des externe Unterobjekts mit der angegebenen der Nummer belegt werden. Für jeden externSubobjectOutput Definitionsbereich kann es im eigentlichen Haupt-Fib-Objekt (externe) Unterobjekte mit der angebenen Nummer geben. Für jedes externe Unterobjekt (jede Nummer) im Haupt-Fib-Objekt sollte ein externSubobjectOutput Definitionsbereich mit entsprechender Nummer erstellt werden. Zumindest aber für das (externe) Unterobjekte mit der höchsten Nummer muss ein externSubobjectOutput Definitionsbereich erstellt werden, damit bekannt ist wieviele (externe) Unterobjekt im Haupt-Fib-Objekt verwendet werden. Die externSubobjectOutput Definitionsbereiche eines root-Elements werden nicht an seine Unter-root-Elemente weitervererbt. |
|
property( Name) |
Definitionsbereich eines Eigenschaftselements mit dem gegebenen ; siehe Tabelle 2 auf Seite für mögliche Namen ( ) |
abhängig vom Typ ( ) der Eigenschaft |
property( whatever ) |
Die Eigenschaften dieses Punktes sind egal. Welche Eigenschaften diesem Punkt auch immer zugeordnet werden, sie sind richtig. |
 |
property( colorRGB) |
Definitionsbereich für die RGB-Farben |
 |
property( colorGrayscale) |
Definitionsbereich für die Schwarz-Weiß-Farbe |
,  |
property( layer) |
Anzahl der möglichen Ebenen |
,  |
property( transparency) |
Durchsichtigkeitsanteil der Punkte |
,  |
property( persistent) |
Diese Eigenschaft ist nur für einen Zeitraum sinnvoll. Raumpunkte mit dieser Eigenschaft verlieren ihre anderen Eigenschaften nur, wenn diese durch jeweils eine Eigenschaft vom gleichen Typ überschrieben wird. Dies gilt natürlich nur, solange der jeweilige Punkt die Eigenschaft hat. Sinnvoll ist dies, wenn beispielsweise in einem Film Objekte so lange sichbar sein sollen, wie sie nicht von anderen Objekten überschrieben werden. Dann kann der gesamte Hintergrund die Eigenschaft bekommen. Wird dann ein Objekt zu einer Zeit definiert und angezeigt, bleibt es in Zukunft so lange bestehen, bis es überschrieben wird. (Die möglichen Werte sind für persistent und für nicht persistent.) |
 |
property( sound ) |
ein Ton; Die Werte sind: 1. Frequenz in Hertz ( ), 2. Schalldruck in Pascal ( ), 3. Phasenverschiebung in Bogenmaß 4. Dauer in Sekunden. Ein Ton wirkt additiv mit anderen Tönen. |
, , ,
,
 |
property( soundPolarized) |
ein Ton; Die Werte sind: 1. Frequenz in Hertz ( ), 2. Schalldruck in Pascal ( ), 3. Phasenverschiebung in Bogenmaß, 4. Dauer in Sekunden, r = bis (
) Polarisierungsanteil (als Winkel in Bogenmaß) in der Dimensionsebene, welche von den jeweiligen Dimensionen und aufgespannt wird. ( ist die Anzahl der Dimensionen.) Die Winkelangabe erfolgt von der Achse in positiver Richtung. Ein Ton wirkt additiv mit anderen Tönen. |
, , ,
,
|
property( soundAmplitude) |
die Amplitude eines Tons; Die Werte sind: 1. Schalldruck in Pascal ( ), 2. Phasenverschiebung in Bogenmaß 3. Dauer in Sekunden. Ein Ton wirkt additiv mit anderen Tönen. Mit dieser Eigenschaft können Töne über ihre Amplituden mit einer bestimmten Abtastrate aufgebaut werden, wie z. B. im WAVE-Dateiformat. |
,
,
,
|
property( soundBarrier) |
Geschwindigkeit des Schalls in Meter pro Sekunde ( ); Damit können Objekte die Akustik verändern. |
,
|
property( soundReflected) |
Anteil des vom Objekt zurückgeworfener Schalls; Diese Eigenschaft gilt für die Oberfläche/den Rand des Objekts und nicht für alle seine einzelnen Punkte. |
,
|
property( soundDamping) |
Anteil des von einem Punkt geschluckten Schalls |
,
|
property( kelvin) |
Temperatur in Kelvin |
,
|
property( electroMagnetic) |
eine elektromagnetische Strahlungsquelle; Die Werte sind: 1. Frequenz in Hertz ( ), 2. Amplitude in Candela cd, 3. Phasenverschiebung in Bogenmaß, 4. Dauer in Sekunden, r = bis (
), r = bis (
) Polarisierungsanteil (als Winkel in Bogenmaß) in der Dimensionsebene, welche von den jeweiligen Dimensionen und aufgespannt wird ( ist die Anzahl der Dimensionen). Die Winkelangabe erfolgt von der Achse in positiver Richtung. Ein elektromagnetische Welle wirkt additiv mit anderen elektromagnetische Wellen. |
, ,
,
,
|
property( periodBegin) |
Zeit in Sekunden ( ) ab dem Anfang des Gesamt-Multimediaobjekts, ab dem das Objekt dargestellt werden soll. Diese Eigenschaft sollte möglichst nahe an der Wurzel des Multimediaobjekt stehen. Mit der Eigenschaft kann beim Abspielen eines Multimediaobjekts bestimmt werden: in welcher Reihenfolge Teilobjekte auszuwerten sind oder/und bis wann ein Teilobjekt auszuwerten ist. |
,
|
property( periodEnd) |
Zeit in Sekunden ( ) ab dem Anfang des Gesamt-Multimediaobjekts, bis zu dem das Objekt dargestellt werden soll. Diese Eigenschaft sollte möglichst nahe an der Wurzel des Multimediaobjekts stehen und einer "periodBegin"-Eigenschaft folgen. Mit der Eigenschaft kann beim Abspielen eines Multimediaobjekts bestimmt werden: in welcher Reihenfolge Teilobjekte auszuwerten sind oder/und bis wann ein Teilobjekt vollständig auszuwerten ist. |
,
|
property( evaluationTime) |
Zeit die zum Auswerten eines Multimediaobjekts benötigt wird, bezogen auf ein Multimediaobjekt, welches nur einen Punkt enthält (die Angabe ist als vielfaches der Auswertungszeit für einen Punkt zu sehen). Mit dieser Eigenschaft kann zusammen mit den Eigenschaften "periodBegin" und "periodEnd" beim Abspielen eines Multimediaobjekts eine sinnvolle Auswertungsreihenfolge und die sinnvollen Auswertungszeitpunkte der Teilobjekte bestimmt werden. Diese Eigenschaft sollte direkt nach (bzw. unterhalb /innerhalb) "periodBegin" und "periodEnd" stehen. |
,
|
property( checksum) |
Es wird ein Checksumme beim komprimierten Abspeichern für das enthaltende Objekt generiert. Dabei gibt der erste Parameter die Art der Checksumme an. Der zweite Parameter gibt an, alle wieviel Bits eine Checksumme generiert werden soll, und der dritte Parameter, wieviel Bits die Checksumme haben soll. Der letzte Block der Checksummenblöcke wird nach dem Laden mit 0 aufgefüllt, so dass auch er die gewünschte Länge hat. Sind genug Bits zur Korrektur eines Fehlers vorhanden, wird eine Korrektur eines Fehlers beim Laden versucht (siehe Abschnitt 25.3.3 auf Seite ). |
, , ,  |
property( boundSize) |
Für das enthaltende Objekt wird beim komprimierten Abspeichern die Grenze/Größe in Bits vermerkt. Wenn beim Laden dann ein Fehler im Fib-Objekt auftritt, können die nachfolgenden Fib-Elemente immer noch geladen werden, da deren Anfang bekannt ist (siehe Abschnitt 25.3.3 auf Seite ). |
|
|
|
|
Table:
Mögliche Definitionsbereiche
Definitionsbereichname |
Beschreibung |
Definitionsbereich |
|
|
|
naturalNumberB(X) * S |
-Bit-Ganzzahl vorzeichenlos, die mit skliert werden |
|
integerB(X) * S |
-Bit-Ganzzahl mit Vorzeichen, die mit skliert werden |
|
naturalNumberB(32) |
32-Bit-Ganzzahl vorzeichenlos (der Skalierungsfaktor wird weggelassen) |
|
integerB(32) |
32-Bit-Ganzzahl mit Vorzeichen |
|
naturalNumber(X) * S |
Ganzzahlen von bis (vorzeichenlos), die mit skliert werden |
|
integer(X, Y) * S |
alle Ganzzahlen von bis , die mit skliert werden |
|
integerValues(
) * S |
alle angegebenen Ganzzahlen , die mit skliert werden |
|
naturalNumberUL() * S |
unbegrenzte positive Ganzzahlen, die mit skliert werden |
alle natürlichen Zahlen |
integerUL() * S |
unbegrenzte Ganzzahlen, die mit skliert werden |
alle Ganzzahlen |
real( ) |
Der Definitionsbereich sind Gleitkommazahlen. Eine Gleitkommazahl besteht aus zwei Ganzzahlfeldern, eines, das Erste, für den Exponent und eines, das Zweite, für die Mantisse . Die Gleitkommazahl ergibt sich dann zu . Die Definitionsbereiche und sind Definitionsbereiche für Ganzzahlen, wie oben definiert (z. B. integerB(8)). Dabei ist der Definitionsbereich, aus dem die Werte der Mantisse kommen und der Definitionsbereich, aus dem die Werte des Exponenten kommen. |
|
realValues( ) |
alle angegebenen Gleitkommazahlen |
 |
realUL() |
alle Gleitkommazahlen |
alle Ganzzahlen |
vector(
) |
Vektor mit Elementen, wobei das 'te Element den Definitionsbereich hat |
 |
vectorValues(
;
) |
Der Grunddefinitionsbereich sind Vektoren, die angegeben Vektoren stellen alle möglichen Vektoren dar. Dabei ist der Definitionsbereich des 'ten Vektorelements (soweit dieses keine Variable ist). Bei Variablen als Vektorelemente wird einfach der Variablenbezeichner weggelassen. |
für
; mit
 |
vectorOpenEnd(
) |
Dies ist der Definitionsbereich für Vektor mit oder mehr Elementen, wobei das 'te Element, für kleiner , den Definitionsbereich hat und sonst den Definitionsbereich . Dieser Definitionsbereich dient für Elemente, die Vektoren unterschiedlicher Größe enthalten können. Die Anzahl der Elemente des Vektors sollte durch das enthaltende Fib-Element festgelegt werden. |
 |
domainReference( Name.[Element]* ) |
Als Definitionsbereich wird der Definitionsbereich des Elements mit dem gegebenen Elementnamen genommen. Mit den Parametern kann ein entsprechender Unterdefinitionsbereich ausgewählt werden (also Beispielsweise für den ersten Unterdefinitionsbereich des dritten Unterdefinitionsbereichs des set-Elements oder
). Sollte kein Definitionsbereich für das Element mit dem existieren, wird der Standarddefinitionsbereich des Elements genommen. Sollte auch dieser Standarddefinitionsbereich nicht existieren wird der allgemeine Standarddefinitionsbereich genommen. Gibt es nicht den Unterdefinitionsbereich für , wird der letzte Unterdefinitionsbereich für genommen, der noch existiert. |
der ( Unter-)Definitionsbereich für das Element mit dem Definitionsbereichnamen |
defaultDomain( Domain ) |
Der angegebene Definitionsbereich wird nur verwendet, wenn es für das entsprechende Element bisher keinen anderen Definitionsbereich gibt. |
wenn für das entsprechende Element bisher kein anderer Definitionsbereich existiert |
|
|
|
Table:
Richtungswerte für Dimensionen
Name |
Wert |
Beschreibung |
none |
0 |
Kein Mapping eingestellt, bzw. es wird nirgendwohin gemappt. |
horizontal |
1 |
Die Dimension geht in die horizontale Richtung. Kleinere Werte sind links. |
vertikal |
2 |
Die Dimension geht in die vertikale Richtung. Kleinere Werte sind unten. |
depth |
3 |
Die Dimension geht in Richtung Tiefe. Kleinere Werte sind hinten. |
time |
4 |
Die Dimension ist zeitlich zu interpretieren. Kleinere Werte sind früher. |
anywhere |
16 |
Die Dimension kann in jede Richtung oder Dimension gemappt werden. |
Product Dimensions |
256 bis 511 |
Dimensionen, die produktspezifisch sind. Einzelne Hersteller können diese nutzen, ohne mit später definierten allgemeinen Dimensionen inkompatibel zu werden. |
|
Subsections
Next: Definitionsbereiche für Elemente
Up: Das root-Element
Previous: Multimediainformationen
Contents
Index
Betti Österholz
2013-02-13