Formats vidéos & codec

17 août 2024
Allégorie. Kebra se faisant attaquer par les codecs.
J'espère que ça fera plaisir à Jano. Kot-kot-codec = les duls.

Quelle plaie tous ces formats vidéos, on ne sait jamais quoi choisir ! Et on n'y comprend rien, c'est confus, on parle du fichier ? Du programme qui décode ou comprime ?

Et pour ne pas arranger les choses, les gens qui expliquent sont eux-mêmes confus parce qu'ils ont voulus faire trop court, quand ils ne sont pas eux-mêmes totalement paumés... Ce n'est pas évident d'expliquer, j'espère que je vais faire mieux que ce que j'ai trouvé, car l'intérêt de cette page est dans la séquence d'explications, vous ne trouverez rien de révolutionnaire ici.

Et puis c'est surtout utile pour moi, c'est souvent le cas des gens qui enseignent, ce sont eux qui profitent le plus.


S'il existe autant de formats différents, c'est essentiellement parce que l'on a découvert de plus en plus de façons plus ou moins subtiles de comprimer l'information, et en particulier les images qui est un problème spécifique.

La compression est l'art de trouver des corrélations entre des blocs d'information, et d'en tirer parti :

  • Ecrire "ornithorynque ornithorynque ornithorynque..." 100 fois est moins malin que d'écrire "100 * ornithorynque" dans le fichier.
  • Ecrire la définition de π, le rapport de la circonférence au diamètre d'un cercle, sera plus court qu'écrire la suite infinie de décimales de π

J'ai réussi à placer ornithorynque dans une de mes pages web, comme d'ailleurs un de mes brevets 😋 et il est content.


Nous allons donc survoler ce qui se passe pour une image, puis pour une vidéo qui n'est qu'une suite d'images.

Formats d'image

Il existe une tirée de formats d'image (fixe) tirant parti des corrélations existantes entre les pixels.

On a d'abord commencé par des algorithmes sans rapport avec les images, du genre zip qui ne cherche qu'à trouver des répétitions dans un fichier en formant un dictionnaire et en indiquant par un numéro le mot plutôt que d'écrire ce mot.

Mais bon, une image plate et fixe, c'est une collection de pixels sur deux axes, X et Y. Et on a vite remarqué que l'on avait souvent presque les mêmes pixels les uns à côté des autres, d'où l'idée de stocker la différence entre deux pixels plutôt que la valeur de chaque pixel.

Le format bitmap BMP, le PNG permet d'exploiter les répétitions de pixels, mais ce n'est généralement pas très performant sur une image quelconque. Ce sont cependant des algorithmes dit "sans perte" car aucune donnée n'est perdue, on retrouve complètement les pixels originaux.

Des taux de compression meilleurs peuvent être obtenus au prix d'une perte de qualité d'image, par exemple en réduisant le nombre de couleurs possibles, ce sont les algorithmes avec perte.

Le fameux format JPEG cherche les corrélations entre les pixels d'un bloc 8x8 sans chercher plus loin, chaque bloc est indépendant (dans une certaine mesure, des astuces ont été utilisées). La ruse à consister à utiliser ce qu'on appelle une transformée cosinus discrète DCT.

D'autres schémas de compression plus performants existent, parfois adaptés au type d'image (si vous savez à l'avance que votre image est un dessin en noir et blanc, inutile de s'énerver avec les couleurs), ce qui a conduit à une tirée de formats.

Une remarque idiote, mais importante : si l'image à compresser est constituée de bruit aléatoire, alors TOUS les formats de compression d'image ne pourront rien faire. Il n'existe aucune corrélation, alors il n'existe aucun moyen de compresser.

Ce sera pareil pour les formats vidéos, donc si vous voulez faire suer un compresseur, donnez-lui une séquence aléatoire...

😧 Alors, quel format utiliser ?
😌 Ben ça dépend.
😠 Merci pour la réponse, ça m'aide beaucoup.
Bon, pour les cas courants et ne pas se poser de questions, utilise le JPEG, extrêmement répandu.
😒 Certes.
🤓 Les professionnels utiliseront un format adapté à leur usage, par exemple si c'est pour faire des images vectorielles, et bien il existe des formats spécifiques.
😯 Mais quand je tombe sur une image avec un format bizarre ? Comment la visualiser ?
😉 Perso, sur PC, j'utilise Irfanview, qui sait lire à peu près n'importe quoi comme image. Il est gratuit. Et tu peux sauvegarder dans le format que tu veux.
Et pour ton site web ?
Dès que tu veux utiliser la transparence, et/ou des animations simples de quelques images, alors il faut utiliser autre chose.

