Formats vidéos & codec
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...
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
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 8640 | 16/9 =1.77 | 132 710 400 | 400 Mo |
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.
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 |
É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 2000 | 2009 | DCP | Diffusion des films au cinéma, les images sont compressées une par une. |
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.
- MPEG-1 Wikipedia en anglais, bien mieux que le français.
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é.
- MPEG-2 Wikipedia en anglais, bien mieux que le français, comme d'hab.
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.
- H.263 Wikipedia en anglais.
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.
- Advanced Video Coding / H.264/ Wikipedia en anglais.
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.265 Wikipedia en anglais.
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).
- H.266 Wikipedia en anglais.
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.
- VP8 Wikipedia en anglais.
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.
- VP9 Wikipedia en anglais.
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.
- Essential Video Coding Wikipedia en anglais.
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.
- Windows Media Video Wikipedia en anglais.
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 :
- Le FLAT : format de 1,85 de large. Soit 1998x1080 pixels.
- 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...
- [2017] 20 Years of Progress in Video Compression – from MPEG-1 to MPEG-H HEVC. General View on the Path of Video Coding Development / Karwowski & al.
- [2020] Machine learning based video coding optimizations: A survey / Zhang & al.
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
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 :
- fileinfo, un site avec une impressionante liste d'extensions de fichier relatifs à la vidéo. Rien qu'en jetant un œil, vous allez laisser tomber tellement il en existe.
- fileformat, en français, avec une liste tout aussi abondante.
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...