dav1d

Высокопроизводительный программный декодер видеокодека AV1 с открытым исходным кодом, разработанный сообществом VideoLAN и FFmpeg. Библиотека реализует полную поддержку спецификации AV1, включая все инструменты кодирования и форматы пикселей, и оптимизирована для эффективного использования современных процессорных архитектур. dav1d использует низкоуровневые оптимизации (SIMD, многопоточность) для достижения высокой скорости декодирования при минимальном потреблении ресурсов, что делает его подходящим для использования в медиаплеерах, веб-браузерах и embedded-системах.

Особенности

  • полная поддержка стандарта AV1 (Alliance for Open Media Video Codec);
  • высокая производительность благодаря агрессивной оптимизации (SIMD, многопоточность);
  • низкое потребление памяти и эффективное управление кэшем процессора;
  • поддержка аппаратного ускорения через API (D3D11VA, VAAPI, Vulkan);
  • кроссплатформенность (Linux, Windows, macOS, Android, iOS).

Основные компоненты

Библиотека предоставляет API для декодирования видео в формате AV1, управления контекстом декодера и настройки параметров обработки (подробнее с документацией можно ознакомиться здесь):

Управление контекстом декодера

API для управления жизненным циклом декодера, включая создание и уничтожение контекста, настройку параметров и управление внутренним состоянием. Контекст хранит всю информацию о текущем сеансе декодирования, включая буферы, настройки и состояние потоков:

  • dav1d_open() — создание нового контекста декодера с указанием параметров;
  • dav1d_close() — закрытие контекста и освобождение ресурсов;
  • dav1d_flush() — сброс внутреннего состояния декодера (очистка буферов).

Декодирование кадров

Основные функции для обработки сжатого видеопотока и получения декодированных кадров. Поддерживают асинхронный и синхронный режимы работы, позволяя эффективно использовать многопоточность и аппаратное ускорение:

  • dav1d_send_data() — передача сжатых данных (OBU) в декодер для обработки;
  • dav1d_get_picture() — получение декодированного кадра из внутреннего буфера декодера;
  • dav1d_picture_unref() — уменьшение счетчика ссылок на кадр и освобождение памяти.

Настройка параметров декодера

Интерфейс конфигурации декодера, позволяющий оптимизировать производительность для конкретных сценариев использования. Включает настройку количества потоков, режимов аппаратного ускорения, форматов вывода и параметров качества:

  • dav1d_default_settings() — инициализация структуры настроек значениями по умолчанию;
  • dav1d_apply_settings() — применение измененных настроек к контексту декодера;
  • dav1d_get_frame_delay() — получение информации о задержке декодирования.

Управление памятью и буферами

Система управления памятью с поддержкой пользовательских аллокаторов и буферов. Позволяет интегрировать библиотеку в существующие системы управления ресурсами, минимизируя копирование данных и обеспечивая эффективное использование памяти:

  • dav1d_data_wrap() — создание объекта данных из пользовательского буфера с указанием функции освобождения;
  • dav1d_data_unref() — уменьшение счетчика ссылок на объект данных;
  • dav1d_picture_allocator() — установка пользовательского аллокатора для кадров.

Использование в проекте

Документация по использованию Conan-пакетов для разработки приложений для ОС Аврора.

На сервере Conan библиотеки заранее собраны и размещены под различные версии ОС Аврора 4 и ОC Аврора 5. Для данных версий представлены архитектуры armv7hl, aarch64 и x84_64.

Библиотеку можно использовать в проекте с помощью данного conanfile.py

from conan import ConanFile

class Application(ConanFile):
    settings = "os", "compiler", "arch", "build_type"
    generators = "PkgConfigDeps"

    requires = (
        "dav1d/1.4.3@aurora",
    )    

Процесс локальной сборки описан в документации.

dav1d

dav1d is a new AV1 cross-platform decoder, open-source, and focused on speed, size and correctness.
Лицензия
BSD-2-Clause
Версия
Домашняя страница
Скачать
x86_64
954.49 Kb
MD5: 287e765ae82c3897678fe0c9d3af94f3
Updated: 04.03.2026, 13:36:56
armv7
384.45 Kb
MD5: e61ccd5a621edd3c38bdfde70bcc5d53
Updated: 04.03.2026, 11:52:08
armv8
421.43 Kb
MD5: 5669b9b260ec0f223700a59f9b0f93b5
Updated: 04.03.2026, 11:51:45
Использование в проекте

Мы используем cookies для персонализации сайта и его более удобного использования. Вы можете запретить cookies в настройках браузера.

Пожалуйста ознакомьтесь с политикой использования cookies.