Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur...

60
Bild I (Fortsetzung) 3.5 Farbdarstellung 3.5.1 Grundlagen des Grafikdrucks 3.5.1.1 Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines Farbtons werden bei Rasterdruckern Halbtonverfahren (Halbton= Farbton in einem bestimmten Sättigungsgrad) eingesetzt. Man unterscheidet drei Verfahren: variable Farbsättigung der Rasterpunkte bei konstanter Punktgröße; z.B. bei Farblaserdruckern: Pixel der Farbe werden unterschiedlich dicht aufgetragen, Größe bleibt konstant variable Punktgröße bei konstanter Farbsättigung; z.B. kontinuierliche Tintenstrahler Simulation von Halbtönen im Dithering-Verfahren; z.B. Bubble-Jet Alle Verfahren liefern eine diskrete Skala von Halbtönen, da das menschliche Auge nur ca. 150 verschiedene Grau- bzw. Farbabstufungen unterscheiden kann.

Transcript of Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur...

Page 1: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

Bild I (Fortsetzung)

3.5 Farbdarstellung3.5.1 Grundlagen des Grafikdrucks3.5.1.1 Halbtonverfahren• Zur Darstellung von Graustufen bzw. Intensitäten eines Farbtons

werden bei Rasterdruckern Halbtonverfahren (Halbton= Farbton in einem bestimmten Sättigungsgrad) eingesetzt.

• Man unterscheidet drei Verfahren: – variable Farbsättigung der Rasterpunkte bei konstanter Punktgröße;

z.B. bei Farblaserdruckern: Pixel der Farbe werden unterschiedlich dicht aufgetragen, Größe bleibt konstant

– variable Punktgröße bei konstanter Farbsättigung; z.B. kontinuierliche Tintenstrahler

– Simulation von Halbtönen im Dithering-Verfahren; z.B. Bubble-Jet• Alle Verfahren liefern eine diskrete Skala von Halbtönen, da das

menschliche Auge nur ca. 150 verschiedene Grau- bzw. Farbabstufungen unterscheiden kann.

Page 2: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

Bild I

• Echte Halbtondrucker, d.h. Geräte, die ohne Dithering auskommen, benötigen daher 8 Bit pro Pixel, um diese Auflösung zu erreichen.

Page 3: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

Bild I

3.5.1.2 Dither-Techniken• Zur Simulation von Grau- und Farbabstufungen teilen die

meisten Drucker das Bild in Halbtonzellen, d.h. kleine quadratische Arrays von Pixeln, auf. Zur Simulation eines Halbtonwertes wird eine geeignete Menge an Pixeln gedruckt.

• Hat ein Farbdrucker z.B. 5x5 große Halbtonzellen, so lassen sich 26 verschiedene Halbtöne bilden. Dies sind insgesamt 17576 Farben.

• Die Anordnung der gedruckten Pixel spielt für die Druckqualität eine große Rolle.

• Man unterscheidet verschiedene Verfahren, darunter:– Dispersed Dithering

– Clustered Dithering

– Dithering mit Fehler-Diffusion

Page 4: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

Bild I

3.5.1.3 Dispersed Dithering• gleichmäßige Verteilung der Pixel in der Halbtonzelle • Bis auf ein Kontrastverhältnis von 50% (genau die Hälfte der

Pixel werden gedruckt) führen alle anderen Abstufungen zu groben Strukturen und Moire-Effekten (Bildmusterung).

• Kleine (technisch bedingte) Abweichungen in der Punktgröße wirken sich negativ auf die Druckqualität aus.

Page 5: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

Bild I

3.5.1.4 Clustered Dithering• simuliert eine variable Punktgröße• Die zu druckenden Punkte einer Halbtonzelle werden vom

Zentrum ausgehend spiralförmig angeordnet. • Je mehr Punkte in der Halbtonzelle gedruckt werden, desto

größer ist der einzelne Farbpunkt in der Mitte der Zelle.

