Cours n°1 :
Représentations

R1.03 - Intro. Archi
Victor Poupet

Présentation du cours

1h cours (7 semaines) + 3h TD (6 semaines)


Contenu :

Représentation de valeurs

Définition

Un bit (binary digit) est une unité d'information qui représente un état logique pouvant prendre deux valeurs (souvent notées \(0\) et \(1\)).

Proposition
Avec \(n\) bits, on peut représenter \(2^n\) valeurs différentes
Proposition
Pour représenter \(k\) valeurs distinctes, il faut utiliser au moins \(\lceil \log_2(k)\rceil\) bits

ASCII

American Standard Code for Information Interchange


ASCII

La table a depuis été étendue de différentes manières pour ajouter des caractères supplémentaires


Octet

En pratique on considère les bits par groupes de 8 :

Pour les grandes valeurs, on utilise des unités multiples de l'octet


Historiquement :

  • 1 kilooctet (ko) = 1024 o
  • 1 mégaoctet (Mo) = 1024 ko
  • 1 gigaoctet (Go) = 1024 Mo
  • ...

Depuis 1998 :

  • 1 kilooctet (ko) = 1000 o
  • 1 mégaoctet (Mo) = 1000 ko
  • 1 gigaoctet (Go) = 1000 Mo
  • ...
  • 1 kibioctet (kio) = 1024 o
  • 1 mébioctet (Mio) = 1024 kio
  • 1 gibioctet (Gio) = 1024 Mio
  • ...

Texte

Si l'alphabet est simple, on peut utiliser un format ASCII (p.ex. ISO-latin-9 pour le français)


Si on veut utiliser un alphabet plus large, on peut utiliser l'Unicode

  • 159 801 caractères (dernière mise à jour en sept. 2025)
  • 163 systèmes d'écriture (modernes et historiques)
  • symboles divers (emoji, musique, etc.)

Il existe plusieurs encodages Unicode :


  • UTF-8
    • 1 à 4 octets par caractère
    • 0xxxxxxx
    • 110xxxxx 10xxxxxx
    • 1110xxxx 10xxxxxx 10xxxxxx
    • 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
    • Compatible ASCII
    • Environ 97% des pages web actuelles
  • UTF-16
    • 2 ou 4 octets par caractère
    • Non compatible ASCII
    • Utilisé en interne par Windows et Java
  • UTF-32
    • Taille fixe de 4 octets par caractère

Attention ! L'encodage doit être connu pour éviter les problèmes

Images

Pour représenter une image, on peut décrire chacun de ses pixels


Pour une image en couleurs de \(n \times m\) pixels :

  • \(n \times m\) pixels
  • 3 composantes par pixel (RGB)
  • 1 octet pour chaque composante (0 à 255)

→ \(3\times n\times m\) octets pour représenter l'image

(3 Mo pour une image 1000x1000)

Audio

Pour représenter une fonction continue (p.ex. piste audio)

  • Un ou plusieurs canaux indépendants (mono: 1 canal, stereo: 2 canaux)
  • Mesures régulières au cours du temps (échantillons) → taux d'échantillonage en Hertz
  • Taille fixée pour les échantillons (bit depth) → nombre fini de valeurs possibles

Taille d'un fichier audio (en octets) :

  • taille d'un échantillon (en octets)
  • taux d'échantillonage (en Hz)
  • durée (en secondes)
  • nombre de canaux

Environ 10Mo par minute pour un fichier wave en stereo, 44.1 kHz, 16 bits par échantillon.

Audio

Un signal audio peut être décomposé en une superposition de signaux sinusoïdaux


  • Pour reconstruire une sinusoide : au moins 2 mesures par période
  • Pour enregistrer une fréquence de \(f\) Hz : au moins \(2f\) Hz d'échantillonage

On considère que l'oreille humaine perçoit les fréquences jusqu'à 20 kHz


→ Un échantillonage de 44.1 kHz permet d'enregistrer les fréquences audibles

Compression

→ Il faut au moins \(3\times n\times m\) octets

Idée 1
Les images qui nous intéressent sont très différentes des images "aléatoires" (beaucoup de régularités)
Idée 2
Si on représente une image différente mais proche de l'image de départ, ça ne fait presque aucune différence

Compression de Huffman

\(\operatorname{a\ b\ a\ c\ b\ f\ a\ a\ d\ a\ e}\)
\(0.100.0.101.100.1111.0.0.110.0.1110\)
\(0100010110011110011001110\)

Si toutes les valeurs n'ont pas la même fréquence on peut représenter les plus fréquentes sur moins de bits

→ Longueur moyenne d'un message est plus petite qu'avec un code de taille fixe

Compression

Sans pertes (lossless)

Avec pertes (lossy)