Seul  le traitement de l'image avant  diffusion est évoqué dans cette page

JPEG
Codage d'une image fixe

Le pixel : Une image numérique se compose de lignes horizontales elles-mêmes constituées de points élémentaires: les pixels. Ceux-ci sont composés de trois couleurs de base (rouge, vert bleu). En variant leur saturation (du clair au plus foncé), on couvre, par mélange, toute la palette visible. Ainsi, trois échantillons de couleur caractérisent le pixel. Si chaque couleur est échantillonnée sur un octet c'est-à-dire avec 256 valeurs ou nuances possibles, on obtient pour l’ensemble un rendu pouvant aller jusqu'à plus de 16 millions de couleurs . (256*256*256)

Luminance : En travaillant uniquement sur la somme des trois couleurs échantillonnées on obtient l’image en noir et blanc. Cette somme, c’est la luminance. En échantillonnant la luminance et deux couleurs (le rouge et le bleu par exemple) on retrouve notre image couleur. A terme, la troisième couleur s’obtiendra par soustraction: Luminance – (rouge + bleu) = vert. Pourquoi se compliquer ainsi la vie ? Pourquoi au lieu de traiter séparément le vert, le rouge puis le bleu, traiter la luminance,le rouge et le bleu ?

Sous-échantillonnage : l’œil étant plus sensible à la luminance qu’à la couleur, on admet qu’une perte de définition des couleurs ne change pas notre perception globale de l’image. Le premier principe de compression va donc consister à sous-échantillonner la valeur des couleurs par rapport à celle de la luminance. Ce rapport peut aller jusqu’à 4 selon la norme, mais 2 reste le plus courant. Les notations traditionnelles de tels sous-échantillonnages se notent 4.1.1 pour le premier et 4.2.2 pour le plus répandu.

Blocs : Dés le début du traitement, on a divisé l’image en blocs de 8*8 = 64 pixels afin de travailler indépendamment sur chacun de ces blocs. Les mêmes algorithmes sont répétés pour chacun

Et la compression continue !                                                                         

Dans un bloc, plus il y a de détails, plus la valeur des pixels diffère rapidement. Ces variations très rapides représentent des détails imperceptibles à l’œil humain. Le traitement va consister, à identifier les pixels qui changent de valeur à une fréquence trop rapide pour ensuite limiter l'amplitude de leur variation. Ce passage entre valeurs intrinsèques et variation fréquentielle des valeurs est confié à des calculs (DCT) basés sur les transformées de Fourier.

Quantification: Les données résultantes sont ensuite quantifiées. C’est en quelque sorte un arrondi des valeurs qui permet de limiter encore le nombre de bits à transmettre. La contre partie de cette compression est une finesse moindre de l’image: c'est pourquoi son paramétrage varie selon l’application envisagée.

Suite et fin: Toujours pour réduire le débit à transmettre, les données vont subir une dernière compression… avant qu’un dernier codage ne soit appliqué. Ces opérations conservent l’intégrité de l’image. Cette compression non destructive est nommée « RLE ». Elle est basée sur la simplification des suites de valeurs identiques. Un exemple de compression RLE :

025025025025025025 s’écrira 6025 (6 fois la valeur 025)

Vient enfin un dernier codage dit ‘de Huffman’ qui consiste à recoder les données selon leur fréquence d’apparition au lieu d’utiliser le même nombre de bits pour chacune. Il en résulte des codes plus courts pour les données les plus fréquentes.

Pour résumer le codage JPEG:

 

MPEG2
Codage d'images animées  (Motion JPEG)

Le MPEG2 est le format utilisé pour la création des DVD vidéo et la télévision numérique lorsqu'il ne s'agit pas de haute définition.

L'idée: C'est, après avoir transmis un image complète, de ne transmettre que les éléments modifiés.
La solution de base consiste à soustraire l'image en cours à l'image précedente pour ne transmettre que les différences. Les parties inchangées, mémorisées par le décodeur n'ont plus à être traitées par celui ci et ne sont plus transmises. Cependant, l'image de référence pouvant changer radicalement pendant ces manipulations, il est nécessaire d'insérer régulièrement une nouvelle image complète dans le processus. Chaque image complète se nomme image " Intra " ou "I"

Maintenant, imaginons qu'une voiture se déplace dans un paysage. La voiture masque une partie du paysage qui se découvre après son passage. Cette partie qui n'était pas visible dans l'image précédente le sera dans la suivante. Disposer de ces détails impose de travailler sur les images "à venir". On y parvient en stockant un certain nombre d'images en mémoire avant diffusion. Ceci permet au processeur de calculer l'évolution entre deux images afin d'estimer les mouvements et construire par prédiction mathématique des images intermédiaires. Ces images prédites en fonction des mouvements son insérées dans la séquence entre deux images "Intra". On  intercalera encore quelques images intermédiares qui seront des images estimant les différences entre image précédente et image suivante (Interpolation bidirectionnelle).La succession d'images d'une Intra à l'autre s'appelle le GOP (Group Of Pictures).  Le nombre d'images constituant le GOP peut être modifié. En général il est de 12 images.

Les images prédites se nomment "P". Les images bidirectionnelles se nomment "B".  C'est une séquence indissociable. On notera que si les 12 premières images avaient été analysées dans leur intégralité, elles auraient toutes sensiblement le poids de la première image: alors qu'ici, le débit est pratiquement divisé par 4.


 GOP

Les images ainsi traitées sont prètes à être diffusées,  mais elles subiront encore de nombreuses mises en forme afin d'être compatibles avec le mode de diffusion prévu, le type de modulation choisi...et leur cryptage éventuel.  A  la réception tout sera détricoté !

 

En Construction