Page 6: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

3.5.1.5 Dithering mit Fehler-Diffusion• Dieses Verfahren benutzt keine Halbtonzellen, sondern

durchläuft das Bild zeilenweise und ersetzen jedes Pixel aufgrund eines Schwellwertes durch ein Pixel mit 0% oder 100% Sättigung.

• Allerdings wird für jedes Pixel ein Abweichungsfehler berechnet und mit umgekehrtem Vorzeichen auf die noch nicht berechneten Nachbarpixel verteilt.

• Für unterschiedliche Grauwerte ergibt sich so eine unterschiedliche Streuung der Pixel. Man spricht deshalb von frequenzmoduliertem Dithering.

Page 7: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

3.5.1.6 Auflösung geditherter Bilder• Die Bildung von Halbtonzellen zur Simulation von

Sättigungswerten geht zu Lasten der maximalen Ortsauflösung. • Man unterscheidet zwischen der Geräteauflösung eines

Druckers und seiner Linienauflösung: – Die Geräteauflösung gibt die maximale Auflösung an, die der

Drucker aufgrund seines Pixelabstandes erreichen kann. Sie wird in dpi (dots per inch) gemessen.

– Die Zeilenauflösung oder Rasterfrequenz gibt an, welche Auflösung aufgrund der Größe der Halbtonzellen erreicht werden kann. Sie wird in lpi (lines per inch) gemessen.

• Der Zusammenhang zwischen Pixelauflösung und Linienauflösung ist gegeben durch die Beziehung Linienauflösung = Geräteauflösung / Kantenlänge der Halbtonzelle

Ein Laserdrucker mit 600 dpi Geräteauflösung und Kantenlänge 16 erreicht 37,5 lpi.

Page 8: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

3.5.2 Drucken von Farbtönen• Da Anwendungssysteme normalerweise mit RGB-Farben

arbeiten, die Ausgabe am Drucker aber als CMY-Farben erfolgt, muss zunächst eine Transformation vorgenommen werden.

• Die subtraktive Mischung der Farben erfordert eigentlich die exakte Überlagerung beim Druck. Für das Auge ergibt sich allerdings der gleiche Eindruck, wenn die Farbpunkte sehr klein und dicht benachbart sind.

• Die einfachste Methode zur Mischung von Primärfarben ist es also, für jede Primärfarbe eine Dithermatrix nach der Methode des Dispersed Dithering zu erzeugen und dann diese Matrizen übereinander zu drucken.

• Damit lassen sich Grafiken mit geringen Anforderungen an die Anzahl der Mischtöne und Auflösung drucken.

Page 9: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.
Page 10: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

3.5.2.1 Winkelversatz beim Druck• Um höhere Ansprüche zu erfüllen kann z.B die

Winkelversatztechnik zum Einsatz kommen.• Dabei werden Störeffekte bei geditherten Bildern aufgrund von

mechanischen Ungenauigkeiten vermieden; Prinzip: Verdrehen und eventuelles Versetzen der Farbauszüge gegeneinander.

Page 11: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

Bild II

Kompression

Grafik-Formate

Page 12: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

1. Grundlegende Kompressionsverfahren

• LZW• RLE• Huffman

• Da Rastergrafiken oftmals viel Speicherplatz benötigen, spielt für diese Formate die Datenkompression eine besonders große Rolle.

• Neben der Einsparung von Speicherplatz ist die Verringerung der notwendigen Übertragungsbandbreite ein wichtiges Ziel, besonders für die im Internet gebräuchlichen Formate JPEG, GIF, aber auch für Audio- oder Videoformate.

• Man unterscheidet: – unkomprimierte Formate, – Formate mit verlustloser Kompression (engl. lossless) , – Formate mit verlustbehafteter Kompression (engl. lossy) .

• Bei verlustbehafteten Formaten ist die Bildqualität durch Parameter steuerbar.

