// Tu parles la langue des PC, toi? / Recevoir de l’aide

Déchiffrer des messages en image

Les ordinateurs enregistrent et transmettent les images selon différents modes. Une des possibilités est la suivante: une matrice carrée est posée sur l’image. Le système détermine ensuite pour chaque petit carré la couleur prédominante de cette partie de l’image. Dans un message codé, chaque carré partiel est représenté en tant que point coloré, nommé pixel. C’est pourquoi de telles images codées s’appellent images matricielles (voir Wikipedia http://fr.wikipedia.org/wiki/Image_matricielle). A titre d’exemple, nous allons prendre l’image du robot bit avec des matrices de différentes tailles:

Pour le codage des couleurs, il faut comme toujours disposer d’un tableau de codage. Celui-ci attribue un code binaire à chacune des couleurs. Le tableau des codes dans le téléphone portable des trois robots n’est pas très grand, car celui-ci peut seulement afficher des images avec huit couleurs au maximum.

blanc0000
noir0001
rouge0010
vert0011
jaune0100
brun0101
orange0110
bleu0111

Ainsi, quatre bits du message codé correspondent à un pixel dans l’image décodée.

Compression d’images

Le codage d’images peut nécessiter beaucoup d’espace, si la matrice est très grande et qu’un grand nombre de pixels doivent être codés. Ici, il serait très pratique s’il était possible de comprimer l’image. Le procédé de compression du téléphone portable des trois robots utilise les caractéristiques de nombreuses images, à savoir qu’elles contiennent souvent de grandes surfaces d’une même couleur. Le codage de telles surfaces est donc relativement monochrome: un pixel de couleur x et suivi d’un autre de même couleur. Si une personne devait transmettre une telle image, elle ne dirait certainement pas « vert, vert, vert, vert, vert… », mais probablement « maintenant, il y a cinq pixels verts, ensuite 20 jaunes, puis… ".

Le téléphone portable des trois robots maîtrise également ce truc. Si plusieurs pixels de même couleur se suivent dans une image, il est possible d’établir le code en conséquence. En plus des codes pour les huit couleurs, le tableau de codage contient également huit codes de répétition:

blanc0000 2 Pixel1000
noir0001 3 Pixel1001
rouge0010 4 Pixel1010
vert0010 5 Pixel1011
jaune0100 6 Pixel1100
brun0101 7 Pixel1101
orange0110 8 Pixel1110
bleu0111 9 Pixel1111

Il est possible de coder huit pixels jaune en gagnant de la place comme suit:

1110 0100

Exemple

Sur la base d’un exemple, nous allons présenter comment des images comprimées peuvent être décodées. L’image comprimée se présente ainsi:

111000101001001010000000100100101001001010000000100100
100010110000000010001011000000001010010010100000001001
001010010010100000001001001011100010

Comme l’image est comprimée, il n’est pas tout de suite possible de connaître sa taille. La première étape consiste donc à décomprimer le message:

111000108 pixels rouge
100100103 pixels rouge
100000002 pixels blanc
100100103 pixels rouge
100100103 pixels rouge
100000002 pixels blanc
100100103 pixels rouge
00101 pixel rouge
110000006 pixels blanc
00101 pixel rouge
00101 pixel rouge
110000006 pixels blanc
00101 pixel rouge
100100103 pixels rouge
100000002 pixels blanc
100100103 pixels rouge
100100103 pixels rouge
100000002 pixels blanc
100100103 pixels rouge
111000108 pixels rouge

L’image se compose donc de 64 pixels. Etant donné que l’image doit être carrée, l’image est représentée dans une matrice de 8x8 pixels.

Schweizer Kreuz