Webdesign

von Prof. Jürgen Plate

Grundlagen Bildverarbeitung

Bilddaten

Auf den folgenden Seiten erfahren Sie etwas über Farbmodelle in der Computergraphik sowie über die Grafikformate.

Grundlegendes

Rasterformate

Grundsätzlich sind Bilder, die man auf dem Monitor sieht, in einzelne Bildpunkte unterteilt - sogenannte Pixel (Picture Elements). Die Auflösung wird bestimmt durch die Anzahl der Pixel, die ein Bild pro Flächeneinheit enthält. Je höher die Auflösung, desto besser die Qualität. Als Bit Map bezeichnet man die Speicherung eines Bildes auf ähnliche Art wie sie im Bildwiederholspeicher des Computers abgelegt werden.

Vorteile:

Nachteile:

In früheren Versionen dieses Skripts habe ich Bildschirm und Drucker in einen Topf geworfen. Dazu schrieb mir aber Rüdiger Heierhoff von der Akademie für interaktive Medien und Kommunikation GmbH eine interessante E-Mail, die ich hier weitergeben will:
... Meiner Meinung nach geben Drucker diese Daten eben nicht als Pixel aus, sondern als Punkt (Dot). Wie Sie weiter unten erläutern, wird z. B. bei Echtfarbenbildern (24-bit) jedes "Pixel ... durch drei Bytes repräsentiert (z. B. RGB)..."
Anders ausgedrückt, EIN Pixel enthält die Farbinformationen für Cyan, Magenta und Gelb (CMY). Um diese Informationen darzustellen, benötigt ein Farbdrucker mindestens DREI Punkte. Praktische Konsequenz ist (grob gesagt), das die effektiv nutzbare Auflösung eines 600 dpi Bildes eigentlich nur 200 dpi beträgt. Dazu kommt noch die Rasterfrequenz mit der der Drucker das Druckbild erzeugt etc.(s.a. Baufeldt/Rösner/Scheuermann/Walk: Informationen übertragen und drucken, Lehr-und Arbeitsbuch für das Berufsfeld Drucktechnik; Verlag Beruf + Schule, Itzehoe 1977 und 1998).
Dazu ist es wichtig zu verstehen, dass die gespeicherte elektronische Bilddatei eigentlich keine Längenausdehnung besitzt, im Gegensatz zum gedruckten Bild. Die Angabe der Auflösung macht daher immer nur dann Sinn, wenn es um die Ausgabe z.B. auf einen Drucker geht (X cm Breite mal Y cm Höhe bei Z dpi). Für die Bildschirmausgabe reicht in der Regel die Angabe der BildmaŠe in Pixeln (X Pixel Breite mal Y Pixel Höhe).
In der Fachliteratur wird übrigens dem von mir angedeuteten Umstand insofern Rechnung getragen, als es für Pixel pro Inch und Punkte pro Inch entsprechende Bezeichnungen gibt: ppi (Pixel pro Inch) bzw. dpi (Punkte pro Inch), wobei in der Regel jedoch für beide Bezeichnungen dpi benutzt wird.

Vektorformate

Diese Formate zur Speicherung von Daten enthalten eine mathematische Beschreibung einzelner Objekte eines Bildes (z. B. Linien, Kreise, Polygone). Im einfachsten Fall kann beispielsweise eine Linie beschrieben werden durch den Startpunkt, eine Richtung sowie die Länge.

Vorteile:

Nachteile:

Monochrome Bilder

Graustufen-Bilder

Farbbilder (8 Bit)

Echtfarbenbilder (24 Bit)

Farbdarstellung

Farbensehen beim Menschen

Der Abschnitt über Farbmodelle erklärt zuerst, wie das Farbensehen beim Menschen zustande kommt, bevor auf wichtige Farbmodelle näher eingegangen wird. Im einzelnen sind dies das RGB-Modell, das CMY-Modell und das YIQ-Modell.

Licht ist elektromagnetische Strahlung und das für den Menschen sichtbare Spektrum ist der Wellenlängenbereich von 400 nm (Violett) bis 700 nm (Rot). Farben sind ein grundlegender Bestandteil unseres Lebens. Das Farbempfinden ist bei jedem Menschen unterschiedlich.

Sichtbares Licht ist ein ganz kleiner Teil des Wellenspektrums. Je nach Länge der Wellen in diesen Spektrum erscheint ein Lichtstrahl in einer bestimmten Farbe. Ein Lichtstrahl mit einer Wellenlänge von 700 nm erscheint rot, ein Lichtrahl mit einer Wellenlänge von ca 500 nm erscheint blau. So entstehen die Farben. Wenn ein weißer Lichtstrahl (ein Gemisch aller Wellenlängen) auf eine Fläche prallt, die alle Wellenlängen außer Rot absorbiert, dann erscheint diese Fläche rot.

Für das Farbensehen beim Menschen sind bestimmte Sehzellen, die sogenannten Zapfen zuständig. Es gibt drei verschiedene Sorten von Zapfen in der Netzhaut, die jeweils mit einem anderen lichtempfindlichen Farbstoff ausgestattet sind. Ein reines Licht von 400 nm Wellenlänge erregt nur den 'Blaurezeptor' unter den Zapfen. Ein Licht der Wellenlänge 450 nm erregt den 'Blaurezeptor' stark und den Grünrezeptor sehr schwach. Licht von 500 nm Wellenlänge spricht alle drei Zapfensorten an. Die einzelnen Farbeindrücke werden also durch unterschiedliche Erregungsstärken der einzelnen Zapfensorten ausgelöst. Gleiche Erregung aller Zapfen führt zum Eindruck ,,weiß``. Es genügen also drei Grundfarben, um als deren Mischung alle Farben darzustellen.

Betrachtet man Farben nur im Hinblick auf ihren Farbton und nicht auf Helligkeit und Sättigung, so liegt die Wellenlänge zwischen zwei gerade noch als unterschiedlich zu erkennende Farben zwischen 2 nm und 10 nm, je nachdem aus welchem Wellenlängenbereich die Farben stammen. Zur Codierung einer Farbe sind so 3 x 8 = 24 Bit ausreichend. Das folgende Diagramm zeigt die Spektren der (reinen) Grundfarben, die man addieren kann, um alle sichtbaren Farben darzustellen. Ein negativer Wert bedeutet dabei, daß die entsprechende Farbe nicht exakt darstellbar ist.

Um alle Farben darstellen zu können, muß man von den Grundfarben abgehen und 'nicht-reine' Farben verwenden. 1931 definierte die CIE drei Standard-Primärfarben, (X,Y,Z). Die Primärfarbe Y ist dabei an die Helligkeitsempfindlichkeit des menschlichen Auges angepaßt

Farb-Kontraste

Farb-Kontraste sind besonders wichtig, wenn mit farbiger Schrift auf farbigem Hintergrund gearbeitet wird, denn für die Lesbarkeit des Textes ist nicht allein die Schriftgröße entscheidend.

Grundfarben-Kontrast

Die "klassischen" Grundfarben Blau, Gelb und Rot bilden untereinander einen starken Farbkontrast.

Hell-Dunkel-Kontrast

Hier handelt es sich um die gleiche Farbe, jeweils als sehr helle oder sehr dunkle Nuance.

Komplementär-Kontrast

