Откуда берутся файлы AVIF и почему с ними проблемы
AVIF — формат изображений на основе видеокодека AV1, опубликованный в 2019 году организацией Alliance for Open Media. Он хранит статичную картинку как один сжатый видеокадр, и именно поэтому так эффективен: фото, которому в виде хорошего JPG нужно 400 КБ, в AVIF часто укладывается в 100–150 КБ при похожем видимом качестве.
Обычно файлы AVIF появляются у вас без спроса. CDN для изображений и многие крупные сайты отдают AVIF любому браузеру, который заявляет о его поддержке, поэтому «Сохранить изображение как» в Chrome или Firefox нередко даёт файл .avif.
Проблемы начинаются за пределами браузера. Старые версии «Фотографий» Windows, Microsoft Office, многие фотокиоски, формы загрузки на государственных порталах, старые выпуски Photoshop и Lightroom, а также большинство мессенджеров либо отказываются принимать AVIF, либо показывают пустую миниатюру. JPG, стандартизированный в 1992 году, открывается практически везде — в этом и весь смысл конвертации.
Что происходит с изображением при конвертации
Конвертация выполняется в браузере. Встроенный декодер AVIF превращает файл в набор пикселей, эти пиксели отрисовываются на canvas в исходной ширине и высоте, а canvas кодируется в JPG с выбранным качеством. Если браузер позволяет, всё это происходит в фоновом воркере, чтобы страница не подвисала при большой пачке файлов. На сервер ничего не отправляется.
Несколько важных деталей:
- Размеры не меняются. AVIF 2400×1600 станет JPG 2400×1600. Если картинка нужна поменьше, пропустите результат через изменение размера изображения.
- Прозрачность заливается. AVIF поддерживает альфа-канал, JPG — нет. Прозрачные области заполняются цветом из поля «Фон», по умолчанию белым. Если логотип будет стоять на тёмной странице, выберите цвет этой страницы вместо белого, чтобы края не выделялись.
- Из анимированного AVIF берётся один кадр. AVIF может хранить последовательности изображений; конвертируется только первый кадр.
- HDR и широкий цветовой охват сводятся к стандартному диапазону. AVIF умеет хранить 10- и 12-битные HDR-изображения. Canvas работает в 8-битном sRGB, поэтому HDR-картинки приводятся к обычной яркости, а в результат не встраивается цветовой профиль. Обычные AVIF из интернета и так 8-битные в sRGB, их это не затрагивает.
- Метаданные не копируются. JPG кодируется из пикселей, поэтому данные EXIF и XMP из AVIF остаются за бортом.
Как выбрать качество JPG
Ползунок «Качество» идёт от 10% до 100% и по умолчанию стоит на 90% — выше, чем 85% в большинстве других конвертеров в JPG на этом сайте. Причина в том, что AVIF-изображения обычно уже сильно сжаты. Их типичные артефакты — сглаженные текстуры и слегка размытые края, а не блочный шум JPG, и перекодирование с низким качеством JPG накладывает второй вид потерь поверх первого.
С чего начать на практике:
- 90% — для фото, которые вы будете смотреть, пересылать или печатать. Результат близок к тому, что показывал AVIF.
- 95–100% — если изображение будет дальше редактироваться и пересохраняться, а также для скриншотов и графики с мелким текстом.
- 75–80% — когда JPG должен уложиться в лимит загрузки, например 1 МБ в форме. После конвертации сверьтесь с размером, указанным рядом с каждым файлом.
Почему JPG больше и что с этим делать
Будьте готовы к тому, что JPG окажется заметно больше AVIF. В сводке по каждому файлу исходный и новый размер показаны рядом, и превращение AVIF на 120 КБ в JPG на 350 КБ — это нормально. Качества при этом не прибавилось: просто JPG нужно больше байтов, чтобы описать те же пиксели.
Если размер важен:
- Снижайте качество шагами по 5 и сравнивайте. Большинство фото выглядят так же примерно до 80%.
- Уменьшите размеры в пикселях. Изображение шириной 4000 px, которое показывается в блоке шириной 1000 px, впустую тратит три четверти данных.
- Для финальной доводки сожмите JPG с целевым размером, подходящим для места назначения.
Поддержка браузеров и ограничения
Поскольку декодирование ложится на браузер, нужен браузер, который читает AVIF: актуальные Chrome, Edge, Firefox и Opera умеют это, Safari — начиная с версии 16.4 на macOS и iOS. Если файл не декодируется, чаще всего причина в устаревшем браузере, в файле, который вопреки расширению на самом деле не AVIF, или в повреждённой загрузке. Если браузер не может показать файл во вкладке, то и сконвертировать его не сможет.
Каждый файл может весить до 50 МБ. Можно перетащить сразу много файлов: они обрабатываются по очереди с одинаковыми настройками качества и фона, а затем скачиваются по одному или одним ZIP-архивом.