Выпуск rav1e 0.3, кодировщика AV1 на языке Rust

9 февраля 2020 года

Состоялся выпуск rav1e 0.3, высокопроизводительного кодировщика формата кодирования видео AV1, развиваемого сообществами Xiph и Mozilla. Кодировщик написан на языке Rust и отличается от эталонного кодировщика libaom значительным увеличением скорости кодирования и повышенным вниманием к обеспечению безопасности (эффективность сжатия пока отстаёт). Код проекта распространяется под лицензией BSD.

Поддерживаются все основные возможности AV1, включая поддержку внутренне- и внешне-кодированных кадров ( intra- и inter-кадров), суперблоков 64x64, цветовой субдискретизации 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 уровней производительности, наивысшие из которых позволяют добиться скорости, близкой к кодированию в режиме реального времени. Кодировщик доступен как в форме утилиты командной строки, так и в виде библиотеки.

В новой версии:

  • Предложен более быстрый режим кодирования Speed 10;
  • Сокращён размер бинарных сборок (на платформе x86_64/Linux библиотека занимает около 3МБ);
  • Примерно на 14% сокращено время сборки;
  • Добавлен многопоточный фильтр для удаления блочных артефактов из видео (deblocking);
  • Для архитектуры x86_64 реализованы дополнительные оптимизации с использованием инструкций SIMD и расширено применение автовекторизации;
  • На 1/6 снижено число операций по выделению памяти;
  • В RDO (Rate-distortion optimization) улучшена логика подавления внутрикадровых искажений;
  • Некоторые операции переведены с использования арифметики с плавающей запятой на целочисленные вычисления;
  • На 1-2% улучшено качество кодирования на втором уровне скорости;
  • Добавлен новый фильтр предсказания направления движения (Intra edge);
  • Добавлена опция "-S" (--switch-frame-interval) для определения интервала переключения между кадрами;
  • Добавлена поддержка сборки для платформы wasm32-wasi ( WebAssembly System Interface).

Источники

править
 
 
Creative Commons
Эта статья содержит материалы из статьи «Выпуск rav1e 0.3, кодировщика AV1 на языке Rust», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.