Die komplementären Farben liegen sich im Farbkreis gegenüber: Rot - Grün, Gelb - Lila, Orange - Blau.

Qualitätskontrast

Farbqualität bedeutet die Intensität einer Farbe zwischen Reinheit und Trübung.

Quantitätskontrast

Mengenverhältnis von Farben zueinander (in der Fläche).

Simultan-Kontrast

Dieselbe Farbe wirkt auf unterschiedlichem Hintergrund verschieden.

Farb-Perspektive

Nicht nur durch Linien, auch mit Farben läßt sich eine räumliche Wirkung erreichen.

Dominante Farben

Einige Farben drängen sich mehr als andere in den Vordergrund. Ein Beispiel dafür sind die Signal-Farben Rot oder Orange.
Helle Farben treten in dunkler Umgebung in den Hintergrund. Auf der anderen Seite treten dunklere Farben vor hellem Hintergrund hervor.

Luftperspektive

Man kennt es aus der Natur oder aus Gemählden: wenn man in die Ferne schaut, wird die Landschaft zum Horizont hin immer bläulicher. Diesen Effekt kann man ausnutzen, um Tiefe in einem Bild zu erreichen.

Farb-Wirkung

Auch auf die Wirkung der Farbwahl auf den Betrachter sollte man achten, damit das Erscheinungsbild der Webseiten nicht deren Inhalt widerspricht. Seriöse Firmen meiden beispielsweise knallige Farben. Die Wirkung von Farben ist jedoch kein allgemeingültiges Gesetz, und wird nicht von jedem Betrachter gleich empfunden.

Langes Lesen ermüdet, Bildschirmarbeit sogar noch mehr. Ziel des Webdesign soll sein, die Augenbelastung zu vermindern. Die höchste Belastung entsteht durch weißes Licht. Auch warme Farben belasten uns mehr als kalte Farben. Am geringsten belasten uns Farben im Bereich Laubgrün bis Gelbgrün.

Farbwahrnehmung erzeugt beim Menschen auch bestimmte psychische Empfindungen:

Warme Farben

Als "warm" gilt die Gelb-Orange-Rot Palette.
  • Rot: Aufreizend, beunruhigend, nah; warme Farbtemperaturwirkung
  • Gelb: Anregend, nah; sehr warme Temperaturwirkung
Diese Farben werden häufig verwendet, wenn Gefühle ausgedrückt werden, sie haben eine eher anregende Wirkung.

Kalte Farben

Als "kühl" werden Blau-Grün-Töne empfunden.
  • Grün: Beruhigend, entfernt; neutrale bis kalte Temperaturwirkung
  • Blau: Beruhigend, entfernt; sehr kalte Temperaturwirkung

Neutrale Farben

Weiß, Grau und Schwarz wirken am sachlichsten, aber manchmal auch etwas langweilig.

Farbmodelle

Man unterscheidet physikalisch-technische und wahrnehmungsorientierte Farbmodelle. Die wahrnehmungsorientierten Farbmodelle wie z. B. das HLS-Modell sind mehr auf das Wahrnehmungsempfinden des Menschen ausgerichtet, das sich eher an den Parametern Farbton (Hue), Helligkeit (Lightness) und Sättigung (Saturation) orientiert.

Die physikalisch-technischen Farbmodelle beschreiben eine Farbe als Mischung dreier Primärfarben. Die Unterschiede zwischen den einzelnen Modellen liegen in der Wahl der Primärfarben und der Art der Farbmischung. Zu den wichtigsten technischen Farbmodellen zählen:

Ein Farbmodell soll dazu dienen, Farben anhand einer bestimmten Farbskala zu beschreiben. Ein Farbmodell kann nicht alle sichtbaren Farben beschreiben, sondern nur eine Untermenge daraus. Die für die graphische Datenverarbeitung wichtigeren physikalisch-technischen Farbmodelle sollen nun näher untersucht werden.

Das RGB-Modell

Das RGB-Modell ist ein additives Farbmodell, d.h. mischt man die drei Farben Rot, Grün und Blau mit bestimmten Intensitäten zusammen, so ergibt sich die Farbe Weiß. Um verschiedene Farben zu mischen, variiert man die Intensitäten der drei Grundfarben. Mit dem beschriebenen (RGB)-Modell arbeiten die meisten Bildbearbeitungsprogramme.
Beim RGB-Modell werden die darstellbaren Farben als Punkte eines im Ursprung eines Kartesischen Koordinatensystems liegenden Einheitswürfels beschrieben. Auf den positiven Achsen dieses Koordinatensystems werden die drei Primärfaben Rot, Grün und Blau aufgetragen. Die Hauptdiagonale des Einheitswürfels, sie geht vom Punkt (0,0,0) zum Punkt (1,1,1), enthält die Farben mit gleich großem Anteil an allen Primärfarben. Sie repräsentiert die Grauwerte, wobei Schwarz im Ursprung (0,0,0) und Weiß im Punkt (1,1,1) liegen. Eine Farbe wird dann durch die Anteile an den drei Primärfarben beschrieben, die zur Farbe Schwarz addiert werden.

RGB-Farbwürfel
Ins Innere des Würfels
RGB-Farbmischung per "Scheinwerfer"

Bei Grafikkarten und bei der Farbdefinition für WWW-Anwendungen wird der reelle Zahlenbereich 0.0 - 1.0 auf den Wertebereich 0 - 255 umgesetzt. Durch die 256 Werte pro Farbkanal bei drei Kanälen können so 16.7 Mio. Farben, d. h. Truecolor, festgelegt werden:

Das RGB-Modell ist wichtig bei der Farbdarstellung auf Monitoren. Bei Farbbildschirmen werden drei Phosphorarten auf der Mattscheibe aufgebracht, die von drei unabhängigen Elektronenkanonen angesteuert werden und das in drei Teilbilder (RGB) zerlegte Farbbild erzeugen.

Daraus ergibt sich die besondere Bedeutung des RGB-Modells: alle anderen Farbbeschreibungen müssen vor der Farbausgabe in den äquivalenten Punkt des RGB-Würfels umgerechnet werden.Benutzen zwei Farbbildschirme Kathodenstrahlröhren mit verschiedenem Phosphor, so ergeben sich auch unterschiedliche Farbskalen. Man kann jedoch durch eine Transformationsrechnung die auf einer Kathodenstrahlröhre spezifizierte Farbe auf die Farbskala der anderen Röhre abstimmen.

Das CMY-Modell

Die subtraktive Farbmischung bedient sich der Farben Cyan, Magenta und Gelb (Yellow). Eine Mischung dieser drei Komponenten ergibt in der Theorie Schwarz, in der Praxis ein sehr dunkles Braun. Durch Zugabe von Schwarz (auch Tiefe genannt) enthält man auch im Bereich der unbunten Farben (Grau, Schwarz, Weiß) eine gute Reproduktionsqualität. Dieses Modell wird allgemein CMYK genannt. Bei der Darstellung der Farben in einem kartesischen Koordinatensystem wie beim RGB-Modell liegt nun Weiß im Ursprung und nicht mehr Schwarz. Farben werden beschrieben durch die von der Farbe Weiß abgezogenen Anteile der Grundfarben und nicht mehr durch deren Addition zur Farbe Schwarz.
Das CMY- oder das CMYK-Modell wird zur Farbausgabe auf Druckern verwendet, es entspricht dem physikalischen Vorgang der Reflexion weißen Lichts. Die beim Dreifarbendruck auf das Papier gebrachte Farbe sorgt dafür, daß bestimmte Farbanteile des Weißen Lichts ausgefiltert und somit nicht mehr reflektiert werden (s.Abbildung). So verhindert zum Beispiel die auf das Papier aufgetragenen Farbe Cyan, daß rotes Licht von der Oberfläche absorbiert wird. Reflektiert wird somit noch der Grün- und Blau-Anteil des Lichts. Die Druckfarbe Magenta absorbiert Grün und gelbe Druckfarbe absorbiert Blau. Werden Cyan und Gelb nun übereinander auf das Papier aufgetragen, so wird nur der Grün-Anteil des anstrahlenden Lichts reflektiert. Werden alle drei Farben auf das Papier aufgetragen, dann werden Rot, Grün und Blau absorbiert und man erhält so die Farbe Schwarz.

