Wichtige Subchunks einer AVI-Datei


next up gif
Next: Datenstrukturen für AVI-interne Up: AVI im speziellen Previous: AVI im speziellen

Wichtige Subchunks einer AVI-Datei

Genauer besteht eine 'hdrl' Liste aus zwei Subchunks. Der erste hat den ID 'avih' und definiert globale Eigenschaften der AVI-Datei, der zweite ist seinerseits ein LIST-Chunk mit dem List Type 'strl' (Stream List), der für jeden Stream mindestens zwei Chunks enthält: den 'strh' (Stream Header) und den 'strf' (Stream Format) Chunk. Optional kann ein 'strd' (Stream Data) Chunk folgen. Dieser dient dazu, zusätzliche Daten zu speichern, er kann aber auch bei installierbarem Komprimierer/Dekomprimierer als Initialisierungswert dienen und dabei uninterpretiert an diese übergeben werden.

Beispiel: Subchunks im Überblick

RIFF ('AVI '
      LIST ('hdrl'
            'avih'([Main AVI Header])
             LIST ('strl'
                   'strh' ([Stream Header])
                   'strf' ([Stream Format])
                   'strd' (zusaetzliche Header)
                    )
           )
      LIST ('movi' 
                   (SubChunk: LIST ('rec '
                                    SubChunk1
                                    SubChunk2
                                     )
                    )
             ['idx1' (AVIIndex)]
           )
     )
Im 'strh'-Chunk sind allgemeine Informationen zum Stream gespeichert, so zum Beispiel, um welche Art von Daten (Bild oder Ton) es sich handelt, welcher Kompressor benutzt oder mit welcher Rate digitalisiert wurde. Im 'strf'-Chunk ist dann das genaue Format des Streams gespeichert. Für Bilder wird hier zum Beispiel eine Struktur vom Typ TBITMAPINFO, also des Typs, in dem unter Windows geräteunabhängige Bitmaps (D(evice)I(ndependet)B(itmap)) gespeichert werden, enthalten sein. Für Ton enthält der 'strf'-Chunk eine Struktur vom Typ WAVEFORMATEX, einer Erweiterung des Typs WAVEFORMAT, des Typs, in dem unter Windows PCM Waveform-Daten gespeichert werden. Die der 'strl'-Liste folgenden Chunks in der 'hdrl' Liste sind nicht genauer spezifiziert. Hier steht üblicherweise ein 'JUNK'-Chunk, dessen Länge etwa so gewählt werden kann, daß die echten Bild-bzw. Tondaten (ohne die Header) bei einem Vielfachen von zwei Kbyte beginnen. Das bringt beim Lesen von CD-ROM diverse Vorteile mit sich.

Nach den Headern folgen im 'movi'-Chunk die eigentlichen Bild- und Tondaten. Diese können Stream für Stream als Subchunks der 'movi'-Liste oder aber ineinander verschachtelt gespeichert sein. Im ersten Fall existiert pro Stream ein Subchunk, im zweiten Fall pro Schachtelung ein LIST-Chunk mit dem Form Typ 'rec '.

Die 'movi'-Liste speichert dann letztlich die (eventuell komprimierten) Daten für die einzelnen Bilder des Videos, sowie den (ebenfalls möglicherweise komprimierten) Ton. Nach den eigentlichen Daten kann, je nach Bedarf, der 'idx1' Chunk eingesetzt werden.


next up gif
Next: Datenstrukturen für AVI-interne Up: AVI im speziellen Previous: AVI im speziellen



Alexander Weiß
Tue May 2 13:54:32 MET DST 1995