Le format d'image par défaut mis à disposition par TI ne dispose d'aucune compression et résulte en des classeurs lents à charger et très importants en taille. Ce constat m'a amené à écrire ma propre librairie, nommée compress, qui permet de compresser des images sur votre ordinateur pour les décompresser en Lua sur une calculatrice.
Décompresser en Lua peut sembler exagéré, mais c'est cependant beaucoup plus efficace que la seule compression du .tns. Sur mes images, j'observe un poids de fichier réduit de 600% et une vitesse d'exécution améliorée de 50%.
Actuellement, seuls deux algorithmes de compression/décompression sont disponibles : RLE (Run-length encoding) et LZW (Lempel-Ziv-Welch). RLE a tendance à produire des fichiers plus légers mais plus lents d'exécution que LZW.
Version 0.0.4
Lien de téléchargement : https://mega.co.nz/#!owxVXbAQ!MPb4JRfuZbVcEriqC6IqsUbJRjdcQw9CMYDzvEuwahc
Changelog : http://tiplanet.org/forum/viewtopic.php?f=19&t=12084&p=144084#p144084
Cette version nécessite Python 2.7.5, ImageMagick et si vous souhaitez convertir les fichiers .lua en .tns, l'exécutable luna.exe à la racine du dossier "compress" ou dans votre variable d'environnement PATH.
Pour voir toutes les options fournies par le programme :
- Code: Tout sélectionner
python convert.py -h
Version 0.0.3
Lien de téléchargement : https://mega.co.nz/#!UxYBAZQR!BfvEC079-PEB0j98wG58RGjTjJRrt4GDA5xsJMV1KYY
Changelog : http://tiplanet.org/forum/viewtopic.php?f=19&t=12084&start=10#p143091
Version 0.0.2
Lien de téléchargement : https://mega.co.nz/#!w8hTnIJB!SDoEbCshxMgHZbV3bNXFcxCMy-0d9H3iK7fUiFTpoZ8
Changelog : http://tiplanet.org/forum/viewtopic.php?f=19&t=12084#p142325
Version 0.0.1
Lien de téléchargement : https://mega.co.nz/#!UwhnDRAJ!Tuad9XC01 ... MElQwSm8GQ
Description ci-dessous.
La librairie se situe dans src/compress.lua. Vous pouvez utiliser les packages lzw.py, rle.py, lua.py et image.py pour compresser vos images ou vos données. Des exemples d'utilisation se trouvent dans example.py et src/example.lua.
Attention cependant, image.py recquiert le package PIL. Si vous disposez déjà de Python 2.7.3/3.X, vous pouvez l'installer via "pip install pillow".
Roadmap :
- script exécutable en ligne de commande pour faciliter la compression.
- génération d'un fichier images.lua qui contient les données des images compressées.
- utiliser ImageMagick plutôt que PIL.
N'hésitez pas à partager vos optimisations ! L'implémentation actuelle de LZW génère des fichiers encore trop importants, ce qui est notamment dû au fait que la table des entrées n'est jamais remise à zéro.