La compression illimitée sans perte de donnée

Fermé
uglyvan - 31 mars 2012 à 14:24
nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 - 31 mars 2012 à 15:54
Bonjour,


alors.
prenez deux fichiers de même taille, un de texte et un de données;
compressez-les en passant par winzip;
l'un des deux fichiers sera fortement compressé, alors que l'autre (avec un peu de chance) le sera un peu;
prenons un troisième fichier, de taille plus imposante que le deuxième avant compression mais composé de texte;
ce troisième fichier sera, une fois compressé, de plus petite taille que le deuxième après compression.
voilà ce que nous avons:
- deux fichiers de taille identique avant compression auront des tailles différentes après compression.
- un fichier, de taille plus imposante qu'un autre avant compression, aura une taille inférieure à cet autre fichier une fois compressé.
alors voilà ce que je me suis dit:
le procédé de compression lempel-ziv huffman (ou winzip) doit fonctionner d'une certaine façon... que je ne connais pas mais, en prenant un fichier binaire (donc difficilement compressible) et en l'aérant (c'est-à-dire en ajoutant des octets de manière à favoriser
la compression de la même façon que dans le cas d'un plus gros fichier texte) ça devrait théoriquement être possible de gagner de la place (ne serait-ce que quelques dizaines d'octets sur un fichier d'un Mo), et qui permettrait de recompresser une deuxième fois, voire une millième fois, ce qui conduira à une diminution importante du fichier en fin de compte.
A voir également:

4 réponses

nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 138
31 mars 2012 à 14:43
Non non ça ne marcheras pas car l'algorithme donne un résultat médiocre si tu l'applique sur des données déjà compressées, car elles deviennent trop compliquées notamment du fait d'être en codage à bits variable -ce qui fait que les valeurs ne sont plus alignées sur un octet- et aussi qu'elles regroupent déjà des chaines de valeurs contigües...Une seconde passe pourrait éventuellement améliorer la compression, mais uniquement si l'algorithme a "de la chance", tout comme il peut augmenter la taille finale, en première passe aussi d'ailleurs...
Si tu veux creuser le sujet, intéresse-toi à l'algorithme LZW, relativement simple d'approche.
1
oui mais l'idée ici c'est justement d'arriver à un taux de compression médiocre (genre 0.01% de gain) qui n'empèche pas une recompression...
0
nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 138
31 mars 2012 à 15:17
Oui, mais ce qu'il te faut comprendre, c'est que pour compresser, on remplace l'information par des métadonnées -l'information qui décrit l'information- et c'est la différence de taille entre données et métadonnées qui induit une compression...Or, les métadonnées vont être de plus en plus compliquées à décrire au fur et à mesure que tu appliqueras la compression, ce qui finiras très vite par être moins bon qu'une compression directe en une passe...
0
Jôôô sait que les méta-données s'ajoutent à la taille finale d'une compression;
mais ces méta-données seront inclues dans le fichier lors de la compression suivante...
éclaire-moi encore un peu et je vais peut-être comprendre l'origine de mon erreur :)

(parce que c'est un peu gros, que personne n'ait pensé à ce que je décris )
0
nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 138
31 mars 2012 à 15:28
Les méta-données ne s'ajoutent pas à la taille du fichier, c'est le fichier lui-même qui n'est rempli que de méta-données... Et ces méta-données n'ont plus la structure redondante de l'information d'origine, car la compression s'effectue justement en supprimant les redondances.
Il reste malgré tout de la redondance potentielle, ce qui dans certains cas autorisera une autre passe légèrement améliorative, mais ça s'arrêtera là!
0
d'aacord...

selon moi, il faudrait AVANT d'appliquer un algorithme de compression utiliser un algorithme d'étirement, qui ajouterait de manière intelligente des octets à l'intérieur du fichier source de manière à le faire gonfler MAIS ce qui permettrait un meilleur taux de compression en sortie.

ce taux de compression en sortie n'a pas besoin d'être important puisque au fichier une fois compressé on pourrait encore facilement étirer le nouveau fichier...
0
Bonjour,

Tu dis :
le procédé de compression lempel-ziv huffman (ou winzip) doit fonctionner d'une certaine façon que je ne connais pas
Et puis :
ça devrait théoriquement être possible

Comment peux-tu parler de ce qui est théoriquement possible après avoir dit que tu ne savais pas comment ça marchait ?

Ton raisonnement sous-entend que tu es un génie entouré d'idiots qui n'ont pas encore compris qu'on pouvait compresser un fichier beaucoup plus que ce qui se fait actuellement - même sans limite d'après le titre de ton sujet (jusqu'à un fichier de zéro bit ?)

Etudie d'abord la théorie, puis reviens en parler.
1
nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 138
31 mars 2012 à 14:50
C'est limpide^^!
Mais d'autre part être imaginatif, même dans le domaine de l'utopie, c'est une bonne stimulation pour creuser profond...
0
Bien sûr. Mais sois sincère : penses-tu que nous soyons devant un cas de pensée d'une profondeur particulière, ou devant un cas d'ignorance ordinaire ?
Je suis fatigué de dépenser de l'énergie à démonter rigoureusement les idée fumeuses exprimées avec un vocabulaire des plus approximatifs par des doux rêveurs qui ont cru avoir compris quelque chose de profond alors qu'ils n'ont qu'effleuré la surface d'une théorie.
0
nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 138
31 mars 2012 à 15:20
Dans le doute, je préfère tenir un propos encourageant, et je ne suis pas encore « fatigué de dépenser de l'énergie à démonter rigoureusement les idée fumeuses exprimées avec un vocabulaire des plus approximatifs par des doux rêveurs qui ont cru avoir compris quelque chose de profond alors qu'ils n'ont qu'effleuré la surface d'une théorie.» !
Ça viendra en temps opportun, sans empressement !
0
:saint:
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
31 mars 2012 à 14:52
Tu oublies de distinguer l'information et la manière de la représenter.
Peu importe comment tu compresses tes données, un film aura toujours une quantité d'information supérieure à une image. Donc même si tu compresses très bien tes données, lorsque l'on est sans perte, tu vas nécessairement converger vers une taille limite (purement théorique) qui correspond à la meilleure manière de représenter l'information pour limiter la taille. Mais en aucun cas tu n'auras de compression illimitée, qui sous-entendrait que l'on puisse converger vers une taille de 0 octets et qui pourrait engendrer n'importe quelle information... ce qui est évidement impossible.
1
"illimitée" c'est pour dire que, au bout de un million de phases de recompression, le fichier ainsi obtenu aura une taille ridicule par rapport au fichier original...
0
Pierrecastor Messages postés 41473 Date d'inscription mercredi 5 novembre 2003 Statut Modérateur Dernière intervention 30 mai 2024 4 144
31 mars 2012 à 15:05
Oui, mais non. Tu as lu les réponse à ta question ?
0
"flame wars" :)
0
Pierrecastor Messages postés 41473 Date d'inscription mercredi 5 novembre 2003 Statut Modérateur Dernière intervention 30 mai 2024 4 144
31 mars 2012 à 14:28
Salut

Je doute fortement que ça puisse fonctionner comme ça.

Mais si tu veut une compression plus efficace, essaye 7zip.

https://sebsauvage.net/rhaa/index.php?2010/06/23/18/07/54-la-superiorite-du-format-7z-7-zip
0