JPG — Классика с потерями

1. Формат файлов JPG

JPG — это не просто набор пикселей, это математический портрет изображения, записанный языком частот. Вместо того чтобы хранить цвет каждой точки (как делают растровые форматы), JPG запоминает, как меняется картинка: где резкие перепады (границы объектов), а где плавные переходы (небо или кожа). Он как бы рисует карту перепадов яркости и цвета.

В основе формата лежит алгоритм сжатия с потерями, основанный на дискретном косинусном преобразовании (ДКП). Это значит, что файл JPG — это набор коэффициентов, описывающих «волны» разной частоты, из которых можно собрать изображение. Чем выше частота — тем мельче детали. Но, в отличие от PNG, в JPG нет места для прозрачности (альфа-канала) и анимации. Его задача — хранить фотореалистичные картинки компактно.

Когда вы открываете JPG, программа-декодер собирает этот математический пазл обратно. Она умножает коэффициенты на базовые волны и суммирует результат. Получается картинка, которая почти совпадает с оригиналом, но с лёгким «налётом» потерь, особенно на резких границах. Такова природа JPG — он жертвует точностью ради размера.

2. Как происходит ресайз JPG

Когда конвертер получает команду изменить размер JPG, он не просто растягивает или сжимает готовую картинку. Вместо этого он сначала полностью декодирует файл, восстанавливая полную пиксельную матрицу в памяти — словно распускает свитер до ниток, чтобы связать новый.

Теперь у него есть массив пикселей, но другого размера. Движок применяет алгоритмы интерполяции — например, бикубическую или ближайшего соседа. Он анализирует соседние пиксели и вычисляет новые: если нужно увеличить изображение, система «придумывает» промежуточные цвета, сглаживая переходы. Если уменьшить — алгоритм усредняет соседние пиксели в один, выбрасывая лишнюю информацию.

Но на этом история не заканчивается! Полученный массив нового размера нужно снова превратить в JPG. Движок передаёт его в модуль кодирования, где он снова проходит через ДКП и квантование. Таким образом, ресайз JPG — это процесс перекодирования: старое изображение разбирается, собирается в новом разрешении и снова сжимается. При этом часть информации теряется дважды: сначала при пересчёте пикселей, а затем при повторном сжатии.

3. Как происходит сжатие JPG

Сжатие JPG напоминает работу художника-импрессиониста, который вместо прорисовки каждой детали наносит мазки, создающие общее впечатление. Конвертер делит изображение на квадратные блоки 8×8 пикселей — это атомы JPG. Каждый блок обрабатывается автономно, как маленькая самостоятельная картина.

Далее включается дискретное косинусное преобразование (ДКП). Для каждого блока система вычисляет 64 коэффициента, каждый из которых отвечает за свою «частоту» узора внутри блока: от средней яркости (первый коэффициент, самый важный) до мелких деталей (последние, почти незаметные). Это как если бы мы разложили мелодию на ноты: где-то громкий бас, а где-то тихие высокие ноты.

Наступает ключевой момент — квантование. Конвертер делит полученные коэффициенты на специальные числа из таблицы квантования и округляет результат. Мелкие коэффициенты (высокие частоты) делятся на большие числа и часто превращаются в ноль. Именно здесь происходят потери: система выбрасывает ту информацию, которую считает малозаметной для человеческого глаза. Оставшиеся ненулевые коэффициенты упаковываются алгоритмом Хаффмана (или арифметическим кодированием) — это финальная стадия, где данные сжимаются уже без потерь, как в ZIP-архиве. На выходе — компактный файл JPG.

4. История возникновения JPG

История JPG начинается в 1986 году, когда международная организация по стандартизации (ISO) создала группу экспертов по фотографии — Joint Photographic Experts Group. Именно от аббревиатуры этой группы и пошло название формата. Главная задача, стоявшая перед инженерами, звучала амбициозно: упаковать фотореалистичные изображения в файлы в 10–20 раз меньше исходного размера без катастрофической потери качества.

