Les principes de la compression?

Les principes de la compression? - Divers - Programmation

Marsh Posté le 18-07-2003 à 19:52:23    

Hello!
 
J'ai plusieurs questions qui paraîtronta sans doute connes à beaucoup d'entre vous. J'éspère que ceux-là me pardoneront de ne pas être un nerd.
 
1°) Je me demandais pourquoi il était nécéssaire la plupart du temps de supprimer des données pour faire baisser la taille d'un fichier. Si je mets un BMP dans un .zip, il sera compressé à un taux très élevé, ce qui ne sera pas le cas avec un JPG, qui certes prend moins de place mais dont la qualité est également moindre. Dans le cas d'Internet (et des réseaux en général), pourquoi ne pas simplement compresser les données avant la transmission et les décompresser à la réception, sans perdre ainsi ni les données superflues ni la qualité? Le serveur pourrait envoyer l'image compressée au client chez qui le browser décompresserait cette image automatiquement. Il n'y aurait alors pas de perte de qualité mais le transfert serait plus rapide et le stockage moins coûteux en termes de place (et donc d'argent, forcément :D ). Même chose avec le son: pourquoi utilise t-on le mp3 alors que le résultat est le même avec un wav zippé? (Je dis zippé mais ca peut être n'importe quel format .rar .ace .etc).
 
 
2°) J'ai remarqué que les fichiers zippés sont compressés toujours au même taux, que l'archive (le fichier .zip) ne contienne qu'un seul fichier, ou qu'elle en contienne cent. Je crois savoir qu'un des principes de la compression, c'est de réutiliser une donnée présente partout où elle se répète. Un peu comme si j'utilisais plusieurs fois la même sous-routine dans un programme. Par exemple, si je fais un liste des élèves cons:

Citation :

Ali est un con, il a eu une mauvaise note!
Barnabé est un con, il a eu une mauvaise note!
Bamboula est un con, il a eu une mauvaise note!
...


 
Je compresse ce message comme suit:

Citation :

x = "est un con, il a eu une mauvaise note!"
Ali x
Barnabé x
Bamboula x
...


 
D'accord c'est débile comme exemple, mais c'est toujours mieux que si vous n'y compreniez rien...
 
Pourquoi donc ne pas réutiliser les données présentes au sein d'un même fichier .zip (ou .tar ou .ace)? Si je mets 200 fois un fichier .bmp dans l'archive, celle-ci sera alors (presque) aussi grande que si je ne le mettais qu'une fois. Des données identiques peuvent aussi être trouvées dans des fichiers différents, à plus petite échelle (les pixels rouges, les mots "le" "la" "de" "ce" etc...).
 
 :cry: Dites-moi que vous voyez ce que j'essaie de dire [:prosterne]
 :hello:

Reply

Marsh Posté le 18-07-2003 à 19:52:23   

Reply

Marsh Posté le 18-07-2003 à 20:20:30    

1) Ca existe déjà. IIS le gère en natif depuis la version 5.0, et Apache quand on installe la librairie ZLIB. Le but est de compresser en gz (format similaire au ZIP, mais à ma connaissance à la fois moins performant et plus rapide) Le taux de compression moyen peut être mesuré sur un site, je recherche le lien, par contre, je te promet pas de le trouver :D
 
2) Ce se fait déjà aussi. C'est pour cette raison qu'il faut tous les fichiers d'une archive multi-volume pour décopresser un fichier. La raison pour laquelle la compression est à peut près stable entre les fichiers vient du faire qu'en fait, les algo de compression utilisés sont très différents de ceux dont tu parles (qui ressemble vaguement au RLE, compression utilisée sur les BMP, qui est minable au niveau compression). Hors le problème de ces algos, c'est qu'une fois la compression finie, il ne reste que "du bruit", c'est à dire des infos complètement anarchiques, qui seront encodées différement d'un fichier à l'autre, même si une partie de ces infos était identique à l'origine. Grossomodo, la seule chose sur laquelle tu vas pouvoir économiser, c'est sur les headers et footers des fichiers, qui sont souvent identiques pour tous les fichers d'un même format, mais le gain est minuscule, surtout si les fichiers sont volumineux.
 
