Article de reference

API d'accélération vidéo

Video Acceleration API ( VA-API ) est une interface de programmation d'application open source qui permet à des applications telles que le lecteur multimédia VLC ou GStreamer d'...

Video Acceleration API ( VA-API ) est une interface de programmation d'application open source qui permet à des applications telles que le lecteur multimédia VLC ou GStreamer d'utiliser les capacités d'accélération vidéo matérielle, généralement fournies par l' unité de traitement graphique (GPU). Elle est implémentée par la bibliothèque libre et open source libva , associée à un pilote spécifique au matériel, généralement fourni avec le pilote GPU.

L'interface de décodage/encodage vidéo VA-API est indépendante de la plate-forme et du système de fenêtres, mais elle est principalement destinée à l'infrastructure de rendu direct (DRI) dans X Window System sur les systèmes d'exploitation de type Unix (y compris Linux , FreeBSD , Solaris ) et Android . Cependant, elle peut également être utilisée avec un tampon d'image direct et des sous-systèmes graphiques pour la sortie vidéo. Le traitement accéléré comprend la prise en charge du décodage vidéo , de l'encodage vidéo , du mélange de sous-images et du rendu.

La spécification VA-API a été conçue à l'origine par Intel pour sa série de matériels GPU GMA (Graphics Media Accelerator) dans le but spécifique de remplacer à terme la norme XvMC comme équivalent multiplateforme Unix par défaut de l'API Microsoft Windows DirectX Video Acceleration (DxVA) , mais aujourd'hui, l'API n'est plus limitée au matériel ou aux GPU spécifiques à Intel. D'autres matériels et fabricants peuvent utiliser librement cette API standard ouverte pour le traitement vidéo accéléré par le matériel avec leur propre matériel sans payer de redevance.

Aperçu

Un exemple de sortie vainfo, montrant les codecs vidéo pris en charge pour l'accélération VA-API

La principale motivation de VA-API est de permettre le décodage vidéo accéléré par le matériel à différents points d'entrée ( VLD , IDCT , compensation de mouvement , déblocage ) pour les normes de codage actuelles ( MPEG-2 , MPEG-4 ASP / H.263 , MPEG-4 AVC/H.264 , H.265/HEVC et VC-1/WMV3 ). L'extension de XvMC a été envisagée, mais en raison de sa conception originale pour MPEG-2 MotionComp uniquement, il était plus logique de concevoir une interface à partir de zéro qui puisse exposer pleinement les capacités de décodage vidéo des GPU actuels .

Matériel et pilotes pris en charge

Depuis 2022, VA-API est nativement pris en charge par :

Codecs vidéo pris en charge

VA-API prend actuellement en charge ces codecs vidéo dans la version officielle principale, mais notez que les codecs vidéo exactement pris en charge dépendent du matériel et des capacités du pilote.

  • Accélération du décodage MPEG-2 Profil principal
  • Profil avancé d'accélération de décodage VC-1 / WMV3
  • Accélération du décodage MPEG-4 Partie 2 (H.263) (également appelé MPEG-4 SP / MPEG-4 ASP, plus communément appelé Xvid )
  • Profil principal d'accélération du codage H.264 AVC
  • Accélération du décodage H.264 AVC High Profile
    • Décodage de longueur variable matériel H.264 / AVC (VLD) - CABAC
    • Décodage de longueur variable matériel H.264 / AVC (VLD) - CAVLC
    • Transformée inverse matérielle H.264 / AVC (IT)
    • Compensation de mouvement matérielle H.264 / AVC (HWMC)
    • Déblocage matériel en boucle H.264/AVC (ILDB)
  • Accélération du codage H.265/HEVC
  • Accélération du décodage H.265/HEVC
  • Accélération du codage VP9 8 bits
  • Accélération du décodage VP9 8 bits et 10 bits
  • Accélération du codage AV1 8 bits et 10 bits
  • Accélération du décodage AV1 8 bits et 10 bits

Processus pouvant être accélérés avec VA-API

Processus de décodage vidéo et de post-traitement qui peuvent être déchargés et accélérés si les pilotes de périphérique et le matériel GPU les prennent en charge :

Architecture logicielle

Architecture de l'API d'accélération vidéo

L'interface actuelle est indépendante du système de fenêtrage, de sorte qu'elle peut potentiellement être utilisée avec d'autres sous-systèmes graphiques que le DRI (Direct Rendering Infrastructure) dans X Window System , comme le direct avec framebuffer , et elle peut fonctionner avec des bibliothèques DRM (Direct Rendering Manager) tierces . En un mot, il s'agit d'un schéma permettant de transmettre différents types de tampons de données de l'application au GPU pour décoder ou encoder un flux binaire compressé .

Logiciel prenant en charge VA-API

Un journal de Firefox montrant que VA-API est utilisé pour accélérer le décodage vidéo

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index