Несколько дней назад сообщества VideoLAN и FFmpeg объявили о выпуске новая версия библиотека dav1d 1.0.0. Это альтернативная бесплатная реализация декодера формата кодирования видео AV1.
Библиотека dav1d поддерживает все функции AV1, включая расширенные типы понижающей дискретизации и все параметры управления глубиной цвета, заявленные в спецификации (8, 10 и 12 бит). Библиотека протестирована на большой коллекции файлов в формате AV1.
Видеокодек AV1 был разработан Open Media Alliance. (AOMedia), в котором представлены такие компании, как Mozilla, Google, Microsoft, Intel, ARM, NVIDIA, IBM, Cisco, Amazon, Netflix, AMD, VideoLAN, CCN и Realtek.
AV1 позиционируется как формат кодирования видео в свободном доступе, не требующий уплаты комиссии, что заметно превосходит H.264 и VP9 с точки зрения сжатия.
Эталонный декодер для AV1 великолепен, но это исследовательская кодовая база, так что есть что улучшить. Вот почему сообщества VideoLAN, VLC и FFmpeg начали работу над новым декодером, спонсируемую Альянс открытых СМИ, чтобы создать эталонный оптимизированный декодер для AV1.
Ключевой особенностью dav1d является его ориентация на достижение производительности. возможна скорость декодирования и обеспечена качественная многопоточная работа.
Основные новые функции dav1d 1.0.0
В этой недавно выпущенной версии декодера были внесены различные незначительные исправления ошибок, о которых сообщалось ранее, а также реализованы важные функции.
И именно в этой новой версии dav1d 1.0.0 переделана организация многопоточности, включая автоматическое управление потоком, тем самым производительность была улучшена по сравнению с AVX2 по сравнению с SSE 4.1
Еще одно изменение, которое выделяется в этой новой версии, заключается в том, что добавлена возможность ускорения расчетов с использованием векторных инструкций AVX-512, а также улучшены ранее добавленные оптимизации на основе инструкций SSE2 и AVX2.
С другой стороны, мы можем обнаружить, что было предложено новый API, облегчающий использование графического процессора для ускорения и что добавлен API для получения информации о кадрах, с которыми возникли проблемы при декодировании.
В то время как на часть исправленных ошибок в этой новой версии упоминается следующее:
- Исправлена ошибка, из-за которой 32-разрядная библиотека Windows DLL не работала с функциями dav1d_ipred_*_ssse3.
- Исправлен сбой при воспроизведении, если в первом кадре нет ключевого кадра.
- Ошибки целочисленного переполнения, обнаруженные с помощью Libfuzzer
- Arm64 ASM не работает на Apple M1
- Сломанная сборка Android (неопределенный символ: pthread_getaffinity_np)
- Исправление проблем при компиляции ffmpeg с libdav1d в Windows.
- Ошибка компиляции (ошибки компоновщика «неопределенная ссылка») в Linux, если для флага Clang -fprofile-instr-generate установлено значение CFLAGS.
- Интенсивный поиск видеофайла создает случайные артефакты сбоя
- Ошибки не распространяются при использовании потоков фреймворка.
- Разрешить dav1d_get_picture возвращать информацию о том, какой пакет был плохим
- Добавить базовую многопоточность по умолчанию
- Тестовый пример Fuzzer дает 3 кадра с dav1d против 0 кадров с libaom.
- Внедрение значений по умолчанию для интеллектуальных потоков на основе содержимого и системы.
В конце концов если вы хотите узнать об этом больше об этой новой версии, а также о проекте этого декодера, вы можете проверить подробности По следующей ссылке.
Как установить декодер dav1d на Ubuntu и производные?
Те, кто заинтересован в возможности установить этот декодер в своих системах, могут сделать это, следуя инструкциям, которые мы приводим ниже.
В общем, для большинства дистрибутивов Linux, ребята из проекта VideoLan, предлагают пакет декодера с помощью пакета Snap.
Таким образом, чтобы установить его таким способом, достаточно, чтобы ваш дистрибутив поддерживал этот тип пакета.
В терминале им просто нужно выполнить следующую команду:
sudo snap install dav1d --edge