Creating a real-time image processing filters is difficult, let alone on a mobile device. In contrast to many other real-time data manipulation tasks, the amount of elements that need to be processed on every frame is huge, and the operation can rarely be deferred to stronger, offline systems. At Lightricks, we've spent the last 6 years optimizing our iOS and Android image processing engines to provide a seamless user experience.
In this talk I will present a case study writing a gaussian blur filter. We will begin from writing a naive CPU implementation that performs poorly on large size images and gradually work our way to an efficient, scalable GPU implementation that runs in real-time.
No prior knowledge in image processing, GPU wizardry or performance optimizations is required!