Разработка велась несколько лет. В 1992 году был утверждён первый стандарт — JPEG (так официально называется формат, а расширение JPG появилось из-за старых ограничений Windows на три буквы). Алгоритм сочетал в себе несколько прорывных идей: дискретное косинусное преобразование, адаптивное квантование и кодирование Хаффмана. Он был разработан с учётом особенностей человеческого зрения, которое более чувствительно к изменениям яркости, чем цвета.

В конце 90-х JPG стал настоящим королём интернета. Он позволял загружать фотографии даже на медленных модемных соединениях, что определило развитие веба как визуальной среды. Несмотря на появление более современных форматов, JPG остаётся универсальным стандартом для фотографий, потому что его читает абсолютно любое устройство — от цифровой фоторамки до профессиональной камеры.

5. Преимущества JPG

Главное преимущество JPG — его повсеместная совместимость. Формат понимают все браузеры, операционные системы, фотоаппараты и даже старые плееры. Это язык, на котором говорит весь цифровой мир. Второй важнейший плюс — управляемый размер: конвертер может регулировать степень сжатия, выбирая баланс между качеством и объёмом файла. Для фотографий с плавными переходами и множеством цветов JPG даёт отличный результат при минимальном весе.

Также JPG поддерживает метаданные EXIF, где хранится информация о камере, выдержке, диафрагме и даже GPS-координатах. Это делает его стандартом для фотографов. Ещё одно преимущество — поддержка цветовых пространств, включая оттенки серого, RGB и CMYK, что позволяет использовать формат как для веба, так и для профессиональной печати (хотя для полиграфии чаще применяют TIFF).

Стоит упомянуть и прогрессивный режим JPG: в этом случае конвертер сохраняет изображение слоями — сначала грубый набросок, затем всё более детальные проходы. При загрузке по медленному каналу пользователь видит размытую версию, которая постепенно прорисовывается. Это делает формат удобным для медленного интернета.

6. Спецификация, технические характеристики формата JPG

Спецификация JPG (официально — ISO/IEC 10918) описывает детальный процесс сжатия и декодирования. Формат поддерживает глубину цвета до 24 бит — по 8 бит на каналы красного, зелёного и синего. Это позволяет хранить до 16,7 миллионов цветов, чего достаточно для фотореалистичных изображений. Дополнительно существует режим с 12-битной точностью на канал, но он используется редко.

Процесс сжатия строго регламентирован: изображение переводится в цветовое пространство YCbCr (яркость и две цветности), затем субдискретизируется (обычно 4:2:0, где цветовая информация хранится в два раза реже по горизонтали и вертикали, чем яркость). Далее следуют блочное ДКП 8×8, квантование с использованием предопределённых таблиц (стандартных или пользовательских) и энтропийное кодирование.

Файл JPG состоит из сегментов — маркеров, которые идентифицируют начало изображения, таблицы квантования, таблицы Хаффмана, сами сжатые данные и конец файла. Максимальный размер изображения в JPG теоретически не ограничен стандартом, но на практике декодеры обычно поддерживают разрешения до 65535×65535 пикселей. Именно благодаря чёткой спецификации JPG остаётся эталоном, с которым сравнивают все новые форматы сжатия.

PNG — Без потерь и с прозрачностью

1. Формат файлов PNG

PNG — это цифровой контейнер, который хранит каждый пиксель изображения с математической точностью. Расшифровывается аббревиатура как Portable Network Graphics, и это название отражает его главную миссию: быть идеальным форматом для интернета. В отличие от JPG, здесь нет сжатия с потерями — каждый цвет, каждая точка сохраняется без изменений, байт в байт.

Внутри файла PNG данные организованы в виде «кусочков» — критических и вспомогательных блоков (chunks). Это напоминает книгу с главами: есть обязательные разделы (заголовок, палитра, данные пикселей) и дополнительные (текстовые комментарии, гамма-коррекция, временные метки). Такая структура позволяет программам читать только нужные блоки, игнорируя остальные.

Важнейшая особенность PNG — поддержка альфа-канала. Это четвёртое измерение цвета, которое описывает прозрачность каждого пикселя: от полностью непрозрачного (255) до абсолютно невидимого (0). Благодаря этому PNG стал стандартом для веб-дизайна: логотипы, иконки, элементы интерфейса с плавными тенями и скруглениями — всё это его территория.

2. Как происходит ресайз PNG

Изменение размера PNG начинается с распаковки всего содержимого. Конвертер считывает блоки данных, применяет обратные фильтры и разворачивает сжатый Deflate-поток, восстанавливая полную пиксельную матрицу. При этом альфа-канал тоже декодируется вместе с цветами — прозрачность остаётся частью массива.

Теперь у системы есть картинка в оперативной памяти, но нужного размера. Движок применяет алгоритм ресемплинга — например, бикубической интерполяции для увеличения или усреднения для уменьшения. При увеличении система вычисляет новые пиксели на основе окружения, сглаживая переходы. При уменьшении она объединяет несколько пикселей в один, усредняя их цвета и прозрачность. Это важно, чтобы прозрачные края не становились слишком жёсткими или «грязными».

Финальный этап — обратное кодирование в PNG. Полученный массив снова проходит через фильтры, которые подготавливают данные для сжатия Deflate, и упаковывается в структуру блоков. При этом альфа-канал сохраняется так же, как и цвет. Таким образом, ресайз PNG — это «пересборка» изображения с учётом прозрачности, без единой потери информации о цвете.

3. Как происходит сжатие PNG

Сжатие PNG состоит из двух этапов, и первый из них — фильтрация. Конвертер проходит по каждой строке пикселей и предсказывает значение пикселя на основе соседних (слева, сверху, по диагонали). Затем система вычисляет разницу между реальным пикселем и предсказанным — так называемую «невязку». Это делается для того, чтобы превратить хаотичные данные в более упорядоченные числа, которые легче сжимать.

Существует пять типов фильтров, каждый из которых использует разные комбинации соседних пикселей для предсказания. Конвертер может попробовать все и выбрать тот, который даёт наименьшие значения невязок. Это интеллектуальная оптимизация, выполняемая в реальном времени, хотя она и увеличивает время обработки.

Второй этап — непосредственно сжатие Deflate, которое используется и в ZIP-архивах. Этот алгоритм ищет повторяющиеся цепочки байтов в потоке невязок и заменяет их короткими ссылками. Например, если в изображении есть большая область одного цвета (синее небо), Deflate найдёт повторяющийся узор и сожмёт его в несколько байт. В итоге PNG получается больше, чем JPG для фото, но для графики с чёткими контурами и небольшим количеством цветов он даёт отличное сжатие без потерь.

4. История возникновения PNG

Создание PNG было продиктовано патентной политикой 1990-х годов. Тогда основным форматом для изображений с прозрачностью был GIF, но компания Unisys в 1994 году заявила, что алгоритм сжатия LZW, используемый в GIF, защищён патентом, и потребовала лицензионные отчисления. Интернет-сообщество взбунтовалось — идея платить за использование популярного формата казалась абсурдной.

Томас Боутелл, инженер-программист, вместе с группой энтузиастов начал разработку альтернативы. Цель была амбициозна: создать свободный, не запатентованный формат, который превзойдёт GIF по всем параметрам. В 1995 году вышел PNG 1.0, а через год — версия 1.1 с поддержкой альфа-канала. Формат сразу же занял свою нишу: он поддерживал прозрачность, работал быстрее и давал лучшее сжатие на графических изображениях.

Со временем PNG стал стандартом W3C для веб-графики. Он пережил патентные войны и до сих пор остаётся основным форматом для дизайнеров и веб-разработчиков. Интересный факт: несмотря на название Portable Network Graphics, изначально формат планировали назвать PING (созвучно звуку сонара), но от этой идеи отказались из-за совпадения с сетевым инструментом ping.

5. Преимущества PNG

Главное преимущество PNG — сжатие без потерь. Это означает, что при сохранении файл никак не изменяется: если вы откроете PNG, отредактируете и сохраните снова, качество останется идентичным. Для дизайнеров и веб-разработчиков это критически важно: логотипы, иконки и элементы интерфейса должны выглядеть безупречно при любом количестве правок.

Второе ключевое преимущество — поддержка альфа-канала с 8-битной глубиной (256 градаций прозрачности). Это позволяет создавать плавные тени, полупрозрачные стеклянные эффекты и любые скруглённые края без «лесенок» на границах. GIF тоже поддерживает прозрачность, но только бинарную — либо полностью видимый, либо полностью прозрачный.

PNG также отличается гибкостью в цветопередаче: он поддерживает индексированные цвета (палитру до 256 цветов, как у GIF), полутоновые изображения, полноцветные RGB и даже 48-битный цвет — по 16 бит на канал для профессиональной графики. Кроме того, формат хранит гамма-информацию, что позволяет корректно отображать изображения на разных мониторах.

6. Спецификация, технические характеристики формата PNG

Спецификация PNG описана в документе RFC 2083 (1997 года) и является открытым стандартом W3C. Формат использует контейнерную архитектуру из блоков: каждый блок (chunk) начинается с 4-байтовой длины, 4-байтового типа и заканчивается 4-байтовой контрольной суммой CRC. Это делает формат устойчивым к повреждениям: даже если часть данных испорчена, программа может прочитать остальные блоки.

Глубина цвета варьируется: 1, 2, 4, 8 или 16 бит на канал. Индексированные изображения могут иметь максимум 256 цветов. Альфа-канал может быть включён отдельно для каждого канала (например, оттенки серого + альфа) или как полноценный RGBA. Максимальный размер PNG-изображения ограничен 2³¹−1 пикселей по каждой стороне — практически бесконечно для современных задач.

Процесс сжатия строго стандартизирован: фильтрация по пяти типам, затем сжатие Deflate с окном до 32768 байт. Хотя это и увеличивает размер по сравнению с JPG, гарантия сохранения каждого пикселя делает PNG незаменимым для текстур, макетов и изображений с текстом, где важна каждая чёрточка.

WebP — Гибрид двух миров

1. Формат файлов WebP

WebP — это гибридный формат, созданный Google как наследник и JPG, и PNG одновременно. Он способен работать в двух режимах: сжатие с потерями (как JPG) и сжатие без потерь (как PNG), а также поддерживает анимацию (как GIF) и прозрачность. В одном файле может быть всё — и это его главная «фишка».

В основе WebP с потерями лежат внутрикадровые предсказания — технология, позаимствованная из видео-кодека VP8. Вместо того чтобы кодировать каждый блок 8×8 с помощью ДКП, как в JPG, WebP сначала «предсказывает» блок на основе соседних, а затем кодирует только разницу. Это даёт лучшую компрессию на сложных изображениях при меньшей заметности артефактов.

Для сжатия без потерь WebP использует другой подход: он сканирует изображение и строит словарь повторяющихся фрагментов (как в архиваторах), но делает это более умно, с учётом локального контекста. WebP-файлы упаковываются в контейнер RIFF — ту же структуру, что используют WAV-аудио и AVI-видео. Это позволяет ему быть универсальным и поддерживать расширенные метаданные.

2. Как происходит ресайз WebP

При ресайзе WebP конвертер сначала полностью декодирует файл. Если файл был сохранён со сжатием с потерями, система восстанавливает пиксели через обратное предсказание и преобразование. Если без потерь — распаковывает словарь и собирает из него исходную матрицу. В любом случае в памяти появляется полный массив пикселей с альфа-каналом (если он был).

Затем движок применяет алгоритмы интерполяции, рассчитывая новые пиксели для целевого разрешения. При увеличении WebP сохраняет плавность переходов; при уменьшении — усредняет соседние пиксели, чтобы избежать искажений. Если в файле была прозрачность, она также ресэмплируется вместе с цветами — система вычисляет новую прозрачность для каждого пикселя.

