1
Presentation on Seminar Topic
IMPROVEMENT OF FRACTAL IMAGE CODING USING
CUDA
By
SAMEER THIGALE
ROLL NO: T3171, DIV A
Guided ByPROF. HANUMANT PAWAR
MAEER’s MIT COLLEGE OF ENGINEERING, PUNE, INDIAApril 10, 2023
2
A BRIEF OUTLINE
• CURRENT SCENARIO: INCREASE IN IMAGE SIZE RANGE TO ORDER OF TBs
• NEED FOR AN EFFECTIVE IMAGE COMPRESSION ALGORITHM
• THE FRACTAL CODING• IDEA OF PARALLELIZING THE ALGORITHM• A PROMISING ARCHITECTURE: CUDA
A Fractal that models the surface of a mountain
3
AGENDA
• RECAP: FRACTALS• FRACTAL IMAGE CODING• THE PROBLEM STATEMENT• INTRODUCTION TO CUDA• PARALLEL FRACTAL IMAGE CODING• EXPERIMENTS AND ANALYSIS
4
FRACTALS
• Fractal is a structure made up of similar forms and patterns that occur in many different sizes
• The Mandelbrot “SELF SIMILARITY” Property
A fractal that begins with an equilateral triangle and then replaces the middle third of every line segment with a pair of
line segments that form an equilateral "bump"
5
FRACTAL IMAGE COMPRESSION• Relies on the fact that parts of an
image often resemble other parts of the same image
• Fractal compression stores only the self similar regions
• Algorithm:– Divide the image into blocks– Find the blocks that are almost similar– Store the similar blocks
Based on work by Jacquin
6
FRACTAL CODES
• Describe the entire image in terms of it’s fractal properties
• The mathematical equations can then be used to recreate the entire image
• Similar to vectors where mathematical descriptions of objects are stored
30 ⁰
Why store all the pixels of this line??Store only the angle and the length of vector
This is Fractal code.
7
AN EXAMPLE
• We store only the fractals that are similar• We store the fractal codes required for
generating the image
Bitmap image When stored using fractal coding algorithm:Fractal + code
For block [1][2], show fractal
For block [2][1], rotate fractal 90⁰ and display
For block [2][2], rotate fractal 180⁰ and display
+
8
KEY POINTS OF THE ALGORITHM
• Compression is lossy• Size of the physical data used to store fractal
codes is much smaller than the original bitmap• Fractal images can be scaled up/down without
loss in details• Suited in applications where decompression is
required frequently than compression• Ex. Image databases and CD-ROM applications
9
THE PROBLEM STATEMENT
• Encoding is extremely computationally intensive.
• Millions or billions of iterations are required to find the fractal patterns in the image
• Compression could take from a few seconds to even few hours!
10
THE SOLUTION
• Why do sequential pattern search? When it can be done in parallel
• Do data dependency while compressing• Employ massive parallel computation using
GPUs
Block wise thread grouping
11
Why GPU and NOT CPU?
• Lots of math units• GPUs are great for “data” parallelism
– CPUs are great for “task” parallelism• GPU optimized for higher arithmetic intensity
for parallel nature(floating Point)• APIs are available
– CUDA is one such!
12
CUDA(SUPERCOMPUTING FOR THE MASSES)
• CUDA is a set of developing tools to create applications that will perform execution on GPU (Graphics Processing Unit).
• CUDA was developed by NVidia and as such can only run on NVidia GPUs of G8x series and up.
13
WHY CUDA?
• CUDA provides ability to use high-level languages such as C
• GPUs contain much larger number of dedicated ALUs then CPUs.
• Full support for integer and bitwise operations.
• Compiled code will run directly on GPU.
14
PARALLEL FRACTAL IMAGE CODING
• The fractal image coding algorithm consists of three two fold loops which include no data dependency
• So very easy to parallelize• By distributing loop
elements on multiple cores
15
EXPERIMENTS AND OBSERVATIONS
NOTE: Charts prepared by the work of August Sodora on NVidia GeForce Tesla C1060 GPU
16
CONTINUED..
NOTE: Charts prepared by the work of August Sodora on NVidia GeForce Tesla C1060 GPU
17
CONCLUSION
• Our graphs show the performance gain for parallel fractal image coding.
• We achieve speedup of up to 171.98 using NVidia GeForce Tesla C1060 GPU
• Further Scope:– Parallel fractal coding can be applied to audio– Across Frequency Domain– Error simpler to compute using Fourier Analysis
18
THANK YOU!