Page 13: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

1.1 LZW (Lempel-Ziv-Welch)1.1.1 Charakteristik• LZW gehört zur Familie der LZ-Algorithmen

• Der LZW (Lempel-Ziv-Welch) -Algorithmus ist ein Wörterbuch-basierter, substituierender Kompressionsalgorithmus.

• Der Algorithmus versucht, den zu komprimierenden Zeichenstrom in Teilketten zu zerlegen und diese in einer Tabelle zu speichern.

• Anschließend werden nur die Indizes in die betreffende Tabelle als Ausgangscode gespeichert.

• Anhand dieser Ausgangscodes läßt sich dann der ursprüngliche Zeichenstrom wieder generieren.

Page 14: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

1.1.2 LZW-Kodierer

• Der Kodierer beginnt mit der Initialisierung des Wörterbuches durch z.B. alle Symbole des Alphabets. Bei herkömmlichen 8 Bit pro Zeichen ist das Wörterbuch z.B. zunächst 256 Einträge lang.

• Anschließend liest der Kodierer den Zeichenstrom der zu komprimierenden Datei Zeichen für Zeichen ein und akkumuliert die eingelesenen Zeichen im String I.

• Der so entstandene String I wird im Wörterbuch gesucht. Das nächste (erste) eingelesene Zeichen x wird im Wörterbuch gefunden.

• Solange I im Wörterbuch gefunden wird, wird das nächste Zeichen eingelesen und an den String angehängt. I = Ix

• Wird der String Ix im Wörterbuch nicht gefunden, – gibt der Kodierer den Zeiger von I auf das Wörterbuch aus, – schreibt den String Ix an die nächste freie Stelle im Wörterbuch

und – initialisiert den String I auf das zuletzt eingelesene Zeichen x.

Page 15: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

Beispiel

Page 16: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

1.1.4 LZW-Dekodierer

• Der Dekodierer beginnt mit der Initialisierung des Wörterbuches

durch z.B. alle Symbole des Alphabets. • Anschließend liest der Dekodierer den Zeichenstrom der zu

dekomprimierenden Datei Zeichen für Zeichen ein. Die Zeichen sind die Wörterbuch-Zeiger.

• Die eingelesenen Zeiger werden benutzt, um aus dem Wörterbuch die unkomprimierten Zeichen bzw. Strings auszulesen.

• Der Dekodierer bildet gleichzeitig das Wörterbuch in derselben Weise wie der Kodierer. Man bezeichnet Kodierer und Dekodierer als synchronisiert.

Page 17: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

Beispiel

abracadabra = 97,98,114,97,99,97,100,256,258

Wörterbuch:…a= 97b=98c=99d=100r=114…

Page 18: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

Beispiel

abracadabra = 97,98,114,97,99,97,100,256,258

a

Wörterbuch: unverändert

Page 19: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

Beispiel

abracadabra = 97,98,114,97,99,97,100,256,258

a b

Wörterbuch:

neuer Eintrag: ab= 256

Page 20: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

Beispiel

abracadabra = 97,98,114,97,99,97,100,256,258

a b r

Wörterbuch: …ab = 256neuer Eintrag: br = 257

Page 21: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

Beispiel

abracadabra = 97,98,114,97,99,97,100,256,258

a b r a

Wörterbuch: …ab = 256br = 257neuer Eintrag: ra= 258

Page 22: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

Beispiel

abracadabra = 97,98,114,97,99,97,100,256,258

a b r a c

Wörterbuch: …ab = 256br = 257ra = 258 neuer Eintrag: ac = 259

Page 23: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

Beispiel

abracadabra = 97,98,114,97,99,97,100,256,258

a b r a c a

Wörterbuch:

ab = 256

br = 257

ra = 258

ac = 259

neuer Eintrag: ca= 260

Page 24: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

Beispiel

abracadabra = 97,98,114,97,99,97,100,256,258

a b r a c a d

