Nom
cwebp
: compresser un fichier image dans un fichier WebP
Synopsis
cwebp [options] input_file -o output_file.webp
Description
cwebp
compresse une image au format WebP. Le format d'entrée peut être des échantillons PNG, JPEG, TIFF, WebP ou des échantillons Y'CbCr bruts.
Remarque: Les fichiers animés PNG et WebP ne sont pas acceptés.
Options
Les options de base sont les suivantes:
-o string
- Spécifiez le nom du fichier WebP de sortie. Si cette valeur est omise,
cwebp
effectue une compression, mais ne génère que des statistiques. Si vous utilisez "-" comme nom de sortie, la sortie sera dirigée vers "stdout". -- string
- Spécifiez explicitement le fichier d'entrée. Cette option est utile si le fichier d'entrée commence par "-", par exemple. Cette option doit apparaître
last
. Toutes les autres options par la suite seront ignorées. -h, -help
- Bref résumé de l'utilisation.
-H, -longhelp
- Résumé de toutes les options possibles.
-version
- Imprimez le numéro de version (maj.minor.revision), puis quittez l'application.
-lossless
- Encodez l'image sans aucune perte. Pour les images avec une zone totalement transparente, les valeurs de pixels invisibles (R/G/B ou Y/U/V) ne sont conservées que si l'option
-exact
est utilisée. -near_lossless int
- Spécifiez le niveau de prétraitement des images quasiment sans perte. Cette option ajuste les valeurs en pixels pour favoriser la compressibilité, mais a un impact minimal sur la qualité visuelle. Il déclenche automatiquement le mode de compression sans perte.
La plage va de
0
(prétraitement maximal) à100
(aucun prétraitement, la valeur par défaut). La valeur typique est d'environ60
. Notez que l'utilisation d'-q 100
avec pertes peut parfois donner de meilleurs résultats. -q float
Indiquez le facteur de compression pour les canaux RVB compris entre
0
et100
. La valeur par défaut est75
.En cas de compression avec pertes (par défaut), un petit facteur produit un fichier plus petit et de moins bonne qualité. La meilleure qualité est obtenue en utilisant la valeur
100
.En cas de compression sans perte (spécifiée par l'option
-lossless
), un faible facteur permet d'accélérer la compression, mais génère un fichier plus volumineux. La compression maximale est obtenue en utilisant la valeur100
.-z int
Activez le mode de compression
lossless
en spécifiant un niveau compris entre 0 et 9, le niveau 0 correspondant au plus rapide et au niveau 9 le plus lent. Le mode rapide génère des fichiers plus volumineux que les fichiers plus lents.-z 6
est une valeur par défaut appropriée. Cette option est en fait un raccourci pour certains paramètres prédéfinis de qualité et de méthode. Si les options-q
ou-m
sont utilisées par la suite, elles invalideront l'effet de cette option.-alpha_q int
Spécifiez le facteur de compression pour la compression alpha entre
0
et100
. La compression alpha sans perte est obtenue à l'aide de la valeur100
, tandis que les valeurs inférieures entraînent une compression avec pertes. La valeur par défaut est100
.-preset string
Spécifiez un ensemble de paramètres prédéfinis pour s'adapter à un type particulier de matière source. Les valeurs possibles sont
default
,photo
,picture
,drawing
,icon
ettext
.Étant donné que
-preset
écrase les valeurs des autres paramètres (à l'exception de-q
), cette option doit de préférence apparaître en premier dans l'ordre des arguments.-m int
Spécifiez la méthode de compression à utiliser. Ce paramètre contrôle le compromis entre la vitesse d'encodage et la taille et la qualité du fichier compressé. Les valeurs possibles sont comprises entre
0
et6
. La valeur par défaut est4
. Lorsque des valeurs plus élevées sont utilisées, l'encodeur passe plus de temps à examiner les possibilités d'encodage supplémentaires et à décider de l'amélioration de la qualité. Une valeur inférieure peut réduire le temps de traitement, au détriment d'une taille de fichier plus importante et d'une qualité de compression inférieure.-crop x_position y_position width height
Recadrez la source en un rectangle dont l'angle supérieur gauche correspond aux coordonnées (
x_position
,y_position
) et aux dimensionswidth
xheight
. Cette zone de recadrage doit être entièrement contenue dans le rectangle source. Remarque: Le recadrage est appliqué avant toute mise à l'échelle.-resize width height
Redimensionnez la source en un rectangle de taille
width
xheight
. Si l'un des paramètres de largeur ou de hauteur (mais pas les deux) est0
, la valeur est calculée en conservant les proportions. Remarque: L'ajustement est appliqué après le recadrage.-mt
Si possible, utilisez le multithreading pour l'encodage.
-low_memory
Réduisez l'utilisation de la mémoire liée à l'encodage avec pertes en économisant (généralement) quatre fois la taille compressée. Cela ralentit l'encodage, et la taille et la distorsion de la sortie sont légèrement différentes. Cet indicateur n'est efficace que pour les méthodes 3 et ultérieures et est désactivé par défaut. Notez que le fait de laisser cette option désactivée aura des effets secondaires sur le flux de bits: elle force certaines fonctionnalités de flux de bits, telles que le nombre de partitions (forcé à
1
). Notez qu'un rapport plus détaillé sur la taille du flux de bits est imprimé parcwebp
lorsque vous utilisez cette option.
Options avec pertes
Ces options ne sont efficaces que si vous effectuez un encodage avec pertes (par défaut, avec ou sans alpha).
-size int
- Spécifiez une taille cible (en octets) à atteindre pour obtenir la sortie compressée. Le compresseur effectue plusieurs passes d'encodage partiel afin de se rapprocher le plus possible de cette cible. Si
-size
et-psnr
sont tous les deux utilisés, la valeur-size
prévaut. -psnr float
- Spécifiez un PSNR cible (en dB) à atteindre pour obtenir la sortie compressée.
Le compresseur effectue plusieurs passes d'encodage partiel afin de se rapprocher le plus possible de cette cible. Si
-size
et-psnr
sont tous deux utilisés, la valeur-size
prévaut. -pass int
- Définissez un nombre maximal de cartes à utiliser pendant la dichotomie utilisée par les options
-size
ou-psnr
. La valeur maximale est de10
, la valeur par défaut est1
. Si les options-size
ou-psnr
ont été utilisées, mais que-pass
n'a pas été spécifié, une valeur par défaut de "6" sera utilisée. Si-pass
est spécifié, mais que ni-size
ni-psnr
ne le sont, un PSNR cible de 40 dB sera utilisé. -af
- Active le filtrage automatique. Cet algorithme prend du temps supplémentaire à optimiser l'intensité du filtrage pour obtenir une qualité bien équilibrée.
-jpeg_like
- Modifiez le mappage des paramètres internes pour qu'il corresponde mieux à la taille attendue de la compression JPEG. Cet indicateur produira généralement un fichier de sortie d'une taille semblable à son équivalent JPEG (pour le même paramètre
-q
), mais avec moins de distorsion visuelle.
Options avancées :
-f int
- Spécifiez l'intensité du filtre de déblocage, en choisissant une valeur comprise entre
0
(aucun filtrage) et100
(filtrage maximal). La valeur0
désactivera tout filtrage. Une valeur plus élevée augmente la puissance du processus de filtrage appliqué après le décodage de l'image. Plus la valeur est élevée, plus l'image est fluide. Les valeurs habituelles sont généralement comprises entre20
et50
. -sharpness int
- Spécifiez la netteté du filtrage (le cas échéant). La plage va de
0
(la plus nette) à7
(la moins forte). La valeur par défaut est0
. -strong
- Utilisez un filtrage élevé (si vous utilisez le filtrage avec l'option
-f
). Le filtrage strict est activé par défaut. -nostrong
- Désactivez le filtrage fort (si le filtrage est utilisé grâce à l'option
-f
) et utilisez un filtrage simple à la place. -sharp_yuv
- Si nécessaire, utilisez une conversion RVB->YUV plus précise et plus nette. Notez que ce processus est plus lent que la conversion RVB->YUV "rapide" par défaut.
-sns int
- Spécifiez l'amplitude de la mise en forme du bruit spatial. La mise en forme du bruit spatial (ou sns) fait référence à un ensemble général d'algorithmes intégrés utilisés pour déterminer quelle zone de l'image doit utiliser relativement moins de bits, et vers quelle autre zone il faut mieux transférer ces bits. La plage possible va de
0
(algorithme désactivé) à100
(effet maximal). La valeur par défaut est50
. -segments int
- Modifiez le nombre de partitions à utiliser lors de la segmentation de l'algorithme sns. Les segments doivent être compris entre
1
et4
. La valeur par défaut est4
. Cette option n'a aucun effet pour les méthodes 3 et ultérieures, sauf si-low_memory
est utilisé. -partition_limit int
- Dégrader la qualité en limitant le nombre de bits utilisés par certains macroblocs
La plage est comprise entre
0
(aucune dégradation, valeur par défaut) et100
(dégradation complète). Les valeurs utiles sont généralement comprises entre30
et70
pour les images de taille moyenne. Au format VP8, la partition de contrôle a une limite de 512 000 et permet de stocker les informations suivantes: si le macrobloc est ignoré, le segment auquel il appartient, s'il est codé en mode intra 4x4 ou intra 16x16, et enfin les modes de prédiction à utiliser pour chacun des sous-blocs. Pour une très grande image, 512 Ko ne laisse de place que pour quelques bits par macrobloc 16 x 16. Le minimum absolu est de 4 bits par macrobloc. Les informations de saut, de segmentation et de mode peuvent utiliser presque tous ces quatre bits (bien que cela soit peu probable), ce qui est problématique pour les images très volumineuses. Le facteurpartition_limit
contrôle la fréquence d'utilisation du mode le plus coûteux (intra 4x4). Cela est utile si la limite de 512 000 utilisateurs est atteinte et que le message suivant s'affiche: Code d'erreur: 6 (PARTITION0_OVERFLOW: Partition #0 is trop big to fit 512k). Si l'utilisation de-partition_limit
ne suffit pas pour respecter la contrainte de 512 000, il est préférable d'utiliser moins de segments afin d'économiser plus de bits d'en-tête par macrobloc. Consultez l'option-segments
. Notez que les options-m
et-q
influencent également les décisions de l'encodeur et sa capacité à atteindre cette limite.
Options de journalisation
Ces options contrôlent le niveau de sortie:
-v
- Imprimer des informations supplémentaires (le temps d'encodage en particulier).
-print_psnr
- Calculez et signalez le PSNR (rapport signal/bruit de pic) moyen.
-print_ssim
- Calculer et générer un rapport SSIM (métrique de similarité structurelle) moyen (consultez https://en.wikipedia.org/wiki/SSIM pour en savoir plus).
-print_lsim
- Calculer et générer la métrique de similarité locale (somme de l'erreur la plus faible parmi les voisins de pixels colocalisés).
-progress
- Signale la progression de l'encodage en pourcentage.
-quiet
- N'imprimez rien.
-short
- N'imprimez que de brèves informations (taille du fichier de sortie et PSNR) à des fins de test.
-map int
- Générez une carte ASCII supplémentaire des informations d'encodage. Les valeurs de mappage possibles sont comprises entre
1
et6
. L'objectif est uniquement de faciliter le débogage.
Options supplémentaires
Les options plus avancées sont les suivantes:
-s width height
- Spécifiez que le fichier d'entrée est réellement constitué d'échantillons Y'CbCr bruts, conformément à la recommandation ITU-R BT.601, au format linéaire 4:2:0. Les dimensions du plan luma sont de
width
xheight
. -pre int
- Spécifiez quelques étapes de prétraitement. L'utilisation de la valeur
2
déclenche un tramage pseudo-aléatoire dépendant de la qualité lors de la conversion RVBA->YUVA (compression avec perte uniquement). -alpha_filter string
- Spécifiez la méthode de filtrage prédictif pour le plan alpha. L'une des valeurs suivantes :
none
,fast
oubest
, dans l'ordre croissant de complexité et de lenteur. La valeur par défaut estfast
. En interne, le filtrage alpha est effectué à l'aide de quatre prédictions possibles (aucune, horizontale, verticale, gradient). Le modebest
essaie chaque mode l'un après l'autre et choisit celui qui donne la taille la plus petite. Le modefast
essaie simplement de former une estimation a priori sans tester tous les modes. -alpha_method int
- Spécifiez l'algorithme utilisé pour la compression alpha:
0
ou1
. L'algorithme0
indique qu'il n'y a pas de compression,1
utilise le format WebP sans perte pour la compression. La valeur par défaut est1
. -exact
- Préserve les valeurs RVB dans la zone transparente. Pour faciliter la compression, la valeur par défaut est désactivée.
-blend_alpha int
- Cette option fusionne le canal alpha (le cas échéant) avec la source en utilisant la couleur d'arrière-plan spécifiée en hexadécimal comme 0xrrggbb. Le canal alpha est ensuite réinitialisé sur la valeur opaque
255
. -noalpha
- Si vous utilisez cette option, la version alpha sera supprimée.
-hint string
- Fournit des indications concernant le type d'image d'entrée. Les valeurs possibles sont
photo
,picture
ougraph
. -metadata string
Liste de métadonnées à copier, séparées par une virgule, de l'entrée vers la sortie, le cas échéant. Valeurs valides:
all
,none
,exif
,icc
,xmp
. La valeur par défaut estnone
.Notez que les formats d'entrée ne sont pas forcément compatibles avec toutes les combinaisons.
-noasm
Désactivez toutes les optimisations d'assemblage.
Bugs
Veuillez signaler tous les bugs dans l'outil de suivi des problèmes: https://bugs.chromium.org/p/webp
Les correctifs sont les bienvenus ! Pour commencer, consultez cette page: https://www.webmproject.org/code/contribute/submitting-patches/.
Exemples
cwebp -q 50 -lossless picture.png -o picture_lossless.webp
cwebp -q 70 picture_with_alpha.png -o picture_with_alpha.webp
cwebp -sns 70 -f 50 -size 60000 picture.png -o picture.webp
cwebp -o picture.webp -- ---picture.png
Auteurs
cwebp
fait partie de libwebp
et a été rédigé par l'équipe WebP.
La dernière arborescence source est disponible à l'adresse https://chromium.googlesource.com/webm/libwebp/.
Cette page de manuel a été écrite pour le projet Debian (et peut être utilisée par d'autres personnes).