Die Umrechnung zwischen RGB- und CMY-Modell erfolgt nach folgenden Formeln:

Beim CMYK-Modell erfolgt die Umrechnung nach folgenden Formeln:

Luminanz und Chrominanz

Hier sollen einige grundlegende Prinzipien der visuellen Empfindung des Menschen erklärt werden. Licht sind die durch das Auge vermittelten Empfindungen und elektromagnetischen Schwingungen einer hestimmten Wellenlänge. Jeder Farbe entspricht eine andere Wellenlänge. Nicht jede elektromagnetische Schwingung ist sichtbar. Die für den Menschen sichtbaren Schwingungen bzw. Wellenlängen liegen im Bereich von etwa 250 nm bis 780 nm.

Eine aus nur einer Wellenlänge bestehende Lichtquelle ist eine monochromatische Quelle. Nehmen wir als Beispiel an, darf die Wellenlänge dieser monochromatischen Quelle £ ist. Diese Quelle hat eine Energie, die auch Intensität genannt wird. Wir nennen diese Intensität C. In Wirklichkeit sind nur wenige Quellen monochromatisch. Die meisten Quellen setzen sich aus einem Bereich von Wellenlängen mit je einer eigenen Intensität zusammen. Das ist die spektrale Verteilung der Lichtquelle, die durch die Funktion C(£) dargestellt wird.

Im sichtbaren Spektrum kann das menschliche Auge zwischen verschiedenen Wellenlängen monochromatischen Lichts unterscheiden. jede Wellenlänge erzeugt einen anderen Eindruck, die Farbempfindung. Die Art, wie das menschliche Auge auf Licht reagiert, weist einige interessante Aspekte auf, z. B., daß zwei verschiedene Wellenlängen nicht als verschiedene Farben erscheinen. Zwei monochromatische Quellen mit genau der gleichen Intensität erwecken einen anderen Eindruck von 'Leuchtdichte'. Das menschliche Auge reagiert auf bestimmte Wellenlängen empfindlicher als auf andere. Mit anderen Worten, das Auge reagiert auf manche Farben empfindlicher als auf andere. Unser Auge reagiert empfindlicher auf Gelb oder Gelbgrün als etwa auf Rot oder violett.

Die Reaktion des menschlichen Auges V(£) entspricht jeder Wellenlänge £. Das ist die spektrale Reaktion des menschlichen Sehvermögens. Die Luminanz einer Lichtquelle oder eines beleuchteten Gegenstands ist kein physisches Merkmal der Quelle oder des Gegenstands, sondern eine wahrgenommene Empfindung des menschlichen Betrachters. Luminanz ist ein Produkt der spektralen Verteilung von Energie durch spektrale Reaktion der menschlichen Sicht.

L = f * C(£) * V(£) * d£

Luminanz ist also ein Maß der allgemeinen Reaktion des Auges auf alle in einer Quelle oder einem Gegenstand enthaltenen Wellenlängen.

Luminanz und Farbunterschied im analogen Fernsehen

Die drei Signale Rot, Grün und Blau können in drei andere Signale umgewandelt weren: in die Information der Luminanz (, d. h. die Leuchtdichte bzw. die Lichtintensität) und zwei weitere Farbsignale. Das Prinzip der Umwandlung der RGB-Signale in Luminanz- und Farbsignale ist älter als das Farbfernsehen. Dafür gibt es zwei Gründe. Erstens ist dadurch eine Abwärtskompatibilität möglich, so daß alte Schwarzweiß-Fernsehgeräte unterstützt werden. Das ist die Aufgabe des Luminanzsignals. Da das menschliche Sehvermögen weniger stark auf Farbe als auf Luminanz reagiert, kann das Farbsignal gegebenenfalls mit geringerer Genauigkeit übertragen oder dargestellt werden.

In der Fernsehtechnik wird das Luminanzsignal Y-Signal genannt. Die zwei Chrominanzsignale werden aus den Farbunterschieden herechnet. Ein Farbunterschiedssignal für Rot, Grün und Blau entsteht durch Suhtrahieren des Luminanzsignals vom Farbsignal. ist beispielsweise R das Farbsignal Rot, ist das Farbunterschiedssignal von Rot (R - Y). In der Praxis genügen zwei Farbunterschiedssignale, wenn Luminanz verfügbar ist. Farbunterschiedssignale werden nicht so übertragen wie sie sind, sondern vor der öbertragung in zwei Signale - die Cbrominanzsignale - umgewandelt. Die Umwandlung ist linear. Jede Femsehnorm definiert ihre eigene Umwandlungsmethode:

Die NTSC-Norm bezeichnet die Luminanz als Y-Komponente und die zwei Chrominanzsignale als I- und Q-Komponenten. I und Q bilden zusammen die Farbton- und Sättigungsaspekte (Chrominanz). Sie werden wie folgt herechnet:

      Y = 0,30*R + 0,59*G + 0,11*B 
(1)   I = 0,74*(R - Y) - 0,27*(B - Y) = 0,60*R - 0,28*G - 0,32*B 
      Q = 0,48*(R - Y) + 0,41*(B - Y) = 0,2l*R - 0,52*G + 0,31*B

Die PAL-Norm bezeichnet die Luminanz Y und zwei Chrominanzsignale mit U und V:

      Y = 0,30*R + 0,59*G + 0,11*B 
(2)   U = 0,493*(B - Y) = -0,15*R - 0,29*G + 0,44*B 
      V = 0,877*(R - Y) =  0,62*R - 0,52*G - 0,10*B

Die folgenden Modelle basieren auf Luminanz und Chrominanz.

Das YIQ-Modell

Das YIQ-Modell wird - wie oben beschrieben - in der Fernsehtechnik verwendet und sorgt dort für die Abwärtskompatibilität von Farb- zu S/W-Fernsehen. Die Y-Komponente gibt die Luminanz wieder. Ein S/W-Fernseher zeigt nur diese Komponente an. Die Chrominanz, die Farbigkeit, ist in den Komponenten I und Q codiert. Die Umrechnung von RGB-nach YIQ-Werten erfolgt nach der Formel (1) oben.

Dabei ist I in etwa die Rot-Orange-Achse und Q annähern orthogonal zu I. Das menschliche Auge ist am Empfindlichsten für Y, danach für I und schließlich für Q.

Das YCbCr-Farbmodell

