Codage des données des fichiers vidéo: Le Code Hexadécimal

Capture d’écran 2017-04-15 à 04.30.38

Toute information informatique, est décrite dans un code binaire. Mais elle peut-être un peu plus légère à la manipulation sous format hexadécimal…
Voir l’article Le codage des données en informatique sur davidtribal.com qui explique bien le codage binaire.

Le code binaire

binary-computer-code-repeating-vector-background-illustration-continuous-pattern-left-right-up-and-down_135022250

Voir Système binaire sur wiki

Les bits

On dit « binaire«  parce que les signes de ce code ne peuvent prendre que 2 valeurs différentes: 0 et 1.
En effet, en électronique, 0 correspond à une absence de signal électrique, et 1 à une présence de signal électrique. Difficile de transmettre une information différemment à un composant…

Avec un seul caractère entre 0 et 1 on ne peut coder que 2 valeurs: 0 ou 1. Easy.

Ce caractère pouvant prendre la valeur 0 ou 1 est appelé bit.

L’octet = le Byte

Si je prends 2 bits et que chacun peut prendre la valeur 0 ou la valeur 1 alors j’ai 4 possibilités:
00 – 11 – 01 – 10

Et ainsi de suite si je prends 3 bits: 16 possibilités, 4 bits: 32…8 bits: 256 valeurs !

C’est ainsi que pour pouvoir coder 256 valeurs différentes on a recours un octet de 8 bits variant entre 0 et 1.

Exemple:

Ces 256 valeurs permettent d’écrire toutes les lettres de l’alphabet latin (26 minuscules + 26 MAJUSCULES + les chiffres de 0 à 9 + les symboles et d’autres infirmations….)

Ainsi la lettre A de l’alphabet français s’écrit en 1 octet: 01000001.

Limite du code binaire

Le code binaire de nicolas kaplan donne

01101110 01101001 01100011 01101111 01101100 01100001 01110011 00100000 01101011 01100001 01110000 01101100 01100001 01101110

Chaque lettre étant codée par 1 octet, mon nom pèse donc le nombre de lettres qu’il comporte + l’espace: nicolas (7 lettres) + kaplan (6 lettres) + espace (1 caractère) = 14 octets !

Et le chiffre 256 ?
Et bien il s’écrit 2, 5, et 6: 00110010 00110101 00110110
Ainsi un nombre à 3 chiffres s’écrit en 3 octets.

Imaginez la longueur du code pour rédiger une phrase…
Le code binaire devient vite lourd à décrypte, peu digeste, et prend beaucoup d’espace (visuel).

Le code hexadécimal

Capture d’écran 2017-04-15 à 04.36.18Exemple de code hexadécimal d’une vidéo avec son interprétation textuelle

Voir Système hexadécimal sur wiki

Même si les ordinateurs continuent de décoder les informations en binaire (présence ou absence de signal électrique), il est reconnu vers 1950 par un groupe d’ingénieur qu’il serait plus simple de manipuler moins d’octet de données et d’une manière plus visuelle que des colliers de 0 et de 1.

Il faut donc pouvoir coder plus d’informations sur une chaine de caractères plus courte. Cette chaine doit donc pouvoir prendre plus de 256 valeurs en moins de 8 caractères. Après la base binaire,(puis la base octale) on passe à la base Hexadécimale.

Un logement*

Un terme que j’invente ici parce que je n’ai pas trouvé sur internet son nom s’il en a un. J’appellerai « logement » l’emplacement d’un caractère hexadécimal.
Par exemple par analogie au système binaire, un « logement » serait « un bit ».

Autant qu’un bit peut prendre la valeur 0 ou 1, un logement peut prendre une valeur entre 0 et 9 puis de A à F.

Un « logement » peut donc prendre 16 valeurs différentes:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

Base décimale 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Base hexadécimale 0 1 2 3 4 5 6 7 8 9 A B C D E F
Base binaire 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

Tableau de conversion entre les bases 10 (décimale), 16 (hexadécimale) et 2 (binaire)

Equivalence au système binaire

Ainsi, chaque logement, plutôt que de pouvoir coder 2 valeurs différentes, peut en coder 16 !
Un logement permet donc de décrire 8 fois plus d’informations qu’un bit. Et tandis qu’il faut 1 octet (de 8 bits) pour définir 2^8 = 256 valeurs, il suffira de

16 = 4 x 4 = 2^2 x 2^2 = 2^4     &      2^8 = 2^4 x 2^4 = 16×16 = 16^2      => 256 valeurs = 16^2

Il suffira donc de 2 logements pour décrire 256 valeurs au lieu de 8 bits (=1 octet).

On divise donc par 4 le nombres de caractères, en écrivant 1 octet sur 2 logements hexadécimaux,
rendant plus le code plus court et plus lisible.

* un logement est en fait appelé un « chiffre hexadécimal ». Ce chiffre peut donc prendre la valeur d’un chiffre de 0 à 9 ou d’une lettre de A à F.

Exemple

Pour le mot photographie, le voici en hexadécimal:

70 68 6f 74 6f 67 72 61 70 68 69 65

et en binaire

01110000 01101000 01101111 01110100 01101111 01100111 01110010 01100001 01110000 01101000 01101001 01100101

Lequel est le plus sexy ? Aucun des deux ? Bon, OK… mais le premier est plus court quand même.

Ceci dit, difficile de comprendre comment on passe de 70 en base hexadécimale à un p en alphabet latin…

Par contre pour les conversions en chiffre CommentCaMarche l’explique bien ici.

Application

J’ai eu un soucis avec une vidéo qui plutôt que d’être un fichier lisible en .mov, se retrouvait être un fichier illisible en .dat…
Au final j’en suis venu à essayer de décrypter le code hexadécimal de la vidéo. A voir ici:

Dissection du code Hexadécimal d’une vidéo pour la réparer…

 


Liens:

Related posts

Leave a Comment