JPEG

Irrelevanzreduktion - JPEG
Rohe digitale Bilddaten lassen sich durch verlustfreie Kompressionsverfahren leider nur wenig komprimieren. Ein hoher Kompressionsfaktor ist z.B. bei Fotos daher nur mit verlustbehafteten Datenreduktionsverfahren erreichbar wie z.B. JPEG. Das JPEG-Verfahren wurde von der Joint Photographics Experts Group (JPEG) entwickelt und ist seit 1993 ein Standard (ISO/IEC 10918-1 bzw. CCITT Recommendation T.81).

Das JPEG-Verfahren wurde optimiert für die Datenreduktion von Einzelbildern mit gleichmäßigen Farbverläufen. Es können maximal 16,7 Mio. Farben dargestellt werden (RGB, True Color, 3x8Bit). Ein Alphakanal ist nicht vorgesehen. Zum Zweck der Datenreduktion werden beim JPEG-Verfahren Daten weggelassen, deren Fehlen vom Betrachter des Fotos am wenigsten bemerkt werden. Je höher der Kompressionsfaktor gewählt wird, desto mehr Details gehen bei der Datenreduktion verloren. Die Bildqualität sinkt mit der Menge der weggelassenen Details, d.h. je stärker die Bilddaten reduziert werden:
 * 1) Details verschwinden,
 * 2) Farben werden verfälscht und
 * 3) Pixelblöcke werden sichtbar,
 * 4) kontrastreiche Konturen verwandeln sich in „Geisterbilder“.

Die Dateigröße und die Bildqualität sind abhängig von einer Qualitätsstufe, die beim Speichern der JPEG-Datei von der genutzten Software oder vom Nutzer vorgegeben wird (100: höchste Qualitätsstufe, keine Kompression, große Datei; 0: niedrigste Qualitätsstufe, höchste Kompression, kleine Datei).

Das Verfahren wird auch in vielen anderen Dateiformaten eingesetzt wie z.B. Adobes PDF und Apples PICT. Das folgende Beispiel verdeutlicht den sichtbaren Unterschied bei einer Speicherung des selben Fotos in der höchsten und in der niedrigsten JPEG-Qualitätsstufe.

Die entscheidenden neuen Schritte bei der JPEG-Kompression gegenüber den bislang kennengelernten Datenreduktionsverfahren sind die
 * DCT (discrete cosinus transformation)
 * und der Verarbeitungsschritt Quantisierung, in dem die wegzulassenden Details bestimmt werden.

