PNG Portable Network Graphics Kleines Seminar Ingo Freitag 2003 Prof. Dr. Kneisel Dr. Ing. Klement
Grafikformat PNG - Ingo Freitag Inhaltsverzeichnis Was ist PNG? Geschichtlicher Überblick Anwendungsgebiete PNG Vor und Nachteile PNG Genereller Aufbau einer PNG Datei Adam-7 Algorithmus Beispiel zu Adam-7 Quellen 03. Juni 2003 Grafikformat PNG - Ingo Freitag
Grafikformat PNG - Ingo Freitag Was ist PNG Portable Network Graphics Flexibles und lizenzfreies Grafikformat Transparenz 16bit pro Kanal (RGB = 48 bit) Progressiver Bildaufbau Netzanwendung 03. Juni 2003 Grafikformat PNG - Ingo Freitag
Grafikformat PNG - Ingo Freitag Vor-Geschichte PNG 1987 Compuserve macht GIF als lizenzfreies Format bekannt. bis 1993 Gif entwickelt sich zu einem der beliebtesten Grafikformate im Netz. 1993 UniSys bemerkt, dass der in GIF verwendete LZW Algorithmus ihr Patent berührt. 1993 UniSys verlangt Lizenz Gebühren für die Nutzung von GIF. 03. Juni 2003 Grafikformat PNG - Ingo Freitag
Kurzüberblick PNG Entstehung 1995 In Diskussionsforen entstehen innerhalb wenige Monate die Entscheidung nach einen komplett neuen, lizenzfreien Format. Es entsteht die PNGlib, die bis heute die Funktionalität für PNG bereitstellt. Ende 1995 hat das W3C (www-Consortium) die PNG –Spezifikationen 0.92 als offizielles Arbeitsdokument verabschiedet. Aktuelle Version von PNG 1.2 03. Juni 2003 Grafikformat PNG - Ingo Freitag
Vor- und Nachteile von PNG Vorteile: Leichte Erweiterbarkeit Echter Alphakanal Nachteile: Kein CMYK-Farbmodell Nur verlustlose Komprimierung Keine animierten Bilder Cmyk: im internet nicht notwaendig Verlustlos: jpg, patente vorhanden, schwerer zu implementieren, verkompliziert Animiert: mnp (multiple network graphics) 03. Juni 2003 Grafikformat PNG - Ingo Freitag
Grafikformat PNG - Ingo Freitag Chunks Blocktypen: Critical chunks Ancillary chunks Namensgebung: Blocknamen bestehen aus 4 Buchstaben Groß Kleinschreibung unterscheidet sich in Bit 5 0 = Großbuschstabe, 1 = Kleinbuchstabe 03. Juni 2003 Grafikformat PNG - Ingo Freitag
Namensgebung der Chunks Ancillary bit 0: critical chunk 1: ancillary chunk Private bit 0: public chunk 1: private chunk 3: Reserved bit 0: laut Spezifkation immer 0 1: „Reserviert“ 03. Juni 2003 Grafikformat PNG - Ingo Freitag
Namensgebung der Chunks Safe-to-copy bit 0: unsafe to copy 1: safe to copy Beispiel: tEXT t = 1 zusätzlicher Block E = 0 In den Spezifikationen enthalten X = 0 „Reserviertes Bit“ T = 0 Darf gefahrlos kopiert werden 03. Juni 2003 Grafikformat PNG - Ingo Freitag
Grafikformat PNG - Ingo Freitag Genereller Aufbau Signatur: Chunks (Blöcke) Length NUR über datenfeld! CRC-32 nicht über blocklänge ISO 3309 [ISO-3309] or ITU-T V.42 [ITU-V42]. The CRC polynomial employed is x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1 03. Juni 2003 Grafikformat PNG - Ingo Freitag
Grafikformat PNG - Ingo Freitag Critical Chunks - IHDR Image Header - IHDR: Bit-Depth: Anzahl der Bytes pro Bildpunkt im IDAT-Chunk. Kann enthalten: RGB Alphakanal Paletteneinträge Color-Type: Bit 1 = Palette 2 = Farbe (keine Graustufen) 3 = Alphakanal vorhanden Compression-Type: 0 Momentan nur „deflate“ Algorithmus möglich. Filter Type: Type Name 0 None 1 Sub (vorgänger) 2 Up (pixel darüber) 3 Average (durchschnitt von links und drüber) 4 Paeth (durchschnitt von links, drüber und links drüber) Verschachtelungstyp: 0 = keiner 1 = Adam7 03. Juni 2003 Grafikformat PNG - Ingo Freitag
Grafikformat PNG - Ingo Freitag Critical Chunks - PLTE Palette - PLTE: 03. Juni 2003 Grafikformat PNG - Ingo Freitag
Grafikformat PNG - Ingo Freitag Critical Chunks - IDAT Pixeldatenblock IDAT: Kann mehrfach vorkommen 03. Juni 2003 Grafikformat PNG - Ingo Freitag
Grafikformat PNG - Ingo Freitag Critical Chunks - IEND Image End – IEND: 03. Juni 2003 Grafikformat PNG - Ingo Freitag
Grafikformat PNG - Ingo Freitag Ancillary chunks Zusatzblöcke tEXt Textual data zTXt Compressed textual data tIME Zeitstempel der letzten Änderung 03. Juni 2003 Grafikformat PNG - Ingo Freitag
Grafikformat PNG - Ingo Freitag Interlacing – Adam-7 Benannt nach Adam M.Castello lizenzfreier Algorithmus Progressive Anzeige in 7 Durchgängen 03. Juni 2003 Grafikformat PNG - Ingo Freitag
Grafikformat PNG - Ingo Freitag Adam7 – Beispiel Beispiel eines 8x8 pixel großen Bildes: 03. Juni 2003 Grafikformat PNG - Ingo Freitag
Grafikformat PNG - Ingo Freitag Quellen Quellen: http://www.w3.org/TR/PNG/ http://www.libpng.org/pub/png/ http://goethe.ira.uka.de/seminare/redundanz/vortrag12/ 03. Juni 2003 Grafikformat PNG - Ingo Freitag
Grafikformat PNG - Ingo Freitag Ende 03. Juni 2003 Grafikformat PNG - Ingo Freitag