Besoin de transparence

Ainsi, vous avez besoin de transparence dans certaines zones de l'image, c'est-à-dire des pixels qui "laisseront passer plus ou moins la lumière" parce que vous allez empiler plusieurs images.

  • Le format PNG permet la transparence, mais ne vaut rien en compression, ça va bien pour des schémas avec peu de couleurs, mais pas pour des images arbitraires.
  • Dans le temps on utilisait le format GIF, qui permet en plus des séquences d'images (donc de l'animation). Mais ce format n'est pas efficace en compression, vaut mieux l'oublier.

Format WebP

Une alternative à tout ça est le format WebP. Il comprime bien, permet la transparence et les images animées, c'est ce qu'il faut utiliser pour réaliser votre site web.

L'algorithme de compression provient du format WebM proposé (gratuitement dans sa grande bonté) par Google. Il est effectivement plus performant que le JPEG, de 30 à 80%, vous n'avez qu'à essayer sur vos fichiers. Et si vous voulez, il existe une option "compression sans perte" d'un intérêt relatif.

Et on peut faire des séquences d'images avec transparence dans ce format (comme pour les gif animés) !

Taille d'image

Le cinéma et la télévision ne s'aiment pas depuis toujours. Mais bon, la TV a fait un effort en passant du 4/3 au 16/9.

Vidéo

On voit bien que la génération suivante, eh bien c'est 4 écrans assemblés.
Le "4k" est 4 fois plus grand que le "full HD", et le "8k" est ... 16 fois plus grand.

Vous serez vite confronté à la taille de l'image et/ou sa résolution, qui aura une incidence directe sur la taille du fichier vidéo. Voici un résumé des diverses tailles souvent rencontrées :

Nom Taille ratio H/V Pixels * 24 bits
CGA 320 x 200 3/2 =1.5 64 000 0.192 Mo
EGA 640 x 350 1.8 224 000 0.672 Mo
VGA 640 x 480 4/3 =1.33 307 200 0.921 Mo
SD 720 x 576 16/9 ou 4/3 414 720 1.24 Mo
S-VGA 800 x 600 4/3 =1.33 480 000 1.44 Mo
XGA 1024 x 768 4/3 =1.33 786 432 2.36 Mo
WXGA 1366 x 768 16/9 =1.77 1 049 088 3.14 Mo
XGA+ 1152 x 864 3/2 =1.5 995 328 2.98 Mo
WXGA+ 1440 x 900 16/10 =1.6 1 296 000 3.89 Mo
S-XGA 1280 x 1024 5/4 =1.25 1 310 720 3.93 Mo
HD 1280 x 720 16/9 =1.77 921 600 2.76 Mo
WS-XGA 1600 x 1024 25/16 =1.56 1 638 400 4.91 Mo
S-XGA+ 1400 x 1050 5/4 =1.25 1 470 000 4.41 Mo
WS-XGA+ 1680 x 1050 16/10 =1.6 1 764 000 5.29 Mo
U-XGA 1600 x 1200 4/3 =1.33 1 920 000 5.76 Mo
Full-HD 1920 x 1080 16/9 =1.77 2 073 600 6.22 Mo
WU-XGA 1920 x 1200 16/10 =1.6 2 304 000 6.91 Mo
Quad-HD 2560 x 1440 16/9 =1.77 3 686 400 11.1 Mo
Quad-XGA 2048 x 1536 4/3 =1.33 3 145 728 9.43 Mo
WQ-XGA 2560 x 1600 16/10 =1.6 4 096 000 12.3 Mo
4K UHD 3840 x 2160 16/9 =1.77 8 294 400 24.8 Mo
8K UHD 7680 x 4320 16/9 =1.77 33 177 600 100 Mo
16K UHD 15360 x 864016/9 =1.77 132 710 400400 Mo
En vert, le format 16/9 devenu le standard
En bleu, l'ancien format 4/3 de nos téléviseurs cathodiques
En rose, le 16/10, parfois utilisé pour les écrans de PC
  • Le format SD avait deux types de pixels rectangulaires, suivant que c'était du 4/3 ou du 16/9. Infâme ruse !
  • Évidemment que les films en cinémascope auront des tailles non prévues, le résultat sera ces fameuses barres noires en haut et en bas lors de la diffusion.
