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 en 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. Usar "-" como nombre de salida dirigirá la salida 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 “-”. Esta opción debe aparecer como last. Se ignorará cualquier otra opción posterior.
-h, -help
Un 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 cierra.
-lossless
Codifica la imagen sin ninguna pérdida. 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 compresión, pero tiene un impacto mínimo en la calidad visual. Activa automáticamente el modo de compresión sin pérdidas. El rango es de 0 (procesamiento previo máximo) a 100 (sin procesamiento previo, el valor predeterminado). El valor típico es de aproximadamente 60. Ten en cuenta que, a veces, una pérdida con -q 100 puede 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 una compresión sin pérdida (especificada por la opción -lossless), un factor pequeño permite una velocidad de compresión más rápida, 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 de mayor tamaño que los más lentos. Un buen valor predeterminado es -z 6. En realidad, esta opción es un atajo para algunas configuraciones predefinidas de calidad y método. Si luego se usan las opciones -q o -m, se invalidarán 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 sin pérdida de alfa se logra usando un valor de 100, mientras que los valores más bajos dan como resultado una compresión con pérdida. El valor predeterminado es 100.

-preset string

Especifica un conjunto de parámetros predefinidos para adaptarlos 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 el -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 se utilizará. 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 entre 0 y 6. El valor predeterminado es 4. Cuando se usen valores más altos, el codificador pasará más tiempo inspeccionando posibilidades de codificación adicionales y decidirá la ganancia 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 mayor y una calidad de compresión menor.

-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 altura (pero no ambos) es 0, el valor se calculará manteniendo 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 sobre el tamaño del flujo de bits cuando se usa esta opción.

Opciones con pérdida

Estas opciones solo son efectivas cuando se realiza la codificación con pérdidas (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 hará varios pases 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 de -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 utilizará un valor predeterminado de "6" pases.
-af
Activa el filtro automático. Este algoritmo dedicará tiempo adicional a optimizar la intensidad del filtrado para alcanzar una calidad 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 tamaño similar al de su equivalente JPEG (para la misma configuración de -q), pero con menos distorsión visual.

Opciones avanzadas:

-f int
Especifica la intensidad 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 se verá la imagen. Por lo general, los valores típicos están en el rango de 20 a 50.
-sharpness int
Especifica la nitidez del filtrado (si se utiliza). El rango es de 0 (la más nítida) a 7 (el menos sostenido). El valor predeterminado es 0.
-strong
Usa un filtro sólido (si se utiliza un filtro gracias a la opción -f). El filtrado seguro está activado de forma predeterminada.
-nostrong
Inhabilita el filtrado potente (si se usa el filtrado gracias a la opción -f) y, en su lugar, usa el filtrado simple.
-sharp_yuv
Usa la conversión de RGB->YUV más precisa y nítida si es necesario. Ten en cuenta que este proceso es más lento que la conversión predeterminada de RGB > YUV “rápida” (rápida).
-sns int
Especifica la amplitud de la forma del ruido espacial. La determinación por ruido espacial (sns) se refiere a una colección general de algoritmos integrados que se utilizan para decidir qué área de la imagen debe usar relativamente menos bits y a qué otra ubicación 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 la cantidad de particiones que se usarán durante la segmentación del algoritmo de 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 versiones posteriores, a menos que se use -low_memory.
-partition_limit int
Para degradar la calidad, se 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 ser de 30 a 70 para imágenes moderadamente grandes. En el formato VP8, la denominada 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 como 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 una imagen muy grande, 512k solo deja espacio para unos pocos bits por macrobloque de 16 × 16. El mínimo absoluto es 4 bits por macrobloque. La información de omisión, segmento y modo puede agotar casi todos estos 4 bits (aunque el caso 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 de bits (dentro de 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 (Partición de 512 K: la partición n.o 0 es demasiado grande para ajustarse a 512 k). 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.

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 también informa el PSNR (relación máxima entre señal y ruido) promedio.
-print_ssim
Calcula y, luego, informa el SSIM (métrica de similitud estructural; consulta https://en.wikipedia.org/wiki/SSIM para obtener más detalles).
-print_lsim
Calcula e 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 porcentaje.
-quiet
No imprimas nada.
-short
Solo imprime información breve (tamaño del archivo de salida y PSNR) para realizar pruebas.
-map int
Genera un mapa ASCII adicional de salida de la información de codificación. Los valores posibles del mapa van de 1 a 6. Esto es solo para ayudar con la depuración.

Opciones adicionales

Las opciones más avanzadas son las siguientes:

-s width height
Especifica que el archivo de entrada en realidad consiste en 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. Internamente, el filtrado alfa se realiza con cuatro predicciones posibles (ninguna, horizontal, vertical y con gradiente). El modo best probará cada uno de ellos a la vez y elegirá el más pequeño. El modo fast solo intentará formar una suposición priorizada sin probar todos los modos.
-alpha_method int
Especifica el algoritmo utilizado para la compresión alfa: 0 o 1. El algoritmo 0 denota que no hay 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 un área transparente. La opción predeterminada es desactivada para facilitar la compresión.
-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
Con 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 de metadatos separados por comas 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).