HAM8

HAM8

HAM (Hold-And-Modify) ist ein Anzeigemodus der Grafik-Chipsätze der Amiga-Plattform, um 12-Bit- und 18-Bit-Bilder mit nur 6 bzw. 8 Bits pro Pixel anzuzeigen. Dabei wird eine spezielle Hardware-implementierte Datenkompression verwendet, um Speicherbandbreite zu sparen.

Falls in einer IFF-Bilddatei ein CAMG-Chunk vorhanden ist, kann dieser Modus am 11. Bit identifiziert werden.

Beim HAM-Modus werden zwei Varianten unterschieden.

  • HAM- oder HAM6-Bilder können 4096 Farben darstellen und benutzen dafür 6 Bit pro Pixel und eine Palette von 16 Farben.
  • Der 8-Bit-HAM8-Modus wurde mit dem Amiga 4000 und dem Amiga 1200 eingeführt und bietet mit nur 8 Bit pro Pixel und einer Basispalette von 64 Farben eine sehr gute fotoähnliche Bildqualität. In diesem Modus können fast so viele Farben aus dem 24-Bit-Spektrum dargestellt werden, wie in das Chip-RAM passen (minus die erste Pixelspalte), und was die Bildauflösung ermöglicht.

Die Farbe eines Pixels im HAM-Modus kann jede Farbe der Farbpalette sein, der 12-Bit-Palette bei HAM6 bzw. der 24-Bit-Palette bei HAM8. Oder die Farbe des direkt links daneben liegenden Pixels wird übernommen, wobei eine der drei Farbkomponenten (Rot, Grün, Blau) auf einen neuen Wert gesetzt wird. An der linken Bildseite wird die Randfarbe übernommen (Farbindex 0 der Farbpalette. Anm.: Die Videohardware beginnt damit nicht beim ersten Pixel einer Plane, sondern erst beim ersten sichtbaren Pixel (Stichwort DIsplayWindowStaRT register $dff08e), was bei Hardwarescrolling (virtual bzw. übergroßer Screen) einen (unschönen) Unterschied macht).

Dieses Verfahren harmoniert mit den Eigenschaften von Videosignalen (FBAS), so dass die verlustbehaftete Datenkompression nicht zu Qualitätsminderung führt.


In HAM-Bilddateien sind die Pixeldaten im BODY-Chunk als Code gespeichert, welcher in den Modus und die restlichen Bits aufgeteilt wird. Die Kodierung der Pixel entspricht dem von der Videohardware verwendeten Format.

Modus Bedeutung
00 Index in der Farbpalette
01 Änderung der Blaukomponente
10 Änderung der Rotkomponente
11 Änderung der Grünkomponente

Sofern ein Pixel nicht eine Farbe der Palette darstellt (Modus 00), kann nur der neue Wert eines der drei RGB-Werte angegeben werden. Die anderen beiden Werte sind die gleichen wie im Pixel zuvor. Wenn der Pixel der erste einer Bildzeile ist, wird der vorherige Pixel als RGB(0,0,0) angenommen (anders als von der Videohardware s. o.).


Format von Modus und Datenbits eines Pixels im HAM6-Modus:

543210
00wxyz - Farbindex wxyz in eine 16 Einträge lange Basisfarbenpalette
01wxyz - Behalte den Farbwert des vorherigen Pixels, aber setze die (obersten) 4 Bit von Blau auf wxyz
10wxyz - Behalte den Farbwert des vorherigen Pixels, aber setze die (obersten) 4 Bit von Rot auf wxyz
11wxyz - Behalte den Farbwert des vorherigen Pixels, aber setze die (obersten) 4 Bit von Grün auf wxyz

Ein HAM-Bild kann nicht direkt in ein Bild mit 256 oder weniger Farben dekodiert werden, ohne vorher eine Reduktion der Farben durchzuführen. Um die volle Qualität zu erhalten, benötigt man mindestens ein 12-Bit-Bild.

Will man ein Bild, das in 256 oder mehr Farben vorliegt, in ein HAM-Bild konvertieren, sucht man zunächst die für dieses Bild optimale Basispalette, mit der schon möglichst viele Punkte des Bildes direkt oder nur mit geringen Abweichungen dargestellt werden können. Wenn die Basispalette festliegt, geht man zeilenweise durch das Bild und optimiert für jedes Pixel, ob es am besten durch eine der Basispalettenfarben dargestellt werden kann oder noch besser durch eine HAM-Modifikation des vorangehenden Pixels (3 Möglichkeiten: eine der 3 Farbkomponenten auf den gewünschten, wahren Wert setzen). Die Bewertung erfolgt dabei durch Abstandsbildung (im 3D-Farbraum) zwischen dem Bild-Pixel und dem jeweiligen Basis- oder HAM-Kandidaten. Dies gilt so allgemein sowohl für HAM6 als auch für HAM8.

Die Anzahl der Datenbits ist 4 für Standard-HAM6 und 6 für HAM8. Die Anzahl der Bitplanes im BMHD-Chunk ist 6 bzw. 8. Wenn ein HAM-Bild als 24-Bit-Bild angezeigt werden soll, sollten die Datenbits (4 bzw. 6) auf 8 Bit erweitert werden. Der Maximalwert sollte, bei 8 Bit pro RGB-Kanal, zu 255 umgewandelt werden.