barres noires format 16/9 4/3

Cinéma

Nom Année Ratio Notes
Panavision 1,85
Academy Flat
1.85:1 LE standard pour les films tournés en 35 mm
Panavision 2.35:1 presque 21/9. Le plus courant au cinéma
Cinémascope 1953 2.39:1 Abandonné en 1965
standard européen 1.66:1 N'est plus employé
Academy 1910 1.33:1
4/3
Standard jusqu'en 1927
C'était le format des TV cathodiques.
Super Panavision 70 1960 2.20:1 Abandonné. My Fair Lady, Exodus
MGM Camera 65
Ultra Panavision 70
1959 2.76:1 une dizaine de films dont Ben-Hur
Cinérama 1952 3:1 3 caméras, abandonné. Le plus large !
La conquête de l'Ouest
Oui, je sais, je n'ai pas mis le iMAX.

Évidemment, ces formats rentrent mal dans le 16/9 soit 1.78:1 de nos téléviseurs actuels. Mais bon, en 35 mm, la perte ne se voit pas vraiment.

Faut compresser !

On remarquera qu'en "full HD", une image fait 6.22 mégaoctets, soit près de 150 mégaoctets pour une seconde de film ou encore 1.2 gigabit/s, un débit impossible à soutenir en pratique sur Internet. Et côté stockage, on parle alors d'un téraoctet (1000 giga) pour un film de 2 heures non compressé ! On comprend vite l'intérêt de compresser les données...

Le son

Juste pour évacuer la question concernant le son dans les vidéos.

Concernant le son, ça fait longtemps qu'on ne se pose plus trop de question car le MP3, autrement dit le MPEG-1 audio layer III, s'est imposé depuis longtemps pour les utilisations courantes .

Vous aurez néanmoins à choisir le débit, et là, c'est votre oreille qui fera la différence si vous en êtes capable. Il s'agit de compression avec perte, pertes généralement inaudibles pour le commun des mortels à partir de 160kbit/s (pour les 2 canaux de la stéréo), et votre oreille n'entendra rien au-dessus de 20 kHz (alors 44 kHz est overkill).

Ceci dit, il existe d'autres formats de compression audio, en particulier pour les films où il peut exister plus de 2 canaux audio et pour les professionnels, nettement plus exigeants.

La vidéo

Une vidéo est une séquence d'images, et donc on pourrait penser qu'il suffit de se ramener au cas précédent des images fixes, le problème est résolu, circulez, ya rien à voir !


Sauf que


Sauf qu'il existe pratiquement toujours des corrélations très fortes entre deux images consécutives :

  • Un plan fixe... est fixe. Les images sont identiques (ou quasiment à peu de choses près), il est donc extrêmement intéressant d'avoir un format qui permet de donner uniquement la différence entre deux images consécutives, qui peut être carrément nulle, ce qui permet d'avoir un taux de compression très élevé rien que par ce principe.
  • Un panoramique, où la caméra se déplace relativement doucement, présentera de la nouveauté sur un bord d'image, le reste étant identique, mais décalé. Un format capable de reconnaitre cette situation pourra tirer parti de cette situation, tout en stockant uniquement les différences sur les parties déjà connues de l'image.
  • Les rotations de caméra sont rares, car pénibles pour le spectateur. Mais bon, on peut aussi les traiter comme les panoramiques, encore faut-il les reconnaitre.
  • Un zoom est un peu plus compliqué à traiter, mais les corrélations sont présentes, ne serait-ce que les couleurs utilisées.

Et on peut imaginer des choses plus complexes, comme reconnaitre un acteur ou un monument, avoir stocké son apparence auparavant, puis ne garder qu'un squelette d'information sur sa position dans l'image pour le reproduire plus tard...

Un algorithme de compression aura la lourde tâche de reconnaitre ces situations afin de les traiter pour utiliser la meilleure technique, éventuellement différentes pour chaque zone d'image. Du coup, cet algorithme peut être assez long à exécuter lors de la compression, ce qui n'est pas un gros problème, par contre on voudra avoir une technique de décompression rapide "à la volée" pour ne pas avoir de ralentissement lors du décodage du film...

Le pire pour la compression d'un film sera d'avoir une suite d'images toutes différentes, par exemple 24 images tirées au hasard en une seconde (ce qui est franchement pénible à regarder, vous aurez un avertissement pour les épileptiques...). Dans ce cas, le compresseur va vraiment tirer la langue.

Le pire du pire sera une suite d'images contenant du bruit aléatoire. Dans ce cas, rien à faire... sauf à reconnaitre la situation et ne rien stocker du tout, les images originales sont perdues et remplacées par d'autres images aléatoires, tout le monde n'y verra que du feu (enfin, façon de parler).

Et je ne vous ai pas enquiquiné avec la 3D, qui n'est jamais que deux pistes d'images, dont on se doute qu'une corrélation extrêmement importante existe, forcément, sinon vous allez avoir mal à la tête...

Revenir sur les rails

On ne peut pas en permanence se reposer sur les différences entre deux images consécutives. Au bout d'un moment, le bruit s'accumule et l'image devient mauvaise.

Aussi utilise-t-on des images clés, des images "bien choisies" (quand ça marche bien) où on reprend tout à zéro. L'image-clé est compressée sans tenir compte de ce qui s'est passé dans les images précédentes, puis on comprime les images suivantes en prenant la précédente comme référence.

Ça se voit de temps en temps dans certains films pas trop bien compressés (ou trop) : subitement, l'image redevient "belle".

CODEC

Voici venir les fameux codecs ! Il s'agit des codeurs/décodeurs, ces programmes informatiques qui compressent et décompressent les vidéos.

Si vous regardez un film, alors forcément vous utilisez la partie décodage qui s'exécute à la volée. Il faudra avoir un processeur suffisamment puissant pour décoder les images, autrement dit "calculer l'image à plat", afin de pouvoir l'afficher. Si vous manquez de puissance, alors des images seront "sautées", et vous aurez des saccades désagréables à l'écran (c'est particulièrement sensible lors des panoramiques un peu rapides).