Wörterbuch: …ab = 256br = 257ra = 258 ac = 259ca= 260 neuer Eintrag: ad = 261

Page 25: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

Beispiel

abracadabra = 97,98,114,97,99,97,100,256,258

a b r a c a d ab

Wörterbuch: …ab = 256br = 257ra = 258 ac = 259ca = 260 ad = 261 neuer Eintrag: da = 262

Page 26: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

Beispiel

abracadabra = 97,98,114,97,99,97,100,256,258

a b r a c a d ab ra

Wörterbuch: …ab = 256br = 257ra = 258 ac = 259ca = 260 ad = 261 da = 262 neuer Eintrag: abr = 263

br bereits vorhanden!

Page 27: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

1.1.3 Probleme bei der LZW-Kompression • Gegeben sei die Zeichenfolge: aaaaaaaaaaaa; das Wörterbuch

enthält als einzigen bekannten Eintrag a=0.Wie muß die Zeichenkette korrekt kodiert werden, damit der Dekodieralgorithmus den Code entschlüsseln kann?

• Die Codetabelle wird sich nur in den seltensten Fällen a priori bestimmen lassen.

– Lösung: Der Algorithmus muss die Tabelle bei der Komprimierung und Dekomprimierung selber aufbauen, denn sie wird nicht mit dem Code gespeichert.

• Die Tabelle müßte theoretisch unendlich groß sein, um alle Zeichenkombinationen aufzunehmen.

– Lösung: Die Größe der Tabelle wird limitiert.

Page 28: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

1.2 RLE (Run Length Encoding)1.2.1 Charakteristik

• RLE (dt. Lauflängenkodierung) nutzt lange Folgen sich wiederholender Zeichen oder Zeichenketten, sog. Läufe (runs) , aus.

• Bsp.:

Statt AAAABBBCCCCDEEEEE

könnte man auch 4A3B4CD5E

schreiben. • Problem: Treten im Eingabestrom z.B. nicht nur Buchstaben auf,

muss ein Escape-Zeichen die Lauflängenangaben anzeigen.

Es ergeben sich hierdurch häufig Zeichengruppen (Escapesequenzen) der Form:

ESCrs

wobei ESC=Escapezeichen, r=Lauflänge des Symbols, s=Symbol;

Bsp.: Die Ziffern könnten durch einen Buchstaben ersetzt werden, wobei die Stelle des Buchstabens im Alphabet dem Ziffernwert entspricht (a=1, b=2, …) XDABBBXDCDXEE

Page 29: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

1.2.2 Einfache Methoden zur Kompression von Binärdateien • Gegeben sei folgende binäre Zeichenfolge: 000111100000111111

Um in Binärdateien Daten zu komprimieren, kann man verschiedene Methoden anwenden, z.B. diese beiden:

• Methode 1: – Man speichert jeweils eine Kombination aus dem Zeichen und seiner

Lauflänge nach dem obigen Muster. – Aus der Zeichenfolge oben wird so (3,0)(4,1)(5,0)(6,1). – Wenn man zusätzlich festlegt, dass der erste Wert immer eine Null

betreffen muss und sich danach 0 und 1 immer abwechseln, kann man die Kodierung abkürzen zu 3 4 5 6.

– In der Regel steht eine feste Anzahl Bits für die Lauflängenangaben zur Verfügung. Falls die Blocklänge für diese Bitzahl zu groß sein sollte, muss der Block geteilt werden.

• Methode 2: – Man speichert die Position und Länge der 1-Blöcke eines Bildes.

Für das obige Beispiel erhält man die Ausgabe: (3,4)(12,6).

Page 30: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

1.2.3 Kodierung mit variabler Länge

• Diese Art der Lauflängenkodierung ist z.B. für Textdateien oder für

detailreiche Bilder nicht besonders effizient. • Besonders bei Textdateien ist es geschickter, nicht jedes Zeichen