Für das PAL-System wurde ein leicht abweichendes Modell entwickelt, das dann zum CCIR-601-Standard für digitale Videoaufzeichnung wurde. Die Umrechnung lautet: Mehr hierzu finden Sie weiter unten beim JPEG-Verfahren.

Daraus leitet sich bei den meisten Bildbearbeitungsprogrammen das HSB-Modell ab. Es entspricht von allen drei Modellen unserer verbalen Farbbeschreibung am meisten. Beschreibungen wie ein kräftiges, helles Gelb lassen sich sofort umsetzen. Die Initialen stehen für Hue (Farbton), Saturation (Sättigung) und Brightness (Helligkeit). Der Farbton beeinhaltet die reine Farbinformation, die Sättigung das Verhätlniss von Stärke der reinen Farbe und den unbunten Anteilen. Die Helligkeit entspricht der Helligkeit von 1% - 100%. 0% stellt immer Schwarz dar, 100% immer Weiß.

Zusammenfassung

Gradation

Bei der professionellen Bildbearbeitung werden fast alls Änderungen an Bildern über sogenannte Gradationskurven gemacht. Diese Bildberabeitungen sind nötig, um Abbildungen auf die Besonderheiten spezieller Ausgabegeräte einzustellen oder um besondere Effekte zu erzielen.

Die Gradationskurve ist die Visualisierung des Verhältnisses von Eingabe- zu Ausgabewerten in einem Bereich von 0% bis 100%. Diese Kurve repräsentiert alle Farben eines Bildes, jede Veränderung ist dort ablesbar. Die Beeinflussung der Farbbereiche eines Bildes durch die Gradationskurve verdeutlicht die nebenstehende Abbildung.

Gamma-Korrektur

Will man Intensitätsstufen auf einem Bildschirm so darstellen, daß sie gleichmäßig und ohne sichtbaren Stufen verteilt sind, so muß man spezielle Eigenschaften des Auges berücksichtigen. Wenn man z. B. 256 Intensitätsstufen linear auf die Helligkeitswerte des Bildschirms überträgt, so ergibt sich eine nichtlineare Stufung, die deutlich sichtbar ist. Das menschliche Auge nimmt keine absoluten Intensitätswerte wahr, sondern Quotienten von Intensitätsstufen. So wird zum Beispiel zwischen den Intensitätsstufen 0.2 und 0.22 der gleiche Unterschied wie zwischen 0.6 und 0.66 wahrgenommen. Die Intensitätsstufen einer Ausgabe müssen daher nichtlinear, genaugenommen logarithmisch auf die Helligkeitsstufen des Bildschirms abgebildet werden. Für 256 Stufen ergibt sich dabei folgendes:

Der Wert für I0 hängt von der verwendeten Bildröhre ab und liegt normalerweise zwischen 1/200 und 1/40 des maximal erreichbaren Wertes. Das Verhältnis zwischen maximaler und minimaler Helligkeit nennt man den Dynamikbereich einer Bildröhre.

Für I0 = 0.02 errechnet sich r = 1.015. Um die Darstellung einer Graustufentreppe (also Werte zwischen 0 .. 1) ohne Stufen erscheinen lassen ist ein Wert r < 1.01 nötig, dann kann das Auge die einzelnen Helligkeitssprünge nicht mehr voneinander unterscheiden.

Nun werden die gewünschten Helligkeitswerte durch den Bildschirm auch nichtlinear verändert, es ist also eine weitere Korrektur notwendig, um eine korrekte Abbildung zu erreichen.
Die Lichtintensität I die durch einen Elektronenstrahl durch den Phosphor des Bildschirms umgesetzt wird, hängt von der Zahl der Elektronen N wie folgt ab:

    I = k * N y

Dabei sind k und y Konstanten die vom Bildschirm abhängig sind. y ist der Wert Gamma und liegt bei den meisten Bildschirmen zwischen 2.2 und 2.5. Eine Umrechnung der gewünschten Helligkeit auf einen Eingabewert basierend auf dieser Formel nennt man auch Gammakorrektur.

Mit Hilfe einer Tabelle ist es nun möglich, die gesamte Helligkeits-Korrektur durchzuführen. Bei manchen Monitoren ist es auch möglich, die Korrekturtabelle im Monitor abzulegen, üblicherweise wird jedoch die Korrektur in der Grafikkarte durchgeführt. Natürlich können auch die Bildinformationen selbst bereits korrigiert werden. Die Korrektur für die Helligkeitsabbildung kann vorab erfolgen. Insbesondere sind auch Korrekturen für gescannte Bilder oder Videos nötig, da diese selbst wieder eine andere Helligkeitsumsetzung aufweisen.

Ähnliche Korrekturen sind auch für Filmbelichter, Drucker etc. notwendig, will man Bilder mit Graustufen korrekt darstellen. Für eine Korrektur an Farbildern kann es ggf. nötig sein die Korrektur für alle drei Farbkomponenten getrennt durchzuführen.
Die folgende Tabelle zeigt typische Werten der Dynamik 1/I0 und der Anzahl der benötigten Intensitätsstufen. Die Zahl der möglichen Intensitätsstufen erhält man aufgrund des Dynamik-Bereichs mit der Formel

     n = log(1.01(1/I0))

TechnikDynamikIntensitäts-
Stufen
Bildschirm50 - 200400 - 530
Photo-Druck100465
Dia1000700
S/W-Druck auf
gestrichenem Papier
100465
Farb-Druck auf
gestrichenem Papier
50500
Zeitung10234

Dithering

Beachten Sie bitte auch, daß nicht alle Grafikkarten Echtfarben darstellen können. Bei z. B. VGA oder SVGA, werden die nicht direkt darstellbaren Farben dann entweder in dem nächstgelegenen anzeigbaren Farbton umgesetzt, wobei zu nah beieinander liegende Farben gleich erscheinen können, oder diese Farben werden "gedithert".

Beim Dithering wird ein Farbton durch Kombination vorhandener Farben erzeugt. Die Kombination besteht darin, daß ein Pixelmuster erzeugt wird, welches aus einer gewissen Entfernung betrachtet dem gewünschten Farbton ähnelt. Bei naher Betrachtung sieht man freilich die Pixel. Bei Text kann dieses Raster aber schnell zur Unleserlichkeit führen.

Möchten Sie sicherstellen, daß ihr Dokument auf nahezu allen Geräten angezeigt werden kann, so beschränken Sie die Farbe. Es ist sicher heute nicht mehr nötig, sich auf die 16 Grundfarben zu beschränken. Aber bei der Farbdefinition von Text- umd Hintergrundfarbe ist es durchaus günstig, sich auf 256 Farben zurückzuziehen.

Betrachten wir ein Beispiel zum Dithering. Als Ausgangsbild verwenden wir ein Bild mit Farbverläfen:

Truecolor

Truecolor-Bild

Betrachten wir nun einige Dithermöglichkeiten:

optimiert, Diffusion

Dithering: optimierte Farbtabelle mit Fehlerdiffusion

gleichmaessig

Dithering: gleichmäßige Farbtabelle

gleichmaessig, Diffusion

Dithering: gleichmäßige Farbtabelle mit Fehlerdiffusion

VGA-Tabelle

Dithering: Standard-VGA-Tabelle mit Fehlerdiffusion

