Nom
cwebp
: compresse un fichier image en fichier WebP
Synopsis
cwebp [options] input_file -o output_file.webp
Description
cwebp
compresse une image à l'aide du format WebP. Le format d'entrée peut être PNG, JPEG, TIFF, WebP ou des échantillons Y'CbCr bruts.
Remarque: Les fichiers PNG et WebP animés ne sont pas acceptés.
Options
Les options de base sont les suivantes :
-o string
- Indiquez le nom du fichier WebP de sortie. Si elle est omise,
cwebp
effectue la compression, mais ne fournit que des statistiques. Si vous utilisez "-" comme nom de sortie, la sortie sera redirigée vers "stdout". -- string
- Spécifiez explicitement le fichier d'entrée. Cette option est utile si l'entrée
le fichier commence par un tiret par exemple. Cette option doit apparaître
last
. Toutes les autres options seront ignorées. -h, -help
- Un bref résumé d'utilisation.
-H, -longhelp
- Résumé de toutes les options possibles.
-version
- Imprimez le numéro de version (au format major.minor.revision), puis quittez.
-lossless
- Encodez l'image sans aucune perte. Pour les images comportant une zone entièrement transparente, les valeurs de pixel 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 de pixel pour faciliter la compressibilité, mais a un impact minimal sur la qualité visuelle. Il déclenche automatiquement le mode de compression sans perte.
La plage est comprise entre
0
(prétraitement maximal) et100
(aucun prétraitement, valeur par défaut). La valeur typique est d'environ60
. Notez que l'opérateur-q 100
génère des pertes. peut parfois donner de meilleurs résultats. -q float
Spécifiez le facteur de compression pour les canaux RVB compris entre
0
et100
. La valeur par défaut est75
.En cas de compression avec pertes (option par défaut), un facteur plus faible produit une compression fichier de qualité inférieure. La meilleure qualité est obtenue en utilisant une valeur de
100
En cas de compression sans perte (spécifiée par l'option
-lossless
), un facteur faible permet d'accélérer la vitesse de compression, mais produit un fichier plus volumineux. La compression maximale est obtenue avec une valeur de100
.-z int
Activez le mode de compression
lossless
en spécifiant un niveau compris entre 0 et 9, le niveau 0 étant le plus rapide, 9 le plus lent. Le mode rapide produit une taille de fichier plus importante que les modes plus lents. La valeur par défaut recommandée est-z 6
. Cette option est en fait un raccourci vers certains paramètres prédéfinis de qualité et de la méthode. Si vous utilisez par la suite les options-q
ou-m
, invalider l'effet de cette option.-alpha_q int
Spécifiez le facteur de compression alpha compris entre
0
et100
La compression sans perte de la valeur alpha 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 répondre à un type particulier de à partir de données sources. Les valeurs possibles sont les suivantes :
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
. Si plus élevé sont utilisées, l'encodeur passe plus de temps à inspecter les possibilités d'encodage et de décider du gain de qualité. Une valeur plus faible peut entraîner un temps de traitement plus rapide, mais au détriment de la taille de fichier et de la qualité de compression.-crop x_position y_position width height
Recadrer la source en un rectangle avec un coin supérieur gauche aux coordonnées (
x_position
,y_position
) et la taillewidth
xheight
. Ce recadrage doit être entièrement contenue dans le rectangle source. Remarque: Le recadrage est appliquée avant tout scaling.-resize width height
Redimensionnez la source en un rectangle de
width
xheight
. Si l'un des paramètres de largeur ou de hauteur est0
(mais pas les deux), la valeur est calculée en conservant le format. Remarque: Le scaling est appliqué après le recadrage.-mt
Si possible, utilisez le traitement multithread pour l'encodage.
-low_memory
Réduisez l'utilisation de la mémoire de l'encodage avec perte en économisant quatre fois la taille compressée (généralement). L'encodage sera ainsi plus lent, et la taille et la distorsion de la sortie seront légèrement différentes. Cet indicateur n'est valable que pour méthodes 3 et ultérieures. Il est désactivé par défaut. Notez que si vous laissez cet indicateur désactivé, cela aura des effets secondaires sur le flux de bits : il force certaines fonctionnalités du flux de bits, comme le nombre de partitions (forcé sur
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 perte
Ces options ne sont efficaces que lors de l'encodage avec pertes (valeur par défaut, ou sans la version alpha).
-size int
- Spécifiez une taille cible (en octets) à atteindre pour la sortie compressée. Le compresseur effectue plusieurs passes
d'encodage partiel dans
pour vous rapprocher le plus possible de cet objectif. Si
-size
et-psnr
sont utilisées, la valeur-size
prévaudra. -psnr float
- Spécifiez un paramètre PSNR cible (en dB) à atteindre pour la sortie compressée.
Le compresseur effectue plusieurs passages
d'encodage partiel afin d'obtenir
le plus près possible de cet objectif. Si vous utilisez à la fois
-size
et-psnr
, La valeur-size
prévaudra. -pass int
- Définir le nombre maximal de cartes à utiliser lors de la dichotomie liée aux options
-size
ou-psnr
. La valeur maximale est10
, 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 passes est utilisée. Si-pass
est spécifié, mais que ni-size
, ni-psnr
, une valeur PSNR cible de 40 dB sera utilisée. -af
- Active le filtrage automatique. Cet algorithme consacrera plus de temps à optimiser l'intensité du filtrage pour obtenir une qualité équilibrée.
-jpeg_like
- Modifiez le mappage des paramètres internes pour mieux correspondre à la taille attendue de la compression JPEG. Cet indicateur génère généralement un fichier de sortie de taille similaire à 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, entre
0
(pas de filtrage) et100
(filtrage maximal). La valeur0
désactive tout filtrage. Une valeur plus élevée augmente l'intensité du processus de filtrage appliqué après le décodage de l'image. Plus la valeur est élevée, plus l'image est fluide apparaît. Les valeurs habituelles sont généralement comprises entre20
et50
. -sharpness int
- Indiquez le niveau de netteté du filtrage (le cas échéant). La plage est comprise entre
0
(plus nette) et7
(moins nette). La valeur par défaut est0
. -strong
- Utiliser un filtrage strict (si le filtrage est utilisé grâce à l'option
-f
). Le filtrage avancé est activé par défaut. -nostrong
- Désactivez le filtrage fort (si le filtrage est utilisé à l'aide du
-f
). option) et utilisez un filtrage simple à la place. -sharp_yuv
- Utilisez une conversion RVB->YUV plus précise et plus nette. Notez que ce processus est plus lent que la conversion RGB->YUV "rapide" par défaut.
-sns int
- Spécifiez l'amplitude de mise en forme du bruit spatial. La mise en forme du bruit spatial (ou SNS, pour "spatial noise shaping") désigne 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 où transférer ces bits plus efficacement. La plage possible va de
0
(l'algorithme est désactivé) à100
(effet maximal). La valeur par défaut est50
. -segments int
- Modifier le nombre de partitions à utiliser lors de la segmentation du réseau
algorithme. 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és. -partition_limit int
- Dégrade la qualité en limitant le nombre de bits utilisés par certains macroblocs.
La plage est comprise entre
0
(aucune dégradation, la 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. Dans le format VP8, la partition de contrôle a une limite de 512 ko et sert à stocker les informations suivantes : si le macrobloc est ignoré, à quel segment il appartient, s'il est encodé 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, la taille 512 Ko ne laisse de la place que quelques bits par Macroblock 16 x 16. Le minimum absolu est de 4 bits par macroblock. Les informations de saut, de segment et de mode peuvent utiliser presque tous ces quatre bits (bien que ce ne soit pas le cas), ce qui est problématique pour les images très grandes. Le facteurpartition_limit
contrôle la fréquence d'utilisation du mode le plus coûteux en bits (intra 4x4). Cette valeur est utile si la limite est atteinte (512 000). et le message suivant s'affiche: Code d'erreur: 6 (PARTITION0_OVERFLOW: la partition 0 est trop grande pour contenir 512 ko.) Si l'utilisation de-partition_limit
n'est pas suffisante pour respecter la contrainte de 512 ko, il est recommandé 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 (en particulier le temps d'encodage).
-print_psnr
- Calculer et générer le rapport PSNR moyen
-print_ssim
- Calculer la métrique de similarité structurelle (SSIM) moyenne et générer un rapport : voir https://en.wikipedia.org/wiki/SSIM pour en savoir plus).
-print_lsim
- Calculer et signaler la métrique de similarité locale (somme de l'erreur la plus faible parmi les pixels voisins colocalisés).
-progress
- Signale la progression de l'encodage en pourcentage.
-quiet
- N'imprime rien.
-short
- N'imprimer que de brèves informations (taille du fichier de sortie et PSNR) à des fins de test finalités.
-map int
- Générer une carte ASCII supplémentaire des informations d'encodage Les valeurs de carte possibles vont de
1
à6
. Cette option n'est destinée qu'à faciliter le débogage.
Options supplémentaires
Les options plus avancées sont les suivantes :
-s width height
- Indique que le fichier d'entrée est constitué d'échantillons de Y'CbCr bruts.
conformément à la recommandation ITU-R BT.601, au format linéaire 4:2:0. Le plan de luminosité a une taille de
width
xheight
. -pre int
- Spécifiez des étapes de prétraitement. La valeur
2
déclenche Traçage 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.
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é prédictions possibles (aucun, horizontal, vertical, dégradé). Le modebest
essaiera chaque mode à tour de rôle et sélectionnera celui qui donne la taille la plus petite. Le modefast
tente 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
n'indique aucune compression,1
utilise le format WebP sans perte pour la compression. La valeur par défaut est1
. -exact
- Conserve les valeurs RVB dans la zone transparente. Par défaut, elle est désactivée pour faciliter la compressibilité.
-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. La couche alpha
Le canal est ensuite réinitialisé sur la valeur opaque
255
. -noalpha
- L'utilisation de cette option supprime le canal alpha.
-hint string
- Spécifiez l'indication sur le type d'image d'entrée. Les valeurs possibles sont
photo
,picture
ougraph
. -metadata string
Liste de métadonnées à copier de l'entrée vers la sortie, le cas échéant, séparées par une virgule. Valeurs valides:
all
,none
,exif
,icc
,xmp
. La valeur par défaut estnone
.Notez que chaque format d'entrée n'est pas compatible avec toutes les combinaisons.
-noasm
Désactivez toutes les optimisations d'assemblage.
Bugs
Veuillez signaler tous les bugs dans Issue Tracker: https://issues.webmproject.org.
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é écrit par l'équipe WebP.
L'arborescence source la plus récente est disponible sur la page
https://chromium.googlesource.com/webm/libwebp/
Cette page de manuel a été rédigée pour le projet Debian (et peut être utilisée par autres).