Выпуск rav1e 0.5, кодировщика AV1

Состоялся релиз rav1e 0.5.0, кодировщика формата кодирования видео AV1. Продукт развивается сообществами Mozilla и Xiph и отличается от эталонной реализации libaom, написанной на языках C/C++, увеличением скорости кодирования и повышенным вниманием к обеспечению безопасности (эффективность сжатия пока отстаёт). Продукт написан на языке программирования Rust с ассемблерными вставками, код распространяется под лицензией BSD. Готовые сборки подготовлены для Windows и macOS (сборки для Linux временно пропущены из-за проблем с системой непрерывной интеграции).

В rav1e поддерживаются все основные возможности AV1, включая поддержку внутренне- и внешне-кодированных кадров (intra- и inter-кадров), суперблоков 64×64, цветовой субдискретизации 4:2:0, 4:2:2 и 4:4:4, 8-, 10- и 12-разрядного кодирования глубины цвета, RDO (Rate-distortion optimization) оптимизации искажений, различные режимы предсказания межкадровых изменений и выявления трансформаций, управление скоростью потока и выявление усечения сцены.

Формат AV1 заметно опережает H.264 и VP9 по возможностям сжатия, но из-за усложнения реализующих их алгоритмов требует существенно больше времени для кодирования (по скорости кодирования libaom отстаёт от libvpx-vp9 в сотни раз, а от x264 в тысячи раз). Кодировщик rav1e предоставляет 11 уровней производительности, наивысшие из которых позволяют добиться скорости, близкой к кодированию в режиме реального времени. Кодировщик доступен как в форме утилиты командной строки, так и в виде библиотеки.

В новой версии отмечаются следующие изменения:

  • Значительное ускорение работы кодека;

  • Исправление ошибки, приводившей к краху кодировщика при определённых размерах видео;
  • Использование инструкций AVX2 для значительного (до 13 раз) ускорения винеровского оценивания для 16 бит на канал. Аналогично добавлено использование SIMD-инструкций, позволившее ускорить вычисления до 7 раз в аналогичных условиях;
  • Масса мелких исправление и оптимизаций для платформ x86, arm32 и arm64.
Release. Ссылка here.