1 / 29

Seminar Computergrafik

Seminar Computergrafik. Grafikformate PNG und GIF Stefan Hubertus. Um was geht es?. Rasterformate (Bitmaps) Pixel mit Koordinaten und Farbwert Internetgerechte Speicherformate Verlustfreie Kompression Plattform- und Geräteunabhängig Interlaced Modus (grobe Bildvorschau).

jonah-vega
Télécharger la présentation

Seminar Computergrafik

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Seminar Computergrafik Grafikformate PNG und GIF Stefan Hubertus

  2. Um was geht es? • Rasterformate (Bitmaps) • Pixel mit Koordinaten und Farbwert • Internetgerechte Speicherformate • Verlustfreie Kompression • Plattform- und Geräteunabhängig • Interlaced Modus (grobe Bildvorschau)

  3. Die LZW-KomprimierungLempel, Ziv, Welch • Kodiert beliebige Zeichenfolgen • Wörterbuchbasierte Kodierung • Zeichenketten durch Kürzel dargestellt und in Wörterbuch geschrieben • Wörterbuch kann aus der Codierung rekonstruiert werden • Einträge im Lexikon über 12 Bit langen Index ansprechbar • Maximal 212 = 4096 Einträge • Einfacher Algorithmus

  4. Algorithmus in Worten(abbbcab) • Indiziere alle Zeichen im Text (ASCII) • Hole nächstes Zeichen (falls vorhanden) a. Falls diese(s) schon im Lexikon, hole nächstes Zeichen und hänge es an. Wdh. solange bis ein Wort entsteht welches nicht im Lexikon existiert b. Gebe Index für das Wort ohne sein letztes Zeichen aus c. Hänge neues Wort an das Lexikon an d. Merke Dir letztes Zeichen des Wortes • Gehe zu 2. wobei dessen neues Zeichen an das gemerkte angehängt wird, bis keine Zeichen mehr vorhanden ist.

  5. Dekodierung in Worten • Init Lexikon für alle Zeichen • Lese Indexe solange es welche gibt Fall1 : Index im Lexikon => einfach ersetzen Fall2 : Index nicht im Wörterbuch. (Nur möglich bei zkzkz Kombination : z = Zeichen, k = beliebige Kette.) => letztes Wort + 1.Zeichen letztes Wort = Ausgabe • Wenn der n-te Code interpretiert ist, erweitere das Lexikon mit dem Wort n-1 und dem ersten Zeichen des n-ten Wortes und fahre fort mit 2.

  6. LZ77-AlgorithmusLempel und Ziv • Gleitendes Fenster konstanter Größe (32kB) • Vorschaupuffer (noch zu komprimieren) • Textfeld (Wörterbuch) • Es entstehen 3-Tupel • Position des Eintrags im Fenster • Länge der zu kopierenden Daten • Das darauf folgende Zeichen (Um auch neue Daten in das Lexikon schreiben zu können) • Einstellbare Parameter • Fenstergröße • Suchintensität

  7. Beispiel zur KodierungAnanas Wörterbuchfenster Vorschau =>(0,0,A) =>(0,0,N) =>(7,2,A) =>(0,0,S) =>fertig

  8. Beispiel zur Dekodierung(0,0,A);(0,0,N);(7,2,A);(0,0,S) (0,0,A) (0,0,N) (7,2,A) (0,0,S)

  9. Huffman-Codierung(Entropiecodierung) • Ziel : Kurzmöglichste Darstellung ohne Informationsverlust • Weg : Häufigstes Zeichen => kürzester Code |Text| = Σ ZeichenText * #ZeichenText • Präfixfrei und Eindeutig bei der Decodierung • Der Algorithmus in Worten: 1. Sei jedes Zeichen ein Wurzelknoten mit Gewicht = # Vorkommen im Text • Die 2 Knoten/Bäume mit dem geringsten Gewicht zusammen an neuen Vater hängen • Wiederholen bis nur noch ein Baum existiert

  10. Geschichtliches • LZ77 (Komprimierungsalgorithmus) wird von Abraham Lempel und Jacob Ziv entwickelt • LZ78 als Variante weiterentwickelt • LZ78 wird patentiert • LZW von Terry A. Welch (Sperry Corporation) patentiert (Ähnlichkeit zu LZ78 wurde nicht erkannt) • GIF 87a als freie und offene Spezifikation • CompuServe stellt GIF 89a vor

  11. Geschichtliches • Unisys fordert für kommerzielle Nutzung von LZW Gebühren • PNG in Diskussionsforen gegründet, erhält Unterstützung von CompuServe, W3C veröffentlicht PNG-Spezifikation 0.92 als öffentliches Arbeitsdokument • Netscape 4.04 und IE 4.0 unterstützen PNG • Auch für nichtkommerzielle Nutzung des LZW werden Gebühren erhoben • GIF-Patent von Unisys läuft in Amerika aus • Patentende auch in Europa, Japan und Kanada

  12. GIF-EigenschaftenGraphics Interchange Format • Rastergrafikformat • 1 bis 8 Bit (= 256 Farben) • Max. Bildgröße 65536 x 65536 Pixel • Mehrere Bilder pro Datei speicherbar (Animationen) • LZW- Kompression (verlustfrei) • Zusatzinformationen speicherbar (Text, Kommentare,..) • Stark verbreitet

  13. GIF-EigenschaftenGraphics Interchange Format

  14. Interlaced Modus bei GIF • Arbeitet in 4 Schritten : • Jede 8. Zeile ab Zeile 0 => (0, 8,16,..) • Jede 8. Zeile ab Zeile 4 => (4,12,20,..) • Jede 4. Zeile ab Zeile 2 => (2, 6,10,..) • Jede 2. Zeile ab Zeile 1 => (1, 3, 5,..)

  15. Aufbau einer GIF-Datei • Header : • Definiert die Daten die für alle Bilder gelten • Bilddaten : • Definiert Daten für das Einzelbild • Beinhaltet die LZW-komprimierten Pixelwerte • (Optional) Erweiterungsblöcke (ab Vers. 89a) • GIF-Terminator ; (Hex : 3b)

  16. Erweiterungsblöcke Möglichkeiten der Erweiterungen sind : • ASCII-Text als Grafik auf Bildfläche • Kommentare als ASCII-Text mitspeichern • Verhalten der Grafik ändern (z.B.: Animationsgeschwindigkeit) • Eigene Erweiterungsblöcke • Genaue Strukturen können in den Spezifikationen nachgelesen werden

  17. Bildbeispiele für Gif-Dateien

  18. Warum PNG? (Portable Network Graphics) • Lizenzrechte für GIF • Bestehende Datenformate nicht so universell wie GIF • Neues Format musste her “PiNG is not GIF“

  19. PNG (Portable Network Graphics) • Farbtiefe : • Palette bis zu 8 Bit • Graustufen 16 Bit pro Bildpunkt • Echtfarben 48 Bit pro Bildpunkt • Alpha-Kanal +16 Bit (Stufenlose Transparenz) • Max. Bildgröße: 231-1 Pixel • Gamma-Information (Helligkeit, Kontrast um Bild auf versch. Systemen identisch anzuzeigen) • Keine Animation ( MNG)

  20. Deflate/Inflate-AlgorithmusPhil Katz • Verlustlose Datenkompression (zip,gz,TIFF,PDF,zlib) • Kein Urheberrecht • Teilt sich in auf in • LZ77 : Komprimiert durch Indizierung z.B. die RGB-Werte des Bildes • Huffman-Code : Erstellt für die Indizes einen präfixfreien, eindeutigen Code • Einstellbare Parameter • Fenstergröße • Suchintensität • Vordefinierte / errechnete Huffmantabellen

  21. Interlaced Modus (Adam 7) • Arbeitet in 7 Schritten • Blöcke 8x8 Pixel 16462646 7 7 7 7 7 7 7 7 56565656 7 7 7 7 7 7 7 7 36463646 7 7 7 7 7 7 7 7 56565656 7 7 7 7 7 7 7 7

  22. Filtertypen • Ziel ist es möglichst gute Kompression • Filterung kann von Zeile zu Zeile wechseln Typ0 Kein Filter Typ1 Differenz zu linken Nachbarn Typ2 Differenz zu oberen Nachbarn Typ3 Differenz zum Mittelwert vom linken und oberen Nachbarn Typ4 Paeth-Filter. Ermittelt günstigste Farbdifferenz aus linken, linken- oberen oder oberen Nachbarn

  23. Aufbau einer PNG-Datei • Signatur Identifikation • IHDR-Chunk Image Header • (PLTE-Chunk) Farbtabelle • (optionale Chunks) • IDAT-Chunks Image Data • IEND-Chunk Image Trailer

  24. Aufbau der Chunks 4 Byte : Datenlänge = n 4 Byte : Typ (Chunk-Erkennung) n Byte : Daten (Chunktypabhängig) 4 Byte : CRC-32-Prüfsumme (Cyclic Redundancy Check)

  25. Zusatzchunks • Nicht unbedingt erforderlich • Man kann eigene Zusatzchunks schreiben • Ein paar Beispiele der offiziellen Zusatzchunks • bKGD Hintergrundfarbe • cHRM Geräteunabhängige Farbdarstellung • gAMA Gamma-Wert des Bildes • hIST Häufigkeit der Farben • pHYs Physikalische Bildgröße • tEXt Textuelle Informationen • tRNS Angaben über einfache Transparenz • gIFg Kompatibilität zu GIF89a

  26. Dateigrößen im Vergleich

  27. PNG vs. GIF

  28. Quellen • www.wikipedia.de • www.w3.org/TR/PNG • www.selfhtml.org/grafik/ • www.w3.org/Graphics/GIF • www.informatik.uni-mainz.de/lehre/cg • www.graphics.ethz.ch/teaching/infotheory/Downloads/Applet_work_fullscreen.html • www.schreib.info/downloads/Projekt_Bildformate.pdf • www.tu_chemnitz.de/docs/yale/graphics/transparent_gifs.html

  29. ENDE Vielen Dank fürs Zuhören

More Related