Bildkompression

unter Verwendung der Kosinustransformation

Beschreibung
Die zweidimensionale diskrete Kosinustransformation findet Anwendung in der Speicherung von Bildern im JPG-Format. Das Originalbild wird dabei in -Blöcke unterteilt, welche jeweils einer zweidimensionalen diskreten Kosinustransformation unterzogen werden. Alle Koeffizienten mit einen betragsmäßig vergleichsweise kleinen Wert werden auf Null gesetzt, sodass diese Werte nicht gespeichert werden müssen. Um aus den gespeicherten Koeffizienten wieder ein Bild zu erstellen, wird zu allen -Blöcken eine inverse zweidimensionale diskrete Kosinustransformation durchgeführt. Anschließend werden die einzelnen Blöcke wieder zum Gesamtbild zusammengesetzt.
Beispiel
Durch den Aufruf ExampleData.image wird ein (schwarz-weiß) Bild als Matrix (zweidimensionales Array) eingelesen.
Anschließend wird das zuvor beschriebene Verfahren zur Demonstration der JPG-Komprimierung durchgeführt. Als Ergebnis wird das Originalbild sowie das komprimierte Bild dargestellt.
Tipp: Verändere die Variable k im Quellcode und aktualisiere die Vorschau, um die Kompressionsrate anzupassen. Verwende dazu Werte zwischen 0 und 50.
Vorschau aktualisieren
Beispiel
Während die zweidimensionale diskrete Kosinustransformation sehr gut zur Kompression von Fotos geeignet ist, lässt sich das Verfahren weniger gut zu Kompression von Zeichnungen einsetzen.
Als Beispiel dazu wird ein Bild erzeugt, dessen Pixel zufällig entweder grau oder schwarz sind. Anschließend wird das Verfahren wie zuvor durchgeführt. Das Ergebnis zeigt, dass das komprimierte Bild nicht mehr nur aus zwei sondern aus diversen Grautönen besteht.
Vorschau aktualisieren