Aller au contenu principal

Encodage

Objectifs

Qu'est-ce qu'un fichier ?

  • Lire une table ASCII
  • Modifier un fichier texte au format hexadécimal
  • Calculer la taille d'un fichier texte
  • Créer des fichiers PBM, PGM et PPM

Cours

Encodage

Information et architecture

Fichier

  • Un fichier est une suite d'octets (8 bits).

  • L'extension d'un fichier indique son format.

    • .txt : fichier texte

    • .jpg : image

    • .mp3 : audio

  • L'extension définie le logiciel par défaut pour ouvrir le fichier.

    • On peut décider d'ouvrir une image avec un éditeur de texte.

    • Clic droit sur le fichier > Ouvrir avec

Fichier binaire

https://upload.wikimedia.org/wikipedia/commons/7/76/Wikipedia_favicon_hexdump.svg

https://commons.wikimedia.org/wiki/File:Wikipedia_favicon_hexdump.svg

Table ASCII

https://upload.wikimedia.org/wikipedia/commons/1/1b/ASCII-Table-wide.svg

https://commons.wikimedia.org/wiki/File:ASCII-Table-wide.svg

Table ASCII

https://upload.wikimedia.org/wikipedia/commons/1/1b/ASCII-Table-wide.svg

https://commons.wikimedia.org/wiki/File:ASCII-Table-wide.svg

  • 0101 0110 0110 0101 0111 0010 0111 0100 = 0x56657274 = ?

    • Vert

Fichier texte

  • Un fichier texte est composé d'une suite de caractères.

  • Chaque caractère est représenté par un code en octet.

  • L'encodage définit la correspondance entre les caractères et les codes.

    • La table ASCII permet d'associer un code de 8 bits à un caractère.

    • Représentation en hexadécimal : 0x41 (0100 0001) pour le caractère A.

ASCII Art

https://upload.wikimedia.org/wikipedia/commons/6/6b/Fish-shell-logo-ascii-black.svg

https://commons.wikimedia.org/wiki/File:Fish-shell-logo-ascii-black.svg

F pour passer en plein écran ou O pour afficher la vue d'ensemble.
Versions sans animation, plein écran, imprimable.

Exercices

Représentation des caractères

  • Combien de caractères sont représentés dans la table ASCII ?
  • Sur combien de bits est codé un caractère ASCII ?
  • Comme on préfère travailler avec des octets (8 bits), on a arrondi à 8 bits.
    • Combien d'octets sont nécessaires pour stocker la phrase Salut, ca va ? ?
  • Ouvrir OneDrive et créer un dossier encodage dans "OneDrive/1m/informatique/" (créer les dossiers si nécessaire).
    OneDrive/
    └── 1m/
        └── informatique/
            └── encodage/
  • Télécharger le fichier hello.txt et le déposer dans le dossier encodage.
    • Clic droit sur le lien ci-dessus et choisir Enregistrer sous en le nommant hello.txt et en sélectionnant le dossier encodage.
  • Quelle est la taille du fichier hello.txt et le comparer avec son contenu ?
    • Clic droit sur le fichier > Lire les informations.
  • Ouvrir le fichier sur HexEd.it qui est un éditeur hexadécimal en ligne.
    • Aller sur le site HexEd.it et cliquer sur Ouvrir pour sélectionner le fichier hello.txt.
    • L'écran est divisé en deux parties : l'éditeur hexadécimal à gauche et la représentation textuelle à droite.
    • Observer que le premier octet 0x48 correspond au caractère H en ASCII.
  • Modifier les octets dans la partie de gauche pour écrire Hi World!.
  • Sauvegarder le fichier
    • Cliquer sur Enregistrer sous ou Exporter pour sauvegarder le fichier modifié.
  • Ouvrir le fichier modifié sur l'ordinateur pour vérifier son contenu.
  • Quelle est la taille du fichier modifié ? Pourquoi ?

Représentation des images

Portable bitmap

