2010-08-08 2 views
1

Étant donné un fichier gzip Z, si je le décompresser à Z ', est-il possible de le recompresser pour obtenir le exact le même fichier gzip Z? Après une lecture rapide du format DEFLATE, je devine non, car n'importe quel fichier donné peut avoir plusieurs représentations au format de flux DEFLATE, et il n'y a aucun moyen de déterminer lequel était initialement utilisé. Quelqu'un peut-il confirmer si ce raisonnement est correct, et sinon, indiquer comment je peux faire cela?Étant donné un fichier gzip décompressé, est-il possible de recréer le fichier gzip d'origine exact?

Pour les points bonus, quels algorithmes/formats de compression sont suffisamment spécifiés pour qu'il n'y ait qu'une seule représentation compressée d'un fichier?

Merci!

+0

Que faites-vous avec cela? Il pourrait y avoir des alternatives à la décompression, comme zlib ou gzopen (en lisant directement à partir du fichier compressé). –

Répondre

2

Certainement non pour gzip, sauf si vous connaissez également les outils et les paramètres impliqués (et peut-être même alors). Compte tenu des compromis impliqués, je ne vois pas pourquoi cela serait souhaitable, car l'utilisateur ne pouvait pas équilibrer les différentes préoccupations. Je ne voudrais pas avoir les mêmes paramètres utilisés pour faire gzip à la volée sur un serveur web pour encoder ou transférer des encodages comme je le ferais pour compresser une archive massive alors que je suis heureux au pub de laisser la machine faire son boulot du jour au lendemain .