Имя
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
xheight
. Эта область обрезки должна полностью находиться внутри исходного прямоугольника. Примечание: кадрирование применяется до любого масштабирования.-
-resize width height
Измените размер источника на прямоугольник размером
width
xheight
. Если один из (но не оба) параметров ширины или высоты равен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
xheight
. -
-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
Отключить все оптимизации сборки.
Ошибки
Пожалуйста, сообщайте обо всех ошибках в систему отслеживания ошибок: https://bugs.chromium.org/p/webp .
Патчи приветствуются! См. эту страницу, чтобы начать работу: https://www.webmproject.org/code/contribute/submitting-patches/
Примеры
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 (и может использоваться другими).