Sie sehen also, daß auch auf nicht-Truecolor-Systemen erträgliche Bilder produziert werden können. Ein günstiges Vorgehen ist, auch das Dithern dem Browser des Betrachters zu überlassen, d. h. Echtfarbenbilder auch als Echtfarbenbilder zu übertragen. Dennoch sollte man sich als Autor klar sein, daß ein Bild bei jedem Betrachter gegebenenfalls verändert erscheint. Man kann sich also nicht darauf verlassen, daß der Betrachter jedes Detail sehen kann.

Das Beispiel zeigt, daß Dithering auch Übergänge erzeugen kann (Fehlerdiffusion). Dabei wird versucht, sich der wirklichen Übergang von einer Farbe über Zwischentöne zur anderen durch ein Muster verfügbarer Farben anzunähern. Stellt man sich jedoch eine Zeile Text vor, so kann dieser Effekt zur oben bereits erwähnten Unleserlichkeit führen.

Bildkompressionsverfahren

Bilder mit hoher Auflösung im Computer zu speichern kostet Platz. Bei einer Auflösung von 640 x 480 Bildpunkten und 16 Millionen Farben (24 Bit pro Bildpunkt), benötigt man für ein Bild 921600 Bytes, also fast 1 MByte, Speicherplatz. Bilddateien sind also äußerst unhandlich, besonders dann, wenn ein größeres Bildarchiv angelegt oder ein Farbbild via Modem und Telefonleitung oder per ISDN übertragen werden soll. Daher versucht man Bilder komprimiert abzuspeichern.

Erste Schritte zur Verringerung der Dateigröße unternehmen Grafikformate, die intern Kompressionsmethoden wie Lauflängencodierung, LZW- oder Huffman-Codierung verwenden, wie z.B. GIF, PCX oder TIFF. Allerdings überschreiten diese Methoden selbst in ihrer modernsten Form selten den Kompressionsfaktor drei. Jedoch komprimieren diese Verfahren ohne Verluste und das Original läßt sich bis aufs letzte Bit wieder herstellen. Bei der Reduktion von Bilddaten kann man sogenannte 'Kompressionsverfahren' verwenden, um die Redundanz in der Bildinformation zu beseitigen. Dabei unterscheidet man zwischen verlustfreier Kompression, bei der das unrsprüngliche Bild wieder originalgetreu hergestellt wird und verlustbehafteter Kompression, wo bei der Kompression ein mehr oder minder großer Teil der Bildinformation verloren geht.
Ein einfaches Kompressionsverfahren ist die Run-Length-Codierung (RLE). Dabei verfährt man wie folgt: Das Bild wird z. B. Zeile für Zeile abgespeichert. Wenn mehrere aufeinanderfolgende Bildpunkte die gleiche Farbe haben, so speichert man einen Zähler ab, der angibt, wie oft diese Farbe folgt. Der Zähler ist eine Bildpunktfarbe, die nicht vorkommt und über einen Sonderfall abgehandelt wird. Dieses Verfahren eignet sich am Besten für Bilder die eine Palette verwenden und keine Farbverläufe (z.B. bei Fotos) oder komplizierte Muster enthalten. Bilder in Echtfarben, z.B. von Fotoaufnahmen eignen sich für dieses Verfahren nicht sehr gut. So lassen sich umgekehrt z.B. Grafiken, die farbige Flächen enthalten sehr gut mit dem Verfahren abspeichern.
Wenn man komplexere Codierungen z. B. LZW (GIF) verwendet, lassen sich noch bessere Kompressionsfaktoren erreichen, da dann auch sich wiederholende Muster erkannt werden. Auch hier gilt, daß Echtfarbenbilder nur schlecht komprimiert werden können.

Verlustfreie Kompression

Nach dem Satz von Shannon ist die maximale Entropie einer Informationsquelle S definiert durch

     H(S) = Summe(Pi * ld(1/Pi))

wobei Pi die Wahrscheinlichkeit des Auftretens vom Symbol Si ist. ld(1/Pi) ist der Logarithmus zur Basis 2 von 1/Pi und gibt an, wieviele Bits benötigt werden, um das Symbol Si zu codieren. Dazu ein Beispiel:
Für ein Bild mit gleichverteilten Graustufenwerten gilt pi = 1/256. Es werden also 8 Bit benötigt, um jede Graustufe zu codieren. Die Entropie des Bildes ist 8.

Die folgenden Algorithmen können mit einem einfachen Beispiel erläutert werden. Es sei die folgende Häfigkeitsverteilung gegeben:

     Symbol   A    B    C    D    E
    ---------------------------------
     Anzahl  15    7    6    6    5

Ein erster Ansatz

Wenn man einen Code mit fester Wortlänge verwendet, benötigt man 3 bit pro Symbol. Für die oben angegeben Anzahlen gibt das

     (15 + 7 + 6 + 6 + 5)*3 = 39*3 = 117 bit

Es wird nun versucht, für die häufigsten Symbole einen kurzen, für die seltenen Modelle einen längeren Code zu finden. Dabei muß auf jeden Fall die Fano-Bedingung erfüt sein: Kein Codewort eines Codes mit variabler Wortlänge darf Anfang eines anderen Codewortes sein.

A0
B10
C11
D110
E111

Nun benötigt man nur noch

     15*1 + 7*2 + 6*2 + 6*3 + 5*3 = 15 + 14 + 12 + 18 + 15 = 74 bit

Mit zunehmender Zahl von Symbolen würde bei diesem Ansatz die Länge der Codeworte rasch steigen. Deshalb werden in der Praxis andere Algorithmen verwendet.

Der Shannon-Fano-Algorithmus

Der Algorithmus hat einen Top-Down-Ansatz:
  1. Sortiere die Symbole nach ihrer Auftretenshäufigkeit, z. B. ABCDE
  2. Teile die Folge rekursiv in jeweils zwei Teile, wobei in jeder Hälfte die Summe der Anzahlen etwa gleich sein sollte. Linke Zweige erhalten die '0' und rechte Zweige die '1'.
Das sieht für unser Beispiel dann so aus:

                   /\
                 0/  \1
                 /    \
                AB    CDE


                   /\
                 0/  \1
                 /    \
                /\   0/\1
              0/  \1 /  \
               A  B  C  DE


                   /\
                 0/  \1
                 /    \
                /\   0/\1
              0/  \1 /  \
               A  B  C  /\
                      0/  \1
                       D  E

Es ergibt sich somit folgende Codierung:

SymbolAnzahlld(1/p)CodeAnzahl Bits
A151.38 0030
B 72.48 0114
C 62.70 1012
D 62.7011018
E 52.9611115

Huffman-Codierung

Dieser Algorithmus verfolgt einen Bottom-Up-Ansatz:
  1. Init: Trage alle Knoten in eine OPEN-Liste ein, immer sortiert. Z. B: ABCDE.
  2. Wiederhole, bis die OPEN-Liste nur noch einen Knoten enthält:
    1. Nimm die beiden Knoten mit der geringsten Häufigkeit (bzw. Wahrscheinlichkeit) aus der OPEN-Liste und erzeuge einen Eltern-Knoten für sie.
    2. Weise dem neuen Knoten die Summe der Häufigkeiten (bzw. Wahrscheinlichkeiten) seiner beiden Kinder zu und trage ihn in der OPEN-Liste ein.
    3. Weise den beiden Zweigen zu den Kind-Knoten die Werte '0' und '1' zu und lösche sie aus der OPEN-Liste.

                  P4(39)
                   /\
                 0/  \1
                 /    \
                /      \
               /        \
            A(15)        \P3(24)
                         /\ 
                       0/  \1
                       /    \
                P2(13)/      \P1(11)
                    /|       /\
                  0/ |1    0/  \1
                  /  |     /    \
                 /   |    /      \
               B(7) C(6) D(6)   E(5)

