Auteur Sujet: Guerre des codecs: qui va l'emporter entre AV1 vs HEVC/H.265 ? Probablement AV1  (Lu 90481 fois)

0 Membres et 1 Invité sur ce sujet

vivien

  • Administrateur
  • *
  • Messages: 47 187
    • Twitter LaFibre.info
Guerre des codecs: qui va l'emporter entre AV1 vs HEVC/H.265 ? Probablement AV1
« Réponse #48 le: 07 janvier 2019 à 07:05:53 »
J'ai mis sur tests_codec_av1.zip les 6 vidéos dans l'ordre d'utilisation du CPU.

Le test1 est celui qui utilise le plus de CPU et le test 6 celui qui utilise le moins de CPU.
- test1_codec_av1_4k_13.9mbps.webm
- test2_codec_av1_4k_8.5mbps.webm
- test3_codec_av1_hd_6.3mbps.webm
- test4_codec_av1_hd_2.7mbps.webm
- test5_codec_av1_720p_3.9mbps.webm
- test6_codec_av1_720p_1.5mbps.webm

Le but est de garder ces mêmes vidéos pour voir les progrès coté logiciel sur un même PC dans quelques mois / années.

Avec un PC fixe Intel Core i3-4150 Haswell - 4ème génération (2 cœurs 4 threads @3.50GHz) sans carte graphique dédiée
OS : Ubuntu 18.10
Soft : VLC 3.0.5 via Snapcraft

Test 1 : 2160p 13,9 Mb/s
Freezes => HS


