Работа с изображениями

JPG, PNG, WebP или AVIF: какой формат изображений выбрать, с замеренными размерами

Две фотографии, закодированные с одинаковым визуальным качеством в четырёх форматах. AVIF вышел на 40–45 % меньше JPEG, WebP нет. Когда какой формат уместен и когда PNG оказывается ошибкой.

Коротко

Для фотографий JPEG по-прежнему годится, а AVIF намного компактнее. WebP находится посередине, и его выигрыш перед хорошо закодированным JPEG меньше, чем обычно заявляют в рекламе. Для скриншотов, логотипов, схем и всего, где есть заливка однородным цветом или прозрачность, подходит PNG или WebP без потерь, но никогда не JPEG. Ниже цифры, на которых это основано, полученные реальным кодированием, а не из графика производителя.

Что должно значить «меньше»

Сравнивать форматы при одинаковой настройке «качество 80» бессмысленно: у каждого кодировщика своя шкала качества. Честное сравнение одно: тот же визуальный результат, какой размер? Для этой статьи каждый формат кодировали с возрастающим качеством, пока он не достигал одинаковой структурной схожести (SSIM 0,98 относительно оригинала, по яркости), и записывали размер в этой точке. Две тестовые фотографии: чашка эспрессо на столе (1200 × 800) и портрет (1024 × 1024), обе из общественного достояния. Кодировщики: libjpeg-turbo, libwebp (method 6) и libavif (speed 4) через Pillow 12. Инструменты самого сайта используют MozJPEG, который обычно срезает с результата JPEG ещё 5–10 %.

Формат Фото 1 (1200×800) Фото 2 (1024×1024) Достигнутая настройка
JPEG 95 КБ 86 КБ q68 / q66
WebP 104 КБ 76 КБ q86 / q84
AVIF 59 КБ 47 КБ q60 / q58
PNG (без потерь) 1 223 КБ 1 034 КБ без настройки
WebP без потерь 860 КБ 701 КБ без настройки

Выделяются две вещи. AVIF при том же SSIM на 38–46 % меньше JPEG, и эта часть истории правдива. WebP на этих фото примерно равен JPEG: на одном на 9 % больше, на другом на 12 % меньше. Часто цитируемые «на 25–34 % меньше JPEG» взяты из исследования Google 2010 года, где сравнение шло с неоптимизированным кодировщиком JPEG при фиксированных настройках качества. С современным кодировщиком при равном качестве разрыв почти исчезает. Одна оговорка в пользу WebP: на низких битрейтах он немного лучше JPEG передаёт мелкие детали и резкие края, а SSIM это недооценивает. Одна против: WebP ограничен цветовой субдискретизацией 4:2:0, поэтому насыщенный красный текст на фото слегка расплывается там, где JPEG с 4:4:4 остался бы чётким.

Оговорка о самом тесте: оба исходника уже были в JPEG, так что каждый кодировщик сжимал вместе с картинкой и артефакты прежнего сжатия. При исходнике в RAW или PNG все три формата с потерями вышли бы чуть меньше, а порядок не изменился бы.

PNG предназначен для картинок другого рода

В таблице PNG в двенадцать раз больше JPEG. Дело не в том, что PNG плохой: от него требуют не той работы. PNG сохраняет изображение без потерь, каждый пиксель восстанавливается точно, а в каждом пикселе фотографии есть шум, который не сжимается. На третьем тестовом изображении, вырезанной иллюстрации с однородными заливками и прозрачным фоном (900 × 600), картина обратная:

Формат Размер
PNG 66 КБ
WebP без потерь 55 КБ
AVIF q80 54 КБ
JPEG q90 76 КБ, и прозрачность пропала

Однородные заливки, текст, скриншоты, графики, логотипы: PNG или WebP без потерь. В JPEG-скриншоте вокруг каждой буквы видны ореолы, и обычно он больше PNG. Фото, сохранённое в PNG, оборачивается лишними мегабайтами, которые заметны по скорости загрузки страниц и по возвращённым письмам.

Поддержка в браузерах и программах

  • JPEG: везде, с 1992 года. Надёжный выбор для всего, что уходит из-под вашего контроля: фотопечать, государственные формы, старые телефоны на Android, документы Word.
  • PNG: везде примерно с 2005 года.
  • WebP: все актуальные браузеры (Safari с версии 14, 2020). «Фотографии» в Windows его открывают; старые версии Office, большинство фотокиосков и многие формы загрузки до сих пор нет.
  • AVIF: Chrome 85+, Firefox 93+, Safari 16.4+ (2023), Edge 121+. За пределами браузера поддержка слабая: Windows нужно расширение из Store, macOS Ventura и новее открывает его сама, большинство остальных программ нет. На 2026 год это формат для показа изображений в вебе, а не для передачи их людям.
  • HEIC: на практике только устройства Apple, подробнее в статье Что такое HEIC.

Что выбрать

  • Отправляете фото человеку или в форму: JPEG, качество 80–85. Всё, что выше 90, удваивает размер ради разницы, которую никто не увидит.
  • Фото на собственном сайте: AVIF с запасным JPEG (<picture>) или WebP, если ваш конвейер обработки изображений пока не умеет AVIF.
  • Скриншот, логотип, схема, всё с прозрачностью: PNG; WebP без потерь, если файл будет открывать браузер.
  • Архив собственных фото: храните оригинал в каком бы формате он ни был и не «конвертируйте ради экономии места», потому что каждое перекодирование с потерями что-то отнимает.

Конвертер изображений переводит файлы между всеми четырьмя форматами в браузере, а Сжать изображение показывает «до» и «после» рядом вместе с итоговым размером. Так можно остановиться на качестве, которое действительно выглядит так же, а не на том, что стоит на ползунке по умолчанию.

Инструменты из этой статьи

Похожие статьи

Блог →
Озвучка текстаTextToSpeech.tools Сжать видеоFreeCompress.video Китайско-английский словарьChineseDict.com