Auteur Sujet: Liste des puces proposant une accélération matérielle VP8 / HEVC / VP9 / AV1  (Lu 23746 fois)

0 Membres et 1 Invité sur ce sujet

vivien

  • Administrateur
  • *
  • Messages: 47 085
    • Twitter LaFibre.info
Liste des puces proposant une accélération matérielle VP8 / HEVC / VP9 / AV1
« Réponse #12 le: 19 septembre 2022 à 11:57:26 »
WebP en mode compression avec perte, utilise le même algorithme que les images clefs des vidéos compressées avec VP8.
AVIF en mode compression avec perte, utilise le même algorithme que les images clefs des vidéos compressées avec AV1.

Je me demande si l'accélération matérielle VP8 présent dans presque tous les GPU est utilisée par les navigateurs web (via les pilotes OpenGL ?) pour faire une accélération matérielle pour l'affichage d'une page web qui contient des images WebP ou si c'est systématiquement fait de façon logicielle sans accélération du processeur graphique du terminal.

Même chose pour l'accélération matérielle AV1 : Peut-elle être utilisée pour accélérer l'affichage d'une page web qui a des images AVIF ?

vivien

  • Administrateur
  • *
  • Messages: 47 085
    • Twitter LaFibre.info
Liste des puces proposant une accélération matérielle VP8 / HEVC / VP9 / AV1
« Réponse #13 le: 19 septembre 2022 à 14:47:21 »
Je me réponds, car j'ai la réponse : c'est non, pas d'accélération GPU pour le décodage des images, cela serait contre-productif.

Explications :

Le décodage matériel AV1 peut-il être utilisé pour le décodage AVIF ?

Oui, au moins pour les cas que le décodeur matériel peut gérer (probablement 4:2:0 uniquement). Mais ce n'est probablement pas non plus un moyen efficace de décoder AVIF dans un navigateur. L'initialisation d'un décodeur matériel pour se préparer à décoder une vidéo d'une certaine dimension a une certaine latence. Sur un site Web, vous avez généralement de nombreuses images de dimensions variables. Avec le décodage matériel, vous ne pouvez les décoder que séquentiellement (pas en parallèle comme vous le pouvez sur les processeurs multicœurs modernes) et vous devez réinitialiser le matériel à chaque fois.

Ils ont essayé d'utiliser le décodage matériel VP8 pour le décodage WebP avec perte dans Chrome à un moment donné, et ont décidé de ne pas le faire, car ce n'était pas mieux que le décodage logiciel. Autant que je sache, les navigateurs décodent tous les codecs d'image dans les logiciels, que le support matériel soit disponible ou non.

Une méthode qui pourrait être essayée consiste à faire ce qu'Apple a fait avec HEIC : ils divisent TOUJOURS l'image en une grille de 256 x 256 tuiles, et cela peut être pour pouvoir utiliser le décodage matériel sans avoir besoin de réinitialiser (puisque les dimensions de l'image sont toujours le même, du point de vue du décodeur matériel). Mais cette approche a aussi ses problèmes : tout d'abord, vous obtenez des artefacts de limite de tuiles sur la grille 256x256 (puisque les tuiles sont totalement indépendantes, il peut donc y avoir des discontinuités). Deuxièmement, comment obligez-vous les gens à toujours diviser l'image en tuiles de même taille ?

Le décodage matériel présente également certains inconvénients par rapport au décodage logiciel :

- La gestion des couleurs est plus limitée (on ne peut pas gérer les profils ICC arbitraires dans le matériel, il faudra donc potentiellement effectuer une conversion des couleurs post-décodage dans le logiciel)

- La sécurité peut être un problème : les logiciels peuvent être mis dans un bac à sable et/ou examinés, mais le matériel est plutôt incertain lorsqu'il s'agit de flux binaires malveillants ou simplement inattendus.

- Le décodage progressif, ou même simplement le décodage incrémental, est difficile/impossible à faire avec le matériel : vous devez avoir le flux binaire complet de l'image prêt avant de pouvoir démarrer le décodage matériel.

Vous aurez de toute façon besoin d'un logiciel de secours, donc ce sera toujours strictement pire en termes de complexité du code.


Source : Reddit par le pseudo jonsneyers, il y a deux ans.

vivien

  • Administrateur
  • *
  • Messages: 47 085
    • Twitter LaFibre.info
Liste des puces proposant une accélération matérielle VP8 / HEVC / VP9 / AV1
« Réponse #14 le: 20 septembre 2022 à 19:50:03 »
Petite synthèse de l'accélération matérielle par codec

Les années sont colorées en fonction de la vitesse à laquelle le codec a été pris en charge.

"systématique" est indiqué pour des SoC qui sont récents et donc ont toujours supporté ce codec.



hwti

  • Abonné Orange Fibre
  • *
  • Messages: 2 237
  • Chambly (60)
Liste des puces proposant une accélération matérielle VP8 / HEVC / VP9 / AV1
« Réponse #15 le: 20 septembre 2022 à 22:24:50 »
- Safari est mentionné, là je suppose qu'il a lui-même compilé de choses sur son mac pour que cela fonctionne.
Il est indiqué que c'est fait en ayant compilé libdav1d en WebAssembly, donc c'est la page qui apporte le codec, pas le navigateur.
On pourrait même faire la même chose en compilant le décodeur vers du JS, mais ce serait encore plus lent.

Le "Fast AV1 decoding" doit donc être très relatif, ça doit être plus lent que les fonctions C de libdav1d, elles même largement plus lentes que les implémentations SIMD (NEON sur ARM, AVX2 sur les x86 assez récents, SSSE3 sur les plus anciens, ...).
Il y a une spécification en cours d'écriture pour le SIMD dans WebAssembly, mais comme l'indiquent https://webassembly.org/roadmap/ et https://bugs.webkit.org/show_bug.cgi?id=222382, WebKit/Safari n'ont pas d'implémenation, contrairement à Chrome et Firefox.

Je sais que Zoom décodait l'audio et la vidéo en WebAssembly, au lieu d'utiliser WebRTC et donc les codecs natifs du navigateur.
Je ne sais pas si c'est toujours le cas, et s'il y a d'autres cas similaires à grande échelle.

hwti

  • Abonné Orange Fibre
  • *
  • Messages: 2 237
  • Chambly (60)
Liste des puces proposant une accélération matérielle VP8 / HEVC / VP9 / AV1
« Réponse #16 le: 20 septembre 2022 à 22:38:28 »
Je me réponds, car j'ai la réponse : c'est non, pas d'accélération GPU pour le décodage des images, cela serait contre-productif.
Sur les SoC ARM et autres, il peut y avoir des décodeurs matériels dédiés aux images : JPEG par exemple.
Mais les contraintes d'utilisation font qu'ils sont rarement utilisés en dehors de cas très particuliers (très grosses images venant de l'appareil photo par exemple).
Plus les CPU sont rapides, plus il est souvent préférable de décoder de manière logicielle, pour effectivement avoir moins de contraintes sur les caractéristiques des images, la zone mémoire dans laquelle le résultat décompressé est stocké, le nombre de décodages simultanés possibles (et si on peut lire une vidéo en même temps ou pas), ...

vivien

  • Administrateur
  • *
  • Messages: 47 085
    • Twitter LaFibre.info
Liste des puces proposant une accélération matérielle VP8 / HEVC / VP9 / AV1
« Réponse #17 le: 23 septembre 2022 à 22:47:16 »
Attention : les dates que j'indique sont celle de la sortie des processeurs.

On trouve en 2022 des PC neufs construits avec des processeurs lancés en 2019. Ce n'est pas un vieux reste invendu : non, ce PC est dans le catalogue publicitaire, donc disponible en nombre dans tous les magasins.

Exemple avec le catalogue E.Leclerc valable du 13 au 24 septembre 2022 :

2 PC sont proposés :
- Un ASUS équipé d'un Core i3-1005G1 de 2019
- Un Lenovo équipé d'un Pentium Silver N6000 de 2021, la génération Tremont (livré avec... Windows 11 en mode S)

Seul le second a le décodage AV1 en hardware.



vivien

  • Administrateur
  • *
  • Messages: 47 085
    • Twitter LaFibre.info
Liste des puces proposant une accélération matérielle VP8 / HEVC / VP9 / AV1
« Réponse #18 le: 24 septembre 2022 à 09:52:30 »
Encore plus fort, un PC avec un processeur Intel de 2016 vendu neuf en 2022 : Ce portable ASUS Chromebook C223 équipé d'un Intel Celeron N3350 (et 4Go RAM + 32Go stockage eMMC) est encore en vente en neuf (à 130€, c'est pas cher).

Le microprocesseur Intel Celeron N3350 a été lancé au 3ᵉ trimestre 2016, c'est la génération Goldmont. La première génération à faire du décodage VP9 (et pas d'encodage VP9).