Test 2 : 2160p 8,5 Mb/s
Le début de la vidéo est au point indiqué par 180 secondes (cela correspond à l’utilisation CPU 180 secondes avant la capture d'écran).


Test 3 : 1080p 6,3 Mb/s


Test 4 : 1080p 2,7 Mb/s


Test 5 : 720p 3,9 Mb/s


Pour avoir ces courbes, j'utilise le moniteur système intégré à Ubuntu, configuré avec une fréquence de mise à jour de 3 secondes.

vivien

  • Administrateur
  • *
  • Messages: 47 187
    • Twitter LaFibre.info
Guerre des codecs: qui va l'emporter entre AV1 vs HEVC/H.265 ? Probablement AV1
« Réponse #49 le: 07 janvier 2019 à 09:54:53 »
Avec un PC fixe Intel Core i7-2600 Sandy Bridge - 2ème génération (4 cœurs 8 threads @3.40GHz) sans carte graphique dédiée
OS : Ubuntu 18.10
Soft : VLC 3.0.5 via Snapcraft

Test 1 : 2160p 13,9 Mb/s
Freezes => HS


Test 2 : 2160p 8,5 Mb/s
Freezes => HS


Test 3 : 1080p 6,3 Mb/s
Freezes => HS

Quelle conclusion tirer de ces 3 échecs sur un processeur 4 cœurs 8 threads qui est presque à la même fréquence que le CPU précédents qui n'avait que 2 cœurs ?
Je pense que le décodage du flux AV1 utilise massivement les instructions AVX2 (Advanced Vector Extensions 2) qui ont été introduites sur les processeurs de la 4ème génération. Ce Core-i7 est puissant mais reste un processeur de 2ème génération.


AVX2 supporte notamment :
  • l'extension de la plupart des instructions AVX sur 128 bits sur les entiers à 256 bits,
  • la récupération de données 32 ou 64 bits en mémoire non contiguës,
  • la diffusion ou la permutation de données entre plusieurs mots de 128 bits,
  • le décalage à gauche ou à droite d'éléments avec une valeur de décalage par élèment.

Test 4 : 1080p 2,7 Mb/s
Le début de la vidéo est au point indiqué par 180 secondes (cela correspond à l’utilisation CPU 180 secondes avant la capture d'écran).


Test 5 : 720p 3,9 Mb/s


Test 6 : 720p 1,5 Mb/s


Pour avoir ces courbes, j'utilise le moniteur système intégré à Ubuntu, configuré avec une fréquence de mise à jour de 3 secondes.

alegui

  • Abonné Bbox fibre
  • *
  • Messages: 465
  • FTTH Courbevoie (92)
Guerre des codecs: qui va l'emporter entre AV1 vs HEVC/H.265 ? Probablement AV1
« Réponse #50 le: 07 janvier 2019 à 13:15:46 »
Quelle conclusion tirer de ces 3 échecs sur un processeur 4 cœurs 8 threads qui est presque à la même fréquence que le CPU précédents qui n'avait que 2 cœurs ?
Je pense que le décodage du flux AV1 utilise massivement les instructions AVX2 (Advanced Vector Extensions 2) qui ont été introduites sur les processeurs de la 4ème génération. Ce Core-i7 est puissant mais reste un processeur de 2ème génération.
C'est totalement confirmé puisque dav1d en version 0.1 (la librairie utilisée par VLC) ne comporte que très peu d'assembleur optimisé pour autre chose que AVX2. Le développement est en cours pour de l'assembleur SSSE3 (à ne pas confondre avec SSE3) et ARMv8.

vivien

  • Administrateur
  • *
  • Messages: 47 187
    • Twitter LaFibre.info
Guerre des codecs: qui va l'emporter entre AV1 vs HEVC/H.265 ? Probablement AV1
« Réponse #51 le: 07 janvier 2019 à 13:51:10 »
J'ai réalisé un petit récapitulatif, faute d'en avoir trouvé un tout fait sur Internet :

1997 (1er CPU: Pentium MMX P55C) => Ajout du jeu de 57 instructions : MMX Ces 57 instructions ont la particularité de manipuler plusieurs valeurs simultanèment. On les qualifie de SIMD (Single Instruction Multiple Data). Par exemple, on peut additionner en une seule opération quatre paires d'entiers à seize octets. Ceci permet d'accélérer certains algorithmes tels que ceux utilisés en traitement du son et de l'image.

1999 (1er CPU: Pentium III) => Ajout du jeu de 70 instructions : SSE (en plus de MMX)
En plus des 70 instructions, le SSE a originellement ajouté huit nouveaux registres 128 bits nommés XMM0 à XMM7.

2001 (1er CPU: Pentium 4 Willamette) => Ajout du jeu de 144 instructions : SSE2 (en plus de MMX / SSE)
SSE2 apporte 144 nouvelles instructions en tous genres. Certaines sont orientées vers la gestion mémoire, d’autres vers la 3D ou encore la Vidéo. De plus SSE2 permet de traiter des entiers en 128bits et 2 flottants en double précision à chaque cycle.

2004  (1er CPU: Pentium 4 Prescott) => Ajout du jeu de 13 instructions : SSE3 (en plus de MMX / SSE / SSE2)
Elles portent sur la conversion FP en Integer (FISTTP), l'encodage vidéo (LDDQU), le traitement de complexes (MOVSUBPD, ADDSUBPS, MOVDDUP, MOVSHDUP et MOVSLDUP), le traitement des matrices (ADDPD, HSUBPD, HADDPS et HSUBPS) et enfin les threads (MONITOR et MWAIT).

2004 (1er CPU: Pentium 4 Prescott) => Intel 64 : une extension 64-bit de l'architecture IA-32

2006 (1er CPU: Pentium 4 Prescott Hyper-Threading) => Intel VT technologie de partition processeur permettant d'exécuter plusieurs systèmes d'exploitation en même temps sur la même puce. (virtualisation). Présent sur certains processeurs haut de gamme uniquement les premières années.

2006 (1er CPU: micro-architecture Core famille de processeurs Merom comme le Core 2 Solo) => Ajout du jeu de 32 instructions : SSSE3 (en plus de MMX / SSE / SSE2 / SSE3)
=> Intel Wide Dynamic Execution : pipeline de 14 étages, 4 instructions par cycle, micro et macro fusion et ALU optimisée
=> Intel Advanced Smart Cache : accès simultané des cores aux cache L2 commun.
=> Intel Smart Memory Access : optimisation et possibilité d’intervertir load and store, latences mémoire réduites voire masquées grâce aux Prefetchers
=> Intel Advanced Digital Media Boost : une opération SSE 128 bits par cycle
=> Intel Intelligent Power Capability : Ajustement dynamique et continu des fréquences et tensions.

2008 (1er CPU: famille de processeurs Penryn) => Ajout du jeu de 47 instructions SSE4.1 (en plus de MMX / SSE / SSE2 / SSE3 / SSSE3)
SSE4.1 apporte 47 nouvelles instructions qui visent les « compiler vectorization primitives », des opérations fondamentales utilisées par d’autres instructions plus complexes. Il s’agit d’opérations portant sur les entiers mais aussi sur les nombres en virgule flottante qui serviront notamment dans le traitement de données multimédia dont les vidéos H.264 et l’édition photo , dans la 3D (HLSL) mais aussi dans les langages de programmation de haut niveau comme C et Fortran.

2009 (1er CPU: famille de processeurs Nehalem) => Ajout du jeu de 7 instructions SSE 4.2 (en plus de MMX / SSE / SSE2 / SSE3 / SSSE3 / SSE 4.1)
Ce second lot d’instructions SSE 4.2, porte sur le traitement des chaînes de caractères. Ces instructions seront particulièrement utiles dans la compression, la recherche de virus ou de données, le traitement de bases de données, etc.

2010 (1er CPU: famille de processeurs Westmere) => Ajout de EPT (Intel VT-x with Extended Page Tables), Une technologie de virtualisation de seconde génération. Nécessaire pour l'Hyperviseurs bhyve

2010 (1er CPU: famille de processeurs Westmere) => Ajout du jeu de 7 instructions dédiées au chiffrement matériel AES sur certains processeurs : AES-NI (Advanced Encryption Standard New Instructions) Présent sur Core i5 / Core i7 / Xeon uniquement, puis Core i3 en 2013 puis sur sur tous les processeurs à partir de 2016.

2011 (1er CPU: famille de processeurs Sandy Bridge - 2ème génération) => Ajout du jeu de 12 instructions AVX (en plus de MMX / SSE / SSE2 / SSE3 / SSSE3 / SSE 4.1 / SSE 4.2)

2013 =>(1er CPU: famille de processeurs Haswell - 4ème génération) => Ajout du jeu d'instructions AVX 2.0 : Extension de la plupart des instructions AVX sur 128 bits sur les entiers à 256 bits, récupération de données 32 ou 64 bits en mémoire non contiguës, diffusion ou la permutation de données entre plusieurs mots de 128 bits, décalage à gauche ou à droite d'éléments avec une valeur de décalage par élèment.
- DDR3 (DDR4 sur certains Xeons)

2017 (1er CPU: famille de processeurs Kaby Lake - 7émé génération) AVX-512 étend le nombre de registres SIMD à 32 et les élargit à 512 bits. Il utilise un nouveau codage utilisant le EVEX prefix proposé par Intel en juillet 2013.

mattmatt73

  • Expert.
  • Abonné Bbox fibre
  • *
  • Messages: 7 340
  • vancia (69)
Guerre des codecs: qui va l'emporter entre AV1 vs HEVC/H.265 ? Probablement AV1
« Réponse #52 le: 07 janvier 2019 à 14:03:47 »
C'est totalement confirmé puisque dav1d en version 0.1 (la librairie utilisée par VLC) ne comporte que très peu d'assembleur optimisé pour autre chose que AVX2. Le développement est en cours pour de l'assembleur SSSE3 (à ne pas confondre avec SSE3) et ARMv8.

je pense que je vais faire de l'HEVC pendant encore longtemps......

alegui

  • Abonné Bbox fibre
  • *
  • Messages: 465
  • FTTH Courbevoie (92)
Guerre des codecs: qui va l'emporter entre AV1 vs HEVC/H.265 ? Probablement AV1
« Réponse #53 le: 07 janvier 2019 à 18:57:28 »
L'écosystème est encore balbutiant, mais pour rappel dav1d est le premier décodeur av1 "tiers" et son premier commit date seulement de septembre. (le premier encodeur tiers, rav1e, est nettement plus vieux)

Une fois les navigateurs et les applications prêtes, Youtube et Netflix devraient être (de plusieurs mois) les premiers à diffuser massivement le format. Les diffuseurs traditionnels ne sont pas du tout dans la ligne de mire de l'alliance dans un premier temps, pour cela il faudra attendre 2020 minimum, des implèmentations matérielles et une offre logicielle plus stable et conséquente (librairies mais aussi logiciel finaux). Mais était-ce vraiment plus rapide avec les standards MPEG ?

vivien

  • Administrateur
  • *
  • Messages: 47 187
    • Twitter LaFibre.info
Guerre des codecs: qui va l'emporter entre AV1 vs HEVC/H.265 ? Probablement AV1
« Réponse #54 le: 07 janvier 2019 à 22:15:20 »
Avec un PC portable Intel Core i5-8250U Coffee Lake - 8ème génération (4 cœurs 8 threads @1.60GHz) sans carte graphique dédiée
OS : Ubuntu 18.10
Soft : VLC 3.0.5 via Snapcraft

Toute les vidéos sont lisibles parfaitement malgré la faible fréquence du processeur.

Test 1 : 2160p 13,9 Mb/s

Le début de la vidéo est au point indiqué par 180 secondes (cela correspond à l’utilisation CPU 180 secondes avant la capture d'écran).


Test 2 : 2160p 8,5 Mb/s J'ai rajouté en dessous l’utilisation mémoire : la lecture de cette vidéo nécessite 1,5 Go de ram supplèmentaire.
(avant le démarrage, VLC était déjà lancé avec le fichier vidéo, les 1,5 Go supplèmentaire sont consommées quand on appui sur le bouton lecture)


Test 3 : 1080p 6,3 Mb/s


Test 4 : 1080p 2,7 Mb/s


Test 5 : 720p 3,9 Mb/s


Test 6 : 720p 1,5 Mb/s


Pour avoir ces courbes, j'utilise le moniteur système intégré à Ubuntu, configuré avec une fréquence de mise à jour de 3 secondes.

daleksek

  • Abonné Orange Fibre
  • *
  • Messages: 1 362
Guerre des codecs: qui va l'emporter entre AV1 vs HEVC/H.265 ? Probablement AV1
« Réponse #55 le: 08 janvier 2019 à 01:30:35 »
Le test 1 et 2 fonctionne pas sur vlc 3.0.5 windows 10, sur firefox aucun problème.

vivien

  • Administrateur
  • *
  • Messages: 47 187
    • Twitter LaFibre.info
Guerre des codecs: qui va l'emporter entre AV1 vs HEVC/H.265 ? Probablement AV1
« Réponse #56 le: 08 janvier 2019 à 13:14:20 »
Ne fonctionne pas = CPU pas assez puissant

J'en déduis que la lecture AV1 est plus optimisée sur Firefox.

Tu utilises quelle version de Firefox ?
La version stable (Firefox 64) ne sais pas lire les flux AV1

daleksek

  • Abonné Orange Fibre
  • *
  • Messages: 1 362
Guerre des codecs: qui va l'emporter entre AV1 vs HEVC/H.265 ? Probablement AV1
« Réponse #57 le: 08 janvier 2019 à 13:22:19 »
Ne fonctionne pas = CPU pas assez puissant

J'en déduis que la lecture AV1 est plus optimisée sur Firefox.

Tu utilises quelle version de Firefox ?
La version stable (Firefox 64) ne sais pas lire les flux AV1
Pas assez puissant ? un 9900k devrait être suffisant quand même.

Si justement c'est la version stable 64, ça fonctionne maintenant en cochant dans les options about config.


vivien

  • Administrateur
  • *
  • Messages: 47 187
    • Twitter LaFibre.info
Guerre des codecs: qui va l'emporter entre AV1 vs HEVC/H.265 ? Probablement AV1
« Réponse #58 le: 08 janvier 2019 à 13:43:44 »
Personnellement je n'ai pas de problème pour le test 2 avec VLC 3.0.5 sous Windows 10.

Ma configuration :
- Windows 10 famille 1809 64bits
- Core i3-6100 (2 cœurs hyper threading à 3,7 Ghz + Intel HD Graphics 530)
- VLC 3.0.5

J'ai une utilisation du CPU de 90%
Le test 1 ne fonctionne pas car mon CPU n'est pas assez puissant (Freeze définitif quelques images après le début de la vidéo)

Si justement c'est la version stable 64, ça fonctionne maintenant en cochant dans les options about config.
Merci pour l'astuce pour Firefox 64.
Sur ma machine Intel Core i7-2600 Sandy Bridge - 2ème génération (4 cœurs 8 threads @3.40GHz) sans carte graphique dédiée, Firefox se montre capable de lire le test 3 (vidéo HD 6.3 M/s) que VLC n'arrive pas à lire. Pour le test 2, cela Freeze au moment où les voitures passent, c'est le moment de la vidéo qui consomme le plus de CPU et le test1 freeze après une seconde de lecture.

daleksek

  • Abonné Orange Fibre
  • *
  • Messages: 1 362
Guerre des codecs: qui va l'emporter entre AV1 vs HEVC/H.265 ? Probablement AV1
« Réponse #59 le: 08 janvier 2019 à 14:16:14 »
My bad, j'avais téléchargé une version 32bit de vlc  :P

La avec la version 64bit, toutes les vidéos fonctionnent, même mieux que sur firefox qui avait quelques saccadent sur le test1.