sparse image representation via combined transforms - Convex ...

sparse image representation via combined transforms - Convex ... sparse image representation via combined transforms - Convex ...

convexoptimization.com
from convexoptimization.com More from this publisher
10.03.2015 Views

42 CHAPTER 3. IMAGE TRANSFORMS AND IMAGE FEATURES Fralick developed a fast algorithm that would take N log 2 N − 3N/2 + 4 multiplications and 3N/2(log 2 N − 1) + 2 additions; when N = 8, their algorithm would take 16 multiplications and 26 additions. This is a significant reduction in complexity. In 1984, Wang [139] gave an algorithm that would take N(3/4log 2 N − 1) + 3 multiplications and N(7/4log 2 N − 2) + 3 additions; when N = 8, this is 13 multiplications and 29 additions. Also in 1984, Lee [92] introduced an algorithm that would take N/2log 2 N multiplications and 3N/2log 2 N −N +1 additions; when N = 8, this is 12 multiplications (one less than 13) and 29 additions. Algorithm # of Multiplications # of Additions Definition N 2 N(N − 1) {64} {56} Chen, Smith and N log 2 N − 3N/2+4 3N/2(log 2 N − 1) + 2 Fralick, 1977 [28] {16} {26} Wang, 1984 [139] N(3/4log 2 N − 1) + 3 N(7/4log 2 N − 2) + 3 {13} {29} Lee, 1984, [92] N/2log 2 N 3N/2log 2 N − N +1 {12} {29} Duhamel, 1987 [62] 2N − log 2 N − 2 Not Applicable (theoretical bound) {11} Table 3.3: Number of multiplications and additions for various fast one-D DCT/IDCT algorithms. The number in {·}is the value when N is equal to 8. The overall complexity of the DCT arises from two parts: multiplicative complexity and additive complexity. The multiplicative complexity is the minimum number of nonrational multiplications necessary to perform DCTs. The additive complexity, correspondingly, is the minimum number of additions necessary to perform DCTs. Since it is more complex to implement multiplications than additions, it is more important to consider multiplicative complexity. In 1987, Duhamel [62] gave a theoretical bound on the 1-D N-point DCT: it takes at least 2N − log 2 N − 2 multiplications. In 1992, Feig and Winograd [67] extended this result to an arbitrary dimensional DCT with input sizes that are powers of two. Their conclusion is that for L-dimensional DCTs whose sizes at coordinates are 2 m 1 , 2 m 2 ,... ,2 m L,withm 1 ≤ m 2 ≤ ...m L , the multiplicative complexity is lower bounded by 2 m 1+m 2 +...+m L−1 (2 mL+1 − m L − 2). When L = 1, this result is the same as Duhamel’s result [62]. In image coding, particularly in JPEG, 2-D DCTs are being used. In 1990, Duhamel

3.1. DCT AND HOMOGENEOUS COMPONENTS 43 and Guillemot [61] derived a fast algorithm for the 2-D DCT that would take 96 multiplications and more than 454 additions for an 8 × 8 block. In 1992, Feig and Winograd [66] proposed another algorithm that would take 94(< 96) multiplications and 454 additions for an 8 × 8 block. They also mentioned that there is an algorithm that would take 86 (< 94) multiplications, but it would take too many additions to be practical. In practical image coding/compression, a DCT operator is usually followed by a quantizer. Sometimes it is not necessary to get the exact values of the coefficients; we only need to get the scaled coefficients. This leads to a further saving in the multiplicative complexity. In [66], Feig and Winograd documented a scaled version of DCT that would take only 54 multiplications and 462 additions. Moreover, in their fast scaled version of the 2-D DCT, there is no computation path that uses more than one multiplication. This makes parallel computing feasible. 3.1.3 Discrete Sine Transform As for the DCT, the output of the 1-D discrete sine transform (DST) is the inner product of the 1-D signal and the equally sampled sine function. The sampling frequencies are also equally spaced in the frequency domain. Again, there are four types of DST. More specifically, if we let X = {X[l] :l =0, 1, 2,... ,N − 1} be the signal sequence, and denote the DST of X by Y = {Y [k] :k =0, 1, 2,... ,N − 1}, we have Y [k] = N−1 ∑ l=0 S N (k, l)X[l], k =0, 1, 2,... ,N − 1, where S N (k, l),k,l =0, 1, 2,... ,N − 1, are values of sine functions. For the four types of DST, let b k := { √2 1 if k =0or N, 1 if k =1,... ,N − 1; (3.12)

3.1. DCT AND HOMOGENEOUS COMPONENTS 43<br />

and Guillemot [61] derived a fast algorithm for the 2-D DCT that would take 96 multiplications<br />

and more than 454 additions for an 8 × 8 block. In 1992, Feig and Winograd [66]<br />

proposed another algorithm that would take 94(< 96) multiplications and 454 additions for<br />

an 8 × 8 block. They also mentioned that there is an algorithm that would take 86 (< 94)<br />

multiplications, but it would take too many additions to be practical.<br />

In practical <strong>image</strong> coding/compression, a DCT operator is usually followed by a quantizer.<br />

Sometimes it is not necessary to get the exact values of the coefficients; we only need<br />

to get the scaled coefficients. This leads to a further saving in the multiplicative complexity.<br />

In [66], Feig and Winograd documented a scaled version of DCT that would take only 54<br />

multiplications and 462 additions. Moreover, in their fast scaled version of the 2-D DCT,<br />

there is no computation path that uses more than one multiplication. This makes parallel<br />

computing feasible.<br />

3.1.3 Discrete Sine Transform<br />

As for the DCT, the output of the 1-D discrete sine transform (DST) is the inner product<br />

of the 1-D signal and the equally sampled sine function. The sampling frequencies are<br />

also equally spaced in the frequency domain. Again, there are four types of DST. More<br />

specifically, if we let<br />

X = {X[l] :l =0, 1, 2,... ,N − 1}<br />

be the signal sequence, and denote the DST of X by<br />

Y = {Y [k] :k =0, 1, 2,... ,N − 1},<br />

we have<br />

Y [k] =<br />

N−1<br />

∑<br />

l=0<br />

S N (k, l)X[l], k =0, 1, 2,... ,N − 1,<br />

where S N (k, l),k,l =0, 1, 2,... ,N − 1, are values of sine functions. For the four types of<br />

DST, let<br />

b k :=<br />

{<br />

√2 1<br />

if k =0or N,<br />

1 if k =1,... ,N − 1;<br />

(3.12)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!