|
Hauptseite - Welches System? - Hardware - Software - Emulatoren - |
Internet MausNet Programmieren Verweise Über |
Extension: .SEQ (low)
Dieses Format ist zwar recht komplex, bietet aber sehr gute Kompressionsraten für animierte Bilder und schnelle Dekompressionszeiten.
Header
1 WORD | Magic ($FEDB oder $FEDC) |
1 WORD | Versionsnummer |
1 LONG | Anzahl Frames |
1 WORD | Geschwindigkeit (Highbyte ist vblanks/Frame) |
118 BYTEs | reserviert |
Frame Offsets (für jeden Frame)
1 LONG | Offset der Daten für diesen Frame in Bytes (normalerweise unbenutzt) |
Frame Header (für jeden Frame)
1 WORD | Type (ignoriert?) |
1 WORD | Auflösung (immer 0) |
16 WORDs | Palette im ST-Format (siehe Palette) |
12 BYTEs | Dateiname (üblicherweise " . ") |
1 WORD | Farbanimations-Grenzen (unbenutzt) |
1 WORD | Farbanimations-Geschwindigkeit und Richtung (unbenutzt) |
1 WORD | Anzahl der Farbschritte (unbenutzt) |
1 WORD | X-Offset für diesen Frame (0-319) |
1 WORD | Y-Offset für diesen Frame (0-199) |
1 WORD | Breite des Frames in Pixel (kann 0 sein, siehe unten) |
1 WORD | Höhe des Frames in Pixel (kann 0 sein, siehe unten) |
1 BYTE | Operation (0=copy, 1=exclusiv oder) |
1 BYTE | Speichermethode (0=unkomprimiert, 1=komprimiert) |
1 LONG | Datengröße in Bytes (sind die Daten komprimiert, ist es die Größe der komprimierten Daten vor der Dekomprimierung. |
Bilddaten
Frames sind differenzkomprimiert, das heißt, nur der Unterschied von einem Frame zum nächsten ist gespeichert. Auf dem ST sind die .SEQ Dateien Animationen in der niedrigen ST-Auflösung, wobei jedes Bild einem ST-Bildschirm entspricht. Das heißt, eine entpackte Sequenz beträgt n * 320 * 200 Pixel, wo n im SEQ-Header angegeben ist.
Da nur die Unterschiede gespeichert sind, sind die Frames (mit Ausnahme des ersten Bildes) normalerweise kleiner als 320*200. Gespeichert wird das kleinste Rechteck, das die Unterschiede zwischen den Bildern enthält. Der X und Y-Offset gibt die obere linke Ecke dieses Rechtecks innerhalb des Bildes an und die Breite und Höhe geben die Breite und Höhe des Rechtecks an.
Zusätzlich kann jedes dieser Rechtecke auf fünf verschiedene Arten gespeichert werden. Für jede dieser Arten wird von einem vollem Bild im letzten Frame ausgegangen.
Für einen Frame wird von den oben beschriebenen Methoden diejenige benutzt, die den geringsten Speicherverbrauch hat.
Kompressionsalgorithmus:
Das Kompressionsverfahren ähnelt dem im Tiny-Format verwendeten, ist aber nicht ganz so effektiv.
Bedeutung des Kontroll WORDs:
Für ein gegebenes Kontrollword x gilt:
x < 0 | Der Absolutbetrag von x gibt an, wieviel einzelne WORDs aus der Datensektion zu übernehmen sind (von 1 bis 32767). |
x > 0 | X gibt an, wie oft das nächste WORD aus der Datensektion wiederholt werden soll (von 1 bis 32767). |
<b>Bem.:b> Ein Kontrollword von 0 ist möglich, aber hat keine Bedeutung.
Format der entpackten Daten:
Die entpackten Daten ergeben keine einfache Bitmap eines Bildschirmspeichers. Stattdessen sind die vier Bitplanes getrennt und Daten jeder Bitplane sind vertikal statt horizontal angeordnet. (Dies führt zu einer besseren Kompressionsrate)
Zur Verdeutlichung ist hier die Reihenfolge der Daten eines kompletten Bildschirms aufgeführt:
bitplane 0, word 0, scanline 0 bitplane 0, word 0, scanline 1 ... bitplane 0, word 0, scanline 199 bitplane 0, word 1, scanline 0 bitplane 0, word 1, scanline 1 ... bitplane 0, word 1, scanline 199 ... bitplane 0, word 79, scanline 199 bitplane 1, word 0, scanline 0 ... bitplane 3, word 79, scanline 199
<b>Achtung:b> Die Daten beschreiben üblicherweise nicht einen kompletten Bildschirm, sondern nur einen "veränderten Bereich", dessen Größe in dem Frameheader angegeben ist.
English version not yet available. |