Hallo,
vor einiger Zeit habe ich unter
www.femtosoft.biz/fractals/fractal.html eine tolle Delphi-OpenSource-Quelle gefunden, die ich, damit die Oberfläche etwas schöner wird, leicht modifiziert habe.
Der wichtige Algorithmus und seine Umsetzung ist, wie gesagt, nicht von mir, sondern von Femtosoft.
Von Michael Barnsley wurde vor Jahren ein spezielles Verfahren zur Kompression von Darstellungen natürlicher Gebilde auf der Basis von Fraktalen entwickelt.
Dabei wird in den Abbildungen nach wiederkehrenden Strukturen gesucht und diese als Parameter einer affinen Abbildung gespeichert. Die Rekonstruktion des Originalbildes wird durch ein iteriertes Funktionensystem schnell erreicht.
Während das Zeichnen des Bildes relativ schnell erfolgt, ist die Ermittlung der affinen Abbildungen extrem aufwendig. Mit dem Algorithmus von Femtosoft wird das Prinzip demonstriert.
Nach dem Start wird eine Bitmap-Datei geladen. Dieses Bild sollte nicht zu groß sein, da die Umwandlungszeit exponentiell mit der Bildgröße steigt.
In der Umwandlung sucht das Programm die Strukturen in der Abbildung und berechnet Koeffizienten einer zugehörigen affinen Abbildung. Eine kleine Kompressionsrate ergibt qualitativ bessere Ergebnisse, aber auch größere komprimierte Dateien.
Ein fraktal komprimiertes Bild wird in 16 Iterationen wieder erzeugt; hier allerdings nur in Graustufen.
Damit die Dateigröße kleiner wird, komprimiere ich die Koeffizientenliste der affinen Abbildungen mit zlib.
Unter "Beispielen" finden sich ein paar in der Exe enthaltene fraktal komprimierte Abbildungen.
Interessant ist auch, dass beim Entpacken auch eine andere Komprimierungsrate gewählt werden kann: Ein kleinerer Wert verkleinert das Bild, ein höherer liefert eine größere Abbildung.
Vielleicht findet jemand das Verfahren interessant und kann irgendwie eine Beschleunigung von Kompression und Dekompression erreichen.
Ich grübele schon einige Jahre, musste aber bis jetzt aufgegeben, da es mir (noch) zu "kryptisch" ist. Dennoch finde ich die Grundidee faszinierend, wenn gleich die Kompressionsrate hinter der von zip oder jpg zurück bleibt und die Kompressionszeit ... naja
Außer meiner Umsetzung hänge ich auch die Originalquellen an.
Beste Grüße
Mathematiker
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein