530 likes | 636 Views
JPEG Seminar: Kompressionsalgorithmen. Ruslan Ragimov. Theoretical Computer Science Prof. Peter Rossmanith Betreuer: Alexander Langer Felix Reidl 4.07.2012. Übersicht. Einführung Bilddarstellung, R-G-B und Y-U-V Farbräume. Einführung Bilddarstellung, R-G-B und Y-U-V Farbräume.
E N D
JPEGSeminar: Kompressionsalgorithmen Ruslan Ragimov Theoretical Computer Science Prof. Peter Rossmanith Betreuer: Alexander Langer Felix Reidl 4.07.2012
Übersicht • Einführung • Bilddarstellung, R-G-B und Y-U-V Farbräume • Einführung • Bilddarstellung, R-G-B und Y-U-V Farbräume • Komprimierungsstrategie JPEG • Überblick • Komprimierungsstufen im Detail • Vor-/Nachteile von JPEG • Zusammenfassung • Vergleich mit anderen Verfahren Folie: Ruslan Ragimov
Einführung. Bilddarstellung : eine Matrix von Pixeln Digitalbild – Bildgröße (Auflösung: dpi - dotsper inch) Pixel – kleinstes Bildelement mit einem Farbton 1 Bit: s/w 8 Bits: Graustufen 24 Bits: Farbbild (8 R, 8 G, 8 B) 400 x 400 ≈ 19,5 kB 400 x 400 ≈ 156,25 kB 400 x 400 ≈ 468,75 kB Folie: Ruslan Ragimov
Einführung. R-G-B Farbraum Rot – Grün – Blau: additiver Farbraum • Sukzessives Hinzufügen einer Farbe hat einen anderen Farbeindruck • Durch Mischen von R-G-B bekommt man jeden Farbton Folie: Ruslan Ragimov
Einführung. Bildkompression Bildkompression lossless lossy • Bestimmen • und • Zusammenfassen • von Redundanzen: • Run-Lenght Encoding • Lempel-Ziv-Welch • Huffman-Coding Welche Informationen können weggelassen werden??? Folie: Ruslan Ragimov
Einführung. Y-U-V Farbraum Menschliches Auge: • Höhere Empfindlichkeit zur Helligkeit als zur Farbe • Problem bei R-G-B: • Helligkeitsinformation ist in jeder Komponente gespeichert • Umwandlung in Y-U-V: • – Helligkeit, – Rot-Grün Balance, – Gelb-Blau Balance Folie: Ruslan Ragimov
Einführung. Lossy Kompressionsmöglichkeit 24 Bits Originalbild: 8 Bits 8 Bits 8 Bits R-G-B: 8 Bits 4 Bits 4 Bits Y-U-V: Quelle: Wikipedia Folie: Ruslan Ragimov
Übersicht • Einführung • Bilddarstellung, R-G-B und Y-U-V Farbräume • Komprimierungsstrategie JPEG • Überblick • Komprimierungsstufen in Details • Vor-/Nachteile von JPEG • Zusammenfassung • Vergleich mit anderen Verfahren Folie: Ruslan Ragimov
JPEG. Überblick: Geschichte Joint PhotographicExpertsGroup: • Gegründet im Juni 1987 von CCITT und ISO • Erster Entwurf in 1991 Hauptziele: • Hohe Kompressionsrate und Qualität • Benutzung von mehreren Parameter • Gutes Resultat beim jeglichen durchgehenden Ton • Anspruchsvoller aber nicht zu komplexer Algorithmus Folie: Ruslan Ragimov
JPEG. Überblick: Strategien Kompressionsstrategien: • Sequenziell: • Jede Farbkomponente • von links nach rechts • von oben nach unten • Progressiv: • Mehrfache Blöcke (Scans) • von grober zu detaillierter Darstellung Baseline • Hierarchisch: • Mehrfache Auflösungen • Verlustfrei (Lossless) Folie: Ruslan Ragimov
JPEG. Überblick: Stufen Modus: Baseline Lossless (De-) Kompressionsstufen: Bildvorbereitung Normales Bild DCT Dekomprimierung Komprimierung Quantisierung Kodierung Komprimiertes Bild Headerbeschreibung Folie: Ruslan Ragimov
JPEG. Stufe I: Bildvorbereitung Bildvorbereitung: 1. Transformation von RGB zur YUV • Nicht für die monochromen Bilder • 2. Downsampling • Auflösung von Farbkomponenten verkleinern • Nicht für die monochromen Bilder • Nur für hierarchische Strategie • 3. Aufteilung in 8x8 Blöcke • Pixel von jeder Komponente in 8x8 Blöcke teilen Folie: Ruslan Ragimov
JPEG. Stufe I: Bildvorbereitung Aufteilung in 8x8 Blöcke • Bei unvollständigen Blöcken werden die letzten Pixeln wiederholt Folie: Ruslan Ragimov
JPEG. Überblick: Stufen Modus: Baseline Lossless (De-) Kompressionsstufen: Bildvorbereitung Normales Bild DCT Dekomprimierung Komprimierung Quantisierung Kodierung Komprimiertes Bild Headerbeschreibung Folie: Ruslan Ragimov
JPEG. Stufe II: DCT • (Forward / Inverse) DiscreteCosine Transformation • Transformiert Daten von Blöcken in eine mathematische Domäne, die besser für die Kompression geeignet ist. FDCT: IDCT: wobei Folie: Ruslan Ragimov
JPEG. Stufe II: DCT DCT (1x8 Block) Beispiel: FEIN GROB FDCT IDCT FDCT IDCT Folie: Ruslan Ragimov
JPEG. Stufe II: DCT DCT (1x8 Block) Beispiel: FEIN GROB FDCT IDCT IDCT Abweichung von Originaldaten: Folie: Ruslan Ragimov
JPEG. Stufe II: DCT DCT (1x8 Block) Beispiel: FEIN GROB FDCT IDCT IDCT Abweichung von Originaldaten: Folie: Ruslan Ragimov
JPEG. Stufe II: DCT DCT (1x8 Block) Beispiel: FEIN GROB FDCT IDCT IDCT Abweichung von Originaldaten: Folie: Ruslan Ragimov
JPEG. Stufe II: DCT DCT (1x8 Block) Beispiel: FEIN GROB FDCT IDCT IDCT Abweichung von Originaldaten: Folie: Ruslan Ragimov
JPEG. Stufe II: DCT DCT (1x8 Block) Beispiel: FEIN GROB FDCT IDCT IDCT Abweichung von Originaldaten: Folie: Ruslan Ragimov
JPEG. Stufe II: DCT DCT (1x8 Block) Beispiel: FEIN GROB FDCT IDCT IDCT Abweichung von Originaldaten: Folie: Ruslan Ragimov
JPEG. Stufe II: DCT DCT (1x8 Block) Beispiel: FEIN GROB FDCT IDCT IDCT Abweichung von Originaldaten: Folie: Ruslan Ragimov
JPEG. Stufe II: DCT FDCT: mit Wichtige Informationen (z.B.: mittlerer Farbton) Detaillierte Informationen (z.B.: scharfe Kanten) FDCT • DC (directcurrent) Koeffizient: • AC (alternaitingcurrent) Koeffizient: • Je größer und , desto mehr detaillierte Informationen trägt Folie: Ruslan Ragimov
JPEG. Stufe II: DCT 64 Basisbilder von DCT Frequenz niedrig hoch niedrig hoch . . . + 8x8 Originalblock Folie: Ruslan Ragimov
JPEG. Stufe II: DCT DCT (8x8 Block) Beispiel: FDCT IDCT Folie: Ruslan Ragimov
JPEG. Stufe II: DCT DCT (8x8 Block) Beispiel: |Differenz| Folie: Ruslan Ragimov
JPEG. Stufe II: DCT • Nachteile von DCT: • Blöcke werden unabhängig voneinander transformiert • Bei hoher Kompressionsrate(Quantisierung) können diese erkannt werden 163,2 KB 28,3 KB Folie: Ruslan Ragimov
JPEG. Stufe II: DCT • Nachteile von DCT: • DCT eignet sich schlecht für nicht-durchgehende Töne. • Keine gute Komprimierung möglich FDCT IDCT Folie: Ruslan Ragimov
JPEG. Überblick: Stufen Modus: Baseline Lossless (De-) Kompressionsstufen: Bildvorbereitung Normales Bild DCT Dekomprimierung Komprimierung Quantisierung Kodierung Komprimiertes Bild Headerbeschreibung Folie: Ruslan Ragimov
JPEG. Stufe III: Quantisierung Quantisierung: Jeder - Wert aus der resultierenden FDCT Tabelle wird durch den entsprechenden - Wert einer Quantisierungstabelle geteilt und zur geraden Zahl gerundet. Quantisierungstabellen (in JPEG Software): • 1 Tabelle für Helligkeit (Y) + 1 Tabelle für Farbkomponenten (U, V) • Eine einfache Tabelle, die durch von dem Nutzer eingegebenen Parameter über berechnet wird Folie: Ruslan Ragimov
JPEG. Stufe III: Quantisierung Quantisierungstabellen (erste Variante): für -Komponente: für -Komponente: Folie: Ruslan Ragimov
JPEG. Stufe III: Quantisierung Quantisierungstabellen (zweite Variante): Folie: Ruslan Ragimov
JPEG. Stufe III: Quantisierung DCT (8x8 Block) Beispiel: FDCT für -Komponente: Folie: Ruslan Ragimov
JPEG. Überblick: Stufen Modus: Baseline Lossless (De-) Kompressionsstufen: Bildvorbereitung Normales Bild DCT Dekomprimierung Komprimierung Quantisierung Kodierung Komprimiertes Bild Headerbeschreibung Folie: Ruslan Ragimov
JPEG. Stufe IV: Encoding • Im Normalfall: • DC Werte stellen den mittleren Farbton eines 8x8 Blocks dar • und unterscheiden sich deshalb nur gering voneinander • AC Werte eines Blocks bestehen aus mehreren Nullen • zwischen denen andere Zahlen vorkommen können • Ansatz: • Kodiere die DC und AC Werte getrennt voneinander • DC mit Huffman • AC mit Kombination von RLE und entweder Huffman • oder ArithmeticCoding Folie: Ruslan Ragimov
JPEG. Stufe IV: Encoding • Kodierung von DC Werte: • Kodiere den ersten DC Wert und die Differenzen • zu den Nächsten 1120 AC AC 1114 AC 1119 AC 1118 AC AC AC AC AC AC AC AC AC AC AC AC AC AC AC AC AC AC AC AC 1118 -4 5 1 Folie: Ruslan Ragimov
JPEG. Stufe IV: Encoding Konvertierungstabelle für DC Werte: )|(1118) )|(3) )|(5) 10001011110 11 Folie: Ruslan Ragimov
JPEG. Stufe IV: Encoding • AC Kodierung: • Ordne die AC Werte zig-zag nacheinander FDCT + Quant. -13;22;7;2;5;1;1;-6;4;-2;8;-5;1;1;0;0;1;-1;2;-1;0;-2;2;-1;-1;0…0 Folie: Ruslan Ragimov
JPEG. Stufe IV: Encoding • AC Kodierung: • Ordne die AC Werte zig-zag nacheinander () • Suche Zahl • Merke die Anzahl von vor aufeinander • folgenden Nullen () • Finde Zeile() und Index () von in der Konvertierungstabelle für DC Werte () • Suche in der Konvertierungstabelle für AC Werte nach Kodierung in der Zeile und Spalte () • Schreibe als Kodierung für die Zahl und davor kommenden Nullen () -13;22;7;2;5;1;1;-6;4;-2;8;-5;1;1;0;0;1;-1;2;-1;0;-2;2;-1;-1;0…0 Folie: Ruslan Ragimov
JPEG. Stufe IV: Encoding AC Kodierung: -13;22;7;2;5;1;1;-6;4;-2;8;-5;1;1;0;0;1;-1;2;-1;0;-2;2;-1;-1;0…0 10110010 1101010110 100111 0110 100101 001 001 1001 100100 011 10111000 10010 001 001 111001 , 11100 Folie: Ruslan Ragimov
JPEG. Stufe IV: Encoding AC Kodierung: -13;22;7;2;5;1;1;-6;4;-2;8;-5;1;1;0;0;1;-1;2;-1;0;-2;2;-1;-1;0…0 10110010 1101010110 100111 0110 100101 001 001 1001 100100 011 10111000 10010 001 001 111001 000 0110 000 1101101 1, 11011 Folie: Ruslan Ragimov
JPEG. Stufe IV: Encoding AC Kodierung: -13;22;7;2;5;1;1;-6;4;-2;8;-5;1;1;0;0;1;-1;2;-1;0;-2;2;-1;-1;0…0 10110010 1101010110 100111 0110 100101 001 001 1001 100100 011 10111000 10010 001 001 111001 000 0110 000 1101101 0110 000 000 1010 Folie: Ruslan Ragimov
JPEG. Stufe IV: Encoding AC Kodierung: + DC Wert 59 -13;22;7;2;5;1;1;-6;4;-2;8;-5;1;1;0;0;1;-1;2;-1;0;-2;2;-1;-1;0…0 10110010 1101010110 100111 0110 100101 001 001 1001 100100 011 10111000 10010 001 001 111001 000 0110 000 1101101 0110 000 000 1010 1111110111011 10110010 1101010110 100111 0110 100101 001 001 1001 100100 011 10111000 10010 001 001 111001 000 0110 000 1101101 0110 000 000 1010 • 122 Bits für ein 64 Pixel-Block • Für 8 Bits pro Komponente im Originalbild, wäre die Kompressionsrate ungefähr: Folie: Ruslan Ragimov
JPEG. Überblick: Stufen Modus: Baseline Lossless (De-) Kompressionsstufen: Bildvorbereitung Normales Bild DCT Dekomprimierung Prediction Komprimierung Quantisierung Kodierung Komprimiertes Bild Headerbeschreibung Folie: Ruslan Ragimov
JPEG. Lossless-Modus: Prediction • Lossless Ansatz: • Statt DCT und Quantisierung wende Prediction an • Prediction: • Suche den besten Predictor für den Wert • Kodiere mit Huffman den Tupel: (Predictor, Differenz) Zu speichern: (4,0) Folie: Ruslan Ragimov
JPEG. Überblick: Stufen Modus: Baseline Lossless (De-) Kompressionsstufen: Bildvorbereitung Normales Bild DCT Prediction Komprimierung Quantisierung Kodierung Komprimiertes Bild Headerbeschreibung Folie: Ruslan Ragimov
JPEG. Vor-/Nachteile Vorteile: • weit verbreitet • hohe Kompressionsrate (insbesondere für Fotos) Nachteile: • Qualitätsverlust (auch beim jeden Speichern) • schlecht für harte Farbübergänge • Transparenz und Animation nicht unterstützt Folie: Ruslan Ragimov
JPEG. Ausblick Lossless JPEG Moduswurde nicht erfolgreich • Entwicklung eines geeigneten Kompressionsverfahrens JPEG-LS JPEG ist nicht perfekt: • Entwicklung neues Standards JPEG 2000: • Bildergröße bis zu Pixel (im Vergleich zu ) • Dekodierung beim Zoomen von einzelnen Bereichen • Fehlerkorrektur • … Folie: Ruslan Ragimov
Übersicht • Einführung • Bilddarstellung, R-G-B und Y-U-V Farbräume • Komprimierungsstrategie JPEG • Überblick • Komprimierungsstufen in Details • Vor-/Nachteile von JPEG • Zusammenfassung • Vergleich mit anderen Verfahren Folie: Ruslan Ragimov