Multimediale Wekzeuge Invertierung, Separierbarkeit

Werbung
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.
Herunterladen