3) Je me souvient quand j'étais jeune, j'avais trouvé deux petits programmes :
-> un programme qui permettait de convertir les programmes *.COM en *.EXE, puis un autre qui compressait le *.EXE. Le gain allait jusqu'à 70%, mais en revanche, ça ralentissait tout, et il fallait que le programme tourne en tant que résident pour pouvoir éxécuter les programmes ainsi compressés. Donc niveau protabilité/distribution de fichiers, c'était pas viable, hors c'est à ce niveau qu'on a besoin de compression.

Reply

Marsh Posté le 18-07-2003 à 20:22:11    

HotShot a écrit :

Pour le point 1 : c'est déjà le cas, les modems utilisent une compression (simple et rapide) pour le transfert de données.


Ha tiens, ouais, j'avais oublié la compression de la couche réseau :D
 
M'enfin le gain est minime, quand tu rajoutes les pertes dues aux collisions et aux trames perdues, bah tu gagne pas grand chose :D

Reply

Marsh Posté le 19-07-2003 à 01:02:12    

pour ton point 2:
Alors je vais peut etre dire une connerie... mais bon si il fallait s'arreter à ca... :
 
le probleme du zip c'est k'il va compresser chaque fichier PUIS les concatener dans un gros .zip
Donc meme si tu a des redondances entre les differents fichiers de ton archive tu aura toujours une archive de taiklle egale à la somme des ficheirs compressés...
 
Par contre dans le cas des tar.gz c'est different: d'abord tu regroupe tous tes fichiers en un gros . tar, puis tu compresse le tout en .gz => les redondance entre fichiers font gagner de la place.

Reply

Marsh Posté le 19-07-2003 à 01:56:08    

MagicBuzz a écrit :

1) Ca existe déjà. IIS le gère en natif depuis la version 5.0, et Apache quand on installe la librairie ZLIB. Le but est de compresser en gz (format similaire au ZIP, mais à ma connaissance à la fois moins performant et plus rapide) Le taux de compression moyen peut être mesuré sur un site, je recherche le lien, par contre, je te promet pas de le trouver :D


 
Mais ça reste un taux de compression ridicule. Je ne vais télécharger un bmp 1024*768 aussi vite qu'un jpeg, pourtant winzip peut le compresser à la même taille. En plus, le but de d'éviter les pertes, or un jpeg détruit irrémdiablement des données alors que c'est évitable.

Reply

Marsh Posté le 19-07-2003 à 02:12:35    

HotShot a écrit :


 
Heu, tu exagères légèrement... Pour une image photographique [qui justifie le recours au JPeg donc], un zip (ou rar) restera toujours 20-30% plus gros que l'image JPeg la moins compressée ;)


 
Ah bon, j'ai pas testé :??:

Reply

Marsh Posté le 19-07-2003 à 02:44:41    

HotShot a écrit :


 
Bah tiens, testé vite fait :
une photo toute bête en BMP : ~2 Mo
compressé en Zip et/ou Rar meilleur taux : ~ 1 Mo
compressé en JPeg non optimisé, quantif mini : ~ 600 Ko
 
Par contre, autre image, non photo (mon bureau en fait, avec des aplats colorés) :
~2 Mo ;
Rar meilleur (solid...) ~ 500 Ko
JPeg le moins compressé : ~ 600 Ko
Zip : ~ 700 Ko
 
Le JPeg se défend quand même pas mal au niveau photo... mais pas pour le reste. Sinon, si un format de type non destructeur (zip...) l'explosait ou l'approximait en toute circonstance, sois sûr que ça serait très employé ;)


Y'a pas le Png :o Pour les captures d'écran c'est l'idéal


---------------
༼ つ ◕_◕ ༽つ
Reply

Marsh Posté le 19-07-2003 à 03:02:04    

MagicBuzz a écrit :


3) Je me souvient quand j'étais jeune, j'avais trouvé deux petits programmes :
-> un programme qui permettait de convertir les programmes *.COM en *.EXE, puis un autre qui compressait le *.EXE. Le gain allait jusqu'à 70%, mais en revanche, ça ralentissait tout, et il fallait que le programme tourne en tant que résident pour pouvoir éxécuter les programmes ainsi compressés. Donc niveau protabilité/distribution de fichiers, c'était pas viable, hors c'est à ce niveau qu'on a besoin de compression.  


 
com2exe et un packer comme upx,Shrinker,ASPack,ExePack,LzExe,PECompact,Petite,PkLite...

