22.04.2024

Опубликованы libavif 1.0 и SVT-AV1 1.7, библиотеки для форматов изображений AVIF и видео AV1

Опубликован первый стабильный выпуск библиотеки libavif 1.0, предлагающей кодировщик и декодировщик для формата изображений AVIF (AV1 Image Format), в котором задействованы технологии внутрикадрового сжатия из формата кодирования видео AV1. Контейнер для распространения сжатых данных в AVIF полностью аналогичен HEIF. AVIF поддерживает как изображения в расширенном динамическом диапазоне (HDR, High Dynamic Range) и цветовом пространстве Wide-gamut, так и в стандартном динамическом диапазоне (SDR). В браузерах поддержка AVIF доступна начиная с выпусков Firefox 77 и Chrome 85. Код библиотеки libavif написан на языке Си и распространяется под лицензией BSD.

Новая версия примечательна завершением активной фазы разработки и базовой стабилизацией ABI, который отныне по возможности будет поддерживаться без нарушений обратной совместимости. При этом по сравнению с прошлым выпуском в версии 1.0 внесено достаточно много изменений, нарушающих обратную совместимость на уровне ABI, среди которых добавление новых полей в структуры avifImage, avifEncoder, avifDecoder и avifRGBImage, а также унификация значений, возвращаемых функциями avifEncoderSetCodecSpecificOption(), avifRGBImageAllocatePixels(), avifRWDataRealloc(), avifRWDataSet(), avifImageSetProfileICC(), avifImageSetMetadataExif() и avifImageSetMetadataXMP().

Серди добавленных улучшений:

  • Добавлена возможность сборки в форме статически связываемой библиотеки.
  • Добавлена поддержка чтения и записи метаданных clli (content light level information).
  • В структуры avifEncoder и avifDecoder добавлен элемент repetitionCount, отражающий число повторов при показе анимированных изображений.
  • В структуру avifEncoder добавлены элементы quality и qualityAlpha.
  • В утилиту avifenc добавлены флаги: «—target-size» для автоматического выбора уровня качества, соответствующего желаемому результирующему размеру, «—no-overwrite» для запрета перезаписи существующих файлов, «—clli» для выставления метаданных clli.
  • В API добавлены функции avifImageIsOpaque(), avifImagePlane(), avifImagePlaneRowBytes(), avifImagePlaneWidth() и avifImagePlaneHeight().
  • Добавлен экспериментальный API для кодирования AVIF с поддержкой прогрессивной загрузки.
  • Реализовано преобразование цветовой модели YUV в RGB в многопоточном режиме.
  • Добавлена экспериментальная поддержка кодека AV2, включаемая при сборке с флагом AVIF_CODEC_AVM.
  • Добавлена экспериментальная поддержка цветового пространства YCgCo-R, включаемая при сборке с флагом AVIF_ENABLE_EXPERIMENTAL_YCGCO_R.
  • Cледом выпущена корректирующая версия 1.0.1 в которой устранён сбой при сборке.

Дополнительно можно отметить выпуск библиотеки SVT-AV1 1.7 (Scalable Video Technology AV1) c реализациями кодировщика и декодировщика формата кодирования видео AV1, для ускорения которых задействованы присутствующие в современных CPU Intel средства аппаратного распараллеливания вычислений. Для использования SVT-AV1 необходим процессор x86_64 с поддержкой инструкций AVX2. Проект создан компанией Intel в партнёрстве с Netflix с целью достижения уровня производительности, пригодного для перекодирования видео на лету и применения в сервисах, отдающих видео по запросу (VOD). В настоящее время разработка ведётся под эгидой альянса Open Media (AOMedia), курирующего развитие формата кодирования видео AV1. Ранее проект развивался в рамках проекта OpenVisualCloud, который также разрабатывает кодировщики SVT-HEVC и SVT-VP9. Код распространяется под лицензией BSD.

В новой версии SVT-AV1:

  • Для всех пресетов уровень качества повышен на 0.3-4.5% при оценке при помощи метода BD-Rate (Bjontegaard-Delta).
  • Для пресетов MR-M13 оптимизированы компромиссы качество/скорость при использовании режима произвольного доступа.
  • Добавлен экспериментальный режим оптимизации SSIM, позволяющий на 3-4% улучшить показатели режима оценки качества SSIM BD (Structure Similarity Index Metric Bjontegaard-Delta).
  • Структурирована информация о пресетах: пресеты M2 и M3 в версии 1.7 на 50% быстрее пресетов M1 и M2 в версии 1.6 при идентичном с ними уровне качества, аналогично пресет M4 на 40% быстрее идентичного по уровню качества пресета M3 из версии 1.6, M5 на 30% быстрее M4, а M6 на 25% быстрее M5.

Источник: https://www.opennet.ru/opennews/art.shtml?num=59679 Источник.