Bonjour,
J’espère poster au bon endroit. Si ça n'est pas le cas, mes excuses par avance au gentil administrateur qui déplacera mon topic.
Dans le but de créer une fonction d'affichage d'un gif animé sur une écran tft 80X160 ST7735S piloté par un micro-contrôleur ARM M3 (MBED LPC1768), je cherche à bien comprendre la méthode de décompression LZW des gif.
J'ai suivi quelques tutoriels sur la décompression, et notamment ceux-ci :
http://dictionnaire.sensagent.lepari...0Format/en-en/
http://giflib.sourceforge.net/whatsi...mage_data.html
Je pensais avoir compris la méthode (notamment pour des palettes a 256 couleurs), mais quand je passe à une palette de 16 couleurs (gif créé via photoshop), je ne peux décompresser correctement que les trois premières lignes de mon gif de test.
Avant que l'on ne me pose la question, je souhaite garder une palette à 16 couleurs pour des questions futures de taille de palette dynamique lors de la programmation sur mon micro-contrôleur.
La problématique c'est que pour le coup, je ne suis pas certain d'avoir compris la subtilité du décodage pour une palette à 256 couleurs.
J'en viens donc à mon problème :
Je décode le gif suivant
Je vous joints un fichier excel :
- la première feuille décrit la récupération du "stream code". Je découpe les octets constituant l'image en groupe de 5 bit (normal j'ai 0xF couleurs, soit une découpe de 5 bit des octets).
- la seconde est la partie décodage proprement dite
Si quelqu'un expert dans ce domaine pouvait m'expliquer ou est mon erreur...
Merci d'avance
Partager