Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 25/08/2014, à 23:21

thimeau

peu de compression avec gzip et bzip2

Bonjour,

J'ai un problème concernant la compression de mes fichiers.

Par exemple j'ai un fichier de 9145 bytes (pas gros du tout) :

mercier@mercier-X550CC:~$ gzip ang2.odt -c -9 > ang2

la ça me donne 7194 bytes (je gagne mais peu)

mercier@mercier-X550CC:~$ gzip ang2.odt -c -1 > ang3

la ça me donne 7299 bytes (normal vu que c'est -1, mais il y a très peu de différence)

mercier@mercier-X550CC:~$ bzip2 ang2.odt -c -9 > ang4

la ca me donne 7747 bytes avec bzip2. Je croyais qu'il prenait plus de temps mais compressait mieux. Ce n'est pas vraiment le cas.

mercier@mercier-X550CC:~$ tar -cvf ang5 ang2.odt
ang2.odt
mercier@mercier-X550CC:~$ 

la c'est avec tar (je sais que c'est juste pour assembler les dossiers) maisdans ce cas le résultat est de 20480 bytes. Est-ce normal?

mercier@mercier-X550CC:~$ gzip ang5 -c -9 > ang6

et donc après le tar, je fais gzip et la j'obtiens 7333 bytes. Je ne comprends vraiment pas pourquoi.

J'ai déjà essayé avec des dossiers plus gros. J'ai le même résultat en terme de pourcentage bien sur.

Savez-vous d'où cela peut venir?

Merci d'avance

Hors ligne

#2 Le 26/08/2014, à 00:33

bishop

Re : peu de compression avec gzip et bzip2

Salut thimeau !
Essaie p7zip (voir 7-Zip / p7zip dans la documentation ubuntu-fr).

sudo apt-get install p7zip-full p7zip-rar

Ces outils sont basés sur 7-Zip.


Pour avoir des infos sur les lignes de commande à utiliser :

man 7z

Dernière modification par bishop (Le 27/08/2014, à 12:12)


La plus grande surprise que puisse faire un con c'est de faire une pause.

Hors ligne

#3 Le 26/08/2014, à 05:46

pingouinux

Re : peu de compression avec gzip et bzip2

Bonjour,
Un fichier .odt étant déjà compressé avec zip, il est normal que tu ne gagnes pas beaucoup. J'ai fait les mêmes tests que toi avec un fichier de la même taille ne contenant que des zéros, et voici ce que j'obtiens :

  9145 ang2.odt
    53 ang2
    84 ang3
    46 ang4
 20480 ang5
   129 ang6

Le tar sans compression d'un fichier vide fait déjà 10240 octets.

Hors ligne

#4 Le 26/08/2014, à 09:40

tiramiseb

Re : peu de compression avec gzip et bzip2

Salut,

En effet, comme le dit pingouinux, un fichier OpenDocument est déjà compressé, donc tu ne gagneras pas grand chose.

Pour la différence entre gzip et bzip2, oui en général bzip2 est plus performant, mais sur des données déjà compressées le résultat peut être étonnant comme tu le remarques ; en effet, il trouve moins de patterns à traiter. C'est comme pour les formats d'images GIF et PNG : dans certains cas particuliers, le GIF prend moins de place.

Concernant tar, oui ça prend plus de place car c'est un format plus complexe, qui doit notamment répertorier son contenu. Il est alors normal qu'il y ait une petite "surcharge" avec ce format, qui n'est pas un format de compression mais bien un format d'archivage.

Enfin tu demandes à gzip de compresser une archive tar, d'un fichier compressé en zip. Tu compresses alors un fichier déjà compressé en zip, comme avant, mais tu y ajoutes l'en-tête de tar...

J'ai déjà essayé avec des dossiers plus gros.

Des dossiers ? Des fichiers, tu veux dire, probablement.

Quel(s) format(s) de fichiers ? Que du OpenDocument ? Ou aussi autre chose ?


EDIT : correction après remarque de pingouinux.

Dernière modification par tiramiseb (Le 26/08/2014, à 09:57)

Hors ligne

#5 Le 26/08/2014, à 09:54

pingouinux

Re : peu de compression avec gzip et bzip2

Bonjour tiramiseb,

Tu as utilisé l'argument "-c" de tar, tu lui as donc demandé de compresser avec gzip.

Pour info, c est pour créer une archive, et z pour compresser avec gzip.

Hors ligne

#6 Le 26/08/2014, à 09:55

tiramiseb

Re : peu de compression avec gzip et bzip2

Ah merde, je suis con, en effet j'ai mélangé ; l'archive tar n'est pas compressée. Je corrige mon message précédent.

Dernière modification par tiramiseb (Le 26/08/2014, à 09:55)

Hors ligne

#7 Le 26/08/2014, à 10:00

tiramiseb

Re : peu de compression avec gzip et bzip2

Encore une précision ; je me suis interrogé sur les tailles des fichiers "tar", qui sont multiples : 10240 et 20480.
Après une mini-recherche sur Internet, il s'avère que le format tar a de toute façon une taille multiple de 10 Ko car cela permet d'améliorer l'efficacité d'une écriture sur bande magnétique. Oui, car tar c'est avant tout fait pour les bandes magnétiques (tapes archiver).

Hors ligne

#8 Le 27/08/2014, à 11:21

Pseudo supprimé

Re : peu de compression avec gzip et bzip2

7z globalement compresse mieux que les autres.

#9 Le 27/08/2014, à 11:43

jplemoine

Re : peu de compression avec gzip et bzip2

Titouan a écrit :

7z globalement compresse mieux que les autres.

sûrement. Mais si l'on compresse un fichier compressé, il ne fat pas s'attendre à des résultats mirobolants...
(fais le test avec la même image en BMP et en JPG...)


Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.

Hors ligne

#10 Le 27/08/2014, à 21:02

thimeau

Re : peu de compression avec gzip et bzip2

Merci pour vos réponses.

Donc en fait je peux guère obtenir mieux.

pingouinux : quand tu dis que tu as que tu as fait les tests avec un fichier ne contenant que des 0 ça signifie quoi.

bishop : je vais essayer 7zip mais je pense que ca ne changera pas grand chose d'après ce que j'ai compris.

tiramiseb : je pensais que l'on pouvait compresser des dossiers. Ce qui est bizarre c'est que après compression, j'ai le premier fichier avec presque la même taille que le dossier de départ.

Hors ligne

#11 Le 27/08/2014, à 21:33

tiramiseb

Re : peu de compression avec gzip et bzip2

je pensais que l'on pouvait compresser des dossiers

Certains formats font en même temps l'archivage et la compression, comme le format Zip. Les outils classiques d'UNIX appliquent le principe KISS (Keep It Simple, Stupid), dont le principe est qu'un outil fait une action. D'où l'utilisation de tar pour archiver et un autre format pour compresser.

après compression, j'ai le premier fichier avec presque la même taille que le dossier de départ.

Je n'arrive pas à voir de quelle commande tu parles.
C'est quoi "le premier fichier" et c'est quoi "le dossier de départ", par rapport aux exemples que tu as donné plus haut ?

Hors ligne

#12 Le 27/08/2014, à 21:51

pingouinux

Re : peu de compression avec gzip et bzip2

thimeau #10 a écrit :

quand tu dis que tu as que tu as fait les tests avec un fichier ne contenant que des 0 ça signifie quoi.

C'est un fichier de la même taille que le tien (9145 octets), dont tous les octets sont identiques et nuls. Le fait que tous les octets soient identiques permet un taux de compression maximal, contrairement à un fichier aléatoire (ou déjà compressé), qui ne peut pratiquement plus se réduire. Je l'ai généré ainsi :

$ dd if=/dev/zero of=ang2.odt bs=9145 count=1                # Génération
1+0 records in
1+0 records out
9145 bytes (9.1 kB) copied, 0.000151556 s, 60.3 MB/s

$ hd ang2.odt                                                # Vérification
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000023b9

Hors ligne

#13 Le 30/08/2014, à 09:32

thimeau

Re : peu de compression avec gzip et bzip2

C'est bien ce que je pensais Pingouinux. Merci.

Tiramiseb :

En fait j'ai un dossier avec pleins de fichiers à l'intérieur. Par exemple le dossier fait 300mo. Quand je compresse le dossier, au lieu de me retrouver avec une archive comme ce que j'obtiens avec un fichier, j'ai le premier fichier (donc celui qui est en premier dans l'ordre) qui prend presque la taille du dossier. Je peux ouvrir ce fichier, comme si je n'avais pas fais la commande sauf que celui-ci au lieu de mesurer 1 mo va avoir la taille du dossier c'est-à-dire 300mo.

Je viens de refaire des tests, et je me rends compte que je n'arrive plus à le faire. Le premier fichier était un PDF c'est peut être pour cela que ca fonctionnait. La en fait j'ai presque la même taille que le dossier en compressé mais je ne peux pas l'ouvrir (ce qui doit être normal).

Bref de toute façon j'ai eu les réponses que je voulais.

Merci à tous.

Hors ligne

#14 Le 30/08/2014, à 09:52

pingouinux

Re : peu de compression avec gzip et bzip2

Montre la commande que tu as lancée pour compresser le dossier. Je me demande si tu n'as pas écrasé le premier fichier avec l'archive.

Hors ligne

#15 Le 30/08/2014, à 18:18

tiramiseb

Re : peu de compression avec gzip et bzip2

Quand je compresse le dossier, au lieu de me retrouver avec une archive comme ce que j'obtiens avec un fichier, j'ai le premier fichier (donc celui qui est en premier dans l'ordre) qui prend presque la taille du dossier

Même question que pingouinux : comment fais-tu pour compresser le dossier ?

Par exemple si, dans un répertoire qui contient des fichiers nommés "a", "b" et "c" tu fais :

tar zcf *

... alors le shell remplace en toute logique par :

tar zxf a b c

« f » étant une option qui attend un paramètre (le nom du fichier destination), alors la destination devient a et ce sont les autres fichiers du répertoire (b et c) qui sont compressés là-dedans.

Hors ligne