En septembre, une nouvelle version de
Theora est sortie. Peu de nouveautés en perspective, mais un changement important pour ce format de fichier. Theora est un morceau du projet Ogg, créé et soutenu par
Xiph.org qui vise à terme à proposer un ensemble de
codecs et de formats multimédias libres et ouverts. Ce format est principalement connu sous l'extension
.ogg. Ce projet se décline en fait en trois branches :
- la branche audio (extension .oga) ;
- la branche vidéo (extension .ogv) ;
- la branche application (extension .ogx).
Theora est, quant à lui, le codec utilisé par la branche vidéo. Ce codec vient de subir une mise à jour : il est passé en version 1.1.
Le format Ogg
On confond souvent le format ogg et L'Ogg vorbis (codec utilisé par la branche audio), car les fichiers audio utilisant les codecs d'ogg sont tout le temps avec l'extension .ogg. Pourtant, il existe le format .oga (déjà vu plus haut). Pourquoi ? Parce que l'ogg est un "format" conteneur, c'est-à-dire un format qui peut contenir différents types de données (d'autres exemples de formats conteneurs sont : le .avi, le .mov ou encore le .3gp).
Comment ça fonctionne ? Imaginons un instant que nous ayons un film. Sa bande son est stockée sur un
CD. Sa partie image sur un autre CD. Les sous-titres sur un autre, etc. On met tous ces CD dans une boîte. Cette boîte, c'est en fait le format conteneur ! En pratique, ce format va s'assurer que tout ce qui doit être lu à un moment
t (exemple, l'image A avec l'échantillon sonore B et et le sous-titre C) soient synchronisés. Les avantages de cette méthode sont qu'on a un seul fichier (au lieu de trois dans notre exemple, c'est plus facilement transportable), que tout les flux de données sont séparés et « rangés », qu'on peut compresser chaque partie du fichier avec une méthode adaptée (on ne va pas compresser de la même manière une image, du son et du texte) et que le format conteneur peut lui-même être compressé (gain de place encore supérieur).
Cela explique pourquoi un fichier ogg peut être une simple musique ou une vidéo, et que les fichiers .ogg soient les seuls utilisés. Il existe un autre format conteneur, .ogm, spécialisé pour les vidéos, mais il est très peu utilisé. Pourtant, il est plus puissant que le .ogg (pour les vidéos seulement). En effet, un fichier ogg ne peut contenir que des flux compressés par des codecs issus de Xiph.org (Vorbis et Theora) alors que l'ogm (pour
OGG multimédia) peut contenir d'autres types de flux (tel que du MP3) et gère en outre le multi-channel, le chapitrage, etc. Ce qui le place comme l'équivalent libre de l'AVI.
À noter que le projet ogg s'appelait au départ Squich, mais l'auteur aurait reçu une notification selon laquelle le nom était déjà utilisé. Il fut alors renommé Ogg (en fait SquichOgg) en référence à une manœuvre tactique du jeu Netrek.
Theora

