←Back

Proof of Separable Convolution 2D

By the definition of Convolution 2D;
Definition of 2D convolution

Since convolution is commutative (x[n] * y[n] = y[n] * x[n]), swap the order of convolution;
alternative 2D convolution

And, if h[m, n] is separable to (M1) and (1N);

Therefore, substitute h[m, n] into the equation;

Since the definition of convolution 1D is;
Definition of 1D Convolution
it is convolving with input and h1, then convolve once again with the result of previous convolution and h2. Therefore, the separable 2D convolution is performing twice of 1D convolution in horizontal and vertical direction.

And, convolution is associative, it does not matter which direction perform first. Therefore, you can convolve with h2[n] first then convolve with h1[m] later.

Example

Compute y[1,1] by using separable convolution method and compare the result with the output of normal convolution 2D.

x[m,n]
Input
h[m,n]
Separable Kernel

i) Using convolution 2D

ii) Using Separable Convolution 2D
First, do the vertical convolution 1D where the row is n=1, and the column is m=0,1,2;


Then, do the horizontal convolution with above result where column is m=1;


←Back

 

 
Hide Comments
comments powered by Disqus