[PROCESS] Encodage video Broadcast

21Aug07

Biboobox est un site consacrée aux medias-station.

Faire une media station de la sorte abouti forcément à une interrogation sur les formats de compression video disponible. De plus, comme je bosse un peu dans le domaine, cela m’a aidé à clarifier les choses.

Globalement, les formats disponibles sur le “marché” sont tous basés sur des méthodes de découpage d’images en blocs (on parle de macroblocs), de transformation de Fourier (passage dans le domaine frequentiel) puis de recherche de redondance spatiale (ie dans la même image) ou temporelle (dans une image précédente ou suivante). Il existe naturellement des exceptions notables, notamment le codage par ondelettes, utilisé par exemple en JPEG2000. Même si des formats de compression basés sur les ondelettes sont à l’étude en ce moment, les standards à base de macroblocs ont encore de beaux jours devant eux.

Le MPEG2 :

C’est la plus “courante” des normes de compression actuelles, on la trouve dans les DVD, dans la TV satellite, etc. Elle a désormais une dizaine d’années et a prouvé sa robustesse et ses faiblesses, bien sûr. On trouve de très bon décodeurs/encodeurs softs sur le marché, soit en freeware, soit en shareware. Sous Linux, la libmpeg2 est vraiment la référence en terme de rapidité de décodage. Sous Windows, l’excellent TMPGENC est un très bon encodeur MPEG1/MPEG2 (payant pour le MPEG2).Le MPEG4 :

Que de dénominations sous ce terme ! Que de quiproquo et de malversations ! Je m’explique : MPEG4 N’EST PAS UNE NORME DE COMPRESSION VIDEO. Point barre. MPEG4 est la norme décrivant la gestion des contenus multimédia pour le Web et les appareils mobiles. Basiquement, MPEG4 est constitué d’un conglomérat assez affolent de VRML, Java, Javascript, QuickTime, HTML, …, …, et enfin d’audio et de video. Il s’avère cependant que les codecs Video conçus pour les bas débits offrent aussi des bonnes performances pour le “haut-débit” (genre TV satellite ou bitstream, domaine réservé jusqu’à présent au MPEG2) : par conséquent, des codecs videos appellés ‘MPEG4’ ont vu le jour, mais ce sont en fait des codecs qui se “contentent simplement” d’implémenter la partie video de MPEG4. Je mets quand même contentent simplement entre guillemets, car ce n’est pas rien : il y a un réel travail derrière un tel codec vidéo. Je me permet seulement de remarquer que le terme MPEG4 est usurpé et mal compris.

La norme MPEG4 actuelle inclus désormais 2 outils d’encodage video :

* MPEG4 part 2. C’est cette norme qui est implémentée dans les codecs DIVX 4/5, FFMPEG, XVID, … * MPEG4 part 10, aussi nommé H264, H26L, AVC ou JVT. C’est ce standard que l’on commence à voir apparaître dans le monde du broadcast (ie TPS, CanalSat, …) et des DVD HD (ie DVD Blue Ray et HD DVD sont tous deux basés en partie sur ce standard).

Le “cas” DIVX

DIVX a en fait gagné sa popularité à la fin des début 2000 dans sa version 3.11. Cette version est en fait le résultat d’un hack d’un codec MPEG4Video de Microsoft, auquel a été ajouté un détecteur de scène, un encoder MP3, … Ce codec est naturellement totalement illégal, mais Microsoft n’a pas engagé de poursuites à son encontre. Par conséquent, devant sa large diffusion et ses performances (?!), le codec s’est popularisé et un nombre gigantesques de films dans ce format ont été encodés.

Suite à ça, et comme le DIVX en tant que tel ne pouvait pas évoluer, les gens ont commencé à developper un codec open source, basé sur MPEG4 Video et nommé OpenDivx/ProjectMayo. Là dessus, les équipes ont splitté, certains ont rejoins/créé (??) DivX Networks, propriétaire du “nom” DIVX et les autres ont continué dans le domaine du libre pour donner finalement XVID. A noter que les premières versions de ces codecs, étant donné leur base “normative” MPEG4Video, ne pouvait pas lire les DIVX 3.11 ! C’est donc sous la pression des utilisateurs et devant la masse de vidéos en 3.11 que les auteurs de DIVX/XVID ont intégré des “verrues” pour gérer ces fameux bitstreams 3.11.

En fait, désormais, “DIVX” n’est ni plus ni moins qu’un “coup marketing” : la société DivX Networks commercialise un nom devenu populaire, mais le software DIVX4 et 5 en tant que tel n’est rien d’autre qu’une implémentation d’un codec MPEG4Video (incomplet de plus, cf la page comparative des codecs MPEG4Video ). Ce qui fait d’ailleurs que des vidéos encodés en DIVX5.02 sont parfaitement décodés par la librairie FFMPEG et son décodeur MPEG4Video intégré… Autre truc rigolo, un des mecs derrière DivX Networks est aussi un gars qui est à l’origine de mp3.com…

Honnêtement, tant qu’a encoder en MPEG4Video, autant utiliser XVID…

Les codecs “propriétaires”

Ce sont des codecs dont les droits (et souvent le code source) sont la propriété exclusive d’une société (au contraire des codecs de la gamme MPEG qui sont issus d’un consortium). Exemple : Windows Media, Real, Sorenson, etc, etc.

En fait ces codecs sont souvent basés sur les travaux des groupes MPEG (et notamment sur les codecs de référence) puis sont sauvagement rendus propriétaires par l’ajout de fonctionnalités diverses et variés : le but étant de dire que la mouture propriétaire est plus performante que MPEG2/4/… A titre d’exemple, le codec SVQ3 de Sorenson n’est ni plus ni moins qu’une implémentation d’une version beta de la nouvelle norme d’encodage H264 (issu du JVT groupe, aussi appelé H26L) : je soupçonne d’ailleurs Sorenson de vouloir refaire le “coup” du DIVX en sortant avant tous les autres un produit d’encodage “meilleur”.

Autre exemple : il est de notoriété publique que Windows Media intègre des pans entiers des codecs MPEG4Video de référence dont certains sont brevetés. Le truc rigolo, c’est que quand vous signez un accord pour l’accès aux sources de Windows Media, vous devez aussi certifier que vous ne poursuivrez pas Microsoft si par hasard vous découvriez du code vous appartenant… Véridique !

AVC/H264

Le codec qui fait parler de lui actuellement est le H264 (ou H26L ou JVT ou MPEG4 part 10 ou AVC) car c’est certainement le codec le plus performant en terme de compression (et en terme de complexité !!!). Ce format est en passe de remplacer le MPEG2 dans tous les domaines :

* Utilisé pour broadcaster les flux HD satellite (CanalSat, TPS, …) * Utilisé sur la future TNT payante * Déja intégré aux normes HD DVD et DVD Blue Ray * Format vidéo utilisé par les versions ultérieurs de DivX * Format vidéo utilisé par NeroDigital (ces gugusses essayent de refaire le coup du DivX avec un autre nom) * La communauté open-source est extrèmement active autour de ce standard, avec FFMPEG et X264 notamment. * A moins d’un retournement de situation surprenant, H264 sera le standard vidéo de référence pour les 5 prochaines années, cela semble imparable.

© http://www.lahiette.com/biboobox/?Encodage+video



No Responses Yet to “[PROCESS] Encodage video Broadcast”

  1. Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s


%d bloggers like this: