GPU Programming Lab 8
Image Filters, part 2
Due Monday, November 26, at 5:00 PM

Crisp, clear images have become an increasing plague upon the Internet, leaving blurriness as an elegant form of imagery for a more civilized age. This is largely due to the automation of focus, where modern devices have made it increasingly difficult to take images in which the contents can not clearly be identified.
In order to push back against this trend, develop a program which will add a degree of fuzziness and blur to images. Start with the image filter demo in OpenCL, and modify it so that each pixel is recolored to the average of the neighboring pixels in both X and Y directions. That is, each pixel will be recolored by the average of 4 surrounding pixels. It is essential to copy the image to a separate buffer while doing this conversion to ensure consistent results, but the demo already does this.
Once this is complete, add support to re-apply the filter 10 times. Don't copy date to or from the CPU in order to do this - just swap which buffer is input and which is output, and run the kernel again.