La compression vidéo

Après les nombreux articles sur la “philosophie de l’ingénieur informaticien”, j’ai décidé de mettre à mon tour les mains dans le cambouis et de vous parler technique. Enfin, c’est un bien grand mot, je vais vous parler de ce qui occupe mes journées : le codage vidéo.
Quand je dit ce que je fais dans mon entourage, on me répond “ah oui avec adobe premiere? j’en fais moi aussi!”,..hum, non pas vraiment! Le codage vidéo, ou compression vidéo, concerne toutes les techniques mises en oeuvre pour réduire la taille d’une vidéo tout en conservant sa qualité.
La deuxième chose qu’on me dit souvent est “oui mais bon avec les débits que l’on a maintenant, plus besoin de compresser!”,..hum, non encore! La qualité demandée/proposée augmente de plus en plus, l’arrivée de la vidéo 3D chez la ménagère, la croissance du nombre de flux vidéo sur le net et les téléphones portables et bien d’autres choses font que la demande en performance de compression vidéo augmente encore plus.
La troisième chose que j’entends -moins souvent quand même- “ok, mais tout a déjà été fait, on ne peut pas aller plus loin qu’H.264?…pas vrai?”…hum, c’est ce qu’on verra! Alors, pour les néophytes, H.264 est le standard de codage vidéo actuel, il date de 2003 et est utilisé par le blu-ray/HDDVD notamment. Ce standard a permis il y a 6 ans d’avoir un gain de compression de 50% par rapport au précédent standard ( MPEG 4, celui qui est utilisé pour la TNT). Un tel gain signifie une réduction de la taille des vidéos de 50% pour une même qualité. Et donc, pour en revenir à nos moutons, les travaux pour proposer un nouveau standard sont en cours…. et bien lancés!
Reprenons ces points un peu plus en détail :

Comment ça marche?
La compression vidéo est différente de la compression zip par exemple qui ne tient pas compte des caractéristiques du média à traiter. En codage vidéo, on va utiliser les redondances spatiales et temporelles pour réduire au maximum la taille de la séquence. En français : un pixel au sein d’une image est très proche de ses voisins et de même, deux images successives ont beaucoup de ressemblances. La base du codage vidéo actuel est donc une prédiction utilisant les pixels déjà codés associée à un codage dit entropique suite à une transformé (DCT principalement) des résiduels. J’arrête ici pour cet article mais pour plus d’infos, reportez vous à cette page.

Plus de pixels!
Depuis le temps qu’on nous en parle de la télé 3D, ça va bien finir par arriver! J’ai pu assister à plusieurs démos de 3D stéréoscopique ou avec des lunettes et même si ce n’est pas parfait, on s’approche de la commercialisation grand public (l’un des principal défaut pour l’instant étant le manque de contenu). Cela fait donc une augmentation du nombre de pixels mais c’est surtout les besoins de la télé HD (le full HD est en 1980×1080 pixels) et des applis web/mobile qui dynamise le milieu!

H.265
Le projet H.265 (on l’appellera comme cela mais il devrait plus vraisemblablement s’appeler HVC ou NGC..) est donc officiellement lancé depuis cet été. Le groupe MPEG a fait son “call for evidence” en juillet 2009 montrant que des travaux recents améliorent deja de 30% H.264, le “call for proposal” va avoir lieu en avril 2010 et permettra de décider du codeur de base pour les travaux qui auront lieu pendant les 1 ou 2 ans suivants. Les contributeurs du monde entier pourront alors proposés leurs améliorations et grapiller de la propriété intellectuel très lucrative.
A la fin de ces travaux, on aura un nouveau standard qui apportera à son tour 50% de gains par rapport à H.264, avec une augmentation de la complexité par un facteur 2 ou 3 autorisée. En pratique, retenons qu’un film d’1h30, c’est :
- 25 Go non compressé.
- 650 Mo en MPEG4.
- 350 Mo en H.264.
- 175 Mo avec ce futur codec soit 4 films sur un CD de 700 Mo!

Du travail!
Pour finir, ce que je voulais aussi essayer de vous transmettre via ce post, c’est qu’il va y avoir de l’embauche dans le domaine de la compression vidéo dans les prochaines années. Ce domaine touche au moins 4 de nos filières même si il n’y est traité qu’en F5 il me semble. Tentez-y votre chance!

Deux bon liens : vcodex, H.265.

Tags: , ,

Ce billet a été posté par MarKo le 22 December 2009 à 0:01 et est classé dans PC-ride. Vous pouvez suivre chaque réponse à ce billet grace à RSS 2.0. Vous pouvez aussi laisser une réponse, ou un trackback depuis votre propre site.

2 Responses to “La compression vidéo”

  1. Thibault Marzais Says:

    Très intéressant cet article. Ce que j’aimerais savoir, c’est l’impact du processeur sur la compression et la décompression.

    En gros, la compression MPEG4 prend 5 à 8h sur une machine “normale”, avec un logiciel comme SUPER. Qu’en est-il pour le H.264/H.265 ?

    La lecture doit mettre à genoux la machine non ? Déjà qu’il faut une partie graphique dédiée dans un netbook pour lire correctement un blu-ray.

    Enfin, juste une petite remarque, les applis mobile que tu cites ne traitent sûrement pas des vidéos en 1080p :) le pauvre processeur ARM…

  2. Jean-Marc Thiesse Says:

    pour le 1080p sur mobile : http://www.hdnumerique.com/actualite/articles/6215-l-iphone-3gs-capable-de-lire-des-videos-full-hd-1080p.html ;)
    mais ce n’est pas classique en effet!

    sinon, comme dit dans l’article, H.265 aura dans son profil High une complexité multiplié par 2 ou 3 comparé à H.264. Ce qu’il faut savoir c’est que apres les travaux fournissant un codeur de ref, il y a beaucoup (beaucoup beaucoup même!) de monde qui travaille pour diminuer la complexité et rester dans des délais abordables.
    Tant que la complexité reste au niveau du codeur, la machine n’a pas de problème à la lecture mais pour l’avenir il y a de nombreux travaux qui cherche à transférer la complexité au décodeur (c’est le sujet de ma thèse ;) ) et là les constructeurs de cartes ont très peur!

Laisser un commentaire