Заметки команды о мастерстве, форматах и небольших решениях, стоящих за хорошей круглой обрезкой.
Как обстоит совместимость AVIF в 2026-м
AVIF прошёл около 94,3 процента браузеров по миру к 2026-му, и всё же браузерный охват рассказывает лишь половину сказки. Большой кусок потребления картинок течёт мимо браузеров: почтовые клиенты рисуют встроенные снимки, дизайнерские инструменты вскрывают файлы для правки, системы контента проверяют и перелопачивают загрузки, конвейеры доставки изображений, редакторы документов встраивают графику и соцплощадки жуют картинки прямо на загрузке. По большинству этих небраузерных систем AVIF тащится позади браузерного приёма с заметным зазором. Gmail, Outlook и почти вся корпоративная почта по-прежнему гонят картинки старыми конвейерами, что отбивают AVIF. Adobe Creative Cloud вшила AVIF только в выпуски конца 2024-го. Многие сборки WordPress на старых плагинах картинок всё ещё запирают AVIF на загрузке. WebP же радушно принят почти всюду из перечисленного уже годами. AVIF в WebP - мост через эту небраузерную почву.
Почему это направление быстрое
Почему именно эта сторона шустрее обратной, объясняет расстановка кодеков. Разбор AVIF опирается на встроенный в браузер разборщик, что на нынешней технике подхватывает ускорение от железа. Запись WebP идёт через родной для браузера тракт WebP, на большинстве платформ тоже подпёртый железом. Ни одной стороне не приходится подтягивать увесистый модуль, а ведь как раз это и есть та теснина, что душит выделку AVIF. Слой для выхода в AVIF тяжеловесен и просит около секунды на раскрутку за сеанс. Дорога AVIF в WebP всё это обходит стороной. Поток разбирает, а потом записывает родными тропами, и полный оборот для снимка на 2 мегапикселя смыкается ощутимо быстрее секунды на любом современном настольнике или ноутбуке. Оттого пара и годна для живой работы, где человек ждёт отклика в пределах секунды.
Во что и впрямь обходится одно пересохранение
В этой паре прокручивается ровно одна повторная запись. AVIF приходит, уже неся какую-то долю сжатия с потерями, осевшую в нём раньше. Разбор AVIF возвращает значения пикселей, отражающие этот источник с потерями. Дальше слой WebP накрывает эти пиксели собственным сжатием в режиме, близком к без потерь, выкрученном на качество 85. В таком режиме на обычном фотосодержимом замеры дают где-то близ 44 дБ PSNR. Для зрителя, разглядывающего кадр в обычном экранном размере, исходный AVIF и выходной WebP сливаются в одно. А вот на графике с очень мелким шрифтом малого кегля, на значках, точных до пикселя, или на цветовых блоках с твёрдым контуром наслоённый итог двух проходов с потерями порой выдаёт еле уловимые расхождения при пристальном осмотре. Так что прежде чем пускать под обмен целую библиотеку, прогоните показательную горстку на полном увеличении именно на тех ресурсах, где качество дороже всего.
Прослеживаем альфу по кругу
AVIF хранит свою прозрачность на отдельной плоскости, закодированной внутрикадровой работой AV1. Декодируйте AVIF, и браузер протягивает цветовой буфер вместе с альфа-маской бок о бок. Преобразование сводит пару при полной прозрачности, удерживая каждый частично чистый пиксель. Затем средства WebP пишут WebP с потерями, чья альфа едет в канале, закодированном методом WebP без потерь именно для альфа-плоскости. Итог в том, что альфа-маска выходного WebP хранится без потерь относительно альфы, которую браузер вытянул из AVIF. Мягкие градиенты и размытые кромки едут дальше. Единственная потеря альфы в игре - та, что заложило раннее кодирование самого AVIF. Чистые кромки альфы в источнике значат чистые кромки альфы в WebP, маска готова лечь куда угодно.
Складываем WebP против других вариантов
Чтобы заставить AVIF работать в системе, которая его не читает, на ногах три настоящих выбора: WebP, PNG или JPG. JPG неверен для всего с прозрачностью, ведь альфы у него нет и он сводит её в сплошной цвет. PNG лепит самый тяжёлый файл, нередко в три - десять раз больше размера AVIF, и заслуживает место лишь там, где нужна промежуточная копия без потерь или дальний конец требует именно PNG. WebP берёт середину: всеобщий современный охват, прозрачность цела и файл обычно на 20 - 25 процентов поверх AVIF, а не на 300 - 1000 процентов, как добавил бы PNG. Для любого обмена ради совместимости, что не зовёт за выходом без потерь, WebP - тот серединный формат, что подходит.
Одно локально, пачка на сервере
У этой пары два режима, выбираемых размером задачи. Одинокий AVIF декодируется и переписывается как WebP целиком внутри вашего браузера нативными путями, так что для одного файла ничего не поднимается, что DevTools подпирает отсутствием исходящих запросов после загрузки страницы. Это верная полоса для чего-то быстрого и для конфиденциальных кадров клиента, собственных снимков продукта или сканов, которые вы предпочли бы держать на своём оборудовании. Куча файлов крутится на нашем сервере, потому что группировать, закрывать в zip и отгружать набор это как раз сила сервера: файлы поднимаются, кодируются, упаковываются и возвращаются одной загрузкой, которая подчищается к 2 часам, без учётной записи и без чего-либо хранимого надолго. Простое чтение в том, что преобразование лежит неподвижно на устройстве, тогда как пачка обрабатывается удалённо, но держится лишь то короткое окно, что берёт получение.