Notions élémentaires sur les Codecs, Filtres et autres
Page modifiée le 07 septembre 2006 - (créée le 11 mars 2005)

Niveau : moyen       Type : Dossier

On entend souvent "Mon programme de lecture vidéo machin n'arrive pas lire le fichier bidule. Il me manque sans doute un codec !".
Et certains diront même "J'ai pourtant installé le pack truc des codecs !".
Si c'est votre cas, il n'y a hélas pas de solution miracle et toute faite.
Toutefois, il y a quelques notions élémentaires à connaître sur le terme de 'Codec'. Les plus novices ne parle que de 'codec' alors qu'il existe d'autres 'librairies externes' capable de lire un fichier audio ou vidéo : il s'agit des 'filtres'. Voilà un autre terme à retenir dès que l'on parle de 'codec'.
Et il y a encore d'autres termes à connaître (comme par exemple le ‘conteneur’), pour peu que l'on désire comprendre comment un programme de lecture audio/vidéo puisse lire un fichier média.



 Principe de lecture d’un fichier vidéo

Pour résumer la situation, on peut dire qu'un fichier vidéo nécessite les différents 'éléments' suivant :
  • 1- un container, son "enveloppe", qui englobe et détermine les types de flux que l'on peut y insérer.
  • 2- le type de compression pour chacun des flux (dans la majorité des cas, c’est compressé !), qui détermine la structure de l'image et du son qui l'accompagne.
  • 3- des codecs ou filtres, les "traducteurs" grâce auxquels le logiciel peut afficher la vidéo et les fichiers en relation avec elle.
  • 4- un logiciel de lecture, ou player, qui possède plus ou moins de capacités et pourra (ou pas) tirer partie de toutes les fonctionnalités du fichier vidéo considéré, puis l'afficher sur votre moniteur (ou votre TV !).
Si ça n’est pas clair, on peut voir ces éléments d’une autre manière :
  • Différents codecs et/ou filtres doivent être intallés sur votre PC. Ces codecs peuvent être de type audio ou vidéo (point 3 ci-dessus).
  • Le fichier vidéo possède un conteneur qui englobe un flux audio et un flux vidéo (point 1 ci-dessus). Chacun des flux est compressé (point 2 ci-dessus) et fait appel à un ou plusieurs codecs/filtres externes (point 3 ci-dessus).
  • Le logiciel de lecture (point 4 ci-dessus) va lire le conteneur, et décompressé les différents flux du fichier vidéo par l’intermédiaire de vos codecs/filtres préalablement installés sur votre PC.


 Le conteneur

C'est le format du fichier destiné à rassembler des flux d'informations de différentes natures, à savoir le son (audio) et l’image (la vidéo). Dans certains cas, d’autres éléments annexes peuvent être intégrés comme la gestion des langues audio (plusieurs bandes sons), le sous-titrage, les chapitres, etc…
  • Avi (Audio-Video Interleave) : c'est un standard Microsoft donc implémenté automatiquement sous Windows. Il ne peut contenir que des flux audio et vidéo (en fait un flux vidéo et plusieurs audio), et accueillir divers types de compression (MP3, AC3, MPEG-4, Indeo, etc).
  • DivX : tout le monde connait le codec DivX. Depuis la version 6, DivX propose son propre conteneur, incluant dans un seul fichier plusieurs pistes de sous-titres, plusieurs bandes son, balises vidéo XTAG, chapitrage, menu d'entrée interactif.
  • Ogm : Il existe également l'OGM (Ogg Media File). C'est un 'conteneur' récent qui peut, lui, contenir également du texte, en plus des informations relatives à la vidéo et l'audio. Et il est open source. Nous avons donc la possibilité d'avoir dans un seul contenant notre vidéo, nos pistes sonores et nos sous-titres... Pratique ! Ne pas confondre OGG et OGM. L'Ogg est une compression audio alors que l'OGM est le conteneur multimédia développé par les créateurs de l'Ogg et destiné à l'accueillir.
  • Mkv : Encore en développement, mais fonctionnelle... Le Matroska. Encore plus évolué que l'OGM... et Open Source aussi. Il peut embarquer, outre les indispensables flux vidéo et audio, des sous-titres, des menus et chapitres, etc..., tout comme un DVD sauf que le tout tient dans un seul fichier compressé !
  • RatDVD : C'est une alternative au DivX 6 car la création (codage) est gratuit. Ce projet est encore en developpement.


 Le codec

Un codec (contraction de Compression - Décompression) est un algorithme mathématique qui permet de compresser un fichier pour le stocker (et ainsi gagner en place), puis de le décompresser à la volée afin de lire le fichier.
Un codec peut être du type audio ou vidéo.
  • Les principaux codecs audio sont MP3, OGG, WMA (Windows Media Audio), RA (Real audio).
  • Les principaux codecs vidéo sont WMV (Windows Media Video), RVx (Real Video), QuickTime (Apple), DivX, XVid.
    Attention, certains codecs possèdent plusieurs générations de codecs. Par exemple, DivX possèdent les générations DivX 3.11, DivX 4.12, DivX 5.1.1, DivX 6 (à l'heure actuelle, c'est la dernière en cours).
