Имя
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
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" проходов. Если указан-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
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://issues.webmproject.org.
Патчи приветствуются! Чтобы начать работу, посетите эту страницу: 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 (и может использоваться другими).