DCT
Die DCT ist ein mathematisches Verfahren zur Beschreibung der Helligkeitsverläufe von Blockinhalten. Ein 8x8-Pixel-Bildausschnitt wird jeweils separat für die Kanäle Y, Cr, Cb in eine mathematische Bildbeschreibung überführt. Die Größe des Pixelblocks ist nicht wichtig für die Anwendung des Verfahrens. Es funktioniert genauso gut mit anderen Blockgrößen wie z.B. 8x16 oder 16x16. Die erkennbaren Strukturen innerhalb des Pixelblocks werden mathematisch beschrieben. Als Grundlage für die Bildbeschreibung dient die Überlagerung von "Frequenzen", welche die Stärke und Geschwindigkeit der jeweiligen Helligkeitsänderung im Pixelblock beschreiben. Die den Pixelblock beschreibenden mathematischen Formeln sind vorgegeben und immer die selben. Lediglich die Stärke des Auftretens der verschiedenen Frequenzen im Pixelblock wird notiert. Die folgende Abbildung zeigt die durch die vorgegebenen Formeln beschriebenen Helligkeitsänderungen bei voller Intensität in horizontaler und vertikaler Richtung: media type="custom" key="27214792" (Quelle des Bildmaterials: Wikipedia, http://upload.wikimedia.org/wikipedia/commons/2/23/Dctjpeg.png)

Das Ergebnis der DCT ist eine mathematische Beschreibung des Pixelblocks. Die vollständige mathematische Beschreibung des Aussehens des Pixelblocks entspricht annähernd dem Original, kann jedoch bei harten Kontrasten im Originalbild bereits die Qualität reduzieren. Ein aus wenigen Pixeln bestehendes A sieht nach der Überführung in die DCT-Darstellung bereits nicht mehr "gut" aus, wenn man es dann sofort wieder anzeigen würde (ohne anschliessende Quantisierung): media type="custom" key="27214872" (Quelle des Bildmaterials: Wikipedia, http://upload.wikimedia.org/wikipedia/commons/1/1a/Letter-a-8x8.png)

Quantisierung
Der Schritt Quantisierung folgt auf die Erzeugung der DCT-Daten. Hier findet die Irrelevanzreduktion statt, welche den hohen Kompressionsfaktor von JPEG ermöglicht. Die Reduzierung der Feinheiten im Pixelblock ist nicht identisch mit der Quantisierung, welche Sie von der Analog-/Digitalwandlung kennen. Der Verarbeitungsschritt Quantisierung bei der JPEG-Kodierung nutzt aus, dass vom menschlichen Auge Feinheiten weniger gut wahrgenommen werden als grobe Bildstrukturen. Auch leichte Änderungen der Helligkeit können in der Bildbeschreibung ignoriert werden, ohne dass der Mensch diese vermisst. So können die Koeffizienten für diese Feinheiten in der Beschreibung einfach auf 0 gesetzt werden, was im nachfolgenden Verarbeitungsschritt Lauflängenkodierung für eine starke Kompression sorgt.

Zig-Zag-Scan
Anschließend an den Verarbeitungsschritt Quantisierung werden die verbleibenden Koeffizienten gespeichert. Für die effiziente Datenreduktion werden die Koeffizienten nicht der Reihenfolge nach, sondern diagonal ausgelesen. Viele auf 0 gesetzte Werte können auf diese Weise mittels RLE platzsparend zusammengefasst werden (Redundanzreduktion).

Verarbeitungsschritte
Die Abfolge der Bildverarbeitungsschritte beim JPEG-Verfahren finden Sie in meiner folgenden Abbildung:



Weitere Links zum Thema

 * @https://www.youtube.com/watch?v=Q2aEzeMDHMA
 * @http://pi4.informatik.uni-mannheim.de/pi4.data/content/courses/2002-ws/multimedia/ueb/blatt2/loes/loes2.html

Aufgabe 1 - Verständnisfragen

 * 1) Was bedeutet die Abkürzung JPEG?
 * 2) Handelt es sich beim JPEG-Verfahren um eine verlustbehaftete oder verlustfreie Kompression?
 * 3) Welches Farbsystem liegt der JPEG-Kodierung zugrunde?
 * 4) Wie werden die Bildinformationen mit JPEG verarbeitet? Hinweis: Nicht zeilenweise!
 * 5) Wie funktioniert die Diskrete Cosinus Transformation?
 * 6) Ist die DCT verlustfrei oder nicht? Begründen Sie Ihre Antwort!
 * 7) Skizzieren Sie grob die aufeinander folgenden Verarbeitungsschritte bei der JPEG-Codierung von der Aufnahme der Bildinformationen bis zum Speichern des Bildes!

Aufgabe 2 - Verarbeitungsschritte

 * Erläutern Sie die in der Skizze abgebildeten JPEG-Verarbeitungsschritte! **
 * Erklären Sie verständlich die in der Abbildung verwendeten Fachausdrücke!
 * Erklären Sie den Aufbau der "Daten", in denen die Bilddaten jeweils zu Beginn und am Ende eines Verarbeitungsschrittes vorliegen!
 * Erläutern Sie, welche Verarbeitungsschritte als verlustfrei gelten können!
 * Erläutern Sie, welche Verarbeitungsschritte Informationsverluste zur Folge haben!

