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

36 CHAPTER 3. IMAGE TRANSFORMS AND IMAGE FEATURES multiplications and N additions) to multiply with the following matrix: ⎡ ⎤ DFT 2 . .. . ⎢ ⎣ DFT 2 ⎥ ⎦ } {{ } N/2 Finally, since Ω N is a diagonal matrix, it takes N multiplications to multiply with it. From all the above, together with (3.7), we can derive the following recursive relationship: C(N) = N +2C(N/2) + N + N +3N + N = 2C(N/2) + 7N. (3.8) If N =2 m ,wehave C(N) from (3.8) = 2C(N/2) + 7N = ... = 2 m−1 C(2) + 7(m − 1)N = 7N log 2 N − 6N ≍ N log 2 N, (3.9) where symbol “≍” means that asymptotically both sides have the same order. More specifically, we have lim N→+∞ C(N) N log 2 N = a constant. We see that the complexity of the DFT can be as low as O(N log 2 N). Since the matrix corresponding to the inverse DFT (IDFT) is the element-wise conjugate of the matrix corresponding to DFT, the same argument also applies to the IDFT. Hence there is an O(N log 2 N) algorithm for the inverse discrete Fourier transform as well. We can utilize FFT to do fast convolution, According to the following theorem. Theorem 3.3 (Convolution Theorem) Consider two finite-length sequences X and Y

3.1. DCT AND HOMOGENEOUS COMPONENTS 37 of length N, N ∈ N: X = {X 0 ,X 1 ,... ,X N−1 }, Y = {Y 0 ,Y 1 ,... ,Y N−1 }. Let ̂X and Ŷ denote the discrete Fourier transform (as defined in (3.1)) of X and Y respectively. Let X ∗ Y denote the convolution of these two sequences: X ∗ Y [k] = k∑ X[i]Y [k − i]+ i=0 N−1 ∑ i=k+1 X[i]Y [N + k − i], k =0, 1, 2,... ,N − 1. Let ̂X ∗ Y denote the discrete Fourier transform of the sequence X ∗ Y . We have ̂X ∗ Y [k] = ̂X[k]Ŷ [k], k =0, 1, 2,... ,N − 1. (3.10) In other words, the discrete Fourier transform of a convolution of any two sequences, is equal to the elementwise multiplication of the discrete Fourier transforms of these two sequences. We skip the proof. A crude implementation of the convolution would take N multiplications and N − 1 additions to calculate each element in ̂X ∗ Y , and hence N(2N − 1) operations to get the sequence ̂X ∗ Y . This is an order O(N 2 ) algorithm. From (3.10), we can first calculate the DFT of the sequences X and Y . From the result in (3.9), this is an O(N log 2 N) algorithm. Then we multiply the two DFT sequences, using N operations. Then we can calculate the inverse DFT of the sequence { ̂X[k]Ŷ [k] : k =0, 1,... ,N − 1}: another O(N log 2 N) algorithm. Letting C ′ (N) denote the overall complexity of the method, we have C ′ (N) = 2C(N)+N + C(N) = 3C(N)+N by (3.9) ≍ N log 2 N. Hence we can do fast convolution with complexity O(N log 2 N), which is lower than order O(N 2 ).

36 CHAPTER 3. IMAGE TRANSFORMS AND IMAGE FEATURES<br />

multiplications and N additions) to multiply with the following matrix:<br />

⎡<br />

⎤<br />

DFT 2 . .. .<br />

⎢<br />

⎣<br />

DFT 2<br />

⎥<br />

⎦<br />

} {{ }<br />

N/2<br />

Finally, since Ω N is a diagonal matrix, it takes N multiplications to multiply with it. From<br />

all the above, together with (3.7), we can derive the following recursive relationship:<br />

C(N) = N +2C(N/2) + N + N +3N + N<br />

= 2C(N/2) + 7N. (3.8)<br />

If N =2 m ,wehave<br />

C(N)<br />

from (3.8)<br />

= 2C(N/2) + 7N<br />

= ...<br />

= 2 m−1 C(2) + 7(m − 1)N<br />

= 7N log 2 N − 6N<br />

≍ N log 2 N, (3.9)<br />

where symbol “≍” means that asymptotically both sides have the same order. More specifically,<br />

we have<br />

lim<br />

N→+∞<br />

C(N)<br />

N log 2 N = a constant.<br />

We see that the complexity of the DFT can be as low as O(N log 2 N). Since the matrix<br />

corresponding to the inverse DFT (IDFT) is the element-wise conjugate of the matrix<br />

corresponding to DFT, the same argument also applies to the IDFT. Hence there is an<br />

O(N log 2 N) algorithm for the inverse discrete Fourier transform as well.<br />

We can utilize FFT to do fast convolution, According to the following theorem.<br />

Theorem 3.3 (Convolution Theorem) Consider two finite-length sequences X and Y

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

Saved successfully!

Ooh no, something went wrong!