Le format PBM (portable bitmap) permet de représenter des images en noir et blanc.

lettre-e.pbm
P1
4 5
1 1 1 1
1 0 0 0
1 1 1 0
1 0 0 0
1 1 1 1
  • Sauvegarder le fichier lettre-e.pbm dans le dossier encodage avec le contenu ci-dessus.
    • P1 indique le format de l'image (noir et blanc).
    • 4 5 indique la largeur (4 px) et la hauteur (5 px) de l'image.
    • Les pixels sont représentés par des 1 (noir) et des 0 (blanc).
  • Ouvrir le fichier avec GIMP pour voir l'image.
  • Ouvrir le fichier avec Bloc-notes pour voir le contenu.
    • Clic droit sur le fichier > Ouvrir avec > Autre > Bloc-notes
  • Créer le fichier lettre-f.pbm qui représente la lettre F en noir et blanc.
    • Dupliquer le fichier lettre-e.pbm et le renommer lettre-f.pbm.
    • Modifier le fichier avec Bloc-notes pour obtenir la lettre F.
    • Ctrl + S pour sauvegarder les modifications.
    • Le résultat final devrait ressembler à :

Portable graymap

Le format PGM (portable graymap) permet de représenter des images en niveaux de gris.

gif.pgm
P2
11 5
3
0 1 1 1 0 2 0 3 3 3 3
1 0 0 0 0 0 0 3 0 0 0
1 0 1 1 0 2 0 3 3 3 0
1 0 0 1 0 2 0 3 0 0 0
0 1 1 0 0 2 0 3 0 0 0
  • Sauvegarder le fichier gif.pgm dans le dossier encodage avec le contenu ci-dessus.
    • P2 indique le format de l'image (niveaux de gris).
    • 11 5 indique la largeur (11 px) et la hauteur (5 px) de l'image.
    • 3 indique la valeur maximale des niveaux de gris.
    • Les pixels sont représentés par des valeurs entre 0 (noir) et la valeur maximale 3 (blanc)
  • Ouvrir le fichier avec Bloc-notes pour voir le contenu.
  • Créer le fichier gris.pgm qui écrit GRIS en niveaux de gris.
    • Ne pas oublier de mettre à jour la largeur et la hauteur de l'image.
    • Ne pas oublier de mettre à jour le nombre de niveaux de gris.
    • Le résultat final devrait ressembler à :

Portable pixmap (bonus)

Le format PPM (portable pixmap) permet de représenter des images en couleurs.

couleur.ppm
P3
6 4
255
255 0 0 0 255 0 0 0 255 128 128 128 255 255 255 0 0 0
255 0 0 0 255 0 0 0 255 128 128 128 255 255 255 0 0 0
255 0 0 0 255 0 0 0 255 128 128 128 255 255 255 0 0 0
255 0 0 0 255 0 0 0 255 128 128 128 255 255 255 0 0 0
  • Sauvegarder le fichier couleur.ppm dans le dossier encodage avec le contenu ci-dessus.
    • P3 indique le format de l'image (couleurs).
    • 6 4 indique la largeur (6 px) et la hauteur (4 px) de l'image.
    • 255 indique la valeur maximale des couleurs (0 à 255).
    • Les pixels sont représentés par des valeurs RGB (rouge, vert, bleu) entre 0 0 0 (noir) et 255 255 255 (blanc).
    • Le premier pixel est représenté par le triplet 255 0 0 (rouge).
  • Ouvrir le fichier avec Bloc-notes pour voir le contenu.
  • Créer un nouveau fichier suisse.ppm qui représente un drapeau suisse.
    • Commencer par créer un carré rouge de 5x5 pixels.
    • Le résultat final devrait ressembler à :
  • Créer d'autres drapeaux : français, italien, allemand, autrichien, belge, etc.
    • Pour obtenir les valeurs RGB d'une couleur, chercher color picker sur Google.
    • Il est aussi possible d'obtenir la couleur exacte d'une image avec imagecolorpicker.com.

Références