AV1 sera bien accéléré par les Radeon RX 6000 d'AMD

AV1 sera bien accéléré par les Radeon RX 6000 d’AMD

Et de trois !

Avatar de l'auteur
David Legrand

Publié dans

Hardware

13/10/2020 2 minutes
15

AV1 sera bien accéléré par les Radeon RX 6000 d'AMD

Microsoft vient d'annoncer le support du codec libre AV1 au sein de Windows 10. Il confirme au passage que tant AMD qu'Intel et NVIDIA sont impliqués dans le projet.

Ces dernières semaines, Intel et NVIDIA ont annoncé des produits disposant d'une accélération matérielle pour la décompression des vidéos exploitant le codec open source AV1 : Tiger Lake et les GeForce RTX de série 30. Dans la foulée, VLC publiait une préversion permettant d'en profiter.

On était néanmoins sans nouvelles d'AMD, qui ne s'est toujours pas exprimé sur le sujet. C'est finalement Microsoft qui a lâché le morceau dans un billet de blog publié en fin de semaine dernière. Il y évoque les GPU qui profiteront de l'accélération d'AV1 sous Windows 10, sous réserve d'utiliser au moins la version 1909 et cette extension (gratuite).

On y apprend que les Radeon RX 6000 seront concernées. Elles devraient donc introduire un nouveau moteur vidéo, sans que l'on sache si d'autres éléments ont été ajoutés à l'occasion. On attend aussi le support du HDMI 2.1 (48 Gb/s) pour la connectique, et pourquoi pas du DisplayPort 2.0 (NVIDIA s'étant limité à la version 1.4).

Toutes les applications Windows exploitant Media Foundation seront ainsi compatibles avec AV1 sur les produits les plus récents d'AMD, Intel et NVIDIA. DirectXVA (DXVA) a bien entendu été adapté. Une bonne nouvelle pour l'utilisation massive de ce codec libre qui devrait permettre de renforcer la qualité vidéo à même débit. Ou, à l'inverse, de réduire le débit nécessaire à qualité d'image constante.

Écrit par David Legrand

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

Fermer

Commentaires (15)


Impressionnant qu’on arrive encore à faire des progrès dans la compression vidéo, car il y a des limites théoriques (entropie, etc) ; j’ai déjà vu le passage au MPEG (depuis d’autres compressions plus simples), puis au H264 (les divers DivX étant intermédiaire en efficacité je crois), puis au H265/HEVC, et là on a les VP9 et AV1.



Autant je connais les principes utilisés pour le MPEG (et le JPEG), autant pour les dernières avancées je ne ne connais pas et je serais curieux de lire de la vulgarisation sur le sujet.


Pour info, c’est juste le décodage d’AV1 qu’est supporté. Pas de précision concernant un éventuel support matériel de l’encodage


Oui, c’est précisé dans l’article


Quand je m’y suis intéressé un peu et que j’ai vu qu’il y avait également des algos de prédiction d’image dans les H264/H265/HEVC, j’ai laissé tombé.
Si tu veux, les pages wikipédia de ces formats sont déjà franchement bien AMHA pour cerner le contour du fonctionnement de ces codecs.



Gawked a dit:


Pas de précision concernant un éventuel support matériel de l’encodage la compression




Et si car l’article parle de la seule décompression.




(“codage” à la rigueur, même s’il ne s’agit pas d’un codage au sens mathématique)



:cap:



OlivierJ a dit:


Impressionnant qu’on arrive encore à faire des progrès dans la compression vidéo, car il y a des limites théoriques (entropie, etc) ;




En fait, c’est très logique, tu remplaces du débit par du temps de calcul (même en lecture).



Nozalys a dit:


Quand je m’y suis intéressé un peu et que j’ai vu qu’il y avait également des algos de prédiction d’image dans les H264/H265/HEVC, j’ai laissé tombé.




En fait ça existe aussi en MPEG, les trames P (P-frames), pour Prédictif, et ça existait probablement avant (ça demande plus de mémoire que la simple compression intra-trame)




Si tu veux, les pages wikipédia de ces formats sont déjà franchement bien AMHA pour cerner le contour du fonctionnement de ces codecs.




Je vais regarder, mais parfois ça n’est pas aussi clair que ça pourrait.


Tu n’as pas tout pigé à la notion d’entropie et de limite théorique (théorie de l’information, etc). :non:



Même si l’augmentation de puissance du matériel permet des compressions plus complexes, mais les gains ne sont pas forcément importants, en fait ce qui limite c’est toujours la décompression par du “petit” matériel peu onéreux (voire en logiciel pas trop gourmand).
Par exemple, vers la fin des années 90 le décodage d’un bête fichier MPEG en 320x200 demandait beaucoup de puissance même à un CPU haut de gamme, idem pour le MP3 un peu avant (alors que c’est encore plus léger).



