Beruflich Dokumente
Kultur Dokumente
INTRODUCTION
1.1 GENERAL INTRODUCTION
In todays digital world, when we see digital movie, listen digital music, read
digital mail, store documents digitally, making conversation digitally, we have to deal
with huge amount of digital data. So, data compression plays a very significant role to
keep the digital world realistic. If there were no data compression techniques, we
would have not been able to listen to songs over the Internet, see digital pictures or
movies, or we would have not heard about video conferencing or telemedicine. How
data compression made it possible? What are the main advantages of data
compression in digital world? There may be many answers but the three obvious
reasons are the saving of memory space for storage, channel bandwidth and the
processing time for transmission. Every one of us might have experienced that before
the advent MP3, hardly 4 or 5 songs of wav file could be accommodated. And it was
not possible to send a wav file through mail because of its tremendous file size. Now,
we can easily accommodate 50 to 60 songs of MP3 in a music CD of same capacity.
Because, the uncompressed audio files can be compressed 10 to 15 times using MP3
format and we have no problem in sending any of our favorite music to our distant
friends in any corner of the world. Also, we can download a song in MP3 in a matter
of seconds.
Similar compression schemes were developed for other digital data like
images and videos. Videos are nothings but the animations of frames of images in a
proper sequence at a rate of 30 frames per second or higher. A huge amount of
memory is required for storing video files. The possibility of storing 4/5 movies in
DVD CD now rather than we used 2/3 CDs for a movie file is because compression.
We will consider here mainly the image compression techniques.
1.2 MOTIVATION
Image compression is an important issue in digital image processing and finds
extensive applications in many fields. This is the basic operation performed
frequently by any digital photography technique to capture an image. For longer use
of the
portable
using the DW T have already been reported and sufficient literatures are available on
this.The JPEG is a lossy compression scheme, which employs the DWT as a tool and
used mainly in digital cameras for compression of images. In the recent past the
demand for low power image compression is growing. As a result various research
workers are actively engaged to evolve efficient methods of image compression using
latest digital signal processing techniques. The objective is to achieve a reasonable
compression ratio as well as better quality of reproduction of image with a low power
consumption. Keeping these objectives in mind the research work in the present
thesis has been undertaken. In sequel the following problems have been investigated.
JPEG is the most common image format used by digital cameras and other
photographic image capture devices for storing and transmitting photographic images
on the World Wide Web. JPEG compression is used in a number of image file formats
these format variations are often not distinguished and are simply called JPEG. The
term "JPEG" is an acronym for the Joint Photographic Experts Group which created
the standard
Image data compression is concerned with minimizing the number of bits
required to represent an image with no significant loss of information. Image
compression algorithms aim to remove redundancy present in the data (correlation of
data) in a way which makes image reconstruction possible; this is called information
preserving compression Perhaps the simplest and most dramatic form of data
compression is the sampling of band limited images, where an infinite number of
pixels per unit area are reduced to one sample without any loss of information.
Transform based methods better preserve subjective image quality, and are
less sensitive to statistical image property changes both inside a single images and
between images. Prediction methods provide higher compression ratios in a much less
expensive way. If compressed images are transmitted an important property is
insensitivity to transmission channel noise. Transform based techniques are
significantly less sensitivity to channel noise. If transform coefficients are corrupted
during transmission, the resulting image is spread homogeneously through the image
or image part and is not too disturbing.
2. LITERATURE SURVEY
3
2.1 INTRODUCTION
For the past few years, a joint ISO/CCITT committee known as JPEG (Joint
Photographic Experts Group) has been working to establish the first international
compression standard for continuous-tone still images, both grayscale and color.
JPEGs proposed standard aims to be generic support a wide variety of applications
for continuous-tone images. To meet the differing needs of many applications, the
JPEG standard includes two basic compression methods, each with various modes of
operation. A DWT-based method is specified for lossy compression, and a
predictive method for lossless compression. JPEG features a simple lossy technique
known as the Baseline method, a subset of the other DWT-based modes of operation.
The Baseline method has been by far the most widely implemented JPEG method to
date, and is sufficient in its own right for a large number of applications. This article
provides an overview of the JPEG standard, and focuses in detail on the Baseline
method.
Advances over the past decade in many aspects of digital technology
especially devices for image acquisition, data storage, and bitmapped printing and
display - have brought about many applications of digital imaging. However, these
applications tend to be specialized due to their relatively high cost. With the possible
exception of facsimile, digital images are not commonplace in general-purpose
computing systems the way text and geometric graphics are. The majority of modern
business and consumer usage of photographs and other types of images take place
through more traditional analog means.
multidimensional DCTis mostly used for compression of video streams. DCT is also
useful for transferring multi dimensional data to frequency domain, where different
operations, like spread spectrum, data compression, data watermarking, can be
performed in easier and more efficient manner. A number of papers discussing DCT
algorithms is available in the literature that signifies its importance and application
4
2.5 CONCLUSION
Image compression is of prime importance in Real time applications like video
conferencing where data are transmitted through a channel.Using JPEG standard DCT
is used for mapping which reduces the
3. ANALYSIS
3.1 INTRODUCTION
5
The of the project is to compress the image the image by using SPIHT with
entrophy encoder. Traditional image coding technology mainly uses the statistical
redundancy between pixels to reach the goal of compressing. The research on wavelet
transform image coding technology has made a rapid progress. Because of its high
speed, low memory requirements and complete reversibility, digital wavelet transform
(IWT) has been adopted by new image coding standard, JPEG 2000. The embedded
zero tree wavelet (EZW) algorithms have obtained not bad effect in low bit-rate image
compression. Set Partitioning in Hierarchical Trees (SPIHT) is an improved version of
EZW and has become the general standard of EZW.
Programming with MATLAB - describes how to use the MATLAB language to create
scripts and functions, and manipulate data structures, such as cell arrays and
multidimensional arrays.
3.2.2 Introduction
MATLAB is a high-performance language for technical computing. It
integrates computation, visualization, and programming in an easy-to-use
environment where problems and solutions are expressed in familiar mathematical
notation. Typical uses include:
Algorithm development
does not require dimensioning. This allows you to solve many technical computing
problems, especially those with matrix and vector formulations, in a fraction of the
time it would take to write a program in a scalar no interactive language such as C or
FORTRAN.
The name MATLAB stands for matrix laboratory. MATLAB was originally
written to provide easy access to matrix software developed by the LINPACK and
EISPACK projects. Today, MATLAB uses software developed by the LAPACK and
ARPACK projects, which together represent the state-of-the-art in software for matrix
computation.
MATLAB has evolved over a period of years with input from many users. In
university environments, it is the standard instructional tool for introductory and
advanced courses in mathematics, engineering, and science. In industry, MATLAB is
the tool of choice for high-productivity research, development, and analysis.
MATLAB features a family of application-specific solutions called toolboxes.
Very important to most users of MATLAB, toolboxes allow you to learn and apply
7
starting and quitting MATLAB, and the tools and functions that help you to work with
MATLAB variables and files. For more information about the topics covered here, see
8
Workspace Browser
Array Editor
Editor/Debugger
Command Window
Command History
Launch Pad
Help Browser
Command Window Use the Command Window to enter variables and run
To open the Help browser, click the help button in the toolbar, or type help
browser in the Command Window. The Help browser consists of two panes, the Help
Navigator, which you use to find information, and the display pane, where you view
the information.
Help Navigator Use to Help Navigator to find information. It includes
Product filter - Set the filter to show documentation only for the products you
specify. Contents tab - View the titles and tables of contents of documentation for
your products. Index tab - Find specific index entries (selected keywords) in the Math
Works documentation for your products. Search tab- Look for a specific phrase in the
documentation. To get help for a specific function, set the Search type to Function
Name. Favorites tab - View a list of documents you previously designated as
favorites.
Display Pane After finding documentation using the Help Navigator, view it
in the display pane. While viewing the documentation, you can:
Browse to other page - Use the arrows at the tops and bottoms of the pages, or
use the back and forward buttons in the toolbar.
Bookmark pages-Click the Add to Favorites button in the toolbar.
Print pages - Click the print button in the toolbar.
Find a term in the page - Type a term in the Find in page field in the toolbar
and click Go.
Other features available in the display pane are: copying information,
evaluating a selection, and viewing Web pages.
Current Directory MATLAB file operations use the current directory and the
search path as reference points. Any file you want to run must either be in the current
directory or on the search path.
Search path To determine how to execute functions you call, MATLAB uses a
search path to find M-files and other MATLAB-related files, which are organized in
directories on your file system. Any file you want to run in MATLAB must reside in
11
the current directory or in a directory that is on the search path. By default, the files
supplied with MATLAB and Math Works toolboxes are included in the search path.
Workspace Browser The MATLAB workspace consists of the set of variables
(named arrays) built up during a MATLAB session and stored in memory. You add
variables to the workspace by using functions, running M-files, and loading saved
workspaces.
To view the workspace and information about each variable, use the
Workspace browser, or use the functions who and whos.To delete variables from the
workspace, select the variable and select Delete from the Edit menu. Alternatively,
use the clear function.
The workspace is not maintained after you end the MATLAB session. To
save the workspace to a file that can be read during a later MATLAB session, select
Save Workspace As from the File menu, or use the save function. This saves the
workspace to a binary file called a MAT-file, which has a .mat extension. There are
options for saving to different formats. To read in a MAT-file, select Import Data from
the File menu, or use the load function.
Array editor Double-click on a variable in the Workspace browser to see it in
the Array Editor. Use the Array Editor to view and edit a visual representation of oneor two-dimensional numeric arrays, strings, and cell arrays of strings that are in the
workspace.
Editor/Debugger Use the Editor/Debugger to create and debug M-files, which
are programs you write to runMATLAB functions. The Editor/Debugger provides a
graphical user interface for basic text editing, as well as for M-file debugging.
You can use any text editor to create M-files, such as Emacs, and can use
preferences (accessible from the desktop File menu) to specify that editor as the
default. If you use another editor, you can still use the MATLAB Editor/Debugger for
debugging, or you can use debugging functions, such as dbstop, which sets a
breakpoint. If you just need to view the contents of an M-file, you can display it in the
Command Window by using the type function.
12
Manipulating Matrices, Entering Matrices The best way for you to get started
with MATLAB is to learn how to handle matrices. Start MATLAB and follow along
with each example.
You can enter matrices into MATLAB in several different ways:
Start by entering Durers matrix as a list of its elements. You have only to follow a
few basic conventions:
10
This exactly matches the numbers in the engraving. Once you have entered the
Variables
Numbers
Operators
13
Functions
Variables MATLAB does not require any type declarations or dimension
-99
0.0001
9.6397238
1.60210e-20
6.02252e23
1i
-3.14159j
3e5i
All numbers are stored internally using the long format specified by the IEEE
floating-point standard. Floating-point numbers have a finite precision of roughly 16
significant decimal digits and a finite range of roughly 10-308 to 10+308.
Operators Expressions use familiar arithmetic operators and precedence rules.
+
Addition
Subtraction
Multiplication
Division
Power
'
()
mathematical functions, including abs, sqrt, exp, and sin. Taking the square root or
logarithm of a negative number is not an error; the appropriate complex result is
produced automatically. MATLAB also provides many more advanced mathematical
functions, including Bessel and gamma functions. Most of these functions accept
complex arguments. For a list of the elementary mathematical functions, typehelp
elfun
For a list of more advanced mathematical and matrix functions, type
help specfun
help elmat
Some of the functions, like sqrt and sin, are built-in. They are part of the
MATLAB core so they are very efficient, but the computational details are not readily
accessible. Other functions, like gamma and sinh, are implemented in M-files. You
can see the code and even modify it if you want. Several special functions provide
values of useful constants.
Pi
3.14159265...
Imaginary unit, -1
Same as i
Eps
Realmin
Realmax
Inf
Infinity
NaN
Not-a-number
3.3 GUI
A graphical user interface (GUI) is a user interface built with graphical
objects, such as buttons, text fields, sliders, and menus. In general, these objects
already have meanings to most computer users. For example, when you move a slider,
15
value changes; when you press an OK button, your settings are applied and the dialog
box is dismissed. Of course, to leverage this built-in familiarity, you must be
consistent in how you use the various GUI-building components.
Applications that provide GUIs are generally easier to learn and use since the
person using the application does not need to know what commands are available or
how they work. The action that results from a particular user action can be made clear
by the design of the interface.
The sections that follow describe how to create GUIs with MATLAB. This
includes laying out the components, programming them to do specific things in
response to user actions, and saving and launching the GUI; in other words, the
mechanics of creating GUIs. This documentation does not attempt to cover the "art"
of good user interface design, which is an entire field unto itself. Topics covered in
this section include.
Creating GUIs with GUIDE MATLAB implements GUIs as figure windows
containing various styles of control objects. You must program each object to perform
the intended action when activated by the user of the GUI. In addition, you must be
able to save and launch your GUI. All of these tasks are simplified by GUIDE,
MATLAB's graphical user interface development environment.
GUI Development Environment: The process of implementing a GUI involves two
basic tasks:
generates an M-file that contains code to handle the initialization and launching of the
GUI. This M-file provides a framework for the implementation of the callbacks - the
functions that execute when users activate components in the GUI.
The Implementation of a GUI While it is possible to write an M-file that
contains all the commands to lay out a GUI, it is easier to use GUIDE to lay out the
components interactively and to generate two files that save and launch the GUI:An
16
M-file - contains the functions that launch and control the GUI and the callbacks,
which are defined as sub functions. This M-file is referred to as the application M-file
in this documentation.
Note that the application M-file does not contain the code that lays out the
controls; this information is saved in the FIG-file.
Features of the GUIDE-Generated Application M-File
GUIDE simplifies the creation of GUI applications by automatically
generating an M-file framework directly from your layout. You can then use this
framework to code your application M-file. This approach provides a number of
advantages:
The M-file contains code to implement a number of useful features (see
Configuring Application Options for information on these features). The M-file
adopts an effective approach to managing object handles and executing callback
routines (see Creating and Storing the Object Handle Structure for more information).
The M-files provides a way to manage global data (see Managing GUI Data for more
information).
You can elect to have GUIDE generate only the FIG-file and write the
application M-file yourself. Keep in mind that there are no control creation commands
in the application M-file; the layout information is contained in the FIG-file generated
by the Layout Editor.
17
Transmission of this data over a low bandwidth network results in very high
latency
Key issues:
High quality reconstruction required
Angiogram data contains considerable high-frequency spatial texture
1. FT (Fourier Transform)
The Fourier transform's utility lies in its ability to analyze a signal in the time
domain for its frequency content. The transform works by first translating a function
in the time domain into a function in the frequency domain. The signal can then be
analyzed for its frequency content because the Fourier coefficients of the transformed
function represent the contribution of each sine and cosine function at each frequency.
An inverse Fourier transform does just what you'd expect, transform data from the
frequency domain into the time domain.
4.2.2
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
19
are
4.3 QUANTIZATION
Quantization involved in image processing. Quantization techniques generally
compress by compressing a range of values to a single quantum value. By reducing
the number of discrete symbols in a given stream, the stream becomes more
compressible. For example seeking to reduce the number of colors required to
20
represent an image. Another widely used example DCT data quantization in JPEG
and DWT data quantization in JPEG 2000.
We shall concentrate on the Huffman and RLC methods for simplicity. Interested
readers may find out more about Arithmetic Coding in chapters 12 and 13 of the
JPEG Book.
First we consider the change in compression performance if simple Huffman Coding
is used to code the subimages of the 4-level Haar transform.
22
rgb2gray
rgb2ind
24
6. WAVELET TRANSFORM
25
represented. This sparse coding makes wavelets an excellent tool in the field of data
compression.
Other applied fields that are making use of wavelets include astronomy, acoustics,
nuclear engineering, sub-band coding, signal and image processing, neurophysiology,
music, magnetic resonance imaging, speech discrimination, optics, fractals, turbulence,
earthquake-prediction, radar, human vision, and pure mathematics applications such as
solving partial differential equations.
A basis function varies in scale by chopping up the same function or data space
using different scale sizes. For example, imagine we have a signal over the domain from
0 to 1. We can divide the signal with two step functions that range from 0 to 1/2 and 1/2
to 1. Then we can divide the original signal again using four step functions from 0 to 1/4,
1/4 to 1/2, 1/2 to 3/4, and 3/4 to 1. And so on. Each set of representations code the
original signal with a particular resolution or scale.
arithmetic operations, the problem gets quickly worse as the number of sample points
increases. However, if the samples are uniformly spaced, then the Fourier matrix can be
factored into a product of just a few sparse matrices, and the resulting factors can be
applied to a vector in a total of order
segments of various
lengths, usually filling and transforming it into a different data vector of length
The mathematical properties of the matrices involved in the transforms are similar
as well. The inverse transform matrix for both the FFT and the DWT is the transpose of
the original. As a result, both transforms can be viewed as a rotation in function space to
a different domain. For the FFT, this new domain contains basis functions that are sines
and cosines. For the wavelet transform, this new domain contains more complicated basis
functions called wavelets, mother wavelets, or analyzing wavelets.
28
Both transforms have another similarity. The basis functions are localized in frequency,
making mathematical tools such as power spectra (how much power is contained in a
frequency interval) and scale grams (to be defined later) useful at picking out frequencies
and calculating power distributions.
wavelets. Unlike Fourier transform, the continuous wavelet transform possesses the
ability to construct a time frequency represented of a signal that offers very good time
and frequency localization.
design methods of most of the practically relevant discrete wavelet transform (DWT) and
the justification for the algorithm of the fast Fourier wavelet transform (FWT)
29
7. DESIGN
30
7.1 INTRODUCTION
In this project we propose the image compression using SPIHT with entrophy
encoder that is supposed to replace existing software and the proposed
method is
advanced.
the reconstructed image. Due to the nature of the transform, DWT coefficients exhibit
spatial correlation,that are exploited by quantization algorithms like the embedded zerotree wavelet (EZW) and set partitioning in hierarchical trees (SPIHT) for efficient
quantization. The quantized coefficients may then be entropy coded; this is a reversible
process that eliminates any redundancy at the output the Quantize.
In the synthesis (or decompression) stage, the inverse discrete wavelet transform
recovers the original image from the DWT coefficients. In the absence of any
quantization the reconstructed image will be identical to the input image. However, if any
information was discarded during the quantization process, the reconstructed image will
only be an approximation of the original image. Hence this is called lossy compression.
The more an image is compressed, the more information is discarded by the quantizer;
the result is a reconstructed image that exhibits increasingly more artifacts. Certain
integer wavelet transforms exist that result in DWT coefficients that can be quantized
without any loss of information. These result in lossless compression, where the
reconstructed image is an exact replica of the input image. However, compression ratios
achieved by these transforms are small compared to lossy transforms .
33
To show blocking artifacts Over the past several years, the wavelet transform has
gained widespread acceptance in signal processing in general, and in image compression
research in particular. In many applications wavelet-based schemes (also referred as
subband coding) outperform other coding schemes like the one based on DCT. Since
there is no need to block the input image and its basis functions have variable length,
wavelet coding schemes at higher compression avoid blocking artifacts. Wavelet-based
coding is more robust under transmission and decoding errors, and also facilitates
progressive transmission of images. In addition, they are better matched to the HVS
characteristics. Because of their inherent multiresolution nature [9], wavelet coding
schemes are especially suitable for applications where scalability and tolerable
degradation are important.
impulse response of the analysis filters to preserve the localization of image features as
well as to have fast computation, short impulse response of the synthesis filters to prevent
spreading of artifacts (ringing around edges) resulting from quantization errors, and linear
phase of both types of filters since nonlinear phase introduce unpleasant waveform
distortions around edges. Orthogonality is another useful requirement since orthogonal
filters, in addition to preservation of energy, implement a unitary transform between the
input and the subbands. But, as in the case of 1-D, in two-band Finite
Impulse Response (FIR) systems linear phase and orthogonality are mutually exclusive,
and so orthogonality is sacrificed to achieve linear phase.
There are several ways wavelet transforms can decompose a signal into various
subbands. These
LL1
HL1
LH1
HH1
LH2
HL3
HH2
LH3
HL2
HH3
decomposition
Odering
37
8.6 RESULT
Image size Decomposition Level Threshhold Compression ratio
256 x 256 3 40 16.1759
256 x 256 3 60 21.6558
256 x 256 3 80 25.9193
256 x 256 4 40 15.7964
256 x 256 4 60 22.4193
256 x 256 4 80 28.9469
256 x 256 5 40 14.9430
256 x 256 5 60 21.3887
256 x 256 5 80 28.1812
38
9. IMAGE PROCESSING
The field of digital image processing refers to processing of digital image by
means of a digital computer. A digital image is an image f(x, y) that has been discretized
both in spatial coordinates and brightness. A digital image can be considered as a matrix
whose row and column indices identifies a point in the image and corresponding matrix
element value identifies the gray level at that point. The elements of such a digital array
are called image elements, picture elements, pixels or pels. The last two being commonly
used abbreviations of pictures elements.
The term digital processing generally refers to a two dimensional picture by a
digital computer. In a broader context it implies digital processing of any two
dimensional data.
In the form in which they usually occur, images are not directly amenable to
computer analysis. Since computers work with numerical rather than pictorial data, an
image must be converted to numerical form before processing. This conversion process is
called digitization. The image is divided into small regions called picture elements or
pixels . At each pixel location the image brightness is sample and quantized. This step
generates an integer at each pixel representing the brightness or darkness of the image at
that point.
When this has been done for all pixels the image is represented by rectangular
array of integers. Each location has allocation or address, and an integer value called
gray level. This array digital data is now candidate for computer processing.
39
Printing and graphics art: color fidelity in desktop publishing; art conservation
and dissemination; etc.
41
Figure.9.1: Coding
Figure.9.2: Spatial
Redundancy
Figure.9.3: Irrelevant
Redundancy
Information
Size/Duration
Bits/Pixel
or
Bits/Sample
Uncompressed
A page of
text
11'' x 8.5''
Varying
resolution
16-32Kbits
Telephone
quality
speech
1 sec
8bps
64Kbits
8bpp
Size
Gray scale
Image
512 x 512
Color
Image
512 x 512
Medical
Image
2048 x 1680
12 bpp
41.3Mbits
SHD Image
2048 x 2048
24 bpp
100Mbits
Full-motion
Video
640 x 480,
10sec
24 bpp
24 bpp
2.1Mbits
6.29Mbits
2.21Gbits
Table 9.1: Multimedia data types and uncompressed storage space required
42
The examples above clearly illustrate the need for large storage space for digital
image, audio, and video data. So, at the present state of technology, the only solution is to
compress these multimedia data before its storage and transmission, and decompress it at
the receiver for play back.
connected
components namely
(a)
Encoder.
Compression
achieved
is
by
applying a linear transform in order to decorrela the image data, quantizing the resulting
transform coefficients and entropy coding the quantized values.
43
9.5.2 Quantizer
A quantizer is used to reduce the number of bits needed to store the transformed
coefficients by reducing the precision of those values. As it is a many-to-one mapping, it
is a lossy process and is the main source of compression in an encoder. Quantization can
be performed on each individual coefficient, which is called Scalar Quantization (SQ).
Quantization can also be applied on a group of coefficients together known as Vector
Quantization (VQ). Both uniform and non-uniform quantizers can be used depending on
the problems.
9.5.3 Entropy Encoder
An entropy encoder supplementary compresses the quantized values losslessly to
provide a better overall compression. It uses a model to perfectly determine the
probabilities for each quantized value and produces an appropriate code based on these
probabilities so that the resultant output code stream is smaller than the input stream. The
most commonly used entropy encoders are the Huffman encoder and the arithmetic
encoder, although for applications requiring fast execution, simple Run Length Encoding
(RLE) is very effective. It is important to note that a properly designed quantizer and
entropy encoder are absolutely necessary along with optimum signal transformation to
get the best possible compression.
There are different ways of classifying compression techniques. Two of these would be
mentioned here. The first categorization is based on the information content of the
reconstructed image. They are 'lossless compression' and 'lossy compression schemes. In
lossless compression, the reconstructed image after compression is numerically identical
44
to the original image on a pixel by-pixel basis. However, only a modest amount of
compression is achievable in this technique. In lossy compression on the other hand, the
reconstructed image contains degradation relative to the original, because redundant
information is discarded during compression. As a result, much higher compression is
achievable, and under normal viewing conditions, no visible loss is perceived (visually
lossless).
where the compression method is applied. These are 'predictive coding' and 'transform
coding'. In predictive coding, information already sent or available is used to predict
future values, and the difference is coded. Since this is done in the image or spatial
domain, it is relatively simple to implement and is readily adapted to local image
characteristics. Differential Pulse Code Modulation (DPCM) is one particular example of
predictive coding.
Transform coding, also called block quantization, is an alternative to predictive
coding. A block of data is unitarily transformed so that a large fraction of its total energy
is packed in relatively few transform coefficients, which are quantized independently the
optimum transform coder is defined as one that minimizes the mean square distortion of
the reproduced data for a given number of total bits. Transform coding, on the other hand,
first transforms the image from its spatial domain representation to a different type of
representation using some well-known transforms mentioned later, and then codes the
transformed values (coefficients). The primary advantage is that, it provides greater data
compression compared to predictive methods, although at the expense of greater
computations.
9.7 OBJECTIVE
This process aims to study and understand the general operations used to
compress a two dimensional gray scale images and to develop an application that allows
the compression and reconstruction to be carried out on the images. The application
developed aims to achieve:
45
1. Minimum distortion
2. High compression ratio
3. Fast compression time
To compress an image the operations include linear transform, quantization and
entropy encoding. The thesis will study the wavelet and cosine transformation and
discuss the superior features that it has over Fourier transform. This helps to know how
quantization reduces the volume of an image data before packing them efficiently in the
entropy coding operation. To reconstruct the image, an inverse operation is performed at
every stage of the system in the reverse order of the image decomposition.
Increase of C>R causes more efficient the compression technique employed and vice
versa.
Telecommunication Industries
Just as image compression has increased the efficiency of sharing and viewing
personal images, it offers the same benefits to just about every industry in existence.
Early evidence of image compression suggests that this technique was, in the beginning,
most commonly used in the printing, data storage, and telecommunications industries.
Today however, the digital form of image compression is also being put to work in
industries such as fax transmission, satellite remote sensing, and high definition
television, to name but a few.
Health Industry
In certain industries, the archiving of large numbers of images is required. A good
example is the health industry, where the constant scanning and/or storage of medical
images and documents take place. Image compression offers many benefits here, as
information can be stored without placing large loads on system servers. Depending on
the type of compression applied, images can be compressed to save storage space, or to
send to multiple physicians for examination. And conveniently, these images can
47
uncompress when they are ready to be viewed, retaining the original high quality and
detail that medical imagery demands.
Security Industry
In the security industry, image compression can greatly increase the efficiency of
importance. Image compression, therefore, can be very effectively applied in cases where
accurate representations of museum or gallery items are required, such as on a Web site.
Detailed images that offer short download times and easy viewing benefits all types of
visitors, from the student to the discriminating collector. Compressed images can also be
used in museum or gallery kiosks for the education of that establishments visitors. In a
library scenario, students and enthusiasts from around the world can view and enjoy a
multitude of documents and texts without having to incur traveling or lodging costs to do
so.
48
49
Step1
step2
50
Step3
51
Step4
52
Step5
53
11.ADVANTAGES
54
12. APPLICATIONS
55
Image compression is mainly used in navy purposes because they uses low
bandwidth.
13. CONCLUSION
56
57
BIBLIOGRAPHY
58
Websites
http://www.jpeg.org
http://cnx.rice.edu
http://www.datacompression.info
http://www.cs.sfu.ca
http://www.wikipedia.org
APPENDIX
59
%
the existing singleton*.
%
%
GUIFINAL('CALLBACK',hObject,eventData,handles,...) calls the local
%
function named CALLBACK in GUIFINAL.M with the given input arguments.
%
%
GUIFINAL('Property','Value',...) creates a new GUIFINAL or raises the
%
existing singleton*. Starting from the left, property value pairs are
%
applied to the GUI before GUIFINAL_OpeningFunction gets called. An
%
unrecognized property name or invalid value makes property application
%
stop. All inputs are passed to GUIFINAL_OpeningFcn via varargin.
%
%
*See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
%
instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help GUIFINAL
% Last Modified by GUIDE v2.5 06-Feb-2014 10:38:44
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',
mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @GUIFINAL_OpeningFcn, ...
'gui_OutputFcn', @GUIFINAL_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin & isstr(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
60
63
end
% --- Executes during object creation, after setting all properties.
function popupmenu1_CreateFcn(hObject, eventdata, handles)
% hObject handle to popupmenu1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: popupmenu controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
65
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
close GUIFINAL;
% --- Executes on button press in validate.
function validate_Callback(hObject, eventdata, handles)
% hObject handle to validate (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
load PSNR;
load CR;
load enc_time;
load dec_time;
set(handles.enc,'String',enc_time);
set(handles.dec,'String',dec_time);
set(handles.psnr1,'String',PSNR);
set(handles.cr1,'String',CR);
% --- Executes during object creation, after setting all properties.
function enc_CreateFcn(hObject, eventdata, handles)
% hObject handle to enc (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if ispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
69