Первый выпуск dav1d, декодировщика AV1 от проектов VideoLAN и FFmpeg

Сообщества VideoLAN и FFmpeg опубликовали первый выпуск библиотеки dav1d с реализацией альтернативного свободного декодировщика формата кодирования видео AV1. Выпуск 0.1 позиционируется как первая версия, пригодная для повседневного использования. Код проекта написан на языке Си (C99) с ассемблерными вставками (NASM/GAS) и распространяется под лицензией BSD. Реализована поддержка архитектур x86, x64, ARMv7 и ARMv8, и операционных систем Linux, Windows, macOS, Android и iOS.

Библиотека dav1d поддерживает все возможности AV1, включая расширеные виды субдискретизации и все заявленные в спецификации параметры управления глубиной цвета (8, 10 и 12 бит). Работа библиотеки протестирована на большой коллекции файлов в формате AV1. Ключевой особенностью dav1d является ориентация на достижение максимально возможной производительности декодирования и обеспечение качественной работы в многопоточном режиме. В тестах библиотека заметно опережает штатный декодировщик libaom, предлагаемый проектом AV1.

0_1544557078.png

Плюсом dav1d также является более компактная реализация: dav1d включает в 10 раз меньше кода по сравнению с libaom, а размер бинарного файла меньше в три раза. В процессе декодирования dav1d потребляет в 4 раза меньше памяти.

Из последних достижений проекта отмечается добавление поддержки инструкций SSSE3 для ускорения работы на старых системах и реализация ассемблерных оптимизаций для архитектуры ARMv8 (в однопоточном режиме libaom и dav1d на устройствах ARMv8 пока показывают примерно одинаковую производительность, но при многопоточной работе лидирует dav1d). Ведутся эксперименты по задействованию шейдеров для ускорения некоторых операций.

Напомним, что видеокодек AV1 разработан альянсом Open Media (AOMedia), в котором представлены такие компании, как Mozilla, Google, Microsoft, Intel, ARM, NVIDIA, IBM, Cisco, Amazon, Netflix, AMD, VideoLAN, CCN и Realtek. AV1 позиционируется как общедоступный и не требующий оплаты отчислений свободный формат кодирования видео, который заметно опережает H.264 и VP9 по уровню сжатия. Для всего диапазона протестированных разрешений в среднем AV1 обеспечивает тот же уровень качества при уменьшении битрейта на 13% по сравнению с VP9 и на 17% по сравнению с HEVC. На высоких битрейтах выигрыш увеличивается до 22–27% для VP9 и до 30–43% для HEVC. В тестах Facebook AV1 обогнал по уровню сжатия main profile H.264 (x264) на 50.3%, high profile H.264 на 46.2%, а VP9 (libvpx-vp9) на 34.0%.

© OpenNet