- Rubriken
- Galerie - Best of fc
-
- Neue Fotos
- Deutsch
- Alle Sprachen
- Fotos mit wenigen Anmerkungen
- Fotos von neuen Mitgliedern
|
|
Kodierung, DatenformateDigitale oder elektronische Bildbearbeitung
DatenformateGrafische Daten, die im Computer dargestellt werden sollen, werden traditionell aufbereitet in Form von Vektorgrafiken oder Rastergrafiken. VektorgrafikBei Vektorgrafiken werden Linien, Polygone oder Kurven anhand von bestimmten Schlüsselpunkten (Parameterwerten) charakterisiert, die schließlich durch ein Programm dargestellt werden. Z. B. könnte für einen Kreis ein Vektor (X-Koordinate, Y-Koordinate, Radius, Farbe, Linienstärke, Füllfarbe) abgespeichert werden, das darstellende Programm kann dann eindeutig diesen Kreis zeichnen. Vektorgrafiken können (beliebig) skaliert (vergrößert) werden, ohne das Rastereffekte auftreten. Vektorgrafiken sind im Allgemeinen nicht geeignet, fotorealistische Abbildungen zu speichern. RastergrafikRastergrafiken (oder Bitmapgrafiken) setzen sich zusammen aus einer Menge numerischer Werte, die Farb- und Helligkeitsinformationen einzelner Bildpunkte (Pixel) oder ganzer Bildelemente wiedergeben. Historisch gesehen steht die Rastergrafik mit der Entwicklung der Kathodenstrahlröhre als grafisches Ausgabegerät im Zusammenhang. Für eine Rastergrafik sind die folgenden Eigenschaften zu berücksichtigen:
In einer Rastergrafik werden im einfachsten Fall die einzelnen Bildpunkte Zeile für Zeile nebeneinander abgespeichert. Dieses Verfahren hat als Nachteil, dass die Dateien sehr groß werden. Z. B. ein Bild mit einer Auflösung von 1500x1000 und einer Farbtiefe von 24-Bit benötigt dann 1500x1000x24 Bit(b) das entspricht 4.500.000 Byte(B) also 4,29MB (wobei 1B=8b, 1kB=1024B, 1MB=1024kB). Geht man davon aus, dass auf eine Diskette 1,44MB passen, so würde diese nicht mal für ein Bild dieser Größe genügen. Abhilfe für dieses Problem schaffen Komprimierungsverfahren. Einige wichtige Rastergrafik Datenformate:
Datei-AufbauWie sieht eine Bilddatei eigentlich im Inneren aus? Im Allgemeinen haben alle Bilddateien einen ähnlichen Aufbau. Sie bestehen eigentlich immer aus zwei Teilen nämlich:
Im Header stehen alle wichtigen Steuerinformationen z. B. welches Datenformat verwendet wird, welche Ausdehnungen das Bild hat, welche Kodierung(en) verwendet werden. Im Datenteil stehen die Bildaten meist in Form von Werten, die durch die verwendete Kodierung oder Komprimierung entstanden sind. Siehe dazu zum Beispiel: JPEG#JPEG-Dateiaufbau KomprimierungsverfahrenKomprimierungsverfahren sind in erster Linie dafür zuständig, Datenmengen zu reduzieren, um sie platz- und somit kostengünstig abzuspeichern oder zu transportieren. Es gibt eine ganze Reihe von Komprimierungsverfahren, jedes hat seine Vor- und Nachteile. Es ist im Allgemeinen immer so, dass es ein gewisses Gleichgewicht zwischen Stärke der Reduktion der Datenmenge und Handhabbarkeit/Kompliziertheit des Verfahrens gibt. Je mehr man vom einen hat, desto weniger hat man vom anderen. In der digitalen Bildverarbeitung ist wohl die Unterscheidung in verlustfreie und verlustbehaftete Komprimierung (siehe auch JPEG Artefakte) von besonderem Interesse. Bei verlustfreien Komprimierungsverfahren wird die Kodierung und Dekodierung so durchgeführt, dass die ursprünglichen Daten nach dem Ausführen beider Verfahren wieder vollständig vorliegen. Die in den Ausgangsdaten enthaltene Information bleibt also vollständig erhalten. Verlustbehaftete Komprimierungsverfahren dagegen versuchen, eine höhere Komprimierungsrate zu erreichen, indem sie auf Teile der zu komprimierenden Information verzichtet, die für den vorgesehenen Verwendungszweck für weniger wichtig angesehen wird. Meist ist es möglich, dass der Benutzer selbst angibt, welche Kompressionsstärke verwendet werden soll. Das JPEG-Komprimierungsverfahren ist zum Beispiel ein verlustbehaftetes Verfahren, während bei GIF und BMP verlustfrei kodiert wird. Das Ausmaß der Komprimierung wird als Komprimierungsrate/Kompressionsrate bezeichnet, das ist das Verhältnis der Größe der ursprünglichen Information zur Größe der komprimierten Information. Manchmal ist es sinnvoll verschiedene Komprimierungsverfahren zu kombinieren wie zum Beispiel im TIFF-Format. Lauflängenkodierung (Run Length Encoding, RLE)Die einfachste Form von Redundanzen in einem Bild sind aufeinanderfolgende Bildpunkte gleicher Farbe. Man betrachte zum Beispiel die folgende Bildzeile (rot, grün, schwarz, blau): rrrgggssbbbbbbggggssssssssrrrrrbbbbbbggggssssssrrrrrrrr
Die Folge läßt sich viel kompakter kodieren, indem man aufeinanderfolgende Bildpunkte gleicher Farbe ersetzt durch ihre Anzahl und die Farbe: 3r3g2s6b4g8s5r6b4g6s8r
Dieses Verfahren wird als Lauflängenkodierung bezeichnet. Es ist sehr gut geeignet für Bilder mit besonders vielen gleichfarbigen Anteilen. Die Effizienz schwindet allerdings bei Bildern mit sehr wechselhaften Farbanteilen wie zum Beispiel Rauschen. Im schlimmsten Fall kann sich die Datenmenge verdoppeln. Probiert es aus, die Lauflängenkodierung wird in BMP Bildern verwendet. Die Lauflängenkodierung lässt sich nicht nur auf Pixel anwenden, sondern auch auf Binärdaten, die aus Folgen von 0 und 1 bestehen. Man spricht dann von Bit-Level Lauflängenkodierung. Weitere sind die Byte-Level Lauflängenkodierung sowie die Pixel-Level Lauflängenkodierung wie oben beschrieben. Es wäre auch denkbar auf Bildzeilen die Lauflängenkodierung anzuwenden. LZW-KomprimierungDas LZW-Verfahren ist benannt nach seinen Urhebern Abraham Lempel, Jacob Zif und Terry Welch. Lempel und Zif haben 1977 das LZ77-Substitutionskomprimierverfahren entwickelt, das in vielen Archivierungsprogrammen wie z. B. zoo, lha, pkzip oder arj verwendet wird. 1984 modifizierte Welch das Verfahren und es entstand der LZW-Algorithmus. Das LZW-Verfahren ist für verschiedene Arten von Daten verwendbar. Es ist ein wörterbuchbasiertes Kodierungsverfahren, das zur Kodierung aus den Ursprungsdaten ein Wörterbuch aufbaut. Die auftretenden Datenmuster des Datenstroms (z.B. eine Folge von Pixeln Zeile für Zeile) werden den Wörterbucheinträgen zugeordnet. Kommt ein betrachtetes Datenmuster nicht im Wörterbuch vor, wird ein neues Codewort generiert und im Wörterbuch gespeichert. Tritt das Datenmuster erneut auf, so wird es durch das entsprechende Codewort ersetzt. Da die Codewörter eine kürzere Länge als das betrachtete Datenmuster haben, findet eine Komprimierung statt. Beim LZW Verfahren muss das Wörterbuch nicht mit den komprimierten Daten gespeichert werden, sondern beim Entpacken wird es aus den komprimierten Daten wieder aufgebaut. Der Algorithmus und ein schönes Applet sind auf folgender Webseite zu finden: http://www.cs.sfu.ca/cs/CC/365/li/squeeze/LZW.html Die LZW-Komprimierung wird im GIF und im TIFF-Format verwendet. Huffmann-KodierungDie Huffmann-Kodierung wurde 1952 von David A. Huffmann entwickelt. Sie wird durch einen Binärbaum, also einem Baum, dessen Knoten nie mehr als 2 Kinder haben, erzeugt. Dabei wird ein sogenannter präfixfreier Code generiert. Ein präfixfreier Code ist dadurch charakterisiert, dass kein Codewort ein Anfangswort eines anderen Codewortes ist. Nehmen wir folgende Bildzeile als Beispiel (rot, grün, schwarz, blau): rrrgrrrggsrrrrrggbbrrrs
Man betrachte nun die Häufigkeiten der Farben:
Fehlendes Bild Letztendlich können die Farben ersetzt werden durch ihre Codewörter. 0001000010110000001010111111000110
Das Schöne am präfixfreien Code ist, dass man jetzt eindeutig ohne Trennzeichen von links nach rechts dekodieren kann. Nun zur Kompressionsrate:
Die Huffmann Kodierung wird im TIFF-Format verwendet. JPEG-KodierungHier wird auf den JPEG Artikel verwiesen.
|
||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||