J'ai souvent besoin de compresser des fichiers très similaires les uns aux autres.
Actuellement, j'utilise 7Zip, qui compresse un fichier de 16 Go à 1,2 Go en environ 35 minutes en utilisant 8 cœurs avec des paramètres Ultra.
Il me semble qu'une grande partie de ce temps est consacrée au calcul du dictionnaire à utiliser pour la compression. Étant donné que les fichiers sont très similaires, le dictionnaire réellement utilisé est probablement également similaire.
Existe-t-il un outil de compression basé sur Windows (7Zip avec une option que je ne connais pas, ou un outil différent) qui peut enregistrer le dictionnaire et réutiliser ce dictionnaire enregistré pour les fichiers suivants?
Existe-t-il une meilleure façon d'aborder le problème du maintien d'un taux de compression similaire à celui que j'ai, tout en compressant beaucoup plus rapidement?
la source
Contrairement à l'algorithme DEFLATE, le LZMA de 7-Zip utilise une compression solide par défaut, qui tire parti de la redondance inter-fichiers. Cela fonctionnera avec les paramètres par défaut tant que les fichiers sont suffisamment petits.
Avec les paramètres par défaut de 2 Go pour la taille de bloc solide , un fichier de 16 Go est en fait compressé en 8 morceaux distincts.
Comme l'a déjà dit @Breakthorugh, le dictionnaire est généré à la volée. Vous pouvez le vérifier empiriquement en définissant la taille du bloc solide sur Solide (compresser tous les fichiers à la fois) et Non solide (compresser chaque fichier séparément).
L'augmentation de la taille du bloc solide entraînera en fait un ralentissement, mais cela peut entraîner un taux de compression bien meilleur. Par exemple, la compression de deux fichiers identiques se traduira par une archive presque deux fois plus volumineuse avec une compression non solide.
la source