GIF GPU Encoder

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.

old

Floyd steinberg dithering

old

GPU accelerated dithering