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

artiflo et 2 Invités sur ce sujet

vivien

  • Administrateur
  • *
  • Messages: 51 229
    • Bluesky LaFibre.info
Guerre des codecs: qui va l'emporter entre AV1 vs HEVC/H.265 ? Probablement AV1
« Réponse #300 le: 26 février 2025 à 13:10:01 »
Ils ont catégoriquement refusé, d'où ce fork
Tu sais pourquoi ?

Quand tu as une liste d'encodeurs, en rajouter un de plus, cela ne dégrade pas l'expérience utilisateurs.

Personnellement, j'ai été étonné que Handbrake qui propose une centaine de préréglages (presque tous en H.264, un petit peu de HEVC) et ne propose rien pour VP9 dans un conteneur WebM (le seul permettant de diffuser sur internet). Le seul pré-réglage VP9 qui existe, il est caché dans "Mastroka" et il n'est donc pas utilisable sur internet).

Je prépare un tutoriel, car quand on sélectionne WebM manuellement, le codec audio n'est pas le bon, bref, ce n'est pas simple pour une personne non expert de faire un encodage VP9 pour le web, ce codec étant pourtant le codec le plus efficace reconnu par l'ensemble des navigateurs.

Bref, j'ai l'impression que Handbrake boude VP9 et AV1.

Autre point, les différences entre la version Windows et la version Linux. Il y a des différences importantes d'ergonomie et même un onglet dans la version Linux qui n'existent pas du tout sous Windows, comme l'onglet "Balise" (c'est le cas depuis des années).


MaxLebled

  • Abonné Free fibre
  • *
  • Messages: 1 000
  • Rennes (35)
    • Site web
Guerre des codecs: qui va l'emporter entre AV1 vs HEVC/H.265 ? Probablement AV1
« Réponse #301 le: 26 février 2025 à 13:37:45 »
Tu sais pourquoi ?

https://github.com/HandBrake/HandBrake/issues/6257#issuecomment-2307830032

Citer
Personnellement, j'ai été étonné que Handbrake qui propose une centaine de préréglages (presque tous en H.264, un petit peu de HEVC) et ne propose rien pour VP9 dans un conteneur WebM (le seul permettant de diffuser sur internet). Le seul pré-réglage VP9 qui existe, il est caché dans "Mastroka" et il n'est donc pas utilisable sur internet).

Oui... je ne suis vraiment pas fan de la manière dont c'est présenté. Une liste énorme de 100 préréglages, c'est vraiment nul

vivien

  • Administrateur
  • *
  • Messages: 51 229
    • Bluesky LaFibre.info
En 2019, 91 % des services de streaming utilisaient le H.264 ; nous estimons que ce chiffre n'était tombé qu'à 70 % en 2024.

Source : DVB Scene - Issue 65 - mars 2025

vivien

  • Administrateur
  • *
  • Messages: 51 229
    • 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).

Harvester

  • Abonné FAI autre
  • *
  • Messages: 408
  • KPN SuperFiber 1 - Pays-Bas
    • Site perso
Pour revenir à la discussion de février, il y a un ticket ouvert chez SVT-AV1 pour implémenter directement les fonctionnalités de PSY et PSYEX, ETA fin 2025 : https://gitlab.com/AOMediaCodec/SVT-AV1/-/issues/2269

vivien

  • Administrateur
  • *
  • Messages: 51 229
    • Bluesky LaFibre.info
Guerre des codecs: qui va l'emporter entre AV1 vs HEVC/H.265 ? Probablement AV1
« Réponse #305 le: 28 octobre 2025 à 20:52:14 »
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.
Une personne aurait acheté un Pixel 10 et pourrait vérifier si les vidéos prises par le téléphone ne sont plus en HEVC, mais en AV1 ?

C'est bien une extesion de fichier .mp4 qui est proposé pour l'AV1 ?

Quel est le codec audio utilisé pour ces vidéos AV1 ?

Même question pour la capture vidéo de l'écran : Quel est le codec vidéo, codec audio ? avec mon Pixel 6 il encode la capture d'écran vidéo en H.264 (cotre HEVC pour les vidéos avec la caméra).

MaxLebled

  • Abonné Free fibre
  • *
  • Messages: 1 000
  • Rennes (35)
    • Site web