Финальный этап — повторное кодирование в WebP. Полученный массив передаётся в модуль WebP, который снова применяет предсказания (для режима с потерями) или строит словарь (для без потерь), после чего упаковывает данные в контейнер RIFF. Таким образом, ресайз WebP — это полноценная трансформация с перекодированием, а не просто изменение заголовков.

3. Как происходит сжатие WebP

Сжатие WebP с потерями начинается с того, что конвертер разбивает изображение на макроблоки — квадраты 16×16 пикселей. Для каждого такого блока система анализирует соседние блоки и предсказывает его содержимое на основе уже закодированных данных. Это как если бы мы угадывали следующий кадр в видео, опираясь на предыдущий — отсюда и высокое качество предсказания.

После предсказания вычисляется разница между реальным блоком и предсказанным — так называемый «остаточный сигнал». Этот остаток преобразуется с помощью дискретного косинусного преобразования (или похожего на него) и квантуется, как в JPG, но с адаптивной таблицей квантования, которая меняется в зависимости от содержимого изображения. Это позволяет сохранить больше деталей там, где они важны.

Для сжатия без потерь WebP использует собственную технологию: он сканирует строки пикселей и строит локальные словари повторяющихся цепочек. При этом он может выбирать разные стратегии для разных участков — например, кодировать текст как шаблоны, а градиенты — как математические функции. Финальная упаковка использует алгоритм, близкий к LZ77, что даёт отличное сжатие для графики и логотипов. В результате на выходе получается файл с размером на 20–30% меньше, чем JPG того же качества.

4. История возникновения WebP

История WebP начинается в 2010 году, когда Google объявила о создании нового формата изображений на основе технологии, купленной вместе с видео-кодеком On2 Technologies (позже ставшим VP8). Инженеры задались простой целью: сделать формат, который передаёт картинку лучше, чем JPG, при меньшем размере, и при этом полностью свободный от патентов. Название — отсылка к английскому «web picture» и произносится как «веб-пи».

Выход WebP совпал с ростом требований к скорости загрузки веб-страниц. Google интегрировала поддержку формата в свои сервисы — поисковую выдачу, Chrome-браузер и рекламную платформу, быстро создав экосистему вокруг нового стандарта. Первые версии поддерживали только сжатие с потерями, но уже к 2011 году появился режим без потерь и поддержка прозрачности.

В 2013 году WebP получил анимацию, что сделало его прямым конкурентом GIF. В 2018 году была добавлена поддержка ICC-профилей и EXIF-метаданных. Сегодня WebP поддерживается всеми современными браузерами, кроме старых версий Internet Explorer, и активно вытесняет JPG и PNG в веб-дизайне, особенно на мобильных устройствах, где скорость загрузки критична.

5. Преимущества WebP

Главное преимущество WebP — это гибкость. Он может работать и как JPG (с потерями, но меньший размер), и как PNG (без потерь, с прозрачностью), и как GIF (анимация). При этом он занимает меньше места, чем любой из этих форматов при сопоставимом качестве — на 25–34% меньше JPG и на 26–34% меньше PNG. Это делает его универсальным солдатом для любой задачи.

Второе важное преимущество — поддержка анимации с альфа-каналом. В отличие от GIF, который ограничен 256 цветами и бинарной прозрачностью, WebP может хранить анимированные последовательности с полноцветными полупрозрачными кадрами. Это открывает двери для сложных веб-анимаций с плавными переходами, которые весят меньше, чем видео.

Также WebP поддерживает прогрессивную загрузку (постепенное проявление картинки) и высокую скорость декодирования. Благодаря оптимизациям из мира видео, процесс распаковки WebP быстрее, чем у PNG, что ускоряет рендеринг страниц. И, наконец, формат полностью свободен от патентов — в отличие от GIF с его LZW-ограничениями.

6. Спецификация, технические характеристики формата WebP

Спецификация WebP основана на контейнере RIFF (Resource Interchange File Format). Файл начинается с четырёхбайтовой сигнатуры «RIFF», затем указывается общий размер файла, затем четырёхбайтовый тип «WEBP». Далее следуют чанки (как в PNG, но проще) — например, чанк «VP8» для сжатых данных с потерями или «VP8L» для сжатия без потерь, и «ANIM» для анимации.

