Digital watermarking is a technique to embed copyright information into digital content like images, video, and audio. It works by modifying the frequency domain coefficients after applying a transform like discrete cosine transform (DCT). GPUs can accelerate watermarking using a parallel programming model where the watermark embedding process is implemented as a kernel. The performance was optimized by techniques like tiled algorithms and memory coalescing to better utilize the GPU memory bandwidth. Implementation results showed a speedup compared to CPU implementation on systems with different GPUs. Future work includes applying watermarking on mobile devices and multimedia streaming.
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
Fast watermarking for digital content protecting using GPUs
1. Digital Watermarking
Parallel Programming Model
Optimization
Implementation
Fast Watermarking for Digital Content Protecting
using GPUs
Amirali Sharifian
Isfahan University of Technology
February 19, 2014
1 / 25
Amirali Sharifian
Fast Watermarking for Digital Content Protecting using GPUs
2. Digital Watermarking
Parallel Programming Model
Optimization
Implementation
1
Digital Watermarking
Introduction
DCT
2
Parallel Programming Model
Hardware
Programming Model
3
Optimization
Block Size
Tiled algorithm
4
Implementation
Results
Future implementation
2 / 25
Amirali Sharifian
Fast Watermarking for Digital Content Protecting using GPUs
3. Digital Watermarking
Parallel Programming Model
Optimization
Implementation
Questions
What is watermarking and why we use it?
How we model our programs on GPUs and what is CUDA C?
What is the role and importance of GPUs in watermarking?
3 / 25
Amirali Sharifian
Fast Watermarking for Digital Content Protecting using GPUs
4. Digital Watermarking
Parallel Programming Model
Optimization
Implementation
Watermark
Def: A watermark is a recognizable
image or pattern in paper that appears
as various shades of lightness/darkness
4 / 25
Amirali Sharifian
Fast Watermarking for Digital Content Protecting using GPUs
5. Digital Watermarking
Parallel Programming Model
Optimization
Implementation
Digital Watermarking
Def: The procedure of embedding copyright information in a
digital content such as image, video or audio.
5 / 25
Amirali Sharifian
Fast Watermarking for Digital Content Protecting using GPUs
6. Digital Watermarking
Parallel Programming Model
Optimization
Implementation
Watermarking system methods and properties
Spatial domain
Frequency domain
- DFT
- DCT
- DWT
Computation complexity
Robustness
Capacity
Application
Spatial domain
Low
Fragile
High
Authentication
Frequency domain
High
More robust
Low
Copyright
6 / 25
Amirali Sharifian
Fast Watermarking for Digital Content Protecting using GPUs
7. Digital Watermarking
Parallel Programming Model
Optimization
Implementation
Watermarking method
Image
(Cover)
Partitioning
Bi
DCT
DCT (Bi )
Embeding
DCT (Bi )
IDCT
Bi
Reconstructing
I
Watermarked Image
7 / 25
Amirali Sharifian
Fast Watermarking for Digital Content Protecting using GPUs
8. Digital Watermarking
Parallel Programming Model
Optimization
Implementation
Discrete Cosine Transform
Definition method
Definition method
C (U, V ) = α(u)α(v )
N−1
x=0
N−1
y =0
f (x, y ) cos
π(2x+1)u
1N
cos
π(2y +1)v
2N
8 / 25
Amirali Sharifian
Fast Watermarking for Digital Content Protecting using GPUs
9. Digital Watermarking
Parallel Programming Model
Optimization
Implementation
Discrete Cosine Transform
Efficient method
Efficient method
2-D DCT(x) = 1-D DCT((1-D DCT(X ))t )
9 / 25
Amirali Sharifian
Fast Watermarking for Digital Content Protecting using GPUs
10. Digital Watermarking
Parallel Programming Model
Optimization
Implementation
Embedding method
λ = |Ck (L) − Ck (S)|
10 / 25
Amirali Sharifian
Fast Watermarking for Digital Content Protecting using GPUs
11. Digital Watermarking
Parallel Programming Model
Optimization
Implementation
Architecture
CPU and GPU are designed very differently
CPUs: Latency oriented design
GPUs: Throughput oriented design
Powerful ALU
Small Chaches
Large caches
Simple control
Sophisticated control
Energy efficient ALUs
11 / 25
Amirali Sharifian
Fast Watermarking for Digital Content Protecting using GPUs
12. Digital Watermarking
Parallel Programming Model
Optimization
Implementation
CUDA / OpenCL - Execution model
Heterogeneous host+device application C program
- Serial parts in host C code
- Parallel parts in device SPMD kernel C code
12 / 25
Amirali Sharifian
Fast Watermarking for Digital Content Protecting using GPUs
13. Digital Watermarking
Parallel Programming Model
Optimization
Implementation
A Multi-Dimensional Grid Example
13 / 25
Amirali Sharifian
Fast Watermarking for Digital Content Protecting using GPUs
14. Digital Watermarking
Parallel Programming Model
Optimization
Implementation
CUDA memory model
14 / 25
Amirali Sharifian
Fast Watermarking for Digital Content Protecting using GPUs
15. Digital Watermarking
Parallel Programming Model
Optimization
Implementation
” Parallel programming is easy as long as you don’t care about
performance.”
15 / 25
Amirali Sharifian
Fast Watermarking for Digital Content Protecting using GPUs
16. Digital Watermarking
Parallel Programming Model
Optimization
Implementation
Executing thread blocks
Threads are assigned to Streaming
Multiprocessors (SM) in block
granularity
Up to 8 Blocks to each SM as
resource allows
Fermi SM can take up to 1536
threads
Could be 256 (threads/block) * 6
blocks
Or 512 (threads/block) * 3
blocks, etc.
Each block is executed as 32-thread
Warps
16 / 25
Amirali Sharifian
Fast Watermarking for Digital Content Protecting using GPUs
17. Digital Watermarking
Parallel Programming Model
Optimization
Implementation
The Von-Neumann
Model
The Von-Neumann
Model with SIMD
units
17 / 25
Amirali Sharifian
Fast Watermarking for Digital Content Protecting using GPUs
18. Digital Watermarking
Parallel Programming Model
Optimization
Implementation
Importance of memory access efficiently
Compute to Global Memory Access ( CGMA)
- Memory bandwidth = 200GB/s → 50(200/4) giga
single-percision → 50 GFLOPS
- The peak single-precision performance: 1,500 GFLOPS !!
18 / 25
Amirali Sharifian
Fast Watermarking for Digital Content Protecting using GPUs
19. Digital Watermarking
Parallel Programming Model
Optimization
Implementation
Tiled matrix multiplication
Global memory access pattern of the base matrix multiplication
kernel
19 / 25
Amirali Sharifian
Fast Watermarking for Digital Content Protecting using GPUs
20. Digital Watermarking
Parallel Programming Model
Optimization
Implementation
Tiled matrix multiplication
Optimized
For 150GB/s global memory bandwidth
⇒ (150/4) × 16 = 600 GFLOPS !!
20 / 25
Amirali Sharifian
Fast Watermarking for Digital Content Protecting using GPUs
21. Digital Watermarking
Parallel Programming Model
Optimization
Implementation
Other Optimization
Dram bandwidth
Memory coalescing
Tiled Convolution
Data transfer and Virtual Memory
Pinned memory and DMA data transfer
21 / 25
Amirali Sharifian
Fast Watermarking for Digital Content Protecting using GPUs
22. Digital Watermarking
Parallel Programming Model
Optimization
Implementation
Speedup
Implementation results on a system with Core i7 - 3.40 GHZ CPU
and GTX570 GPU:
Speedup =
GPUTime
CPUTime
22 / 25
Amirali Sharifian
Fast Watermarking for Digital Content Protecting using GPUs
23. Digital Watermarking
Parallel Programming Model
Optimization
Implementation
Comparing two different systems
System 1
CPU
GPU
System 2
Core i7 - 3.40 GHZ
Core i3 - 3.10 GHZ
GTX 570
GTX 460
23 / 25
Amirali Sharifian
Fast Watermarking for Digital Content Protecting using GPUs
24. Digital Watermarking
Parallel Programming Model
Optimization
Implementation
Implementing the algorithm on mobile phones
Using watermarking algorithms in multimedia streaming
24 / 25
Amirali Sharifian
Fast Watermarking for Digital Content Protecting using GPUs
25. Digital Watermarking
Parallel Programming Model
Optimization
Implementation
Question ?
25 / 25
Amirali Sharifian
Fast Watermarking for Digital Content Protecting using GPUs