Réalisé en
2026
Encodeur H.120
Implémentation Rust du format de compression vidéo H.120
Sections
Description
Ce projet est typiquement le genre de projet que j'ai en tête depuis beaucoup trop longtemps, mais que je ne pouvais pas réaliser par manque de temps et de connaissance. En l'occurrence, ici il s'agit d'un encodeur qui suit la spécification originale du format H.120, publiée en 1984 par l'ITU, ou plutôt l'UIT à cette époque, pour Union Internationale des Télécommunication (cocorico).
Pourquoi avoir réalisé ce projet ?
Le format H.120 est le premier format standardisé de compression vidéo numérique apparu au monde. Si vous lisez c'est mot, c'est que vous être probablement un techos comme moi. Donc, vous êtres probablement familiers avec les formats H.264 et H.265. Avant eux, il y a eu H.263, H.262 et H.261, ce dernier représentant le premier format accessible au grand publique.
Mais comme vous l'avez compris, H.261 n'est pas le premier format qui est apparu. En fait, c'est le second. Son prédécesseur est H.120. Malheureusement, il n'existe à ce jour aucune implémentation logicielle (autre que la mienne) de ce format. Pour info, un codec est une implémentation logicielle. ;) Il s'agit donc d'un cas avéré de "Lost media", ce post Reddit en est un témoin.
Qu'est-ce que ça donne ?
Concrètement, ce format est très primitive par rapport à ce que l'on connais aujourd'hui. Conçue en 1984, à une époque où les ordinateurs étaient presque aussi puissant qu'une calculatrice lycée (je pense à la Casio Graph 35), et où internet n'existe même pas encore (7 ans avant !), il ne faut pas s'attendre à quoique ce soit d'extraordinaire par rapport à nos standards modernes.
Une fois ces contraintes bien prises en compte, voici ses spécifications :
- Transmission via le réseau téléphonique, avec une bande passante de 2048 kbit/s pour notre système PAL, contre 1544 kbit/s pour le NTSC (je vais partir du principe que vous savez ce que ça signifie)
- Diffusion sur écrans 625 lignes couleurs, 525 pour NTSC. Seules 143 sont réellement utilisées pour l'affichage
- 50 images par seconde, 60 pour la NTSC
Pour économiser de la bande passante, H.120 prévoit de n'envoyer que les parties mobiles des images. Bien sûr, étant donné la faible puissance de calcul de l'époque, oubliez toute prédiction de mouvement. Bien que la spécification le mentionne, son implémentation n'est aucunement détaillée. À la place,
En conséquence, envoyer une image de bonne qualité sans faire exploser la bande passante est impossible. C'est pour ces raisons que le format n'a jamais été adopté, ni commercialement parlant, ni dans des usages publiques. Il faudra attendre 1988 avec H.261 pour voir arriver les premiers codecs vidéos.
- Niveau 1 Assistance légère Revue de code, propositions et maintenance.
- Niveau 2 Développement assisté Environ 50/50 entre l’IA et moi.
- Niveau 3 Développement intégral L’essentiel du code écrit par l’IA, sous ma direction.
L’IA écrit l’essentiel du code ; la conception, les choix techniques et la relecture restent les miens, et chaque changement est vérifié et testé.
Les spécifications officielles ont été suivies à la lettre par Claude lors de l'implémentation
Statistiques
Rust implementation of the 1984 H.120 video codec.
- Étoiles
- 0
- Forks
- 0
- Observateurs
- 0
- Issues
- 0
- Rust 100%