Parallel Wavelet Schemes for Images
Parallel Wavelet Schemes for Images
Filter Bank
H̃(z−1) a
d
↓ 2
+
G̃(z−1) ↓ 2
↑ 2 H(z)
↑ 2 G(z)
Lifting Scheme
a
d
split P̃ (z−1)T P (z) merge
P̃ (z)T =∏
K>k>0
[1 U (k)(z)0 1
] [1 0
P (k)(z) 1
]
CDF 9/7 Wavelet
α
β
γ
δ
input
output
steps
even samples
odd samples
P̃ (z) =
[1 α
(1 + z−1
)0 1
] [1 0
β (1 + z) 1
] [1 γ
(1 + z−1
)0 1
] [1 0
δ (1 + z) 1
] [ζ 00 1/ζ
]
2-D Discrete Wavelet Transform
Objective
→ →
State of the Art: Separable Convolution
NH
NH
NV NV
y = NV |NH | x
State of the Art: Separable Lifting
THP TV
P SHU SV
U
y = SVU∣∣ SHU ∣∣TVP ∣∣THP ∣∣ x
Our Solution: Separable Polyconvolution
NH
NV NH NV
y = NVP,U |NHP,U | x
Our Solution: Non-Separable Convolution
N N
y = N∣∣ x
Our Solution: Non-Separable Convolution
N N
y = N∣∣ x
Our Solution: Non-Separable Polyconvolution
NP,U NP,U
y = NP,U
∣∣ x
Our Solution: Non-Separable Polyconvolution
NP,U NP,U
y = NP,U
∣∣ x
Our Solution: Non-Separable Lifting
TP TP SU SU
y = SU∣∣TP
∣∣ x
Our Solution: Non-Separable Implosion
TIP RI
P,U SIU
y = SIU∣∣RIP,U ∣∣TIP ∣∣ x
Our Solution: Non-Separable Explosion
TEP RE
P,U SEU
y = SEU∣∣REP,U ∣∣TEP ∣∣ x
Platforms
feature shaders OpenCL
results exchanged off-chip memory on-chip memorypassing in registers no yesSIMD available no yes, SIMD-32transform view global view block-based
Results: Properties
Table : Arithmetic Operations / Steps for CDF 9/7
separability scheme shaders OpenCL
separable convolution 58 / 2 56 / 1separable polyconvolution 42 / 4 20 / 2separable lifting 32 / 8 32 / 4
non-separable convolution 200 / 1 152 / 1non-separable polyconvolution 62 / 2 46 / 2non-separable lifting 36 / 4 36 / 4non-separable implosion 39 / 6 36 / 6non-separable explosion 37 / 6 36 / 6
Results: Performance in Shaders
2
3
4
5
6
7
8
9
10
11
12
13
10.0kpx 100.0kpx 1.0Mpx 10.0Mpx 100.0Mpx 1.0Gpx
GB
/s
Separable LiftingNon-Separable Lifting
Non-Separable ImplosionNon-Separable Explosion
Non-Separable Polyconv.Separable Polyconv.
Non-Separable ConvolutionSeparable Convolution