Для режима с потерями WebP использует внутрикадровое предсказание на основе VP8, с размером макроблоков 16×16 и субблоков 4×4. Квантование адаптивное — коэффициенты могут меняться на уровне макроблока. Поддерживаются цветовые пространства YUV 4:2:0 и 4:4:4, а также глубина цвета 8 бит на канал (24 бита RGB).

Для режима без потерь WebP использует собственную схему кодирования с построением локальных словарей и энтропийным кодированием. Поддерживаются как индексированные цвета, так и полный RGBA. Максимальный размер изображения ограничен 16384×16384 пикселей, что достаточно для большинства задач. Спецификация описывает поведение декодера и требования к битовому потоку, что гарантирует совместимость между реализациями.

AVIF — Будущее сжатия

1. Формат файлов AVIF

AVIF (AV1 Image File Format) — это самый молодой и технологически продвинутый формат в этой компании. В его основе лежит видео-кодек AV1, созданный консорциумом AOMedia (Alliance for Open Media) как свободный и высокоэффективный стандарт для интернета. AVIF — это просто изображение, сжатое так, как если бы это был один кадр из видео, но с дополнительными фишками для статичных картинок.

Внутри AVIF использует контейнер HEIF (High Efficiency Image File Format) — ту же структуру, что и файлы .heic на iPhone. Это современная архитектура, которая позволяет хранить не только изображения, но и последовательности, метаданные, карты глубины и даже 3D-информацию. Для конечного пользователя это просто картинка, но под капотом — сложная инженерия.

AVIF поддерживает всё, что умеют конкуренты, и даже больше: сжатие с потерями и без потерь, прозрачность, анимацию, HDR (расширенный динамический диапазон) с широкой цветовой гаммой (как Rec.2020), а также 10- и 12-битную глубину цвета. При этом размеры файлов значительно меньше, чем у WebP, а качество — выше. Это делает AVIF главным претендентом на роль формата будущего.

2. Как происходит ресайз AVIF

Процесс ресайза AVIF начинается с декодирования: конвертер извлекает данные из контейнера HEIF, проходит через обратное энтропийное кодирование, обратное квантование и обратное преобразование, восстанавливая полную пиксельную матрицу. Если файл содержит альфа-канал, он декодируется отдельно, но синхронно с цветами. В памяти появляется изображение в цветовом пространстве RGB с полной точностью.

Далее движок изменяет размер с помощью интерполяции — алгоритм выбирается автоматически в зависимости от задачи. Для увеличения применяется бикубическая интерполяция, которая даёт плавные края. Для уменьшения — усреднение с учётом весов, чтобы избежать муара и потери деталей. Если в файле была информация о цветовом пространстве (например, HDR), она сохраняется в массиве.

Финальный этап — обратное кодирование в AVIF. Полученный массив снова преобразуется в YUV, проходит через преобразование (обычно DCT или тот же AV1), квантуется и упаковывается энтропийным кодом. Важно, что цветовое пространство и глубина цвета остаются такими же, как у оригинала — AVIF не упрощает их при ресайзе. На выходе — новый AVIF-файл с изменённым разрешением.

3. Как происходит сжатие AVIF

Сжатие AVIF опирается на технологии видео-кодека AV1, который использует блочную структуру с размерами от 4×4 до 128×128 пикселей. Конвертер сначала разбивает изображение на суперблоки, затем применяет внутрикадровое предсказание с 56 различными режимами (направления, усреднение, комбинации соседей). Это колоссальное разнообразие позволяет системе максимально точно предсказать содержимое каждого блока.

После предсказания вычисляется остаток (разница), который преобразуется с помощью нескольких типов преобразований — DCT, ADST (адаптивное синусное) или их комбинаций. Квантование в AVIF происходит с учётом восприятия: система изменяет шаг квантования на основе того, насколько заметны искажения для глаза. Она использует модель человеческого зрения, чтобы спрятать потери в областях, где глаз их не заметит.