La plus grosse fonctionnalité du fork SVT-AV1-PSY, "psy-rd" (renommée en "ac-bias") a été intégrée à SVT-AV1 ! https://gitlab.com/AOMediaCodec/SVT-AV1/-/merge_requests/2513

Conceptuellement, c'est similaire à des fonctionnalités psy que x264 et x265 ont eu depuis des années.

C'est une très grosse amélioration psychovisuelle et donc de qualité dite « subjective » (càd qui ne se retrouve pas via les indicateurs PSNR, SSIM...)

vivien

  • Administrateur
  • *
  • Messages: 51 229
    • Bluesky LaFibre.info
C'est récent ! Il n'y a pas encore de version avec, non ?

Sur https://gitlab.com/AOMediaCodec/SVT-AV1/-/releases la dernière version est la 3.1.2.

Il faut attendre la 3.2.0 ?

Il faut encore un peu de temps pour que cela arrive dans les outils d'encodage.

Tu utilises quoi pour encoder tes vidéos ? ffmpeg directement ou un outil graphique.

Pour évangéliser l'utilisation d'AV1, il n'est pas possible de convaincre avec un outil en ligne de commande.

J'ai testé HandBrake et j'ai été vraiment déçu, il n'est pas fait pour AV1.

J'ai par contre été séduit par Shutter Encoder ( https://www.shutterencoder.com/fr/ ) très complet et qui propose qq chose de cohérent pour AV1 (par défaut, conteneur MP4 + audio Opus, ce que je souhaite). Il intègre même une normalisation du flux audio, on peut rogner dans le temps ou sur une partie de l'écran, changer le nb d'image par seconde où la définition, il ne manque que les métadonnées du fichier vidéo.

MaxLebled

  • Abonné Free fibre
  • *
  • Messages: 1 000
  • Rennes (35)
    • Site web
Tu utilises quoi pour encoder tes vidéos ? ffmpeg directement ou un outil graphique.

J'utilise ce fork automatisé de Handbrake qui remplace automatiquement SVT-AV1 par SVT-AV1-PSY dans ses binaires : https://github.com/Nj0be/HandBrake-SVT-AV1-PSY?tab=readme-ov-file

J'ai mes propres presets ; c'est un peu obligatoire car je trouve que les presets par défaut sont ignobles.

Concrètement mon point de départ, c'est toujours :

- Conteneur MP4, audio Opus 96 Kbps
- Toujours en 10-bit (la prise en charge du décodage matériel l'a rendu obligatoire ; c'est contre-intuitif mais ça améliore la compression et surtout ça aide énormément vis-à-vis du banding)
- Preset 1 pour la vitesse ; qualité identique à 0 mais va 2x plus vite. 2 est également acceptable.
- Limitation à 1920 en largeur, 1440 en hauteur, pas d'anamorphose (donc 16:9 horizontal limité à 1920x1080, mais 4:3 vertical se retrouve en 1080x1440)
- CRF 50 en 1080p, 55-60 en 4K, 40-45 en 720p
- Options avancées : enable-variance-boost=1:variance-boost-strength=2:variance-octile=5:psy-rd=1.0:spy-rd=2:qp-scale-compress-strength=2:enable-dlf=2:complex-hvs=1

Augmentation du CRF si la définition augmente, et inversement. Si le contenu est relativement statique et/ou a besoin de vraiment préserver des détails subtils (nuages, ciel...) : diminution du CRF, augmentation de variance-boost-strength à 3 ou 4, diminution de variance-octile à 4 ou 2 (vraiment en dernier recours)

Généralement tous les filtres restent désactivés ; taux de rafraîchissement identique à la source (pour préserver tous les timings des trames d'origine), étendue des couleurs identique aussi. Ça permet de garder le HDR tel quel pour les vidéos de smartphone qui en ont.

Si je veux faire du HDR→SDR j'ai un preset identique mais avec juste une conversion d'espace de couleurs personnalisée : primaries=bt709:transfer=bt709:matrix=bt709:tonemap=reinhard:desat=20

Je n'utilise pas vraiment AV1 pour le partage de vidéos, mais pour l'archivage personnel de tout ce que je tourne via téléphone portable.

Pour le partage (notamment via Discord, qui impose une limite de 10 Mo) je privilégie x265 10-bit, CRF 28, déf. max. 720p, preset "slow" ; et Opus 96 Kbps. Il y a beaucoup plus de personnes avec un appareil Apple susceptibles de tomber sur les fichiers que je partage, que d'utilisateurs de Linux sans prise en charge HEVC (et ce sont ces derniers qui savent généralement ce qui se passe et comment y remédier, alors que les utilisateurs d'iPhone, non)

