|
Hauptseite - Welches System? - Hardware - Software - Emulatoren - |
Internet MausNet Programmieren Verweise Über |
Extension: .SPC (low)
Header
1 WORD | Flag ($5350 bzw. "SP") |
1 WORD | reserviert für zukünftige Erweiterungen (immer 0) |
1 LONG | Länge der Datenbitmap |
1 LONG | Länge der Farbpaletten |
Bilddaten und Paletten
komprimiert, unkomprimiert siehe Spectrum 512
Kompression
Der Algorithmus ist ein modifizierter Lauflängenalgorithmus (RLE), vergleichbar mit DEGAS komprimiert und Tiny. Die Daten sind als Records gespeichert, die aus einem Header-Byte gefolgt von einem oder meheren Bytes bestehen. Die Bedeutung der Header-Bytes ist folgende:
Für ein gegebenes Header-Byte x:
0<=x<=127 | Verwende die nächsten x+1 Bytes |
-128<=x<=-1 | Wiederhole das nächste Byte -x+2 mal |
Die Daten erscheinen in folgender Reihenfolge:
Die Dekomprimierung endet, wenn 31840 Databytes entpackt wurden.
Palettenkomprimierung:
Jede 16-Word Palette ist separat komprimiert. Für jede Zeile gibt es drei Paletten (597 insgesamt). Die Colormap ist als Sequenz von Records gespeichert. Jeder Record beginnt mit einem 1-Word-Vektor, der für jeden der 16 Paletten-Einträge angibt, ob er in den Daten enthalten ist (1=enthalten, 0=nicht enthalten). Ist ein Paletteneintrag nicht vorhanden, hat er den Wert 0 (schwarz). Das niederwertigste Bit des Palettenvektors steht für den Paletteneintrag 0, das höchstwertigste Bit steht für den Paletteneintrag 15. Bit 15 muß 0 sein, da Spectrum 512 Paletteneintrag 15 nicht benutzt. Bit 0 sollte auch 0 sein, da Spectrum 512 den Hintergrund immer schwarz malt. Die Words für die Paletteneinträge, die im Bitvektor gesetzt sind, folgen in der Reihenfolge (0-15).
<b>Achtung:b> Shamus McBride hat bei der Untersuchung von
Bilder folgendes festgestellt:
"... [The Picture Formats List] says bit 15 of the color map
vector must be zero. I've encountered quite a few files where [bit 15]
is set (with no associated palette entry)..."
English version not yet available. |