Un fichier ODT, ODG, etc. est simplement une archive zip avec des fichiers dedans. Zip est un conteneur, dans un zip, chaque fichier est compressé séparément, ce qui permet de lire et décompresser un seul fichier depuis l’archive sans avoir à décompresser toute l’archive, c’est pourquoi zip est souvent utilisé comme conteneur de divers format (Microsoft fait pareil avec ses OOXML). Chaque fichier étant compressé séparément dans le conteneur, il est en fait possible d’utiliser différents algorithmes de compression, par fichier. Par défaut l’algorithme de compression est deflate, mais ça peut être autre chose, comme rien du tout (fichier non compressé), ou zstd. La compression zstd étant plus efficace que deflate, ça devrait produire des fichiers plus compacts, mais comme le conteneur est inchangé, tout le code de manipulation de fichier dans une archive reste le même, excepté la fonction de compression ou décompression.
Je connais un peu le sujet car avec Unvanquished nos fichiers de jeux sont stockés dans des archives DPK... qui sont en fait des zip. Tout comme un jeu qui va stocker des textures dans un zip, libreoffice va stocker les divers fichiers d’un document dans un zip, le texte en lui-même, les métadonnées, les images et fichiers sons éventuels... :D
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: Compression
Posté par Thomas Debesse (site web personnel, Mastodon) . En réponse au lien Le format Open Document file (ODF) fête ses vingt ans. Évalué à 5. Dernière modification le 02 mai 2025 à 10:10.
Un fichier ODT, ODG, etc. est simplement une archive zip avec des fichiers dedans. Zip est un conteneur, dans un zip, chaque fichier est compressé séparément, ce qui permet de lire et décompresser un seul fichier depuis l’archive sans avoir à décompresser toute l’archive, c’est pourquoi zip est souvent utilisé comme conteneur de divers format (Microsoft fait pareil avec ses OOXML). Chaque fichier étant compressé séparément dans le conteneur, il est en fait possible d’utiliser différents algorithmes de compression, par fichier. Par défaut l’algorithme de compression est deflate, mais ça peut être autre chose, comme rien du tout (fichier non compressé), ou zstd. La compression zstd étant plus efficace que deflate, ça devrait produire des fichiers plus compacts, mais comme le conteneur est inchangé, tout le code de manipulation de fichier dans une archive reste le même, excepté la fonction de compression ou décompression.
Je connais un peu le sujet car avec Unvanquished nos fichiers de jeux sont stockés dans des archives DPK... qui sont en fait des zip. Tout comme un jeu qui va stocker des textures dans un zip, libreoffice va stocker les divers fichiers d’un document dans un zip, le texte en lui-même, les métadonnées, les images et fichiers sons éventuels... :D
ce commentaire est sous licence cc by 4 et précédentes