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 выполнит сжатие, но сообщит только статистику. Использование «-» в качестве имени вывода направит вывод на «стандартный вывод».
-- 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" проходов. Если указан -pass , а не -size и -psnr , будет использоваться целевой PSNR 40 дБ.
-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 КБ и используется для хранения следующей информации: пропущен ли макроблок, к какому сегменту он принадлежит, кодируется ли он как режим интра 4х4 или интра 16х16 и наконец, режимы прогнозирования, которые следует использовать для каждого из подблоков. Для очень большого изображения 512k оставляет место лишь для нескольких бит на макроблок 16x16. Абсолютный минимум составляет 4 бита на макроблок. Информация о пропуске, сегменте и режиме может использовать почти все эти 4 бита (хотя это маловероятно), что проблематично для очень больших изображений. Фактор partition_limit определяет, как часто будет использоваться режим с наибольшей затратой битов (внутри 4x4). Это полезно в случае, если достигнут предел 512 КБ и отображается следующее сообщение: Код ошибки: 6 (PARTITION0_OVERFLOW: раздел № 0 слишком велик, чтобы вместить 512 КБ). Если использования -partition_limit недостаточно для соблюдения ограничения 512k, следует использовать меньше сегментов, чтобы сохранить больше битов заголовка на макроблок. См. параметр -segments . Обратите внимание, что параметры -m и -q также влияют на решения кодировщика и его способность достичь этого предела.

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

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

-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 (и может использоваться другими).