Опубликован выпуск библиотеки SVT-AV1 4.2.0 (Scalable Video Technology AV1) c реализациями кодировщика и декодировщика формата кодирования видео AV1, для ускорения которых задействованы присутствующие в процессорах x86_64 и ARM расширения для аппаратного распараллеливания вычислений. Проект создан компанией Intel в партнёрстве с Netflix с целью достижения уровня производительности, пригодного для перекодирования видео на лету и применения в сервисах, отдающих видео по запросу (VOD). В настоящее время разработка ведётся под эгидой альянса Open Media (AOMedia), курирующего развитие формата кодирования видео AV1. Ранее проект развивался в рамках проекта OpenVisualCloud, который также разрабатывает кодировщики SVT-HEVC и SVT-VP9. Код распространяется под лицензией BSD.
SVT-AV1 может быть собран для систем на базе любых архитектур, для которых имеется компилятор с поддержкой стандарта C99, но наилучшая производительность достигается на системах x86_64, для которых применяются ассемблерные оптимизации на базе инструкций SIMD (желательно наличие в CPU поддержки AVX2, но в качестве минимума достаточно и SSE2). Потребление памяти зависит от числа задействованных при кодировании процессорных ядер, регулируемых опцией "--lp". Из-за усложнения применяемых в AV1 алгоритмов, для кодирования данного формата требуется существенно больше ресурсов, чем для других форматов.
Среди изменений в новом выпуске SVT-AV1:
- Реализован новый режим оптимизации TUNE-VMAF, позволяющий экономить до 15% битрейта при том же уровне визуального качества в соответствии с метрикой VMAF, оценивающей человеческое восприятие, и незначительном уменьшении качества по метрике PSNR, оценивающей точность воспроизведения исходных данных на уровне пикселей.
- Реализован однопоточный режим кодирования, который можно использовать с режимом случайного доступа (Random Access).
- В пресетах M3-M5 проведена оптимизация компромиссов качество/скорость при кодировании в режиме случайного доступа.
- Добавлены новые опции командной строки: --cqp, --enable-intrabc, --hbd-mds, --enable-kf-tf.
- Добавлена поддержка вывода в raw-формате OBU в дополнение к ранее поддерживаемому формату IVF.
- Проведена оптимизация компромиссов качество/скорость при кодировании в режиме "--rtc" (Real-Time Communications), а также повышена эффективность сжатия и снижено потребление памяти при кодировании в низких разрешениях. Добавлены параметры "--max-intra-bitrate-pct" и "--max-inter-bitrate-pct".
- Добавлен режим кодирования в реальном времени с постоянным битрейтаом - CBR (Constant Bitrate), реализованный с использованием фильтра Калмана и поддерживающий цикличное обновление с размазыванием сложных изменений по нескольким кадрам и перекодирование кадров с худшим качеством, если они не укладываются в заданный битрейт.
- В режиме "--rtc" добавлена поддержка динамического изменения настроек битрейта и пресетов на лету.
- Добавлен API для управления опорными кадрами, поддерживающий LTR (Long-Term Reference) и двухуровневую структуру наборов опорных кадров (RPS, Reference Picture Set).
- Переработана реализация энтропийного кодирования, в которой обеспечена прямая запись в буфер сегментов (tile-buffer), упрощён арифметический кодер и реализовано отсечение остаточных данных после квантования.
- Добавлены новые оптимизации CDEF (Constrained Directional Enhancement Filter) для исключения размытия в областях смены контраста, MD (Mode Decision) и ME (Motion Estimation) для быстрой обработки статичных объектов.
- Оптимизировано определение наличия на видео изображения с содержимым экрана для применения специфичных методов кодирования для сохранения чёткости текста.
- Добавлена сборочная опция ENABLE_STACK_PROTECTOR для отключения флага "-fstack-protector", позволяющая убрать накладные расходы на проверку переполнения стека.
- Добавлены дополнительные оптимизации для архитектуры ARM и задействованы расширенные инструкции NEON для ускорения вычислений.
Источник: https://www.opennet.ru/opennews/art.shtml?num=65903






