Learning: OpenGL, C++, NDK.
Duration: 3 months
License: Bobble Keyboard
Objective: Speed up real-time gif encoding
The USP of the Bobble Keyboard is personalised GIF/stickers. To make the content more relevant, user also has a choice to change the text and head in the GIF/stickers. In case of GIF whenever user changes something, it takes a considerable amount of time to re-encode the GIF, approx. 2 seconds on average devices.
However we were using the fatest GIF encoder avaliable at that time, and also tried multi-threading but the results were not appealing.
Given the constrained environemnt(type of content in Bobble Keyboard), I developed a first of it's kind GPU enabled GIF encoder. The becnhmarks showed and improvement of 4x in GIF encoding time. However, this is not a universal solution and won't work for all GIFs, but this technique can be tweaked to get better results in other constrained environments as well.
Floyd steinberg dithering
GPU accelerated dithering