Rav1e е AV1 видеокодер, какво е проектиран да обхваща всички случаи на употреба, въпреки че в сегашния си вид е по-подходящ за случаи, когато libaom. Rav1e се отличава с високоефективно видео кодиране. Енкодер написано е на Ръжда и се различава от референтния libaom енкодер в значително увеличение на скоростта на кодиране и по-голямо внимание към сигурността. Кодът на проекта се разпространява под лиценза BSD.
Рав1е поддържа всички основни функции на AV1, включително вътрешни и външно кодирани кадри (вътрешно и междукадрово) 64 × 64 суперблокове, 4: 2 0, 4: 2: 2 и 4: 4: 4, 8 подсемплиране на цвят, кодиране на дълбочина на 10 и 12 бита, RDO (скорост Оптимизация на изкривяванията) оптимизация на изкривяванията, различни режими за предсказване на промените между кадрите и откриване на трансформации, контрол на скоростта на потока и откриване на прекъсване на сцената.
Форматът AV1 е забележимо пред x264 и libvpx-vp9 по отношение на компресията, но поради сложността на алгоритмите се изисква значително повече време за кодиране (libaom е стотици пъти зад libvpx-vp9 и хиляди пъти зад x264).
Енкодерът rav1e осигурява 11 нива на производителност, най-високата от които позволява скорости, близки до кодирането в реално време. Кодерът е достъпен както като помощна програма за команден ред, така и като библиотека.
От основните му характеристики които се открояват от Rav1e:
- Интра и интер кадри
- 64 × 64 Суперблокове
- Избран квадрат от 4 × 4 до 64 × 64 RDO и 2: 1/1: 2 правоъгълни блока
- DC, H, V, Paeth, плавен и подгрупа режими на предсказване на посока
- DCT, (FLIP-) ADST и трансформации на идентичност (съответно до 64 × 64, 16 × 16 и 32 × 32)
- 8, 10 и 12-битов цвят на дълбочина
- 4: 2: 0 (пълна поддръжка), 4: 2: 2 и 4: 4: 4 (ограничена) вземане на проби за цветност
- Променливи настройки на скоростта
- Кодиране почти в реално време при високи нива на скорост
Относно новата версия на rav1e 0.2
В новата версия на rav1e е подчертано, че бяха извършени различни оптимизации, това позволиУвеличете производителността с 40% -70%, в сравнение с първата версия (в зависимост от настройките за кодиране).
От друга страна, също се подчертава, че добавена опция "сериализиране" към клиентския интерфейс за сериализация и десериализация на параметри за кодиране.
Флагът –benchmark е добавен към cli за macOS и Linux и също така добави възможността за конфигуриране на насочване с помощта на опцията SpeedSetting (деактивирана по подразбиране, тъй като може да доведе до десинхронизация).
Освен, че сега компилациите използват формат за отстраняване на грешки за целите които го поддържат, преди да е бил смесица от джуджета, дължащи се на настройките по подразбиране на nasm.
Как да инсталирам rav1e на Ubuntu и деривати?
За тези, които се интересуват от възможността да инсталират този AV1 енкодер в своята система, те трябва да знаят това в момента rav1e е достъпен за компилиране на Linux въпреки че за Windows има наличен exe.
В този случай се интересуваме от възможността да го инсталираме в Ubuntu и неговите производни, така че за да направите това, те трябва да имат Rust инсталиран на тяхната система.
Ако го нямате, това, което трябва да направите, е отворете терминал на вашата система (можете да го направите с прекия път Ctrl + Alt + T) и в него ще въведете следните команди:
sudo apt install curl curl https://sh.rustup.rs -sSf | sh
По-късно трябва само да напишем опция 1 и тя ще бъде инсталирана. След като това бъде направено, ще конфигурираме средата за компилатора Rust с:
source $HOME/.cargo/env
Сега, за да инсталираме rav1e, ще напишем:
sudo apt -y install cargo git perl nasm cmake clang pkg-config
Клонираме кода на rav1e:
git clone https://github.com/xiph/rav1e.git mv rav1e rav1e-git cd rav1e-git
И започваме със компилацията:
git submodule update –init cmake aom_build/aom -DAOM_TARGET_CPU=x86_64 -DCONFIG_AV1_ENCODER=0 -DENABLE_TESTS=0 -DENABLE_DOCS=0 -DCONFIG_LOWBITDEPTH=1 make -j$(nproc) cargo build --release cp target/
И voila, ако искате да знаете за използването на rav1e, можете да се консултирате следната връзка.