The History Of The Lossy Compression Techniques

Print   

02 Nov 2017

Disclaimer:
This essay has been written and submitted by students and is not an example of our work. Please click this link to view samples of our professional work witten by our professional essay writers. Any opinions, findings, conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of EssayCompany.

The following fig. 1 shows the typical image compression model.

Decoder

Encoder

f(x,y)



f(x,y)

Source Encoder

Channel Encoder

Channel

Channel Decoder

Source Decoder

Source Decoder

Source Encoder



f(x,y)

Channel

Symbol decoder

Inverse mapper

Channel

Mapper

Quantizer

Symbol Encoder

f(x,y)

Fig 1 : Typical Compression Model

There are two types of compression lossless compression and lossy compression.

4.1.1 Lossless Compression Techniques

Huffman Coding

This is a general technique for coding symbols based on their statistical occurrence frequencies probabilities). The pixels in the image are treated as symbols. The symbols that occur more frequently are assigned a smaller number of bits, while the symbols that occur less frequently are assigned a relatively larger number of bits. Huffman code is a prefix code. This means that the (binary) code of any symbol is not the prefix of the code of any other symbol. Most image coding standards use lossy techniques in the earlier stages of compression and use Huffman coding as the final step.

Run-Length Encoding

This is a very simple compression method used for sequential data. It is very useful in case of repetitive data. This technique replaces sequences of identical symbols (pixels) ,called runs by shorter symbols. The run length code for a gray scale image is represented by a sequence { Vi , Ri } where Vi is the intensity of pixel and Ri refers to the number of consecutive pixels with the intensity Vi as shown in the figure. If both Vi and Ri are represented by one byte, this span of 12 pixels is coded using eight bytes yielding a compression ration of 1: 5.

LZW Coding

LZW (Lempel- Ziv – Welch) is a dictionary based coding. Dictionary based coding can be static or dynamic. In static dictionary coding, dictionary is fixed during the encoding and decoding processes. In dynamic dictionary coding, the dictionary is updated on fly. LZW is widely used in computer industry and is implemented as compress command on UNIX.

Area Coding

Area coding is an enhanced form of run length coding, reflecting the two dimensional character of images. This is a significant advance over the other lossless methods. For coding an image it does not make too much sense to interpret it as a sequential stream, as it is in fact an array of sequences, building up a two dimensional object. The algorithms for area coding try to find rectangular regions with the same characteristics. These regions are coded in a descriptive form as an element with two points and a certain structure. This type of coding can be highly effective but it bears the problem of a nonlinear method, which cannot be implemented in hardware.

4.1.2 Lossy compression techniques:

Transformation Coding

In this coding scheme, transforms such as DFT (Discrete Fourier Transform) and DCT (Discrete Cosine Transform) are used to change the pixels in the original image into frequency domain coefficients (called transform coefficients).These coefficients have several desirable properties. One is the energy compaction property that results in most of the energy of the original data being concentrated in only a few of the significant transform coefficients. This is the basis of achieving the compression. Only those few significant coefficients are selected and the remaining are discarded. The selected coefficients are considered for further quantization and entropy encoding. DCT coding has been the most common approach to transform coding. It is also adopted in the JPEG image compression standard.

Vector Quantization

The basic idea in this technique is to develop a dictionary of fixed-size vectors, called code vectors. A vector is usually a block of pixel values. A given image is then partitioned into non-overlapping blocks (vectors) called image vectors. Then for each in the dictionary is determined and its index in the dictionary is used as the encoding of the original image vector. Thus, each image is represented by a sequence of indices that can be further entropy coded.

Fractal Coding

The essential idea here is to decompose the image into segments by using standard image processing techniques such as color separation, edge detection, and spectrum and texture

analysis. Then each segment is looked up in a library of fractals. The library actually contains codes called iterated function system (IFS) codes, which are compact sets of numbers. Using a systematic procedure, a set of codes for a given image are determined, such that when the IFS codes are applied to a suitable set of image blocks yield an image that is a very close approximation of the original. This scheme is highly effective for compressing images that have good regularity and self-similarity.

Block truncation coding

In this scheme, the image is divided into non overlapping blocks of pixels. For each block, threshold and reconstruction values are determined. The threshold is usually the mean of the pixel values in the block. Then a bitmap of the block is derived by replacing all pixels whose values are greater than or equal (less than) to the threshold by a 1 (0). Then for each segment (group of 1s and 0s) in the bitmap, the reconstruction value is determined. This is the average of the values of the corresponding pixels in the original block.

