Выпуск 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

Дадаць каментар