Google открыл код libgav1, нового декодировщика для формата AV1
06.10.2019 08:49
Компания Google опубликовала libgav1, новую реализацию декодировщика для формата кодирования видео AV1 (поддерживаются профили 0 и 1). В Libgav1 задействованы расширенные оптимизации на базе наборов инструкций NEON (ARM) и SSE4.1 (x86), позволяющие добиться более высокой производительности, чем при использовании эталонного декодировщика aomdec (libaom), который является исследовательским проектом и во многих областях требует дополнительных оптимизаций.
Исходные тексты libgav1 размещены в репозитории проекта Chromium, в котором начиная с выпуска Chromium/Chrome 74 для декодирования AV1 применялся другой альтернативный декодировщик dav1d, развиваемый проектами VideoLAN и FFmpeg. Из отличий упоминается фокусирование внимания на достижение максимальной производительности декодирования AV1 на платформе Android и задействование расширенных оптимизаций для архитектуры ARM. Код новой библиотеки распространяется под лицензией Apache 2.0 (проект dav1d и эталонный кодек libaom, поставляются под пермиссивной лицензией BSD, что не создаст проблем с переносом кода).
Первые тесты производительности libgav1 показали, что на текущем этапе развития libgav1 пока сильно отстаёт от dav1d, но эти тесты мало о чём говорят, так как проведены на оборудовании x86, в то время как основные оптимизации в libgav1 связаны с ускорением работы на мобильных устройствах на базе архитектуры ARM. В частности, разработчики libgav1 изначально заявляли, что в текущем виде в libgav1 внимание уделено только производительности для Android-устройств, а оптимизации для других платформ будут добавлены позднее. Тесты на ARM пока не проводились.
Напомним, что видеокодек 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%.