Format von Modus und Datenbits eines Pixels im HAM8-Modus:

76543210
00uvwxyz - Farbindex uvwxyz in eine 64 Einträge lange Basisfarbenpalette
01uvwxyz - Behalte den Farbwert des vorherigen Pixels, aber setze die obersten 6 Bit von Blau auf uvwxyz
10uvwxyz - Behalte den Farbwert des vorherigen Pixels, aber setze die obersten 6 Bit von Rot auf uvwxyz
11uvwxyz - Behalte den Farbwert des vorherigen Pixels, aber setze die obersten 6 Bit von Grün auf uvwxyz

HAM8-Bilder müssen in 24-Bit-Bilder umgewandelt werden, um auf Nicht-Amiga-Systemen die volle Bildqualität beizubehalten.

Um im HAM8-Modus wirklich alle Farben der 24-Bit-Palette darstellen zu können, muss man die 64 Farben der Basispalette so vorbelegen, dass die 64 Kombinationsmöglichkeiten der untersten 2 Bit aller Farbkomponenten genau abgedeckt werden. Dann kann man mittels des HAM-Mechanismus von diesen Basisfarben aus alle Farben der 24-Bit-Palette erreichen. Begrenzt wird die gleichzeitig darstellbare Zahl von Farben nur durch die Größe des Chip-RAMs. Letztere beträgt 2 MB, so dass man auf einem HAM8-Bild ca. 2 Millionen verschiedene Farben darstellen kann. (Vom Chip-RAM gehen diverse andere Beträge ab, für die Workbench und diverse Datenstrukturen des Betriebssystems, die im Chip-RAM stehen müssen.)


Ausblick

Es war lange in der Diskussion, diesen HAM-Modus, der auf der RGB-Farbdarstellung beruht, durch einen entsprechenden Modus aufbauend auf dem HSV-Farbraum (Hue, Saturation, Value) zu ersetzen, wovon man sich noch höhere Kompressionsmöglichkeiten und/oder noch bessere Darstellungsqualität versprach. Der HAM-Modus ist jedoch auf aktuellen Computern aufgrund der gefallenen RAM-Preise und der schnelleren Grafik-Hardware nicht mehr notwendig, so dass diese Überlegungen bisher zu keiner praktischen Implementierung geführt haben.

Siehe auch


Wikimedia Foundation.

Игры ⚽ Нужен реферат?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • HAM8 — …   Википедия

  • Hold-And-Modify Modus — HAM (Hold And Modify) ist ein Anzeigemodus der Grafik Chipsätze der Amiga Plattform, um 12 Bit und 18 Bit Bilder mit nur 6 bzw. 8 Bits pro Pixel anzuzeigen. Dabei wird eine spezielle Hardware implementierte Datenkompression verwendet, um… …   Deutsch Wikipedia

  • Hold-And-Modify-Modus — Der Hold And Modify Modus (HAM Modus) ist ein Anzeigemodus der Grafik Chipsätze der Amiga Plattform, um 12 Bit und 18 Bit Bilder mit nur 6 bzw. 8 Bits pro Pixel anzuzeigen. Dabei wird eine spezielle hardwareimplementierte Datenkompression… …   Deutsch Wikipedia

  • Amiga Hold-and-Modify — even though 12 bits per pixel would normally be needed.HAM can be interpreted as a lossy compression technique, where 12 bit color information is stored in 6 bits of RAM (with reduced quality) and is decompressed through hardware in realtime… …   Wikipedia

  • HAM (Hold and Modify) — Saltar a navegación, búsqueda Es un tipo de tratamiento gráfico que soporta directamente el hardware de los ordenadores Amiga desde el principio y denota una alta calidad de sus chips gráficos. Su principal característica es que permite… …   Wikipedia Español

  • Hold and Modify — HAM (Hold and Modify) es un modo de gráfico de los ordenadores Commodore Amiga. Es un tipo de tratamiento gráfico que soporta directamente el hardware de los ordenadores Amiga desde el principio y denota una alta calidad de sus chips gráficos. Su …   Wikipedia Español

  • AGA — (Advanced Graphics Architecture)  название графического чипсета, применяемого в третьем поколении классических моделей компьютера Amiga (второе поколение использовало чипсет ECS). Содержание 1 История 2 Описание 3 …   Википедия

  • Hold and modify — (дословно с англ.  «Придержи и Измени», более известный как HAM)  уникальный видео режим, доступный на персональных компьютерах семейства Amiga. Работает по принципу запоминания (удержания) цвета последнего выводимого пиксела, с… …   Википедия

  • Interchange File Format — Das Interchange File Format (IFF) wurde 1985 von der Firma Electronic Arts als Standard Dateiformat in ihren Produkten eingeführt. Es handelt sich dabei eigentlich um eine ganze Familie von Dateiformaten, die sich durch die gemeinsame TLV… …   Deutsch Wikipedia

  • ILBM — is a subtype of the Interchange File Format (IFF) used for storing picture data. ILBM stands for InterLeaved BitMap which refers to the way the pictures are stored. The image data is stored as a varying number of bitplanes, each storing one bit… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”