---
title: Fractal Image Compression
url: https://www.emergentmind.com/topics/fractal-image-compression-fic
type: topic
---

# Fractal Image Compression

Searching arXiv for relevant papers on fractal image compression and related variants.
Fractal image compression (FIC) is a lossy image compression technique that leverages self-similarity within an image by representing the image as a set of contractive affine transforms, usually organized as an Iterated Function System (IFS). In the standard block-based setting, an image is partitioned into non-overlapping range blocks, larger overlapping domain blocks are sampled from the same image, and each range block is approximated by a transformed, down-sampled domain block with an associated contrast scaling and luminance offset. Because the transforms are contractive, decoding consists of iterating them until convergence to a unique fixed point, which gives FIC its characteristic combination of fast decoding, arbitrary zooming, and resolution independence; its main drawback is the high encoding time caused by range-to-domain matching [1501.02894].

## 1. Contractive models, affine mappings, and fixed-point structure

In the classical block-based FIC of Jacquin, one seeks a collection of contractive affine maps \(f_i:\mathbb R^2\to\mathbb R^2\), together with intensity transforms, such that repeated application reproduces the image. Each \(f_i\) is composed of a geometric part \(x\mapsto s_iR_ix+t_i\), where \(s_i\in(0,1)\) is a scale factor, \(R_i\) is one of 8 possible rotations/reflections, and \(t_i\in\mathbb R^2\) is a 2D translation, and a grey-level part \(I\mapsto a_iI+g_i\), where \(a_i\) is the contrast scaling and \(g_i\) is the luminance offset. The corresponding transform on a domain block \(D_i\) producing an approximation to a range block \(R_i\) can be written as
\[
\hat R_i(p)=a_i\,D_i\!\left(R_i^{-1}\!\left(\frac{p-t_i}{s_i}\right)\right)+g_i.
\]
A widely used simplified block model is
\[
t(D)(x,y)=s\cdot D(x',y')+o,
\]
where \(s\) is a contrast scaling, \(o\) is an additive luminance offset, and \((x',y')\) indexes the \(2\times2\) decimated coordinates of the domain block [0711.3500].

The contractivity condition, expressed in practice as \(|s|<1\) or \(|s_i|<1\), is central. Because the set of all transforms defines an IFS, the Banach fixed-point theorem guarantees convergence of the decoding iteration to a single image determined by the stored parameters. A complementary viewpoint emphasizes the Collage Theorem: the IFS that best approximates an image in the collage sense can be found by minimizing block-wise matching error. This mathematical structure explains why FIC stores transform parameters rather than explicit pixel values and why the decoded image is obtained by iterative reconstruction rather than direct inversion [2507.06325].

## 2. Standard block-based encoding and decoding

The baseline encoder partitions an image of size \(W\times H\) into non-overlapping range blocks of fixed size \(r\times r\). The collection of all possible \(r\times r\) blocks sampled on a coarser, often overlapping, grid forms the domain blocks; commonly, the sampling step is \(s=r/2\) or similar to speed up encoding versus a full search. In another common formulation, the image of size \(N\times N\) is tiled into non-overlapping range blocks of size \(B\times B\), while all overlapping domain blocks of size \(2B\times2B\) are collected, geometrically transformed by the eight isometries, and then down-sampled by averaging each \(2\times2\) pixel cell to form candidates of the same size as the range block [0711.3500].

For each range block \(R_i\), encoding searches over candidate domain blocks and allowable isometries to minimize a mean-squared or squared-error criterion. One standard objective is
\[
E(s,R,t,a,g)=\sum_{p\in\text{block}}\left[a\cdot D\!\left(R^{-1}\!\left(\frac{p-t}{s}\right)\right)+g-R_i(p)\right]^2.
\]
When the domain-to-range size ratio is fixed, the geometric part reduces to choosing a domain block and an isometry, and the intensity parameters are solved in closed form. With \(j\) indexing the \(r^2\) pixels in a block,
\[
a_i=\frac{\sum_j(D_j-\overline D)(R_{i,j}-\overline R_i)}{\sum_j(D_j-\overline D)^2},\qquad
g_i=\overline R_i-a_i\overline D.
\]
Equivalent notation used in fast FIC writes
\[
S^*=\frac{\langle R-\bar R,\;D-\bar D\rangle}{\|D-\bar D\|^2},\qquad
O^*=\bar R-S^*\bar D.
\]
The best match is the tuple yielding minimum residual error [0711.3500].

Many implementations are quadtree-based. If the match error exceeds a level-dependent threshold, a range block is split into four subblocks and the search continues at the next quadtree level. Typical implementations use four levels, such as \(16\times16\to8\times8\to4\times4\to2\times2\). This multiresolution mechanism concentrates coding effort on blocks that do not admit acceptable coarse-scale matches [1501.02894].

In storage terms, for \(N\) range blocks, each block stores a domain-block index, one of 8 isometries, and quantized intensity parameters. A representative accounting is
\[
\text{Total bits}\approx N\,[\,\log_2N_D+3+b_a+b_g\,],
\]
where \(N_D\) is the number of candidate domain blocks, \(3\) bits encode the isometry, and \(b_a,b_g\) encode contrast and offset. Decoding then reads these parameters and applies standard fractal decoding as an iterated IFS. Because all maps are contractive, convergence is guaranteed, and one may reconstruct from any initial image, including a uniform gray field [0711.3500].

## 3. Encoding complexity as the central bottleneck

The dominant cost of FIC is the exhaustive search over domain blocks, geometric transforms, and intensity parameters. In the brute-force classical setting, if \(N\) is the image side, \(m\) is the range-block side, the number of range blocks is \((N/m)^2\), the number of domain blocks is \((N/m)^2\) when stride equals \(m\), and the total complexity of domain-range matching is
\[
\mathcal O\!\left(T_{\text{trans}}\,\frac{N^4}{m^2}\right),
\]
where \(T_{\text{trans}}\) is the number of geometric transforms. In another widely cited formulation, exhaustive encoding is of order \(O(N^4)\), whereas no-search variants reduce this to \(O(N^2)\) by eliminating most domain-position comparisons [1501.02894].

Concrete runtime measurements illustrate the scale of the problem. For 512×512 images, one reported comparison gives exhaustive search at 15–19 s, Conci’s static fractal-dimension classification at 2.33–3.54 s, a dynamic fractal-dimension method at 1.77–2.74 s, and no-search at 0.49–0.52 s, with the no-search method trading speed for poor PSNR [1206.4880]. In a medical-imaging CUDA implementation, a 512×512 image required 2369.4 ms on a single-thread CPU and 3.52 ms on an NVIDIA Tesla C2050 GPU, while a 1024×1024 image required 39276.5 ms on CPU and 45.41 ms on GPU [1404.0774].

The computational bottlenecks are repeated memory loads of overlapping domains, per-block least-squares computations over \(m=n^2\) pixels, and the sheer number of domain-range comparisons. For a 512×512 image with \(n=4\), one implementation notes \(N_d\approx250\)K and \(N_r\approx16\)K, producing roughly \(32\times10^9\) comparisons. This concentration of cost in the encoder, with comparatively cheap decoding, is the defining algorithmic asymmetry of FIC [1404.0774].

## 4. Fast matching strategies and search-space reduction

A large fraction of the FIC literature is devoted to reducing the search pool or replacing exhaustive parameter estimation with structured heuristics. The no-search method exploits the empirical observation that the best matching domain block for a given range block is overwhelmingly likely to be its surrounding block whose center coincides with the range block’s center. It therefore fixes the domain-block position to be the same center as the range block, applies a \(2\times2\) averaging filter, computes the optimal intensity parameters, and either stores the match or recursively splits the block if the error exceeds a threshold. The modified no-search algorithm augments this with a two-phase scheme: after a standard no-search attempt, it tests whether the four subblocks of the range block have means close to the overall mean and, if so, evaluates only two candidate contrast scalings per level, namely \(S_1=\{0.2,0.5\}\), \(S_2=\{0.4,0.65\}\), and \(S_3=\{0.5,0.9\}\). On Lena at comparable PSNR \(\approx34.5\) dB, the proposed algorithm reported 0.947 bpp and encoding time \(\approx0.645\) min, compared with 0.974 bpp and \(\approx0.645\) min for no-search, 0.947 bpp and \(\approx14.3\) min for Tong and Wong, and 0.947 bpp and \(\approx2.1\) min for Saupe [1501.02894].

