Develop a small set of original image processing functions, which run both on a GPU and CPU platform, in a browser. You will be doing this (only) in a subset of Javascript, using V0 GPU.js (the original GPU accelerated Javascript http://gpu.rocks/). In the assessment of your program, marks will be given for range (i.e. how much you completed), and for your use of any specific techniques that you use to improve the behaviour of your program (beyond the obvious one-pixel-per- thread in the demo program given to you). Your code(s) is likely to be no more than 150-1500 commented lines.
Implementation of filters
Gaussian blur
Sobel edge detection
Thresholding (w/ different modes)
Light tunnel effect
Pipelining of filters
Parameterization of filters
Explanation of QR code detection
Explanation of speedup techniques
Omitting alpha channel
Using outputToTexture whenever possible
Parallelization of rowWise/colWise kernels.
Disabling of QR code output by default due to expensive GPU-CPU copying
Write up laboratories 1 and 2 in a short-essay style. You will explain the results you got with respect to the hardware, the speedup, and accuracy results you achieved. This write-up should take no more than (say) 5 pages.
Investigate the low framerate issue with the demo application provided, even when no processing is happening. Identify which code or functions are taking up time, showing how you established it (screenshots/data/graphs). If you can, fix it, again explaining how you fixed it.