Rav1e - это видеокодер AV1, что разработан, чтобы охватить все варианты использования, хотя в нынешнем виде он больше подходит для случаев, когда libaom. Рав1e обеспечивает высокопроизводительное кодирование видео. Кодировщик это написано на Rust и отличается от эталонного кодировщика 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%, по сравнению с первой версией (в зависимости от настроек кодировки).
С другой стороны, также подчеркивается, что добавлена опция "сериализации" в интерфейс cli для сериализации и десериализации параметров кодирования.
Флаг –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/
И вуаля, если вы хотите узнать об использовании rav1e, вы можете проконсультироваться по следующей ссылке.