prev up inhalt next


5.6 Fraktale Kompression

Iterierte Funktionssysteme sind in der Lage, mit wenigen Regeln komplexe, natürlich aussehende Bilder zu erzeugen. Hierbei wird eine Folge von Punkten im R 2 durch fortgesetzte Anwendung von affinen Transformationen durchlaufen. Jede Transformation ist definiert durch eine 2 × 2 - Deformationsmatrix A , einen Translationsvektor b und eine Anwendungswahrscheinlichkeit p , wodurch ein Punkt $\overline{x}$ abgebildet wird auf A$\overline{x}$ + b . Zum Beispiel erzeugen folgende 4 Regeln das Blatt eines Farns:





Button Start führt 10.000 Iterationen aus.
Mit gedrückter Maustaste
kann Zoom-Bereich festgelegt werden.

Eine alternative Sichtweise zur Definition eines fraktalen Bildes verlangt die Selbstähnlichkeit von Teilen des Bildes mit dem Ganzen.



Beispielsweise sei ein Rechteck R gesucht, so daß sich sein Inhalt, jeweils auf ein Viertel verkleinert, im linken oberen, linken unteren und rechten unteren Quadranten wiederfindet. Beginnend mit einem beliebigen Rechteckinhalt werden die 3 Quadranten so lange als skalierte Versionen des Gesamtrechtecks ersetzt, bis wir nahe am Fixpunkt dieser Iterationen angelangt sind. Das Ergebnis ist das sogenannte Sierpinsky-Dreieck.



Sierpinsky-Dreieck

Im Gegensatz zu einem Pixelbild mit fester Auflösung in horizontaler und vertikaler Richtung läßt sich in ein fraktal erzeugtes Bild beliebig reinzoomen, da sein Inhalt durch eine auflösungsunabhängige Rechenvorschrift definiert ist.
Ziel der fraktalen Kompression ist es, in einer gegebenen Bildvorlage Selbstähnlichkeiten zu erkennen und diese durch ein System von affinen Transformationen zu beschreiben. Beim Entpacken können dann die Auswirkungen dieser Transformationen in beliebiger Detaillierung berechnet werden.

Zur fraktalen Kompression eines S/W -Bildes G werden zunächst die schwarzen Bildteile durch rechteckige, disjunkte Domain-Blöcke D1,D2,...,Dn überdeckt. Dann wird zu jedem Domain-Block Di ein zu ihm selbstähnlicher Range-Block Ri gesucht, d.h. ein Teilbereich Ri des Bildes G und eine affine, kontraktive Abbildung wi mit

d.h., das durch wi erzeugte Abbild des Inhaltes von Ri liegt sehr nah (im Sinne einer geeigneten Metrik) am Inhalt von Di .


Domain-Block Di wird angenähert durch wi(Ri)

In einer praktischen Implementierung sind alle Di Teile einer rechteckigen Kachelung von G . Wegen der Kontraktivität der affinen Abbildungen sind die Regionen Ri (ggf. überlappende) Rechtecke mit jeweils doppelter Kantenlänge. Bei der Wahl der wi beschränkt man sich auf jeweils eine der 8 elementaren Verformungen mithilfe von Spiegelungen an den x -, y - und Diagonal-Achsen sowie Rotationen um 0, 90, 180 und 270 Grad.



Die 8 möglichen Transformationsmatrizen


Map # Dx Dy Rx Ry Symmetrie
1 0 0 0 0 0
2 4 4 0 0 0
3 8 8 0 0 2
4 12 12 0 0 0
Ausgangsbild, Domain-Blöcke, Range-Blöcke, 4 affine Abbildungen


Bild G und eine Überdeckung mit Domainblöcken



Suche nach geeigneten Range-Blöcken




Zuordnung von Range- und Domainblöcken


Koordiantensystem zur Referenz einer linken unteren Reckteck-Ecke

Map # Dx Dy Rx Ry Symmetrie
1 0 2.5 0 2 0
2 1 2.5 0 2 0
3 2 2 2 2 0
4 3 2 2 2 0
5 2 3 2 2 0
6 3 3 2 2 0
7 2 1 2 0 0
8 3 1 2 0 0
9 3 0 2 0 0
Beschreibung eines Schwarzweißbildes durch 9 affine Abbildungen
von Range-Blöcken mit Koordinanten Rx,Ry
auf Domain-Blöcke mit Koordinanten Dx,Dy .

Eine einfache Methode zur Bestimmung des Attraktors A eines IFS (iterierten Funktionensystems) ist der Escape-Time-Algorithmus:

Da alle Domain-Blöcke D1,...,Dn eine Überdeckung der schwarzen Bildteile von R ergeben, hat jedes x $\in$ D=D1$\bigcup$D2$\bigcup$...$\bigcup$Dn durch die für seine Domain zuständige Abbildung wi : Ri $\rightarrow$ Di ein eindeutiges Urbild f (x) : = wi- 1(x) .
Sei eine maximale Iterationszahl MAX_ITER vorgegeben.

Färbe alle Pixel des (vorläufigen) Attraktors A schwarz.
Für jedes Pixel x 0 tue:
x = x 0
for (z = 0; ((z++ < MAX_ITER) && (x $\in$ D)); x = f(x));
if (x $\not\in$ D) färbe x weiß (d.h. gehört nicht zum Attraktor)


Auswirkungen der ersten 4 Iterationen des Escape-Time-Algorithmus

Bei Grauwertbildern wird der Helligkeitswert als 3. Dimension geführt, und die affinen Abbildungen haben die Form:



wobei die Koeffizienten ai,bi,ci,di Transformationen beschreiben gemäß der 8 möglichen Symmetrien mit einem Kontraktivitätsfaktor s = ${\frac{1}{2}}$ . P ist eine feste Konstante unterhalb des Kontraktivitätsfaktors s , Qi eine individuelle Helligkeitsverschiebung. Der Grauwert z wird daher abgebildet auf

Die Domain-Blöcke Di bilden nun eine Partition des Rechtecks R ; die Range-Blöcke mit doppelter Kantenlänge beginnen mit ihrer linken unteren Ecke an endlich vielen, dafür vorgesehenen Gitterpunkten. Zur Bestimmung des Attraktors werden, ausgehend von einem beliebigen Rechteckinhalt, immer wieder die lokalen Abbildungen wi auf ihre Range-Blöcke Ri angewendet und berechnen ein Update der zugehörigen Domain-Blöcke.

13 14 15 16
9 10 11 12
5 6 7 8
1 2 3 4

Partitionierung des Bildes in Domain-Blöcke


einige Anfangspositionen der Range-Blöcke


Map Rx Ry Symmetrie Q
1 0 8 0 -7
2 0 8 6 29
3 0 4 4 50
4 0 8 0 -4
5 0 8 0 -7
6 3 4 2 50
7 3 5 5 -16
8 0 6 3 50
9 0 8 0 -7
10 2 5 0 58
11 0 8 2 48
12 0 8 1 32
13 0 8 0 -7
14 0 5 5 -12
15 0 8 5 23
16 0 8 0 -7

Beispiel für fraktale Beschreibung eines Grauwertbildes
durch 16 affine Abbildungen



jan.fif, 26.592 KBytes
fraktal komprimiert
Original-Auflösung 696 x 924 x 24
Kompression 72:1


Vergrößerung eines Ausschnitts
einer JPEG-Komprimierung
ausgehend vom selben Original
mit Kompressionsrate 71:1


prev up inhalt next