// Hinweis //
// Zur Bearbeitung dieser Aufgabe stelle ich Ihnen ggf. im Unterricht zusätzlich Auszüge aus Fachbüchern zur Verfügung. Hier müssen Sie mit den folgenden Internetlinks vorlieb nehmen! //
 * 1) @http://digicam-experts.de/wissen/3
 * 2) http://www.mathematik.de/spudema/spudema_beitraege/beitraege/rooch/nkap01.html#3
 * 3) @http://www.mathematik.de/spudema/spudema_beitraege/beitraege/rooch/nkap04.html
 * 4) @http://www.mathematik.de/spudema/spudema_beitraege/beitraege/rooch/nkap05.html
 * 5) @http://www.tu-chemnitz.de/informatik/ThIS/downloads/courses/ws02/datkom/JPEG_Kompression.pdf
 * 6) @http://de.wikipedia.org/wiki/JPEG Wikipedia
 * 7) @http://parsys.informatik.uni-oldenburg.de/~stego/seminar/jpeg_SS_ewi_A.pdf
 * 8) @http://www.slideshare.net/frischmilch/bildkompressionsverfahren-jpeg-tiff
 * 9) @http://www.khm.de/~computerkurs/ws9900/grundlagen/kompression/jpegalgo.html
 * 10) @http://de.wikipedia.org/wiki/Bildkompression
 * 11) @http://de.wikipedia.org/wiki/Datenkompression
 * 12) @http://www.edv-tipp.de/gastbeitraege/kika001_dct.htm DCT im Detail
 * 13) @http://www.mathematik.de/spudema/spudema_beitraege/beitraege/rooch/nkap06.html
 * 14) @http://193.23.168.186/pc_pool/lernmodule/multimedia_netzwerke/Komp/k4.htm
 * 15) @http://jendryschik.de/weblog/2002/06/03/diskrete-cosinus-transformation-dct/

Ein praktisches Problem:
 * @http://forum.chip.de/digitalkameras-camcorder/funktioniert-jpg-kompression-331240.html

Aufgabe 3 - Vergleich der Formate JPEG, GIF, TIFF, JPEG-2000 und PNG
Erstellen Sie eine Tabelle, aus der die bevorzugten Einsatzgebiete für die genannten Formate hervorgehen! z.B.
 * Welche Kompressionsverfahren werden eingesetzt?
 * Welche Formate komprimieren verlustfrei und welche verlustbehaftet (Redundanz-, Irrelevanzreduktion)?
 * Woran erkennt man im Bild die eingesetzten Verfahren?
 * Wie viele Farben werden unterstützt? Farbauflösung?
 * Ist Transparenz möglich? (z.B. für Einsatz auf Webseiten)
 * Ist eine Animation möglich, d.h. das automatische Abspielen mehrerer aufeinander folgender Bilder?
 * Einsatzzwecke?

Links

 * @http://www.handelswissen.de/data/branchen/Fotobranche/Foto-Spezialwissen/Verfahren/Komprimieren/Formate_Vergleich
 * @http://de.wikipedia.org/wiki/Bildkompression
 * @http://www.tippscout.de/grafik-internet-bildformate-jpg-png-gif-tif-in-der-uebersicht_tipp_2420.html
 * @http://de.wikipedia.org/wiki/JPEG
 * @http://de.wikipedia.org/wiki/Portable_Network_Graphics
 * @http://de.wikipedia.org/wiki/Graphics_Interchange_Format
 * @http://de.wikipedia.org/wiki/Tagged_Image_File_Format
 * @http://www.mediacollege.com/adobe/photoshop/transparent/background.html
 * @http://praxistipps.chip.de/photoshop-hintergrund-transparent-machen_12999
 * @http://www.fotocommunity.de/forum/bildbearbeitung-digiart-druck-software/lzw-komprimierung-von-tif-dateien
 * @http://www.webmasterpro.de/design/article/konzeption-grafikformate-im-ueberblick.html

Aufgabe 4 - Kann man auch das LZW-Verfahren zur Kompression von Bilddaten einsetzen?
Infos:
 * In welchen Formaten und warum?
 * Klären Sie was zu tun ist!
 * Erläutern Sie die Vor- und Nachteile dieser Vorgehensweise!
 * @http://www.fotocommunity.de/forum/bildbearbeitung-digiart-druck-software/lzw-komprimierung-von-tif-dateien