In this scheme, the image is analyzed to produce the components containing frequencies in well-defined bands, the sub bands. Subsequently, quantization and coding is applied to each of the bands. The advantage of this scheme is that the quantization and coding well suited for each of the sub bands can be designed separately.

4.2 Wavelets

4.2.1 What is Wavelet?

A wavelet is a kind of mathematical function used to divide a given function into different frequency components and study each component with a resolution that matches its scale. In general, a wavelet is small wave that has finite energy concentrated in time as shown in fig 2

(a) Haar (b) Daubechies

Fig 2 : Wavelet (Haar & Daubechius)

Wavelet Families

There are many wavelets being used now a day for decomposition of signals and images. The main types/families are daubechies, biorthogonal, coiflets, symlets and dmey. The major characteristics of different types of wavelets/families are briefly described here.

Haar wavelet

The Haar wavelet is the first known wavelet and was proposed in 1909 by Alfred Haar. The Haar wavelet is also the simplest possible wavelet. The disadvantage of the Haar wavelet is that it is not continuous and therefore not differentiable. The Haar Wavelet's mother wavelet function ψ (t) can be described as

…………………………(1)

And its scaling function φ (t) can be described as

…………………………..(2)

Daubechies wavelet

Named after Ingrid Daubechies, the Daubechies wavelets are a family of orthogonal wavelets defining a discrete wavelet transform and characterized by a maximal number of vanishing moments for some given support. With each wavelet type of this class, there is a scaling function (also called father wavelet) which generates an orthogonal multiresolution analysis.

The Daubechies Wavelets are compactly supported and have highest number of vanishing moments. The types are db1, db2…db45. Discrete Wavelet Transform and continuous wavelet transform is possible for these. These are not symmetrical. The length of the filter is 2N. The number of vanishing moments are N. The Biorthogonal Wavelets are compactly supported wavelets for which symmetry and exact reconstruction is possible with FIR filters. The types are bior1.1, bior1.3, bior1.5, bior2.2, bior2.4 …etc. Discrete and continuous wavelet transforms are possible with these.

Ingrid Daubechies, one of the brightest stars in the world of wavelet research, invented what are called compactly supported orthonormal wavelets — thus making discrete wavelet analysis practicable. The names of the Daubechies family wavelets are written dbN, where N is the order, and db the "surname" of the wavelet. The db1 wavelet, as mentioned above, is the same as Haar wavelet. Here is the wavelet functions psi of the next nine members of the family:

Fig 3 : Daubechies wavelet

These wavelets have no explicit expression except for db1, which is the Haar wavelet. A wavelet transform is the representation of a function by wavelets. The wavelets are scaled and translated copies (known as "daughter wavelets") of a finite-length or fast-decaying oscillating waveform (known as the "mother wavelet").Wavelet transforms have advantages over traditional Fourier transforms for representing functions that have discontinuities and sharp peaks. Wavelet transforms also have the advantage over the Fourier transform for accurately deconstructing and reconstructing finite, non-periodic and/or non- stationary signals.

In formal terms, this representation is a wavelet series representation of a square integrable function with respect to either a complete or orthonormal set of functions.

Orthogonal Wavelet

Orthogonal wavelet: - An orthogonal wavelet is a wavelet where the associated wavelet transform is orthogonal. That is the inverse wavelet transform is the adjoint of the wavelet transform. If this condition is weakened you may end up with biorthogonal wavelets. Haar & Daubechies are the types of orthogonal wavelet.

In mathematics, orthogonal, as a simple adjective, not part of a longer phrase is a generalization of perpendicular. It means at right angles. Orthogonal wavelet decomposition is useful when your signal is non-stationary, meaning that its variance depends on the window of data under consideration. A wavelet basis does not have to be orthogonal. But orthogonality provides conveniences in computations in our applications.

Bi – orthogonal wavelet

A biorthogonal wavelet is a wavelet where the associated wavelet transform is invertible but not necessarily orthogonal. Designing biorthogonal wavelets allows more degrees of freedoms than orthogonal wavelets. One additional degree of freedom is the possibility to construct symmetric wavelet functions. In the biorthogonal case, there are two scaling functions, which may generate different multiresolution analyses, and accordingly two different wavelet functions . So the numbers M, N of coefficients in the scaling sequences may differ. The scaling sequences must satisfy the following biorthogonality condition. Then the wa The Biorthogonal Wavelets are compactly supported wavelets for which symmetry and exact reconstruction is possible with FIR filters. The types are bior1.1, bior1.3, bior1.5, bior2.2, bior2.4 …etc. Discrete and continuous wavelet transforms are possible with these.

