Si nous avons vu lors d’un précédent article deux mécanismes de compression, le catalogage et la gestion de l’entropie, il existe d’autres stratégies pour limiter la taille des fichiers. Mais avant de chercher à réduire, la question se pose sur la nature des données. On peut distinguer 2 types de fichiers : les textes et les binaires.
Les fichiers de type “texte”
En apparence, il s’agit de fichiers qui contiennent uniquement des caractères alphanumériques. Ne soyons pas radins, nous connaissons d’autres signes que les chiffres et les lettres. La ponctuation et quelques signes et symboles mathématiques font aussi partie du lot.
Les plus malins pourraient aussi me citer les idéogrammes chinois ou les alphabets grecs, russes ou arabes. Mais il est rare qu’un texte manipule plusieurs types d’alphabets. Et cela n’invalide en rien l’efficacité des algorithmes de compression.
D’une manière simplifiée, un fichier texte est un fichier qui contient des caractères compréhensibles par un être humain quel que soit l’encodage utilisé dont le plus célèbre est la table ASCII (et non à ski).
On pourrait alors penser qu’un document Microsoft Word est un fichier texte. C’est une erreur. Le document que vous ouvrez dans votre éditeur de texte n’est pas un fichier texte. Il s’agit d’un fichier binaire lisible par le logiciel Word. En réalité, il s’agit d’un fichier XML pouvant contenir des données binaires qui a été compressé.
Des fichiers “texte” vous en manipulez si vous écrivez avec le notepad. Mais pas seulement. Les structures des sites internet que vous consultez sont des fichiers textes. Ils ont été compressés pour passer sur le réseau, puis décompressés avant d’être affichés dans votre navigateur. Un appui sur la touche F12 vous l’affichera.
Les fichiers texte se compressent facilement sans perte. Autres fichiers “texte” connus des développeurs, il s’agit du code. Quelque soit sa logique, il doit être compréhensible par son créateur. Même dans les langages les plus obscurs sont des fichiers de type “texte”.
Avantage des fichiers “texte”, ils sont faciles à lire et se compressent bien. Inconvénient, ils n’affichent que du texte. C’est pour cela qu’il existe une seconde catégorie.
Les fichiers binaires
Ils sont utilisés pour tout le reste. D’instinct, vous devinez que les images, les sons et les vidéos sont stockés sous forme binaire. Les archives compressées, zip, le sont aussi, ainsi que les programmes exécutés par le microprocesseur et les fichiers utilisés par des applications de PAO, CAO, …
Leur structure dépend de leur usage et s’ils peuvent être transmis sur le réseau, ils doivent être identifiés par le type MIME. Vous trouverez une explication sur ce lien. Les fichiers binaires ont une part importante. Avant d’étudier comment les compresser, il faut comprendre comment ils fonctionnent.
Les images
Pour simplifier, une image est une matrice de pixels, un tableau composé de lignes et de colonnes qui forment des cases. Chaque pixel est distingué en trois sous-pixels (rouge, vert et bleu). Un fichier image identifie chaque case et la valeur de ces 3 composantes.
Les sons
Je détaille la théorie dans cet article. La conversion d’un son analogique en numérique en numérique consiste à mesurer à une fréquence donnée la tension à l’entrée d’un micro. Un fichier sonore est une suite de tensions exprimées dans un format binaire.
Les vidéos
Une vidéo est un ensemble d’images qui se suivent. 24 images par seconde suivant la légende du cinéma. À cela, nous devons ajouter un fond sonore. Un fichier vidéo regroupe une suite d’images et de sons.
Les zip
Le résultat d’une compression est un fichier binaire. Il n’est lisible que par un outil de décompression (ou par un informaticien qui connaît l’algorithme et lit couramment le binaire, ce qui est un exploit). On peut compresser un zip avec un autre outil de compression, mais le gain peut être négatif.
Les programmes exécutables
Il s’agit de suites d’instruction compréhensibles uniquement par le microprocesseur. Comme tout fichier, il peut être compressé. Mais il devra être obligatoirement décompressé avant tout usage.
—
Là où la stratégie pour un fichier “texte” est stable et efficace, dans le cas d’un fichier binaire, la complexité pour réduire la taille est en apparence peu accessible. En réalité ce n’est pas sorcier. Mais vous le verrez dans les prochains articles.