Forum Clubic

Compression arithmétique ?

Bonjour, j’aimerais savoir si vous connaissiez un format qui exploite la compression arithmétique ( par exemple bzip2 utilise le codage de huffman ou GIF utilise LZW ) ?
Je n’ai pour le moment trouvé aucun exemple … Si possible, utilisé dans un traitement sans perte.

Merci d’avance :slight_smile:

il me semble que la compression arithmétique est brevetée par IBM. Etend donné les ressouces qu’il faut, elle n’est pas exploitée ailleurs que dans le domaine de la recherche.

Si je me rappelle bien elle nous a été présentée de la manière suivant. Un extra terrestre vient sur terre et veut repartir avec toutes les informations possibles et imagineables qui se trouvent sur terre. Pour cela il ramasse un petit baton, il trace dessus un trait d’une manière bien précise, et voilà c’est fait.

L’idée derrière est que la position du trait, si on suppose la précision infinie, génère un nombre flottant entre 0 et 1 qui est la représentation codée de tout l’info.

Le pb de ce genre de compression c’est que pour ça il faut des machines qui travaillent sur les nombres à virgules, et ça nos machines le font mais n’aiment pas trop, c’est très très lent :neutre: (par rapport au même travail sur des entiers, ce que font toutes les autres méthodes de compression)

Il faudrait que je vérifie dans des cours que j’ai si je me plante pas :wink:

ça concorde avec ce que j’ai trouvé sur le net. nottament a propos du brevet IBM…

Quand a l’explication que tu nous fourni, elle est bien illustrée…

oui , je connais l’algorithme :slight_smile: grosso modo, pour palier aux problèmes de virgules, de pertes de précisions ( et du risque de tomber sur des arrondis en 0 ou 1 en cas de dépassement de la capacité d’écriture de la fraction - par exemple 25 millions de zéro :expressionless: ), on shift sur des valeurs entières longues. Le calcul est tjrs long, mais dans certains cas précis, ça paye :stuck_out_tongue:

le problème est qu’à part des implémentations de JPEG2000, ( et je n’en suis meme pas sur :s ) , le codage arithmétique n’est pas utilisé :frowning:

En fait, j’ai juste besoin d’un exemple concret de format pour illustrer un devoir sur la compression lossless :frowning: … tant pis, je dirais que c’est un modèle académique !

sinon, si vous avez des exemples je suis preneur :smiley:

mike

Ce dont vous parlez, c’est la compression fractale (qui compresse énormément mais demande beaucoup de ressource pour compresser et beaucoup moins pour la décompression) ?

non, le codage arithmétique c’est un codage entropique ( c’est à dire basé sur des calculs statistiques ) . Il permet d’attribuer à chaque symbole un intervalle dont la longueur est proportionnel à la distribution. On code donc un message sous la forme d’un unique nombre rationnel. D’ailleur le code de huffman est un code arithmétique particulier ( c’est démontré , mais je sais pas vraiment comment :s ). L’avantage du code arithmétique repose sur le fait que l’on peut coder sur des “bits à virgules” par exemple 21,22 bit pour un symbole … On s’approche donc énormement près de l’entropie (plus proche encore qu’avec Huffman). Je crois que ce type de codage est utilisé en 3D pour compresser les différents sommets des triangles (à vérifier !! et si oui dans quel format et sous quel(s) logiciel(s) )! :slight_smile:

mike

OK, merci pour la réponse.