Aufgabe 5 - JPEG HDR
Es gibt eine JPEG-Erweiterung für HDR. Informieren Sie sich. Bereiten Sie einen 5-minütigen Vortrag vor, um den Unterschied zwischen JPEG-HDR und JPEG der Klasse zu erläutern. u.a.
 * @https://en.wikipedia.org/wiki/JPEG-HDR
 * @https://www.dolby.com/us/en/technologies/jpeg-hdr.html
 * @http://fileformats.archiveteam.org/wiki/JPEG-HDR
 * @https://www.heise.de/newsticker/meldung/JPEG-diskutiert-HDR-fuer-Bildkompressions-Standard-JPEG1-1655266.html
 * @https://www.youtube.com/watch?v=WvXtx98n5uI
 * @https://www.psd-tutorials.de/forum/threads/unterschied-hdr-mit-raw-jpeg.91528/
 * Wie funktioniert es?
 * Kompatibilität?
 * Wie groß sind die dateien im Vergleich mit dem Original?
 * Welche Hard- und Software beherrscht das neue Format?
 * Woran sieht man dien Unterschied?
 * Welchen Qualitätsunterschied kann man erkennen im Vergleich mit Bildern im RAW-Format?

=Lösungen=

Hier sollten Sie natürlich erst nachschlagen, wenn Sie zuvor selbst versucht haben, die richtigen Antworten zu ermitteln!

Aufgabe 1
> Antwort: JPEG steht für **Joint Photographics Experts Group**, eine Arbeitsgruppe von Fotoexperten der ISO und der ITU-T > Antwort: **verlustbehaftet** > Antwort: **YCrCb** > Antwort: **Aufteilung des gesamten Fotos in 8x8-Pixel-Blöcke** > Antwort: **Das Aussehen der 8x8 Pixel-Blöcke des Fotos wird mit Hilfe von mathematischen Formeln beschrieben.** Die in den vorgegebenen Formeln zur Beschreibung der spezifischen Blöcke verwendeten Koeffizienten werden anstelle der zuvor gespeicherten Pixelinformationen in der Matrix gespeichert. > Antwort: Die DCT arbeitet annähernd **verlustfrei**, da das vorliegende Bild nur auf eine andere Weise beschrieben wird als durch die direkte Angabe der Pixelinformationen. > Antwort: **RGB->YCrCb, Aufteilung in 8x8 Pixelblöcke, DCT, Quantisierung, Zig-Zag-Scan+Entropiekodierung**
 * 1) Was bedeutet die Abkürzung JPEG?
 * 1) Handelt es sich beim JPEG-Verfahren um eine verlustbehaftete oder verlustfreie Kompression?
 * 1) Welches Farbsystem liegt der JPEG-Kodierung zugrunde?
 * 1) Wie werden die Bildinformationen mit JPEG verarbeitet? Hinweis: Nicht zeilenweise!
 * 1) Wie funktioniert die Diskrete Cosinus Transformation?
 * 1) Ist die DCT verlustfrei oder nicht? Begründen Sie Ihre Antwort!
 * 1) Skizzieren Sie grob die aufeinander folgenden Verarbeitungsschritte bei der JPEG-Codierung von der Aufnahme der Bildinformationen bis zum Speichern des Bildes!

Aufgabe 2
> Antwort: Die Zerlegung in 8x8 Pixelblöcke findet statt **vor der DCT**. > Antwort: **RGB->YCrCb => Datenreduktion, Wandlung des Farbmodells** > **DCT (Discrete Cosinus Transformation) => 8x8 Pixelblöcke werden mathematisch beschrieben.** > **Quantisierung => entsprechend der Qualitätsvorgabe werden Koeffizienten (Detailinformationen des Fotos) aus den Daten gelöscht und durch Nullen ersetzt, welche in der nachfolgenden Kodierung gut komprimiert werden können. Die Quantisierung ist der SChritt in welchem Detailinformationen des Fotos verloren gehen.** > **Entropiekodierung: Die nach der Quantisierung verbleibenden Daten enthalten viele Nullen, so dass eine Kompression mit dem Huffman-Verfahren oder ähnlichen eine große Datenreduktion zur Folge hat.** > Antwort:**RGB => jeder Pixel mit den Helligkeitswerten von rot (8Bit), blau (8Bit) und grün (8Bit)** > **YCrCb => pro Pixel 8Bit für die Helligkeit und für Cr und Cb jeweils entsprechend Abtaststruktur (z.B. 4Bit für 4:2:2, 2Bit für 4:1:1)** > **nach der DCT => 64 mathematische Koeffizienten (8Bit), welche den 8x8 Pixelblock gut beschreiben** > **nach der Quantisierung => 64 mathematische Koeffizienten (8Bit) mit vielen Nullen, die für zu vernachlässigende Bildinformationen stehen.** > **nach der Entropiekodierung => gepackte Quantisierungsdaten** > Antwort: **DCT und Entropiekodierung können als verlustfrei gelten.** Die Wandlung der Daten nach YCrCb und die Quantisierung erzeugen irreversible Verluste. > Antwort: **Die Wandlung der Daten nach YCrCb und die Quantisierung erzeugen irreversible Verluste.**
 * Erläutern Sie die in der Skizze abgebildeten JPEG-Verarbeitungsschritte! **
 * Wo in der obigen Abbildung fehlt die Zerlegung des Bildes in 8x8 Pixelblöcke?
 * Erklären Sie verständlich die in der Abbildung verwendeten Fachausdrücke!
 * Erklären Sie den Aufbau der "Daten", in denen die Bilddaten jeweils zu Beginn und am Ende eines Verarbeitungsschrittes vorliegen!
 * Erläutern Sie, welche Verarbeitungsschritte als verlustfrei gelten können!
 * Erläutern Sie, welche Verarbeitungsschritte Informationsverluste zur Folge haben!