Copie d'écran du 24 septembre 2022 (et Cdiscount n'est pas le seul à vendre ce PC neuf)



Caractéristiques du portable ASUS Chromebook C223 (le PDF date d'aout 2018) :
(cliquez sur la miniature ci-dessous - le document est au format PDF)


Vidéo de présentation du portable ASUS Chromebook C223 :

obinou

  • AS197422 Tetaneutral.net
  • Expert
  • *
  • Messages: 1 668
  • Montgesty (46150)
    • Tetaneutral.net
Liste des puces proposant une accélération matérielle VP8 / HEVC / VP9 / AV1
« Réponse #19 le: 20 octobre 2022 à 13:44:33 »
Merci Vivien pour ces infos super intéressantes.

Je pense rester en VP9 car la plupart de mes box / machines (S905X notamment) ne supportent pas l'AV1 , et à re-encoder ça m'a l'air encore pire.

(Au passage, j'en reviens pas des trésors technologiques que Netflix déploie pour adapter la définition et bloquer des usages en fonction du lecteur du client (qui paie, pourtant) alors que tous ou presque est dispo ailleurs. . il n'y a pas les services de personnalisation, mais franchement avec certaines applis on en est pas loin)

Est-ce que tu envisage de faire un article sur l'encodage notamment sous linux et windows des différents formats (enfin surtout HEVC / AV1 et VP9) avec le support matériel ?
Merci

vivien

  • Administrateur
  • *
  • Messages: 47 085
    • Twitter LaFibre.info
Liste des puces proposant une accélération matérielle VP8 / HEVC / VP9 / AV1
« Réponse #20 le: 20 octobre 2022 à 14:43:38 »
Pour Netflix, j'ai séparé dans un autre sujet dédié :
=> Netflix: codecs vidéos supportés par le player, DRM et définitions

C'est vrai que la configuration logicielle et matérielle pour la 4k sur PC est trés trés restrictive (un GPU récent est obligatoire, mais attention pour les configurations multi-GPU reliés entre eux en mode SLI/LDA, la qualité sera rétrogradée à du 1080p. Dans le cas d'une configuration multi-écrans, le streaming 4K UHD ne se produira que si tous les moniteurs actifs sont compatibles HDCP 2.2. Si l'un des moniteurs actifs n'est pas compatible HDCP 2.2, la qualité sera rétrogradée à du 1080p).


Est-ce que tu envisage de faire un article sur l'encodage notamment sous linux et windows des différents formats (enfin surtout HEVC / AV1 et VP9) avec le support matériel ?
J'ai préparé ça il y un an, avec des copies d'écran de chaque niveau de qualité pour H.264 et AV1.

Il manque VP9. Pourquoi ? Car quand j'ai préparé ce tutoriel la liste des navigateurs compatible AV1 et VP9 était la même sur le site https://caniuse.com/ donc pour moi VP9 n'avait aucun intérêt.
Puis j'ai fouillé, et j'ai vu que le site "Can I Use" avait des informations erronées (j'ai fait corriger pour Edge qui n'est plus indiqué comme compatible AV1 par défaut, j'ai encore d'autres corrections à leur faire prendre compte sur les codecs) et macOS a enfin supporté correctement le duo VP9+Opus (car ce qui bloquait dernièrement chez macOS, ce n'était pas VP9, mais le codec Audio Opus et contrairement à Windows où on peut regarder une vidéo sans piste audio si le codec audio n'est pas supporté, chez Apple si le codec audio n'est pas pris en charge, rien ne s'affiche c'est en testant avec une vidéo sans piste audio que je m'en suis aperçu).

