In the previous chapter we discussed an OpenCL implementation of a very basic algorithm called matrix multiplication. We saw that a matrix multiplication algorithm can be implemented in many different ways, such as by using local, global or private memory. In this chapter we delve into a different subject called image processing, in which we primarily discuss image convolution. Image processing in itself is a very big topic and there are many books which discuss the same. We will briefly deal with image processing in this chapter and explore the data parallel operations in image processing algorithms, and how it can be used with OpenCL. In this chapter, we will also discuss how to perform some filter operations using the convolution operators.
The list of filters we discuss in this case study are as follows:
Mean filter
Median filter
Gaussian filter
Sobel filter
Image compression is a research topic in itself. One of the most common compression algorithms...