Rav1e es un codificador de video AV1, que está diseñado para cubrir todos los casos de uso, aunque en su forma actual es más adecuado para los casos en que libaom. Rav1e cuenta con una codificación de vídeo de alto rendimiento. El codificador está escrito en Rust y difiere del codificador libaom de referencia en un aumento significativo de la velocidad de codificación y una mayor atención a la seguridad. El código del proyecto se distribuye bajo la licencia BSD.
Rav1e es compatible con todas las características principales AV1, incluyendo vnutrenne y cuadros codificados externamente (intra e inter -frames) superbloques 64×64, color submuestreo 4:2 0, 4:2:2 y 4:4:4, 8, codificación de profundidad de color de 10 y 12 bits, optimización de distorsión RDO (optimización de distorsión de velocidad), varios modos para predecir cambios entre cuadros y detectar transformaciones, controlar la velocidad de flujo y detectar el truncamiento de la escena.
El formato AV1 está notablemente por delante de x264 y libvpx-vp9 en términos de compresión, pero debido a la complejidad de los algoritmos, requiere significativamente más tiempo para la codificación (libaom está cientos de veces detrás de libvpx-vp9 y miles de veces detrás de x264).
El codificador rav1e proporciona 11 niveles de rendimiento, el más alto de los cuales permite velocidades cercanas a la codificación en tiempo real. El codificador está disponible tanto en forma de una utilidad de línea de comandos como en forma de biblioteca.
De sus principales características que se destacan de Rav1e:
- Tramas intra e inter
- Superbloques de 64×64
- Cuadrado seleccionado de 4×4 a 64×64 RDO y bloques rectangulares 2: 1/1: 2
- DC, H, V, Paeth, suave y un subconjunto de modos de predicción direccional
- DCT, (FLIP-) ADST y transformaciones de identidad (hasta 64×64, 16×16 y 32×32 respectivamente)
- Color de profundidad de 8, 10 y 12 bits
- 4:2:0 (soporte completo), 4:2:2 y 4:4:4 (limitado) muestreo de croma
- Configuraciones de velocidad variable
- Codificación casi en tiempo real a niveles de alta velocidad
Sobre la nueva versión de rav1e 0.2
En la nueva versión de rav1e se destaca que se llevaron a cabo diversas optimizaciones, que permitieron aumentar la productividad en un 40% -70%, en comparación con la primera versión (dependiendo de la configuración de codificación).
Por otra parte, también se destaca que se agregó la opción «serialize» a la interfaz cli para la serialización y deserialización de los parámetros de codificación.
El indicador –benchmark se ha agregado a cli para macOS y Linux y también se agregó la capacidad de configurar la segmentación utilizando la opción SpeedSetting (deshabilitada de forma predeterminada, ya que puede provocar la desincronización).
Además de que las compilaciones ahora usan el formato dwarf de depuración para los objetivos que lo admiten, antes de que fuera una mezcla de dwarfy stabs debido a los valores predeterminados de nasm.
¿Cómo instalar rav1e en Ubuntu y derivados?
Para quienes estén interesados en poder instalar este codificador de AV1 en su sistema, deben saber que actualmente rav1e se encuentra disponible para ser compilado en Linux aun que para Windows se encuentra un exe disponible.
En este caso nos interesa poder instalarlo en Ubuntu y en sus derivados por lo que para poder hacer esto, deben contar con Rust instalado en su sistema.
Si no cuentas con ello, lo que debes hacer es abrir una terminal en tu sistema (lo puedes hacer con el atajo de teclas Ctrl + Alt + T) y en ella vas a teclear los siguientes comandos:
sudo apt install curl curl https://sh.rustup.rs -sSf | sh
Posteriormente solo tenemos que teclear la opción 1 y se instalara. Hecho esto vamos a configurar el entorno para el compilador de Rust con:
source $HOME/.cargo/env
Ahora para instalar rav1e, vamos a teclear:
sudo apt -y install cargo git perl nasm cmake clang pkg-config
Clonamos el código de rav1e:
git clone https://github.com/xiph/rav1e.git mv rav1e rav1e-git cd rav1e-git
Y comenzamos con la compilación:
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/
Y listo, si quieres conocer sobre el uso de rav1e puedes consultar el siguiente enlace.