Fractal compression

Last updated
2 triangles, example to show how fractal compression works Zasada dzialania ifs 1.png
2 triangles, example to show how fractal compression works

Fractal compression is a lossy compression method for digital images, based on fractals. The method is best suited for textures and natural images, relying on the fact that parts of an image often resemble other parts of the same image. [1] Fractal algorithms convert these parts into mathematical data called "fractal codes" which are used to recreate the encoded image.

Contents

Iterated function systems

Fractal image representation may be described mathematically as an iterated function system (IFS). [2]

For binary images

We begin with the representation of a binary image, where the image may be thought of as a subset of . An IFS is a set of contraction mappings ƒ1,...,ƒN,

According to these mapping functions, the IFS describes a two-dimensional set S as the fixed point of the Hutchinson operator

That is, H is an operator mapping sets to sets, and S is the unique set satisfying H(S) = S. The idea is to construct the IFS such that this set S is the input binary image. The set S can be recovered from the IFS by fixed point iteration: for any nonempty compact initial set A0, the iteration Ak+1 = H(Ak) converges to S.

The set S is self-similar because H(S) = S implies that S is a union of mapped copies of itself:

So we see the IFS is a fractal representation of S.

Extension to grayscale

IFS representation can be extended to a grayscale image by considering the image's graph as a subset of . For a grayscale image u(x,y), consider the set S = {(x,y,u(x,y))}. Then similar to the binary case, S is described by an IFS using a set of contraction mappings ƒ1,...,ƒN, but in ,

Encoding

A challenging problem of ongoing research in fractal image representation is how to choose the ƒ1,...,ƒN such that its fixed point approximates the input image, and how to do this efficiently.

A simple approach [2] for doing so is the following partitioned iterated function system (PIFS):

  1. Partition the image domain into range blocks Ri of size s×s.
  2. For each Ri, search the image to find a block Di of size 2s×2s that is very similar to Ri.
  3. Select the mapping functions such that H(Di) = Ri for each i.

In the second step, it is important to find a similar block so that the IFS accurately represents the input image, so a sufficient number of candidate blocks for Di need to be considered. On the other hand, a large search considering many blocks is computationally costly. This bottleneck of searching for similar blocks is why PIFS fractal encoding is much slower than for example DCT and wavelet based image representation.

The initial square partitioning and brute-force search algorithm presented by Jacquin provides a starting point for further research and extensions in many possible directions—different ways of partitioning the image into range blocks of various sizes and shapes; fast techniques for quickly finding a close-enough matching domain block for each range block rather than brute-force searching, such as fast motion estimation algorithms; different ways of encoding the mapping from the domain block to the range block; etc. [3]

Other researchers attempt to find algorithms to automatically encode an arbitrary image as RIFS (recurrent iterated function systems) or global IFS, rather than PIFS; and algorithms for fractal video compression including motion compensation and three dimensional iterated function systems. [4] [5]

Fractal image compression has many similarities to vector quantization image compression. [6]

Features

With fractal compression, encoding is extremely computationally expensive because of the search used to find the self-similarities. Decoding, however, is quite fast. While this asymmetry has so far made it impractical for real time applications, when video is archived for distribution from disk storage or file downloads fractal compression becomes more competitive. [7] [8]

At common compression ratios, up to about 50:1, fractal compression provides similar results to DCT-based algorithms such as JPEG. [9] At high compression ratios fractal compression may offer superior quality. For satellite imagery, ratios of over 170:1 [10] have been achieved with acceptable results. Fractal video compression ratios of 25:1–244:1 have been achieved in reasonable compression times (2.4 to 66 sec/frame). [11]

Compression efficiency increases with higher image complexity and color depth, compared to simple grayscale images.

Resolution independence and fractal scaling

An inherent feature of fractal compression is that images become resolution independent [12] after being converted to fractal code. This is because the iterated function systems in the compressed file scale indefinitely. This indefinite scaling property of a fractal is known as "fractal scaling".

Fractal interpolation

