MS Windows-Standard .bmpEs werden zwei Kompressionsformate beschrieben, die im Header spezifiziert werden. In der Regel verwendet man Farbtabellen (außer beim True-Color-Mode), in welchem die verwendeten Farben aufgelistet sind. Der Standard verlangt, dass dieses nach Häufigkeit des Auftretens der einzelnen Farbpixels geschieht; insbesondere sollte eine vorhandene Hintergrundfarbe den Index 0 erhalten. Die Pixel werden zeilenweise von links nach rechts geschrieben, wobei mit der letzten Zeile (unterste im zu komprimierenden Bild) angefangen wird. 4 Bit-RLEHier besteht die Kompressionsfolge aus jeweils zwei Bytes, von denen das erste die Anzahl von Pixeln beschreibt, während das zweite Pixelpaare beschreibt, d.h. die oberen bzw. unteren Halbbytes à 4 Bits beschreiben jeweils ein anderes Pixel. Wenn die Anzahl der Pixel größer ist als null, werden diese Pixel alternierend übernommen. Ist die Anzahl null, so gilt dieses als Escape-Zeichen, wobei das nächste Zeichen die folgenden Bedeutungen haben kann:
Das folgende Beispiel (http://www.rasip.fer.hr/research/compress/algorithms/fund/rl/) soll die verschiedenen RLE-Techniken, die hier offenbar eingesetzt werden, verdeutlichen:
Man beachte, dass die Koordinaten-Verschiebung vor allem für Bilder geeignet ist! Auch können hiermit wohl Graphiken, die vor allem aus einer Hintergrundfarbe und wenigen "Strichen" auf dieser Hintergrundfarbe bestehen, recht gut komprimiert werden. Allerdings muss das Kompressionsprogramm sicherlich eine ziemlich Intelligenz besitzen, um dieses ausnutzen zu können. 8 Bit-RLEDieses Verfahren arbeit völlig analog dem 4 Bit-RLE, außer dass jetzt einer Anzahl ein einzelnes Byte folgt, welches ein Pixel entsprechend einer Farbtabelle repräsentiert. Auch bedeuten die Escape-Folgen das gleiche wie oben, nur dass jetzt die Anzahl der Bytes angegeben wird, die als Pixel übernommen werden. Auch hier muss evtl. ein 0-Byte angehängt werden, da die Zeiger immer auf 16-Bit-Grenzen verweisen müssen. Das folgende Beispiel verdeutlicht diese Technik.
|