Es ergibt sich somit folgende Codierung:

SymbolAnzahlld/1/p)CodeAnzahl Bits
A151.38 015
B 72.4810021
C 62.7010118
D 62.7011018
E 52.9611115

Für beide Algorithmen gilt:

Verlustbehaftete Kompression

Verfahren wie LZW arbeiten verlustfrei, das bedeutet, man erhält nach der Dekompression exakt das gleiche Bild wie vor der Kompression. Es gibt aber auch verlustbehaftete Verfahren, die dann stärkere Kompressionsfaktoren erlauben. Ein Beispiel dafür ist das JPEG-Verfahren, benannt nach der 'Joint Photographic Expert Group'.
Man erkannte schnell, daß die Bildinformation nicht immer 1:1 erhalten bleiben muß, damit das rekonstruierte Bild sich auf den ersten Blick nicht vom Original unterscheidet, da schon das Scannen Farbübergänge in ein Raster preßt (quantisieren). Dies führte zur Entwicklung eines leistungsfähigeren Verfahrens namens JPEG durch die gleichnamige ISO/CCITT Kommission. Der Begriff Verlust ist hier etwas irreführend: es geht nicht hauptsächlich Bildqualität verloren, sondern Information, die bis zu einem gewissen Grad redundant ist. So sind mit JPEG Kompressionsraten von 20:1 möglich, ohne daß man große Unterschiede zum Originalbild erkennen kann. Das Bild wird dazu in Quadrate von acht Pixeln Kantenlänge zerlegt und dann mit mathematischen Operationen (Cosinus-Transformation) komprimiert. Der Kompressionfaktor beeinflußt die Größe der Datei und auch die Qualität der Wiedergabe. Bei zu hoher Kompression werden die 8 x 8-Quadrate sogar sichtbar.
JPEG bezeichnet also kein Dateiformat, sondern eine ganze Familie von Algorithmen zur Kompression digitalisierter Standbilder in Echtfarbqualität. Diese Sammlung unterschiedlichster Verfahren wurde 1993 unter der Bezeichnung ISO 10918 als Standard festgeschrieben.
Aus diesem Werkzeugkasten können sich Entwickler je nach gewünschtem Anwendungsgebiet die benötigten Teile herausnehmen und in ihren Hard- und Softwareprodukten implementieren. Dabei kann der Anwender die Kompressionsparameter seinen Anforderungen entsprechend angeben; dabei sinkt natürlich die Qualität des komprimierten Bildes mit steigender Kompressionsrate. So können extrem kleine Bilddateien erzeugt werden, z.B. für Indexarchive von Bilddatenbanken.

Die verlustbehafteten JPEG-Prozesse sind auf fotografische Aufnahmen mit fließenden Farbübergängen hin optimiert. Für andere Arten von Bildern sind sie weniger geeignet z. B. für Bilddaten mit harten Kontrasten wie Cartoons, Liniengrafiken oder Texte, die meist große Farbflächen und abrupte Farbwechsel enthalten.

Bei der Entwicklung des JPEG - Standards war es oberstes Ziel einheitliche Verfahren bereitzustellen, die möglichst alle Belange der Bilddatenkompression abdeckt. Dabei wurde auf folgende Aspekte besonderen Wert gelegt:

Die verwendeten Algorithmen sollten sowohl in Software als auch in Hardware relativ schnell und einfach zu implementieren sein.

Untersuchungen des JPEG-Gremiums haben ergeben, daß bei den verlustbehafteten Umformungsmethoden die 8 x 8 diskrete Kosinustransformation (DCT) die besten Ergebnisse liefert. Für die Operationen, die auf der DCT beruhen wurde ein Minimal-Algorithmus, der Baseline Codec festgelegt, auf den alle DCT-Modi aufbauen.

Die Komprimierung mit dem JPEG Baseline Codec besteht im wesentlichen aus 5 Schritten:

  1. Konvertierung des Bildes in den YCbCr-Farbraum
  2. Diskrete Kosinustransformation (DCT)
  3. Quantisieren der DCT-Koeffizienten
  4. Codieren der Koeffizienten
  5. Kompression der Daten

DerYCbCr-Farbraum

Es gibt - wie weiter vorne erwähnt - aber auch Farbmodelle, die eine Farbe nicht durch die Grundfarben (RGB), sondern durch andere Eigenschaften ausdrücken. So zum Beispiel das Helligkeit-Farbigkeit-Modell. Hier sind die Kriterien die Grundhelligkeit der Farbe, die Farbe mit dem größten Anteil (Rot, Grün oder Blau) und die Sättigkeit der Farbe, z.B. pastell, stark, fast weiß, usw. Dieses Farbmodell beruht auf der Fähigkeit des Auges geringe Helligkeitsunterschiede besser zu erkennen als kleine Farbunterschiede. So ist ein grau auf schwarz geschriebener Text sehr gut zu lesen, ein blau auf rot geschriebener, bei gleicher Grundhelligkeit der Farben, allerdings sehr schlecht. Solche Farbmodelle nennt man Helligkeit-Farbigkeit-Modelle.

Das YCbCr-Modell ist ein solches Helligkeit-Farbigkeit-Modell. Dabei wird ein RGB-Farbwert in eine Grundhelligkeit Y und zwei Komponenten Cb und Cr aufgeteilt, wobei Cb ein Maß für die Abweichung von der 'Mittelfarbe' Grau in Richtung Blau darstellt. Cr ist die entsprechende Maßzahl für Differenz zu Rot. Diese Darstellung verwendet die Besonderheit des Auges, für grünes Licht besonders empfindlich zu sein. Daher steckt die meiste Information in der Grundhelligkeit Y, und man braucht nur noch Abweichungen nach Rot und Blau darzustellen.

Um nun Farbwerte in RGB-Darstellung in den YCbCr-Farbraum umzurechnen, benötigt man folgende Formel:

     Y  =  0,2990*R + 0,5870*G + 0,1140*B
     Cb = -0,1687*R - 0,3313*G + 0,5000*B
     Cr =  0,5000*R - 0,4187*G - 0,0813*B

Die Rücktransformation vom YcbCr-Farbraum in RGB-Werte geschieht wie folgt:

     R = 1,0*Y + 0,0    *Cb + 1,402  *Cr
     G = 1,0*Y - 0,34414*Cb - 0,71414*Cr
     B = 1,0*Y + 1,7720 *Cb + 0,0    *Cr

Diskrete Kosinustransformation (DCT)

