Compression la plus élevée pour les fichiers (pour le transfert Web)?

14

J'ai vu des fichiers hautement compressés, tels que 700 Mo de données compressées à environ 30 à 50 Mo.

Mais comment obtenir de tels fichiers compressés? J'ai essayé d'utiliser des logiciels comme WinRAR et 7Zip mais je n'ai jamais atteint une compression aussi élevée.

Quelles sont les techniques / logiciels qui vous permettent de compresser si bien les fichiers?

(PS j'utilise Windows XP)

rzlines
la source
Bonne idée ... mais où obtenez-vous ces fichiers de toute façon?
Robinicks
3
J'ai vu 7zip compresser les fichiers journaux du serveur (principalement du texte) jusqu'à environ 1% de leur taille d'origine.
Umber Ferrule
2
Ouvrez le Bloc-notes. Tapez 1 milliard de fois "A". Enregistrez, puis compressez. HOU LA LA! Créez une application qui écrit 1 milliard (vrais) de nombres aléatoires dans un fichier. Compressez ça. HUH?
igrimpe
igrimpe: De nombreux algorithmes de compression indexent les modèles. Un milliard d'A est un A un milliard de fois. Vous pouvez compresser cela en [A] {1, 1000000000}. Si vous avez un milliard de nombres aléatoires, il devient difficile de faire correspondre les modèles, car chaque nombre consécutif dans un sous-ensemble donné diminue de façon exponentielle la probabilité d'un sous-ensemble correspondant.
AaronF

Réponses:

11

Si le temps nécessaire pour compresser les données n'est pas un problème, vous pouvez optimiser la taille compressée en utilisant plusieurs outils différents ensemble.

Compressez les données plusieurs fois à l'aide de différents outils comme 7zip, winrar (pour zip) et bjwflate.

(Notez que cela ne signifie pas compresser le fichier zip encore et encore, mais plutôt créer un certain nombre de fichiers zip alternatifs en utilisant différents outils)

Ensuite, exécutez deflopt sur chaque archive pour réduire un peu plus chaque archive.

Enfin, exécutez zipmix sur la collection d'archives. Étant donné que différents outils zip sont meilleurs sur différents fichiers, zipmix sélectionne la meilleure version compressée de chaque fichier dans chacune des archives et produit une sortie plus petite que celle que n'importe lequel des outils zip aurait pu produire individuellement.

Vous devez cependant noter que cela n'est pas garanti de faire fonctionner n'importe quel type de magie sur vos fichiers. Certains types de données ne se compressent tout simplement pas très bien, comme les JPEG et les MP3. Ces fichiers sont déjà compressés en interne.

izb
la source
4
Les fichiers JPEG et MP3 ne sont pas zippés. Ils sont compressés mais pas zippés.
KovBal
C'est un conseil incroyablement mauvais, essayer d'utiliser plusieurs algorithmes de compression séquentiellement est une très mauvaise idée. Chaque algorithme crée un fichier compressé + une surcharge, donc en utilisant plusieurs, vous ajoutez en fait des données aux données que vous essayez de compresser - c'est comme essayer de creuser un trou dans le sable, plus vous allez profondément, plus le sable se déverse vous. Il vaut mieux utiliser un seul bon algorithme avec des paramètres de compression maximum.
Tacroy
Je pense que vous vous méprenez .. les mêmes données ne sont pas recompressées à plusieurs reprises. Vous choisissez plutôt simplement le meilleur algorithme unique sur une base par fichier plutôt que par archive.
izb
6
Compresser les données plusieurs fois est assez trompeur.
ta.speot.is
12

Cela dépend entièrement des données compressées.

Le texte se comprime très bien, les formats binaires pas si bien et les données compressées (mp3, jpg, mpeg) pas du tout.

Voici un bon tableau de comparaison de compression de wikipedia.

Nifle
la source
Je sais que la compression dépend du type de données, mais existe-t-il des techniques spécifiques qui vous aident à compresser davantage les fichiers?
rzlines
3
Une fois que vous avez compressé quelque chose, il est généralement impossible de le réduire de façon mesurable. Il vous suffit de sélectionner la méthode de compression appropriée pour vos données.
Nifle
Le texte peut facilement être compressé jusqu'à 90%.
Georg Schölly
@ GeorgSchölly: C'est excellent. Parce que je peux convertir toutes les données en texte, par exemple convertir chaque octet binaire en deux chiffres hexadécimaux affichés en texte. Cela doublerait ma taille, mais économiser 90% de la taille doublée se traduirait par une économie globale de 80%. (Ou, je pourrais utiliser base64 pour un peu plus d'efficacité dans la conversion binaire en texte.) C'est une excellente nouvelle! :)
TOOGAM
8

Les réponses précédentes sont fausses d'un ordre de grandeur!

Le meilleur algorithme de compression avec lequel j'ai une expérience personnelle est paq8o10t (voir page zpaq et PDF ).

Astuce: la commande pour compresser files_or_folders serait comme:

paq8o10t -5 archive files_or_folders

Taille d'archive en fonction du temps pour compresser et extraire 10 Go (79 431 fichiers) sur un disque dur USB externe aux paramètres par défaut et maximum sur un ordinateur portable Dell Latitude E6510 (Core i7 M620, 2 + 2 hyperthreads, 2,66 GHz, 4 Go, Ubuntu Linux , Vin 1.6).  Données de 10 Go Benchmark (système 4).

Source: utilitaire de sauvegarde et archivage de journalisation incrémentielle

Vous pouvez trouver un miroir du code source sur GitHub .


Un algorithme de compression légèrement meilleur, et lauréat du prix Hutter , est decomp8 (voir le lien sur la page des prix). Cependant, il n'y a aucun programme de compression que vous pouvez réellement utiliser.


Pour vraiment gros fichiers, lrzip peut atteindre des taux de compression tout simplement comiques .

Un exemple de README.benchmarks:


Prenons six arbres du noyau, une version à part en tant que tarball, linux-2.6.31 à linux-2.6.36. Ceux-ci afficheront de nombreuses informations redondantes, mais des centaines de mégaoctets à part, que lrzip sera très bon à compresser. Pour plus de simplicité, seulement 7z sera comparé car c'est de loin le meilleur compresseur à usage général pour le moment:

Ce sont des tests de performances effectués sur un processeur Intel Core2 double cœur 2,53 GHz avec 4 Go de RAM à l'aide de lrzip v0.5.1. Notez qu'il fonctionnait avec un espace utilisateur 32 bits, donc seul un adressage de 2 Go était possible. Cependant, le test a été exécuté avec l'option -U permettant à l'ensemble du fichier d'être traité comme une grande fenêtre de compression.

Tarball de 6 noyaux consécutifs.

Compression    Size                 Percentage      Compress    Decompress
None           2373713920           100             [n/a]       [n/a]
7z             344088002            14.5            17m26s      1m22s
lrzip          104874109            4.4             11m37s      56s
lrzip -l       223130711            9.4             05m21s      1m01s
lrzip -U       73356070             3.1             08m53s      43s
lrzip -Ul      158851141            6.7             04m31s      35s
lrzip -Uz      62614573             2.6             24m42s      25m30s
Alexander Riccio
la source
Il est optimisé pour fournir un taux de compression maximal, mais il est énormément plus lent que les quasi-concurrents.
Eric J.15
2
@Eric J. oui, mais la question n'a pas précisé la vitesse de compression / décompression;)
Alexander Riccio
3

Squeezechart.com contient des comparaisons de divers taux de compression. Bien que, comme indiqué par la réponse de Nifle - il est peu probable que vous obteniez des taux de compression aussi élevés pour les formats binaires.

idan315
la source
2

La plupart des outils de compression ont des paramètres pour vous permettre d'atteindre un taux de compression plus élevé avec un compromis entre des temps de compression / décompression plus lents et une utilisation accrue de la RAM.

Pour 7-Zip, recherchez «Boîte de dialogue Ajouter à l'archive» dans l'aide intégrée pour plus de détails.

Tom Robinson
la source
2

Vous pouvez essayer 7zip avec les paramètres ultra suivants:

7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on big_file.mysql.7z big_file.mysql
Kenorb
la source
2

Vérifiez simplement le résumé des tests de référence de compression de fichiers multiples qui a la meilleure liste de compression qui comprend le test de compression complet.

Top 30

entrez la description de l'image ici

Les meilleurs performances (basées sur la compression) dans ce test sont PAQ8 et WinRK (PWCM). Ils sont capables de compresser l'ensemble de test de 300+ Mb à moins de 62 Mb (réduction de 80% de la taille) mais prennent un minimum de 8,5 heures pour terminer le test. Le programme numéro un (PAQ8P) prend près de 12 heures et le numéro quatre (PAQAR) même 17 heures pour terminer le test. WinRK, le programme avec la 2ème meilleure compression (79,7%) prend environ 8,5 heures. Il n'est pas surprenant que tous les programmes mentionnés utilisent un moteur PAQ (de type similaire) pour la compression. Si vous avez des fichiers avec des images incorporées (par exemple des fichiers Word DOC), utilisez PAQ8, il les reconnaîtra et les compressera séparément, augmentant considérablement la compression. Tous les programmes mentionnés (sauf WinRK) sont gratuits.

LifeH2O
la source
1

Votre meilleur pari ici semble être des essais et des erreurs. Essayez toutes vos techniques de compression disponibles sur chaque fichier et choisissez le meilleur à mettre sur votre site Web. Heureusement, les ordinateurs font ce genre de choses assez rapidement et ne s'ennuient pas. Vous pouvez écrire un script simple pour automatiser le processus afin qu'il soit "relativement indolore".

Ne vous attendez pas à des miracles - 700 Mo à 30 Mo ne se produisent pas si souvent. Fichiers journaux comme mentionné ci-dessus - oui. "Votre fichier moyen" - pas question.

hotei
la source