Multimediale Wekzeuge Invertierung, Separierbarkeit DCT Gleichung: (Typ 2) Coder: D.h. wir haben N Gleichungen, eine für jedes k, also auch N Summen. Weiterhin: N Eingangswerte x(n), für jedes n=0,...,N-1 ergibt sich ein Wert. Also: N Eingangswerte, N Ausgangswerte, dazwischen Lineare Transformation Gleichungssystem mit N Variablen Falls x Unbekannte sind, und Y bekannt, lässt sich die Gleichung einfach durch Matrixinversion lösen: Dies wird für den Decoder gebraucht, um vom Ortsfrequenzbereich zurück zum Ortsbereich, also dem Ursprungsbild zu kommen. Vorteil Matrix-Darstellung: Sie sagt uns, wie wir wieder "zurück" kommen in den Ortsbereich, gibt uns also die inverse Transformation. Problem: obige Darstellung funktioniert für vektoren x und y, also eindimensionale Signale. Bildsignale sind aber 2-dimensional, z.B. die 8x8 Blöcke in JPEG! Ziel: Anwendung der DCT auf die 8x8 Bildblöcke (N=8) Ansatz/Lösung: Zerlegung der Blöcke erst in einzelne Zeilen. Jede Zeile ist wieder eindimensional. D.h. wir können die DCT Matrix T darauf anwenden, also multiplizieren. Das machen wir mit jeder der 8 Zeilen. Resultat: Neues 8x8 Bild, wo in jeder Zeile Spektralwerte der DCT stehen. - Nächster Schritt: Das gleiche für die Spalten, ausgehend von diesem letzten 8x8 Bild, in dessen Zeilen die Spektralwerte stehen. -> d.h. wir nehmen jede der resultierenden Spalten, und wenden darauf die DCT an. Resultat: 8x8 Bild, in dem sowohl in den Zeilen, als auch in den Spalten Spektralwerte stehen. -Wir hatten gesehen: Reihenfolge der Anwendung auf Zeilen/Spalten ist egal, da wir die Summen in der ursprünglichen Formulierung vertauschen können. -> Linerität der Transformation, ergibt sog. separable 2-Dimensionale Transformation - Warum 2. Schritt auf die Spalten nötig: Im 1. Schritt bekommen wir die Spektralkomponenten, über die Zeilen, d.h. wir bekommen die Ortsfrequenzen entsprechend des Signals entlang der Zeile. Vertikal ist aber immer noch der ursprüngliche Helligkeitsverlauf in den Intensitäten der horizontalen Spektralkomponenten vorhanden. -> D.h. um auch die vertikalen Ortsfrequenzen/ Spektralkomponenten zu bekommen, ist die DCT entlang der Spalten nötig. (multipliziert Spaltenvektor mit T) Beispiel: Zu zerlegendes Bild: Bild, zerlegt in 8x8 Blöcke, DCT auf jeden (der Schwarz-Weiß Version) angewendet Helle Punkte: große DCT Spektralwerte/Ortsfrequenzen Erzeugt mit Matlab. -Interessant: größter Teil des Bildes ist schwarz! -> Also: sehr viele sehr kleine Werte -> sehr effizient codierbar. - Auch: häufig wiederkehrende Werte: Laufhängenkodierung anwendbar. In JPEG für die hohen Ortsfrequenzen benutzt, da sie meist sehr gering sind und zu Null quantisiert werden -> viele aufeinander folgende Nullen. Beispiel: gleichmäßige Flächen: hohe Spektralwerte bei niedrigen Ortstrenquentzen, kleine werte bei hohen Ortsfrequenzen. Wie sehen die verschiedenen resultierenden Teilbänder / Bilder der verschiedenen Ortsfrequenzen aus? -> Zusammenfassen der gleichen Ortsfrequenzen aller 8x8 DCT Blöcke zu neuen Bildern (64 neue Bilder) z.B. zusammenfassen aller Ortsfrequenzen mit k=0, l=0 zu neuem Bild der tiefsten Ortsfrequenzen, also entsprechendes Umsortieren der Spektralwerte. Ausschnitt, erste 4x4 Bilder der Ortsfreq. bzw. Teilbänder Frage: wie sieht ein Bild aus, bei dem alle vertikalen Kanten, also deren höhere Ortsfrequenzen, zu Null gesetzt sind? Antw: Die Kanten erscheinen im rekonstruierten Bild verwaschen, also bei 8x8 Blöcken mit einem Gradienten über diesen Block.