Das menschliche Auge ist kein perfektes Organ. So kann es zum Beispiel weiche Farbübergänge viel schlechter auflösen als geringe Helligkeitsunterschiede. Dabei spricht man bei Farbunterschieden, die das Auge besser auflöst von niedrigen Ortsfrequenzen, bei schlechterer Auflösung von hohen Ortsfrequenzen. Die Analogie zu Frequenzen führt von dem räumlichen Auflösungsvermögen des Auges her. Bei bestimmten Farbunterschieden kann man mehr unterscheidbare Farbinformationen unterbringen (daher hohe Ortsfrequenz) als bei anderen Farbunterschieden. Die DCT nutzt nun diese Schwäche des menschlichen Auges aus, indem sie die hohen Ortsfrequenzen herausfiltert und diese schlechter oder auch gar nicht codiert. Zunächst werden die Eingangsdaten, die als vorzeichenlose Ganzzahlen vorliegen, in eine für die DCT geeignete Wellenform gebracht. Dazu subtrahiert man einfach von jedem Wert (2 hoch P-1), wobei P die verwendete Genauigkeit in Bits darstellt. Im Baseline Codec beträgt die Genauigkeit 8 Bit, so daß der neue Referentzpunt beim Wert 128 liegt. Dann werden die Bilddaten in Blöcken zu 8x8 Pixeln gerastert. Ein solcher Block wird nun als Vektor (aus 64 Pixelwerten) eines geeigneten Vektorraums interpretiert. Die DCT vollzieht nun einen Basiswechsel. F(u,v) ist der DCT-Koeffizient, f(i,j) der geshiftete Pixelwert.

Als Basisvektoren werden aber nun 64 Blöcke zu 8x8 Pixeln verwendet, welche bezüglich des Vektorraums eine Orthonormalbasis bilden. Die Basisvektoren gewinnt man durch folgende Formel.

Durch den Basiswechsel ergeben sich 64 eindeutige Koeffizienten, die den Anteil des jeweiligen Basisblocks an dem Bilddatenblock darstellen. Die Koeffizienten werden berechnet durch:

Um diese Koeffizientendarstellung in ihre Ursprungsform zurückzutransformieren, benötigt man folgende Beziehung:

wobei

Das folgende Bild zeigt die 8 x 8 = 64 DCT-Basisfunktionen. Links oben ist F(0,0) (der DC-Anteil), rechts untern der höchste AC-Anteil.

Bei dieser Codierung und Decodierung (Codec) treten schon ohne weitere Behandlung der Koeffizienten Verluste auf, da die benötigte Kosinus- bzw. Sinusfunktion nur in begrenzter Genauigkeit auf Rechnern dargestellt werden kann. Daraus folgt ebenso, daß dieses Verfahren nicht iterierbar ist. Wird also ein mittels DCT codiertes Bild decodiert und wieder codiert, bekommt man ein anderes Ergebnis, als bei der ersten Codierung. Der Vorteil der DCT wird bei Bildern mit kontinuierlichen Farbübergängen besonders deutlich: Da sich benachbarte Bildpunkte in der Regel kaum unterscheiden, werden in der Koeffizientendarstellung nur der DC-Koeffizient (das ist der Koeffizient dessen Basisvektor in beiden Richtungen die Frequenz Null hat) und einige niederfrequente AC-Koeffizienten (das sind die übrigen Koeffizienten) größere Werte annehmen. Die anderen sind fast Null oder meistens sogar gleich Null. Dies bedeutet, daß kleinere Zahlen codiert werden müssen, und dies hat bei geeigneter Darstellung schon einen Komprimierungseffekt.

Wie man aus den Formeln erkennt, ist die Berechnung der Koeffizienten recht umfangreich. So benötigt man für einen 8 x 8-Block 63 Additionen und 64 Multiplikationen. Man kann das Problem durch Faktorisierung vereinfachen

Die meisten Hardware- und Softwareimplementierungen von Coder und Decoder verwenden Ganzzahlarithmetik und approximieren die Koeffizienten. Die Multiplikationen reduzieren sich dann auf Schiebeoperationen. Der Weltrekord für die DCT lag 1989 bei 11 Multiplikationen und 29 Additionen.

Quantisierung

Bei der Entwicklung des JPEG-Standards war es ein Ziel, die Kompressionsparameter frei wählbar zu machen. Dies wird durch die sogenannte Quantisierung erreicht. Die Quantisierung ist eine Abbildung, die mehrere benachbarte Werte auf einen neue n Wert abbildet, wobei die Koeffizienten durch einen Quantisierungsfaktor q(u,v) geteilt und auf den nächsten Integerwert gerundet werden. Folgende Gleichung wird dabei verwendet:

Die Umkehrabbildung multipliziert dann einfach den quantisierten Wert mit dem Quantisierungsfaktor. Durch diese Hin- und Zurücktransformation entsteht ein Informationsverlust, da bei dieser Rückrechnung die quantisierten Werte nicht immer auf den originalen Wert zurückführen. Je größer dabei der Quantisierungsfaktor ist, desto größer ist auch der Informationsverlust. Dieser Informationsverlust kann durch geeignete Wahl der Quantifizierungsfaktoren so gering gehalten werden, daß er vom Auge kaum wahrgenommen werden kann. Kompressionsraten von < 1:10 sind hierbei leicht realisierbar, ohne daß beim rekonstruierten Bild große Unterschiede zum Original zu erkennen sind.

Für die Quantisierung ohne sichtbaren Informationsverlust sind jeweils für Helligkeit und Farbigkeit optimierte Quantisierungstabellen entwickelt worden. Diese sind zu entnehmen. In diesen Tabellen werden für den DC-Koeffizienten und die niederfrequenten AC-Koeffizienten bessere (kleinere) Quantisierungsfaktoren verwendet als für die höheren Frequenzen. Man nutzt dabei die oben genannte Schwäche des menschlichen Auges aus.

Tabelle der Quantisierungsfaktoren q(u,v) für die Luminanz

     16  11  10  16  24  40  51  61
     12  12  14  19  26  58  60  55
     14  13  16  24  40  57  69  56
     14  17  22  29  51  87  80  62
     18  22  37  56  68 109 103  77
     24  35  55  64  81 104 113  92
     49  64  78  87 103 121 120 101
     72  92  95  98 112 100 103  99

Für die Chrominanz wird eine zweite, ähnliche Tabelle verwendet. Es lassen sich aber auch eigene Tabellen verwenden (die dann im Header der Bilddatei mitgegeben werden).
Bei Implementierungen von JPEG kann man eine gewünschte Kompressionsrate (oder Bildqualität) als Parameter einstellen, bei der folgenden Kompression werden einfach die Quantisierungsfaktoren entsprechend skaliert.

Codierung der Koeffizienten (Zig-zag-Scan)

Die Codierung der quantisierten Koeffizienten erfolgt getrennt für DC- und AC-Koeffizienten. Aus den 8x8 Blöcken wird ein sequentieller (eindimensionaler) Bitstrom von 64 Integers erzeugt. Dabei ist der erste Wert der DC-Koeffizient, allerdings wird nicht der originale Wert, sondern, die Differenz zum DC-Koeffizienten im vorhergehenden Block codiert. Durch die Kohärenz der DC-Koeffienten ergeben sich auch hier wieder wesentlich kleinere Zahlen, als bei der Speicherung der absoluten Werte. Die 63 AC-Koeffizienten werden anhand einer Zick-Zack-Kurve in sequentielle Reihenfolge gebracht, wodurch eine Sortierung hin zu höheren Ortsfrequenzen entsteht. Da aber gerade die hohen Frequenzanteile oft sehr klein bzw. Null sind, entsteht eine für die weitere Kompression der Bilddaten günstige Reihenfolge.

Kompression der Daten

