cwebp

Имя

cwebp — сжимает файл изображения в файл WebP.

Синопсис

cwebp [options] input_file -o output_file.webp

Описание

cwebp сжимает изображение в формате WebP. Входной формат может быть PNG, JPEG, TIFF, WebP или необработанными образцами Y'CbCr. Примечание. Анимированные файлы PNG и WebP не поддерживаются.

Опции

Основные варианты:

-o string
Укажите имя выходного файла WebP. Если этот параметр опущен, cwebp выполнит сжатие, но только сообщит статистику. Использование «-» в качестве имени вывода направит вывод на «stdout».
-- string
Явно укажите входной файл. Эта опция полезна, например, если входной файл начинается с «-». Эта опция должна быть last . Любые другие опции после этого будут игнорироваться.
-h, -help
Краткое описание использования.
-H, -longhelp
Резюме всех возможных вариантов.
-version
Напечатайте номер версии (в формате major.minor.revision) и выйдите.
-lossless
Кодируйте изображение без потерь. Для изображений с полностью прозрачной областью значения невидимых пикселей (R/G/B или Y/U/V) будут сохранены, только если используется опция -exact .
-near_lossless int
Укажите уровень предварительной обработки изображения почти без потерь. Этот параметр регулирует значения пикселей, чтобы улучшить сжимаемость, но оказывает минимальное влияние на визуальное качество. Он автоматически запускает режим сжатия без потерь. Диапазон — от 0 (максимальная предварительная обработка) до 100 (без предварительной обработки, по умолчанию). Типичное значение составляет около 60 . Обратите внимание, что алгоритм с потерями с -q 100 может иногда давать лучшие результаты.
-q float

Задайте коэффициент сжатия для каналов RGB от 0 до 100 . По умолчанию 75 .

В случае сжатия с потерями (по умолчанию) небольшой коэффициент создает файл меньшего размера с более низким качеством. Наилучшее качество достигается при использовании значения 100 .

В случае сжатия без потерь (указанного параметром -lossless ) небольшой коэффициент обеспечивает более высокую скорость сжатия, но создает файл большего размера. Максимальное сжатие достигается при использовании значения 100 .

-z int

Включите режим lossless потерь с указанным уровнем от 0 до 9, где уровень 0 — самый быстрый, 9 — самый медленный. Быстрый режим создает файл большего размера, чем более медленный. Хорошим значением по умолчанию является -z 6 . Эта опция на самом деле является ярлыком для некоторых предопределенных настроек качества и метода. Если впоследствии будут использованы опции -q или -m , они аннулируют действие этой опции.

-alpha_q int

Укажите коэффициент сжатия для альфа-сжатия от 0 до 100 . Сжатие без потерь альфа-канала достигается с использованием значения 100 , а более низкие значения приводят к сжатию с потерями. Значение по умолчанию — 100 .

-preset string

Укажите набор предопределенных параметров, подходящих для определенного типа исходного материала. Возможные значения: default , photo , picture , drawing , icon , text .

Так как -preset перезаписывает значения других параметров (кроме -q ), эта опция предпочтительно должна стоять первой в порядке аргументов.

-m int

Укажите используемый метод сжатия. Этот параметр управляет компромиссом между скоростью кодирования и размером и качеством сжатого файла. Возможные значения находятся в диапазоне от 0 до 6 . Значение по умолчанию — 4 . Когда используются более высокие значения, кодировщик потратит больше времени на проверку дополнительных возможностей кодирования и примет решение о повышении качества. Более низкое значение может привести к более быстрому времени обработки за счет большего размера файла и более низкого качества сжатия.

-crop x_position y_position width height

Обрежьте источник до прямоугольника с левым верхним углом в координатах ( x_position , y_position ) и размером width x height . Эта область обрезки должна полностью находиться внутри исходного прямоугольника. Примечание: кадрирование применяется до любого масштабирования.

-resize width height

Измените размер источника на прямоугольник размером width x height . Если один из (но не оба) параметров ширины или высоты равен 0 , значение будет рассчитываться с сохранением соотношения сторон. Примечание: масштабирование применяется после кадрирования.

-mt

Используйте многопоточность для кодирования, если это возможно.

-low_memory

Уменьшите использование памяти при кодировании с потерями, сохранив в четыре раза больше сжатого размера (обычно). Это сделает кодирование медленнее, а выходные данные будут немного отличаться по размеру и искажениям. Этот флаг действует только для методов 3 и выше и по умолчанию отключен. Обратите внимание, что снятие этого флага будет иметь некоторые побочные эффекты для битового потока: он задействует определенные функции битового потока, такие как количество разделов (принудительно равное 1 ). Обратите внимание, что при использовании этой опции cwebp печатает более подробный отчет о размере битового потока.

Параметры с потерями

Эти параметры эффективны только при кодировании с потерями (по умолчанию, с альфа-каналом или без него).

-size int
Укажите целевой размер (в байтах), чтобы попытаться получить сжатый вывод. Компрессор сделает несколько проходов частичного кодирования, чтобы максимально приблизиться к этой цели. Если используются и -size , и -psnr , значение -size будет преобладать.
-psnr float
Укажите целевой PSNR (в дБ), чтобы попытаться достичь сжатого вывода. Компрессор сделает несколько проходов частичного кодирования, чтобы максимально приблизиться к этой цели. Если используются и -size , и -psnr , значение -size будет преобладать.
-pass int
Установите максимальное количество проходов для использования во время дихотомии, используемой параметрами -size или -psnr . Максимальное значение — 10 , по умолчанию — 1 . Если были использованы опции -size или -psnr , но не указан -pass , будет использовано значение по умолчанию "6" проходов.
-af
Включает автофильтр. Этот алгоритм потратит дополнительное время на оптимизацию силы фильтрации для достижения хорошо сбалансированного качества.
-jpeg_like
Измените сопоставление внутренних параметров, чтобы оно лучше соответствовало ожидаемому размеру сжатия JPEG. Этот флаг обычно создает выходной файл такого же размера, как его эквивалент в формате JPEG (для той же настройки -q ), но с меньшими визуальными искажениями.

Расширенные опции:

-f int
Укажите силу деблокирующего фильтра от 0 (без фильтрации) до 100 (максимальная фильтрация). Значение 0 отключает любую фильтрацию. Более высокое значение повысит эффективность процесса фильтрации, применяемого после декодирования изображения. Чем выше значение, тем более плавным будет изображение. Типичные значения обычно находятся в диапазоне от 20 до 50 .
-sharpness int
Укажите резкость фильтрации (если используется). Диапазон от 0 (самый резкий) до 7 (наименее резкий). По умолчанию 0 .
-strong
Используйте сильную фильтрацию (если фильтрация используется благодаря опции -f ). Сильная фильтрация включена по умолчанию.
-nostrong
Отключите сильную фильтрацию (если фильтрация используется благодаря опции -f ) и используйте вместо нее простую фильтрацию.
-sharp_yuv
При необходимости используйте более точное и четкое преобразование RGB->YUV. Обратите внимание, что этот процесс медленнее, чем «быстрое» преобразование RGB->YUV по умолчанию.
-sns int
Задайте амплитуду пространственного формирования шума. Пространственный нойз-шейпинг (или сокращенно sns) относится к общему набору встроенных алгоритмов, используемых для решения, в какой области изображения следует использовать относительно меньше битов, а где еще лучше передать эти биты. Возможный диапазон от 0 (алгоритм выключен) до 100 (максимальный эффект). Значение по умолчанию — 50 .
-segments int
Измените количество разделов, которые будут использоваться во время сегментации алгоритма sns. Сегменты должны быть в диапазоне от 1 до 4 . Значение по умолчанию — 4 . Эта опция не действует для методов 3 и выше, если только не используется -low_memory .
-partition_limit int
Ухудшение качества путем ограничения количества битов, используемых некоторыми макроблоками. Диапазон значений: от 0 (без ухудшения, по умолчанию) до 100 (полное ухудшение). Полезные значения обычно составляют около 30 для 70 среднего размера. В формате VP8 так называемый контрольный раздел имеет ограничение в 512 КБ и используется для хранения следующей информации: пропущен ли макроблок, какому сегменту он принадлежит, закодирован ли он как режим intra 4x4 или intra 16x16, и наконец, режимы прогнозирования для использования в каждом из подблоков. Для очень большого изображения 512 КБ оставляет место только для нескольких бит на макроблок 16x16. Абсолютный минимум составляет 4 бита на макроблок. Информация о пропуске, сегменте и режиме может израсходовать почти все эти 4 бита (хотя это маловероятно), что проблематично для очень больших изображений. Фактор partition_limit определяет, как часто будет использоваться самый ресурсоемкий режим (intra 4x4). Это полезно, если достигнуто ограничение в 512 КБ и отображается следующее сообщение: Код ошибки: 6 (PARTITION0_OVERFLOW: Раздел #0 слишком велик для размещения 512 КБ). Если использования -partition_limit недостаточно для соблюдения ограничения 512 КБ, следует использовать меньше сегментов, чтобы сохранить больше битов заголовка на макроблок. См. опцию -segments .

Параметры ведения журнала

Эти параметры контролируют уровень вывода:

-v
Вывести дополнительную информацию (в частности, время кодирования).
-print_psnr
Вычислите и сообщите среднее значение PSNR (отношение пикового сигнала к шуму).
-print_ssim
Вычислите и сообщите среднее значение SSIM (показатель структурного сходства, см. https://en.wikipedia.org/wiki/SSIM для получения дополнительной информации).
-print_lsim
Вычислите и сообщите локальную метрику подобия (сумма наименьшей ошибки среди соседних пикселей).
-progress
Отчет о прогрессе кодирования в процентах.
-quiet
Ничего не печатайте.
-short
Печатайте только краткую информацию (размер выходного файла и PSNR) только в целях тестирования.
-map int
Вывести дополнительную ASCII-карту информации о кодировании. Возможные значения карты находятся в диапазоне от 1 до 6 . Это предназначено только для помощи в отладке.

Дополнительные опции

Более продвинутые параметры:

-s width height
Укажите, что входной файл фактически состоит из необработанных выборок Y'CbCr в соответствии с рекомендацией ITU-R BT.601 в линейном формате 4:2:0. Плоскость яркости имеет размер width x height .
-pre int
Укажите некоторые шаги предварительной обработки. Использование значения 2 активирует зависящее от качества псевдослучайное сглаживание во время преобразования RGBA->YUVA (только при сжатии с потерями).
-alpha_filter string
Укажите метод прогнозирующей фильтрации для альфа-плоскости. Один из none , fast или best , в порядке возрастания сложности и медленности. По умолчанию fast . Внутри альфа-фильтрация выполняется с использованием четырех возможных прогнозов (нет, горизонтальный, вертикальный, градиентный). best режим будет пробовать каждый режим по очереди и выбирать тот, который дает меньший размер. fast режим просто попытается сформировать априорное предположение, не проверяя все режимы.
-alpha_method int
Укажите алгоритм, используемый для альфа-сжатия: 0 или 1 . Алгоритм 0 означает отсутствие сжатия, 1 использует для сжатия формат без потерь WebP. По умолчанию 1 .
-exact
Сохраняйте значения RGB в прозрачной области. По умолчанию отключено, чтобы улучшить сжимаемость.
-blend_alpha int
Этот параметр смешивает альфа-канал (если он есть) с источником, используя цвет фона, указанный в шестнадцатеричном виде как 0xrrggbb. После этого альфа-канал сбрасывается до непрозрачного значения 255 .
-noalpha
Использование этой опции отбрасывает альфа-канал.
-hint string
Укажите подсказку о типе входного изображения. Возможные значения: photo , picture или graph .
-metadata string

Разделенный запятыми список метаданных для копирования из ввода в вывод, если они есть. Допустимые значения: all , none , exif , icc , xmp . По умолчанию none .

Обратите внимание, что каждый входной формат может не поддерживать все комбинации.

-noasm

Отключить все оптимизации сборки.

Ошибки

Примеры

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

Авторы

cwebp является частью libwebp и был написан командой WebP. Последнее исходное дерево доступно по адресу https://chromium.googlesource.com/webm/libwebp/ .

Эта страница руководства была написана для проекта Debian (и может использоваться другими).