Was soll das Ganze?
- Initialisieren: Eintragen der Luma-Werte des Beispielblockes oder des "Eyebrow"-Blockes aus Steven Smith's "Guide to Digital Signal Processing"
- 2D-DCT: Anwendung der zweidimensionalen, diskreten Cosinus-Transformation auf die Matrix, wie z.B. in den H.26x-Standards der ITU-T gefordert. Der Javascript-Quellcode steht hier. Die Berechnung folgt den Formeln von Farzin Deravis "Introduction to Image Processing and Communication". Verschiedene Werte können durch Veränderung der Matrix ausprobiert werden.
- Quantisierung: Abweichend von den Standards wird hier durch Division mit dem Quantisierungs"faktor" und anschliessende kaufmännische Rundung quantisiert. JPEG fordert im Baseline-Algorithmus eine Quantisierungsmatrix, H.26x quantisiert den ersten Koeffizienten mit eins.
- inverses Quantisieren: Multiplikation mit dem Quantisierungsfaktor. Datenverlust kann durch Modifikation der Matrix simuliert werden.
- inverse 2D-DCT: Der Javascript-Quellcode steht hier. Berechnung ebenfalls nach dem Buch von F. Deravis. Datenverlust kann durch Modifikation der Matrix simuliert werden.
- Abzug der ursprünglichen Werte des A7-Beispielblockes, um Ungenauigkeiten durch DCT, Quantisierung und Datenverlust deutlich zu machen.
|