Entropy-based domain-pool reduction is another widely used strategy. In one formulation, the entropy of each decimated domain block is computed, only domain blocks with entropy greater than a threshold are retained, and contrast scaling is chosen from a tiny level-dependent predefined set rather than scanning \([0,1]\). The prescribed sets are: step 1, \(S\in\{0.1\}\); step 2, \(S\in\{0.2,0.4\}\); step 3, \(S\in\{0.3,0.8\}\); and step 4, \(S\in\{0.5,0.9\}\). Experimental results on Lena, Baboon, Boat, and F16 show the proposed scheme is consistently \(\sim2\)–\(5\times\) faster at comparable PSNR, with compression ratio within 0–10% of the entropy-based method; a related report states encoding-time reductions of roughly 50–70% for the same PSNR and nearly identical CR [1502.00324].

Dynamic domain classification replaces a fixed global domain pool with a separate domain pool for each range block, selected by local fractal dimension. Differential box-counting is used to estimate the fractal dimension of each overlapping domain block, domain blocks are stored in a height-balanced binary search tree keyed by fractal dimension, and for each range block only those domains within a band \(d_r-D_f\le d_a\le d_r+D_f\) are searched, with \(D_f=(F_{\max}-F_{\min})/3\). The resulting complexity is approximately
\[
O(N_d\log N_d + N_r\log N_d + N_r\cdot(N_d/3)),
\]
which yields roughly a threefold reduction in matches versus exhaustive search, plus a small setup cost [1206.4880].

These methods share a common principle: they reduce the effective number of candidate matches before the least-squares residual is evaluated. A plausible implication is that practical FIC performance depends at least as much on domain-pool design and parameter discretization as on the underlying IFS formalism.

## 5. Alternative formulations and recent optimization directions

Not all fractal image compression methods follow the classical Barnsley–Jacquin range-domain matching template. V-variable image compression defines a different multiscale representation in which, for each level \(n\), there are at most \(V\) distinct prototypes among the \(4^n\) image pieces. Formally, a \(V\)-variable code-tree has at most \(V\) distinct subtree shapes at each depth, and the corresponding attractor is a \(V\)-variable fractal. For a 512×512 grayscale image, storage reduces to skeleton-tree labels, labelling functions \(Q_0,\dots,Q_9\), and the final one-pixel values for the \(V\) prototypes at level 9. The compression ratio is defined as \(CR=N_{\text{orig}}/N_{\text{comp}}\), with
\[
MSE=\frac{1}{512^2}\sum_{i,j}\bigl[I(i,j)-I_V(i,j)\bigr]^2,\qquad
PSNR=10\log_{10}\!\left(\frac{255^2}{MSE}\right).
\]
On the Enya test image, \(V=256\) gives \(N_{\text{comp}}=5120\) B, \(CR\approx51.2\), \(PSNR\approx27.72\) dB, while \(V=1024\) gives \(N_{\text{comp}}=19456\) B, \(CR\approx13.5\), \(PSNR\approx31.61\) dB [1411.7855].

