+ All Categories
Transcript
Page 1: Improvement of Fractal Image Coding using CUDA

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

Page 2: Improvement of Fractal Image Coding using CUDA

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

Page 3: Improvement of Fractal Image Coding using CUDA

3

AGENDA

• RECAP: FRACTALS• FRACTAL IMAGE CODING• THE PROBLEM STATEMENT• INTRODUCTION TO CUDA• PARALLEL FRACTAL IMAGE CODING• EXPERIMENTS AND ANALYSIS

Page 4: Improvement of Fractal Image Coding using CUDA

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"

Page 5: Improvement of Fractal Image Coding using CUDA

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

Page 6: Improvement of Fractal Image Coding using CUDA

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.

Page 7: Improvement of Fractal Image Coding using CUDA

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

+

Page 8: Improvement of Fractal Image Coding using CUDA

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

Page 9: Improvement of Fractal Image Coding using CUDA

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!

Page 10: Improvement of Fractal Image Coding using CUDA

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

Page 11: Improvement of Fractal Image Coding using CUDA

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!

Page 12: Improvement of Fractal Image Coding using CUDA

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.

 

Page 13: Improvement of Fractal Image Coding using CUDA

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.

Page 14: Improvement of Fractal Image Coding using CUDA

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

Page 15: Improvement of Fractal Image Coding using CUDA

15

EXPERIMENTS AND OBSERVATIONS

NOTE: Charts prepared by the work of August Sodora on NVidia GeForce Tesla C1060 GPU

Page 16: Improvement of Fractal Image Coding using CUDA

16

CONTINUED..

NOTE: Charts prepared by the work of August Sodora on NVidia GeForce Tesla C1060 GPU

Page 17: Improvement of Fractal Image Coding using CUDA

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

Page 18: Improvement of Fractal Image Coding using CUDA

18

THANK YOU!


Top Related