|
Hauptseite - Welches System? - Hardware - Software - Emulatoren - |
Internet MausNet Programmieren Verweise Über |
Extension: .DLT (+ .PI?)
Das Cybermate Animations System benutzt eine Differenzkomprimierung zur Speicherung der Animationssequenzen. Die Differenzkomprimierung ist eine einfache Technik, bei der zwei Frames verglichen werden und nur die Unterschiede gespeichert werden.
Das Cybermate Delta Format speichert den ersten Frame der Animation als DEGAS Bild und der Rest wird als eine Serie von Veränderungen in einer .DLT Datei gespeichert.
Jeder Frame wird als eine Serie von Veränderungen gespeichert, wobei jeder Eintrag aus einem WORD mit einem Wert von 0 bis 31996 als Offset in den 32000-Byte Bildschirmspeicher und dann ein LONG Wert, der mit Exklusiv-Oder an der angegebenen Stelle mit Bildschirmspeicher verknüpft wird. Dies ändert den bisherigen LONG im Frame zu dem neuen Wert des neuen Frames. Diese EOR Technik erlaubt es die Animation auch rückwärts abzuspielen.
Jedem Frame geht ein WORD voraus, das die Anzahl der Deltas angibt. Nach dieser Anzahl Deltas folgt wieder ein neuer Deltazähler und der Prozeß wiederholt sich.
Die .DLT Datei hat folgenden damit Aufbau:
1 WORD | Anzahl der Deltas in diesem Frame. Eine 0 kenzeichnet das Ende
der Datei. Frames ohne Delta (der gleiche Frame wie der
Vorgänger) sind ein Spezialfall und haben einen Dummyoffset und
einem LONG EOR Wert von 0 in den Deltadaten.
|
Die folgende Struktur wird so oft wiederholt, wie der Deltazähler für diesen Frame angibt.
1 WORD | Offset in den 32000-Byte Bildschirmspeicher für die
Deltadaten. Die Zahl ist ein Vielfaches von 4 im
Bereich 0 bis 31996. Sie ist als ein Offset vom Start des
Bildschirmspeichers zu benutzen, um den folgenden LONG
mittels EOR mit den Bildschirmspeicher zu verknüpfen.
|
1 LONG | Deltadaten. Dieser Wert wird mittels Exklusiv-Oder mit den
Bildschirmdaten an der Position [Bildschirmspeicher + offset]
verknüpft, um den Wert des vorherigen Frames in den des neuen
Frames zu ändern.
|
Nachdem alle Deltas eines Frames bearbeitet wurden, wird die Anzahl der Deltas für den nächsten Frame gelsen und mit dem Vorgang fortgefahren, bis sämtliche Frames bearbeitet wurden (deltazähler = 0).
English version not yet available. |