Découverte du MPEG-4 part 10 / AVC, ou H.264

Découverte du MPEG-4 part 10 / AVC, ou H.264

On en entend beaucoup parler avec les discussions sur la TNT (Télévision numérique terrestre) par exemple. Cet article présente le standard de compression vidéo MPEG-4-part 10 /AVC, ou H.264 (ISO/IEC 14496-10). L'intro est longue, mais l'article aussi, et il y a des images courage.

Article réalisé dans le cadre du 4ème concours de contribution de Planète Numérique.

Le MPEG-4 (ISO/IEC 14496). est, comme le MPEG-2 (ISO/IEC 13818)., un ensemble de standards :

  • Fascicule 1 pour le flux système (Transport Stream). Le TS permet le transport d’un ou plusieurs programmes (flux vidéo + audio) sur différents supports, et a permis en MPEG-2 l’essor de la TV numérique, par satellite, câble et maintenant xDSL.
  • Fascicule 2 pour codage de la vidéo
  • Fascicule 3 pour l’audio (norme AAC, avec ses sous-formats LC, LTP, HE et maintenant PSL),
  • etc jusqu’à 9 avec les sous-objets, couches layer d’incrustation,...

Concentrons-nous donc sur la vidéo.
Le MPEG-4 (sous-entendu part-2) définit les profils SP (Simple profile) et ASP (Advanced Simple Profile). Des cartes et rack encodeurs professionnels ont été développés, ainsi que des players (Quicktime, VLC, Media Player Classic, ffdshow, etc...) mais le marché n’a pas adopté ce standard en masse, car le gain en débit à qualité égale est de l’ordre d’environ 30 % par rapport au MPEG-2 (c’était plus au moment où il a commencé à être spécifié, mais les encodeurs MPEG-2 ont progressé entre-temps dans un rapport 2), et nécessiterait pour un opérateur par exemple de renouveler le parc de décodeurs !

Donc c’est réservé aux professionnels, pour du point-à-point satellite par exemple (contribution ) ou au corporate, streaming sur intranet ou web, etc... En dehors d’un ensemble de dérivés très connu, comme DivX, Xvid, Nerodigital, etc...

Nerogital ? Tout le monde ne connaît pas ; ce format est un outsider par rapport à DivX, mais a des atouts à faire valoir. D’abord, il est « MPEG-4 compliant » (il respecte la norme), quand les autres sont des dérivés modifiés (c’est le cas également de WM9 et Real). Il permet aussi de transformer un DVD (MPEG-2) ou fichier vidéo personnel de 4 à 9 Go en un CD de 700 Mo mais surtout en conservant le chapîtrage, l’audio multi-canaux / multi-langues et les sous-titres ! J’en touche un mot rapide car il est maintenant installé sur 50 millions de PC dans le monde. Il a été co-développé par Ahead Software (éditeur de Nero) et Ateme (société française, cocorico).

Il suffit d’utiliser Nero Recode, pour réencoder, puis graver son CD, qu’on peut mettre dans un lecteur DVD qui a le logo Nerodigital (un logo de plus, après les MP3, JPEG, DivX, DTS, etc...). Les premiers lecteurs sont attendus pour Noël (kiss et siemssen et Xoro).

D’un côté l’industrie de la TV : maintenant on parle de HD (Haute définition), alors que les années précédentes, la volonté était de passer plus de canaux (cf nombre de chaînes actuel !), De l’autre côté les télécoms, et les fabricants de solutions de vidéo conférence qui sont toujours à la recherche d’améliorations de qualité visuelle et baisse des débits. Donc chacun des deux travaillent dans deux groupes de normalisation, jusqu’au jour où ils se parlent de nouveau, et là JVT, et part-10 / AVC H.264 !
Je vais détailler, mais d’abord finissons les généralités. L’encodage en H.264 par logiciel nécessite environ 4 fois plus de puissance de calcul que la compression MPEG-4 part 2 ou que le MPEG-2 (et non 60 fois plus, comme aime à le dire Microsoft pour mettre son WM9 en avant. 60 fois plus, c’est le logiciel de référence du standard, ...).
Ainsi pour l’encodage temps réel pleine résolution, aucun processeur actuel n’est assez puissant, et des architectures soit multi-processeurs, soit matérielles, avec FPGA ou ASIC, sont nécessaires.

