Випуск rav1e 0.3, кодувальника AV1 мовою Rust

Відбувся випуск rav1e 0.3, високопродуктивного кодувальника формату кодування відео AV1, що розвивається спільнотами Xiph і Mozilla. Кодувальник написаний мовою Rust і відрізняється від еталонного кодувальника libaom значним збільшенням швидкості кодування та підвищеною увагою безпеки. Код проекту поширюється під ліцензією BSD.

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

В новой версії:

  • Запропоновано швидший режим кодування Швидкість 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).

Джерело: opennet.ru

Додати коментар або відгук