Die bisher beschriebenen Verfahren beinhalten noch keine explizite Kompression, sondern stellen nur eine, und bei starker Qunatisierung der DCT-Koeffizienten recht grobe Transformation der Bilddaten dar. Um die so erhaltenen Daten in einem möglichst kompakten Code abzuspeichern, stellt der JPEG-Standard mehrere effiziente Verfahren bereit. Diese sind im einzelnen:

Vergleich JPEG-Codierter Bilder

Das erste Bild ist ca. 28 KByte groß und mit Faktor 1:10 komprimiert.

Das zweite Bild ist nur noch ca. 2,1 KByte groß, der Faktor ist 1:100.

Darstellungsmodi

Grafikformate

BMP

BezeichnungenMicrosoft Windows Bitmap, BMP, DIB
Farben1-Bit (s/w), 4-Bit (16 Farben), 8-Bit (256 Farben), 24-Bit (16,7 Mio. Farben)
Kompressionnormalerweise keine oder RLE
Maximale Bildgröße65536 x 65536 Pixel

Das Format BMP wird von den meisten Graphikprogrammen unterstützt, die unter MS-Windows arbeiten. Auch die meisten Konvertierprogramme unterstützen BMP. Zur Zeit gibt es vier Versionen des BMP-Formats:

Hier wird beispielhaft nur die MS-Windows Version ab 3.x beschrieben. Eine BMP-Datei besteht aus vier Abschnitten:

GIF

BezeichnungenGraphics Interchange Format, GIF
Farben1- bis 8-Bit (s/w bis 256 Farben/Graustufen)
KompressionLZW
Maximale Bildgröße65536 x 65536 Pixel
BesonderheitMehrere Bilder in einer Datei möglich --> 'animated GIF',
'interlaced' GIF,
transparenter Hintergrund

GIF wurde von den Firmen UNISYS Corp. und CompuServe entwickelt. Ziel war eine minimale Dateigröße zum Austausch von Graphiken über Mailboxen. Da im Mikrocomputerbereich für jede gängige Hardware (Amiga, Atari, IBM-kompatible, Macintosh) Programme existieren, die GIF-Grafiken verarbeiten können, ist es vor allem als Austauschformat über Hardwaregrenzen hinweg von Bedeutung. Eine GIF-Datei kann mehrere Bilder enthalten, was z. B. Interlacing ermöglicht. Im sequentiellen Modus wird das Bild zeilenweise von links oben nach rechts unten codiert und ausgegeben. Unter 'Interlacing' versteht man eine Abwandlung des Bildaufbaus bei der Wiedergabe. Es erscheint zunächst ein recht grobes Bild, das dann schrittweise immer schärfer wird. So kann man sich schon recht schnell einen Eindruck verschaffen. Dazu wird der Bildaufbau in vier Durchgänge aufgeteilt. Im ersten Durchgang wird ausgehend von der Zeile 0 jede achte Zeile ausgegeben, also die Zeilen 0, 8, 16 usw. Im zweiten Durchgang wird ausgehend von Zeile 4 jede achte Zeile ausgegeben, also 4, 12, 20 usw. Im dritten Durchgang folgt ausgehend von Zeile 2 jede vierte Zeile, also 2, 6, 10 usw. Durchgang vier vervollständigt das Bild ausgehend von Zeile 1 mit jeder zweiten Zeile, also 1, 3, 5 usw.

Des weiteren kann man eine Farbe des Bildes als 'Hintergrundfarbe' definieren. Diese Farbe (im linken Bild hellblau) wird bei der Wiedergabe dann durch die Farbe des Hintergrundes ersetzt (rechtes Bild):

  

Zur Zeit gibt es zwei Versionen des GIF-Formats:

Hier wird die Version GIF87a beschrieben. Für die Version GIF89a (eine Erweiterung von GIF87a) wird auf die obengenannte Literatur verwiesen. Diese Version ist in der Lage, mit mehreren Bildern in einer Datei eine Animation ablaufen zu lassen (siehe später).

Eine GIF-Datei hat folgenden Aufbau:

JPG

BezeichnungenJPEG File Interchange Format, JPG, JPEG, JFIF, JFI
FarbenBis 24-Bit (bis 16,7 Mio. Farben)
KompressionJPEG
Maximale Bildgröße65536 x 65536 Pixel

Das JPEG File Interchange Format (JFIF) ist eine Entwicklung der Firma C-Cube Microsystems zur Speicherung JPEG-komprimierter Daten. Eine JFIF-Datei hat folgenden Aufbau:

PCX

BezeichnungenPC Paintbrush File Format, DCX, PCC
Farben1-, 2-, 4-, 8-, 24-Bit (s/w bis 16,7 Mio. Farben)
KompressionKeine oder RLE
Maximale Bildgröße65536 x 65536 Pixel

Das PCX-Format wurde von der Firma ZSoft Corporation zur Speicherung und Übertragung der mit PC-Paintbrush erstellten Grafiken entwickelt. Dieses Format wurde von Microsoft übernommen und u.a. im Grafikprogramm MS-Paintbrush für Windows benutzt. PCX ist im PC-DOS/Windows-Bereich weit verbreitet, aber auch auf anderen Plattformen anzutreffen.

Nachteile des PCX-Formates sind eine hardwareabhängige Darstellung von Farben und Auflösung sowie ein relativ ineffizienter RLE-Kompressionsalgorithmus. Eine PCX-Datei hat folgenden Aufbau:

TIFF

BezeichnungenTag Image File Format, TIF
Farben1- bis 24-Bit (s/w bis 16,7 Mio. Farben)
KompressionKeine, RLE, LZW, CCITT Group 3 und 4, JPEG
Maximale Bildgrößeca. 4 Milliarden Bildzeilen
BesonderheitMehrere Bilder in einer Datei möglich

TIFF ist eine Entwicklung der Firma Aldus Corporation. Dieses Format hat sich in den letzten Jahren zu einem der wichtigsten Formate für Rasterdateien entwickelt. Es wurde von Anfang an so umfangreich konzipiert, daß es eine Vielzahl von Speichermöglichkeiten bietet und neben den eigentlichen Grafikdaten auch Angaben wie der Name der benutzten Grafiksoftware oder der Scannertyp aufgenommen werden können. TIFF ist in der Lage, Schwarz/Weiß-, Grauwert- und Farbbilder zu speichern. Diese Möglichkeiten machen das Format komplizierter, andererseits aber auch universeller einsetzbar. Neben den meisten Scannern benutzen viele Grafikprogramme das TIFF-Format. Die letzte Revision ist TIFF 6.0 vom Juni 1992.

Das Einlesen von TIFF-Bildern bereitet manchen Programmen große Probleme. Aufgrund der möglichen Komplexität einer TIFF-Datei und der damit verbundenen Varianten (z.B. viele verschiedene Kompressionsmethoden) lesen viele Programme nur einen kleinen Anteil aller TIFF-Varianten. Die Fehlerursache ist dabei aber meist bei diesen Programmen zu suchen, da das TIFF-Format sehr präzise definiert ist. Wenn Sie Probleme beim Importieren einer TIFF-Datei haben, versuchen Sie, diese, falls noch möglich, unkomprimiert abzuspeichern und dann zu importieren.

Eine TIFF-Datei hat folgenden Aufbau:

Zum vorhergehenden Abschnitt Zum Inhaltsverzeichnis Zum nächsten Abschnitt


Copyright © FH München, FB 04, Prof. Jürgen Plate