Sortie de rav1e 0.3, un encodeur AV1 dans Rust

A eu lieu question rave1e 0.3, un encodeur de format de codage vidéo haute performance AV1, développé par les communautés Xiph et Mozilla. L'encodeur est écrit en Rust et diffère de l'encodeur libaom de référence en augmentant considérablement la vitesse d'encodage et en accordant une attention accrue à la sécurité. Code de projet distribué par sous licence BSD.

Toutes les principales fonctionnalités AV1 sont prises en charge, y compris la prise en charge
trames codées en interne et en externe (intra- и inter-frames), superblocs 64x64, sous-échantillonnage de chrominance 4:2:0, 4:2:2 et 4:4:4, encodage de profondeur de couleur 8, 10 et 12 bits, distorsion d'optimisation RDO (optimisation du taux de distorsion), divers modes pour prédire les changements inter-images et identifier les transformations, contrôler le débit et détecter la troncature de scène.

Le format AV1 est perceptible est en avance H.264 et VP9 en termes de capacités de compression, mais en raison de la complexité des algorithmes qui les mettent en œuvre nécessite beaucoup plus de temps pour l'encodage (en vitesse d'encodage, libaom est des centaines de fois derrière libvpx-vp9 et des milliers de fois derrière x264).
L'encodeur rav1e offre 11 niveaux de performances, dont le plus élevé offre des vitesses d'encodage quasiment en temps réel. L'encodeur est disponible à la fois en tant qu'utilitaire de ligne de commande et en tant que bibliothèque.

Dans la nouvelle version:

  • Mode d'encodage plus rapide proposé Vitesse 10;
  • La taille des assemblys binaires a été réduite (sur la plateforme x86_64/Linux la bibliothèque occupe environ 3 Mo) ;
  • Temps de montage réduit d'environ 14 % ;
  • Ajout d'un filtre multithread pour supprimer les artefacts de bloc de la vidéo (déblocage) ;
  • Pour l'architecture x86_64, des optimisations supplémentaires ont été implémentées à l'aide des instructions SIMD et l'utilisation de la vectorisation automatique a été étendue ;
  • Le nombre d'opérations d'allocation de mémoire a été réduit de 1/6 ;
  • En RDO (Rate-distortion optimisation), la logique de suppression des distorsions intra-trame a été améliorée ;
  • Certaines opérations ont été déplacées de l'utilisation de l'arithmétique à virgule flottante vers des calculs d'entiers ;
  • La qualité d'encodage au deuxième niveau de vitesse a été améliorée de 1 à 2 % ;
  • Добавлен nouveau filtre de prédiction de direction de mouvement (Intra Edge) ;
  • Ajout de l'option "-S" (--switch-frame-interval) pour déterminer l'intervalle de commutation entre les trames ;
  • Ajout du support de build pour la plateforme wasm32-wasi (Interface système WebAssembly).

Source: opennet.ru

Ajouter un commentaire