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

vivien, vocograme et 8 Invités sur ce sujet

vivien

  • Administrateur
  • *
  • Messages: 53 422
    • Bluesky LaFibre.info
Le Google Pixel 10, annoncé hier, change de codec vidéo pour l'enregistrement de vidéos sur le téléphone : On passe de HEVC (utilisé depuis plusieurs années) à AV1, permettant de réduire la taille des vidéos de 30%.

Le processeur maison Tensor G5 intègre, en plus d'un encodeur H.264 et HEVC comme ces prédécesseurs, un encodeur VP9 et AV1.

Le décodeur matériel d'AV1 était lui arrivé avec le premier Google Tensor G1 de 2021 (Pixel 6). S'il pouvait décoder matériellement AV1, il ne pouvait pas encoder en AV1 et les vidéos étaient enregistrées en HEVC (comme tous les téléphones commercialisés ces dernières années).


Comme j'ai acheté un Pixel 10 Pro, je peux faire un retour : Le codec vidéo par défaut reste HEVC, mais on peut demander à passer en AV1 dans les options.

Le fait d'utiliser AV1 n'engendre aucune incompatibilité avec les applications pour partager la vidéo : elle est ré-encodée en H.264, comme c'est aussi le cas pour les vidéos HEVC.

Voici une vidéo filmée par mon Pixel 10 Pro, en 1080p 30 images/secondes en AV1.

