Telegram estrena nueva versión y lo hace con una peculiar característica: los stickers animados. No es la primera aplicación en incluirlos, aunque posiblemente sea la que mejor lo hace, pues son animaciones extremadamente suaves -de hasta 60 fotogramas por segundo- y que ocupan muy poco espacio.
Detrás de estos stickers se encuentra el formato TGS, capaz de generar animaciones más fluidas que un GIF pero ocupando mucho menos tamaño, en lo que Telegram denomina una mezcla de gráficos vectoriales, métodos de empaquetado y magia prohibida.
Vectores en lugar de píxeles
Para los stickers animados, Telegram ha optado por no reinventar la rueda, sino reusar tecnología ya presente y usada en vada vez más aplicaciones y páginas web. Los stickers de Telegram se basan en Lottie, una librería de animaciones creada por el departamento de diseño de AirBnB que genera archivos JSON que se pueden integrar y reproducir en páginas web y aplicaciones Android y iOS.
Los archivos GIF se basan en mapas de bits por lo que necesitan guardar toda la información de cada fotograma que los componen y, aunque usan distintas técnicas para ahorrar espacio al hacer cálculos para reusar información- el resultado puede ser un archivo de considerable tamaño. Y, cuantos más fotogramas y más calidad tenga la animación, más ocupará.
Las animaciones de Lottie por su parte son vectoriales. A groso modo, en lugar de guardar una informacion de cada pixel, se guarda la información para generar la forma y su animación. Si es un diseño sencillo -y generalmente los stickers suelen serlo- el resultado es un archivo de mucho menor tamaño que un archivo GIF.
Lottie es una librería que permite exportar animaciones creadas en Adobe After Effects mediante un plugin propio: Bodymovin. Este plugin genera un archivo JSON, que es básicamente un documento de texto que contiene toda la información para generar la imagen y su animación. Como documento de texto que es, su tamaño puede incrementarse rápidamente si es una animación compleja, larga o con muchos elementos, ocupando en torno a los 100 KB.
TGS = animación Lottie comprimida en ZIP
Lottie y sus animaciones JSON tienen muy buen aspecto de por sí, pero Telegram ha ido un paso más allá. Como comentábamos antes, los archivos JSON de Lottie tienen toda la información en texto plano, un tipo de documentos que generalmente reciben una muy buena compresión. ¿Por qué conformarte con 80 Kilobytes cuando pueden ser 10?
Así, el equipo de Telegram ha creado un fork para el plugin de Lottie Bodymovin, que recibe el nombre de Bodymovin-TG. Básicamente es casi lo mismo, pero lo que genera es un archivo ZIP que contiene en su interior el archivo JSON con la animación.
El resultado es un archivo mucho menor con la única penalización de que debe descomprimirse antes de usarse, lo cual no es un problema para la potencia de los móviles de hoy en día (y, además, son archivos muy pequeños de todos modos).
Así pues, realmente no hay mucha magia prohibida detrás de los stickers animados de Telegram, sino librerías de código abierto, con una pequeña vuelta de tuerca para adaptarlas mejor a la aplicación. No es magia, es ciencia.
Ver 2 comentarios