Bref, aujourd'hui VP9 est le codec qui me semble le plus intéressant (désolé pour ceux qui ont un iPhone). Je fais refaire mes tests d'encodage avec FFmpeg 5, vu qu'il y a pas mal de changements et ce sera fait en H.264, VP9 et AV1. Coté Ubuntu, FFmpeg 5 est disponible à partir d'Ubuntu 22.10 qui sort aujourd'hui.

Je ne sais comment remercier Apple qui avec le codec audio Opus bat tous les records de lenteur... (et pas d'excuse comme pour les codecs vidéo avec la prise en charge matérielle, c'est du CPU pour un codec audio)


Je précise Opus dans un conteneur WebM car Apple gère bien Opus depuis 2017 sur iOS 11+, mais dans un conteneur Core Audio Format (CAF) et non WebM, histoire de bien montrer que le blocage n'est pas technique, mais politique (même chose pour VP9 pris en charge dans iOS sauf pour les navigateurs Web montrant bien que le problème est politique et non technique).

PeGGaaSuSS

  • Abonné Free fibre
  • *
  • Messages: 487
  • Saint-Ouen (93) - Paris (75)
Liste des puces proposant une accélération matérielle VP8 / HEVC / VP9 / AV1
« Réponse #21 le: 20 octobre 2022 à 15:05:55 »
Concernant Windows, le soft DXVA Checker est bien utile pour savoir quel codec est supporté par sa machine de façon concrète.

https://bluesky-soft.com/en/DXVAChecker.html

Cochonou

  • Abonné Bbox fibre
  • *
  • Messages: 1 353
  • FTTH 2 Gb/s sur Saint-Maur-des-Fossés (94)
Liste des puces proposant une accélération matérielle VP8 / HEVC / VP9 / AV1
« Réponse #22 le: 21 octobre 2022 à 07:34:43 »
Une raison de plus de privilégier les codecs libres de droits qui seront lisibles plus longtemps (Windows 10 a retiré le support du MPEG-2 pour ne pas payer les licences pour ce codec propriétaire aujourd'hui peu utilisé).

Pour utiliser la technologie du brevet, il faut payer une licence d'utilisation de ce brevet. Cela se voit dans Windows 10 où le support du HEVC dans la boutique Microsoft est payant.

Inversement, l'extension MPEG-2 pour Windows 10 semble gratuite ?
https://apps.microsoft.com/store/detail/extension-vid%C3%A9o-mpeg2/9N95Q1ZZPMH4?hl=fr-fr&gl=fr

Il me semble d'ailleurs que tous les brevets concernant le MPEG-2 ont expiré partout sauf en Malaisie, ce qui indiquerait que la lecture sur le long terme de ce format vidéo ne posera pas de problème.

https://www.mpegla.com/programs/mpeg-2/patent-list/
Citer
This is a list of patents (Attachment 1) in the MPEG-2 Patent Portfolio License (updated July 1, 2022).  Under the MPEG-2 Patent Portfolio License, royalties are payable for products Manufactured or Sold in countries with an active MPEG-2 Patent Portfolio Patent at the time of Manufacture or Sale.  Please note that the last US patent expired February 13, 2018, and patents are presently active in Malaysia.

https://lists.fedoraproject.org/archives/list/legal@lists.fedoraproject.org/thread/GDOFPFQKWJF5CRU7BNWNTJ756AIZOMYK/
Citer
Tom Callaway jeudi, 11 avril 2019 09:53
Effective immediately, MPEG-1 (H.261) and MPEG-2 (H.262) video implementations are permitted in Fedora.
...

Support for MPEG Video formats later than MPEG-2 is not currently permitted in Fedora. This includes, most notably, H.263, H.264 (MPEG-4), and H.265 (HEVC).

hwti

  • Abonné Orange Fibre
  • *
  • Messages: 2 237
  • Chambly (60)
Liste des puces proposant une accélération matérielle VP8 / HEVC / VP9 / AV1
« Réponse #23 le: 21 octobre 2022 à 18:04:55 »
Pour utiliser la technologie du brevet, il faut payer une licence d'utilisation de ce brevet. Cela se voit dans Windows 10 où le support du HEVC dans la boutique Microsoft est payant.
La version gratuite de l'extension (destinée à être préchargée sur des PC) est juste cachée, et Microsoft l'a laissée même si le contournement est connu depuis longtemps (il suffit d'ouvrir un lien direct).