THE REAL SMILEY a écrit :


Y'a pas le Png :o Pour les captures d'écran c'est l'idéal


[:plusun]


Message édité par Mad_Overclocker le 19-07-2003 à 03:03:01

---------------
RTCW & W:ET PlayerDawa Pack 1.28ハイテクなマスター
Reply

Marsh Posté le 19-07-2003 à 13:43:00    

Sinon, y'a le format FIF aussi qui déchire tout (compresse l'image en une suite d'expressions mathématiques représentant des fractales)
 
C'est lent pour la compression, mais le taux est monstrueux, et la qualité est excellente (la seule destruction qu'il y a, c'est au niveau des points isolés, genre des étoiles, il les vire :D)

Reply

Marsh Posté le 19-07-2003 à 15:02:03    

MagicBuzz a écrit :

Sinon, y'a le format FIF aussi qui déchire tout (compresse l'image en une suite d'expressions mathématiques représentant des fractales)
 
C'est lent pour la compression, mais le taux est monstrueux, et la qualité est excellente (la seule destruction qu'il y a, c'est au niveau des points isolés, genre des étoiles, il les vire :D)


tiens ça existe toujours ça? [:meganne]
j'ai adoré le principe, tout ça, j'en ai entendu parler pour la première fois il y a une petite dizaine d'années (c'était lent sur un 486 [:boidleau]) pis plus jamais après :/  On s'en sert encore? Quel(s) domaine(s) ?


Message édité par drasche le 19-07-2003 à 15:02:30

---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 19-07-2003 à 15:02:03   

Reply

Marsh Posté le 19-07-2003 à 15:09:26    

drasche a écrit :


tiens ça existe toujours ça? [:meganne]
j'ai adoré le principe, tout ça, j'en ai entendu parler pour la première fois il y a une petite dizaine d'années (c'était lent sur un 486 [:boidleau]) pis plus jamais après :/  On s'en sert encore? Quel(s) domaine(s) ?


Nan, on s'en sert plus, pis y'a des mongoles qu'on pas étés foutus de reprendre correctement le code derrière.
 
Maintenant c'est un plug-in qui coûte la peau du cul pour photoshop, et qui compresse très mal (moins bonne qualité et plus grosse taille, gain au niveau du zoom très réduit).
 
Faudra que je retrouve à l'occasion, j'avais sur une D7 la version pour windows 3.1 et elle déchirait trop grave, et c'était un freeware stand alone à l'époque :)


Message édité par MagicBuzz le 19-07-2003 à 15:09:50
Reply

Marsh Posté le 19-07-2003 à 15:13:24    

dommage :/
 
la compression par équations je trouvais ça top (enfin toujours maintenant), il s'est fait 2-3 beaux trucs avec ça.  Notamment ceci. Ca utilise la compression par équations (même s'ils le formulent autrement) et j'ai trouvé ça génial :)


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 19-07-2003 à 15:34:30    

HotShot a écrit :


 
Ouais mais c'est passque j'emmerde Antp :o


 
:p
 
Et le RAR (et autres) en mode Solid Archive) ça n'a d'intérêt que pour plus d'un fichier il me semble : ça fait l'équivalent du .tar.gz. C'est-à-dire que ça considère l'ensemble des fichiers comme un seul fichier, alors qu'un zip va compresser les fichiers individuellement (donc deux fichiers identiques vont être stockés deux fois).


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 19-07-2003 à 16:52:08    

drasche a écrit :

dommage :/
 
la compression par équations je trouvais ça top (enfin toujours maintenant), il s'est fait 2-3 beaux trucs avec ça.  Notamment ceci. Ca utilise la compression par équations (même s'ils le formulent autrement) et j'ai trouvé ça génial :)


Je connais ces demoz qui sont    [:eric_deluxe]


---------------
RTCW & W:ET PlayerDawa Pack 1.28ハイテクなマスター
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed