Der optionale Teil ist der letzte Teil eines root-Elements. Er sollte für die Darstellung des Multimediaobjekts keine wichtige Informationen enthalten, so dass er beim Abspeichern ganz weggelassen werden kann. Auf diese Weise kann Speicherplatz gespart werden.
Die Länge des optionale Teil ergibt sich aus der Differenz zwischen seinem Anfangsbyte und dem Ende des root-Elements (zum Offset siehe Überabschnitt 25.2 ab Seite ).
Eingeleitet wird der Optionale Teil durch eine 16 Bit natürliche Zahl , welche die Kompressionsart des optionale Teils angibt. Mögliche Werte für die Kompressionsart sind in Tabelle 12 aufgeführt. Der restliche optionale Teil wird dann vollständig mit dem angegebenen Verfahren komprimiert.
Der dekomprimierte optionale Teil besteht aus einer Liste von Key, Value-Paaren. Sie wird eingeleitet durch eine 64 Bit natürliche Zahl , welche die Anzahl der Elemente in der Liste angibt. Als zweiter Parameter folgt eine 16 Bit natürliche Zahl, welche die Kodierungsart bestimmt. Mögliche Werte für die Kodierung sind in Tabelle 13 aufgeführt. Dabei sollte UTF-8 als Standardkodierung angesehen werden und andere Kodierungen nur gewählt werden, wenn UTF-8 nicht mehr ausreichend ist. Danach folgt die Liste mit den Paaren/ Elementen.
Jedes Listenelement (-Paar) enthält zwei nullterminierte Zeichenketten in der angegeben Kodierung. Die erste Zeichenkette ist dabei der Schlüssel/ Key des Elements und die zweite der Wert/ Value.
|
Aus dem Haupt-Fib-Objekt werden alle Texte aus den Anmerkungen (siehe Abschnitt 25.3.5 auf Seite ) in den optionalen Teil verlagert. Die Anmerkungen enthalten auch Schlüssel (), Wert ()-Paare. Jedem dieser Schlüssel, Wert Paare aus den Anmerkungen wird eine natürliche Zahl zugeordnet (beginnend mit 0). Im optionalen Teil wird dann für das ausgelagerte Paar ein eigener Listeneintrag generiert. Dabei ist der Schlüssel des Listeneintrags "@" gefolgt von der der Nummer der Anmerkung , dann folgt wieder ein "@" und danach der ursprünglich Schlüssel () der Anmerkung. Der Wert des generierten Listeneintrag ist gleich dem Wert aus der Anmerkung. Wenn also das Schlüssel, Wert Paar in der 'ten Anmerkung ist, ist der Eintrag im optionalen Teil dafür .
Beispiel: Die 2. Anmerkung ist: "c( "autor","ich", Obj)", der daraus generierte Listeneintrag im optionalen Teil ist: "( "@2@autor","ich")".
Ausgelagerte Texte sollten am Ende des optionalen Teils stehen.