gleichmäßig mit 7, 8 oder gar 16 Bit darzustellen, sondern für Zeichen, die häufig vorkommen, wenige Bits zu benutzen, für Zeichen, die selten vorkommen mehr.

Page 31: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

Beispiel

• Gegeben sei die Buchstabenfolge ABRACADABRA;

Jeder Buchstabe des Alphabets wird mit 5-stelligem Bitcode repräsentiert und die Stelle im Alphabet entspricht dem dezimalen Wert der Binärzahl; dadurch ergibt sich regulär:

00001 00010 10010 00001 00011 00001 00100 00001 00010 10010 00001

Page 32: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

Beispiel

• Gegeben sei die Buchstabenfolge ABRACADABRA;

Jeder Buchstabe des Alphabets wird mit 5-stelligem Bitcode repräsentiert und die Stelle im Alphabet entspricht dem dezimalen Wert der Binärzahl; dadurch ergibt sich regulär:

00001 00010 10010 00001 00011 00001 00100 00001 00010 10010 00001

• Wenn A = 0, B = 1, R = 01, C = 10 und D = 11,

so ergibt sich als Gesamtkodierung

0 1 01 0 10 0 11 0 1 01 0

Page 33: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

Beispiel • Gegeben sei die Buchstabenfolge ABRACADABRA;

Jeder Buchstabe des Alphabets wird mit 5-stelligem Bitcode repräsentiert und die Stelle im Alphabet entspricht dem dezimalen Wert der Binärzahl; dadurch ergibt sich regulär: 00001 00010 10010 00001 00011 00001 00100 00001 00010 10010 00001

• Wenn A = 0, B = 1, R = 01, C = 10 und D = 11, so ergibt sich als Gesamtkodierung 0 1 01 0 10 0 11 0 1 01 0

• Mängel:• Die Begrenzungszeichen (hier: Leerstellen) müssen mit kodiert

werden. • In diesem Beispiel wird „optimal kodiert“; d.h. wir kennen die

Häufigkeiten der Buchstaben und kodieren nur die im String vorhandenen

• Wann können die Begrenzer wegfallen?

Page 34: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

• Ein Code braucht dann keine Begrenzer, wenn jedes Zeichen eindeutig kodiert wird.

• Beispielsweise ließe sich das mit der Kodierung

A = 11, B = 00, C = 010, D = 10 und R = 011.

(Es gibt immer mehrere gültige eindeutige Möglichkeiten der Kodezuweisung)

Page 35: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

• Ein Code braucht dann keine Begrenzer, wenn jedes Zeichen eindeutig kodiert wird.

• Beispielsweise ließe sich das mit der Kodierung

A = 11, B = 00, C = 010, D = 10 und R = 011.

(Es gibt immer mehrere gültige eindeutige Möglichkeiten der Kodezuweisung)

• Die Zeichenkette

110001111010111011000111

läßt sich dann nur auf eine einzige Weise dekodieren.

Page 36: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

1.2.3.1 Binärbaum• Die beste Struktur, diese Kodierung zu speichern, ist ein

Binärbaum (B[inary]-Tree) . • Der Binärbaum zeichnet sich dadurch aus, dass jeder Knoten

genau zwei Kinder hat. • Der Code für jedes Zeichen wird durch den Pfad von der

Wurzel zu diesem Zeichen (dem sog. Blatt) bestimmt, wobei "nach links gehen" mit einer 0 kodiert wird, "nach rechts gehen" mit einer 1.

Page 37: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

1.3 Huffman-Kodierung

1.3.1 Charakteristik• Das allgemeine Verfahren zur Bestimmung des variablen Codes ist

1952 von D. Huffman entwickelt worden und wird deshalb Huffman-Kodierung genannt.

• Jeder beliebige Baum mit M äußerem Knoten kann benutzt werden, um jede beliebige Zeichenfolge mit M verschiedenen Zeichen zu kodieren.

