Третий выпуск dav1d, декодировщика AV1 от проектов VideoLAN и FFmpeg
Сообщества VideoLAN и FFmpeg опубликовали третий выпуск (0.3) библиотеки dav1d с реализацией альтернативного свободного декодировщика формата кодирования видео AV1. Код проекта написан на языке Си (C99) с ассемблерными вставками (NASM/GAS) и распространяется под лицензией BSD. Реализована поддержка архитектур x86, x86_64, ARMv7 и ARMv8, и операционных систем Linux, Windows, macOS, Android и iOS.
Библиотека dav1d поддерживает все возможности AV1, включая расширенные виды субдискретизации и все заявленные в спецификации параметры управления глубиной цвета (8, 10 и 12 бит). Работа библиотеки протестирована на большой коллекции файлов в формате AV1. Ключевой особенностью dav1d является ориентация на достижение максимально возможной производительности декодирования и обеспечение качественной работы в многопоточном режиме.
В новой версии добавлены дополнительные оптимизации для ускорения декодирования видео при помощи инструкций SSSE3, SSE4.1 и AVX2. Скорость декодирования на процессороах с SSSE3 возросла на 24%, а на системах с AVX2 на 4%. Добавлен ассемблерный код для ускорения при помощи инструкций SSE4.1, использование которых позволило увеличить производительность на 26% по сравнению с неоптмизированной версией (по сравнению с оптимизациями на базе инструкций SSSE3 выигрыш на уровне 1.5%).
Также увеличена производительность декодировщика на мобильных устройствах с процессорами на базе архитектуры ARM64. Благодаря применению операций, использующих инструкции NEON, по сравнению с прошлым выпуском производительность увеличена примерно 12%.
По сравнению с эталонным декодировщиком aomdec (libaom) преимущество dav1d наиболее сильно ощущается при работе в многопоточном режиме (в некоторых тестах dav1d быстрее в 2–4 раза). В однопоточном режиме производительность отличается на уровне 10–20%.
Отмечается успех в задействовании dav1d в других проектах. По умолчанию dav1d теперь применяется в Chromium/Chrome 74 и Firefox 67 (раньше dav1d был включен для Windows, но теперь активирован для Linux и macOS). Продолжено использование dav1d в FFmpeg и VLC, запланирован переход на dav1d перекодировщика Handbrake.
Напомним, что видеокодек 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