**Aufgabe 3**
Wenn in der Tabelle von verlustfreier Datenreduktion die Rede ist, dann ist dieses nicht gleichzusetzen mit guter Qualität des Bildes oder mit Erhalt der vollen Bildqualität. Mit verlustfreier Datenreduktion ist lediglich gemeint, dass der Verarbeitungsschritt der Datenreduktion selbst keine Verluste erzeugt. Vor dem Verarbeitungsschritt der eigentlichen Datenreduktion müssen bei einigen Formaten die Bilddaten bereits deutlich sichtbar in ihrer Qualität eingeschränkt werden, z.B. beim GIF-Format, welches nur 256 Farbtöne abbilden kann. verlustbehaftet, verlustfrei ||~ Größe ||~ Artefakte ||~ Transparenz ||~ Animation ||~ Farbauflösung ||~ weitere Kommentare || verlustbehaftet || klein || 8x8 Pixelblöcke sind teilweise sichtbar (DCT) || nein || nein || 8Bit || meist gespeichert als JFIF (JPEG FILE Interchange Format), seit 1993 im WWW eingesetzt (Verwendung im Mosaic Browser) || (aber wenig Farben!) || klein ||  || ja, keine Teiltransparenz || ja  (animated GIFs) || insgesamt nur 256 frei wählbare Farbtöne speicherbar || Nachfolgeformat RLE, LZW-Kompression || Version 6.0 || Druck || verlustfrei || groß || ? || ja (8Bit Alpha-Kanal) || ? || 8Bit ||  || so gross wie JPEG (bei Fotos) || ? || ja, auch Teiltransparenz? || nein || bis zu 16Bit ||  || unbefriedigend ||  || ja, siehe z.B. https://inkscape.org/de/gallery/ ||   || Inkscape unbedingt testen! @https://inkscape.org/en/ ||
 * ~ Format ||~ im Einsatz seit ||~ Einsatz ||~ Datenreduktion,
 * JPEG || 1992 || Fotos effizient speichern || DCT,
 * GIF || 1987 ||  || verlustfrei
 * TIFF || 1992
 * PNG || ca. 2000(RFC 1998) ||  || verlustfrei? || mindestens doppelt
 * JPEG-2000 ||  ||   ||   ||   ||   ||   ||   ||   ||   ||
 * SVG ||  || Grafikformat, (keine Fotos) || Vektorgrafik ist generell verlustfrei || klein || Farbverläufe manchmal
 * Better Portable Graphics |||||||||||||||||| * @https://www.golem.de/news/better-portable-graphics-neues-bildformat-soll-jpeg-abloesen-1412-111012.html
 * @https://en.wikipedia.org/wiki/Better_Portable_Graphics
 * @http://bellard.org/bpg/
 * @https://www.drweb.de/magazin/better-portable-graphics-neues-bildformat-66884/
 * @http://t3n.de/news/better-portable-graphics-neues-bildformat-583686/
 * @https://blog.wdr.de/digitalistan/scharfere_bilder_better_portab/ ||