pt
Moulé à la louche depuis 1999
Les trucs qui m'énervent... et je vais pas prendre de pincettes
Internet, informatique, logiciel libre, économie, politique, vie courante et tout le reste...

Google a libéré VP8 !

Mercredi 19 mai 2010

C'était attendu, Google libère son codec vidéo VP8, c'est officiel.

Ce codec vidéo de bonne qualité est donc maintenant opensource. Google a choisi de le combiner au codec audio Vorbis et au conteneur Matroska pour former WebM. WebM est donc le nouveau standard vidéo ouvert. D'ailleurs Google n'a pas perdu de temps: YouTube diffuse déjà 1,2 millions de vidéos dans ce format.

Résumons:

WebM = codec vidéo VP8 + codec audio Vorbis + conteneur Matroska


Google travaille également avec Mozilla (pour l'intégration dans Firefox), Opera, ainsi qu'avec AMD et NVidia pour l'accélération matérielle. On peut déjà trouver des pré-versions de Firefox, Chromium et Opera qui supportent WebM. Des patchs ffmpeg sont également déjà disponibles (ffmpeg est un encodeur/décodeur vidéo utilisé dans de nombreux programmes) ainsi qu'un filtre DirectShow (pour DirectX sous Windows). De son côté Adobe a annoncé que Flash supportera VP8 dans le futur (Adobe est bien obligé de supporter VP8 sous peine de disparaître du domaine de la vidéo web, surtout que HTML5 commence déjà à voler la vedette à Flash pour la lecture des vidéos H264). Skype utilise déjà VP7 (de la même société On2) pour la vidéo, et semble être très favorable à VP8. Un certain nombre d'autres grandes entreprises emboitent le pas à Google.

Microsoft, dans son flegme habituel, n'en a rien à battre de VP8 et annonce que IE9 supportera VP8... si l'utilisateur installe le codec. Baha, œuf corse, comme avec absolument n'importe quel autre codec.

Le code source de VP8 est sous une licence est très similaire à la licence BSD: Vous pouvez aller jusqu'à vendre votre version modifiée et compilée du codec même sans distribuer les sources. Cela pourrait inciter des entreprises à travailler sur des codecs commerciaux de qualité. Quant à la spécification du format VP8, elle est en CreativeCommons. De son côté Vorbis est de toute manière dans le domaine public, donc aucun soucis. Matroska est une marque déposée mais l'utilisation des spécifications est libre même pour un usage commercial.

Tout cela est de très bonne augure.


Maintenant, il est intéressant d'avoir l'avis d'un spécialiste, le programmeur du codec opensource x264 (compatible H264) qui a lu la spécification et le code source de VP8. C'est un spécialiste, je lui fais totalement confiance.

Les bons points selon lui:

  • L'encodeur VP8 est bon. VP8 a une qualité bien supérieure aux deux autre codecs opensource, Theora et Dirac, et il se situe entre Xvid/DivX et Microsoft VC-1 en terme de qualité, mais reste inférieure à H264 (Maintenant tout n'est pas joué: un bon encodeur VP8 peut faire un meilleur boulot que du H264.).
  • Il pense également que Google a fait un bon choix avec Vorbis et Matroska.

Il voit cependant divers problèmes:

  • La spécification de VP8 est une horreur, pleine de copier-coller de bouts de code en C, et inexploitable en l'état. On verra difficilement apparaître d'autres implémentations de VP8 que celle de Google.
  • Google semble s'être trop précipité pour déclarer la spécification et l'implémentation "stable" (final). Le code est plein d'imperfections.
  • Le fait que VP8 soit libre de tout brevet est une simple affirmation de Google. Il compare avec le codec VC-1 de Microsoft qui avait les mêmes prétentions et s'en est malgré tout pris plein la tronche.
  • VP8 est techniquement trop proche de H264, et on prend le risque de le voir attaqué avec des brevets. Et Dieu sait que le comité MPEG-LA est coriace.
  • Le code source de VP8 mériterait beaucoup d'améliorations et optimisations.
  • VP8 manque d'optimisation psycho-visuelle comme possède x264/H264 actuellement (élimination des détails peu perçu par l'oeil humain et le cerveau).
  • On ne trouve pas d'encodeurs/décodeurs matériel pour VP8 (Je pense qu'il se trompe étant donné que le fabriquant de puces BroadCom annonce déjà la disponibilité du VP8 dans ses puces VideoCore, ainsi que Texas Instruments dans ses puces OMAP, et également Verisilicon dans ses puces ZSP, sans compter AMD/ATI, NVidia et MIPS qui travaillent aussi sur VP8).
  • Le codec VP8 est lent en l'état actuel, aussi bien en encodage qu'en décodage. Plus lent que H264. Et il ne voit pas vraiment d’améliorations en performances possible pour le décodeur.

Il pense que Google aurait vraiment dû raffiner le tout avant de se précipiter pour en faire un standard.

Il est intéressant de voir le résultats en matière de qualité d'image pour un même bitrate (extrait d'une frame 1920x1080).

Xvid
VP8
H264 (x264)
Theora
Dirac
VC-1
copyright © 2008-2010 by Jason Garrett-Glaser (aka Dark Shikari), all rights reserved.

Même si l'immense poids de Google et ses partenariats ne fait aucun doute sur l'adoption de VP8, la précipitation de Google nuit à VP8 qui aurait beaucoup gagné dans une phase de maturation de quelques mois. C'est dommage.

Voir tous les billets