Le débit binaire est toujours le même (CBR) quel que soit la scéne filmée : 18,0 Mb/s pour la vidéo et 192 Kb/s pour l'audio.
Le profil est vidéo est le Main et le Level 4.1 (le 4.0 semblait possible, je ne sais pas pourquoi c'est du 4.1 à 30 fps).
Si le codec vidéo est AV1, le codec audio reste AAC (et non Opus qui est souvent associé à AV1), ce qui fait que certains lecteurs vidéos refusent de lire la vidéo.
Le conteneur est MP4 et non Webm (Webm ne supporte pas le codec audio AAC, seullement Vorbis et Opus).

Voici la vidéo directement extraite de mon téléphone, sans aucun traitement :




La vidéo est normalement lisible sur les navigateurs récents. Pour Safari, je suis intéressé de savoir si la combinaison MP4 + AV1 + AAC lui convient.

Le train sur la vidéo est un Régiolis z54500 en configuration 2x 6 caisses (220 mètres de long) qui circule à 160 Km/h. La vitesse relative est de 135 Km/h, ce qui rend l'encodage vidéo particulièrement complexe (cela reste plutôt net).
C'est une livraison Mobigo (TER de la région Bourgogne-Franche-Comté). La caténaire est en 1500 volts, on est à la limite des communes de Combre-la-Ville et Lieusaint, en direction de Lyon. Le TER circule voie 1, mais un train de marchandise est en panne un peu plus loin devant sur la voie 1 et le TER approche d'une aiguille qui va l'envoyer voie 1bis.

guiest63

  • Abonné Bbox fibre
  • *
  • Messages: 185
  • Riom (63)
Sur Safari pour iOS sous iOS 27, la vidéo et le son fonctionnent

MaxLebled

  • Abonné Free fibre
  • *
  • Messages: 1 141
  • Rennes (35)
    • Site web
J'ai l'impression de voir le défaut sempiternel d'AV1, sa tendance à sur-comprimer tout ce qui est suffisamment plat et/ou sombre... ce serait intéressant d'avoir deux fichiers pour comparer, un HEVC, un AV1, si le téléphone te donne le choix. Si une option « haut débit » existe (c'est le cas chez Samsung) ces variantes seraient également les bienvenues.
« Modifié: Aujourd'hui à 14:24:52 par MaxLebled »

vivien

  • Administrateur
  • *
  • Messages: 53 422
    • Bluesky LaFibre.info
Pour la vidéo, pas d'option "haut débit" chez Google.

Réaliser une même vidéo dans différents codecs, ce n'est pas simple. Si le sujet bouge, cela sera différent et si le sujet est immobile, la compression ne va pas avoir de défault, non ?

Pour info, voici les paramètres avec mon Pixel 10 Pro :



Quand on clique sur les trois petits points, on a d'autres options :


MaxLebled

  • Abonné Free fibre
  • *
  • Messages: 1 141
  • Rennes (35)
    • Site web
Pour la vidéo, pas d'option "haut débit" chez Google.

Réaliser une même vidéo dans différents codecs, ce n'est pas simple. Si le sujet bouge, cela sera différent et si le sujet est immobile, la compression ne va pas avoir de défault, non ?


Si, mais disons que le long de la même voie, si tu es rapide pour le changement de codec, le décor devrait être suffisamment comparable :)

Sinon, de mon côté, pour l'encodage logiciel, et l'archivage de mes vidéos smartphone, je suis passé sur svt-av1-tritium, le fork communautaire le plus avancé à ce jour, qui est une surcouche d'un autre fork, svt-av1-hdr.

ffmpeg -i fichierEntrée.mp4 \
  -vf "setparams=color_primaries=9:color_trc=18:colorspace=9" \
  -map 0:v:0 -an -sn -dn \
  -fps_mode passthrough -enc_time_base demux \
  -c:v libsvtav1 -crf 57 -preset 1 -pix_fmt yuv420p10le -g 300 \
  -color_primaries 9 -color_trc 18 -colorspace 9 \
  -svtav1-params "color-primaries=9:transfer-characteristics=18:matrix-coefficients=9:tune=0:ac-bias=2.50:enable-tf=2:complex-hvs=1:enable-dlf=3:hbd-mds=1:enable-variance-boost=1:variance-boost-strength=3:variance-octile=4:scd=1" \
  -err_detect explode \
  fichierSortie.mp4

Je précise dans le tableau ci-dessous que QP = qualité d'un bloc. Plus c'est bas, plus la qualité est bonne (comme le CRF).

ParamètreMa valeurPar défautEffet
preset0 (1 si la définition dépasse 1920 sur les deux axes)/Vitesse de l'encodeur. Plus lent = plus de calculs = fichiers plus petits pour le même CRF.
crf60-50 en 4K, 50-40 en 1080p/Qualité visée.
pix_fmtyuv420p10le/10 bits 4:2:0. Meilleure compression, compatibilité HDR, obligatoire avec hbd-mds=1.
tune0 (VQ)1 (PSNR)Ce que l'encodeur cherche à optimiser. 1 vise les indicateurs (PSNR, SSIM, VMAF), qui favorisent une image lisse. 0 vise la percetion humaine : il rend plus nets le filtre temporel, l'interpolation, le CDEF, la restauration, la quantification, et le deblocking des images-clés.
ac-bias2.51.0Garde plus de texture et de détails fins. (2.5 est déjà un peu agressif, 1.5 sûrement mieux par défaut ?)
tx-bias1.00En mode 1, défavorise le lissage (moyenne de deux références, mélange inter-intra, grands blocs intra) et favorise une interpolation plus nette = garde plus de détails sur les sujets en mouvement.
enable-tf2 (adaptatif)1 (activé)Force du filtre temporel par bloc de 64x64.
complex-hvs10]Applique le critère psychovisuel d'ac-bias dès le premier tri des prédictions, au lieu d'une simple variance. Les candidats qui gardent la texture ne sont pas éliminés trop tôt.
enable-dlf31Deblocking à précision maximale. (Aucun effet aux presets 0 à 2 mais bon j'ai mis quand même.)
hbd-mds10Compare les prédictions en 10 bits au lieu de 8 bits. Plus précis dans les dégradés et les zones sombres. Aucun effet aux presets 0 à 5 (mais j'ai mis quand même).
enable-variance-boost11Baisse le QP dans les zones plates et peu contrastées.
variance-boost-strength3 (moyen)2 (doux)De combien le QP baisse dans les blocs plats.
variance-octile45Renforce aussi les blocs qui ne sont que partiellement plats.
scd11Détection des changements de scène, colle une image-clé aux changements de plan (SVT-AV1 n'a pas ça)
intervalle (max) d'images clés10 s-2 (environ 10 s)Réglé avec -g dans ffmpeg.
CICPselon la source/9/18/9 HLG, 9/16/9 PQ, 1/1/1 SDR. À mettre aussi dans svtav1-params.

hwti

  • Abonné Orange Fibre
  • *
  • Messages: 3 069
  • Chambly (60)
Le fait d'utiliser AV1 n'engendre aucune incompatibilité avec les applications pour partager la vidéo : elle est ré-encodée en H.264, comme c'est aussi le cas pour les vidéos HEVC.
Je suppose que le H264 est en SDR, donc il y a un peu plus qu'un ré-encodage.

D'ailleurs, je vois des différences entre navigateurs, dans la manière dont ils affichent cette vidéo HDR sur une sortie SDR :
 - Firefox (Windows, Linux, Android) produit un résultat assez terne
 - Chrome (Windows, Linux) produit un résultat plus proche de l'original
Chrome Android (sur mon Pixel 8a) bascule en HDR : la vidéo est plus lumineuse, mais la page à côté est un peu terne.

vivien

  • Administrateur
  • *
  • Messages: 53 422
    • Bluesky LaFibre.info
Le lecteur vidéo de Gnome (celui qui est de base sous Ubuntu) n'arrive pas à lire la vidéo, alors qu'il lit bien les vidéos AV1 et et les vidéos avec de l'AAC.

Je me demande si ce n'est pas le HDR qui le bloque.

Si on clique sur "Ontaller le greffon" il ne trouve rien.
Si on clique sur "Essayer quand même" la vidéo se lance, mais est très saccadée (sur un Core i7-12700, alors qu'il ne devrait y avoir aucun problème pour le décodage logiciel avec ce CPU)