MaxLebled

  • Abonné Free fibre
  • *
  • Messages: 1 000
  • Rennes (35)
    • Site web
Voici ce qui est sans doute un de mes encodages les plus marrants. De la 4K avec 500 Kbps, qui dit mieux ? (Et c'était bien avant SVT-AV1-PSY donc ça serait sans doute mieux aujourd'hui)

vivien

  • Administrateur
  • *
  • Messages: 51 229
    • Bluesky LaFibre.info
- CRF 50 en 1080p, 55-60 en 4K, 40-45 en 720p
C'est osé CRF 50 et > 50, tu perds quand même pas mal de détails.

Personnellement, si c'est une vidéo source de qualité médiocre (ex: enregistrement d'une visioconférence) je serais en CRF 50, mais sinon je suis mon CRF habituel, CRF 45 (en 1080p la résolution que j'utilise le plus).

Je peux descendre à un CRF de 40 pour certains contenus dans lesquels j'ai besoin de qualité ou 720p.

- Toujours en 10-bit (la prise en charge du décodage matériel l'a rendu obligatoire ; c'est contre-intuitif mais ça améliore la compression et surtout ça aide énormément vis-à-vis du banding)
Tu es sûr que le 10-bit améliore la qualité pour une même taille ?

J'ai fait des comparatifs pour les images AVIF avec Gimp : J'ai fait varier l'encodage en 8 / 10 / 12 bits/canal. Les fichiers 10 / 12 bits sont systématiquement plus lourds que l'encodage 8 bits/canal. On pourrait imaginer que la qualité est meilleure, mais j'ai testé sur des valeurs ou la dégradation est visible et la réponse est non.

Sous-échantillonnage de la chrominance : Par contre, j'ai trouvé que l'encodage YUV444 ne prenait pas beaucoup plus de place que le YUV420 donc toutes mes photos sont en 444.

Je vais refaire des test avec une image SVG qui devrait permettre de mettre en évidence le banding.

Tu préfére ce SVG


ou ce SVG ? (pour mettre le mieux en évidence le banding)

MaxLebled

  • Abonné Free fibre
  • *
  • Messages: 1 000
  • Rennes (35)
    • Site web
Oui, absolument. C'est très contre-intuitif, je le reconnais. J'ai joint un PDF qui l'explique. En gros, c'est (principalement) une histoire de quantisation. Même si la source est 8-bit, ça a un bénéfice d'encoder en 10-bit. L'explication simplifiée, c'est que l'encodeur ne se heurte pas à un manque de précision qui crée des erreurs nécessaires à encoder (qui génèrent du "bitrate en trop").

Ça n'a pas grand chose à voir avec le sous-échantillonnage de la chrominance ; passer de YUV 4:2:0 à 4:2:2 ou 4:4:4 augmentera systématiquement la charge. D'ailleurs, il y a à ma connaissance très peu de décodeurs matériels qui prennent le 4:2:2 et le 4:4:4 en charge avec AV1 (mais possibilité que je confonde avec un autre codec)

Ces SVG ne devraient pas, en soi, mettre le banding en évidence. C'est surtout le deuxième qui permettra de le distinguer. Mais in fine ça va dépendre du moteur de rendu et de l'affichage derrière. Je ne suis pas sur mon écran principal OLED qui sait afficher du 10-bit actuellement (je suis sur une tablette "normale") donc je vois un peu de banding. Mais ça va... un peu de dithering (diffusion d'erreur avec "bruit bleu" et ça serait très propre.

Pour ce qui est du CRF, oui, c'est vrai que 50 est très bas ! Mais je l'utilise surtout pour garder des vidéos filmées sur smartphone, la plupart relativement banales :) j'adapte le CRF en fonction du résultat que j'obtiens et de l'importance qu'une vidéo pourrait avoir pour moi. C'est vraiment dans l'ultra-compression qu'AV1 est avantageux ; au-delà d'un certain débit, je préfère rester sur x265 !
« Modifié: Aujourd'hui à 17:44:16 par MaxLebled »