velet sequences can be determined as , n=0,...,M-1 and , n=0,....,N-1.

Symlets

The symlets are nearly symmetrical wavelets proposed by Daubechies as modifications to the db family. The properties of the two wavelet families are similar.

The Symlets Wavelets are compactly supported wavelets with highest number of vanishing moments. The types are sym1, sym2, sym3, sym4 and sym5. Discrete and continuous wavelet transform is possible with these types of wavelets. Filter length is 2N.

``

Fig 4 : Symlets sym4 on the Left and sym8 on the Right

Coiflet wavelet

Coiflet is a discrete wavelet designed by Ingrid Daubechies to be more symmetrical than the Daubechies wavelet. Whereas Daubechies wavelets have N / 2 − 1 vanishing moments, Coiflet scaling functions have N / 3 − 1 zero moments and their wavelet functions have N / 3.

Coiflet coefficients.

Both the scaling function (low-pass filter) and the wavelet function (High-Pass Filter) must be normalized by a factor 1/√2 . Below are the coefficients for the scaling functions

for C6-30. The wavelet coefficients are derived by reversing the order of the scaling function coefficients and then reversing the sign of every second one. (i.e. C6

wavelet = {−0.022140543057, 0.102859456942, 0.544281086116, −1.205718913884, 0.477859456942, 0.102859456942}) Mathematically, this looks like Bk = (− 1)kCN − 1 − k where k is the coefficient index, B is a wavelet coefficient and C a scaling function coefficient. N is the wavelet index, ie 6 for C6.

Coiflets wavelets are compactly supported wavelets with highest number of vanishing moments for both psi and phi for a given support width. Discrete and continuous wavelet transform is possible with these.

Discrete Meyer wavelet is FIR based approx of the Meyer wavelet. Meyer wavelet is infinitely regular orthogonal wavelet

Why Wavelet?

1 Applicable to any image format.

2 Less coding & decoding time.

3 Flexibility.

4 Compression quality is good.

Advantages of Wavelets -

Real time signals are both time-limited (or space limited in the case of images) and band-limited. Time-limited signals can be efficiently represented by a basis of block functions. But block functions are not band-limited. Band limited signals on the other hand can be efficiently represented by a Fourier basis. But sines and cosines are not time-limited. Wavelets are localized in both time (space) and frequency (scale) domains. Hence it is easy to capture local features in a signal. Another advantage of a wavelet basis is that it supports multi resolution. Consider the windowed Fourier transform. The effect of the window is to localize the signal being analyzed. Because a single window is used for all frequencies, the resolution of the analysis is same at all frequencies. To capture signal discontinuities (and spikes), one needs shorter windows, or shorter basis functions. At the same time, to analyze low frequency signal components, one needs longer basis functions. With wavelet based decomposition, the window sizes vary. Thus it allows analyzing the signal at different resolution levels.

Disadvantage of Wavelet

For images with high detail textures, lots of wavelet coefficients are found significant in the high frequency subbands. Thus, the detailed information of an image represented by the significant wavelet coefficients in the high frequency subbands demands a further decomposition. Whereas wavelet transform only decomposes the low frequency subband in the iterative manner, wavelet packet transform decomposes both the low and high frequency subbands and therefore provides a much larger family of subband decompositions.

Wavelet transform is focused on the low frequency decomposition, i.e. only the scaling coefficients are successively decomposed. As a result, wavelet transform may not be suitable for images with large regions of textures.

4.2.2 Types of Wavelet Transform

Wavelet transforms are classified into discrete wavelet transform (DWT) and continuous wavelet transform (CWT). The main idea about the wavelet transform is the same in both of these transform. However, they differ in the way the transformation is being carried out.

In CWT, an analyzing window is shifted along the time domain to pick up the information about the signal. This process is difficult to implement and the information that has been picked up may overlap and result in redundancy.

In DWT, signals are analyzed in discrete steps through a series of filters. This method is realizable in the computer and has the advantage of extracting the no overlapping information about the signal. Then, it continues with convolution of high pass filter with all the rows of the image, followed by a down sampling of two. This process is then repeated for all the columns of the image. If further decomposition operations are desired, acting upon the LL sub-image successively can carry them out.

4.2.3 Discrete Wavelet Transform (DWT):