Финальный этап — энтропийное кодирование с использованием алгоритма на основе контекста, который адаптируется к локальной статистике данных. После кодирования результат упаковывается в контейнер HEIF, где также сохраняется информация о цветовом пространстве, ICC-профилях и метаданных. В итоге AVIF даёт сжатие на 30–50% лучше, чем WebP, при том же визуальном качестве.

4. История возникновения AVIF

AVIF родился как производное от видео-кодека AV1, который был анонсирован в 2018 году консорциумом AOMedia, включающим Google, Apple, Netflix, Amazon, Microsoft и многих других гигантов. Цель была грандиозной: создать полностью свободный, не запатентованный видео-кодек, который превзойдёт все существующие стандарты. AV1 стал результатом многолетней работы над улучшением сжатия, и его применение к статическим изображениям было логичным шагом.

Официально формат AVIF (файлы .avif) был стандартизирован в 2019 году группой MPEG как часть стандарта ISO/IEC 23000-22. Он сразу привлёк внимание индустрии: Netflix объявила о поддержке AVIF для превью, а Apple добавила его в macOS и iOS. В 2020 году Google Chrome и Mozilla Firefox начали поддерживать AVIF из коробки.

Интересно, что AVIF не создавался с нуля — он использует проверенную архитектуру HEIF (которая уже применялась в HEIC на iPhone) и заменяет внутри только алгоритм сжатия на AV1. Это позволило быстро внедрить новый формат, используя существующие контейнеры. Сегодня AVIF — самый быстрорастущий формат в вебе, поддерживаемый во всех современных браузерах и многих приложениях.

5. Преимущества AVIF

Самое главное преимущество AVIF — это его беспрецедентное сжатие. При сопоставимом с JPG или WebP визуальном качестве файл занимает на 30–50% меньше места. Для веб-сайтов это означает более быструю загрузку, экономию трафика и улучшение Core Web Vitals. Для пользователей — меньшее время ожидания, особенно на мобильных сетях.

Второе важное преимущество — поддержка HDR (High Dynamic Range) с 10- и 12-битной глубиной цвета. Это позволяет хранить изображения с миллиардами оттенков, которые выглядят реалистичнее на современных экранах. Формат также поддерживает широкие цветовые гаммы (BT.2020), что делает его идеальным для профессиональной фотографии и дизайна.

Третье преимущество — полная свобода от патентов. Как и WebP, AVIF создан открытой ассоциацией и не требует лицензионных отчислений. Это делает его безопасным выбором для крупных корпораций и стартапов. Кроме того, AVIF поддерживает прозрачность, анимацию, монохромные изображения, а также может хранить несколько изображений в одном файле — например, для формата «картинка-в-картинке».

6. Спецификация, технические характеристики формата AVIF

Спецификация AVIF описана в стандарте ISO/IEC 23000-22 (MPEG-A). Формат использует контейнер HEIF (High Efficiency Image File Format), который хранит изображения в виде последовательности «элементов» — это могут быть цветные данные, альфа-канал, глубина, метаданные или даже плашечные изображения. Каждый элемент имеет свой идентификатор и тип.

Глубина цвета варьируется от 8 до 12 бит на канал, с поддержкой цветовых пространств RGB, YUV (4:2:0, 4:2:2, 4:4:4) и монохромных режимов. Максимальный размер изображения ограничен 16384×16384 пикселей (как в WebP), но стандарт позволяет расширить этот лимит. Поддерживаются профили, описывающие цветовое пространство, гамму и передаточные функции (SDR, HDR, PQ, HLG).

Кодирование основано на видео-кодеке AV1, который использует сложную модель предсказания и адаптивное квантование. Процесс включает в себя выбор оптимального размера блока, режима предсказания и типа преобразования. Хотя кодирование AVIF более ресурсоёмкое, чем у JPG или WebP, это окупается лучшим качеством на бит. Спецификация также описывает алгоритмы декодирования, гарантируя совместимость между всеми реализациями.