WebP - это формат изображений, опубликованный Google, чтобы сделать веб‑страницы легче. Его режим с потерями основан на методах обработки статичных изображений внутри VP8, формата сжатия видео, исходя из того, что фотография по сути является одним кадром видео; вскоре после первого релиза появились режим без потерь, поддержка прозрачности и анимации. Цель WebP - охват: один формат, который должен выполнять работу JPG, PNG и анимированного GIF и делать каждую из этих задач с меньшим размером файла. Все современные основные браузеры поддерживают этот формат, поэтому изображения, скачанные с современных сайтов, так часто оказываются файлами .webp.
Как WebP хранит свое изображение
WebP - это контейнер, собранный из помеченных фрагментов (chunks), и от того, что внутри, зависит поведение файла, потому что у него есть два совершенно разных механизма сжатия:
- WebP с потерями (Lossy WebP) работает как ключевой кадр видео. Он предсказывает каждый блок пикселей по их соседям, сохраняет только разницу, преобразует эту разницу в частотные значения и округляет их. Информация отбрасывается, поэтому WebP с потерями нельзя восстановить до исходных пикселей, а повторное сохранение снова и снова усиливает повреждения - точно так же, как в JPG.
- WebP без потерь (Lossless WebP) устроен совсем иначе. Он ищет повторяющиеся узоры и повторяющиеся цвета по всему изображению, ведет небольшой кэш недавно использованных цветов и компактно кодирует результат. Ничего не отбрасывается, поэтому он сопоставим скорее с PNG, чем с JPG.
Любой из режимов может содержать полный альфа‑канал, поэтому работает частичная прозрачность, и прозрачность можно сохранить без потерь, в то время как цвета будут с потерями - комбинация, которой нет ни у JPG, ни у PNG. Анимация - это последовательность кадров внутри того же контейнера, каждый со своим временем показа и с полноцветным изображением, что снимает ограничение GIF в 256 цветов. Важно помнить об одном жестком ограничении: размеры WebP не могут превышать 16383 пикселя ни по одной из сторон, поэтому очень большие сканы и длинные панорамы просто не поместятся.
Какие метаданные содержит WebP
WebP не вводит собственную схему метаданных. Метаданные - это описательная информация, хранящаяся рядом с пикселями, и контейнер WebP содержит ее в необязательных фрагментах, которые используют существующие стандарты. В отчете отображаются все найденные типы:
- Фрагмент EXIF, содержащий тот же блок данных камеры, что и в JPG:
Make,Model,DateTimeOriginal,ExposureTime,FNumber,ISOSpeedRatings,FocalLength,LensModelиOrientation, а также группу GPS с широтой, долготой и высотой. - Фрагмент XMP, содержащий XML‑метаданные Adobe: автора, заголовок, описание, ключевые слова, оценки, сведения о правах и историю правок.
- Фрагмент ICC profile, описывающий цветовое пространство, к которому относятся числовые значения.
Для IPTC, более старого издательского стандарта, отдельного раздела нет, поэтому поля IPTC сохраняются при конвертации в WebP только в том случае, если конвертер переписывает их в XMP.
Практический вывод в том, что WebP часто оказывается полностью пустым. Кодировщики командной строки и серверные кодировщики удаляют метаданные, если явно не указать сохранять их, а изображения, обрабатываемые сайтом автоматически, обычно выходят вообще без каких‑либо дополнительных данных. Однако это не гарантия. WebP, созданный из фото с телефона конвертером, который сохраняет метаданные, унаследует исходную модель камеры, время съемки и GPS‑координаты в неизменном виде. Если файл важен, посмотрите отчет, а не полагайтесь на то, что конвертация все очистила.
Когда использовать WebP
Используйте WebP для изображений на сайте - именно для этого он и был разработан: меньше байт при том же изображении, с поддержкой прозрачности, фотографий и коротких анимаций в одном формате. WebP с потерями заменяет JPG, WebP без потерь - PNG для плоской графики, а анимированный WebP - анимированный GIF с гораздо лучшей цветопередачей.
Вне браузера это более слабый выбор. Настольные приложения, печатные рабочие процессы, офисные программы и старые устройства могут не открывать WebP, поэтому такие файлы неудобно пересылать по электронной почте или отправлять на принтер, и там по‑прежнему надежнее использовать JPG и PNG. Конвертация уже существующего JPG в WebP с потерями повторно перекодирует изображение, которое и так уже потеряло часть деталей, поэтому второй проход ухудшает качество сверх первого. Конвертируйте из лучшего исходника, который у вас есть, а не из файла, который вы сами когда‑то получили.