The resolution independence of a fractal-encoded image can be used to increase the display resolution of an image. This process is also known as "fractal interpolation". In fractal interpolation, an image is encoded into fractal codes via fractal compression, and subsequently decompressed at a higher resolution. The result is an up-sampled image in which iterated function systems have been used as the interpolant. [13] Fractal interpolation maintains geometric detail very well compared to traditional interpolation methods like bilinear interpolation and bicubic interpolation. [14] [15] [16] Since the interpolation cannot reverse Shannon entropy however, it ends up sharpening the image by adding random instead of meaningful detail. One cannot, for example, enlarge an image of a crowd where each person's face is one or two pixels and hope to identify them.

History

Michael Barnsley led the development of fractal compression from 1985 at the Georgia Institute of Technology (where both Barnsley and Sloan were professors in the mathematics department). [17] The work was sponsored by DARPA and the Georgia Tech Research Corporation. The project resulted in several patents from 1987. [18] Barnsley's graduate student Arnaud Jacquin implemented the first automatic algorithm in software in 1992. [19] [20] All methods are based on the fractal transform using iterated function systems. Michael Barnsley and Alan Sloan formed Iterated Systems Inc. [21] in 1987 which was granted over 20 additional patents related to fractal compression.

A major breakthrough for Iterated Systems Inc. was the automatic fractal transform process which eliminated the need for human intervention during compression as was the case in early experimentation with fractal compression technology. In 1992, Iterated Systems Inc. received a US$2.1 million government grant [22] to develop a prototype digital image storage and decompression chip using fractal transform image compression technology.

Fractal image compression has been used in a number of commercial applications: onOne Software, developed under license from Iterated Systems Inc., Genuine Fractals 5 [23] which is a Photoshop plugin capable of saving files in compressed FIF (Fractal Image Format). To date the most successful use of still fractal image compression is by Microsoft in its Encarta multimedia encyclopedia, [24] also under license.

Iterated Systems Inc. supplied a shareware encoder (Fractal Imager), a stand-alone decoder, a Netscape plug-in decoder and a development package for use under Windows. The redistribution of the "decompressor DLL" provided by the ColorBox III SDK was governed by restrictive per-disk or year-by-year licensing regimes for proprietary software vendors and by a discretionary scheme that entailed the promotion of the Iterated Systems products for certain classes of other users. [25]

ClearVideo  also known as RealVideo (Fractal)  and SoftVideo were early fractal video compression products. ClearFusion was Iterated's freely distributed streaming video plugin for web browsers. In 1994 SoftVideo was licensed to Spectrum Holobyte for use in its CD-ROM games including Falcon Gold and Star Trek: The Next Generation A Final Unity. [26]

In 1996, Iterated Systems Inc. announced [27] an alliance with the Mitsubishi Corporation to market ClearVideo to their Japanese customers. The original ClearVideo 1.2 decoder driver is still supported [28] by Microsoft in Windows Media Player although the encoder is no longer supported.

Two firms, Total Multimedia Inc. and Dimension, both claim to own or have the exclusive licence to Iterated's video technology, but neither has yet released a working product. The technology basis appears to be Dimension's U.S. patents 8639053 and 8351509, which have been considerably analyzed. [29] In summary, it is a simple quadtree block-copying system with neither the bandwidth efficiency nor PSNR quality of traditional DCT-based codecs. In January 2016, TMMI announced that it was abandoning fractal-based technology altogether.

Research papers between 1997 and 2007 discussed possible solutions to improve fractal algorithms and encoding hardware. [30] [31] [32] [33] [34] [35] [36] [37] [38]

Implementations

A library called Fiasco was created by Ullrich Hafner. In 2001, Fiasco was covered in the Linux Journal . [39] According to the 2000-04 Fiasco manual, Fiasco can be used for video compression. [40] The Netpbm library includes the Fiasco library. [41] [42]

Femtosoft developed an implementation of fractal image compression in Object Pascal and Java. [43]

See also