Recent optimization work has also used fractal or box-counting dimension as a search-pruning device inside otherwise standard FIC. One such method estimates a block’s fractal dimension by partitioning it into non-overlapping boxes of size \(r\times r\), computing each box mean \(\mu_k\), setting
\[
N(r)=\#\{k:\mu_k>T_1\},
\]
and fitting the slope of \(\log N(r)\) versus \(\log(1/r)\). In the integrated pipeline, each range block is tested: if its estimated dimension \(\hat D(R)<T_2\), the full domain search is skipped and a trivial flat encoding may be assigned; otherwise the encoder performs standard exhaustive search. The reported complexity becomes
\[
\mathcal O\!\Bigl((N/m)^2m^2\log m + p\,T_{\text{trans}}\,N^4/m^2\Bigr),
\]
where \(p\) is the fraction of range blocks subjected to full search. With \(T_1=50\) and \(T_2=1.6\), the Monkey image at \(m=16\) changed from baseline \(CR=81.92\), \(RMSE=12.86\), encoding time 12.95 s to \(CR=118.43\), \(RMSE=17.27\), encoding time 3.56 s when box-counting, transform reduction, and contrast-bit optimization were combined; for the Albert Einstein image at \(m=16\), the combined method reported \(CR=104.90\), \(RMSE=19.27\), encoding time 47.91 s [2507.06325].

These alternatives show that “fractal image compression” names a family of self-similarity-based coders rather than a single algorithm. Some methods encode explicit block correspondences and affine photometric parameters; others encode prototype hierarchies or use dimension estimates to decide which blocks merit expensive search.

## 6. Security, applications, and limitations

FIC has been associated with applications requiring high compression ratio, fast decoding, and resolution independence, including texture mapping, pattern recognition, and image watermarking [1501.02894]. In medical imaging, the same properties motivate interest in fractal magnification and high compression ratios, since medical images are highly similar within the image itself and fractal magnification can present the reconstructed image in a highly readable form [1404.0774]. At the same time, the method is irreversible, information loss is especially troublesome in the medical imaging, and \(2\times\) or \(4\times\) magnification yields synthetic detail consistent with low-frequency structure yet no true high-frequency recovery [1404.0774].

Security-oriented work has treated the compressed fractal code itself as the object of protection. In secure fractal image coding, the encoder first computes the usual domain index, isometry, \(a_i\), and \(g_i\) for each block, forms \(X_i=(a_i\|g_i)\) packed into 12 bits, and encrypts these words in a chained mode:
\[
X'_0=E(X_0\oplus V_0,K),\qquad
X'_i=E(X_i\oplus X'_{i-1},K),\quad i=1,\dots,N-1.
\]
At the decoder,
\[
X_0=D(X'_0,K)\oplus V_0,\qquad
X_i=D(X'_i,K)\oplus X'_{i-1},
\]
after which \(X_i\) is unpacked into \((a_i,g_i)\) and standard fractal decoding proceeds. The rationale for encrypting only \(a_i\) and \(g_i\) is empirical: sensitivity tests showed that corrupting these parameters yields a rapid PSNR collapse, whereas corrupting isometry or domain index is less damaging. The method preserves the file format, keeps secure in perception, and, because no extra bits are added, leaves the compressed bit-rate unchanged and recovers identical PSNR/SSIM to the non-secure FIC after correct decryption [0711.3500].

The reported overhead is modest. Using a 550 MHz CPU, encryption and decryption overheads for Lena (128×128) were \(Etr=8.9\%\) and \(Dtr=12.2\%\); for Boat (256×256), \(Etr=4.9\%\) and \(Dtr=7.7\%\); and for Eltoro (512×512), \(Etr=2.2\%\) and \(Dtr=4.4\%\). The experiments used RC4 with a 128-bit key, while noting that the encryption function can be any secure 128-bit cipher or stream cipher such as RC4 or AES and that AES-128 in CBC can replace RC4 [0711.3500].

A recurring misconception is that resolution independence implies faithful recovery of fine-scale information. The literature supports a narrower claim: decoding is fast, convergence is guaranteed by contractivity, and the representation can be iterated at arbitrary grids, but the reconstructed detail remains constrained by the stored transforms rather than by unavailable original high-frequency data. Another persistent tension concerns compression quality versus encode-time practicality. The record across no-search, entropy-pruned, dynamic-classification, GPU, box-counting, and secure variants indicates that the central research problem in FIC is not decoding, but encoder design: how to preserve the fixed-point advantages of self-similar coding while making search, parameterization, and application-specific constraints computationally acceptable.

Source: https://www.emergentmind.com/topics/fractal-image-compression-fic