|
|||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
Le paradoxe du compresseur s'applique à tout compresseur de données informatiques sans perte. Il exprime qu'un compresseur sans perte universel ne peut pas exister. Plus précisément, pour tout compresseur sans perte, on est certain que :
Ces propriétés sont démontrées ci-après. Cependant, elles n'enlèvent rien à l'intérêt des compresseurs sans perte. En effet, dans la pratique, les mots, messages ou fichiers que l'on souhaite compresser ne sont pas quelconques et choisis aléatoirement parmi tous les mots, messages ou fichiers possibles. Les compresseurs se servent de leurs particularités. Des compresseurs seront alors très bons avec certains types de données, et très mauvais avec d'autres.
modifier ExpérimentationsOn peut aisément vérifier expérimentalement le paradoxe ci-dessus. for i in `seq 1 100`; do echo "blabla" >> toto001; done for i in `seq 1 100`; do gzip -c "toto`printf "%03d" $i`" > "toto`printf "%03d" $((i+1))`"; done wc -c toto* On vérifie souvent en pratique qu'un fichier qui est déjà le résultat d'une compression se compresse mal, voire grossit par application du compresseur. D'ailleurs, Gzip refuse par défaut de compresser les fichiers comportant l'extension ".gz" qui est le signe d'une précédente application de ce compresseur. modifier Preuve mathématiqueUn compresseur sans perte peut être vu comme une injection des mots dans les mots, c'est-à-dire une fonction C telle que
On vérifie alors aisément que, pour tout mot u, l'un des deux cas suivants est vérifié :
Ceci montre la troisième propriété du paradoxe énoncé ci-dessus. Les deux premières en découlent car, s'il y a compression stricte, c'est-à-dire s'il existe un mot u plus grand que sa version compressée C(u), alors :
On peut remarquer par ailleurs qu'il est impossible de compresser strictement tous les mots d'une taille N donnée : en effet il y a aN mots de taille N pour un alphabet à a lettres et seulement modifier Un autre paradoxeUn autre paradoxe célèbre concernant les compresseurs est le suivant :
Cela rappelle qu'une signification n'est pas portée par un message en soi, mais par un doublet message/décodeur. Ces idées ont été poussées très loin avec la théorie de la complexité de Kolmogorov. modifier HistoriqueLorsque fut lancé par IBM son système OS/2, les lecteurs de CD n'étaient pas généralisés et le système était fourni sur 17 disquettes, ce qui en rendait l'installation pénible. À une demande de la direction soucieuse de savoir si l'on pouvait réduire cette taille, la légende dit que la réponse aurait été : « Nous pouvons le faire tenir compressé sur une seule disquette, mais à l'aide d'un compresseur si complexe qu'il en occupera seize ». C'était là le fameux paradoxe initial. La notion de complexité de Kolmogorov n'était pas loin. modifier Exemple : Guerre et PaixEst-il possible de compresser Guerre et Paix en un seul bit ? Oui, avec le décompresseur suivant :
si bit[0] = 1
alors { impression de Guerre et paix (le roman, pas le titre)}
sinon { écriture des bits suivants, qui constituent le message }
Là encore, on reporte sur la complexité du compresseur ce qui a été économisé dans le message, donc sans bénéfice particulier. modifier Voir aussimodifier Articles connexesmodifier Liens externes
|
| All Right Reserved © 2007, Designed by Stylish Blog. |