Comment les ordinateurs traitent-ils les images ?

May 03 2021

Réponses

JeremiahDSeitz Feb 19 2019 at 15:00

C'est une question difficile à répondre, simplement parce que la question est assez ouverte. Je ferai de mon mieux cependant…

Examinons d'abord le mot « processus ». Je suppose que cela signifie lire le fichier à partir du disque et l'afficher à l'écran. Si cela est incorrect, clarifiez simplement ce que vous voulez dire réellement et je modifierai ma réponse en conséquence.

Selon le format d'image, les données d'image seront compressées ou non. Le format non compressé le plus courant sera le BMP. Les formats compressés courants sont JPG, GIF et PNG (WebP gagne du terrain trop récemment).

REMARQUE : je ne traiterai que des formats raster, car ils sont les plus courants. Il existe également des formats vectoriels, mais ils sont gérés de manière totalement différente.

La première étape serait que l'application localise et ouvre le fichier en question. Une fois le fichier ouvert, l'application de visualisation lit les données du fichier dans la mémoire de travail.

Tous les formats d'image contiennent des informations supplémentaires pour indiquer divers éléments d'information, tels que les dimensions de l'image, la profondeur de bits et d'autres éléments. Ces informations sont extraites des données du fichier et stockées.

En supposant que les données d'image sont compressées, elles seront extraites et transmises par un codec (codeur/décodeur), qui est juste un terme technique pour le code qui peut compresser ou décompresser des données (images, audio et vidéo).

Une fois que le codec a fait son travail, il renvoie un tas d'octets contenant les données d'image réelles.

C'est là que les données d'en-tête entrent en jeu. Pour afficher une image, une application a besoin de quatre éléments : la largeur de l'image, la hauteur de l'image, le format de pixel (profondeur de bits et ordre) et les données non compressées. Les deux premières variables sont utilisées pour configurer la taille de l'image de sortie. Ensuite, chaque pixel des données d'image est lu, converti à la profondeur de bits et au format natifs à l'aide du format de pixel de l'en-tête d'image, et copié à l'endroit approprié dans les données de sortie.

La sortie finale est ensuite copiée dans la mémoire vidéo, où elle est affichée à l'utilisateur.

Gardez à l'esprit qu'il s'agit d'une description plutôt simplifiée. Chacune des étapes ci-dessus peut être accomplie de différentes manières, mais les concepts généraux sont corrects.

KaminiKantaMohanty Feb 21 2019 at 10:02

Au niveau conceptuel, une image est représentée comme une matrice bidimensionnelle. S'il s'agit d'une image couleur, vous avez affaire à trois de ces matrices correspondant chacune à un canal de couleur. Dans le cas d'une image en noir et blanc, vous avez affaire à une seule matrice. Les éléments de la matrice ont généralement des valeurs comprises entre 0 et 255.

L'ordinateur peut traiter une matrice (ou des matrices) d'entrée d'une image pour produire une matrice (ou des matrices) de sortie d'image. Alternativement, une matrice d'entrée (ou des matrices) d'une image peut être traitée pour produire un nombre de sortie ou un scalaire, comme dire si l'image correspond à un objet particulier ou au visage d'une personne ou au nombre de visages dans l'image, etc.

Les algorithmes mathématiques exacts opérant sur la matrice d'entrée peuvent être assez complexes.