The main idea in using transformation is to compact the energy of signals in much less samples than in time domain, so we can discard small transform coefficients. Wavelet transform has a good location property in time and frequency domain and is exactly in the direction of transform compression idea.

The discrete wavelet transform (DWT) refers to wavelet transforms for which the wavelets are discretely sampled. A transform which localizes a function both in space and scaling and has some desirable properties compared to the Fourier transform. The transform is based on a wavelet matrix, which can be computed more quickly than the analogous Fourier matrix. Most notably, the discrete wavelet transform is used for signal coding, where the properties of the transform are exploited to represent a discrete signal in a more redundant form, often as a preconditioning for data compression. The discrete wavelet transform has a huge number of applications in Science, Engineering, Mathematics and Computer Science.

Wavelets are functions that satisfy certain mathematical requirements and are used in representing data or other functions. The basic idea of the wavelet transform is to represent any arbitrary signal ‘X’ as a superposition of a set of such wavelets or basis functions. These basis functions are obtained from a single photo type wavelet called the mother wavelet by dilation (scaling) and translation (shifts). The discrete wavelet transform for two dimensional signal can be defined as follows.

=ψ ………….….(3)

Where, a= a1a2

The indexes are called wavelet coefficients of signal X and a1, a2 are dilation & b1, b2 are translation, ψ is the transforming function, which is known as mother wavelet. Low frequencies are examined with low temporal resolution while high frequencies with more temporal resolution. A wavelet transform combines both low pass and high pass filtering in spectral decomposition of signals.

Fig 5 : Two level wavelet decomposition

In case of discrete wavelet, the image is decomposed into a discrete set of wavelet coefficients using an orthogonal set of basis functions. These sets are divided into four parts such as approximation, horizontal details, vertical details and diagonal details. Further decomposition of approximation is takes place, we get again four components shown in Figure 3.

4.2.4 Role of Wavelets in Image Compression

A time series is simply a sample of a signal or a record of something, like temperature, water level or data. Wavelets allow a time series to be viewed in multiple resolutions. Each resolution reflects a different frequency. The wavelet technique takes averages and differences of a signal, breaking the signal down into spectrum.

All the wavelet algorithms, on time series a power of two values (e.g., 64, 128, 256...). Each step of the wavelet transform produces two sets of values: a set of averages and a set of differences (the differences are referred to as wavelet coefficients). Each step produces a set of averages and coefficients that is half the size of the input data.

For example, if the time series contains 256 elements, the first step will produce 128 averages and128 coefficients. The averages then become the input for the next step (e.g., 128 averages resulting in a new set of 64 averages and 64 coefficients). This continues until one average and one coefficient (e.g.20) is calculated.

The average and difference of the time series is made across a window of values. Most wavelet algorithms calculate each new average and difference by shifting this window over the input data. For example, if the input time series contains 256 values, the window will be shifted by two elements, 128 times, in calculating the averages and differences. The next step of the calculation uses the previous set of averages, also shifting the window by two elements. This has the effect of averaging across a four element window. Logically, the window increases by a factor of two each time.

Wavelet compression is a form of data compression well suited for image compression (sometimes also video compression and audio compression). The goal is to store image data in as little space as possible in a file. A certain loss of quality is accepted (lossy compression). Using a wavelet transform, the wavelet compression methods are better at representing transients, such as percussion sounds in audio, or high-frequency components in two-dimensional images, for example an image of stars on a night sky. This means that the transient elements of a data

Signal can be represented by a smaller amount of information than would be the case if some other transform, such as the more widespread discrete cosine transform, had been used.

First a wavelet transform is applied. This produces as many coefficients as there are pixels in the image (i.e.: there is no compression yet since it is only a transform). These coefficients can then be compressed more easily because the information is statistically concentrated in just a few coefficients. This principle is called transform coding. After that, the coefficients are quantized and the quantized values are entropy encoded and/or run length encoded.

Fig 6 : Wavelet decomposition of an Image

4.2.5 Lifting Wavelet Transform

Lifting [6][10][13] was originally developed to adjust wavelet transforms to complex geometries and irregular sampling leading to so-called second generation wavelets [4]. It can also be seen as an alternate implementation of classical, first generation wavelet transforms. The main feature of lifting is that it provides an entirely spatial-domain interpretation of the transform, as opposed to the more traditional frequency-domain based constructions. The local spatial interpretation enables us to adapt the transform not only to the underlying geometry but also to the data, thereby introducing nonlinearities while retaining control of the transform’s multi-scale properties.