A noter que, sauf erreur de ma part, la dernière version d'une famille de codec est compatible avec les versions précédentes POUR LA LECTURE (donc la décompression). Si vous ne désirez que lire des fichiers vidéo, inutile d'installer toutes les versions de DivX par exemple. N'installez que la dernière version.

Attention, ne pas confondre une norme de compression avec un codec. Le codec découle de la norme qui le définit. Ainsi, la norme MPEG-4 peut-être implémentée par différents codecs (Divx, Xvid...) et à l'intérieur d'une famille de codecs, différentes générations de codecs (par exemple, les différentes versions de DivX).

 
 Le filtre

Le filtre est différent du codec. On distingue deux types de filtres :
  • Le splitter : Chaque conteneur n'est exploitable par le player que si ce dernier dispose d'un filtre lui permettant de connaître les caractéristiques du conteneur vidéo. Pour lire un AVI, il faut disposer de l'AVI Splitter, pour lire un RV9 il faut le Real Splitter, pour lire un Matroska il faut le MKV splitter, et ainsi de suite avec les autres types de conteneurs.
  • Le filtre de décodage : Les codecs ne sont pas les seuls librairies externes capables d'interpréter un fichier vidéo... Les filtres peuvent aussi le faire, mais à la différence de codec il n'est pas capable d'encoder. On peut en fait considérer que le codec est l'assemblage de deux filtres : un d'encodage et un de décodage.
    Pour les personnes ne faisant pas d'encodage mais se contentant de lire des vidéos, les filtres sont une bonne alternative aux codecs.


 Direct Show

Direct Show (issus du DirectX) est la norme windowsienne la plus utilisée pour compresser/décompresser tout ce qui se rapporte à l'audio/vidéo.
Beaucoup de filtres de décodage y sont développés : on parle alors de 'filtres Direct Show'. Et nombreux sont les players qui utilisent cette norme (par exemple,  BOX2PLAY pour faire un peu de pub).

 
 Les packs de codecs

On ne peut pas parler de codecs et autres sans parler de packs de codecs. Pour ceux qui ne veulent pas s'ennuyer à rechercher les différents codecs et autres dont ils ont besoin pour lire leur collection de fichiers audio ou vidéo, une solution alternatives s'offre : il s'agit des packs de codecs.
Comme son nom le laisse supposer, un pack contient un ensemble de codecs et autres. Légitimement, on attend d'un tel pack qu'il puisse installer tout le nécessaire pour pouvoir enfin lire sans problème tous les types de fichiers média que l'on possède. C'est une tache bien lourde vu la multiplication des algorithmes de compression concernant la vidéo. Pour compliquer la chose, certains codecs ne sont pas compatible avec d'autres. Imaginez les dégâts d'un pack qui installe tous les codecs du marché !

Ca ne signifie pas que tous ces packs sont à mettre à la poubelle. Mais il faut rester très vigilant sur ce type d'installation.
Un bon pack est mise à jour plusieurs fois, et au moins à chaque fois qu'un nouveau codec ou autre algorithme (qui fonctionne bien!) est lancé sur le marché.

Par contre, dans la série inconvénient, un pack n'est pas forcément compatible avec un autre.
De même, certains packs ne désinstallent pas d'anciennes versions de codecs, pouvant entrer en conflit avec les nouvelles versions.
Pire, les différents codecs installés dans les packs (que j'ai rencontré) ne peuvent pas être désinstallés individuellement. S'il y a une erreur lors de la lecture d'un fichier vidéo, ça devient difficile de trouver quel codec engendre l'erreur.

 
 La norme MPEG

C'est une norme dédié à la vidéo, et peut donc contenir (au moins) un flux audio et vidéo.
La norme MPEG contient déjà 3 versions : 1, 2 et 4. Ne me demandez pas où est passée la norme MPEG-3 car je n'en ai jamais entendu parlé, si tant est qu'elle existe!
  • MPEG-1 : C'est la plus ancienne compression MPEG. Très peu utilisée désormais à part dans les VCD, mais elle est encore présente car beaucoup de fichiers ayant quelques années sont encodés avec. Windows intègre un filtre par défaut et il n'y a aucune manipulation ou installation particulière à effectuer.
     
  • MPEG-2 : C'est la compression utilisée par les DVD actuels de 9 Go (je ne parle pas des DVD haute définition tels Blu-Ray ou HD DVD).
    Disons-le tout de suite : le décodeur MPEG-2 n'est pas intégré dans Windows, et une version gratuite trouvée sur Internet risque de ne pas respecter totalement la norme.
    Par contre, il est aisé de trouver ce décodeur étant donné que la plupart des cartes graphiques ou graveurs sont livrées avec un bundle logiciel incluant un soft comme WinDVD ou PowerDVD. Vous disposez donc soit d'un décodeur de chez InterVideo, soit de chez CyberLink. C'est noyé dans le prix du matériel, mais vous le payez quand même...
     
  • MPEG-4 : C'est la fameuse et dernière norme MPEG dont DivX et autres sont issus. Autant dire qu'elle est la plus utilisée!
    Mais pour compliquer les choses, cette version 4 évolue et se divisent en plusieurs normes. Les dernières normes étant consacrées à la vidéo HD et donc adaptées aux DVD haute définition.