2D Gausian Convolution algorithm is implemented that works on very large images. Gausian filter is often used for image down-sampling. Implementation is robust and seperable. That means, the two convolution can be seperated into two 1D convolutions. Breaking a single multi dimensional Gausian convolution into two 1D convolutions significantly improved the performance. Computation time of 2D convolution is O(nk^2) where n is the number of pixels in the image and k is the size of gausian kernel. Reducing this to two 1D convolutions yield a computation time of O(2nk). Thus provided a dramatic performance improvement. The algorithm is implemented on CPU and GPU using CUDA C. Benefit of parallel execution for this algorithm is monitored profiling the convolution on GPU verses CPU.
anzisheng / 2d-convolution--cuda Goto Github PK
View Code? Open in Web Editor NEWThis project forked from tejeswinijayaramareddy/2d-convolution--cuda
very large image