• Welches ist aber der ideale Baum, um die Zeichenfolge zu kodieren?

Page 38: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

Beispiel

• Gegeben sei folgender Beispielstring:

"A simple string to be encoded using a minimal number of bits".

Im ersten Schritt wird die Häufigkeit jedes Zeichens in der zu kodierenden Zeichenfolge ermittelt.

Page 39: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

Beispiel

• Gegeben sei folgender Beispielstring:

"A simple string to be encoded using a minimal number of bits".

Im ersten Schritt wird die Häufigkeit jedes Zeichens in der zu kodierenden Zeichenfolge ermittelt.

• Als nächstes wird der Baum entsprechend der Häufigkeiten der Zeichen gebaut.

Page 40: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

Beispiel

• Gegeben sei folgender Beispielstring:

"A simple string to be encoded using a minimal number of bits".

Im ersten Schritt wird die Häufigkeit jedes Zeichens in der zu kodierenden Zeichenfolge ermittelt.

• Als nächstes wird der Baum entsprechend der Häufigkeiten der Zeichen gebaut.

• Während seiner Erzeugung wird der zu bauende Baum als binärer Baum betrachtet, mit Knoten, die Häufigkeiten speichern.

Page 41: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

Beispiel

• Gegeben sei folgender Beispielstring:

"A simple string to be encoded using a minimal number of bits".

Im ersten Schritt wird die Häufigkeit jedes Zeichens in der zu kodierenden Zeichenfolge ermittelt.

• Als nächstes wird der Baum entsprechend der Häufigkeiten der Zeichen gebaut.

• Während seiner Erzeugung wird der zu bauende Baum als binärer Baum betrachtet, mit Knoten, die Häufigkeiten speichern.

• Die beiden Knoten mit den kleinsten Häufigkeiten werden ausgewählt und es wird ein neuer Knoten erzeugt, der die beiden Knoten als Nachfolger hat. Die Häufigkeit des so entstandenen Knotens entspricht der Summe der Häufigkeiten seiner beiden Kinder.

Page 42: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

Beispiel

• Gegeben sei folgender Beispielstring:

"A simple string to be encoded using a minimal number of bits".

Im ersten Schritt wird die Häufigkeit jedes Zeichens in der zu kodierenden Zeichenfolge ermittelt.

• Als nächstes wird der Baum entsprechend der Häufigkeiten der Zeichen gebaut.

• Während seiner Erzeugung wird der zu bauende Baum als binärer Baum betrachtet, mit Knoten, die Häufigkeiten speichern.

• Die beiden Knoten mit den kleinsten Häufigkeiten werden ausgewählt und es wird ein neuer Knoten erzeugt, der die beiden Knoten als Nachfolger hat. Die Häufigkeit des so entstandenen Knotens entspricht der Summe der Häufigkeiten seiner beiden Kinder.

• Bei jedem Schritt verringert sich die Zahl der Knoten um 1 (zwei Konten werden durch einen ersetzt), solange bis alle Knoten durch einen einzigen Baum verbunden sind.

Page 43: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

Beispiel (Fortsetzung)

• Aus der Verteilung der Häufigkeiten kann beispielsweise dieser Baum erzeugt werden:

Page 44: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

Beispiel (Fortsetzung)

Page 45: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

Beispiel (Fortsetzung)

•Dieser Baum ist nur einer von mehreren möglichen Bäumen. •Am Ende befinden sich Zeichen mit geringen Häufigkeiten unten im Baum, Zeichen mit großen Häufigkeiten aber oben

Page 46: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

• Die Buchstaben werden den Häufigkeitswerten zugeordnet• Im nächsten Schritt werden alle Pfade links mit 0 kodiert, alle rechts

abgehenden mit 1• Nun können die Codes für die Zeichen ermittelt werden

Page 47: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

2. Dateiformate für Bildinformationen

2.1 TIFF (Tagged Image File Format)

2.1.1 Charakteristik/ Basisstruktur