Notes

  1. May, Mike (1996). "Fractal Image Compression". American Scientist. 84 (5): 442–451. Bibcode:1996AmSci..84..442M. JSTOR   29775747. ProQuest   215266230.
  2. 1 2 Fischer, Yuval (1992-08-12). Przemyslaw Prusinkiewicz (ed.). SIGGRAPH'92 course notes - Fractal Image Compression (PDF). SIGGRAPH. Vol. Fractals - From Folk Art to Hyperreality. ACM SIGGRAPH.
  3. Saupe, Dietmar; Hamzaoui, Raouf (November 1994). "A review of the fractal image compression literature". ACM SIGGRAPH Computer Graphics. 28 (4): 268–276. doi:10.1145/193234.193246. S2CID   10489445.
  4. Lacroix, Bruno (1999). Fractal image compression (Thesis). doi: 10.22215/etd/1999-04159 . OCLC   1103597126. ProQuest   304520711.
  5. Fisher, Yuval (2012). Fractal Image Compression: Theory and Application. Springer Science & Business Media. p. 300. ISBN   978-1-4612-2472-3.
  6. Henry Xiao. "Fractal Compression". 2004.
  7. John R. Jensen, "Remote Sensing Textbooks", Image Compression Alternatives and Media Storage Considerations (reference to compression/decompression time), University of South Carolina, archived from the original on 2008-03-03
  8. Steve Heath (23 August 1999). Multimedia and communications technology. Focal Press. pp. 120–123. ISBN   978-0-240-51529-8. Focal Press link
  9. Sayood, Khalid (2006). Introduction to Data Compression. Elsevier. pp. 560–569. ISBN   978-0-12-620862-7.
  10. Wee Meng Woon; Anthony Tung Shuen Ho; Tao Yu; Siu Chung Tam; Siong Chai Tan; Lian Teck Yap (2000). "Achieving high data compression of self-similar satellite images using fractal". IGARSS 2000. IEEE 2000 International Geoscience and Remote Sensing Symposium. Taking the Pulse of the Planet: The Role of Remote Sensing in Managing the Environment. Proceedings (Cat. No.00CH37120). Vol. 2. pp. 609–611. doi:10.1109/IGARSS.2000.861646. ISBN   0-7803-6359-0. S2CID   14516581.
  11. Fisher, Y. (July 1995). Fractal encoding of video sequences. Fractal image encoding and analysis. Trondheim. INIST   1572685.
  12. Walking, Talking Web Archived 2008-01-06 at the Wayback Machine Byte Magazine article on fractal compression/resolution independence
  13. He, Chuan-jiang; Li, Gao-ping; Shen, Xiao-na (May 2007). "Interpolation decoding method with variable parameters for fractal image compression". Chaos, Solitons & Fractals. 32 (4): 1429–1439. Bibcode:2007CSF....32.1429H. doi:10.1016/j.chaos.2005.11.058.
  14. Navascués, M. A.; Sebastián, M. V. (2006). "Smooth fractal interpolation". Journal of Inequalities and Applications. 2006: 1–20. doi: 10.1155/JIA/2006/78734 . S2CID   20352406.
  15. Uemura, Satoshi; Haseyama, Miki; Kitajima, Hideo (28 January 2003). "EFIFを用いた自己アフィンフラクタル図形の拡大処理に関する考察" [A Note on Expansion Technique for Self-Affine Fractal Objects Using Extended Fractal Interpolation Functions]. IEICE Technical Report (in Japanese). 102 (630): 95–100. doi:10.11485/itetr.27.9.0_95. NAID   110003171506.
  16. Kuroda, Hideo; Hu, Xiaotong; Fujimura, Makoto (1 February 2003). "フラクタル画像符号化におけるスケーリングファクタに関する考察" [Studies on Scaling Factor for Fractal Image Coding]. The Transactions of the Institute of Electronics, Information and Communication Engineers (in Japanese). 86 (2): 359–363. NAID   110003170896.
  17. Barnsley, Michael; Sloan, Alan (January 1988). "A Better Way to Compress Images". Byte. pp. 215–223.
  18. U.S. patent 4,941,193   Barnsley and Sloan's first iterated function system patent, filed in October 1987
  19. Using Fractal Coding to Index Image Content for a Digital Library Tech report
  20. Jacquin, A.E. (1992). "Image coding based on a fractal theory of iterated contractive image transformations". IEEE Transactions on Image Processing. 1 (1): 18–30. Bibcode:1992ITIP....1...18J. CiteSeerX   10.1.1.456.1530 . doi:10.1109/83.128028. PMID   18296137.
  21. Iterated Systems Inc. changed its name to MediaBin Inc. Inc. in 2001 and in turn was bought out by Interwoven, Inc. in 2003)
  22. NIST SP950-3, "Capturing and Integrating Patient Healthcare Information to Improve Accessibility"; see page 36, "MediaBin Fractal-Based Technology to Compress Digital Image Files" Archived 2015-09-23 at the Wayback Machine
  23. Genuine Fractals Product Review
  24. "MAW 1998: Theme Essay". www.mathaware.org. Archived from the original on 31 August 2016. Retrieved 18 April 2018.
  25. Aitken, William (May 1994). "The big squeeze". Personal Computer World.
  26. 1994 Manual specifying on page 11 SoftVideo under license to Spectrum Holobyte
  27. "Mitsubishi Corporation Inks Agreement With Iterated Systems" (Press release). Iterated Systems. 29 October 1996. Archived from the original on 8 July 2012.
  28. "Windows Media Player for Windows XP Supported Codecs". 31 October 2003. Archived from the original on 28 October 2004.
  29. "April - 2014 - Due Diligence Study of Fractal Video Technology". paulschlessinger.wordpress.com. Retrieved 18 April 2018.
  30. Kominek, John (1 June 1997). "Advances in fractal compression for multimedia applications". Multimedia Systems. 5 (4): 255–270. CiteSeerX   10.1.1.47.3709 . doi:10.1007/s005300050059. S2CID   6016583.
  31. Harada, Masaki; Kimoto, Tadahiko; Fujii, Toshiaki; Tanimoto, Masayuki (2000). "Fast calculation of IFS parameters for fractal image coding". In Ngan, King N; Sikora, Thomas; Sun, Ming-Ting (eds.). Visual Communications and Image Processing 2000. Vol. 4067. pp. 457–464. Bibcode:2000SPIE.4067..457H. doi:10.1117/12.386580. S2CID   30148845. INIST   1380599.
  32. Rajkumar, Wathap Sapankumar; Kulkarni, M.V.; Dhore, M.L.; Mali, S.N. (2006). "Fractal image compression performance synthesis through HV partitioning". 2006 International Conference on Advanced Computing and Communications. pp. 636–637. doi:10.1109/ADCOM.2006.4289976. ISBN   978-1-4244-0715-6. S2CID   15370862.
  33. Simple and Fast Fractal Image Compression Circuits, Signals, and Systems - 2003
  34. Wu, Ming-Sheng; Jeng, Jyh-Horng; Hsieh, Jer-Guang (June 2007). "Schema genetic algorithm for fractal image compression". Engineering Applications of Artificial Intelligence. 20 (4): 531–538. doi:10.1016/j.engappai.2006.08.005.
  35. Wu, Xianwei; Jackson, David Jeff; Chen, Hui-Chuan (September 2005). "A fast fractal image encoding method based on intelligent search of standard deviation". Computers & Electrical Engineering. 31 (6): 402–421. doi:10.1016/j.compeleceng.2005.02.003.
  36. Wu, Xianwei; Jackson, David Jeff; Chen, Hui-Chuan (2005). "Novel fractal image-encoding algorithm based on a full-binary-tree searchless iterated function system". Optical Engineering. 44 (10): 107002. Bibcode:2005OptEn..44j7002W. doi:10.1117/1.2076828.
  37. Truong, Trieu-Kien; Jeng, Jyh H. (2000). "Fast classification method for fractal image compression". In Schmalz, Mark S (ed.). Mathematics and Applications of Data/Image Coding, Compression, and Encryption III. Mathematics and Applications of Data/Image Coding. Vol. 4122. pp. 190–193. Bibcode:2000SPIE.4122..190T. doi:10.1117/12.409247. S2CID   120032052.
  38. Erra, Ugo (2005). "Toward Real Time Fractal Image Compression Using Graphics Hardware". Advances in Visual Computing. Lecture Notes in Computer Science. Vol. 3804. pp. 723–728. doi:10.1007/11595755_92. hdl:11563/14075. ISBN   978-3-540-30750-1.
  39. Hafner, Ullrich (2001). "FIASCO - An Open-Source Fractal Image and Sequence Codec". Linux Journal (81). Retrieved February 19, 2013.
  40. "Manpage of fiasco". castor.am.gdynia.pl. Archived from the original on 9 March 2012. Retrieved 18 April 2018.
  41. "Pnmtofiasco User Manual". netpbm.sourceforge.net. Retrieved 18 April 2018.
  42. "Fiascotopnm User Manual". netpbm.sourceforge.net. Retrieved 18 April 2018.
  43. "Femtosoft Technologies - Fractal Imaging Software". Archived from the original on 2010-10-23. Retrieved 2010-07-10.