A typical lifting stage is comprised of three steps: Split, Predict, and Update (as shown in Fig. 7

Fig 7 : Typical lifting stage

Split: Let x[n] be a signal. We first split x[n] into its even and odd polyphase components xe[n] and xo[n], where xe[n] = x[2n] and xo[n] = x[2n+1] . If the x[n] correspond to the samples of an underlying smooth, slowly varying function, then the even and odd polyphase components are highly correlated. This correlation structure is typically local, and thus we should be able to accurately predict each odd polyphase coefficient from the nearby even polyphase coefficients.

Predict: In the interpolating formulation of lifting, we predict the odd polyphase coefficients xo[n] from the neighboring even coefficients xe[n]. The predictor for each is a linear combination of neighboring even coefficients.

P(xe)[n] = Σ plxe[n+l] …….…(4)

We obtain a new representation of the x[n] by replacing xo[n] with the prediction residual. This leads to the first lifting step.

d[n] = xo[n] - P(xe)[n] ……….(5)

If the underlying signal is locally smooth, the prediction residuals will be small. Furthermore, the new representation contains the same information as the original signal : x[n] given the even polyphase xe[n] and the prediction residuals d[n], we can recover the odd polyphase coefficients by

xo[n] = d[n] + P(xe)[n] ……..(6)

This prediction procedure is equivalent to applying a high-pass filter. The prediction filter is typically designed to exactly predict local polynomials up to and including degree. In wavelet terminology, the underlying synthesis scaling function corresponding to this prediction filter can reproduce polynomials of degree up to , and the dual (analysis) wavelet has zero moments.

Update: The third lifting step transforms the even polyphase coefficients xe[n] into a low-pass filtered and subsampled version of x[n]. We obtain this coarse approximation by updating xe[n] with a linear combination of the prediction residuals d[n] . We replace xe[n] with

C[n] = xe[n] + U(d)[n] ….…....(7)

where U(d) is a linear combination of neighboring d values

U(d)[n] = Σ ut d[n+1] ………(8)

t

Each lifting step is always invertible; no information is lost. Assuming the same P and U are chosen for the analysis and synthesis stages, the lifting construction guarantees perfect reconstruction for any P and U. Given d[n] and c[n], we have

xe[n] = c[n] – U(d)[n] ………(9)

The inverse lifting stage is shown in Fig. 8

Fig 8 : Inverse lifting stage

Advantages of Lifting Wavelet

This method favors hardware realization, can carry on the fast original position operation, does not need external storage space, computation complexity is lower and easy to reversible transformation, the wavelet coefficient obtained is the same as with which is obtained by using traditional wavelet transformation. The main advantage of the lifting wavelet transform is that it is efficient for implementation. The calculation in each step of the transform can be done completely in place.

For the Daub 9/7 biorthogonal wavelet [14], the lifting scheme only requires 14 floating point arithmetic operations, including 8 additions and 6 multiplications per data point for every decomposition level, whereas in case of the standard filter bank scheme, there are 23 arithmetic operations required per data point for every decomposition level [4]. Therefore, the total computational cost of the lifting scheme is 60.87% of that in the standard filter bank implementation, which greatly improves the speed of the wavelet transform

4.3 Set Partitioning In Hierarchical Trees (SPIHT)

The SPIHT (Set Partitioning in Hierarchical Trees) algorithm is a generalization of the EZW [8] algorithm and was proposed by Amir Said and William Pearlman [7] . In EZW we transmit a lot of information for little cost when we declare an entire subtree to be insignificant and represent all the coefficients in it with a zerotree root label zr. The SPIHT algorithm uses a partitioning of the trees (which in SPIHT are called spatial orientation trees) in a manner that tends to keep insignificant coefficients together in larger subsets. The partitioning decisions are binary decisions that are transmitted to the decoder, providing a significance map encoding that is more efficient than EZW. In fact, the efficiency of the significance map encoding in SPIHT is such that arithmetic coding of the binary decisions provides very little gain. The thresholds used for checking significance are powers of two, so in essence the SPIHT algorithm sends the binary representation of the integer value of the wavelet coefficients. As in EZW, the significance map encoding, or set partitioning and ordering step, is followed by a refinement step in which the representations of the significant coefficients are refined.

4.3.1 SPIHT Algorithm overview

The data structure used by the SPIHT algorithm is similar to that used by the EZW algorithm-although not the same. The wavelet coefficients are again divided into trees originating from the lowest resolution band. The coefficients are grouped into 2 x 2 arrays that, except for the coefficients in the lowest resolution band , are offsprings of a coefficient of a lower resolution band. The coefficients in the lowest resolution band are also divided into 2 x 2 arrays. However, unlike the EZW case, all but one of them are root nodes. The coefficient in the top-left comer of the array does not have any offsprings. The data structure is shown pictorially in Figure for a seven-band decomposition.

Fig 9 : Tree structure of SPIHT

The trees are further partitioned into four types of sets, which are sets of coordinates of the coefficients:

O(i, j) : This is the set of coordinates of the offsprings of the wavelet coefficient atlocation (i, j). As each node can either have four offsprings or none, the size of O(i, j) is either zero or four. For example, in Figure the set 0(0, 1) consists of the coordinates of the coefficients bj , b2 , b3 , and b4 .

D(i, j) : This is the set of all descendants of the coefficient at location (i, j). Descendants include the offsprings, the offsprings of the offsprings, and so on. For example, in Figure the set D(0, 1) consists of the coordinates of the coefficients bl , …. , b4 , b11, …, b14 , … , b44. Because the number of offsprings can either be zero or four, the size of 1J(i, j) is either zero or a sum of powers of four.

H : This is the set of all root nodes-essentially band I in the case of Figure

L(i,j) : This is the set of coordinates of all the descendants of the coefficient at location (i, j) except for the immediate offsprings of the coefficient at location

(i, j). In other words,

L(i, j) = D(i, j) – O(i, j).

In Figure the set ,L(0, 1) consists of the coordinates of the coefficients b11,…b14,…,b44.

A set D(i,j) or L(i,j) is said to be significant if any coefficient in the set has a magnitude greater than the threshold. Finally, thresholds used for checking significance are powers of two, so in essence the SPIHT algorithm sends the binary representation of the integer value of the wavelet coefficients. The bits are numbered with the least significant bit being the zeroth bit, the next bit being the first significant bit, and the kth bit being referred to as the k - 1 most significant bit. With these definitions under our belt, let us now describe the algorithm. The algorithm makes use of three lists: the list of insignificant pixels (LIP), the list of significant pixels (LSP), and the list of insignificant sets (LIS). The LSP and LIS lists will contain the coordinates of coefficients, while the LIS will contain the coordinates of the roots of sets of type 'D’ or 'L’. We start by determining the initial value of the threshold. We do this by calculating

n = |_log2 Cmax_|

where Cmax is the maximum magnitude of the coefficients to be encoded. The LIP list is initialized with the set H. Those elements of H that have descendants are also placed in LIS as type 'D entries. The LSP list is initially empty. In each pass, we will first process the members of LIP, then the members of LIS. This is essentially the significance map encoding step. We then process the elements of LSP in the refinement step. We begin by examining each coordinate contained in LIP. If the coefficient at that coordinate is significant (that is, it is greater than 2n), we transmit a 1 followed by a bit representing the sign of the coefficient (we will assume 1 for positive, 0 for negative). We then move that coefficient to the LSP list. If the coefficient at that coordinate is not significant, we transmit a zero.

After examining each coordinate in LIP, we begin examining the sets in LIS. If the set at coordinate (i, j) is not significant, we transmit a zero. If the set is significant, we transmit a 1. What we do after that depends on whether the set is of type 'D’ or 'L’.

If the set is of type 'D, we check each of the offsprings of the coefficient at that

coordinate In other words, we check the four coefficients whose coordinates are in

O(i, j). For each coefficient that is significant, we transmit a one, the sign of the coefficient, and then move the coefficient to the LSP. For the rest we transmit a zero and add their coordinates to the LIP. Now that we have removed the coordinates of O(i, j) from the set, what is left is simply the set L(i, j). If this set is not empty, we move it to the end of the LIS and mark it to be of type L. Note that this new entry into the LIS has to be examined during this pass. If the set is empty, we remove the coordinate (i, j) from the list.

If the set is of type ,L, we add each coordinate in O(i, j) to the end of the LIS as the root of a set of type 'D. Again, note that these new entries in the LIS have to be examined during this pass. We then remove (i, j) from the LIS. Once we have processed each of the sets in the LIS (including the newly formed ones), we proceed to the refinement step. In the refinement step we examine each coefficient that was in the LSP prior to the current pass and output the nth most significant bit of |Ci,j|. We ignore the coefficients that have been added to the list in this pass because, by declaring them significant at this particular level, we have already informed the decoder of the value of the nth most significant bit.

This completes one pass. Depending on the availability of more bits or external factors, if

we decide to continue with the coding process, we decrement n by one and continue.

Fig 10 : SPIHT Flowchart

4.3.2 Algorithm Inefficiencies

Though SPIHT achieves excellent rate-distortion performance [8], it does not provide entirely the desired features of progressive transmission, spatial scalability and optimal perceptual quality as it uses an inefficient partitioning method without the consideration of HVS characteristics.

Bits indicating the insignificance of a coefficient are required, but do not code information that reduces the distortion of the reconstructed image, thus leading to a reduction of zero distortion for an increase of non zero rate. This inefficiency arises from the use of LIP and LIS. In LIP, the significance information of tree roots is analyzed coefficients whereas in LIS sets of four coefficients are checked for significance together. Therefore LIP is not very efficient in coding significance information. If four tree roots in Lip are insignificant, four bits are required to code this information.. but if they were grouped together in LIS, only one bit would be required to code their insignificance. Hence a very small coefficient in LIP causes a bit denoting its insignificance to be sent for many passes; likely it may code even more bits to denote that its descendents in LIS are also insignificant. The high percentage of the resulting bit stream that consists of insignificant bits causes very poor image quality at low bit rates. Additionally, there is no mechanism for ensuring spatial scalability, which can actually be done by giving priority to coefficients from the coarse scales to fine scales. This results in poor quality in low resolution images.

The image compressed by SPIHT algorithm is not guaranteed to be optimal in the sense of perceptual quality, since SPIHT does not explicitly considers HVS properties. Instead, it minimizes the MSE measure that is only rough approximation to visual distortion. In order to provide an efficient progressive transmission, it is important to send the most visually significant coefficient at each pass so that that image can be easily recognized.

Another problem of SPIHT coder is that algorithm uses list structures to keep track of which sets must be tested. The use of lists in SPIHT causes a variable, data dependant memory requirement and the need for memory management as list nodes are added, removes and moved. At high rates, there can be as many lists nodes as coefficients. This is undesirable in practical implementation.

4.4 Modified Set Partitioning In Hierarchical Trees (MSPIHT)

The scalability and progressive coding features can be improved by introducing a significance reordering that code more significant information belonging to the lower frequency bands earlier in the bit stream than the SPIHT to better exploit the energy compaction of the wavelet coefficients. The significance reordering is achieved by an alternative definition of the initial tree roots and a new partitioning structure.

4.4.1 Modified SPIHT with significance reordering

The lists of LIP and LIS used in SPIHT are inefficient for representing insignificant coefficients. The problem is especially significant at low bit rates, because only a small percentage of the bits are used to code significance information, hence leading to poor quality for images with low bit rates. A modified SPIHT structure can be obtained using a different partitioning structure from the original SPIHT tree. The original tree includes all nodes (LL, LH, HL and HH) at the highest level, while only the LL nodes at the highest level are employed in the formation of modified SPIHT tree.

The new partitioning structure adopted in the modified SPIHT has two effects. First, it reduces the length of LIP. Second, it also reduces the length of LIS in such a way that not only the insignificant information be captured more efficiently, but a higher percentage of the sets in LIS become significant. Reducing the lengths of LIP and LIS implies that the first sorting pass is shorter than that in the SPIHT algorithm; therefore the modified SPIHT algorithm is faster and able to increase the percentage of significance information early in the bit stream. With this new reordering in the modified SPIHT partitioning structure, only one bit is required to determine the insignificance of an initial LIS set containing the coefficients from the coarsest scale when such a set is insignificant, as opposed to using four bits in the SPIHT algorithm to represent the individual significance of those coefficients which would be included in LIP instead. When the set is significant, it requires an extra bit. However, our observation shows that, for images with various natures, most of the LL coefficient sets in LIS are insignificant at early stage of the sorting passes. Therefore, the proposed modified SPIHT tree structure is able to achieve moderate net saving in general cases.

Additionally, if an LIS set corresponding to the coarsest scale is insignificant, no further pruning of its descendants is required at this point. With the standard SPIHT partitioning, these coefficients would be placed in the LIP set and their descendants would still be checked for significance, even if they were insignificant. The new partitioning scheme not only reduces the number of bits to represent the insignificance of coefficients belonging to the coarsest level, but also enforces that more significant bits corresponding to this scale are coded before the insignificance information pertaining to the finer scale.

The modified SPIHT uses the same set structures and partitioning rules as SPIHT. The trees are tested firstly for significance breadth. Significance tests are made in a similar order of the SPIHT. Because the set partitioning regulations are the same, each coder yields exactly the same output bit streams, though in a bit different order in some cases during the sorting pass. But at the end of each bitplane, the outputs of both coders are perfectly identical. The scanning order of MSPHIT is shown in Fig.

ARTICLE IN PRESS Fig 11 : Scanning order in MSPIHT

4.5 Variable Length Coding

The simplest approach to error free image compression is to reduce only coding

redundancy. Variable length code assigns the shortest possible code words to most probable gray levels. There are several techniques of variable length coding

Huffman coding

Run Length coding (RLE)

Arithmetic Coding

4.5.1 Huffman Coding

When coding the symbols of an information source individually, Huffman coding yields the smallest possible number of code symbols per source symbol. The first step is to create a series of source reductions by ordering the probabilities of the symbols under consideration and combining the lowest probability symbols into a single symbol that replaces them in next source reduction. This process is repeated until a reduced source with two symbols is reached.

The second step is to code each reduced source starting with the smallest source and working back to the original source.

Huffman’s procedure creates the optimal code for a set of symbols and probabilities subject to the constraint that the symbols be coded one at a time. After the code has been created coding and/or decoding is accomplished in a simple lookup table manner. The code itself is an instantaneous uniquely decodable block code. It is called block code because each source symbol is mapped into a fixed sequence of code symbols. It is instantaneous because each code word in a string of code symbols can be decoded without referencing succeeding symbols. It is uniquely decodable because any string of code symbols can be decoded in only one way. Thus, any string of Huffman encoded symbols can be decoded by examining the individual symbols of the string in a left to right manner.

4.5.2 Run Length Encoding (RLE)

Run length encoding (RLE) is perhaps the simplest compression technique in common use. RLE algorithms are lossless, and work by searching for runs of bits, bytes, or pixels of the same value, and encoding the length and value of the run. As such, RLE achieves best results with images containing large areas of contiguous color, and especially monochrome images. Complex color images, such as photographs, do not compress well – in some cases, RLE can actually increase the file size.

There are a number of RLE variants in common use which are encountered in the TIFF, PCX and BMP graphics formats.

Represent each subsequence of identical symbols by a pair (L,a) where L is the length of the subsequence, and a is the recurring symbol in the subsequence

Example: aaabbbbaaaa is coded as (3,a) (4,b) (4,a)

If the sequence is binary, there is no need to represent a because the value of a alternates between 0 and 1

Example: 1100011111000011 is coded as 1,2,3,5,4,2

RLE can be followed by Hoffman coding to further code the L’s and a's

The fax standard uses RLE

4.5.3 Arithmetic coding

Unlike above coding, arithmetic coding generates non block codes. An entire sequence of source symbols or message is assigned a single arithmetic code word. The code word itself defines an interval of real numbers between 0 and 1. As the number of symbols in the message increases, the interval used to represent it becomes smaller and the number of information units i.e. bits required to represent the interval becomes larger. Each symbol of the message reduces the size of interval in accordance with its probability of occurrence. As the length of sequence being coded is increases, the resulting arithmetic code approaches the bound established by noiseless coding theorem. Practical implementation introduces scaling strategy and rounding strategy. The rounding strategy renormalizes each subinterval to [0,1) range before subdividing it in accordance with symbol probabilities. The rounding strategy is that the truncations associated with the finite precision arithmetic do not prevent the coding subintervals from being represented accurately.

Basic idea is to map data sequences to sub-intervals in [0,1) with lengths equal to probability of corresponding sequence.

In practice, for images, arithmetic coding gives 15-30% improvement in compression ratios over a simple Huffman coder. The complexity of arithmetic coding is however 50-300% higher [8].



rev

Our Service Portfolio

jb

Want To Place An Order Quickly?

Then shoot us a message on Whatsapp, WeChat or Gmail. We are available 24/7 to assist you.

whatsapp

Do not panic, you are at the right place

jb

Visit Our essay writting help page to get all the details and guidence on availing our assiatance service.

Get 20% Discount, Now
£19 £14/ Per Page
14 days delivery time

Our writting assistance service is undoubtedly one of the most affordable writting assistance services and we have highly qualified professionls to help you with your work. So what are you waiting for, click below to order now.

Get An Instant Quote

ORDER TODAY!

Our experts are ready to assist you, call us to get a free quote or order now to get succeed in your academics writing.

Get a Free Quote Order Now