• Das TIFF (Tag[ged] Image File Format) geht auf eine gemeinsame Definition verschiedener Firmen (Aldus, HP, Microsoft etc.) zurück.

• Das TIFF-Format unterstützt u.a. LZW und Huffman-Kodierung (modifiziert) zur Komprimierung.

• Version: 6.0 . • Eine TIFF-Datei besteht aus einem Header und einer variablen

Zahl von Datenblöcken mit unterschiedlicher Länge, die über Zeiger adressiert werden.

• Die Struktur der Datei wird im wesentlichen durch die als IFD (Image File Directory) bezeichneten Blöcke geprägt.

• Diese IFDs bilden eine verkettete Liste innerhalb der Datei und enthalten (Meta-)Informationen bezüglich der gespeicherten Datentypen, der Bilddaten, des Grafikmodus, etc.

• Aus den IFDs verweisen Zeiger auf die eigentlichen Datenblöcke.

Page 48: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

• Die Bilddaten werden in freien Bereichen innerhalb der Datei gespeichert.

• Der Aufbau der TIFF-Datei ist somit sehr flexibel und es können z.B. mehrere Bilder oder verschiedene Varianten eines Bildes innerhalb einer Datei gespeichert werden.

Page 49: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

2.1.2 TIFF-Header• Der Header besitzt ein festes Format und belegt immer die ersten 8

Bytes der Datei.

Page 50: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

2.1.3 Image File Directory

• Innerhalb der TIFF-Datei können die Daten beliebig angeordnet sein. Der Bezug darauf wird durch die IFDs vorgenommen.

• Das IFD funktioniert dabei als Inhaltsverzeichnis und Header auf die eigentlichen Datenbereiche.

• Beginnend mit dem Header sind alle IFDs durch Zeiger verkettet. • Die Länge eines IFDs ist variabel und wird durch die Anzahl der

Tag-Einträge bestimmt.

Page 51: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

2.1.4 Struktur der Tags• Das Tag enthält Informationen über Bilddaten wie z.B.

Bildabmessungen, Auflösung etc. • Passen nicht alle Angaben in das Tag, werden die Reste in freie

Bereiche innerhalb der Datei ausgelagert. Ein Zeiger weist auf diesen Datenbereich.

Page 52: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

2.2 GIF (Graphics Interchange Format)

2.2.1 Charakteristik• GIF ist ein Rastergrafik-Format, das eine Farbtiefe von 8 Bit haben

kann. • Das GIF-Format liegt in zwei Spezifikationen vor:

– GIF-87a ist die 1987 entwickelte Standardversion. – GIF-89a erlaubt zusätzlich zu GIF-87a Transparenz.

• Auch GIF-Dateien werden mit dem LZW-Verfahren komprimiert. • GIF-Dateien können im Interlacing-Verfahren gespeichert werden. • Das GIF-Format ist ein Copyright der Firma Compuserve.

2.2.2 Interlacing-Verfahren• die Formate GIF, JPEG und PNG kennen das Interlacing-Verfahren

als Alternative zum zeilenweisen Aufbau der Grafik. • Das Bild wird dabei unmittelbar in voller Größe, allerdings nur

schemenhaft, aufgebaut. Fortlaufend werden immer mehr Daten nachgeladen (interlaced), wodurch die Grafik an Schärfe gewinnt.

• Der Speicherbedarf erhöht sich um ca. 10%.

Page 53: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

2.3 PNG (Portable Network Graphics)

• Das PNG-Format ist entwickelt worden, da es rund um das GIF-Format immer wieder Copyright-Probleme gegeben hat.

• PNG ist ein Rastergrafik-Format, das eine Farbtiefe von 48 Bit bei RGB-Bildern und 16 Bit bei Graustufenbildern haben kann.

• PNG-Dateien lassen sich ebenfalls interlaced speichern. • PNG unterstützt u.a. Huffman-Kodierung.