Related Research Articles

In information theory, data compression, source coding, or bit-rate reduction is the process of encoding information using fewer bits than the original representation. Any particular compression is either lossy or lossless. Lossless compression reduces bits by identifying and eliminating statistical redundancy. No information is lost in lossless compression. Lossy compression reduces bits by removing unnecessary or less important information. Typically, a device that performs data compression is referred to as an encoder, and one that performs the reversal of the process (decompression) as a decoder.

<span class="mw-page-title-main">Image compression</span> Reduction of image size to save storage and transmission costs

Image compression is a type of data compression applied to digital images, to reduce their cost for storage or transmission. Algorithms may take advantage of visual perception and the statistical properties of image data to provide superior results compared with generic data compression methods which are used for other digital data.

Vector quantization (VQ) is a classical quantization technique from signal processing that allows the modeling of probability density functions by the distribution of prototype vectors. Developed in the early 1980s by Robert M. Gray, it was originally used for data compression. It works by dividing a large set of points (vectors) into groups having approximately the same number of points closest to them. Each group is represented by its centroid point, as in k-means and some other clustering algorithms. In simpler terms, vector quantization chooses a set of points to represent a larger set of points.

<span class="mw-page-title-main">Motion compensation</span> Video compression technique, used to efficiently predict and generate video frames

