Bonjour à tous, bon j'avoue que l'intitulé ne doit pas être très parlant mais je vais vous expliquer en détail mon problème.
Je développe une application sur téléphone portable en java. J'ai plusieurs fichiers textes dans mon projet. Et je souhaite tout simplement les compresser pour gagner un maximum de place dans mon JAR (exécutable java).
Je décide donc d'implémenter l'algorithme de Huffman pour compresser/décompresser mes fichiers texte. Après implémentation, ça fonctionne bien, mes fichiers sont compressés, je réduis leur taille de 35%.
Seulement voilà, une fois buildé, je m'aperçois que le jar n'est pas plus petit que lorsque je n'utilisais pas Huffman, il est même plus gros!!!
Explication:
Taille JAR avec compression au préalable de huffman: 206043 octets
Taille JAR sans compression au préalable de huffman: 204938 octets
Taille original du fichier texte: 5054 octets
Taille avec compression de Huffman du fichier texte: 3293 octets
Taille original du fichier texte dans JAR: 2079 octets
Taille avec compression de Huffman du fichier texte dans JAR: 3184 octets
Donc, les algorithmes de compression utilisés par le JAR ne compressent quasiment pas mon fichier compressé par huffman 3293 =>3184 . Mais compressent super bien mon fichier original 5054 => 2079 .
Au final, sans toucher à rien, la taille finale de mon fichier fait 2079 , contre 3184 avec huffman.
Je me suis donc dis que huffman faisait partie des algorithmes du JAR car il n'arrive pas à compressé mon fichier "huffmanifié" (oui, je sais j'invente des mots, c'est quand je suis énervé ).
Après un petite recherche, il se trouve que ce n'est pas le cas:
JAR == ZIP => Pre-processing + LZMA + LZ77 + BWT
Je ne sais pas du tout ce que sont ces algo, mais il n'y a pas de huffman là dedans. (contrairement au RAR soit dit en passant)
Donc voilà où j'en suis. Voici donc mes questions:
#1 Quel est l'explication cela ?
#2 Est-il possible de réaliser une compression des données qui soit ensuite bien compressé par le jar ou est-ce peine perdue ?
#3 Quelqu'un à t-il un doliprane, j'ai mal à la tête
Merci par avance pour vos réponses éclairées.
Partager