AVIF против WebP — меньший файл не всегда правильный
Dov Azencot
@DovAzencotОднажды я потратил неловкий вечер, гоняя одну и ту же картинку для шапки в виде WebP и AVIF, переключаясь между двумя вкладками браузера и пытаясь поймать разницу, которую глаз хоть как-то различит. AVIF был на 31% меньше. Отличить я их не смог. Сидел с ощущением, будто нашёл деньги на дороге, — а потом прогнал пакетом папку из 200 изображений и вспомнил про загвоздку.
AVIF почти всегда меньший файл. Это правда, и знать это полезно. Но «меньше» — лишь одна колонка в таблице, а решение живёт в остальных колонках.
В чём AVIF выигрывает
AVIF построен на видеокодеке AV1 и по-настоящему новее и умнее WebP по устройству. На фотографическом контенте он обычно выходит на 15–30% меньше WebP при той же визуальной планке качества. Он справляется с плавными градиентами — небом, кожей, мягкими тенями — без блочных артефактов, которыми их размазывают кодеки постарше. Он поддерживает HDR и широкий цветовой охват, чего WebP не умеет. Он держит полный альфа-канал, как и WebP.
Примерные цифры из той самой папки, все при настройке качества, где разницы я поймать не мог:
| Исходник | WebP | AVIF |
|---|---|---|
| Фото для шапки — PNG 3.1 МБ | ~360 КБ | ~250 КБ |
| Снимок товара — JPG 1.4 МБ | ~180 КБ | ~140 КБ |
| Плоская иллюстрация интерфейса | ~28 КБ | ~30 КБ |
Посмотрите ещё раз на последнюю строку. На плоской, простой графике AVIF иногда выходит больше. Его смекалка заточена под фотографическую сложность, а в двухцветной иллюстрации ему просто нечего разжёвывать. Здесь способны выиграть WebP или даже PNG.
Во что AVIF вам обходится
Выигрыш в размере не бесплатен. Две реальные цены:
Время кодирования. AVIF сжимается разительно медленнее. На той же картинке кодирование в AVIF может занять в несколько раз больше времени, чем в WebP, — порой это разница между «мгновенно» и «подожди пару секунд на файл». На одной картинке для шапки — кого это волнует. На пакете из 200 вы чувствуете каждую секунду. WebP кодируется так быстро, что это по сути бесплатно.
Декодирование и поддержка. Все браузеры, которыми люди реально пользуются, сейчас декодируют AVIF — Chrome с 2020 года, Firefox вскоре после, Safari с 16-й версии в конце 2022-го. В 2026 году это покрывает подавляющую часть живого трафика. Но «поддерживается» и «универсально» — не одно и то же. За WebP на несколько лет больше насыщения, и он декодируется быстрее на слабых телефонах, где декодирование AV1 способно заметно расходовать батарею и процессор. Некоторые почтовые клиенты и старые встроенные webview всё ещё не берут AVIF вовсе.
Вопрос про эти 20%
Так что реальное решение сводится к одному: значимы ли лишние ~20% для этой картинки в этом месте?
Для крупного изображения в шапке лендинга — того единственного тяжёлого файла, что скачивает каждый посетитель, — да. Срезать 100 КБ с того, что тормозит вашу первую отрисовку, стоит более медленного кодирования, за которое вы платите один раз. Это самый ясный довод в пользу AVIF из тех, что я знаю.
Для сетки миниатюр, встроенных скриншотов в блоге или всего, что уже весит менее 50 КБ в WebP, ответ обычно нет. Двадцать процентов от маленького числа — число ещё меньше. Вы обменяли время кодирования и кусочек совместимости на байты, которых никто не ждал. WebP здесь спокойнее в качестве варианта по умолчанию.
Когда я не заморачиваюсь с AVIF
Если файл уходит куда-то за пределы современного браузера — в почтовую рассылку, в старую CMS, в систему партнёра, которую я не контролирую, — я не рискую с AVIF. Беру WebP или обычный JPG, если хочу нулевой риск. Самый маленький файл, который не отображается, не стоит ничего.
И я не кодирую в AVIF плоскую графику, логотипы и штриховые рисунки. Кодек не для этого, и я достаточно часто наблюдал, как он проигрывает WebP на таком контенте, чтобы бросить попытки.
Как я решаю на самом деле
Мой честный порядок: тяжёлое фотографическое конвертирую в AVIF, а лёгкое, простое и широко расходимое оставляю в WebP. Единого формата на все случаи нет. Есть выбор под каждую картинку.
Если хотите попробовать сравнение сами, оба работают прямо в браузере здесь — WebP в AVIF, чтобы дожать имеющиеся WebP-ассеты дальше, и PNG в AVIF, чтобы идти сразу от мастера. Никуда ничего не загружается, кодирование идёт на вашей машине — потому-то вы и ощутите медлительность AVIF на своей шкуре. Это не баг. Это кодек делает больше работы ради меньшего файла, прямо у вас на глазах.
Прогоните собственную картинку для шапки через оба формата. Если разницы не видите, а AVIF ощутимо меньше, ответ у вас есть. Только не считайте, что для следующих 200 файлов ответ будет тем же.
Похожие статьи
Почему я перевожу PNG в WebP (и когда — ни за что)
PNG прекрасен, когда в нём работаешь, и расточителен, когда его выкладываешь. Разберём, что WebP реально экономит, где он бесполезен, и одно правило, которое я не нарушаю.
Почему ваши скриншоты весят 2 МБ и как ужать их на 60–90%
У скриншота почти пустого дашборда нет причин весить 2 МБ. Разберём, почему PNG так с вами поступает и как переход на WebP срезает 60–90% без единой видимой потери.
Все статьи