Theora est le codec qui s'occupe
uniquement de la partie vidéo d'un fichier Ogg. La partie audio est, elle, gérée par le codec Vorbis, spécialisé dans la gestion et la compression des données audio. Theora est un format de compression avec pertes, ce qui signifie que la vidéo va être encodée pour gagner un maximum de place, mais qu'en contrepartie, il y aura une perte d'informations, de qualité (et le but d'un encodeur performant est que cela se remarque le moins possible).
Il est en fait faux de dire que Theora est libre de droit et dégagé de tout brevet. En effet, celui ci est basé sur le codec VP3 de la société On2 Thechnology, mais celle-ci a, heureusement, donné le droit irrévocable d'utiliser son brevet sans aucune restriction. Theora est donc placé sous licence BSD, ce qui en pratique donne le droit de l'utiliser pour toute utilisation, qu'elle soit commerciale ou pas. Ce format est en concurrence directe avec d'autres, tel que MPEG-4, Windows Media Vidéo ou encore RealVideo. Avec l'avantage de n'avoir aucun droit à payer quand on l'utilise, comme c'est le cas pour, par exemple, Xvid (il faut payer le Consortium MPEG, qui, notons le, détient aussi les droits du format MP3).
C'est en septembre 2001 que le codec VP3 est publié, très vite suivi par l'annonce de Xiph.org qui voulait l'utiliser. Après une longue période de développement (6 ans et plusieurs versions alpha et bêta), le codec sort enfin dans sa version stable (1.0) en octobre 2008. Ce type de vidéo n'est pas encore très répandu. Il est utilisé par Dailymotion (pour certaines vidéos, sur
openvideo.dailymotion.com) et proposé par PeerTV pour certaines chaînes via PeerCast. Enfin, c'est le format proposé par le W3C pour la balise
<video>
de HTML 5, qui est par ailleurs lu par Mozilla Firefox dans sa version 3.5.
Anecdote : Le nom Theora est basé, comme tous ceux de Xiph.org, sur celui d'un personnage de fiction. Il s'agit ici de Theora Jones, personnage de la série télévisée "Max Headroom".
La nouvelle version
Cette nouvelle version, qui sort moins d'un an après la précédente, ne change en fait rien au format en lui-même mais apporte par contre un tout nouvel encodeur, nommé thundsela. Les vidéos générées par celui-ci pourront toujours être lues par les lecteurs actuels et les anciennes vidéos pourront toujours être lues par cette nouvelle version. Le changement se situe dans les méthodes de compressions et de décompressions, qui ont été retravaillées pour être plus puissantes et / ou plus efficaces.
Différence entre les deux versions, tirée de cette vidéo. En haut, la version 1.0, en bas, la 1.1.
Amélioration générale de la qualité
Un des grands défauts de Theora était que les vidéos encodées avaient toujours l'air un peu floues et manquaient de netteté dans les détails. Cette nouvelle version apporte une substantielle amélioration. En effet, Theora est maintenant capable d'obtenir une image de meilleure qualité avec un fichier de taille équivalente à celle de la version précédente (pour la même vidéo), c'est-à-dire qu'une vidéo encodée en Theora 1.0 et la même en 1.1 feront la même taille, mais que la qualité de la vidéo sera meilleure avec le fichier encodé avec 1.1.
Pour arriver à ce résultat, plusieurs choses ont été changées ou ajoutées. Par exemple, l'opération mathématique qui aide la compression d'image a été changée pour une autre qui donne un meilleur résultat (
la transformée en cosinus discrète, pour ne pas la citer. Âmes sensibles, s'abstenir). De plus, une méthode nommée
quantification permet de faire des approximations sur le fichier non-compressé afin d'optimiser cette dernière. Enfin, l'optimisation des distorsions du flux (RDO pour
Rate-Distortion Optimization) fait son apparition et remplace toutes les méthodes (nommées heuristiques) qui étaient utilisées dans la version 1.0. Le niveau de détail augmente donc en bout de chaîne car de meilleures décisions sont prises automatiquement lors de l'encodage.
Notons encore une amélioration de la vitesse du module de la « détection de mouvement ».


Différence de qualité entre les deux versions.
Cependant, Theora a encore du mal avec les vidéos HD, où la qualité d'image laisse encore à désirer.
Amélioration du bitrate pour le streaming
Pour bien comprendre, il faut déjà savoir ce qu'est le bitrate : c'est la quantité d'informations délivrée par frame (en gros par image de la vidéo) et s'exprime en Ko/s (Kilo-octet par seconde). On l'appelle aussi le débit.
Ensuite, il faut comprendre la différence entre bitrate variable et constant : si le bitrate est variable, il varie en fonction du nombre d'informations à transmettre par frame, du déplacement de quelques pixels (et le bitrate sera alors faible) au changement complet de toute l'image (bitrate fort). Ces moments s'alternent dans une vidéo et le bitrate varie en même temps. Par contre, si le bitrate est fixe, cela veut dire qu'on donne une valeur maximum au nombre d'informations à transmettre par frame. S'il y en a plus à transmettre, il faut faire des sacrifices. Il parait évident que pour avoir une bonne qualité d'image, il vaut mieux utiliser un bitrate variable. Celui-ci est déterminé par l'encodeur à la compression. En effet, toutes les images ont la même taille, pour commencer, mais il faut les compresser, sinon la vidéo sera trop lourde. C'est l'encodeur qui va choisir quelle méthode pour compresser les images, et c'est lui qui choisit les informations à "oublier" si on lui a demandé un bitrate fixe.
Cependant, il existe des cas où avoir un débit constant est préférable. Le streaming est un de ces cas où avoir une taille fixe par frame est intéressant, à cause du protocole TCP qui impose des paquets de tailles fixes. Il vaut mieux connaitre la taille de ces paquets que prévoir une taille trop grande (et envoyer trop d'informations pour rien) ou avoir une taille trop petite (et devoir envoyer en plusieurs fois).
Quel est le rapport avec Theora ? Eh bien, dans sa version 1.0, il ne gérait pas bien le débit constant. Cette nouvelle version apporte une amélioration qui devrait réconcilier Theora et streaming.
L'encodage en deux passes
Directement lié à l'amélioration précédente, celle-ci permet de ré-encoder la vidéo une deuxième fois, en fonction de la première. Pour simplifier, le premier encodage compte « pour du beurre » et sert à faire un certain nombre de statistiques qui permettront d'encoder le fichier de manière optimale la deuxième fois, par exemple pour déterminer un bitrate fixe, mais aussi pour en réduire la taille ou augmenter la qualité. Mais il n'y a pas de secret, c'est évidemment deux fois plus long.
Optimisation de l'utilisation du CPU
L'encodeur est maintenant optimisé pour mieux utiliser le CPU. En effet, auparavant, il y avait pendant l'encodage des pics de CPU, qui ne favorisaient pas l'encodage en temps réel (par exemple avec un caméscope). Un gros travail a été fait sur ce point et l'utilisation du CPU est maintenant beaucoup plus fluide et constante.
Ogg, Theora, le Web et le futur
En tant que format libre (de tous brevets), c'est ce dernier qui a été choisi par le W3C comme standard pour la balise
<video>
de HTML 5. C'est un grand coup de pub pour Theora, mais aussi une grande charge. On comprend donc mieux les améliorations qui ont été apportées à l'encodeur en ce qui concerne le streaming. Theora est d'ailleurs lu par défaut par le navigateur web Firefox, alors que Safari a, lui, choisi le standard H.264, non-libre. Dans cette bataille pour le format de vidéo, il faut espérer que le W3C saura trancher, sachant que les détracteurs de Theora affirment que celui-ci propose une qualité moindre de vidéo, affirmation qui aurait pu être vraie jusqu'il y a peu, au vu des améliorations.
Interrogé sur le sujet d'un possible transfert des vidéo de Youtube vers Theora, le responsable a déclaré que
« si nous faisions une bascule vers Theora en maintenant un semblant de la qualité actuelle des vidéos de Youtube, alors cela occuperait la plus grande part de la bande passante actuelle d'Internet ». Il faut espérer que ces affirmations se rapportaient à l'ancienne version du codec et que celle-ci parviendra à le convaincre.
Une étude comparative a d'ailleurs été effectuée par une personne indépendante et connue pour la qualité de ces observations, et elle est disponible
ici, en anglais. Il ressort qu'au contraire, Youtube gagnerait à effectuer la transition, ne serait-ce que pour gagner en rapidité, de par la disparition de la charge de flash.
Liens