Page 54: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

2.3.2 Aufbau einer PNG-File• Eine PNG-Datei hat einen blockweisen Aufbau, der aus

sogenannten chunks (Blöcke) besteht. • Die Zahl der chunks ist abhängig vom gespeicherten Bild.

2.3.2.1 Struktur von CHUNKs

Page 55: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

2.3.2.2 CHUNK-Typen• Die PNG-Definition unterscheidet zwischen kritischen CHUNKs und

untergeordneten (ancillary) CHUNKs. • Kritische CHUNKs müssen von jedem Programm beherrscht

werden, welches eine PNG-Datei liest oder schreibt. • Die Namen kritischer CHUNKs beginnen mit einem

Großbuchstaben. • Die Namen untergeordneter CHUNKs beginnen mit einem

Kleinbuchstaben.

2.3.2.3 Header-CHUNK• Der Header-CHUNK enthält Informationen über die Daten, die in

der PNG-Datei gespeichert werden. • Der CHUNK muss sofort nach den 8 Byte der Signatur auftreten. • Als Signatur wird der Name IHDR benutzt.

Page 56: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

Header-CHUNK

Page 57: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

2.3.2.4 Textual Data-CHUNK (tEXt)

• Der Textual Data-CHUNK erlaubt es, lesbare Texte in einer PNG-Datei mit abzulegen.

• Zur Zeit sind folgende Begriffe definiert: Title, Author, Description, Copyright, Creation Time, Software, Disclaimer, Warning, Source, Comment.

• Als Signatur wird der Name tEXt benutzt.

Page 58: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

2.4 JPEG (Joint Photographics Expert Group)

2.4.1 Charakteristik• JPEG ist eher eine Kompressionsmethode denn ein richtiges

Bildformat: Um Kompressionsraten von bis zu 90% bei akzeptabler Bildqualität zu erreichen, werden verschiedene Methoden kombiniert eingesetzt, darunter auch Huffman, RLE oder DCT.

• JPEG-Dateien beschreiben Bilder als Rastergrafik, das eine Farbtiefe von 24 Bit haben kann.

• Dem Interlacing-Verfahren beim GIF entspricht das progressive JPEG.

• JPEG ist in ISO DIS 10918-1 definiert. • Die Definition von JPEG erlaubt allerdings viele Freiheiten, so dass

der Austausch von JPEG-Bilddaten zwischen verschiedenen Anwendungen und Plattformen relativ problematisch ist.

• Als minimaler Standard für den Austausch wurde das JFIF (JPEG File Interchange-Format) -Format definiert.

Page 59: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

2.4.3 JPEG-Farbmodell• JPEG-Grafiken werden im YCbCr-Farbmodell gespeichert. • Y ist ein Luminaz-Wert und gibt die Helligkeit eines Punktes an, Cb

und Cr sind Crominanz-Werte, welche die Farben charakterisieren. • RGB- und YCbCr-Farbmodelle lassen sich linear ineinander

überführen: die Berechnung der YCbCr-Farbe geschieht gemäß der folgenden Werte:

• Dieses Farbmodell empfiehlt sich aufgrund der Tatsache, dass der Mensch Helligkeitsunterschiede stärker wahrnimmt als Farbunterschiede.

Page 60: Bild I (Fortsetzung) 3.5Farbdarstellung 3.5.1Grundlagen des Grafikdrucks 3.5.1.1Halbtonverfahren Zur Darstellung von Graustufen bzw. Intensitäten eines.

Aufgaben

1) Wiederholen Sie den Stoff dieser Sitzung bis zur nächsten Sitzung (siehe dazu den Link zur Sitzung auf der HKI-Homepage).

Informieren Sie sich zusätzlich durch eigene Literaturrecherche!

2) Beantworten Sie die Fragen aus der Sammlung „beispielhafte Klausurfragen“ zum Bereich Bild (soweit in dieser Sitzung behandelt).