cWebp

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'environ 60. 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 et 100. La valeur par défaut est 75.

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 valeur 100.

-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 et 100. La compression alpha sans perte est obtenue à l'aide de la valeur 100, tandis que les valeurs inférieures entraînent une compression avec pertes. La valeur par défaut est 100.

-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 et text.

É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 et 6. La valeur par défaut est 4. 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 dimensions width x height. 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 x height. Si l'un des paramètres de largeur ou de hauteur (mais pas les deux) est 0, 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é par cwebp 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 de 10, la valeur par défaut est 1. 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) et 100 (filtrage maximal). La valeur 0 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 entre 20 et 50.
-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 est 0.
-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 est 50.
-segments int
Modifiez le nombre de partitions à utiliser lors de la segmentation de l'algorithme sns. Les segments doivent être compris entre 1 et 4. La valeur par défaut est 4. 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) et 100 (dégradation complète). Les valeurs utiles sont généralement comprises entre 30 et 70 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 facteur partition_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 et 6. 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 x height.
-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 ou best, dans l'ordre croissant de complexité et de lenteur. La valeur par défaut est fast. En interne, le filtrage alpha est effectué à l'aide de quatre prédictions possibles (aucune, horizontale, verticale, gradient). Le mode best essaie chaque mode l'un après l'autre et choisit celui qui donne la taille la plus petite. Le mode fast 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 ou 1. L'algorithme 0 indique qu'il n'y a pas de compression, 1 utilise le format WebP sans perte pour la compression. La valeur par défaut est 1.
-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 ou graph.
-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 est none.

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

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).