Motion compensation in computing is an algorithmic technique used to predict a frame in a video given the previous and/or future frames by accounting for motion of the camera and/or objects in the video. It is employed in the encoding of video data for video compression, for example in the generation of MPEG-2 files. Motion compensation describes a picture in terms of the transformation of a reference picture to the current picture. The reference picture may be previous in time or even from the future. When images can be accurately synthesized from previously transmitted/stored images, the compression efficiency can be improved.

A discrete cosine transform (DCT) expresses a finite sequence of data points in terms of a sum of cosine functions oscillating at different frequencies. The DCT, first proposed by Nasir Ahmed in 1972, is a widely used transformation technique in signal processing and data compression. It is used in most digital media, including digital images, digital video, digital audio, digital television, digital radio, and speech coding. DCTs are also important to numerous other applications in science and engineering, such as digital signal processing, telecommunication devices, reducing network bandwidth usage, and spectral methods for the numerical solution of partial differential equations.

Golomb coding is a lossless data compression method using a family of data compression codes invented by Solomon W. Golomb in the 1960s. Alphabets following a geometric distribution will have a Golomb code as an optimal prefix code, making Golomb coding highly suitable for situations in which the occurrence of small values in the input stream is significantly more likely than large values.

<span class="mw-page-title-main">Coding theory</span> Study of the properties of codes and their fitness

Coding theory is the study of the properties of codes and their respective fitness for specific applications. Codes are used for data compression, cryptography, error detection and correction, data transmission and data storage. Codes are studied by various scientific disciplines—such as information theory, electrical engineering, mathematics, linguistics, and computer science—for the purpose of designing efficient and reliable data transmission methods. This typically involves the removal of redundancy and the correction or detection of errors in the transmitted data.

<span class="mw-page-title-main">Iterated function system</span>

In mathematics, iterated function systems (IFSs) are a method of constructing fractals; the resulting fractals are often self-similar. IFS fractals are more related to set theory than fractal geometry. They were introduced in 1981.

S3 Texture Compression (S3TC) is a group of related lossy texture compression algorithms originally developed by Iourcha et al. of S3 Graphics, Ltd. for use in their Savage 3D computer graphics accelerator. The method of compression is strikingly similar to the previously published Color Cell Compression, which is in turn an adaptation of Block Truncation Coding published in the late 1970s. Unlike some image compression algorithms, S3TC's fixed-rate data compression coupled with the single memory access made it well-suited for use in compressing textures in hardware-accelerated 3D computer graphics. Its subsequent inclusion in Microsoft's DirectX 6.0 and OpenGL 1.3 led to widespread adoption of the technology among hardware and software makers. While S3 Graphics is no longer a competitor in the graphics accelerator market, license fees have been levied and collected for the use of S3TC technology until October 2017, for example in game consoles and graphics cards. The wide use of S3TC has led to a de facto requirement for OpenGL drivers to support it, but the patent-encumbered status of S3TC presented a major obstacle to open source implementations, while implementation approaches which tried to avoid the patented parts existed.

<span class="mw-page-title-main">Chaos game</span> Method of creating a fractal, using a polygon and an initial point selected at random inside it

In mathematics, the term chaos game originally referred to a method of creating a fractal, using a polygon and an initial point selected at random inside it. The fractal is created by iteratively creating a sequence of points, starting with the initial random point, in which each point in the sequence is a given fraction of the distance between the previous point and one of the vertices of the polygon; the vertex is chosen at random in each iteration. Repeating this iterative process a large number of times, selecting the vertex at random on each iteration, and throwing out the first few points in the sequence, will often produce a fractal shape. Using a regular triangle and the factor 1/2 will result in the Sierpinski triangle, while creating the proper arrangement with four points and a factor 1/2 will create a display of a "Sierpinski Tetrahedron", the three-dimensional analogue of the Sierpinski triangle. As the number of points is increased to a number N, the arrangement forms a corresponding (N-1)-dimensional Sierpinski Simplex.

<span class="mw-page-title-main">Wavelet transform</span> Mathematical technique used in data compression and analysis

In mathematics, a wavelet series is a representation of a square-integrable function by a certain orthonormal series generated by a wavelet. This article provides a formal, mathematical definition of an orthonormal wavelet and of the integral wavelet transform.

Block Truncation Coding (BTC) is a type of lossy image compression technique for greyscale images. It divides the original images into blocks and then uses a quantizer to reduce the number of grey levels in each block whilst maintaining the same mean and standard deviation. It is an early predecessor of the popular hardware DXTC technique, although BTC compression method was first adapted to color long before DXTC using a very similar approach called Color Cell Compression. BTC has also been adapted to video compression.

<span class="mw-page-title-main">Texture compression</span> Type of data compression

Texture compression is a specialized form of image compression designed for storing texture maps in 3D computer graphics rendering systems. Unlike conventional image compression algorithms, texture compression algorithms are optimized for random access.

An autoencoder is a type of artificial neural network used to learn efficient codings of unlabeled data. An autoencoder learns two functions: an encoding function that transforms the input data, and a decoding function that recreates the input data from the encoded representation. The autoencoder learns an efficient representation (encoding) for a set of data, typically for dimensionality reduction.

<span class="mw-page-title-main">Fractal-generating software</span>

Fractal-generating software is any type of graphics software that generates images of fractals. There are many fractal generating programs available, both free and commercial. Mobile apps are available to play or tinker with fractals. Some programmers create fractal software for themselves because of the novelty and because of the challenge in understanding the related mathematics. The generation of fractals has led to some very large problems for pure mathematics.

In mathematics, the collage theorem characterises an iterated function system whose attractor is close, relative to the Hausdorff metric, to a given set. The IFS described is composed of contractions whose images, as a collage or union when mapping the given set, are arbitrarily close to the given set. It is typically used in fractal compression.

<span class="mw-page-title-main">Barnsley fern</span> Fractal which resembles a plant

The Barnsley fern is a fractal named after the British mathematician Michael Barnsley who first described it in his book Fractals Everywhere. He made it to resemble the black spleenwort, Asplenium adiantum-nigrum.

A video coding format is a content representation format of digital video content, such as in a data file or bitstream. It typically uses a standardized video compression algorithm, most commonly based on discrete cosine transform (DCT) coding and motion compensation. A specific software, firmware, or hardware implementation capable of compression or decompression in a specific video coding format is called a video codec.

Sparse dictionary learning is a representation learning method which aims at finding a sparse representation of the input data in the form of a linear combination of basic elements as well as those basic elements themselves. These elements are called atoms and they compose a dictionary. Atoms in the dictionary are not required to be orthogonal, and they may be an over-complete spanning set. This problem setup also allows the dimensionality of the signals being represented to be higher than the one of the signals being observed. The above two properties lead to having seemingly redundant atoms that allow multiple representations of the same signal but also provide an improvement in sparsity and flexibility of the representation.