- Kosinustransformation
-
Die Diskrete Kosinustransformation (DCT, engl.: „Discrete Cosine Transformation“) ist eine lineare, orthogonale Transformation, die ähnlich der Diskreten Fouriertransformation (DFT) ein zeitdiskretes Signal vom Orts- in den Frequenzbereich transformiert. 1974 wurde sie erstmals von Ahmed, Natarjan und Rao erwähnt. Seit diesem Zeitpunkt ist sie die am weitesten verbreitete Transformation zur Redundanzreduktion von Bildsignalen.
Gründe für diese Präferenz:
- Die DCT transformiert Bilddaten effizient in eine Form, die gut komprimiert werden kann.
- Im Gegensatz zur DFT rechnet man bei der DCT nicht mit komplexen, sondern nur mit reellen Koeffizienten.
- Die DCT kann sowohl in Software als auch in Hardware effizient implementiert werden.
- Über die Verwendung von DSPs bzw. MACs lässt sich die DCT-Berechnung stark beschleunigen.
Im Folgenden werden die Abkürzungen FDCT für forward discrete cosine transform und IDCT für inverse discrete cosine transform verwendet.
Inhaltsverzeichnis
Berechnung der zweidimensionalen (2D) FDCT
Um Korrelation in horizontaler und vertikaler Bildrichtung zu erfassen, wird die zweidimensionale Variante der FDCT benutzt. Zu diesem Zweck wird das Bild in Blöcke von N×N Bildpunkten zerlegt. Normalerweise ist N=8. Die folgende Gleichung beschreibt die zweidimensionale FDCT für einen N×N-Block eines Bildes.
In dieser Gleichung sind fi,j die N×N Punkte (i,j) des Eingangsblocks, Fx,y sind die N×N DCT-Koeffizienten (x,y) und C(x), C(y) sind die Konstanten:
Die FDCT repräsentiert jeden Block eines Bildausschnittes durch gewichtete Summen von 2D-Kosinusfunktionen, auch Basisfunktionen genannt.
Das Muster links oben hat die niedrigste "Frequenz" und ist nur ein Einheitsblock. Von links nach rechts nimmt die Anzahl der "Zyklen" zwischen hell und dunkel in horizontaler Richtung zu. Diese "Zyklen" repräsentieren horizontal zunehmende räumliche Frequenz. Von oben nach unten nimmt hingegen die Anzahl der "Zyklen" zwischen hell und dunkel in vertikaler Richtung zu. Folglich nehmen sowohl die horizontalen als auch die vertikalen Frequenzen in diagonaler Richtung gleichzeitig zu. Zur Rekonstruktion der Bildpunkte eines Blocks werden diese Basismuster mit dem jeweiligen Gewichtungsfaktor multipliziert und dann addiert. Dieser Faktor entspricht dem jeweiligen DCT-Koeffizienten Fx,y
Berechnung der zweidimensionalen (2D) IDCT
Die IDCT (inverse DCT) rekonstruiert einen Block mit Bildpunkten aus einem Datenfeld mit DCT-Koeffizienten. Als Eingang bedient sich die IDCT eines Blocks von N×N DCT-Koeffizienten Fx,y und rekonstruiert dann nach folgender Gleichung den Block aus den Bildpunkten fi,j.
Die Konstanten C(y) und C(x) sind dieselben wie für die FDCT.
Wie aus der Abbildung rechts ersichtlich kann mit relativ guter Genauigkeit aus sechs Koeffizienten das Originalbild rekonstruiert werden. Der erste Koeffizient (0,0) wird mit einer Gewichtung von 967,5 multipliziert und mit der IDCT transformiert. Dieser Koeffizient ist meistens der wichtigste, denn er gibt den durchschnittlichen Grauwert oder "Schatten" des Blocks an. In diesem Fall wird der oben beschriebene Vorgang noch fünfmal für die weiteren DCT-Koeffizienten wiederholt. Da in den meisten Fällen die Gewichtung der anderen DCT-Koeffizienten, wie in diesem Beispiel, relativ niedrig ist, kann man die meisten Blöcke mit einer geringen Anzahl von DCT-Koeffizienten rekonstruieren.
Siehe auch
- Faltung
- Gabor-Transformation
- Laplace-Transformation
- Diskrete Fourier-Transformation
- Wavelet-Transformation
- Modifizierte diskrete Kosinustransformation
- Einsatz der DCT zur Bildkompression beim JPEG-Format
Literatur
- Ahmed, N., Natarajan T. und Rao K. R.: Discrete cosine transform. IEEE Trans. Computers, Januar 1974
- Richardson, Ian E. G.: Video Codec Design. John Wiley & Sons, LTD, 2002. ISBN 0-471-48553-5
- Philipp W.Besslich, Tian Lu: Diskrete Orthogonaltransformationen. Springer Verlag, 1990. ISBN 3-540-52151-8
Wikimedia Foundation.