Ceci dit on reste loin des chiffres annoncés par Microsoft, qui propose WM9V en alternative, et qui indique que l’encodage H.264 prend 60 fois plus de temps que l’encodage WM9. Bien sûr ils parlent du logiciel de référence, fourni dans le standard, qui n’est pas prévu pour une utilisation opérationnelle, mais est destinée aux constructeurs d’encodeurs pour qu’il valident leurs solutions en comparant les fichiers générés au bit près. Des solutions temps réel performantes sont aujourd’hui disponibles pour H.264 comme pour WM9.

La qualité obtenue en H.264 est meilleure que celle de tous les autres codecs, à débit égal. Voir un article intéressant de comparaison ici et les liens (utiliser Nero Showtime comme player...).
Plus d’info sur MPEG-4 ici aussi.

 Pourquoi compresser ?

Parce qu’on transmet en numérique !
Une chaîne complète commence par la numérisation (directement dans votre camescope aujourd’hui), puis conversion dans l’espace de couleur YUV. Pour du PAL/SECAM, on a 720x576 pixels à 25Hz (720 x 480 à 30 Hz en NTSC) soit 30Mo/s ou lorsque numérisé sur 8 bits un flux de 237 Mbps. L’interface série SDI (Serial Data Interface) a été défini pour transmettre 270Mbps (avec des canaux audio inclus) et est utilisé partout dans le domaine Broadcast et la vidéo professionnelle, avec un simple câble coaxial 75 ohms.

La transmission recouvre un ensemble d’applications différentes, notamment la télévision professionnelle Broadcast (Satellite, Cable, xDSL, intranet), le stockage numérique (DVD, archivage en fichiers, etc.), la vidéo conférence, la vidéo à la demande (VOD=Video On Demand), la vidéo pour les mobiles, PDA et téléphones mobiles (3GPP ou DVB-H). Ces transmissions reposent sur des réseaux de bande passante différente, comme :

  • réseaux large bande 10 Mbps
  • satellite / internet 1-2 Mbps
  • PDA/ tel Mobile 3G 160-320 kbps
    Ce qui impose un taux de compression entre 20 et 1500 !

Ainsi le compromis entre la qualité vidéo et le débit est le pilier de ces différents marchés.

Pour réduire la quantité d’information, la première étape est la réduction de la résolution. On parle ainsi du CIF pour du 360x240 et du QCIF pour du 160x120. Ces résolutions plus faibles peuvent être utilisées sur des écrans de petites taille, ou zoomées en restitution sur des écrans plus grands.

Ainsi sur une TV, le CIF correspond à la qualité de bandes VHS (neuves). La vidéo professionnelle utilise essentiellement le Full D1, ou la pleine résolution 720x576 (25Hz en PAL, ou 720x480 à30Hz en NTSC). Si c’est vraiment nécessaire, on prévoit également un sous-échantillonnage temporel, en réduisant la fréquence image, en passant de 25 à 15 images / seconde par exemple.

Ensuite il y a si besoin une conversion dans l’espace de couleur Y (luminance) + UV (chrominance). Comme l’œil humain est moins sensible à la couleur qu’à l’intensité lumineuse (question de proportion de bâtonnets et cônes dans la rétine...), on sous-échantillonne la couleur, en prenant le quart des informations. C’est le passage en 4 :2 :0 (je ne rentre pas dans le détail, le DVCPro utilise de son côté du 4 :1 :1). Le Full D1 passe ainsi de 235 à 120 Mbps.

Avant tout cela, il est en général très important de réaliser un pré-traitement « Pre-processing », que ce soit du désentrelacement, de la réduction de bruit, la correction temporelle des signaux d’entrée (TBC Time Base Correction, notamment de signaux venant de magnétoscopes analogiques). Autant enlever au maximum les informations nuisibles avant de compresser ! le débit disponible est toujours insuffisant, alors autant le réserver à ce qui est important dans l’image ...

La gestion de l’entrelacement est particulière. Si la restitution est faite sur écran de TV, on a intérêt à conserver une chaîne entrelacée. Le standard et de nombreux encodeurs permettent d’encoder par trame. Par contre si la restitution est faite sur un écran de PC, celui-ci est progressif, donc on a intérêt à désentrelacer avant compression et transmission. Vivement la TV HD progressive (720p ou 1080p) qui donnera le meilleur dans les deux cas J