chapter i introductionthassim.in/wp-content/uploads/2017/02/efficient-iteration-free-fract… ·...
TRANSCRIPT
1
CHAPTER I
INTRODUCTION
1.1 Introduction
The advent of digital computers and subsequent developments have created a vast
array of computers capable of displaying complex graphical images, with resolution
approaching that of conventional media, such as television or magazines. This capability has
made way for new software designed to explore their capabilities. With the recent rapid
growth of multimedia applications and digital transmission, image compression techniques
have become a very important subject. The two-fold dimensions of image compression are
the efficiency in transmission and storage capacity of digital data. Uncompressed graphics
files are often large in size. With the use of image compression, the storage space and the
transmission time is cut down to a fraction of the time required without compression. A
digital image obtained by sampling and quantizing a continuous tone picture requires an
enormous storage. For instance, a 24 bit color image with 512x512 pixels will occupy
768 Kbyte storage on a disk, and a picture twice of this size will not fit in a single floppy
disk. To transmit such an image over a 28.8 Kbps modem would take almost 4 minutes
[Vivek Arya et al., 2013]. The purpose for image compression is to reduce the amount of
data required for representing sampled digital images and therefore reduce the cost for
storage and transmission. Image compression plays a key role in many important
applications, including image database, image communications, remote sensing (the use of
satellite imagery for weather and other earth-resource applications), document and medical
imaging, facsimile transmission (FAX), and the control of remotely piloted vehicles in
military, space, and hazardous waste control applications. In short, an ever-expanding
number of applications depend on the efficient manipulation, storage, and transmission of
binary, gray-scale, or color images. In this research work, we will explain the basics of
image compression, specifically for still color images.
Programs using complex graphics are showing up virtually in every area of
computing application such as games, education, television conferencing, remote sensing
document and medical imaging, facsimile transmission and the control of remotely piloted
2
vehicles in military space. These programs have one factor in common; the images they use
consume prodigious amount of disk storage. In a distributed environment large image files
remain a major bottleneck within systems. Compression is an important component of the
solutions available for creating files with sizes of manageable and transmittable dimensions.
Increasing the bandwidth is another method, but the high cost involved makes this a less
attractive solution. Platform portability and performance are important in the selection of the
compression / decompression technique to be employed [Hong et al., 2000].
The storage requirements for images can be excessive, if true color and a high-
perceived image quality are desired. Storage problems are acute in remote sensing
applications, the scenes imaged by earth – orbiting satellites have widths and heights of
several thousand pixels and there may be several bands representing the different
wavelengths in which images are acquired. The raw data for a single scene therefore
requires several hundred megabytes of storage space. Video images present perhaps the
most serious storage problem of all.
Another issue is image communication. The abnormal size of many images leads to
long, costly, transmission times. Cost is not the only reason for speeding up transmission.
The emergence of the World Wide Web has resulted in a huge increase in the exchange of
image via the Internet. Rapid transfer of these data is essential if the web is to remain usable
as an interactive information-gathering tool. Thus with ever-increasing demand for images,
sound, video sequences, computer animations and volume visualization, data compression
remains a critical issue regarding the cost of data storage and transmission times. While
Joint Photographic Experts Group (JPEG) currently provides the industry standard for still
color image compression there is ongoing research in alternative methods. Fractal image
compression is one of them.
Thus image compression addresses the problem of reducing the amount of data
required to represent a digital image, so that it can be stored and transmitted more
efficiently. An RGB image is represented with an M-by-N-by-3 array where each 3-vector
corresponds to the red, green, and blue intensities of each pixel. Certain types of redundancy
3
occur in an image. Image compression is achieved by removing these redundancies. If the
image after decompression is exactly the same as the original image then compression is
said to be lossless otherwise it is said to be lossy. The proposed method deals with lossy
compression. Different techniques are employed to achieve lossy compression. Fractal
compression is one of the methods and this method is used in this research work to achieve
improved image quality, compression ratio and reduction in coding time.
The applications of communication are not confined only to immobile environment.
They are also used in mobile and wireless communications. Rapid developments of the
Internet with its new services and applications have created fresh challenges for the further
development of mobile communication systems. A simple example is that of mobile phones
(among many other new media-centric devices) now have high-resolution cameras attached,
and are also the capabilities of displaying video. The growing demand for mobile services
has led to a worldwide reconsideration of established methods of transmitting images in a
compressed and efficient form with minimum time. The proposed method has the
advantages such as low time consumption for decoding and less memory requirements for
storage, which is most needed in today’s communication. This method was further improved
in time reduction by parallel processing. This is because parallel image compression offers a
more effective approach than the sequential counterparts to accelerate the compression
process and bring it closer to real-time operation. The number of range blocks generated by
partitioning of block size 8x8 for an input image of 512x512 is 4096 and increases as the
image size increases. The process of finding the best domain block for all these range blocks
is the same process and it is independent so it can be executed in parallel thus reducing the
time further than the proposed methods. Because of the independent processing of image
compression operation, an effective parallel image compression algorithm can be developed
to significantly reduce the processing time [Shi-xin et al., 2002] [Ender and Esin, 2004].
1.2 Need For Fractal Compression
Image compression involves minimizing the size in bytes of a graphics file without
affecting the quality of the image. It also reduces the time required for images to be sent
4
over the Internet or downloaded from Web pages. In other words, this economization results
in increased storage capacity and efficient transmission.
There are several different ways in which image files can be compressed. For
Internet use, the two most common compressed graphic image formats are the JPEG format
and the Graphics Interchange Format (GIF). The JPEG method is more often used for
photographs, while the GIF method is commonly used for line art and other images in which
geometric shapes are relatively simple. Other techniques for image compression include the
use of fractals and wavelets. These methods have not gained widespread acceptance for use
on the Internet. However, both methods are being explored because they offer higher
compression ratios than the JPEG or GIF methods. Some standardization processes based on
transform coding, such as JPEG, have been started from 1970s. Performances of such
standard are quite good if compression factors are maintained under a given threshold (about
20 times). Over this threshold, artifacts become visible in the reconstruction and tile effect
seriously affects the images decoded, due to quantization effects of the Discrete Cosine
Transform (DCT) coefficients. For applications that require higher compression factors with
some minor loss of accuracy when compared with JPEG, different techniques should be
selected such as fractal coding.
The main objective of image compression is to minimize image data volume without
any significant loss of information [Subramanya, 2001]. The underlying condition of the
reduction process is the removal of redundant data. From the mathematical perspective, this
amounts to transforming a 2-D pixel array into a statistically uncorrelated data set [Gonzalez
et al., 2004]. The transformation is applied prior to storage or transmission of the image. At
some later time, the compressed image is decompressed to reconstruct the original image or
an approximation of it. In search of developing efficient image coding with optimal
distortion at very low bit rates, recent research efforts use hybrid-coding techniques [Yuzo et
al., 2006]. As Fractal coding with the techniques Vector Quantization (VQ), Genetic
Algorithm (GA) and Simulated Annealing (SA) is used in the research work, a survey of its
literature becomes necessary.
5
1.2.1 Survey of Fractal Coding
The fundamental principle of fractal coding is the representation of a signal by the
parameters of a transformation under which the signal is approximately invariant. Within the
broad framework, the differences between the majorities of existing fractal coding schemes
may be classified into the following categories:
The partition imposed on the image by the range blocks.
The composition of the pool of domain blocks which is restricted to some
extent by the range partition.
The class of transform applied to the domain blocks.
The type of search used in locating suitable domain blocks.
The quantization of the transform parameters and any subsequent entropy
coding.
There are unfortunately only a very few theoretical results on which decisions in any of
these aspects may be based and choices are often made on an adhoc basis. In addition these
categories are not independent; any comparative analysis of coding performance between
different options in one of these categories is usually contingent on the corresponding
choices in the other categories. A comparison between the relative merits of particular
choices in each category is consequently very difficult. This review is therefore intended
primarily as an overview of the variety of schemes that has been investigated and limited to
still color images as the present research work deals only with the still color images.
The fractal image compression problem puts forward three major requirements: speeding
up the compression algorithm, improving image quality and increasing compression ratio
[Erjun, 2005]. There are many modified versions proposed to improve the fractal coding
techniques [Ghazel et al., 2005] [Mohsen et al., 2003]. Most of the studies focus on
refining the block transformation [Chong and Minghong, 2001]
reducing of the complexity of the encoding process [Chen et al., 2002]
speeding up the process [Hau-Jie and Wang, 2005] [Riccardo et al., 2006]
6
1.2.2 Survey of Vector Quantization
VQ has emerged as an effective data compression technique for low bit rate
applications. The idea behind VQ is to exploit the correlation between pixels by quantizing a
block of data (vector) as opposed to a scalar quantizer that quantizes each pixel
independently in the area. In its simplest form VQ encodes each block independent of the
previously encoded blocks or blocks to be encoded in future. This is called memoryless VQ.
Several VQ schemes with memory that exploits the interblock correlation also exist [Jyi-
Chang et al, 2000]. This research work uses the memoryless VQ and a survey of literature
on memoryless VQ was conducted.
The major problems with a VQ encoder are the codebook search complexity and the
memory required to store the codebook. Both the codebook search complexity and storage
requirements increase exponentially with the vector dimension [Jeng et al., 2003]. Therefore
the size of the VQ blocks is usually kept very small which in turn results in a high statistical
correlation between adjacent blocks. In this research work the size of the vector is limited to
64 ie., 8x8 blocks. They usually have structural characteristics like surface smoothness and
edges. The searching process of the reproduction vector for an input vector using full search
requires intensive computations. Many algorithms are proposed to speed up the searching
process. The algorithm given by Jim and Yi [2004] uses the vector’s features (mean value,
edge strength, and texture strength) to delete impossible codewords that cannot be rejected
by the DHSS algorithm using three projections. Two additional inequalities, one for
terminating the searching process and another to reject impossible codewords, were
presented to reduce the distortion computations. This algorithm is better than the DHSS
algorithm and Pan’s method [Pan et al., 2003 ] in terms of computing time and the number
of distortion calculations hence this algorithm was included in the present research work for
eliminating the domain blocks while searching for the optimal solution in the proposed
method using the technique VQ.
7
1.2.3 Survey of GA and SA
Genetic Algorithm [Arpit and Ranveer, 2005] [Benjamin et al., 2005] has become an
efficient tool for search, optimization and machine learning. Even in pre-GA era concepts of
GA had been applied in pattern recognition [Surapong, 2000], task scheduling [Yi and Jian,
2003]. Now GA has been widely used in many fields including Image processing [Cor et al.,
2003] [Hanchuan et al., 2000] [Wu, 2004], Timetabling problem [Milena, 2004], Traffic
control [Yan and Zhong, 2002], VLSI circuit design, image registration [Hany and Yongyi,
2000]. It is also applied to image processing problems including edge detection, face
recognition, image segmentation, feature extraction and image compression. Simulated
annealing has been applied to a wide variety of optimization problems [Alexandros, 2005]
that are based on an optimality criterion and in image processing [Alexander et al., 2003]
[Leipo and Lipo, 2003].
As genetic algorithms and Simulated Annealing are global search and optimization
method, it can be applied to the proposed method to find the optimal domain block for each
range block in iteration-free fractal image coding. The problems faced in GA are encoding
the solution, fixing the size of the population, choosing the crossover and its probability,
mutation and its probability and selection procedure. Similarly the problems faced in SA are
generating a candidate solution, problem-specific cooling schedule, objective function and
Metropolis-step in which the algorithm decides if a solution is accepted or rejected. The
selection of these parameters greatly affects the solution.
Major variants of the standard algorithm were proposed to speed up computation
time in Fractal coding. But most of them lead to a bad image quality, or a lower compression
ratio. Only few sources make a research work of designing an efficient domain pool in
which the redundancies between the domain blocks can be reduced. The proposed method
using the VQ technique aims to design an efficient domain pool for the fractal coding
schemes in this research work. It also introduces the optimization techniques like GA and
SA to improve the quality of the decoded image and for speeding the encoding time in
8
generating the fractal codes. This research work of introducing GA and SA reduces the
computational complexity, improves the image quality and reduces the coding time.
1.3 Research Contribution
An iteration-free fractal image coding for color images using the techniques Vector
Quantization, Genetic Algorithm and Simulated Annealing is proposed for lossy
compression in this research work to improve decoded image quality, compression ratio and
to reduce the coding time. Fractal coding consists of the representation of image blocks
through the contractive transformation coefficients, using the self-similarity concept present
in the larger domain blocks. Fractal coding achieves high compression ratio but the time
required to compress and decompress an image is time consuming. Different techniques are
available to reduce the time consumption and improve the decoded image reliability. But
most of them lead to a bad image quality, or a lower compression ratio.
Usage of synthetic codebook for encoding using Fractal does not require iteration at
decoding and the coding error is determined immediately at the encoder. Hence there is a
reduction in decoding time. Very few literatures are available on iteration-free fractal
coding. Vector Quantization technique uses codebook for approximating the input image
blocks called range. A sequential search of the entire codebook is done in order to find the
best code, with minimum error, that matches the range block. Genetic Algorithms and
Simulated Annealing are mathematically motivated search techniques. Genetic Algorithm
tries to emulate biological evolutionary processes to solve optimization problems and
Simulated Annealing is based on annealing in metallurgy. Instead of searching one point at a
time, they use multiple search points. Thus, they claim significant advantage of large
reduction in search space and time. A general optimization technique can be adapted to the
specific problem of optimizing image approximations. Optimal fractal coding is an NP-hard
combinatorial optimization problem [Raouf and Dietmar., 2000]. So these techniques are
applied in this research work for fractal image compression.
An iteration-free fractal coding scheme with vector quantization was proposed in
[Chang and Chung, 2000] for gray scale images. An improvement for reduction in time is
9
suggested in the proposed method using VQ for color images. GA or SA can be applied to
virtually any problem that has a large search space. Both attempt to find near-optimal
solutions without going through an exhaustive search mechanism. The significant advantage
is a large reduction in search space and time without being trapped at local minima. Hence it
is proposed to use GA and SA for finding the better match of the domain block to the range
block without going through exhaustive search in the iteration-free fractal coding instead of
the existing method using VQ.
In the proposed method a synthetic codebook is created as the domain pool using the
mean image, whose pixel values are the block means of all the range blocks. This code book
is used as the domain pool for genetic algorithm and simulated annealing techniques. As
these techniques have become an efficient tool for search and optimization, they can be used
to find the better domain block from the domain pool that matches the range block of the
image in fractal coding. In the existing iteration-free fractal image coding using vector
quantization the redundant domain blocks in the domain pool was deleted using the Linde
Buzo and Gray (LBG) Algorithm. But in the proposed method using vector quantization the
domain pool was classified and pruned for each range block for each RGB component
before the comparison for the identification of the better domain block from the codebook
for the range block in order to reduce the computational time [Jim and Yi, 2004].
The proposed methodology using the VQ technique reduces the coding process time
and intensive computation tasks by pruning the domain block for each range block. The
redundancies in the domain pool are first reduced by the Linde Buzo Gray (LBG)
Algorithm. Further redundancy in the domain block for each range block was achieved
using the vector features such as mean value, edge strength, and texture strength. A pruning
condition for terminating the searching process to find the best domain block from the
domain pool has been used in this proposed research work.
The research work also adopts another implementations based on genetic algorithms
and simulated annealing and compares their performance on the three parameters - image
quality, compression ratio and coding time. The main goal is to accelerate image
10
compression without significant loss of image quality and with an acceptable compression
rate. These techniques in the fractal image coding have produced a good image quality at a
good compression ratio with reduction in computation complexity and encoding time.
Further reduction in time was achieved in GA and SA by implementing them using parallel
programming.
11
CHAPTER II
IMAGE COMPRESSION TECHNIQUES
2.1 Image Compression
In image compression, reducing the amount of data required to represent a digital
image, and how efficiently it can be stored and transmitted is the primary problem. A
distinction between data and information is to be clearly made. Data are the means by
which information is conveyed. The same amount of information can be conveyed using
various amounts of data. If more data are used than is strictly necessary, then there is
redundancy in the dataset. Three basic types of redundancy can be identified in a signal
image [Gonzalez et al., 2004]. Coding redundancy occurs when the representation chosen
for the pixel values of an image is not the most efficient one than is needed. The second
type of redundancy often present in images is Interpixel redundancy. This arises because
the values of a pixel and its immediate neighbors are often strongly correlated. This means
that the value of a pixel can be predicted with a reasonable degree of accuracy from values
of its neighbors. Consequently the amount of information conveyed by an individual pixel
is relatively small, and the amount of data that is needed to represent that pixel is
correspondingly smaller. The third type of redundancy is Psycho visual redundancy. This
arises because not all the information present in an image is of equal importance to the
human visual system (HVS). For example, there are upper limits on the number of
quantization levels that can be easily distinguished by eye and on the spatial frequencies that
can be detected by the eye.
Lossless compression techniques are designed to remove this redundancy when data
are stored or transmitted and then replaced with the image reconstructed from those data.
The reconstructed image is identical to the original and all the information originally present
in the image has been presented by compression.
Compressing an image is significantly different than compressing raw binary data.
General purpose compression programs can be used to compress images, but the result is
12
less than optimal. This is because images have certain statistical properties which can be
exploited by encoders specifically designed for them. Also, some of the finer details in the
image can be sacrificed for the sake of saving a little more bandwidth or storage space. This
also means that lossy compression techniques can be used in this area.
Fig 2.1 General Data Compression and Image Reconstruction.
Lossless compression involves compressing data which, when decompressed, will be
an exact replica of the original data. This is the case when binary data such as executables,
documents etc. are compressed. They need to be exactly reproduced when decompressed.
On the other hand, images (and music too) need not be reproduced exactly. An
approximation of the original image is enough for most purposes, as long as the error
between the original and the compressed image is tolerable.
2.2 Categories of Data Compression
Data compression methods can be divided into two principal groups:
Information preserving compression permits error-free data reconstruction (lossless
compression).
Compression methods with loss of information do not preserve the information
completely (lossy compression).
2.2.1 Lossless Compression
Lossless coding guarantees that the decompressed image is absolutely identical to the
image before compression. This is an important requirement for some application domains,
13
e.g. medical imaging, where not only high quality is in demand, but unaltered archiving is a
legal requirement. Lossless techniques can also be used for the compression of other data
types where loss of information is not acceptable, e.g. text documents and program
executables. Some compression methods can be made more effective by adding a 1D or 2D
delta coding to the process of compression. These deltas make more effective use of run
length encoding, have (statistically) higher maxima in code tables (leading to better results
in Huffman and general entropy coding), and build greater equal value areas usable for area
coding. Some of these methods can easily be modified to be lossy. Lossy element can also
be coded using 1D / 2D run length search. Also, logarithmic quantization may be inserted to
provide better or more effective results.
Methods for lossless image compression are:
Run-Length Encoding
Entropy Coding
Adaptive Dictionary Algorithms such as LZW
2.2.2 Lossy Compression
In most of applications, there is no need for the exact restoration of stored image.
This fact can help to make the storage more effective, and lossy compression methods are
obtained. Many real images contain only a small amount of redundant data. Lossless
techniques give only moderate compression of such images. Higher compression is possible
using lossy compression techniques, which discard some of the information present in the
image. An image can be changed in many ways that are almost undetectable by the HVS. If
these changes lead to highly redundant data, then the image can be greatly compressed. The
reconstructed image will not be identical to the original image, although the difference will
not be clearly visible to the human eye.
Lossy image coding techniques normally have three components:
image modeling which defines such things as the transformation to be applied to the
image
14
parameter quantization whereby the data generated by the transformation is quantized to
reduce the amount of information
encoding, where a code is generated by associating appropriate code words to the raw
data produced by the quantizer.
Each of these operations is in some part responsible for the compression. Image
modeling exploits the statistical characteristics of the image (i.e. high correlation,
redundancy). Typical examples are transform coding methods, in which the data is
represented in a different domain (for example, frequency in the case of the Fourier
Transform (FT), the Discrete Cosine Transform (DCT), the Kahrunen-Loewe Transform
(KLT), Wavelet Transform and so on), where a reduced number of coefficients contain most
of the original information. In many cases this first phase does not result in any loss of
information.
The aim of quantization is to reduce the amount of data used to represent the
information within the new domain. Quantization is, in most cases, not a reversible
operation. Therefore, it belongs to the so called lossy methods. Encoding is usually error
free. It optimizes the representation of the information (helping, sometimes, to further
reduce the bit rate), and may introduce some error detection codes.
Methods for lossy compression:
Reducing the color space to the most common colors in the image. The selected
colors are specified in the color palette in the header of the compressed image. Each
pixel just references the index of a color in the color palette. This method can be
combined with dithering to blur the color borders.
Chroma subsampling. This takes advantage of the fact that the eye perceives
brightness more sharply than color, by dropping half or more of the chrominance
information in the image.
Transform coding. This is the most commonly used method. A Fourier-related
transform such as DCT or the wavelet transform are applied, followed by
quantization and entropy coding.
15
2.2.3 Transform coding (DCT/Wavelets/Gabor) used in lossy compression.
A general transform coding scheme involves subdividing an N x N image into
smaller n x n blocks and performing a unitary transform on each sub image. A unitary
transform is a reversible linear transform whose kernel describes a set of complete,
orthonormal discrete basic functions. The goal of the transform is to decorrelate the original
signal, and this decorrelation generally results in the signal energy being redistributed
among only a small set of transform coefficients. In this way, many coefficients may be
discarded after quantization and prior to encoding. Also, visually lossless compression can
often be achieved by incorporating the HVS contrast sensitivity function in the quantization
of the coefficients.
Transform coding can be generalized into four stages:
image subdivision
image transformation
coefficient quantization
Huffman encoding.
For a transform coding scheme, logical modeling is done in two steps: a segmentation one in
which the image is subdivided in two-dimensional vectors (possibly of different sizes) and a
transformation step in which the chosen transform (e.g. KLT, DCT, Hadamard) is applied.
Quantization can be performed in several ways. Most classical approaches use zonal
coding, consisting of the scalar quantization of the coefficients belonging to a predefined
area (with a fixed bit allocation), and threshold coding, consisting of the choice of the
coefficients of each block characterized by an absolute value exceeding a predefined
threshold. Another possibility, that leads to higher compression factors, is to apply a vector
quantization scheme to the transformed coefficients. The same type of encoding is used for
each coding method. In most cases a classical Huffman code can be used successfully. The
JPEG and MPEG standards are examples of standards based on transform coding.
16
The lossy compression method, fractal image coding, is used in the proposed
method. The technique Vector Quantization, Genetic Algorithm and Simulated Annealing
are used as a searching method in Fractal image compression. These techniques are
explained in detail in the following sections.
2.3 Fractal Image Compression
The term Fractal was first used by Benoit Mandelbrot to designate objects that are
self-similar at different scales. Such objects have details at every scale. A well-known
example is the Mandelbrot set, which is described by a very simple equation, yet exhibits an
infinite variety of details. This can be viewed as an extreme form of compression. The
equation itself can be described with a few bits of information or implemented in a very
short program, but the resulting image would need an infinite amount of bits to be
represented as a set of pixels.
Fractal methods have been developed for both noisy and noise-free coding methods.
Images of natural scenes are more suitable because of the presence of the fractal structure in
it. But results are reported to be applicable to a variety of binary, monochrome, and color
scenes. Michael Barnsley and his coworkers at the Georgia Institute of Technology were the
first to recognize the potential interest of fractal methods for image compression. Barnsley
developed the theory of Iterated Function Systems (IFS) which was first developed by
J.Hutchinson in 1981. The interest in this technique was aroused due to the compression
ratio claimed by Barnsley up to 10,000 to 1. This compression ratio could be obtained only
on specially constructed images, and only with considerable help from a person guiding the
compression process. It was impossible to completely automate the compression process,
even with a super computer. Thus IFS based compression turned out to be impractical. Then
instead of trying to find an IFS for a complete image, Jacquin had the idea of partitioning the
image into non-overlapping ranges and finding a local IFS for each range. This transformed
the problem into a manageable task, which could be automated. This is known as Partitioned
Iterated Function Systems (PIFS).
17
2.3.1 Partitioned Iterated Function Systems
The encoder first partitions the input image into a set of non-overlapping ranges. The
ranges are chosen to be square. For each range the encoder looks for a part of the input
image called a domain, which is similar to the range. The domain must be larger than the
range to ensure, it is contractive in the spatial dimensions. The encoder looks for domains
that are twice as large as the range. To assess the similarity between a domain D and a range
R, the encoder finds the best possible mapping from the domain to the range so that the
image is as close as possible to the image R. Affine transformation are convenient for this
purpose, but non-linear transformation could also be used. Two-dimensional transformations
were used for black and white images. Three dimensions are needed for color images. As the
encoder looks only for domains that are exactly twice as large as range the scaling factor is
0.5. As both the range and domain are squares, there are only 8 possible orientations of the
domain. This simplification reduces the complexity. For a given range R, the encoder
examines a number of possible domains. For each such domain the encoder must find the
optimal affine map from D to R. The best one is the map which minimizes the distance
between the image R and the image w (D) denoted as
R . Such distance can be defined in
various ways, but to simplify the computation root mean square error (RMS) is found using
Eq (2.1) for an M x N image. Once the RMS distance between the range and all selected
domains have been determined, the encoder chooses the domains with the smallest distance,
encodes the corresponding affine map, and goes on working on the next range.
2/11
0
1
0
2
),(),(3
1
N
y
M
x
yxRyxRMxN
RMS (2.1)
The partition Iterated Function Systems created with the above algorithm consists of
a list of affine maps, each map being restricted to specific range. Starting with a completely
black image, the decoder can apply the PIFS iteratively [He et al., 2004]. This process
converges to a fixed point of the PIFS. If the encoder has found a good PIFS for the image,
that is, if the collage of all the transformed domains is close to the original image, then the
fixed point of the PIFS is close to the image.
18
Thus in the fractal coding schemes, an image is partitioned into non overlapping
range blocks. The larger domain blocks D are selected from the same image which can
overlap. An image (MxNx3) is encoded by mapping the domain block D to the range block
R with the contractive affine transformation given by Eq. (2.2)
gSoDiR
).( (2.2)
The operation S o D represents the contraction that maps the domain block to a range
block. The parameters (called the fractal code) describing the contractive affine
transformation, which has the minimum matching error between the original range block R
and the coded range block
R , are transmitted or stored. The fractal code consists of the
contrast scaling α, luminance shift Δg or the block mean (the average pixel value of the
range block) μR, isometry i, and the position PD of the best-match domain block in the
domain pool.
An affine transformation [Donald and Pauline, 2001] is a linear transformation (a
scale change, a rotation, a shear, or a reflection) as described by a 2 × 2 matrix A, plus a
translation as described by a vector b:
w x = A x + b (2.3)
So a single affine transformation w is defined by just 6 real numbers. The general affine
transformation is commonly written in homogeneous coordinates as shown below:
By
xA
y
x
1
1
2
2* (2.4)
By defining only the B matrix, this transformation can carry out pure translation:
10
01A
, 2
1
b
bB
(2.5)
Pure rotation uses the A matrix and is defined as (for positive angles being clockwise
rotations):
19
)cos()sin(
)sin()cos(
A
, 0
0B
(2.6)
Here, we are working in image coordinates, so the y axis goes downward. Rotation formula
can be defined for when the y axis goes upward. Similarly, pure scaling is:
22
11
0
0
a
aA
, 0
0B
(2.7)
Several different affine transformations are often combined to produce a resultant
transformation. The order in which the transformations occur is significant since a
translation followed by a rotation is not necessarily equivalent to the converse.
Since the general affine transformation is defined by 6 constants, it is possible to define this
transformation by specifying the new output image locations (x2,y2) of any three input image
coordinate (x1,y1) pairs. In practice, many more points are measured and a least squares
method is used to find the best fitting transform. Furthermore, for the sake of reduced
complexity the legitimate affine transforms are restricted to the following manipulations:
1. Linear translation of the block.
2. Rotation of the block by 0, 90, 180 and 270 degrees.
3. Reflection about the diagonals, vertical and horizontal axis.
4. Luminance shift of the block.
5. Contrast scaling of the block.
This coding scheme is a technique for image compression and has evolved greatly
from its first version given by Jacquin. It has become one of the most popular modern image
coding methods. The implementation of fractal image compression with PIFS is given in
[Nadira and Thamaraiselvi 2005]. Even though high compression is achieved on self-
similarities, the time taken for encoding process is very high. The possibility of reducing the
time will be helpful for many applications.
20
2.4 Vector Quantization
Quantization refers to the process of approximating the continuous set of values in
the image data with a finite (preferably small) set of values. The input to a quantizer is the
original data, and the output is always one among a finite number of levels. The quantizer is
a function whose set of output values are discrete, and usually finite. Obviously, this is a
process of approximation, and a good quantizer is one which represents the original signal
with minimum loss or distortion.
There are two types of quantization: Scalar Quantization and Vector Quantization. In
scalar quantization, each input symbol is treated separately in producing the output, while in
vector quantization the input symbols are clubbed together in groups called vectors, and
processed to give the output. Clubbing the data and treating them as a single unit increases
the optimality of the vector quantizer, but at the cost of increased computational complexity.
A quantizer can be specified by its input partitions and output levels (also called
reproduction points). If the input range is divided into levels of equal spacing, then the
quantizer is termed as a Uniform Quantizer, and if not, it is termed as a Non-Uniform
Quantizer. A uniform quantizer can be easily specified by its lower bound and the step size.
Implementing a uniform quantizer is easier than a non-uniform quantizer. If the input falls
between n*r and (n+1)*r, the quantizer outputs the symbol n.
Fig. 2.2. A Uniform Quantizer
Just the same way a quantizer partitions its input and outputs discrete levels, a
dequantizer is one which receives the output levels of a quantizer and converts them into
normal data by translating each level into a reproduction point in the actual range of data. It
can be seen from literature, that the optimum quantizer (encoder) and optimum dequantizer
(decoder) must satisfy the following conditions:
21
Given the output levels or partitions of the encoder, the best decoder is one that puts
the reproduction points x' on the centers of mass of the partitions. This is known as
centroid condition.
Given the reproduction points of the decoder, the best encoder is one that puts the
partition boundaries exactly in the middle of the reproduction points, i.e. each x is
translated to its nearest reproduction point. This is known as nearest neighbor
condition.
The quantization error (x - x') is used as a measure of the optimality of the quantizer and
dequantizer.
A vector quantizer can be defined mathematically as a transform operator T from a
K-dimensional Euclidean space R^K to a finite subset X in R^K made up of N vectors. This
subset X becomes the vector codebook, or, more generally, the codebook. Clearly, the
choice of the set of vectors is of major importance. The level of distortion due to the
transformation T is generally computed as the RMS between the real vector x in R^K and
the corresponding vector x' = T(x) in X. This error should be such as to minimize the
Euclidean distance d.
An optimum scalar quantizer was proposed by Lloyd and Max. Later on, Linde,
Buzo and Gray resumed and generalized this method extending it to the case of a vector
quantizer. The algorithm that they proposed is derived from the K Nearest Neighbor
clusterisation method, and is performed by iterating the following basic operations:
subdivide the training set into N groups (called partitions or Voronoi regions), which
are associated with the N codebook letters, according to a minimum distance criterion
the centroids of the Voronoi regions become the updated codebook vectors
compute the average distortion: if the present reduction in the distortion (as compared
with the previous step) is below a certain threshold, then STOP.
Once the codebook has been designed, the coding process simply consists in the
application of the T operator to the vectors of the original image. In practice, each group of n
22
pixels will be coded as an address in the vector codebook, that is, as a number from 1 to N.
The LBG algorithm for the design of a vector codebook always reaches a local minimum for
the distortion function, but often this solution is not the optimal one. A careful analysis of
the LBG algorithm's behavior allows one to detect two critical points: the choice of the
starting codebook and the uniformity of the Voronoi regions' dimensions. For this reason
some algorithms have been designed that give better performances. With respect to the
initialization of the LBG algorithm, for instance, one can observe that a random choice of
the starting codebook requires a large number of iterations before reaching an acceptable
amount of distortion. Moreover, if the starting point leads to a local minimum solution, the
relative stopping criterion prevents further optimization steps [Peter and Bradley, 2000].
2.4.1 Vector Quantization for Image Compression
Vector Quantization has been widely used for image compression in recent years
since it can obtain good rate distortion performance in spite of the simplicity of its decoding
process [Liu et al., 2003]. It can be classified into two categories memory less VQ and
memory VQ [Asmat, 2004]. In memory less VQ input vector (blocks) are encoded
independently, whereas the memory VQ exploits the correlation among the neighboring
blocks to further reduce the bite rate. Popular memory VQ techniques reported in the
literature includes predictive VQ [Pei-Yin, 2004], finite state VQ, dynamic finite state VQ
[Jyi-Chang et al., 2000], address VQ and index search VQ [Nakayama et al., 2003].
By grouping source output together and encoding them as a block we obtain efficient
compression algorithm. Many of the lossless compression algorithms take advantage of this
fact. We view these blocks as vectors and hence the name vector quantization. In vector
quantization we group the source output into blocks or vectors we can take a block of L
pixels from an image and treat each pixel value as a component of a vector of size or
dimension L. These vectors of source outputs form the input to the vector quantizer. At
both the encoder and decoder of the vector quantizer, we have a set of L dimensional vectors
called the codebook of the vector quantizer. The vectors in this codebook, known as code
vector, are selected to be representative of the vectors we generate from the source output.
23
Each code vector is assigned a binary index. At the encoder, the input vector is compared to
each code vector in order to find the code vector closest to the input vector. The elements of
this code vector are the quantized values of the source output. In order to inform the decoder
about which code vector was found to be the closest to the input vector; the binary index of
the code vector is transmitted or stored. Because the decoder has exactly the same
codebook, it can retrieve the code vector given its binary index. Although the encoder may
have to perform considerable amount of computations in order to find the closest
reproduction vector to the vector of source outputs, the decoding consists of table lookup.
Fig 2.3 The Vector Quantization Procedure
This makes vector quantization a very attractive encoding scheme for applications in which
the resource available for decoding are considerably less than the resource available for
encoding [Shigeki and Hiroomi, 2005].
2.4.1.1 LBG Algorithm
This algorithm also known as Generalized Lloyd’s Algorithm is the basis of most
vector quantization designs. It is as follows.
Source
Output
Group
into
vectors
Find closest
code vector
Table Look
up Unblock
Reconstruction
Encoder Decoder
Codebook index
index Codebook
24
Step1: Start with an initial set of reconstruction value M
iiy1
)0(
and set of training
vectors as N
nnX1 . Initialize k=0 and, D
(0) to some high value. Select the
threshold є.
Step2: The quantization region M
i
t
iV1
)(
are given by
MiijyxdyxdxV jninn
t
i ,...,2,1),(),(:)( . None of the
quantization region should be empty.
Step3: Calculate the average distortion D (k)
between the training vectors and the
representative reconstruction value.
Step4: If ((D (k)
– D (k-1)
) / D (k)
) < є stop, otherwise continue.
Step 5: Increment the value of k by 1. Find new reconstruction value M
i
k
iy1
)(
which is
the average value of the element of each of the quantization regions )1( k
iV . Go to
step 2.
2.4.1.2 Initializing the LBG Algorithm
The LBG Algorithm guarantees that the distortion from one iteration to the next will
not increase. However there is no guarantee that the procedures will converge to the optimal
solution. The solution to which the algorithm converges is heavily dependent on the initial
condition.
Linde, Buzo and Gray described a technique called the splitting technique for
initializing the design algorithm. In this technique of designing a vector quantizer, a single
output vector is first designed, in other words a codebook of size one or a one-level vector
quantizer. With a one-element codebook, the quantization region is the entire input space,
and the output vector is the average value of the entire training set. From this output vector
the initial codebook for a two-level vector quantizer can be obtained by including the output
point for the one – level quantizer and a second output vector obtained by adding a fixed
perturbation vector . Then the LBG algorithm is used to obtain the two-level vector
quantizer. Once the algorithm has converged the two codebook vectors are used to obtain
the initial codebook of a four-level vector quantizer. This initial four-level codebook
25
consists of the two codebook vector from the final codebook of the two-level vector
quantizer and other two vectors obtained by adding to the two codebook vectors. The LBG
algorithm can then be used until this four level quantizer converges. In this manner the
number of levels is kept doubling until the desired number of level is reached [Nick , 2000].
2.4.1.3 The Empty Cell Problem
When the inputs are assigned to the initial vector and if no input vector gets
assigned to one it is a problem. Because in order to update an output, the average value of
the input vectors is taken. There is a danger that an output that is never used will end up. A
common approach to avoid this is to remove an output vector that has no inputs associated
with it and replace it with vector from the quantization region with the most output vectors.
This can be done by selecting a vector at a random from the region with the highest
population of training vector or the highest associated distortion. In the proposed method the
empty output vector is replaced with a random vector chosen from the quantization region
with the most output vectors.
Once the codebook has been designed, the coding process simply consists of
applying the operator T to the vectors of the original image. In practice, each group of n
pixels will be coded as an address in the vector codebook, i.e., as a number from 1 to N.
From the results it is obviously clear that going for higher levels greater than 64 is not
required because it consumes lot of time and the compression ratio (CR) is not increased nor
the root mean square error decreases, it also increases the empty cell problem [Nadira and
Thamaraiselvi, 2004]
2.5 Genetic Algorithm
A genetic algorithm (GA) is a search technique used in computer science to find
approximate solutions to optimization and search problems. Genetic algorithms are a
particular class of evolutionary algorithms that use techniques inspired by evolutionary
biology such as inheritance, mutation, natural selection, and recombination (or crossover).
26
Genetic algorithms are inspired by Darwin's theory of evolution. Genetic algorithms
are typically implemented as a computer simulation in which a population of abstract
representations (called chromosomes) of candidate solutions (called individuals) to an
optimization problem evolves toward better solutions. Traditionally, solutions are
represented in binary as strings of 0s and 1s, but different encodings are also possible. The
evolution starts from a population of completely random individuals that happens in
generations. In each generation, the fitness of the whole population is evaluated, multiple
individuals are stochastically selected from the current population (based on their fitness),
modified (mutated or recombined) to form a new population, which becomes current in the
next iteration of the algorithm. This is repeated until some condition (for example number of
populations or improvement of the best solution) is satisfied.
2.5.1 Operation of GA
An individual, or solution to the problem to be solved, is represented by a list of
parameters, called chromosome or genome. Chromosomes are typically represented as
simple strings of data and instructions. Initially several such individuals are randomly
generated to form the first initial population. During each successive generation, each
individual is evaluated, and a value of fitness is returned by a fitness function. The pool is
sorted, with those having better fitness (representing better solutions to the problem) ranked
at the top. The next step is to generate a second generation population of organisms, based
on the processes of selection and reproduction of selected individuals through genetic
operators; crossover (or recombination), and mutation. For each individual to be produced, a
pair of parent organisms is selected for breeding. Selection is biased towards elements of the
initial generation which have better fitness, though it is usually not so biased that poorer
elements have no chance to participate, in order to prevent the population from converging
too early to a sub-optimal or local solution. There are several well-defined selection
methods: roulette wheel selection and tournament selection are popular methods. Roulette
wheel selection is used as the selection method in the present task.
Following selection, the crossover (or recombination) operation is performed upon
the selected chromosomes. Commonly, GA has a probability of crossover (pc), typically
27
between 0.6 and 1.0, which encodes the probability that two selected organisms will actually
breed. Organisms are recombined by this probability. Crossover results in two new child
chromosomes, which are added to the next generation population. The chromosomes of the
parents are mixed during crossover, typically by simply swapping a portion of the
underlying data structure. This process is repeated with different parent organisms until
there are an appropriate number of candidate solutions in the next generation population.
The next step is to mutate the newly created offspring. Typical GA has a fixed, very small
probability of mutation (pm) on the order of 0.01 or less. Based on this probability, the new
child organism's chromosome is randomly mutated, typically by flipping bits in the
chromosome data structure.
These processes ultimately result in the next generation population of chromosomes
that is different from the initial generation. Generally the average fitness increases by this
procedure for the population, since only the best organisms from the first generation are
selected for breeding. The entire process is repeated for this second generation: each
organism is evaluated, the fitness value for each organism is obtained, pairs are selected for
breeding, a third generation population is generated, etc.
This generational process is repeated until a termination condition has been reached.
Common terminating conditions are [Luo et al., 2001]:
Fixed number of generations reached
Allocated budget (computation time/money) reached
An individual is found that satisfies minimum criteria
The highest ranking individual's fitness is reaching or has reached a plateau such that
successive iterations do no longer produce better results
Manual inspection
Combinations of the above
2.5.2 Outline of the Basic Genetic Algorithm
Step1: Generate random population of n chromosomes (suitable solutions for the
problem)
28
Step2: Evaluate the fitness function f(x) of each chromosome x in the population
Step3: Create a new population by repeating the following steps until the new
population is complete
i. Select two parent chromosomes from a population according to their fitness
(the better fitness, the bigger chance to be selected)
ii. With a crossover probability cross over the parents to form new offspring
(children). If no crossover was performed, offspring is the exact copy of the
parents.
iii. With a mutation probability mutate new offspring at each locus (position in
chromosome).
iv. Place new offspring in the new population
Step4: Use newly generated population for a further run of the algorithm
Step5: If the end condition is satisfied, return the best solution in current population and
exit, otherwise go to step 2
2.5.3 Parameters of GA
There are two basic parameters of GA - crossover probability (pc) and mutation
probability (pm).
Crossover probability: If there is no crossover, offspring are exact copies of parents. If
there is crossover, offspring are made from parts of both parents’ chromosome. If crossover
probability is 100%, then all offspring are made by crossover. If it is 0%, whole new
generation is made from exact copies of chromosomes from old population. Crossover is
made in hope that new chromosomes will contain good parts of old chromosomes and
therefore the new chromosomes will be better. However, it is good to let some part of old
populations survive to next generation. The crossover probability is chosen as 0.85 in the
proposed method.
Mutation probability: If there is no mutation, offspring are generated immediately after
crossover (or directly copied) without any change. If mutation is performed, one or more
parts of a chromosome are changed. If mutation probability is 100%, whole chromosome is
changed, if it is 0%, nothing is changed. Mutation generally prevents the GA from falling
29
into local extremes. Mutation should not occur very often, because GA will in fact then
change to random search. The mutation probability is chosen to be 0.06 in the proposed
method.
2.5.4 Other Parameters
There are also some other parameters of GA. One another particularly important
parameter is the size of the population.
Size of the Population: How many chromosomes are in population (in one generation). If
there are too few chromosomes, GA has few possibilities to perform crossover and only a
small part of search space is explored. On the other hand, if there are too many
chromosomes, GA slows down. Research shows that after some limit (which depends
mainly on encoding and the problem) it is not useful to use very large populations because it
does not solve the problem faster than moderate sized populations. In the proposed method
the size of the population is chosen to be 40.
Selection: Chromosomes are selected from the population to be parents for crossover. The
problem is how to select these chromosomes. According to Darwin's theory of evolution, the
best ones survive to create new offspring. There are many methods in selecting the best
chromosomes. Examples are Roulette wheel selection, Boltzmann selection, Tournament
selection, Rank selection, Steady state selection and some others. Roulette wheel selection is
used in the proposed method.
2.6 Simulated Annealing
Simulated Annealing is a related global optimization technique which traverses the
search space by testing random mutations on an individual solution. A mutation that
increases fitness is always accepted. A mutation which lowers fitness is accepted
probabilistically based on the difference in fitness and a decreasing control parameter. The
method of simulated annealing is a technique that has attracted significant attention as
suitable for optimization problems of large scale because it is one of the algorithms that has
an explicit strategy to avoid local minima. In SA terminology, one speaks of seeking the
30
lowest energy instead of the maximum fitness. It was independently invented by S.
Kirkpatrick, C. D. Gelatt and M. P. Vecchi in 1983, and by V. Cerny in 1985.
The name and inspiration come from annealing in metallurgy, a technique involving
heating and controlled cooling of a material to increase the size of its crystals and reduce
their defects. The heat causes the atoms to become unstuck from their initial positions (a
local minimum of the internal energy) and wander randomly through states of higher energy;
the slow cooling gives them more chances of finding configurations with lower internal
energy than the initial one. In the SA method, each point s of the search space is compared
to a state of some physical system, and the function E(s) to be minimized is interpreted as
the internal energy of the system in that state. Therefore the goal is to bring the system, from
an arbitrary initial state, to a state with the minimum possible energy.
2.6.1 Operation of SA
The following elements must be provided to solve any problem using SA:
a description of possible system configurations
a generator of random changes in configuration
an objective function E (analog of energy) whose minimization is the goal of the
procedure
an annealing schedule - an initial control parameter and rules for lowering it as the
search progresses
The basic iteration: At each step, the SA heuristic considers some neighbors of the current
state s, and probabilistically decides between moving the system to state s' or staying back
in state s. The probabilities are chosen so that the system ultimately tends to move to states
of lower energy. Typically this step is repeated until the system reaches a state which is
good enough for the application, or until a given computation budget has been exhausted.
Boltzmann’s Probability is used in the proposed method.
The neighbors of a state: The neighbors of each state are specified by the user; usually it is
application-specific. For example, in the travelling salesman problem, each state is typically
defined as a particular tour (a permutation of the cities to be visited); then one could define
two tours to be neighbors if and only if one can be converted to the other by interchanging a
31
pair of adjacent cities. In the present problem the neighbor of a state is any domain block
from the domain pool.
Transition probabilities: The probability of making the transition to the new state s' is a
function P(δE, T) of the energy difference δE = E(s') - E(s) between the two states, and of a
global time-varying parameter T called the control parameter. One essential feature of the
SA method is that the Transition probability P is defined to be nonzero when δE is positive,
meaning that the system may move to the new state even when it is worse (has a higher
energy) than the current one. It is this feature that prevents the method from becoming stuck
in a local minimum — a state whose energy is far from being minimum, but is still less than
that of any neighbor. Also, when the control parameter tends to zero and δE is positive, the
probability P(δE, T) tends to be zero. Therefore, for sufficiently small values T, the system
will increasingly favor moves that go "downhill" (to lower energy values), and avoid those
that go "uphill". In particular, when T is 0, the procedure reduces to the greedy algorithm —
which makes the move if and only if it goes downhill. Also, an important property of the
function P is that the probability of accepting a move decreases when (positive) δE grows
bigger. For any two moves which have positive δE values, the function P favors the smaller
value (smaller loss). When δE is negative, P(δE, T) = 1. However, some implementations of
the algorithm do not guarantee this property with the function P, but rather they explicitly
check whether δE is negative, in which case the move is accepted. Obviously, the effect of
the state energies on the system’s evolution depends crucially on the control parameter.
Roughly speaking, the evolution is sensitive only to coarser energy variations when T is
large and to finer variations when T is small. In the proposed method T is made to vary from
1 to 0.
The annealing schedule: Another essential feature of the SA method is that the control
parameter is gradually reduced as the simulation proceeds. Initially, T is set to a high value
(or infinity), and it is decreased at each step according to some annealing schedule — which
may be specified by the user, but must end with T=0 towards the end of the allotted time
budget. In this way, the system is expected to wander initially towards a broad region of the
search space containing good solutions, ignoring small features of the energy function; then
32
drift towards low-energy regions that become narrower and narrower; and finally move
downhill according to the steepest descent heuristic.
Fig. 2.4 Flow Chart of the Implementation of SA
Generate the initial Solution and calculate the fitness function
Estimate initial value for control parameter T and no. of generation g
Generate new solution S and calculate
the fitness function f
f ≤
threshold
Store the new solution S
Reduce the control parameter T
Stop
No
Yes
Yes
No
Yes
Compute Boltmann probability B, generate a
random number r
r ≤ B
g=g+1
g< max
No
Yes
Min(S)<threshold
Yes
T>min
No
No
Initialize g=1
33
Selecting the parameters: In order to apply the SA method to a specific problem, one must
specify the state space, the neighbor selection method (which enumerates the candidates for
the next state s’), the probability transition function, and the annealing schedule. These
choices can have a significant impact on the method's effectiveness. Unfortunately, there are
no choices that will be good for all problems, and there is no general way to find the best
choices for a given problem. It has been observed that applying the SA method is more of an
art than a science. Fig, 2.3shows the flow chart of the simulated annealing.
2.6.2 Pseudo-Code of SA
The following pseudo-code implements the simulated annealing heuristic, as
described above, starting from state x1 and continuing to a maximum of tmax steps or until
a state with energy fopt less than terminating condition is found. The call neighbor(x1)
should generate a randomly chosen neighbor of a given state x1; the call random() should
return a random value in the range 0 to 1. The annealing schedule is defined by the call
contr(r), which should yield the value to use, given the fraction r of the time budget that has
been expended so far.
x1 := x;
fx1 := f(x);
xopt := x1;
fopt := fx1;
while t < tmax
for s := 1 : smax
x2 := neighbor (x1);
fx2 := f(x2);
if fx2 <= fx1
x1 :=x2;
fx1 := fx2;
elseif random() < P(fx1, fx2, t)
x1 :=x2;
fx1 := fx2;
end
if fx2 <= fopt
34
x1 := x2; fx1 := fx2;
xopt := x2; fopt := fx2;
end
end (loop s)
if (fopt < terminating cond)
return (xopt, fopt)
else
contr(t);
x1 := xopt;
end
end (loop t)
SA's major advantage over other methods is an ability to avoid becoming trapped at
local minima. The algorithm employs a random search which not only accepts changes that
decrease objective function f, but also some changes that increase it. The latter are accepted
with a probability p = exp(-f/T) where f is the increase in f and T is a control parameter,
which by analogy with the original application is known as the system temperature
irrespective of the objective function involved. The implementation of the SA algorithm is
easy.
Thus different techniques like VQ, GA and SA are used to produce iteration-free
fractal compression. The decompressed image got after compression should be evaluated
using some measure. The performances that are generally tested are the compression ratio,
quality of the decoded image, coding and decoding time. The following section explains the
performance characteristics used in the present research work.
2.7 Performance Characterization
The performance of a compression algorithm can be measured by the degree with
which it has compressed the image data. There are various ways of expressing the amount
of compression that has been achieved. One way is to compute the compression ratio,
defined as
35
C = n1/n2 (2.8)
where n1 is the number of information carrying units used in the uncompressed dataset and
n2 is the number of units in the compressed dataset. The same units should be used for n1
and n2, bits or bytes are typically used. Large values of C indicate better compression.
A less obvious performance measure is the time required for compression or
decompression of the data. In certain application where time is at a premium, favoring
quicker algorithms achieves a better compression ratio. The symmetry of the technique may
also be important. A symmetrical technique will require similar amount of time to compress
and decompress data. This is what one desires in applications where images are compressed
as frequently as they are decompressed. Some comparison techniques are highly
asymmetrical in time, taking much longer time to compress images than to decompress
them. Fractal coding is an example of asymmetrical technique. This asymmetry is not a
problem if compression takes place infrequently relative to decompression.
When lossy techniques are employed, the decompressed image will not be identical
to the original image. The performances of lossy picture coding algorithms are usually
evaluated on the basis of two parameters:
the compression factor (or analogously the bit rate) and
the distortion produced on the reconstruction.
The first is an objective parameter, while the second strongly depends on the usage of the
coded image. Nevertheless, a rough evaluation of the performances of a method can be
made by considering an objective measure of the error, like Mean Square Error (MSE) or
Peak Signal Noise Ratio (PSNR). MSE is defined as
1
0
1
0
2
),(),(/1N
y
M
x
yxfyxfMNMSE (2.9)
where ),( yxf and ),( yxf
are original and decompressed images of size MxNx3
respectively. A closely related objective fidelity criterion is the mean squares signal to noise
ratio of the compressed, decompressed image. PSNR is the term for the ratio between the
maximum possible power of a signal and the power of corrupting noise that affects the
36
fidelity of its representation. Because many signals have a very wide dynamic range, PSNR
is usually expressed in terms of the logarithmic decibel scale.
The PSNR is defined as:
MSE
pval
MSE
pvalPSNR 10
2
10 log*20log*10 (2.10)
Here, pval is the maximum pixel value of the color image. When the pixels are represented
using 8 bits per sample, this is 255. More generally, when samples are represented using
linear PCM with B bits per sample, pval is
2B − 1. (2.11)
For color images with three RGB values per pixel, the definition of PSNR is the same except
that the MSE is the sum over all squared value differences divided by image size and by
three. Typical values for the PSNR in image compression are between 30 and 40 dB.
Smaller values of RMS error indicate that the decompressed image is closer to the original.
However, this measure does not necessarily correlate with how we perceive the image. It
does not follow that one technique is better than another just because it results in a lower
RMS error, it may be the case that a decompressed image from the techniques with the
higher error in closer, usually to the original image. For this reason subjective fidelity
measures based on human perception are sometimes used to characterize the performance of
lossy techniques.
37
CHAPTER III
ARCHITECTURE AND ALGORITHM OF THE PROPOSED
TECHNIQUE
Fractal image coding makes use of the self-similarities present in the images for
achieving high compression ratio. Iteration-free fractal coding is a technique used for image
compression and is used in our proposed method. This Chapter presents the architecture and
the algorithm of the proposed iteration-free fractal image coding method using VQ, GA and
SA. Vector quantization, genetic algorithm and simulated annealing are three different
searching technique used in the proposed method to find the best domain block with the
transformations that match the range block of the image in the iteration-free fractal image
compression.
3.1 Proposed Architecture of Iteration-free Fractal Image Coding
The iteration-free fractal coding does not require iteration at the decoding stage which
contributes to reduction in time. For this purpose synthetic codebook is used. This codebook
is not transmitted by the encoder either online or offline. In the proposed method, the
synthetic codebook is constructed using the mean image, whose pixel values are the block
means of all the range blocks. We use the mean information of the range blocks that are
hidden in the modified contractive affine transformation of the fractal codes to obtain the
same domain blocks in both the encoder and decoder without using an off-line transmission
of the codebook. The architecture of the proposed method is described in Fig. 3.1.
Fig. 3.1 Architecture of the Proposed Iteration-Free Fractal Image Coding Method
Color
image
Image
blocks Sender
Preprocessing Encoding using VQ/GA/SA
Fractal codes
Decoding
Image
blocks
Reconstruction
Color
image
Receiver
38
The sender sends the color image for compression. In the preprocessing stage, the
input MxNx3 image under coding is divided into non-overlapping square blocks of BxBx3
pixels called the range blocks. Then the mean and variance of each range blocks are
determined. After the mean of all the range blocks are obtained, a mean image of size M/B x
N/B x 3 with each pixel corresponding to the block mean is generated. The mean image
must be larger than the size of the range block i.e. M/B x N/B x 3 > B x B x 3. The
maximum size of B is limited to 8 in order to produce a good quality of the decoded image.
The higher the resolution of the input image (MxNx3) more blocks can be generated for the
domain pool which helps to find a good mapping between the domain and range blocks. The
initial domain pool with blocks of the same size as the range is generated using the mean
image. In the encoder if the variance of the range block is smaller than the threshold value E,
the range block is coded by the mean, or else the range block will be coded by the
contractive affine transformation [Chang, 2001]. The aim of the proposed scheme is to find
the domain block for each image range block and the transformation parameters that
minimize the distortion between the image block and the transformed domain block in a
minimized time. This process of finding the best domain block makes use of the techniques
like VQ, GA and SA.
In the decoder, shown in Fig. 3.2 the mean information of each range block is
extracted from the fractal codes. Using this information the mean image is constructed. This
mean image is partitioned into blocks of the same size as the input image. This forms the
domain pool for GA and SA search methods but for VQ the domain pool is constructed from
the mean image blocks (same size as that of the input) using LBG algorithm. The
decompressed image is constructed block by block by applying the transformation
parameters to the selected domain block from the domain pool as per the code.
Fig 3.2 Proposed Decoder
Image blocks
Fractal
Codes
Extract the mean
of each block for
each RGB
component
Construct the
mean image and
domain pool
For each RGB
component
Apply non contraction
affine transformation to
fractal codes for each RGB
component and then
combine
39
3.1.1 Encoder for the Proposed Iteration-free Fractal Image coding using VQ
In this proposed method, the LBG algorithm and vector features are applied to
reduce the redundancies in the generated domain blocks of the domain pool of color image
and for each R,G and B calculated separately. The number of calculations to determine the
best domain block is reduced by extracting the features of the range block like mean, edge
strength and texture strength and comparing it with the domain pool and eliminate redundant
domain blocks. The transformations are applied only to the remaining domain blocks and
the transformation parameters that minimize the distortion between the image block and the
transformed domain block is coded. The architecture of the proposed encoder using VQ
method is described in Fig. 3.3.
Fig. 3.3 Proposed Encoder Using VQ
3.1.2 Encoder for the Proposed Iteration-free Fractal Image coding using GA
The random numbers required for GA is globally generated using Knuth algorithm
for random numbers. The sizes of the chromosomes and population, the number of
generations and the probability for crossover and mutation are finalized only by trial that
results in good compression ratio and PSNR. Then GA method is applied to search the best
domain block with the required transformation that matches the range block. The
architecture of the encoder using GA method is described in Fig.3.4.
Fractal Code
color
Image
blocks
Feature extraction
of the range to
obtain minimized
domain pool
for each RGB
component
Extracting domain
block with
minimized error for
the range block for
each RGB
component and
then combined
Construction of
mean image
and domain
pool design
for each RGB
component
40
Fig. 3.4 Proposed Encoder Using GA
3.1.3 Encoder for the Proposed Iteration-free Fractal Image coding using SA
The random numbers required for SA is also globally generated using Knuth
algorithm for random numbers. The possible system configurations, generator of random
changes in configuration, means of evaluating the problem function and annealing schedule
are finalized only by trial that results in good compression ratio and PSNR. The SA method
is applied to search the best domain block with the required transformation that match the
range block. The architecture of the encoder using SA method is described in Fig. 3.5.
Fig. 3.5. Proposed Encoder Using SA
3.2 Algorithms for Encoding and Decoding of the Proposed Iteration-free Fractal Image
Coding
3.2.1 Proposed Encoder
In the encoder the input image is partitioned into blocks. The mean and variance of
each block for each RGB component is calculated. The initial domain pool is generated
using the mean image. In the encoder for each RGB component if the variance given in
eq. (3.1) of the range block
Construction of
mean image
and domain
pool design
for each RGB
component
For rough blocks find optimal solution using SA to
Generate the fractal codes and For smooth
blocks the mean Value is used as codes for each RGB component and then
Combined
Fractal codes
Knuth random nos.
generation, design of
solution representation,
fixing no of generation,
and annealing schedule
Image
blocks
Fractal codes
Construction of
mean image
and domain
pool design for
each RGB
component
For rough blocks find optimal solution
using GA to generate the fractal codes
and for smooth blocks the mean
value is used as codes for each RGB component
and then combined
image
blocks
Knuth random nos.
generation, design of
chromosomes, fixing
no of generation, size
of the population ,
crossover and
mutation probability
41
2
,0
,2)(
1}{ R
Bji
jirB
RV
(3.1)
(where ri,j denotes the (i, j)th pixel in the range block of size BxB) is smaller than the
threshold value E, then the range block is coded by the mean or else the range block will be
coded by the contractive affine transformation. Given the mean of each range block and the
set of block transformations, the proposed scheme finds for each image block the domain
block and the transformation parameters that minimize the distortion between the image
block and the transformed domain block for each RGB component. For N domain blocks
(vectors of size k), N distortion computations are needed to determine the best match of an
input range block. For a large number of domain blocks, the determination process is very
time consuming. To keep the distortion almost the same as achieved by full search and to
speed up the encoding process, partial domain block searches are used. The searching
techniques used to obtain the domain block with minimum error that match the range block
are vector quantization, genetic algorithm and simulated annealing.
The new contractive affine transformation can be expressed by
}).({}..{ RDDR DiDiR
= i{ . (Wi - mean (Wi)) + mean(R)} (3.2)
The transformations applied to the domain pool are contrast scaling (α) and isometries (i).
The size of the domain blocks D is the same as that of the range block R and thus the
contraction procedure in fractal coding schemes is eliminated. Therefore a new contractive
affine transformation between the range block and the domain blocks in the domain pool is
calculated using Eq. 3.2. The parameters used in the new contractive affine transformation
are specified as follows.
The main aspect of fractal-based image coding is to find the position of a suitable
domain block PD and a transformation for a rough type range block. The luminance shift is
replaced by the mean μR. The contrast scaling α is determined by testing all the values in the
following set {n/4, n=1, 2, 3, 4} to find the best one that minimizes the distortion. If the
42
domain blocks are represented by Di, j the eight canonical isometric transformations (i0 - i7) of
the domain blocks are obtained as follows.
a) Identity:
i0 (Di, j) = Di, j (3.3)
b) Orthogonal reflection about mid-vertical axis (j = (B – 1)/2) of block:
i1 (Di, j) = Di, B-1-j (3.4)
c) Orthogonal reflection about mid-horizontal axis (i = (B-1)/2) of block:
i2 (Di, j) = DB-1-i, j (3.5)
d) Orthogonal reflection about first diagonal (i = j) of block:
i3 (Di,j) = Dj, i (3.6)
e) Orthogonal reflection about second diagonal (i + j = B - 1) of block:
i4 (Di, j) = DB-1-j, B-1-i (3.7)
f) Rotation around center of block, through +90o:
i5 (Di, j) = Dj, B-1-i (3.8)
g) Rotation around center of block, through +180o:
i6 (Di, j) = DB-1-i, B-1-j (3.9)
h) Rotation around center of block, through -90o:
i7 (Di, j) = DB-1-j, i (3.10)
An advantage of coding using isometry transformation is that it can be decoded to any size
either enlarged or minimized depending on the requirements. To achieve higher
compression ratio, low complexity index compression scheme can be used.
The encoding procedure can be summarized in the following steps.
Step1: The mean µR and variance VR of each range block R(i,j) is determined. A mean
image of size M/B x N/B x3 with each pixel corresponding to the block mean is
generated. The mean image must be larger than the size of the range block i.e.
M/B x N/B x 3 > B x B x 3.
Step2: The mean image is divided into blocks of the same size as the range block (B x B x 3
pixels) to form the domain pool.
Step3: If the variance of the range block is smaller than the threshold value E, then the
range block (smooth block) is coded by the mean, otherwise, the range block (rough
43
),( jiR
block) will be coded by the fractal code f (i, α, µR, PD) using VQ / GA / SA techniques.
Here i represent the isometry transformations, α the contrast scaling, µR the mean value
of the range block and PD the domain block number in the domain pool.
= µR if VR ≤ E
= f (i, α, µR, PD) if VR > E (3.11)
Thus the input from the sender is the image and the output is the fractal codes.
3.2.2 Algorithm of the Encoder for the Proposed Iteration-free Fractal Image coding
using VQ
For each RGB component the redundant domain blocks are initially eliminated using
LBG algorithm as in the existing iteration-free fractal gray scale coding using VQ. The
enhancement proposed in this method using VQ is to further reduce the domain blocks that
are redundant by examining the vector features. The following method helps in identifying
the domain blocks that are eliminated in the search [Jim and Yi, 2004] [Nadira Banu Kamal,
2010].
Let v1,v2 and v3 be three orthogonal vectors, where
v1 = ¼ [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1] (3.12a)
v2 = ¼ [1,1,1,1,1,1,1,1,-1,-1,-1,-1,-1,-1,-1,-1] (3.12b)
v3 = ¼ [ 1,1,-1,-1, 1,1,-1,-1,1,1,-1,-1,1,1,-1,-1] (3.12c)
for the codebook of size k=16. The axis in the direction of vi (i=1, 2, 3) is denoted as the ith
axis. Let xi be the projection value of an input block (vector) X on the ith
axis. That is, xi is
the inner product of X and vi which is calculated, as follows:
xi = ivX , (3.12d)
Similarly, denote cki as the projection value of a domain block Wk on the ith
axis. To
speed the searching process, all domain block are sorted in ascending order of their
projections on the first axis. Here x1 is four times the mean value of X; x2 and x3 are the
edge gradients in the vertical and horizontal directions, respectively, of X; and [(x2)2 + (x3)
2]
represent the edge strength of X. Similar meanings are applied to cki (i=1,2,3). Let r be the
distance between an input block (vector) X and a domain block Wj. If domain block Wj
44
cannot satisfy the following condition, it will be rejected directly in the process of finding
the closest domain block of X
,rxc iji i=1, 2, 3 (3.13a)
where xi and cji are the projection values of X and Wj, respectively, on the ith
axis. As shown
in condition (3.13a), a smaller value of r will give a better performance of rejecting unlikely
domain block. If the domain block Wi is the closest domain block of X, then their projection
values on the first axis may be very close. As stated before, the projection value on the first
axis of a vector is four times the mean value of the vector. Therefore, the domain blocks Wi,
whose mean value is close to the mean value of X, is chosen as the initial domain blocks for
that range block. An additional condition to reduce the distortion computations is also used.
To reject irrelevant domain block, the following condition with condition (3.13a) is used to
reject unlikely domain block in the process of finding the closest domain block of an input
range block. Let cj be the projection of the domain block Wj on the space spanned by v1, v2
and v3, where
cj = cj1v1+cj2v2+cj3v3 = i
i
ij vvW
3
1
, (3.13b)
Similarly, denote x as the projection of the input range vector X on the space spanned by v1,
v2 and v3, where x = x1v1+x2v2+x3v3 = i
i
ij vvX
3
1
, . Let sx = X – x and scj = Wj - cj. From
the definitions of cj, x, scj and sx, cjxjcjj sxscsc ,, and xsx . A candidate domain
block Wj should satisfy the following condition:
22
2
33
2
22
2
11 )()()( rssxcxcxc xcjjjj (3.14)
That is, if the domain block Wj cannot satisfy condition given in Eq (3.14), it will be
discarded directly in the process of finding the closest domain block of X. Condition given
in Eq (3.14) activates only when the domain block cannot be rejected by using condition
given in Eq (3.13a). The texture vector (block) has a small value of [(x2)2 + (x3)
2] and a large
value of (|sx|)2, which is called the texture strength of X; an edge block X possesses a large
value of [(x2)2 + (x3)
2] and a small value of (|sx|)
2 and a smooth block X gives a small value
of [(x2)2 + (x3)
2] and (|sx|)
2 . The x1 is four times the mean value of X. The same
characteristics are also applied to all domain blocks. A smooth domain block mainly uses its
projection value on the first axis to distinguish itself from other smooth domain block; an
45
edge domain block distinguishes itself from other edge domain block using all three
projection values; a texture domain block uses the texture strength and the projection value
on the first axis to distinguish itself from other texture domain block. That is, Eq (3.14) uses
three features namely mean value, edge strength, and texture strength of a vector to reject
unlikely domain block. Therefore, Eq (3.14) has a good performance of rejecting unlikely
domain block for an input range block if a good initial domain block is found. Another
condition for terminating the searching process, if the distance r between a domain block Wi
and input range block X is smaller than half the distance between Wi and any other domain
block, then the domain block Wi must be the best match of the training vector X. Thus, the
searching process may be stopped and Wi may be chosen as the closest domain block when
it satisfies Eq (3.15)
d(X,Wi) 0.5 min (d(Wj, Wi ), j=1,2,…,i-1,i+1,…N) (3.15)
Let dni = 0.5 min (d(Wi, Wj ), j=1,2,…,i-1,i+1,…N), where dni is half the minimum distance
between Wi and all other domain block. Thus using the above method the best domain block
for each of the range block can be determined quickly. The new contractive affine
transformation can be calculated using Eq. 3.2
The distortion between the original range block (R) and the coded range block (
R ) is
represented by the mean-squared-error (MSE) measurement defined as:
2
,,0
,,2
1),(
Bji
jiji rrB
RRMSE (3.16)
The flow chart of the enhanced iteration-free fractal image coding using VQ is shown in fig.
3.6. The algorithm of the proposed iteration-free fractal image coding using VQ is given as
follows:
46
Encoder:
Step1: Partition the given image into range blocks X of size B x B x 3 and find the mean
and variance of each X.
Fig. 3.6. Flow Chart of the Encoder for the Proposed Method Using VQ
Step2: Plot the mean image using the mean of X as the pixel value and partition this mean
image into blocks of size B x B x 3 and apply LBG algorithm to get the domain pool
W of the required size N (N=16 / 32 / 64).
Start
Contrast scaling & isometries
Construct mean
image and domain
pool
Compute the non
redundant domain
pool for each range
block
Input Color Image
Determine mean & Variance of all
range blocks for each R, G, B
component
Variance <
Threshold?
Non-Contractive affine
transformation
Coded by Mean
Find fractal code with
minimized matching error
Attach Header
Output fractal code
Last
Block? Next block
Stop
No
Yes
No
Yes
47
Step3: Determine the domain pool’s projection value on the first axis and arrange them in
the ascending order of the projection values on the first axis. Determine the
projection value cij and |sci| (i=1, 2… N and j= 1, 2, 3) for all domain blocks in the
domain pool. Construct the nearest distance table dt={dn1, dn2… dnN}.
For each range block X and for each RGB component:
Step4: If variance (X) < E assign 0 to label and X to code. Process the next range block.
Step5: Assign 1 to label. Choose the domain block Wm and compute the distance between X
and Wm, where Wm satisfies the following condition |x1 – cm1 | |x1 – cj1|, 1 j
N, and j m. Let r = d(X, Wm) and store the valve of r2 to sqr. If r dnm, then Wm is
the closest domain block of X. Go to step 11. Otherwise compute the projection
values xi (i=1, 2, 3) and |sx| of X. Set d=1.
Step6: If (m+d) N or the domain block Wm+d is deleted, go to step 8. Otherwise go to
step 7.
Step7: a) Compute Di = | c(m+d)i - xi| (i=1,2,3).
If D1 r, then eliminate all domain blocks from Wm+d to Wn and go to step 8.
If Dj r, (j=2,3) then delete domain blocks Wm+d and go to step 8.
b) Compute Dt = 2
)(
3
1
2 |)||(| xdmc
i
i ssD
. If Dt sqr, then delete domain blocks
W m+d and go to step 8.
c) Compute r’ = d (X, Wm+d) and set sqr’ = (r’)2. If r’ r then domain block W m+d
is eliminated and go to step 8. Otherwise set r = r’ and sqr = sqr’. If r dn(m+d),
then Wm+d is the closest domain block of X, go to step 11. Otherwise go to step 8.
Step8: If (m-d) < 0 or the domain block W is deleted, go to step 10. Otherwise go to step 9.
Step9: a) Compute Di = | c(m-d)i - xi|. i=1,2,3.
If D1 r, then eliminate all domain blocks from Wm-d to W0
If Dj r, (j=2,3) then delete domain blocks Wm-d
Go to step 10.
b) Compute Dt = 2
)(
3
1
2 |)||(| xdmc
i
i ssD
. If Dt sqr, then delete domain blocks
W m-d and go to step 10.
48
c) Compute r’ = d(X,Wm-d) and set sqr’ = (r’)2. If r’ r then delete domain block
Wm-d , go to step 10. Otherwise set r = r’ and sqr = sqr’. If r dn(m-d), then Wm-d is
the closest domain block of X, go to step 11 otherwise go to step 10.
Step10: Set d = d+1. If (m+d > N and m-d < 0) or (both Wm+d and Wm-d are deleted), go to
step 11. Otherwise, go to step 6.
Step11: Apply the isometry transformations i to the minimized domain pool W for contrast
scaling = x/4 {for x=1 to 4}. Calculate the RMS error between the transformed
domain blocks and the range block. Transfer the values of i, , X , index of Wj,
which has the minimum RMS error to code. Process the next range block
3.2.3 Algorithm of the Encoder for the Proposed Iteration-free Fractal Image coding
using GA
The main task of fractal-based image coding is to find a suitable domain block and a
transformation for a rough type range block. The GA is used to search for an appropriately
matched domain block as well as an appropriate transformation (isometry and contrast
scaling) for a particular type of range block. The whole problem can be looked upon as a
search problem. Instead of a global search mechanism GA has been introduced to find the
near optimal solution. The number of possible domain blocks to be searched is (M/B2) x
(N/B2), the number of isometry transformations to be searched for each domain block is
eight and the contrast scaling parameter is four for each RGB color component. Thus, the
space to be searched consists of N1 elements for each RGB color component. N1 is called
cardinality of the search space. Here, N1 = 8 x 4 x (M/B2) x (N/B
2) [Nadira and
Thamaraiselvi, 2006b] [Nadira Banu Kamal et al., 2008]. Let the space to be searched for
each RGB color components be represented by P where
P = {1, 2, …, 8} x {1, 2, 3, 4} x {1, 2, …, (M/B2) x (N/B
2)} (3.17)
Binary strings are introduced to represent the elements of P. The set of 2n binary
strings, each of length n, are constructed in such a way that the set exhausts the whole
parametric space. The value for n depends on the values of M, N and B. The fitness value of
a string between the given range block and the obtained range block for each RGB color
component is taken to be the MSE given in Eq. 3.16. Let S be the population size and T be
49
the maximum number of iterations for the GA. Note that the total number of strings
searched up to T iterations is S x T. Hence, N1/SxT provides the search space reduction
ratio for each rough type range block. The random numbers generated for use in the genetic
algorithm is Knuth random numbers and not the random numbers generated by computer.
Fig. 3.7 gives the flow chart of the encoder for the proposed method using GA.
Fig. 3.7. Flow Chart of the Encoder for the Proposed Method Using GA
The algorithm of the proposed iteration-free fractal image coding using GA is given
as follows:
No
Yes
Start
Construct mean
image and domain
pool
Input Color Image
Determine mean & Variance
of all range blocks
Variance <
Threshold?
Compute the domain block with minimized
error for each range block using GA for
each RGB component
Coded by Mean
Find fractal code
Attach Header
Output fractal code
Last
Block? Next block
Stop
No
Yes
Generate Knuth
random nos.
globally
50
Encoder:
Step1: Generate Knuth random numbers globally
Step2: Partition the given image into range blocks X of size B x B and find the mean and
variance of each X.
Step3: Plot the mean image using the mean of X as the pixel value and partition this mean
image into blocks of size B x B x 3 to form the domain pool. Decide on the length of the
chromosomes, crossover probability, mutation probability, population size and number
of iterations.
For each range block X and for each RGB component:
Step4: If variance(X) < E assign 0 to label and X to code. Else assign 1 to label. Generate
the initial population. Calculate the RMS value of X and each population. Store the
values. Compute the next iteration using the roulette wheel selection procedure and
apply crossover and mutation probability. Calculate the RMS value of X and each
population for each iteration. Use elitism to restore the previous best solution [Chang and
Ramakrishna, 2003]. Return the Fractal code of the minimum RMS values after the last
iteration combining each RGB component.
3.2.4 Algorithm of the Encoder for the Proposed Iteration-free Fractal Image coding
using SA
The main work of fractal-based image coding is to find a suitable domain block and
a transformation for a rough type range block. The SA method is used to search for an
appropriately matched domain block as well as an appropriate transformation (isometry and
contrast scaling) for a particular type of range block. Since it is a search problem, the
searching has been optimized by using the SA to find the near optimal solution thereby
reducing the intensive computations and in turn reducing the coding time.
Configuring the solution: The number of possible domain blocks, the number of isometry
transformations, and the contrast scaling parameter are the same as stated in GA. Thus, the
space to be searched can be represented using the binary strings as given in Eq. (3.17)
51
Fig. 3.8. Flow Chart Of The Encoder For The Proposed Method Using SA
Rearrangements: The random numbers are generated using the algorithm of Knuth random
numbers so that all possible solution is generated. First, for each control parameter value the
simulated annealing algorithm runs through a number of cycles. As the cycle runs, the inputs
are randomized. Only randomizations which produce a better suited set of inputs will be
kept. At the core of the simulated annealing algorithm is the randomization of the input
Start
Construct mean
image and
domain pool
Input the image (RGB)
Determine mean & variance
of all range blocks for each
RGB component
Variance <
Threshold?
Compute the domain block with
minimized error for each range block
using SA for each RGB component
Coded by mean
Find fractal code
Attach Header
Output fractal code
Last
Block? Next
block
Stop
No
Yes
No
Yes
Generate Knuth
random nos
globally
52
values. This randomization ultimately causes simulated annealing to alter the input values so
that the solution is minimized.
Objective Function: The fitness function between the given range block and the obtained
range block is taken to be the Mean Square Error (MSE) as given in Eq. (3.16). The first 3
bits in the solution represents the binary equivalent of the isometry transformation, the next
two bits, the contrast scaling and the remaining bits the domain block number. The decimal
equivalents of these values are calculated and the corresponding transformations are
executed on the domain block to obtain the transformed domain block. The fitness function
is obtained for this transformed domain block and the range block.
Annealing Schedule: The value of the control parameter is lowered after the specified
numbers of training cycles have been completed. Once the value of the control parameter is
lowered, it is determined whether the value has reached the lowest allowed value of the
control parameter. If the value is not lower than the lowest allowed value of the control
parameter, then the value is lowered and another cycle of randomizations will take place
only if the minimum value obtained using the fitness function has not reached the threshold
value. The simulated annealing algorithm is complete if the value of the control parameter is
lower than the minimum value allowed or the solution has reached the threshold. Various
cooling schedules are suggested in literature (fig. 2.4). Different cooling schedules were
tried and in the proposed method 2
20
0N
TTiTT N
i
is used as it leads to better solution
[Nadira and Thamaraiselvi, 2006a]. The flow chart of the encoder for the proposed method
using SA is given in the fig 3.8.
The algorithm for SA is as follows:
Step1: Start by generating an initial solution s (randomly) and by initializing the control
parameter T.
Then the following is repeated until the termination condition is satisfied:
Step2: A solution s' is randomly sampled and it is accepted as new current solution
depending on f(s), f(s') and T.
53
Step3: s' replaces s if f(s') < f(s) or, in case f(s') >= f(s), with a probability following the
Boltzmann distribution exp(-(f(s') - f(s))/T).
3.2.5 Decoder
Fig. 3.9 shows the flow chart of the decoder in the proposed enhanced iteration-free
fractal scheme. The entire fractal codes are first received and determined whether or not the
range block is coded by the mean from its header. The mean image is reconstructed with the
mean information in the codes. This mean image is identical to the mean image used in the
encoder since both are constructed by the same block means. Therefore, the domain blocks
generated from both the mean image will be the same. If the block is coded by the mean, the
value of each pixel in the decoded block is equal to the mean value. Otherwise the
contractive affine transformation using Eq 3.2 is performed to reconstruct the coded range
block. The decoding process ends when the last range block is reconstructed. Only the fixed
mean image that is reconstructed from the received codes is required for the construction of
the domain pool. On the other hand, the range blocks can be decoded in parallel. Therefore,
the proposed decoder is very much suitable for the hardware implementation and high-speed
applications. The fractal codes are the input to the decoder.
The decoding process is as follows:
Step1: Extract the mean information of each range block from the fractal codes and
construct the mean image for each RGB color Component.
Step2: The domain pool is obtained by partitioning the mean image using the same size as
the range block of each RGB color component for SA. LBG algorithm is applied on
these domain blocks to obtain the domain pool for VQ.
Step3: For smooth blocks, the decompressed image blocks are obtained by the mean value
and for rough blocks apply contractive affine transformation using the fractal codes.
The outputs of the decoder are image blocks that are combined for each RGB color
component to form the decoded image at the receiver end. Thus the receiver gets the fractal
codes as input and the decompressed image as output.
54
Fig. 3.9. Flow Chart of the Decoder for the Proposed Method
Therefore, the proposed decoder is very much suitable for the hardware implementation and
high-speed applications.
The performance of the quality of the decoded image of size MxN with 8 bit color
resolution is measured using peak signal-to-noise-ratio (PSNR) given in Eq. (3.18) and the
bit rate (the required bits per pixel) using Eq. (3.19).
2/1
1
2,,
1
8
10
)()(
)12(log20)(
MxNrr
dBPSNR
Nj
jiji
Mi (3.18)
Next block
Block reconstructed
by mean
Construct mean image
and domain pool
Start
Read headers & fractal codes of
all range blocks
Coded by
mean?
Contractive affine
transformation using
compressed fractal codes
Output decoded
range block
Last
Block?
Yes
No
No
Yes
Stop
55
Bit rate = bit/pixel (3.19)
For a block size, where
Nμ number of blocks coded by mean
Nf number of blocks coded by fractal codes
Iμ required bits for the block mean
If required bits for (block mean + isometry + contrast scaling + domain block
number).
Using smaller domain pools, the number of accesses to the domain pool memory and
the power consumed per memory access are reduced. The use of smaller domain pool also
leads to reduction of the number of executions of the distortion criterion since smaller
number of candidate domain pool exists. So reduction in search for the best domain block
was achieved by using the partial domain block search.
This Chapter describes in detail the architecture and the algorithm of iteration-free
fractal coding for image compression using vector quantization, genetic algorithm and
simulated annealing. As seen from the flow chart, the proposed methods are simple and easy
to implement. The iteration-free fractal coding method is found to provide computational
efficiency, thereby reducing drastically the cost of coding. Reduction in search space for the
best domain block was achieved by using the partial domain block search.
56
CHAPTER IV
IMPLEMENTATION OF THE PROPOSED TECHNIQUES
In this Chapter the implementation of the algorithms iteration-free fractal image
coding using the techniques like vector quantization, genetic algorithm and simulated
annealing are explained. These algorithms were implemented using the software Matlab
7.12 for both serial and parallel (MDCS using 8 coworkers) image processing on the Intel
(R) Core[TM] 2 E7500 systems with 2.93 GHz and 1.96 GB of RAM. The MATLAB
Distributed Computing Server (MDCS) environment is composed of three parts. The three
parts are: MATLAB client installation including Parallel Computing Toolbox (PCT), MDCS
Worker nodes and Job Manager/Scheduler (i.e. MATLAB Jobmanager, LSF (Load Sharing
Facility), PBS (Portable Batch System), etc). The MATLAB client(s) communicate with the
Jobmanager/Scheduler to submit jobs and tasks. The Jobmanager/Scheduler then relays
tasks to available workers. Once a worker completes its task the results are returned to the
Jobmanager/Scheduler, who in-turn relays the results back to the client session where they
are received by the user.
For implementation of the proposed algorithms, four 512 x 512 benchmark color
images of Lena, Pepper, Tajmahal and Cauliflower [shown in Fig. 4.1 (a) to (d)] with twenty
four bit color resolution were used. In the simulation, the images were partitioned into range
blocks with the block size, 8x8 or 4x4 or 2x2. The maximum block size is set to 8x8 because
for a range block size greater than 8x8 the determination of the proper domain block was
difficult and the quality of the image reconstructed was poor. The threshold value for the
variance of range blocks was chosen by trial and error basis to be of size 20 for block size
8x8, 10 for 4x4 and 5 for 2x2 that results in good compression ratio and PSNR. The number
of blocks in the mean image is the size of the domain pool.
57
(a) Lena (b) Pepper
(c) Tajmahal (d) Cauliflower
Fig 4.1 Original (512 X 512x3, 24 Bit/Pixel) Images.
4.1 Implementation of the Proposed Iteration-free Fractal coding using VQ
In order to obtain the same blocks in both the encoder and decoder in the fractal
coding scheme, an iteration-free fractal coding scheme was proposed by Chang and Chung
[2000] for gray scale images. This method was applied to color images and further improved
in the proposed method by reducing the domain pool for each range block for each RGB
color component which results in efficient coding time.
The LBG algorithm was applied to design the domain pool using the mean image.
The LBG method reduces the redundancies between the generated domain blocks and thus
the constructed domain pool was efficient compared to the fractal schemes using iterations.
The coding performance was further improved in the proposed algorithm. For each RGB
color component used the vector features namely mean value, edge strength, and texture
58
strength to delete impossible domain blocks for each range block. To find the better
matching domain block for a range block, two additional conditions were executed. One
condition helped in terminating the searching process and another to reject impossible
domain blocks. This helped in the reduction of the distortion calculations for the
computation of the better match for the range block. Extra computations for these additional
conditions were very small and had reduced the coding time to a great extent. The computer
simulation showed that the coding time was greatly reduced and the quality of the decoded
image was also good. The domain pool design of three sizes were used in the proposed
method namely ND = 16, 32 and 64. The performance of the quality of the decoded image
was evaluated by the root-mean-square-error and the coding time was computed.
The range block with a size 8x8, 4x4 and 2x2 was considered for simulation. The
length of the attached header to the proposed iteration-free fractal code for each range block
was one bit because it only denoted whether or not the range block was coded by the mean.
For an image partitioned by 4x4 range blocks, every block mean was calculated and a
128x128 mean image was obtained. Fig. 4.2 (b) shows the mean image of Lena got by this
partition and it is very similar to its original image except its size. Therefore the domain
pools of different sizes namely 16, 32 and 64 using the LBG-based method from the mean
image was constructed. The coding performance with the contractive affine transformation
under the different sizes for the domain pool on the parameters like coding time, image
quality and bit rate was determined.
(a) 64x64 (b) 128x128 (c) 256x256
Fig. 4.2. Mean Images Of Lena.
59
For the image partitioned by 8x8, 4x4 and 2x2 range blocks, the 64x64, 128x128 and
256x256 mean images for Lena was obtained and shown in Fig. 4.2 (a), (b) and (c)
respectively. The domain pools of different sizes were constructed on these images using the
LBG-based method and computed the coding performance on the same parameters for
different sizes of the domain pool for each RGB color component.
4.2 Implementation of Iteration-free Fractal Coding using GA
In this section, the implementation that has been conducted to obtain the
performance of the iteration-free fractal image coding using GA is discussed. In optimizing,
it is important that the GA should be able to converge to the optimum in as few generations
as possible. The significance of crossover probability (pc), and mutation probability (pm), in
controlling GA performance had long been acknowledged in GA research. Several studies,
both empirical and theoretical have been devoted to identify optimal parameter settings for
GA [Luo et al., 2001]. The crossover probability pc controls the rate at which solutions are
subjected to crossover. The higher the value of pc, the quicker are the new solutions
introduced into the population. As pc, increases, however, solutions can be disrupted faster
than selection can exploit them. Typical values of pc, are in the range 0.5-1.0. Mutation is
only a secondary operator to restore genetic material. Nevertheless the choice of pm is
critical to GA performance. Large values of pm, transform the GA into a purely random
search algorithm, while some mutation is required to prevent the premature convergence of
the GA to sub optimal solutions. Typically pm is chosen in the range 0.005-0.1.
The range block with a size 8x8, 4x4 & 2x2 was considered for simulation. Here the
total number of range blocks for the block size 4x4 for each color component was n = 16384
and total number of domain blocks (m) to search were (128 / 4) x (128 / 4) = 32 x 32. Thus,
the cardinality (N1) of the search spaces for this case was 8 x 4 x 1024.The string length n
was taken to be 15 (3 + 2 + 10). Out of these 215
binary strings, forty strings (S = 40) were
selected randomly to construct an initial population. A high crossover probability, say pc =
0.85, was taken for the crossover operation. For mutation operation, pm was 0.06. Roulette-
wheel selection procedure was used. The probability of selection of a string in the
60
population to the mating pool was inversely proportional to its fitness value because the
present optimization problem is a minimization problem.
The total number of generations (iterations) considered in the GA was T = 60.
Hence, the search space reduction ratio was approximately 14. The coding performance of
the proposed method using the parameters like decoded image quality and encoding time
was determined. For the image partitioned by 8x8, 4x4 and 2x2 range blocks, the 64x64,
128x128 and 256 x 256 mean image for Lena was obtained and shown in Fig. 4.2(a), (b) and
(c) respectively. For the block size 8x8, the total number of range blocks for each RGB
component was n = 4096 and total number of domain blocks to search was (64 / 8) x (64 / 8)
= 8 x 8. Thus, the cardinality (N1) of the search spaces for this case was 8 x 4 x 64.The
string length n was taken to be 11 (3 + 2 + 6). For the block size 2x2, the total number of
range blocks was n = 65536 and total number of domain blocks to search was (256 / 2) x
(256 / 2) = 128 x 128. Thus, the cardinality (N1) of the search spaces for this case was 8 x
4 x 16384.The string length n was taken to be 19 (3 + 2 + 14). The domain pool was found
and the coding performance using the above parameters was simulated. To further reduce
the coding time the entire procedure was done using parallel processing.
4.3 Implementation of Iteration-free Fractal Coding using SA
In computer simulation, the same four 512 x 512 benchmark color images with 24-
bit color resolution were used to test the proposed iteration-free fractal coding using SA.
For implementing the SA, the solution configuration, generation of the next solution,
objective function and annealing schedule were finalized. In the proposed method it is
implemented for the block sizes 8x8, 4x4 and 2x2 were followed for each RGB component
and later combined.
1. Solution Configuration. The isometry transformations are eight, and hence it requires 3
bits. The contrast scaling assumes the values n/4 for n=1,2,3 and 4, so it requires 2 bits and
the number of domain blocks depends on the size of the partition. So the number of bits to
represent the solution configuration depends on it. Accordingly the solution space was
61
represented. For the block of size 8x8, 4x4 and 2x2 the solution configuration length was
taken to be 11, 15 and 19 respectively.
2. Rearrangements. Knuth random numbers were globally generated for the rearrangement
of the solution so that most possible solutions were considered. The seed value was chosen
to be as .5.
3. Objective Function. In the simplest form of the problem, the objective function was taken
as the RMS error.
4. Annealing schedule. This requires experimentation. Some random rearrangement of the
solution was first generated, and used them to determine the range of values the objective
function encountered from move to move. Choosing a starting value for the parameter T0
which was considerably large say 1, and process was conducted downward each amounting
to a decrease in T. Each new value of T was kept constant for, say, N (N=40)
reconfigurations and store the configuration which produces minimum value for the
objective function. If the terminating condition was not reached, the parameter for T was
reduced and the next trial was started with the configuration that produced minimum value
for the objective function. The equation for the parameter T was chosen as
N
TTiTT No
oi
(4.1)
where To = 1 and TN = 0 and i is the iteration number. The performance of the decoded
image on the parameters like image quality, bit rate and coding time was found. To further
reduce the coding time parallel processing was executed.
4.4 Implementation of Iteration-free Fractal Coding using GA and SA in parallel
The proposed method has the advantages such as low time consumption for decoding
and less memory requirements for storage, which is most needed in today’s communication.
These methods can be further improved in time reduction at the encoding stage by parallel
processing. This is because parallel image compression offers a more effective approach
than the sequential counterparts to accelerate the compression process and bring it closer to
62
real-time operation. The number of range blocks generated by block size 8x8 for an input
image of 512x512 is 4096 and increases as the image size increases. The process of finding
the best domain block for all these range blocks is the same process and it is independent so
it can be executed in parallel thus reducing the time further than the proposed methods.
Because of the independent processing of image compression operation, an effective parallel
image compression algorithm was developed to significantly reduce the processing time
using 8 coworkers in MATLAB. The same four benchmark images were used for
implementation with the same parameters used in serial for both GA and SA. The
performance of the decoded image on the parameters like image quality, bit rate and coding
time was found.
63
CHAPTER V
RESULTS AND DISCUSSIONS
The results of the implementation of the various techniques like VQ, GA and SA
both serial and parallel processing image compression in the iteration-free fractal image
coding for still color image are tabulated in this Chapter. The parameters used for the
performance analysis are compression ratio, image quality and encoding time. As image
compression ratio plays a very important role in image compression, it is considered as a
separate subheading in this Chapter.
5.1 Compression Ratio
The range blocks were classified before coding [Yung et al., 2003]. Range blocks
were grouped into two sets according to the variability of the pixel values in these blocks. If
the variability of a block was low, i.e., if the variance of the pixel values in the block was
below a fixed value, called the threshold, the block is called smooth type range block.
Otherwise, it is called a rough type range block. The purpose of choosing this block
classification was for two reasons. One is to get higher compression ratio, and the other is to
reduce the coding time. The threshold value that separates the range blocks into two types
was chosen as stated earlier. After classification, VQ-based, GA-based and SA-based
coding was adopted for the rough type range blocks only. All the pixel values in a smooth
type range block were replaced by the mean of its pixel values.
This scheme is a time-saving one provided; the number of smooth type range blocks
is significant. The storage requirements for the proposed method can be calculated from the
number of smooth and rough blocks multiplied by the number of bits required to store the
values. Table 5.1 gives the classification of blocks and bit rate using different types of
encoding using the proposed techniques on the images chosen for simulation. From the
results tabulated in Table 5.1, it is observed that for the images which have the number of
smooth blocks significantly high has a high compression ratio.
64
Table 5.1 Classification of Blocks and Bit Rate Using Different Types of Encoding On
The Chosen Images Using the Proposed Techniques
.
5.2 Proposed Iteration-free Fractal Image Coding with Vector Quantization
Experimental results of the coding time and image quality using different sizes of
codebooks for the proposed enhanced iteration-free fractal method using VQ for block size
8x8, 4x4 and 2x2 are tabulated in Table 5.2. The RMS of the decoded image partitioned by
the 8x8 block size is higher than that partitioned by the 4x4 and 2x2 block size since a
smaller block size leads to a smaller matching error for the affine transformation. However,
the bit rate increases significantly because the number of the 4x4 and 2x2 range blocks are
four times and sixteen times the number of the 8x8 range blocks. The proposed method
using VQ provides better performances of coding time when compared with GA and SA
[Nadira and P.Priyanga, 2014a].
Image
Range
Block
size
No of Range Blocks
for GA/SA
Bit Rate Compression
ratio
PSNR
GA
/ SA VQ
GA /
SA VQ
Smooth Rough GA SA VQ
Lena
2 * 2 43927 21611 7.56 7.47 3.17 3.20 41.60 35.41 31.55
4 * 4 8394 7992 1.95 2.04 12.26 12 33.12 31.68 27.84
8 * 8 1559 2539 0.48 0.54 49.82 44.50 28.76 28.36 25.16
Pepper
2 * 2 51409 14129 7.02 7.16 3.41 3.35 39.84 36.24 30.78
4 * 4 9851 6535 1.87 1.99 12.81 12.06 33.52 32.20 26.92
8 * 8 1638 2460 0.47 0.53 50.16 45.19 27.84 27.84 23.91
Cauliflower
2 * 2 49433 16105 7.16 7.04 3.34 3.40 37.63 37.44 27.03
4 * 4 8640 7746 1.94 1.87 12.34 12.77 29.49 28.31 23.45
8 * 8 1682 2416 0.47 0.49 50.36 48.87 24.23 24.88 21.97
Tajmahal
2 * 2 44672 20866 7.51 7.35 3.19 3.26 42.83 39.90 22.50
4 * 4 6624 9762 2.05 1.98 11.65 12.07 33.86 32.32 25.49
8 * 8 1018 3080 0.50 0.57 47.58 44.44 26.64 26.52 30.42
65
Table 5.2. Performance Result of the Proposed Method Using VQ
Image
Range
Block Size
No of Range
Blocks
16 level 32 level 64 level
PSNR Encoding
Time(sec)
Encoding
Time(sec)
Encoding
Time(sec)
Bit
rate Smooth Rough
Lena 8x8 1559 2539 5941.4 6374.3 7009.6 0.54 25.16
4x4 8394 7992 23272 70142 31386 2.04 27.84
2x2 43927 21611 79228 104390 153450 7.47 31.55
Pepper 8x8 1638 2460 5855 6756.4 6881 0.53 23.91
4x4 9851 6535 21268 24023 28241 1.99 26.92
2x2 51409 14129 55990 160930 109640 7.16 30.78
Cauliflower 8x8 1682 2416 4562.8 4789.2 5265.7 0.49 21.97
4x4 8640 7746 16334 18459 22585 1.87 23.45
2x2 49433 16105 49001 66905 96249 7.04 27.03
Tajmahal 8x8 1018 3080 8817.3 5616.4 6408.1 0.57 30.42
4x4 6624 9762 14163 24725 31149 1.98 25.49
2x2 44672 20866 38014 95678 138210 7.35 22.50
The decompressed image of Pepper for the block partition of sizes 8x8, 4x4 and 2x2 using
VQ is shown in Figure 5.1. The decompressed image of Lena, Cauliflower and Tajmahal for
the block partition of sizes 8x8 using 16 level for the technique VQ is shown in Figure 5.2.
(a) 2x2 (b)4x4 (c)8x8
Fig 5.1. Decompressed Pepper Image for Block Size 2x2, 4x4 And 8x8 Using the Proposed
VQ Technique using 16 level
66
Fig. 5.2. Decompressed Images of Lena, Cauliflower and Tajmahal using VQ
for block size 8x8 using 16 level
Fig. 5.3. Decompressed Images of Lena, Pepper, Cauliflower and Tajmahal using
VQ for block size 4x4 using 32 level
The decompressed image of Lena, Pepper, Cauliflower and Tajmahal for the block
partition of sizes 4x4 using 32 level and 2x2 using 64 level for the technique VQ is
shown in Figure 5.3 and 5.4 respectively.
67
Fig. 5.4. Decompressed Images of Lena, Pepper, Cauliflower and Tajmahal using
VQ for block size 2x2 using 64 level
5.3 Iteration-free Fractal Image Coding using GA
Results of encoding the Lena, Pepper, Cauliflower and Tajmahal images, for the
iteration-free fractal image compression using GA for 8x8, 4x4 and 2x2 range blocks are
reported in Table 5.3. The RMS of the decoded image partitioned by the 8x8 block size is
higher than that partitioned by the 4x4 and 2x2 block size since a smaller block size leads to
a smaller matching error for the affine transformation. However, the bit rate increases
significantly because the number of the 2x2 range blocks is four times the number of the 4x4
68
range blocks and number of the 4x4 range blocks is four times the number of the 8x8 range
blocks.
Table 5.3 Performance Result of the Proposed Method Using GA
Image Range Bit
Rate
Compression
Ratio
PSNR No of Range Blocks Encoding
Time Smooth Rough
Lena
2 * 2 7.56 3.17 41.60 43927 21611 110330
4 * 4 1.95 12.26 33.12 8394 7992 63871
8 * 8 0.48 49.82 28.76 1559 2539 31250
Pepper
2 * 2 7.02 3.41 39.84 51409 14129 77985
4 * 4 1.87 12.81 33.52 9851 6535 52157
8 * 8 0.47 50.16 27.84 1638 2460 36276
Cauliflower
2 * 2 7.16 3.34 37.63 49433 16105 84643
4 * 4 1.94 12.34 29.49 8640 7746 50683
8 * 8 0.47 50.36 24.23 1682 2416 34054
Tajmahal
2 * 2 7.51 3.19 42.83 44672 20866 110470
4 * 4 2.05 11.65 33.86 6624 9762 64737
8 * 8 0.50 47.58 26.64 1018 3080 31250
The decompressed image of Lena, Cauliflower, Pepper and Tajmahal for the block
partition of sizes 8x8, 4x4 and 2x2 using GA is shown in Figure 5.5, 5.6, 5.7 and 5.8
respectively. The proposed method using GA provides better performances of image quality
when compared with SA and VQ [Nadira and Priyanga, 2014]. This work was implemented
using parallel coding in order to reduce the encoding time.
(a) Block size 8x8 (b) Block size 4x4 (c) Block size 2x2
Fig. 5.5. Decompressed Image Of Lena For Block Size 8x8, 4x4 And 2x2 Using The
Proposed GA Technique.
69
(a) Block size 8x8 (b) Block size 4x4 (c) Block size 2x2
Fig. 5.6. Decompressed Image Of Cauliflower For Block Size 8x8, 4x4 And 2x2 Using The
Proposed GA Technique.
(a) Block size 8x8 (b) Block size 4x4 (c) Block size 2x2
Fig. 5.7. Decompressed Image Of Pepper For Block Size 8x8, 4x4 And 2x2 Using The
Proposed GA Technique.
(a) Block size 8x8 (b) Block size 4x4 (c) Block size 2x2
Fig. 5.8. Decompressed Image Of Tajmahal For Block Size 8x8, 4x4 And 2x2 Using The
Proposed GA Technique.
70
5.4 Iteration-free Fractal Image Coding using SA
The decompressed image of Cauliflower, Lena, Pepper, Tajmahal for the block
partition of sizes 8x8, 4x4 and 2x2 using SA is shown in Figure 5.9, 5.10, 5.11 and 5.12
respectively. The MSE of the decoded image partitioned by the 8x8 block size is higher than
that partitioned by the 4x4 and 2x2 block size since a smaller block size leads to a smaller
matching error for the affine transformation. However, the bit rate increases significantly
because the number of the 4x4 and 2x2 range blocks are four times and sixteen times the
number of the 8x8 range blocks. Results of encoding the Lena, Pepper, Cauliflower and
Tajmahal images, for the iteration-free fractal image compression using SA for 8x8, 4x4 and
2x2 range blocks are reported in Table 5.4.
Table 5.4 Performance Result of the Proposed Method Using SA
The proposed method using SA provides optimal performances when the image quality and
coding time are considered together [Nadira, 2012]. This work was implemented using
parallel coding in order to reduce the encoding time.
Image Range Bit
Rate
Compression
Ratio
No of Range Blocks Encoding
Time Smooth Rough
Lena
2 * 2 7.56 3.17 43927 21611 106660
4 * 4 1.95 12.26 8394 7992 51921
8 * 8 0.48 49.82 1559 2539 17784
Pepper
2 * 2 7.02 3.41 51409 14129 70342
4 * 4 1.87 12.81 9851 6535 22802
8 * 8 0.47 50.16 1638 2460 17076
Cauliflower
2 * 2 7.16 3.34 49433 16105 64120
4 * 4 1.94 12.34 8640 7746 20484
8 * 8 0.47 50.36 1682 2416 17743
Tajmahal
2 * 2 7.51 3.19 44672 20866 60320
4 * 4 2.05 11.65 6624 9762 28842
8 * 8 0.50 47.73 1018 3080 17794
71
(a) Block size 8x8 (b) Block size 4x4 (c) Block size 2x2
Fig 5.9. Decompressed Cauliflower Image for Block Size 8x8, 4x4 And 2x2 Using the
Proposed SA Technique
(a) Block size 8x8 (b) Block size 4x4 (c) Block size 2x2
Fig 5.10. Decompressed Lena Image for Block Size 8x8, 4x4 And 2x2 Using the Proposed
SA Technique
(a) Block size 8x8 (b) Block size 4x4 (c) Block size 2x2
Fig 5.11. Decompressed Pepper Image for Block Size 8x8, 4x4 And 2x2 Using the Proposed
SA Technique
72
(a) Block size 8x8 (b) Block size 4x4 (c) Block size 2x2
Fig 5.12. Decompressed Tajmahal Image for Block Size 8x8, 4x4 And 2x2 Using the
Proposed SA Technique
Table 5.5 Results of the Proposed Iteration-Free Fractal Method Using the
Techniques VQ, GA and SA
Image
Range
Block
Size
Using GA Using SA Using VQ
RMS
Coding
Time
(secs)
RMS
Coding
Time
(secs)
Codebook
size 16
Codebook
size 32
Codebook
size 64
RMS
Coding
Time
(secs)
RMS
Coding
Time
(secs)
RMS
Coding
Time
(secs)
Lena
8x8 9.29 31250 9.64 17784 14.06 5941.4 14.30 6374.3 14.29 7009.6
4x4 5.62 63871 6.64 51921 10.33 23272 10.14 70142 10.19 31386
2x2 2.12 110330 4.32 106660 6.74 79228 6.69 104390 6.57 153450
Pepper
8x8 10.84 36276 10.33 17076 16.24 5855 16.38 6756.4 16.57 6881
4x4 5.37 52157 6.25 22802 11.50 21268 11.23 24023 11.35 28241
2x2 2.59 77985 3.92 70342 7.37 55990 7.30 160930 7.23 109640
Cauliflower
8x8 15.39 34054 14.52 17743 20.31 4562.8 20.29 4789.2 20.34 5265.7
4x4 8.54 50683 9.78 20484 17.12 16334 16.92 18459 16.77 22585
2x2 3.34 84643 3.42 64120 11.34 49001 11.31 66905 11.25 96249
Tajmahal
8x8 11.86 31250 12.02 28842 19.11 8817.3 19.49 5616.4 19.52 6408.1
4x4 5.16 64737 6.16 17794 13.53 14163 13.39 24725 13.39 31149
2x2 1.84 110470 2.57 60320 7.68 38014 7.52 95678 7.39 138210
73
The Encoding time of Serial Processing of the proposed techniques using GA, SA and VQ
values are reported in the table 5.5. These results of encoding time using block sizes 2x2,
4x4, 8x8 are plotted in the graph and shown in Fig 5.13
Fig 5.13 Encoding Time of GA, SA and VQ
Table 5.6 PSNR and Bit Rate of the Proposed Techniques VQ, GA and SA
Image
Range
Block
size
Using Proposed GA Using Proposed SA Using Proposed
VQ
PSNR Bit Rate
(bpp) PSNR
Bit Rate
(bpp) PSNR
Bit Rate
(bpp)
Lena
2x2 41.60 7.56 35.41 7.56 31.55 7.47
4x4 33.12 1.95 31.68 1.95 27.84 2.04
8x8 28.76 0.16 28.36 0.48 25.16 0.54
Pepper
2x2 39.84 7.02 36.24 7.02 30.78 7.16
4x4 33.52 1.87 32.20 1.87 26.92 1.99
8x8 27.84 0.47 27.84 0.47 23.91 0.53
cauliflower
2x2 37.63 7.16 37.44 7.16 27.03 7.04
4x4 29.49 1.94 28.31 1.94 23.45 1.87
8x8 24.23 0.47 24.88 0.47 21.97 0.49
Taj Mahal
2x2 42.83 7.51 39.90 7.51 30.42 7.35
4x4 33.86 2.05 32.32 2.05 25.49 1.98
8x8 26.64 0.50 26.52 0.50 22.50 0.57
74
Fig 5.14. PSNR Of Lena, Pepper, Cauliflower and Tajmahal for Block Size 8x8, 4x4 and
2x2 Using the Technique GA, SA And VQ.
The results of the proposed techniques using VQ, GA and SA on the parameter
PSNR and Bit Rate value is given in the table 5.6. These results are plotted in the graph
shown in the Fig 5.14. From the results obtained, it is obviously clear that GA technique for
iteration-free fractal coding is preferred for better image quality whereas VQ is preferred for
reduced coding time and SA is preferable for optimal image quality and time. The proposed
methods using VQ, GA and SA are found to provide computational efficiency, thereby
drastically reducing the cost of coding.
The analysis shows that the time can be reduced if the entire processing for encoding
was done in parallel. Since this application involve multiple segments of code and some of
which are repetitive, we can use for-loops to solve these cases. The ability to execute code in
parallel, on one computer or on a cluster of computers, can significantly improve
performance in many cases, such as Parameter sweep applications and Test suites with
independent segments. The parameter Sweep applications are two types, the first one is
many iterations — a sweep might take a long time because it comprises many iterations.
Each iteration by itself might not take long to execute, but to complete thousands or millions
of iterations in serial could take a long time. The second one is Long iterations — a sweep
might not have a lot of iterations, but each iteration could take a long time to run. Typically,
the only difference between iterations is defined by different input data. In these cases, the
ability to run separate sweep iterations simultaneously can improve performance. Evaluating
75
such iterations in parallel is an ideal way to sweep through large or multiple data sets. The
only restriction on parallel loops is that no iterations be allowed to depend on any other
iteration.
Test suites with independent segments — for applications that run a series of unrelated
tasks, we can run these tasks simultaneously on separate resources. We might not have used
for -loop for a case such as this comprising distinctly different tasks, but a parfor -loop could
offer an appropriate solution. In this proposed method parfor-loop is used for reducing the
encoding time. Experimental results of the encoding time both serial and parallel for GA and
SA are tabulated in Table 5.7 and graphically represented in Figure 5.15 and 5.16. The time
has considerably reduced and if we increase the number of coworkers the time can be further
reduced.
Table 5.7 Comparison of Encoding Time both Serial and Parallel of the Chosen Images
Using GA/SA
Image Range
No of Range
Blocks
SA GA
Encoding
Time
(secs)
Serial
Encoding
Time
(secs)
Parallel
Encoding
Time
(secs)
Serial
Encoding
Time
(secs)
Parallel
Smooth Rough
Lena
2 * 2 43927 21611 106660 15208 110330 18090
4 * 4 8394 7992 51921 3738.3 63871 6699.1
8 * 8 1559 2539 17784 1056.1 31250 2860.6
Pepper
2 * 2 51409 14129 70342 15086 77985 16114
4 * 4 9851 6535 22802 2601.6 52157 6811.5
8 * 8 1638 2460 17076 8250.6 36276 9978.9
Cauliflower
2 * 2 49433 16105 64120 21437 84643 15773
4 * 4 8640 7746 20484 2074.1 50683 6728.9
8 * 8 1682 2416 17743 1122.5 34054 2127.3
Tajmahal
2 * 2 44672 20866 60320 13973 110470 17657
4 * 4 6624 9762 28842 2945.3 64737 6316.8
8 * 8 1018 3080 17794 1072.2 31250 2627.5
76
Fig 5.15. Encoding Time of Serial processing Using SA and GA
Fig 5.16 Encoding Time for GA and SA both Serial and Parallel
Table 5.8. PSNR of some methods for 512x512 color images
Image Range SA GA VQ
Rgb & Gray Scale
Component On Mpq-Btc In
Image Compression
Color Image
Compression with
Modified Fractal Coding
on Spiral Architecture
Lena 4 x 4 31.68 33.12 27.84 24.1209 29.05
Pepper 4 x 4 32.20 33.52 26.92 24.1531 -
77
Table 5.8 gives the result of similar methods found in the literature and the proposed
methods for the bench mark image of Lena and Pepper (512 x 512, 24 bit color image). In the
proposed method using SA, GA and VQ the PSNR is highly effective when compared to the
existing fractal methods given in references [Somasundaram, 2011] and [Nileshsingh and
Kakde, 2007] and is evident from the graph given in fig 5.17.
Fig5.17. Comparison of PSNR values of Some Existing Methods For 512x512 Lena
24 Bit Color Image
5.5. OBSERVATIONS
There are several general observations about the generation of solutions via the
proposed techniques Vector Quantization, Genetic Algorithm and Simulated
Annealing:
The initial solution to the LBG algorithm should be properly chosen. The
convergence of the solution depends on it.
78
The empty cell problem should be handled properly by choosing a proper
alternative for a wider choice of the domain block in the domain pool
Unless the fitness function is handled properly, GA/SA may have a
tendency to converge towards local optima rather than the global optimum
of the problem.
Selection is an important genetic operator, but opinion is divided over the
importance of crossover versus mutation.
GA/SA can rapidly locate good solutions, even for difficult search spaces.
GA/SA cannot effectively solve problems in which there is no way to
judge the fitness of an answer other than right/wrong, as there is no way to
converge on the solution. These problems are often called needle in a
haystack problem.
As with all current machine learning problems, it is worth tuning the
parameters such as mutation probability, crossover probability and
population size to find reasonable settings for the problem in GA. A very
small mutation rate leads to genetic drift or premature convergence of the
genetic algorithm in a local optimum. A mutation rate that is too high may
lead to loss of good solutions.
How the fitness function is evaluated is an important factor in speed and
efficiency of the algorithm.
79
CHAPTER VI
CONCLUSION
In this Work, a fast-encoding algorithm for fractal image coding is proposed and
implemented using Genetic Algorithm, Simulated Annealing and Vector Quantization for
still color images. First the range blocks were classified as either smooth or rough depending
on the variance of the block. This classification was very useful when the image had lot of
smooth blocks. So depending on the image and the partition, a high compression ratio was
achieved. Only the encoding consumes more time but the decoding is very fast. The VQ
algorithm uses three features namely mean value, edge strength and texture strength of a
vector to eliminate many of the unlikely domain blocks from the domain pool which is not
available in the existing algorithm for gray scale images. Genetic algorithm and simulated
annealing are optimization techniques. These techniques were used in the proposed method
to find the best domain block with the transformations (isometry and contrast scaling) that
matches the range block. These techniques in the iteration-free fractal coding reveal that the
proposed algorithm has a better performance in terms of image quality. Advantages of GA-
based / SA-based fractal image coding are clearly demonstrated in reducing the search space
for finding the appropriately matched domain block and the appropriate transformation
corresponding to a range block. The GA / SA based method is found to have computational
efficiency, thereby reducing the cost of coding. From the experimental result, it concludes
that when the number of smooth blocks is high bit rate value is low and compression ratio is
high. It is also obviously clear that for square block partitioning GA technique for iteration-
free fractal coding is preferred for better image quality whereas VQ is preferred for reduced
coding time and SA is preferable for optimal image quality and time. The proposed methods
using VQ, GA and SA are found to provide computational efficiency, thereby drastically
reducing the cost of coding. The execution time was further reduced by implementing the
proposed method in parallel for encoding. Color images are commonly used in most of the
application now-a-days. Applications where images can be stored in a compressed form,
which require faster retrieval, like medical images and photographs for identification can use
the proposed method.
80
REFERENCES
1) [Alexander et al., 2003] Alexander S. K., P. Fieguthand and E. R. Vrscay. Image
Sampling by Hierarchical Annealing. 0-7803-7750-8/03/$17.00 © 2003 IEEE, I-249 – I-
252, 2003.
2) [Alexandros, 2005] Alexandros Stamatakis. An Efficient Program for Phylogenetic
Inference Using Simulated Annealing. Proceedings of the 19th IEEE International
Parallel and Distributed Processing Symposium (IPDPS ’05) 1530-2075/05 $20.00
IEEE, 2005.
3) [Arpit and Ranveer, 2005] Arpit Aggarwal and Ranveer Kunal. Partitioned Fractal
Image Compression for Binary Images Using Genetic Algorithms. International
Conference on Networking, Sensing and Control, 734-737, March 2005.
4) [Asmat, 2004] Mohammad Asmat Ullah Khan, Large Block Entropy-Constrained
Reflected Residual Vector Quantization 0-7803-8325-7/04/$20.00 © 2004 IEEE, 128-
131, 2004.
5) [Benjamin et al.,2005] Benjamin P. Loop, Scott D. Sudhoff, Stanislaw H. Zak, and
Edwin L. Zivi. An Optimization Approach to Estimating Stability Regions Using
Genetic Algorithms. 0-7803-9098-9/05/$25.00 ©2005 AACC, 231-236, 2005.
6) [Chang and Chung, 2000] Hsuan T. Chang and Chung J. Kuo. Iteration-Free Fractal
Image Coding Based on Efficient Domain Pool Design. IEEE Trans. Image Processing,
9(3), 329-339, Mar 2000.
7) [Chang, 2001] Hsuan T. Chang. Variance-Based Domain Blocks for Non-Iterative
Fractal Image Compression. Journal of Chinese Institute of Electrical Engineering (EI),
8(2), 159-169, April 2001.
8) [Chang and Ramakrishna, 2003] Chang Wook Ahn and R. S. Ramakrishna. Elitism-
Based Compact Genetic Algorithms. IEEE Transactions on Evolutionary Computation,
7(4), 367-385, August 2003.
9) [Chen et al., 2002] Chen Yisong; Wang Guoping; Dong Shihai. Feature Difference
Classification Method in Fractal Image Coding. Proceedings of the 6th International
Conference on Signal Processing, 1, 26-30 Aug. 2002, 648 – 651, 2002.
81
10) [Chong and Minghong, 2001] Chong Sze Tong and Minghong Pi. Fast Fractal Image
Encoding Based on Adaptive Search. IEEE Transactions on Image Processing, 10(9),
1269-1277, September 2001.
11) [Cor et al., 2003] Cor J. Veenman, Marcel J. T. Reinders, and Eric Backer. A Cellular
Coevolutionary Algorithm for Image Segmentation. IEEE Transactions On Image
Processing, 12(3), 304-316, March 2003.
12) [Donald and Pauline, 2001] Donald Hearn and M Pauline Baker. Computer
Graphics. Prentice Hall Publications, 2001.
13) [Ender and Esin, 2004] Ender Ozcan , Esin Onbagioglu. Genetic Algorithms for Parallel
Code Optimization. 0-7803-85 15-2/04/$20.00 © 2004 IEEE, 1375 – 1381, 2004.
14) [Erjun, 2005] Erjun Zhao Dan Liu. Fractal Image Compression Methods: A Review.
Proceedings of the Third International Conference on Information Technology and
Applications (ICITA’05), 756-759, July 2005.
15) [Ghazel et al., 2005] M.Ghazel, R. K. Ward, R. Abugharbieh,E. R. Vrscay, G. H.
Freeman. Simultaneous Fractal Image Denoising and Interpolation. 0-7803-9195-
0/05/$20.00 ©2005 IEEE, 558-561, 2005.
16) [Gonzalez et al., 2004] Rafael C Gonzalez, Richard E Woods and Steven L
Eddins. Digital Image Processing Using Matlab, Pearson Education (Singapore)
Pte. Ltd publication, 2004
17) [Hanchuan et al., 2000] Hanchuan Peng Fuhui Long, Zheru Chi, and Wanchi Siu. A
Hierarchical Distributed Genetic Algorithm for Image Segmentation. 0-7803-6375-
2/00/$10.00 © 2000 IEEE. 272 – 276, 2000.
18) [Hany and Yongyi, 2000] Hany H. Ammar and Yongyi Tao. FingerPrint Registration
using Genetic Algorithms. 0-7695-0559-7/00 $10.00 © 2000 IEEE, 2000.
19) [Hau-Jie and Wang, 2005] Hau-Jie Liang and Shuenn-Shyang Wang. Architectural
Design Of Fractal Image Coder Based On Kick-Out Condition. 0-7803-8834-8/05
$20.00 © 2005 IEEE, 1118-1121, 2005.
20) [He et al., 2004] He C., S.X. Yang and X. Huang. Progressive Decoding Method for
Fractal Image Compression. IEE Proc.-Vis. Image Signal Process. 151(3), 207-213, June
2004.
82
21) [Hong et al., 2000] Hong Zhang, Xiaofei Zhang, Shun Cao. Analysis and Evaluation of
Some Image Compression Techniques. 0-7695-0589-2/00 $10.00 © 2000 IEEE, 799-
805, 2000.
22) [Jeng et al., 2003] Jeng -Shyang Pan, Zhe-Ming Lu and Sheng-He Sun. An Efficient
Encoding Algorithm for Vector Quantization Based on Subvector Technique. IEEE
Transactions on Image Processing. 12(3), 265-270, March 2003.
23) [Jim and Yi, 2004] Jim Z. C. Lai and Yi-Ching Liaw. Fast-Searching Algorithm for
Vector Quantization Using Projection and Triangular Inequality. IEEE Transactions on
Image Processing, 13(12), 1554-1558, December 2004.
24) [Jyi-Chang et al., 2000] Jyi-Chang Tsai, Chaur Hsieh and Te-Cheng Hsu. A New
Dynamic Finite-State Vector Quantization Algorithm for Image Compression. IEEE
Transaction on Image Processing, 9(11), 1825-1836, Nov 2000.
25) [Leipo and Lipo, 2003] Leipo Yan and Lipo Wang. Image Restoration Using Chaotic
Simulated Annealing, 0-7803-7898-9/03/$17.00 © 2003 IEEE, 3060-3064, 2003.
26) [Liu et al., 2003] Liu Ying, Zhou Hui, Yu Wen-Fang. Image Vector Quantization
Coding Based on Genetic Algorithm, 0-7803-7925-X/03/$17.00 © 2003 IEEE, 773-777,
2003.
27) [Luo et al., 2001] Luo Pi, Teng Jianfu, Guo Jichang, Li Qiang. An Improved Genetic
Algorithm and its Performance Analysis, 0-7803-7010-4/01/$10.00 © 2001 IEEE. 329 –
333, 2001.
28) [Milena, 2004] Milena Karova. Solving Timetabling Problems Using Genetic
Algorithms, 0-7803-8422-9/04/$20.00 © 2004 IEEE 2Th Int'l Spring Seminar on
Electronics Technology, 96 – 98, 2004.
29) [Mohsen et al., 2003] Mohsen Ghazel, George H.Freeman and Edward R.Vrscay. Fractal
Image Denoising, IEEE Trans. Image Processing, 12(12), 1560–1578, Dec. 2003.
30) [Nadira and Thamaraiselvi, 2004] A.R.Nadira Banu Kamal and Dr S. Thamarai Selvi.
Image Compression using Vector Quantization. Proceedings of the UGC sponsored
National Conference on Recent Trends in Digital Image Processing and its Applications,
Department of Computer Science, Yadava College, Madurai, 42-51, Oct 2004.
31) [Nadira and Thamaraiselvi, 2005] A.R.Nadira Banu Kamal and Dr S. Thamarai Selvi.
Fractal Image Compression with Partition Iteration Function Systems. Proceedings of
83
the UGC sponsored National Conference on Computer Science and Informatics,
Department of Computer Science, St. Joseph College, Trichy, Feb 2005. (CD)
32) [Nadira and Thamaraiselvi, 2006a] A.R.Nadira Banu Kamal and Dr S. Thamarai Selvi.
Iteration-Free Fractal Coding For Image Compression Using Simulated Annealing.
Proceedings of the IET International Conference on Visual Information Engineering
2006, Institute of Engineering and Technology, United Kingdom, 189-194, Sep 2006.
33) [Nadira and Thamaraiselvi, 2006b] A.R.Nadira Banu Kamal and Dr S. Thamarai Selvi.
Iteration-Free Fractal Image Compression Using Genetic Algorithm for Single Block
Partition. Proceedings of the IEEE National Conference on Information and
Communication Convergence 2006, B S Abdur Rahman Crescent Engineering College,
Chennai, 67 - 74, Dec 2006.
34) [Nadira Banu Kamal et al., 2008]A.R Nadira Banu Kamal, S. Thamarai Selvi and
Hennry Selvaraj, ―Iteration Free Fractal Image Compression Using Genetic Algorithm‖,
International Journal of Computational Intelligence and Applications, 7(4): 429-446,
2008.
35) [Nadira, 2012] A.R.Nadira Banu Kamal, ―Iteration Free Fractal Compression Using
Simulated Annealing for still Colour Images‖, UACEE International Journal of Artificial
Intelligence and Neural Networks,2(3),10-14,Dec 2012.
36) [Nadira and Priyanga, 2014] A.R.Nadira Banu Kamal and P.Priyanga, ―Iteration Free
Fractal Compression Using Genetic Algorithm for still Colour Images‖, ICTACT
Journal on Image and Video Processing,4(3), 785-790, Feb 2014.
37) [Nadira and Priyanga, 2014a] A.R.Nadira Banu Kamal and P.Priyanga, ―Iteration Free
Fractal Color Image Compression Using Vector Quantization‖, International Journal of
Advanced Research in Computer and Communication Engineering, 3(1), 5154-5163, Jan
2014.
38) [Nadira and Priyanga, 2013] A.R.Nadira Banu Kamal and P.Priyanga, ―Parallel Fractal
Coding for Color Image Compression Using Genetic Algorithm and Simulated
Annealing‖, International Journal of Computer Science and Information
Technologies,4(6),1017-1022,2013.
84
39) [Nakayama et al., 2003] Nakayama T., K. Takeuchi, Konda, K Kotani and T. Ohmi. Still
Image Compression Method Based On Adaptive Block Segmentation Vector
Quantization Technique, 0-7803-7750-8/03/$17.00 © 2003 IEEE, II-275 – II-278, 2003.
40) [Nick, 2000] Nick Efford. Digital Image Processing – A Practical Introduction
Using Java, Pearson Education-2000.
41) [Nileshsingh and Kakde, 2007] Nileshsingh V. Thakur and Dr.O.G Kakde, ―Color
Image Compression with Modified Fractal Coding on Spiral Architecture‖ Journal of
Multimedia, 2(4): 55-66, Aug 2007.
42) [Pan et al., 2003] T.S.Pan, Z. M. Lu and S.H. Sun. An Efficient Encoding Algorithm for
Vector Quantization Based on Subvector Techniques, IEEE Trans. Image Processing
12(3), 265 – 270, 2003.
43) [Pei-Yin, 2004] Pei-Yin Chen. An efficient Prediction Algorithm for Image Vector
Quantization, IEEE Transaction on System, Man, and Cybernetics-Part B: Cybernetics,
34(1), 740-746, Feb 2004.
44) [Peter and Bradley, 2000] Peter Veprek and A.B.Bradley. An Improved Algorithm for
Vector Quantizer Design, 1070-9908/00 $ 10.00 © 2000 IEEE, 250-252, 2000.
45) [Raouf and Dietmar, 2000] Raouf Hamzaoui and Dietmar Saupe. Combining Fractal
Image Compression And Vector Quantization, IEEE Tranc Image Processing, 9(2), 197-
208, Feb 2000.
46) [Riccardo et al., 2006] Riccardo Distasi, Michele Nappi, and Daniel Riccio. A
Range/Domain Approximation Error-Based Approach for Fractal Image Compression,
IEEE Transactions on Image Processing, 15(1), 89- 97, January 2006.
47) [Shigeki and Hiroomi, 2005] Shigeki Matsubara and Hiroomi Hikawa. Hardware
Friendly Vector Quantization Algorithm, 0-7803-8834-8/05/$20.00 ©2005 IEEE, 3623-
3626, 2005.
48) [Shi-xin et al., 2002] Shi-xin Sun, Chao-yang Pang, Wen-yu Chen. A New Parallel
Architecture for Image Compression, 7th
International Conference on Computer
Supported Cooperative Work in Design, 158-161, Sept 2002.
49) [Somasundaram, 2011] K. Somasundaram and P.Sumitra, ―RGB & Gray scale
Component on MPQ-BTC in Image Compression‖, International Journal on Computer
Science and Engineering,.3(4):1462-1467, Apr 2011.
85
50) [Subramanya, 2001] Subramanya S.R. Image Compression Techniques, IEEE Potentials,
19-23, Feb/Mar 2001.
51) [Surapong, 2000] Surapong Auwatanamongkol. Pattern Recognition using Genetic
Algorithm, 0-7803-6375-2/00/$10.00 © 2000 IEEE, 822 – 828, 2000.
52) [Vivek Arya et al 2013] Vivek Arya, Dr.Priti Singh, Karamjit Sekhon, RGB Image
compression using Two Dimensional Discrete Cosine Transform, International Journal of
Engineering Trends and Technology, 4(4),828-832,April 2013.
53) [Wu, 2004] Wu Y.G. GA-based DCT Quantisation Table Design Procedure for Medical
Images, IEE Proc.-Vis. Image Signal Process., 151(5), 353-359, October 2004.
54) [Yan and Zhong, 2002] Yan-Ke Shi and Zhong-Ke Shi. Compression-Coded Genetic
Algorithms and its Application in Traffic Control, Proceedings of the first International
Conference on Machine Learning and Cybermetrics, Beijing, 4-5, Nov 2002.
55) [Yi and Jian, 2003] Yi-Wen Zhongiz and Jian-Gang Yang. A Genetic Algorithm For
Tasks Scheduling In Parallel Multiprocessor Systems, Proceedings of the Second
International Conference on Machine Learning and Cybernetics, Xi'an, 1785 – 1790, 2-
5 November 2003.
56) [Yung et al., 2003] Yung -Gi, Wu, Ming-Zhi, Huang, Yu-Ling, Wen. Fractal Image
Compression with Variance and Mean, ICME 2003, I- 353 to I-356, 2003.
57) [Yuzo et al., 2006] Yuzo Iano, Fernando Silvestre da Silva and Ana Lucia Mendes Cruz.
A Fast and Efficient Hybrid Fractal-Wavelet Image Coder, IEEE Transactions On Image
Processing, 15(1), 98-105, 2006.
86
ANNEXURE III
PUBLICATIONS REPRINTS