OlivierJ a dit:


Je vais regarder, mais parfois ça n’est pas aussi clair que ça pourrait.




C’est vulgairement assez simple pour le h264. Tu as 3 types d’images :images clefs, images de mouvements et images d’anticipation. En plus des techniques de compression nouvelles, la nouveauté de h264 était qu’une image à venir est utilisable dans une image passée. Le hic c’est qu’il faut arriver à créer ces images sans avoir besoin des éléments inclus ou à l’aide des futures images clefs, et ça demande beaucoup de puissance (qui est arrivée entre mpeg et h264).
En soit le hevc n’est qu’un h264 plus complexe, affiné et donc demandant plus de puissance: c’est ça qui fait qu’il y a un gain, en plus de techniques de compression par ci par là.



Ce n’est qu’une vulgarisation, merci de ne pas me tomber sur le coin de la gueule ^^



patos a dit:


C’est vulgairement assez simple pour le h264. Tu as 3 types d’images :images clefs, images de mouvements et images d’anticipation.




Comme pour le MPEG :-) .




En plus des techniques de compression nouvelles, la nouveauté de h264 était qu’une image à venir est utilisable dans une image passée.




Mais encore ?




Ce n’est qu’une vulgarisation, merci de ne pas me tomber sur le coin de la gueule ^^




:D


Parmi pleins de nouveautés, tu as les vecteurs de directions. Avant, tu en avais 4 pour coder les directions (Nord, Sud, Est, Ouest). Puis c’est passé à 9. Puis en ajoutant différentes longueurs, ça a encore augmenté. Ca permet de coder plus de choses, mais sortir les vecteurs prend plus de temps.

Tu as aussi la taille des macroblocks qui changent. Avant, tu avais que quelques tailles de blocks, qui pouvaient servir à l’encodage. Maintenant, tu peux les subdiviser suivant différentes subdivisions : tu peux avoir des blocks plus gros (utile pour le ciel, par exemple), et des blocks pas carrés => https://shopdelta.eu/obrazki_art/h265_img2_d.jpg

Le côté prédictif du mouvement est maintenant aussi temporel.

Bref, y’a pleins de chose. Ce tableau résume bien les choses pour le h265 : https://www.imgtec.com/wp-content/uploads/2013/06/MPEG-2-HEVC-and-H.264-tools-comparison-1.jpg


:chinois:



(marrant ton pseudo au fait) (que je ne découvre pas)


Je me demande comment ils font pour les histoires de 12 et 14 de pixel, sachant qu’au départ c’est la plus petite quantité d’information traitable.
Possible que ce soit en analysant plusieurs images de suite et en distinguant des mouvements qui vont plus lentement qu’un pixel à la fois.



OlivierJ a dit:


(marrant ton pseudo au fait) (que je ne découvre pas)




Héhé, merci :)




OlivierJ a dit:


Je me demande comment ils font pour les histoires de 12 et 14 de pixel, sachant qu’au départ c’est la plus petite quantité d’information traitable. Possible que ce soit en analysant plusieurs images de suite et en distinguant des mouvements qui vont plus lentement qu’un pixel à la fois.




Alors en fait, ça dépend de la taille des macroblocks, toutes les tailles ne sont pas dispos à tous les niveaux. Dans AV1, dans les blocs de 8x8 pixels, tu peux faire que des partitions horizontales au milieu, verticales au milieu, ou les deux ensemble. Faut aller plus haut dans les tailles pour pouvoir faire des découpages de 4:1, par exemple (et on descend jamais en dessous du pixel niveau taille). En gros, tu peux découper de cette façon : https://upload.wikimedia.org/wikipedia/commons/f/fd/AV1_Partitioning.svg



Du coup, j’ai regardé un peu les avancés de l’AV1 par rapport au h.265, et y’en a quelques uns :




  • Les partitions en forme de T, et les partitions en 4:1


  • AV1 fait ses calculs internes sur des valeurs non arrondies, pour éviter que les arrondies se rajoutent les uns aux autres (se “compound”)

  • Dans AV1, tu peux faire tes calculs de prédictions a partir de 6 images précédentes (là où tu étais limité à 3 avant)

  • Tu as des ajouts pour les mouvements de caméra. Par exemple, quand tu fais un travelling avant, tu sais que le point central bouge peu, mais que tous les pixels autour vont s’éloigner du centre. Du coup, avoir des modes spécifiques permet de dire “travelling avant autour de tel point, a telle vitesse”, ça va plus vite que de décrire le vecteur de chaque pixel. D’autre mouvement 3D de caméra ont été ajoutés.

  • Pour les vecteurs, on passe à 56 directions

  • Et y’a des nouveaux filtres, et pleins d’autres trucs que je saurais pas expliquer ;)


Merci :chinois: