PAK

Un article de Mwyann.info.

   C:\>

      

Ceci est un programme fonctionnant sous DOS, genre MS-DOS 6.22. En principe, ce genre de programmes pourra fonctionner dans une fenêtre "ligne de commande" sous Windows (Démarrer > Exécuter > cmd ou command) mais je ne promets rien. Vérifiez dans la description du programme si c'est possible. Sinon, servez-vous d'un logiciel comme VMware ou DOSBox, ou bien trouvez un vieux PC et installez un MS-DOS comme au bon vieux temps.

   

 

A propos du projet
SystèmeDOS
CompatibleWindows
Étape de dév.Terminé
LangagePascal
Création04/2002

 

A la base, il s'agissait d'inventer un système de compression tout à fait nouveau (qui ne compresserait pas forcément beaucoup), dans l'espoir de produire un fichier suffisamment "mélangé" afin que PKZIP puisse à nouveau compresser efficacement. Malheureusement ça n'a pas marché aussi bien que je ne le prévoyais. Alors, ce programme est resté dans l'histoire et a servi à certains à me rappeler que j'avais encore des progrès à faire dans ce domaine.

D'après le code source, ma méthode était très mal étudiée car voici comment je faisais :

  1. Je lis un octet du fichier original
  2. Si cet octet est inférieur à 32, j'écris un bit qui vaut 1, puis les 4 bits de poids faible de l'octet original (les autres valant 0 obligatoirement)
  3. Si cet octet est supérieur ou égal à 32, alors j'écris un bit qui vaut 0, puis les 8 bits de l'octet original.

Ce qui donnait, pour 1/8 des possibilités (12,5%) une compression de ratio 8:5 (1,6), et pour le reste, une (dé)compression de ratio 8:9 (0,88), soit en moyenne une compression de... 0,97 ! C'est à dire qu'un fichier de 1 Mo passait à environ 1,03 Mo... Et le fichier n'était pas spécialement plus "mélangé". Enfin, l'idée était là, elle était bonne mais... il aurait fallu trouver un "shuffle algorithm" plus efficace :)

Si vous voulez en savoir plus sur les (vrais) algorithmes de compression, je vous recommande les documents de Andy McFadden : Hacking Data Compression.

Téléchargement

Le code source ainsi que les binaires précompilés sont disponibles ici : PAK.zip