La compression dans une archive volumineuse entraîne-t-elle une meilleure compression que la compression individuelle de dossiers?

1

J'ai plusieurs dossiers d'environ 8 Go environ. Ensemble, ces dossiers totalisent environ 60 Go de données. Je peux compresser ces dossiers de deux manières: soit individuellement, en créant une archive compressée pour chacun d'eux, soit en une seule et même archive compressée.

En général, en supposant que toutes les données à compresser sont du même type et que l'algorithme de compression utilisé est le même (et que je me moque également du temps qu'il faudrait pour décompresser le fichier plus volumineux), l'une ou l'autre méthode produira-t-elle une meilleure compression que un autre, ou les tailles totales des fichiers compressés dans les deux scénarios ont-elles tendance à être égales?

Hashim
la source

Réponses:

3

La compression dans une archive volumineuse entraîne-t-elle une meilleure compression que la compression individuelle de dossiers? Pas nécessairement.

Seulement si l'archive utilise compression solide . Une archive non solide (comme une archive Zip) compresse les fichiers individuellement. Cela vous permet de décompresser facilement des fichiers uniques à partir de l'archive. Il vous permet également d’ajouter des fichiers à l’archive sans avoir à tout recompresser.

Avec des archives solides, tout cela est beaucoup plus difficile: pour décompresser un fichier à la toute fin du flux, tout doit être décompressé (mais pas nécessairement écrit sur le disque). Lors de l'ajout d'un fichier, l'algorithme doit également passer par tout.

Il existe toutefois un terrain d’entente: utiliser des «blocs solides». Maintenant, l’archiveur n’a pas à traiter tout le fichier en permanence, mais seulement une partie du fichier.

Dans l’interface graphique 7-Zip, c’est cette option:

7-Zip Add dialog

Sans prendre en compte les données compressées, c’est très simple:

  • Non-solide: accès interactif rapide, pire compression
  • Blocs solides: accès interactif relativement efficace, meilleure compression
  • Solide: pas d'accès interactif, meilleure compression

Selon le modèle d'accès prévu, vous devez sélectionner une variante appropriée.

Daniel B
la source
3

Bien qu'il soit impossible de dire avec une certitude absolue, une archive plus grande devrait théoriquement se traduire par une taille d'archive plus petite, car davantage de blocs de données peuvent être trouvés de manière répétitive. En supposant que les données soient aussi homogénéisées que vous le dites.

Cependant, il est tout à fait possible que certains dossiers contiennent des fichiers contenant davantage de blocs de données similaires et, par conséquent, pourraient mieux se compresser sous la forme d'une archive individuelle.

La seule vraie méthode pour savoir quelle méthode est la meilleure serait de tester les deux méthodes.

Keltari
la source
1

L'archive unique sera presque toujours plus petite, mais pas pour la raison que vous pensez.

En termes simples, en ne disposant que d’une archive, vous ne perdez pas d’espace avec plusieurs en-têtes de fichier d’archive. Il y a un minimum d'espace qu'un fichier d'archive prend juste pour être une archive valide, et vous finissez par occuper beaucoup d'espace avec chaque archive que vous créez. La seule exception largement utilisée est la cpio format, qui n’a pas d’en-tête pour l’archive elle-même, mais seulement des en-têtes par fichier.

Plus réaliste, vous allez d'habitude obtenir un rapport de compression au moins aussi bon en utilisant une seule archive au lieu de plusieurs, et avec certains archiveurs, il peut être nettement meilleur (par exemple, zpaq la déduplication dans l’archive afin de gagner beaucoup d’espace s’il ya beaucoup de données dupliquées).

Vous devez cependant vous poser une autre question avant de prendre votre décision: le temps système dû au fait de devoir gérer une seule grande archive au lieu de plusieurs plus petites vaut-il l’économie de place? Selon l'endroit où vous stockez les données, il peut s'avérer plus économique d'utiliser uniquement des archives plus petites, en particulier si vous n'avez probablement besoin que d'un seul dossier à la fois.

Mais dans l’ensemble, Keltari a raison, le seul moyen de savoir avec certitude est de le tester.

Austin Hemmelgarn
la source