cWebP

Nombre

cwebp: Comprime un archivo de imagen en un archivo WebP.

Sinopsis

cwebp [options] input_file -o output_file.webp

Descripción

cwebp comprime una imagen con el formato WebP. El formato de entrada puede ser PNG, JPEG, TIFF, WebP o muestras sin procesar de Y'CbCr. Nota: No se admiten los archivos PNG y WebP animados.

Opciones

Las opciones básicas son las siguientes:

-o string
Especifica el nombre del archivo WebP de salida. Si se omite, cwebp realizará la compresión, pero solo informará estadísticas. Si usas “-” como nombre de salida, el resultado se dirigirá a “stdout”.
-- string
Especifica de forma explícita el archivo de entrada. Por ejemplo, esta opción es útil si el archivo de entrada comienza con un “-”. Esta opción debe aparecer como last. Se ignorará cualquier otra opción posterior.
-h, -help
Breve resumen de uso.
-H, -longhelp
Un resumen de todas las opciones posibles
-version
Imprime el número de versión (como major.minor.revision) y sal.
-lossless
Codifica la imagen sin pérdidas. En el caso de las imágenes con un área completamente transparente, los valores de píxeles invisibles (R/G/B o Y/U/V) se conservarán solo si se usa la opción -exact.
-near_lossless int
Especifica el nivel de procesamiento previo de imágenes casi sin pérdida. Esta opción ajusta los valores de píxeles para ayudar a la compresibilidad, pero tiene un impacto mínimo en la calidad visual. Activa automáticamente el modo de compresión sin pérdida. El rango es de 0 (máximo de procesamiento previo) a 100 (sin procesamiento previo, el valor predeterminado). El valor habitual es de aproximadamente 60. Ten en cuenta que, en ocasiones, las pérdidas con -q 100 pueden generar mejores resultados.
-q float

Especifica el factor de compresión para los canales RGB entre 0 y 100. El valor predeterminado es 75.

En el caso de la compresión con pérdida (predeterminado), un factor pequeño produce un archivo más pequeño con menor calidad. La mejor calidad se logra usando un valor de 100.

En el caso de la compresión sin pérdidas (especificada por la opción -lossless), un factor pequeño permite una mayor velocidad de compresión, pero produce un archivo más grande. La compresión máxima se logra usando un valor de 100.

-z int

Activa el modo de compresión lossless con el nivel especificado entre 0 y 9, en el que el nivel 0 es el más rápido y el 9 el más lento. El modo rápido produce archivos más grandes que los más lentos. Un buen valor predeterminado es -z 6. Esta opción es en realidad un atajo para algunos parámetros de configuración predefinidos de calidad y método. Si luego se usan las opciones -q o -m, se invalidará el efecto de esta opción.

-alpha_q int

Especifica el factor de compresión para la compresión alfa entre 0 y 100. La compresión de alfa sin pérdida se logra usando un valor de 100, mientras que los valores más bajos generan una compresión con pérdida. El valor predeterminado es 100.

-preset string

Especifica un conjunto de parámetros predefinidos para adaptarse a un tipo particular de material de origen. Los valores posibles son default, photo, picture, drawing, icon y text.

Dado que -preset reemplaza los valores de los otros parámetros (excepto -q), es preferible que esta opción aparezca primero en el orden de los argumentos.

-m int

Especifica el método de compresión que usarás. Este parámetro controla la compensación entre la velocidad de codificación y el tamaño y la calidad del archivo comprimido. Los valores posibles varían de 0 a 6. El valor predeterminado es 4. Cuando se usan valores más altos, el codificador pasará más tiempo inspeccionando posibilidades de codificación adicionales y decidirá el aumento de calidad. Un valor más bajo puede generar un tiempo de procesamiento más rápido a expensas de un tamaño de archivo más grande y una menor calidad de compresión.

-crop x_position y_position width height

Recorta la fuente a un rectángulo con la esquina superior izquierda en las coordenadas (x_position, y_position) y el tamaño de width x height. Esta área de recorte debe estar contenida por completo dentro del rectángulo de origen. Nota: El recorte se aplica antes de cualquier escalamiento.

-resize width height

Cambia el tamaño de la fuente a un rectángulo con el tamaño de width x height. Si alguno de los parámetros de ancho o alto es 0 (pero no ambos), el valor se calculará y preservará la relación de aspecto. Nota: El escalamiento se aplica después del recorte.

-mt

Si es posible, usa varios subprocesos para la codificación.

-low_memory

Para reducir el uso de memoria de la codificación con pérdidas, ahorra cuatro veces el tamaño comprimido (por lo general). De esta manera, la codificación será más lenta y el resultado será un poco diferente en tamaño y distorsión. Esta marca solo es efectiva para los métodos 3 y posteriores, y está desactivada de forma predeterminada. Ten en cuenta que dejar esta marca desactivada tendrá algunos efectos secundarios en el flujo de bits, ya que fuerza ciertas funciones de flujo de bits, como la cantidad de particiones (forzadas a 1). Ten en cuenta que cwebp imprime un informe más detallado del tamaño del flujo de bits cuando usas esta opción.

Opciones con pérdida

Estas opciones solo son efectivas cuando se realiza la codificación con pérdida (la configuración predeterminada, con o sin alfa).

-size int
Especifica un tamaño objetivo (en bytes) que se intentará alcanzar para el resultado comprimido. El compresor realizará varias pasadas de codificación parcial para acercarse lo más posible a este objetivo. Si se usan -size y -psnr, prevalecerá el valor -size.
-psnr float
Especifica un PSNR objetivo (en dB) para intentar alcanzar el resultado comprimido. El compresor realizará varias pasadas de codificación parcial para acercarse lo más posible a este objetivo. Si se usan -size y -psnr, prevalecerá el valor -size.
-pass int
Establece una cantidad máxima de pases para usar durante la dicotomía que usan las opciones -size o -psnr. El valor máximo es 10 y el predeterminado es 1. Si se usaron las opciones -size o -psnr, pero no se especificó -pass, se usará un valor predeterminado de "6" Si se especifica -pass, pero no -size ni -psnr, se usará un PSNR objetivo de 40 dB.
-af
Activa el filtro automático. Este algoritmo dedicará más tiempo a optimizar la intensidad del filtrado para alcanzar una calidad bien equilibrada.
-jpeg_like
Cambia la asignación de parámetros internos para que coincida mejor con el tamaño esperado de compresión JPEG. Por lo general, esta marca producirá un archivo de salida de un tamaño similar a su equivalente JPEG (para la misma configuración de -q), pero con menos distorsión visual.

Opciones avanzadas:

-f int
Especifica la seguridad del filtro de desbloqueo, entre 0 (sin filtro) y 100 (filtrado máximo). Un valor de 0 desactivará cualquier filtro. Un valor más alto aumentará la intensidad del proceso de filtrado aplicado después de la decodificación de la imagen. Cuanto más alto sea el valor, más suave será la imagen. Por lo general, los valores típicos se encuentran en el rango de 20 a 50.
-sharpness int
Especifica la nitidez del filtro (si se usa). El rango es de 0 (más nítido) a 7 (menos pronunciado). El valor predeterminado es 0.
-strong
Utiliza un filtro estricto (si se usa un filtro gracias a la opción -f). El filtrado seguro está activado de forma predeterminada.
-nostrong
Inhabilita el filtrado estricto (si se usa un filtro gracias a la opción -f) y usa el filtrado simple en su lugar.
-sharp_yuv
Usa una conversión YUV más precisa y nítida de RGB->YUV si es necesario. Ten en cuenta que este proceso es más lento que la conversión predeterminada de RGB->YUV "rápida".
-sns int
Especifica la amplitud de la forma del ruido espacial. La forma del ruido espacial (sn abreviado) se refiere a una colección general de algoritmos integrados que se usan para decidir qué área de la imagen debe usar relativamente menos bits y qué otro lado transferirlos mejor. El rango posible va de 0 (el algoritmo está desactivado) a 100 (el efecto máximo). El valor predeterminado es 50.
-segments int
Cambia el número de particiones que se usarán durante la segmentación del algoritmo sns. Los segmentos deben estar dentro del rango de 1 a 4. El valor predeterminado es 4. Esta opción no tiene efecto para los métodos 3 y posteriores, a menos que se use -low_memory.
-partition_limit int
Para disminuir la calidad, limita la cantidad de bits que usan algunos macrobloques. El rango es de 0 (sin degradación, el valor predeterminado) a 100 (degradación completa). Los valores útiles suelen estar entre 30 y 70 para imágenes moderadamente grandes. En el formato VP8, la llamada partición de control tiene un límite de 512,000 y se usa para almacenar la siguiente información: si el macrobloque se omite, a qué segmento pertenece, si está codificado en modo intra 4 × 4 o intra 16 × 16 y, por último, los modos de predicción que se usarán para cada uno de los subbloques. En el caso de una imagen muy grande, 512k solo deja espacio para unos pocos bits por macrobloque de 16 x 16. El mínimo absoluto es 4 bits por macrobloque. La información de omisión, segmento y modo puede consumir casi todos estos 4 bits (aunque es poco probable), lo que resulta problemático para imágenes muy grandes. El factor partition_limit controla la frecuencia con la que se usará el modo más costoso (en 4×4). Esto es útil en caso de que se alcance el límite de 512,000 y se muestre el siguiente mensaje: Código de error: 6 (PARTITION0_OVERFLOW: Partition #0 es demasiado grande para admitir 512k). Si el uso de -partition_limit no es suficiente para cumplir con la restricción de 512k, se deben usar menos segmentos a fin de guardar más bits de encabezado por macrobloque. Consulta la opción -segments. Ten en cuenta que las opciones -m y -q también influyen en las decisiones del codificador y en su capacidad para alcanzar este límite.

Opciones de registro

Estas opciones controlan el nivel de salida:

-v
Imprime información adicional (en particular, el tiempo de codificación).
-print_psnr
Calcula y, luego, informa el PSNR (proporción pico-señal/ruido) promedio.
-print_ssim
Calcula y también informa el SSIM (métrica de similitud estructural; consulta https://en.wikipedia.org/wiki/SSIM para obtener más detalles).
-print_lsim
Calcula y, luego, informa la métrica de similitud local (la suma del error más bajo entre los vecinos de píxeles ubicados).
-progress
Informa el progreso de la codificación en porcentajes.
-quiet
No imprimas nada.
-short
Solo imprime información breve (tamaño del archivo de salida y PSNR) para realizar pruebas.
-map int
Mapa ASCII adicional de salida de la información de codificación. Los valores posibles del mapa van de 1 a 6. Esto solo sirve para facilitar la depuración.

Opciones adicionales

Las opciones más avanzadas son las siguientes:

-s width height
Especifica que el archivo de entrada en realidad consta de muestras de Y'CbCr sin procesar según la recomendación ITU-R BT.601, en formato lineal 4:2:0. El plano de luma tiene un tamaño de width × height.
-pre int
Especifica algunos pasos de procesamiento previo. El uso de un valor de 2 activará la interpolación pseudoaleatoria dependiente de la calidad durante la conversión RGBA->YUVA (solo compresión con pérdida).
-alpha_filter string
Especifica el método de filtrado predictivo para el plano alfa. Uno de none, fast o best, en orden creciente de complejidad y lentitud. La cantidad predeterminada es fast. De forma interna, el filtrado alfa se realiza con cuatro predicciones posibles (ninguna, horizontal, vertical, gradiente). El modo best probará cada uno de ellos a la vez y elegirá el que proporcione el tamaño más pequeño. El modo fast solo intentará formar una suposición a priori sin probar todos los modos.
-alpha_method int
Especifica el algoritmo que se usa para la compresión alfa: 0 o 1. El algoritmo 0 no denota compresión, 1 usa el formato WebP sin pérdida para la compresión. El valor predeterminado es 1.
-exact
Conserva los valores RGB en el área transparente. El valor predeterminado está desactivado para ayudar a la compresibilidad.
-blend_alpha int
Esta opción combina el canal alfa (si está presente) con la fuente usando el color de fondo especificado en hexadecimal como 0xrrggbb. Luego, el canal alfa se restablece al valor opaco 255.
-noalpha
Si usas esta opción, se descartará el canal alfa.
-hint string
Especifica la sugerencia sobre el tipo de imagen de entrada. Los valores posibles son photo, picture o graph.
-metadata string

Una lista separada por comas de metadatos para copiar de la entrada a la salida, si está presente. Valores válidos: all, none, exif, icc y xmp. El valor predeterminado es none.

Ten en cuenta que es posible que cada formato de entrada no admita todas las combinaciones.

-noasm

Inhabilita todas las optimizaciones de ensamblado.

Errores

Ejemplos

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

Autores

cwebp es parte de libwebp y lo escribió el equipo de WebP. El árbol de fuentes más reciente está disponible en https://chromium.googlesource.com/webm/libwebp/.

Esta página del manual se escribió para el proyecto Debian (y otras personas pueden usarla).