Si vous voulez compresser un film, la vitesse est moins critique, vous pouvez prendre votre temps puisque vous ne regardez pas en même temps, on peut donc consacrer de la puissance de calcul afin d'optimiser au mieux la compression. C'est juste un peu long, votre PC va pédaler un moment avant de rendre le résultat (c'est ce qui arrive quand vous faites du montage vidéo, au moment de générer le fichier final).

Un autre problème est le débit, c'est-à-dire la quantité d'information à passer dans le tuyau (=votre connexion internet) tout en assurant une qualité d'image acceptable, ainsi qu'un nombre d'images par seconde correct, par exemple 25 images/s qui est confortable. Le compresseur aura intérêt à envoyer des images à l'avance tant qu'il le peut, afin de compenser des ralentissements liés à une compression plus faible de certaines images qui réclameront plus de données, ou simplement parce que tuyau se bouche de temps en temps (comprenez : vous perdez des barres de réception).


Mais quel CODEC utiliser ?

Conteneur

Avant d'examiner les différents codecs usuels, il faut parler du conteneur, l'emballage, c'est-à-dire du fichier qui va contenir les images compressées, ainsi que le son pour un film, et éventuellement des métadonnées pour indiquer l'année de création du film, la date de compression, etc...

L'ennui, c'est que l'on peut facilement confondre le conteneur et le codec, car certains formats imposent conteneur ET codec. Et comme les gens utilisent à peu près les mêmes mots pour le conteneur et le codec, et bien c'est la foire pour comprendre.

Je vais commencer par dépatouiller la situation concernant les algorithmes de codage et les codecs. Ce sera plus simple ensuite pour parler des conteneurs...

Algorithmes de compression

On trouve des bons samaritains sur le web qui se sont fendus de schémas explicatifs concernant l'évolution des compresseurs vidéo, aussi je ne vais pas recommencer, mais donner les principales informations utiles. Et heureusement, les algorithmes effectivement en usage ne sont pas si nombreux. Par contre, ça prend toujours du temps avant qu'un codec ne s'impose.

Notez que les standards arrivent "par famille" car ils sont établis par plusieurs groupes de travail différents. Ces standards sont proposés, mais jamais imposés ─aucune loi ne les imposent. Mais les supports de diffusion tels que les CD/DVD/BluRay sont de gros vecteurs d'introduction.


Voici la liste des codecs vraiment utiles :

codec année extension Notes
H.261 1988 - Playstation. Le premier vraiment utile et efficace.
MPEG-1 1992 .mpg .mpeg .mp1 ... inspiré du H.261
H.262
MPEG-2
1996 .mp2 ... TNT et DVD. Est aussi un format de conteneur
H.263 1986 .3gp .mp4 ... Evolution de H.262, spécifique bas débit
MPEG-4 1999 .mp4 ... Plus un format de conteneur qu'un schéma de compression
H.264
AVC
2003 .mp4 .mkv .avi .mov Advanced Video Coding = "MPEG-4 part 10".
BluRay.
WMV 9
VC-1
2006 .wmv .mkv .avi Windows Media Video. Un des 3 formats BluRay
H.265
HEVC
2013 .mp4 .mkv .avi .mov High Efficiency Video Coding. MPEG-H Part 2.
HDLight. BluRay 4K. Pb de licence.
H.266
VVC
2020 .mkv ... Versatile Video Coding. MPEG-I Part 3.
Pb de licence.
VP8 2008 .WebM .mkv Google, ouvert et licence libre.
C'est le WebM, aussi utilisé pour le WebP.
VP9 2013 .WebM .mkv Remplace VP8. Bien adapté pour le web.
AV1 2018 .av1 Successeur de VP9, pour contrer les pbs de licence de H.26x. Encodage couteux.
MPEG-5
EVC
2020 .mp4 .mkv .avi .mov Essential Video Coding.
LCEVC Low Complexity Enhancement Video Coding.
JPEG 20002009 DCP Diffusion des films au cinéma, les images sont compressées une par une.
En vert : recommandés en 2024.
Remarquez les dates d'introduction, et ce que vous utilisez aujourd'hui...

H.261

H.261 fut le premier standard de compression vraiment utilisable et efficace en 1988, et en pratique, tous les algorithmes suivants s'en sont inspirés.

Pour la petite histoire, c'est l'algorithme de compression utilisé dans la Playstation (de l'époque).

MPEG-1

La norme MPEG-1 indiquait comment ça devait marcher, mais n'imposait pas comment l'encodage devait être fait, la norme ne donnait qu'un exemple. Du coup c'est vite devenu la zone car différentes implémentations ont existé, les encodeurs s'améliorant avec le temps, évidemment avec des histoires de brevets.

Pour la petite histoire, le MPEG-1 layer III est l'origine du MP3.

H.262 MPEG-2

Les deux termes H.262 et MPEG-2 désignent la même chose, cette compression est efficace et s'est imposée de par son utilisation en TNT et sur les DVD.

Ce standard est plus compliqué qu'il n'y parait car il définit également le transport et le conteneur, aussi quand on parle d'MPEG-2, il peut s'agir de la structure du fichier, et/ou du schéma de compression, ce qui n'aide pas vraiment à retrouver ses petits.

Le MPEG-2 est maintenant remplacé par les schémas de compression suivants, mais on ne l'oubliera pas pour des histoires de compatibilité.

H.263

Le H.263 est une évolution du schéma de compression précédent, spécifiquement adapté pour les lignes bas-débit.

MPEG-4

Le MPEG-4 est une sorte de compilation du MPEG-1 et MPEG-2 avec des ajouts. C'est plutôt le format du conteneur bien que cela ne soit pas si clair.

Un élément rend les choses compliquées à comprendre, car le MPEG-4 Part 2 est compatible avec le H.263 car un décodeur vidéo MPEG-4 décodera le H.263...

Et en plus ce format est utilisé par une tirée d'autres codecs que je ne développerai pas ici, DivX, Xvid, Nero Digital, RealMedia, 3ivx, QuickTime.

Ça devient encore plus sportif avec les évolutions suivantes, car on parle souvent de MPEG-4 AVC, voir plus loin. Un carnage pour la compréhension. D'ailleurs les auteurs du standard ont écrit un bouquin de plus de 800 pages sur le MPEG-4... Maintenant vous êtes prévenus, vous vous méfierez.

H.264
AVC Advanced Video Coding

L'AVC (pour Advanced Video Coding) est aussi le H.264 et le MPEG-4 Part 10 (ou MPEG-4 AVC), ce qui finit de rendre les choses confusantes.

Ce format s'est imposé (plus de 90% en 2019) car il est deux fois plus efficace que le précédent, puis est maintenant progressivement remplacé par son successeur.

H.264 est utilisé par les BluRay, et la télévision numérique TNT (a remplacé le MPEG-2).

AVCHD est le nom du format professionnel de Sony/Panasonic.

H.265
HEVC High Efficiency Video Coding

Le digne successeur de H.264 est le H.265, aussi appelé HEVC pour High Efficiency Video Coding, et également MPEG-H Part 2.

H.265 est de 25 à 50% meilleur en compression que H.264, aussi il est en train de s'imposer, mais bon, on voit qu'il faut une dizaine d'années entre la parution du standard et son usage, freiné par les possibles redevances à payer sur les brevets, et les navigateurs ont rechigné à le prendre en charge, mais bon, ça finit par rentrer.

Vous le connaissez probablement déjà sous le nom de "HDLight" quand vous recherchez des films sur le web.

H.266
VVC Versatile Video Coding

Le successeur de H.265 est, sans surprise, H.266 ou encore VVC pour Versatile Video Coding ou MPEG-I Part 3.

H.266 serait 50% meilleur que H.265, soit une meilleure compression pour la même qualité d'image.

Les problèmes de brevet semblent toujours au rendez-vous, la situation n'est pas claire (en 2024).

VP8 VP9 VP10

Durant l'évolution des standards de compression H.26x, Google n'est pas resté les bras ballants, et a développé ses propres algorithmes de compression, en rachetant On2 Technologies qui avait développé le VP8.

Le VP8 est derrière les fichiers .webm, qui est basé sur le Matroska .mkv. WebM est un format commode et pratique pour les sites web, ainsi que pour les "simples" images .webp, le WebP étant plus efficace que le JPEG de base.

Pour la petite histoire, vous tomberez peut-être sur des fichiers .ogg ou .ogv qui utilisent le codec Theora, issu du VP3. En 2004.

VP9 est le successeur de VP8, et on le retrouve dans le WebM et le WebP, et de nombreux navigateurs le supporte, d'où l'intérêt pour réaliser des sites web.

VP9 serait du même tonneau que H.265 en matière de performances.

VP10 aurait dû être le successeur, mais il est finalement devenu AV1.

AV1

Pour contrer les histoires de licence de la série H265 et suivants, l'alliance AOMedia (Alliance for Open Media) s'est formée pour proposer la compression AOMedia Video 1 dite AV1.

l'AV1 serait 30% meilleur que H.265, mais son encodage est beaucoup plus couteux ce qui freine son adoption.

MPEG-5
EVC Essential Video Coding

En 2020, ce nouveau format possède deux jeux d'outils, l'un est totalement gratuit, et l'autre (plus intéressant) possède des options payantes. On sent bien la stratégie pour tenter de s'imposer sur le marché...

Et il existe aussi un autre schéma de compression, le LCEVC Low Complexity Enhancement Video Coding.

WMV Windows Media Video

Microsoft a sévi dans le domaine des codecs avec WMV, les données étant stockées dans un conteneur .wmv (une nouvelle fois, confusion entre le conteneur et le codec).

La première version fut WMV 7 en 1999.

WMV 9 a été approuvé par la SMPTE en 2006 sous le nom SMPTE 421M, éventuellement plus connu sous le nom VC-1. Cet algorithme est devenu un des 3 formats du BluRay.

L'état des licences n'est pas clair, surtout qu'il semblerait que Microsoft ait marché sur les plates-bandes des concurrents.

DCP Digital Cinema Package & JPEG 2000

C'est la version DCP SMPTE (Society of Motion Picture and Television Engineers) qui est devenu la norme pour distribuer les films dans les salles de cinéma, en remplacement des bobines de 35 mm. Du chiffrement est intégré.

La piste vidéo est encodé image par image en JPEG-2000, ce qui n'est pas très subtil, mais assure une haute qualité, au prix d'une taille importante. Le fichier audio est un Multicanal PCM linéaire 24 bits non compressé (WAV).

Les DCP étant un ensemble de fichiers (et non un seul gros fichier), ils peuvent être modifiés sans avoir à mettre à jour l'ensemble de la production.

Le DCP n’a que deux formats en projection :

  1. Le FLAT : format de 1,85 de large. Soit 1998x1080 pixels.
  2. Le SCOPE : format de 2,35 de large. Soit 2048x858 pixels.

Apple

Évidemment, Apple a commencé par faire cavalier seul avec "Apple video" pour la toute première version de Quicktime, leur lecteur de vidéo en 1991. Les fichiers conteneurs étaient des .avi (Audio Video Interleave). Puis ce furent les .mov avec la spécification QuickTime File Format (QTFF) en 2001 et l'avènement du MPEG-4 où ils ont intégré les H.264 et consort. Ils sont même en train d'aller vers le AV1.

Apple a aussi inventé le codec Pixlet (Pixar wavelet) vers 2003.

Apple a défini un codec vidéo professionnel appelé ProRes, permettant l’édition rapide de séquences vidéo de haute qualité tout en préservant une qualité d’image élevée.

Il a probablement eu pas mal d'autres avatars, mais bon, on peut retenir que ce sont les précédents codecs H.26x, VP9 ou AV1 qui deviennent prépondérants, sauf en ce qui concerne l'édition pro.

Et tous les autres ?

Il existe une tirée d'autres algorithmes de compression, mais ils ne se sont jamais imposés, exceptés pour certaines applications genre YouTube, le défunt Flash Player, Windows Media Player de Microsoft... Et sont souvent associé à un conteneur spécifique, d'où l'explosion du nombre d'extensions de fichier.

A propos de DivX et Xvid que les vieux ont dû connaitre, et se débattre pour tenter d'installer les drivers...

Xvid est une bibliothèque de codecs vidéo suivant la norme de codage MPEG-4 Part 2 Advanced Simple Profile (ASP).

Xvid est un concurrent du codec propriétaire DivX développé par DivX Inc. Contrairement à DivX, Xvid est un logiciel libre distribué sous la licence publique générale GNU. Pour cette raison, Xvid fut utilisé sur toutes les plates-formes pour lesquelles le code source peut être compilé.

Si vous êtes professionnel, alors ce site vous paraitra vraiment ras-de-terre, désolé.

Les codecs pour l'édition vidéo est un monde vraiment à part car on veut éditer image par image avec une qualité élevée, pas question de dégrader les images, mais quand même, il faut stocker les données et que ça reste raisonnable en taille.

Pour la distribution des films de cinéma, il existe le DCP qui assure une haute qualité, mais au prix d'une taille de fichier importante, forcément.

Vous allez certainement perdre votre temps si vous voulez creuser tous les codecs vidéo, autant regarder au cas par cas quand un fichier bizarre se présentera, vous demander à votre moteur de recherche préféré.

Si vous voulez générer un fichier vidéo, et donc immanquablement choisir un codec, prenez le H.265 ou l'AV1 suivant ce qui sera disponible pour vous, et un conteneur .mkv Matroska. Vous devrez alors vous amuser avec les paramètres disponibles, ce sera déjà assez bien compliqué comme ça. Et si vous faites des petites vidéos pour le web, prenez le WebM, voire le WebP s'il n'y a pas de son.

Performances

Il n'est pas si évident de comparer les performances d'un algorithme de compression...

Graphique fait en 2017
Graphique fait en 2020

Et vous trouverez facilement des papiers de chercheurs qui vous montreront comment leur algorithme de compression est bien meilleur que tous les autres. Mais ce n'est pas si évident à juger, car on peut comprimer beaucoup en dégradant la qualité, mais ça vous le saviez. Et les objectifs ne sont pas toujours les mêmes : c'est un fichier plus petit à la fin, ou un débit constant faible sur la durée de la vidéo ? Et quand on réalise qu'à la fin, ce qui compte, c'est ce qui est perçu par l'humain, ça n'arrange pas l'objectivité des comparaisons...

VLC VideoLAN

🤨 Mais en pratique, comment faire pour savoir quel codec est utilisé dans un fichier ?
Je te conseille d'utiliser VLC, un lecteur vidéo qui sait lire à peu près n'importe quoi.
😒 Encore un logiciel à acheter !
😀 Ah non, non ! Il est gratuit.
Dans le menu "outils", tu demandes "information sur les codecs"
VLC menu information sur les codecs
Et tu obtiens ce genre de réponse :
VLC menu information sur les codecs
😺 Cool !
VLC sait aussi convertir des formats, appliquer des codecs et des filtres, mais c'est une autre histoire.

Formats de fichiers vidéo
Conteneurs

Nous allons commencer avec les conteneurs un peu évidents, à savoir les disques optiques, qui nous permettent d'acheter des films, enfin avant l'avènement des autoroutes de l'information, autrement la vidéo qu'on reçoit directement des serveurs par fibre optique, afin d'avoir un débit suffisant pour obtenir une qualité acceptable.

Disques optiques

Les disques optiques imposent certaines caractéristiques :

disque année taille image codec poids Notes
CD 1982 petite variable 0.7 Go fallait que le film tienne sur un CD...
DVD 1998 SD
720x576
MPEG-2 4.7 Go 4/3 ou 16/9, pixels rectangulaires, PAL ou NTSC
BluRay 2003 Full-HD
1920x1080
H.264 50 Go
BluRay
4K
2015 4K
3840x2160
H.265 50 Go H.265 est 30 à 50% plus efficace

Remarquez les codecs. Notez qu'il s'agit des formats destinés à vendre des films, on peut bien stocker ce qu'on veut quand on écrit son disque soi-même, ce qui était le cas des CD où on faisait ce qu'on pouvait, un film entier avec une petite image, à l'époque on n'avait ni les algorithmes, ni la puissance de calcul requise, du coup c'était du n'importe quoi.

Les extensions de fichier

Pour rappel, l'extension d'un nom de fichier n'est pas une garantie de ce que c'est. Vous pouvez nommer un JPEG en .gif si ça vous chante. Mais bon, si vous êtes du genre à écrire "sel" sur votre paquet de sucre, j'éviterai d'aller chez vous.

Normalement, le conteneur ne devrait rien avoir à voir avec le codec utilisé. Mais ça n'est pratiquement jamais arrivé, sauf quelques exceptions, et en plus le format MPEG est souvent confondu avec les codecs du même nom, ça n'aide pas.

Et les extensions de fichier, qui devraient être significatives, mais ça n'est pas toujours le cas, il en existe des dizaines !

Vous trouverez sur Internet des sites qui listent les extensions de fichier avec plus ou moins de bonheur et d'explications, en voici quelques exemples :

Il existe même des logiciels qui analysent et reconnaissent les fichiers, mais bon, autant utiliser les sites en ligne.

Une fois que l'on a compris la différence entre un algorithme de compression, les codecs associés et les conteneurs, identifier et connaitre le type de fichier et son extension associée est d'un intérêt relatif, surtout s'il s'agit d'un standard obscur et obsolète...

extension codec Notes
.3g2 3GPP2 H.263 / H.264 similaire 3GP
.3gp 3GPP H.263 / H.264 pour téléphones GSM 3G
.avchd Advanced Video Coding HD H.264 / AVC utilisé par Sony
.avi Audio Video Interleave XVid, DivX ... Microsoft 1992. YouTube.
A éviter car trop vieux, n'a pas anticipé certains paramètres.
.bik .bk2 Bink Video propriétaire jeux vidéo
.dav propriétaire caméra surveillance CCTV, chiffré, par Dahua / DVR365
.dv Digital Video DV Une famille de codecs datant de 1995, lancé par Sony et Panasonic pour les caméras
.exp MPEG-4 Enregistreur DVR de la série DX, et caméras de surveillance
.f4v Flash MP4 Video MPEG-4 Flash Player , similaire à MP4
.flv Flash Video H.263 VP6 Adobe Flash Player / abandon 2020
.m2ts MPEG-2 TS Blu-ray Disc Audio-Video (BDAV) MPEG-2 Transport Stream (M2TS)
.m2v MPEG-2 pour les DVD
.m4v H264 par Apple protection anti-copie, en fait du .mp4
.mkv Matroska Video varié Très adaptatif. base du WebM. Plusieurs pistes audio, sous-titre, sinon similaire à .mov ou .avi
.mov Apple MPEG-4 QuickTime
.mp4 MPEG-4 Part 14 MPEG-4 audio, video, images fixes, texte
.mp5 MPEG-4 / MPEG-H spécifique aux portables chinois
.mpe
.mpeg
Moving Picture Experts Group MPEG-1, MPEG-2, MPEG-4 et MPEG-7
.mts MPEG Transport Stream H.264 Sony Panasonic
.mxf DCP JPEG-2000 Diffusion cinéma en salle
.ogv .ogg Ogg Video Theora
.qt QuickTime Apple
.rv RealVideo H.263 puis propriétaire
.swf ShockWave Flash similaire aux .flv
.ts .vob MPEG-2 sur les DVD
.vp8 .vp9 VP8, VP9 substitut de H.264, libre de droit, par Google
.webm WebM VP8, VP9, AV1 libre de droit, par Google
.wmv Windows Media Video WMV 9 = VC-1 conçu par Microsoft pour Windows Media Player

Et une tirée d'autres extensions que je n'ai pas jugées utiles de développer...


Cette page sera certainement plus utile pour moi car je l'ai faite avec mes petites mains. Après, si cela a pu vous aider, tant mieux...