Object Oriented Framework for
CUDA based Image Processing
組員名單
:
P76004588
徐華煊
P76004423
曾郁凱
P76014216
吳品頡
Keywords
:
Object
oriented
framework, CUDA,
design patterns,
image processing
Pritam
Prakash
Shete
,
Venkat
P. P.
K.,
Dinesh M.
Sarode
,
Mohini
Laghate
,
S. K.
Bose
& R. S.
Mundada
,
Bhabha
Atomic Research Centre, Mumbai, India
International
Conference on Communication, Information & Computing Technology (ICCICT
)
Oct.
19
-
20,2012,
Mumbai, India
1
1. Introduction
•
Compute Unified Device Architecture (CUDA)
–
CUDA is a novel and promising GPU programming frame work from NVIDIA.
–
The CUDA has been speedup many computationally intensive graphics as well
as nongraphic
•
Essential
for a seamless panoramic
mosaic
–
A
pyramidal image blending
algorithm
•
Our goal
–
T
o show
that use of design patterns facilitate extending existing functionality
by adding new classes, rather than modifying an existing classes or
functionality
2
1. Introduction
-
Panoramic Mosaic
3
1.
Introduction
-
Finding Key Point
4
2.
Analysis and Design
-
Gaussian
Blur
Operation
5
2
2
2
2
)
(
2
exp
2
1
)
,
,
(
y
x
y
x
G
)
,
(
*
))
,
,
(
)
,
,
(
(
)
1
(
y
x
I
k
y
x
G
k
y
x
G
n
n
)
,
,
(
)
,
,
(
)
1
(
n
n
k
y
x
L
k
y
x
L
)
,
(
*
)
,
,
(
)
,
,
(
y
x
I
y
x
G
y
x
L
doubles for
the next octave
)
,
,
(
)
1
(
n
k
y
x
D
L
(
σ
)
s
n
,
,
2
,
1
D(
σ
)
High frequency
k
= 2
(1/
s
)
s
: Image per octave
s
= 3 in this case
σ=
1.
6
σ=k
3
*1.
6
DoG filter
Gaussian filter
σ=k
4
*1.
6
σ=k
-
1
*1.
6
σ=k*
1.
6
σ=
k
2
*1.
6
σ=
1.
6
σ
=
2
*
1.
6
2. Analysis and Design
-
Laplacian
Pyramid
6
2. Analysis and Design
-
Remove
E
dges
Response
7
3. Implementation
-
Modules
•
Image Blending Library (IBL):
They developed framework for
CUDA based image processing.
•
This frame work offers
3 modules
for an image processing:
1)
CPU Module
2)
Simple
-
CUDA Module
3)
IO
-
CUDA Module
8
3. Implementation
-
Modules
1)
CPU Module
–
Using single thread
–
Implementation function:
1.
Gaussian blur
2.
Laplacian
pyramid
3.
REDUCE operation
4.
EXPAND operation
9
3. Implementation
-
Modules
2)
Simple
-
CUDA Module
CPU
GPU
Global
M
emory
CPU
Memory
Send
image
Process
Image
Return
image
10
3. Implementation
-
Modules
3)
IO
-
CUDA Module
GPU
Global
M
emory
Image already get
Shared
Memory
Process
Image
Send
image
Return
image
11
3. Implementation
-
Automatic Image Conversion
•
Visitor Design pattern
–
Image type
:
CPUBuffer
image and
CUDABuffer
image
Visitor
Concrete Visitor
Concrete Visitor
Element
Concrete Element
Concrete Element
Output:
CUDABuffer
Output:
CPUBuffer
12
3. Implementation
-
Image Source Integration
•
General Hierarchy Pattern
13
3. Implementation
-
Extensible Architecture
•
Construction of Gaussian &
Laplacian
Pyramid
14
3. Implementation
-
Extensible Architecture
•
Building the Gaussian
pyramid
–
Non
modifiable code along with placeholders for extending
it
•
Using
Factory
Method pattern
placeholders
–
C
reating
the image
buffer
–
Gaussian blur
–
REDUCE operation
•
Realized
by the respective
subclasses
–
Ex.
CPUBlendingFactory
–
Ex.
IOCUDABlendingFactory
15
3. Implementation
-
Extensible Architecture
•
Combine Pyramid Operation
16
3. Implementation
-
Extensible Architecture
•
Combine
P
yramid
O
peration
–
Validating
an input
pyramids
–
Allocating
memory for an output
pyramid
–
Combining
high pass and low pass
images
•
The
Template
Method pattern
is used to define the
skeleton
•
Combining
high pass images and low pass image
are
placeholder
or
extension
points
•
Subclasses
redefine
combining high pass and low pass
images without changing basic algorithm
structure
–
Ex.
CPUCombinePyramidOperation
–
Ex.
IOCUDACombinePyramidOperation
17
4. Result
•
Specification
–
Intel Core 2 Duo with E8400 3.00 GHz
processor
–
2GB
RAM
–
NVIDIA’s
Quadro
FX
4600
–
Input images covers
low resolution (128x128)
as well as a
high resolution (2048x2048)
18
4. Result
•
Panoramic
image
stitching
19
4. Result
•
CUDA based modules perform much better than the CPU
module
•
Simple
-
CUDA
–
Device global
memory
•
IO
-
CUDA module
–
Fast
on
-
chip shared memory
20
5. Conclusion
•
I
mplemented
an object oriented framework for a
GPU based image
processing
•
Using
software engineering principles and design
patterns
•
E
xtending
t
he
framework for computation using the
GPU
memory
21
THANK YOU
22
Enter the password to open this PDF file:
File name:
-
File size:
-
Title:
-
Author:
-
Subject:
-
Keywords:
-
Creation Date:
-
Modification Date:
-
Creator:
-
PDF Producer:
-
PDF Version:
-
Page Count:
-
Preparing document for printing…
0%
Comments 0
Log in to post a comment