Introduction à l'infographie/Info dans Graphie

Début de la boite de navigation du chapitre
Info dans Graphie
Icône de la faculté
Chapitre no 3
Leçon : Introduction à l'infographie
Chap. préc. :Notions Fondamentales
Chap. suiv. :Sommaire
fin de la boite de navigation du chapitre
En raison de limitations techniques, la typographie souhaitable du titre, « Introduction à l'infographie : Info dans Graphie
Introduction à l'infographie/Info dans Graphie
 », n'a pu être restituée correctement ci-dessus.

Info dans Graphie

modifier

Introduction

modifier

Après avoir effleuré le BAba de quelques notions de bases, nous allons aborder dans ce chapitre ce qui fait l'essence même, et, on peut le dire, la spécificité de ce domaine transverse qu'est l’infographie, à savoir : l'informatique.

Loin d'essayer de vous enseigner les méandres de vaste domaine aux milles ramifications en perpétuelle évolution, nous allons plutôt aborder sa base, générique dans un premier temps, puis spécifique à l'infographie par la suite et ce, selon un angle théorique, abstrait, puis, plus concret.

Il est, en effet, important que s'y attarder car, trop souvent, l'informatique est acquise empiriquement et, trop souvent, de façon fondamentalement lacunaire. Cependant, ce domaine, même à son niveau le plus fondamentale, présente, en soit, une multitude de facettes qu'heureusement, nous n'aborderons pas toutes ici.

La toute première chose qu’il faut bien avouer c’est que, du fait, entre autres, de son histoire, il est préférable de disposer d'un peu de vocabulaire anglophone spécifique à ces technologies...

L'ordinateur

modifier
 
The Antikythera mechanism from 150–100 BC was designed to calculate the positions of astronomical objects.
 
Métier à tisser Jacquard
 
Joueur d'orgue à Dinant (Belgique).
 
Papier perforé

Revenons en donc à la définition initiale de ce qu'est une infographie : "tout graphisme produit par des moyens informatiques". Bien.

Donc, qui dit "informatique", dit également "ordinateur", c'est-à-dire, la machine qui traite automatiquement les informations. Par conséquent, il faut s'y attarder un minimum afin de bien comprendre de quoi nous parlons et ce que ça implique !

Alors, déjà, il faut dire que les ordinateurs ne sont qu'une évolution des automates. Donc, la question à se poser est : qu'est-ce qu'un automate ?
​ Eh bien, tout simplement, une machine qui exécute automatiquement une tâche (ou plusieurs, mais qu'importe) spécifique.

Alors, les automates les plus primitifs n'exécutait qu'une seule tâche. C'est le cas, par exemple, des métiers à tisser.
​ Mais il est rapidement apparu qu’il était souvent utile, voire, indispensable, de contrôler certaines opérations qu’ils effectuaient. Et, tant qu’à faire, autant contrôler leurs actions de manière également automatique ! Mais vous comprenez bien que s'il se produit une erreur dans le process de contrôle des erreurs c’est qu’il y a un gros problème et à ce moment là, eh bien, il faut demander une intervention humaine (à travers un message d'avertissement par exemple, ou, à travers une lumière clignotante, ...).

Bon, eh bien, sachez que les ordinateurs ont hérité de ces systèmes de gestion des erreurs. c'est-à-dire qu’ils peuvent commettre beaucoup d'erreur qu’ils peuvent, eux-même, corriger, mais que certaines erreurs sont critiques et nécessitent un intervention humaine pour être résolues. En revanche, il arrive que la cause de l'erreur n'ai pas été anticipée par le concepteur de l'automate (ou, donc, de l'ordinateur), du fait de leurs grandes variétés, et que le système de gestion des erreurs ne les détecte pas. Dans ce cas précis, les conséquences peuvent être dramatique allant de la destruction du produit de l'automate à la destruction de l'automate lui-même ! En informatique (et toujours pour des raisons historiques), on appelle ça un "bug" (ou, un "bogue").

Donc, les automates exécutait toujours la même tâche. Sauf qu’il est rapidement également apparu un intérêt à leur faire faire plusieurs choses (ben oui, tant qu’à fabriquer quelque chose, autant l'optimiser pour lui faire faire plein de choses avec le même matériel !). Sauf que là, évidemment, ces machines se sont mises à devenir de plus en plus complexe au point que leur conception et leur maintenance en devenait hasardeuse. Du coup, les ingénieurs se sont rapidement pencher sur ce qu'on appelle désormais : les ordinateurs.

C'est-à-dire, sur des automates standards qu’il suffirait de programmer, configurer, selon un schéma pour qu’ils exécutent une tâche précise. Et ceci afin, d'une part, de simplifier l'automate et, d’autre part, de le rendre polyvalent (puisque sa tâche dépendrait du programme qu’il exécuterait et donc, de la volonté de ses utilisateurs plutôt que de celle de ses concepteurs).

Autrement dit, les ordinateurs ne sont rien de plus que des automates programmables. Et, contrairement à ce que l’on peut penser, historiquement, ils n'étaient pas électroniques mais bel et bien mécaniques ! Le meilleur exemple d'un ordinateur primitif que l’on puisse prendre étant les orgues de barbarie qui exécutent des partitions musicales écrites sur des bandes spéciales de papier.

Voila, nous venons d'introduire les principes fondamentaux. Alors maintenant, regardons d'un peu plus près comment fonctionne un ordinateur théorique...

Un ordinateur, c’est un automate qui a pour but de traiter des informations pour : faire des choses. Son cœur est donc un cœur de traitement d'informations. Or, comme nous l'avons vu, l'information est une notion éminemment subjective qui dépend donc de la manière dont son utilisateur (l'ordinateur en l’occurrence), l’interprète !

Alors, pour des raisons techniques et historiques, nous utilisons des informations sous la forme d'impulsions électriques qui seront traitées par des dispositifs électroniques... On a donc réduit les informations à leur forme la plus primitive : existe, n'existe pas, c'est-à-dire "1", ou "0".
​ Donc, à travers l’utilisation d'un système de numération (qui permet de compter), non pas basé sur l’existence de 10 chiffres comme celui des humains (le système "décimale"), mais basé sur seulement 2 qu'on a appelé, tout naturellement : "système binaire".

L'ordinateur utilise donc naturellement des "bits" (des "1" ou des "0"), sans même en avoir pleinement conscience. Par contre, comme ce n'est qu'une machine sans conscience, ils ne savent absolument pas à quoi, à quelles informations, tous ces bits correspondent ! Donc, afin de pouvoir les traiter correctement, lui concepteurs les ont doté d'une fiche explicative qui prend la forme d'une liste de mots, d'instructions pour traiter les informations qu’ils reçoivent, donc, en quelque sorte, d'un langage. D'où d'ailleurs le faire que les programmeurs de ces machines parlent de "langage de programmation" (qu’ils ne font qu'utiliser).

Donc, les informations que les ordinateurs traitent sont sous la forme de "1" et de "0", de bits. Ils ont également une langue leur permettant de comprendre ce qu'on attend d'eux et la manière dont ils doivent traiter toutes ces informations qu’ils reçoivent. Très bien. Mais il faut tout de même préciser que ce langage est, lui aussi, écris en binaire et que donc, les mots qu’ils comprennent sont constitués, tout comme les informations à traiter, de lettres binaires, donc, de suites de "1" et de "0".

Donc, si vous avez bien tout suivi, vous aurez compris que le cœur de tout ordinateur doit pouvoir : recevoir des informations, recevoir des instructions, et, avec tout ça, produire quelque chose, c'est-à-dire, soit produire une nouvelle information issue du traitement des informations reçues, soit, faire quelque chose dans le monde physique (vous taper sur la tête, faire le café, changer de chaine ou, plus probablement, imprimer un document, ...).

Si je vous explique tout ça qui, j'en conviens parfaitement, peut vous paraître tout à fait "primaire" voire, acquis, c’est tout simplement parce que, pour les infographistes, il est absolument essentiel de connaître, non pas la langue de l'ordinateur (ça, c’est le boulot des programmeurs), mais la forme et la nature des informations que les ordinateurs traitent.

L'information couleur

modifier

Nous avons vu que, outre leur facteur hautement subjectif, les couleurs étaient, nécessairement et, biologiquement, issues, soit d'une synthèse additive, soit d'une synthèse soustractive des ondes électromagnétiques de la lumière. Donc, les ordinateurs voulant produire et/ou, traiter, des infographies devront, tout naturellement, procéder de la même manière ! Nous savons également que s'ils doivent traiter/produire de la lumière, ils utiliseront des procédés impliquant la synthèse additive et qu’à l'inverse, s'ils doivent traiter/produire de la matière (typiquement, des pigments), la synthèse inverse, donc, soustractive.

Alors, je ne l'ai évoqué que brièvement mais, pour la synthèse additive, nos yeux étant munis de cônes sensibles aux rouges, verts, et bleus, nous utiliseront des nuances (en intensité lumineuse donc) de ces 3 teintes primaires pour composer UNE couleur (finale). Et donc, inversement, les 3 couleurs complémentaires lors de synthèses soustractives, à savoir : le cyan (bleu/vert), le magenta (rouge/bleu) et le jaune (rouge/vert).

De manière innée l’on comprend parfaitement que, sans couleur, il fait noir et que les pages ou les toiles des peintres sont, par défaut, blanches. Pour ces dernières, c’est donc en les assombrissant avec des pigments que l’on obtient des couleurs et que, plus on mélange ces différents pigments, plus on assombris la couleur perçu et ce, jusqu'au noir complet. Et inversement, avec les lumières, plus l'intensité lumineuse d'une onde monochromatique est grande, plus l’on percevra la couleur et ce, jusqu'à saturation complète de toute la bande spectrale de la lumière visible, auquel cas, on ne distinguera plus que du blanc.

Nous voyons donc déjà émerger 2 systèmes chromatiques différents utilisables pour produire et manipuler des infographies :

  • le système RVB (dit aussi "RGB" en anglais car "vert" se dit "Green")
  • le système CMJ (ou "CMY" en anglais car "jaune" se dit "Yellow")

Sauf que, concernant le mélange physique de matières (peinture, imprimerie via des pigments, ...), le mélange de toutes les couleurs secondaires ne donnera pas du noir pur mais du noir "caca boudin". Or, il se trouve que l’on dispose de matières, peintures, pigments, ... d'un noir bien plus "profond" que le mélange des couleurs primaires qu'on peut obtenir. On ajoute donc ce noir au système "CMJ" le noir, devenant ainsi :

  • CMJN ou, en anglais, CMYK (le "k" étant la dernière lettre de "black" - ou la première de "key", signifiant "clé")

On parlera alors de "trichromie" pour le système "RVB/RGB" et de quadrichromie' pour le système "CMJN/CMYK". Étant entendu que la quadrichromie sera la plus utilisée en imprimerie (puisque, manipulant de la matière, des pigments de couleurs) tandis que l'autre sera dédié aux traitements lumineux, c'est-à-dire, principalement aux dispositifs d'affichage graphique, donc, aux écrans et autres projecteurs d'images.

Cependant, il est à noter qu'en imprimerie (et même en peinture), et même pour les traitements, d'autres systèmes existent. Par exemple, des systèmes normalisés de catalogage de pigmentations standardisées, ou alors des systèmes complexes servant à une corrélation plus juste avec la physique de la lumière, du spectre électromagnétique perçu, ...

En somme, et si vous avez bien suivi, en infographie, chaque couleur sera en réalité un triplet ou un quadruplet de valeurs correspondant chacune à l'intensité d'une teinte (primaire ou secondaire, qu'importe).

Le binaire

modifier

Alors, revenons-en à l'ordinateur qui n'arrive à comprendre que des "1" et des "0". Alors, la vraie question est : "Que peut-on faire avec seulement des 1 et des 0 ???"
​ Eh bien en fait : absolument tout et n’importe quoi (on peut même en voir des exemples au quotidien !).
​ Comme vous avez toujours en tête que l'information est subjective, alors vous savez que l’on peut décrire à peut près tout avec des suites binaires, du moment que le récepteur sait comment interpréter ces symboles, ces suites de symboles, ces suites de "1" et de "0", ces suites de "bits".

Par exemple, à l'aide de tables, l'ordinateur pourrait savoir à quoi correspondrait la suite "11101", disons ici, juste pour l'exemple, que ça pourrait correspondre à la lettre "G" de la "table des caractères alphabétiques". La notion de "tables" est donc importante pour les ordinateurs, et ils en font un grand usage.

Étant donné que leur cœur sert à analyser des données, il est basé principalement sur la logique (Oui, Non, Si, ET, OU, OU PAS, ...). Mais la question est de savoir quels sont les types de données qu’il peut traiter. Eh bien c’est simple : des nombres. Mais des nombres de nature "binaire", forcément, puisqu’ils ne fonctionnent que comme ça. Donc, la question est de savoir comment on fait des nombres avec du binaire !!!

Alors déjà, il faut noter que, pour des raisons techniques, en informatique, beaucoup de choses sont basés sur le "2", c'est-à-dire, que ce sont des multiples de 2. Donc, on y retrouvera souvent les mêmes nombres, les mêmes limites, ... Ces nombres étant particulièrement récurrents, il important de les assimiler rapidement au fil de son expérience. Mais on peut déjà citer quelques séries telles que :

  • 2, 4, 8, 16, 32, 64, 128, 256
  • 512, 1024, 2048, 4096
  • 32'536, 16'777'216

Revenons en à la question initiale : comment obtenir des nombres avec des suites de bits, de 1 et 0 ?
​ Eh bien, exactement de la même manière qu'on le fait avec des suites de chiffres allant de 0 à 9 au lieu de seulement 0 à 1. C'est-à-dire, en les mettant à la suite les uns des autres suivant les mêmes règles de numération, à savoir : lorsqu'on atteint la chiffre maximal (ici, le "1"), on revient à 0 et on incrémente de 1 l'unité supérieur (les dizaines). Voila comment on fait :

  Bits (en binaire)
 <=====  |  Correspondance en 
D C B A  |  numération décimale :
      0  |    0
      1  |    1
    1 0  |    2
    1 1  |    3
  1 0 0  |    4
  1 0 1  |    5
  1 1 0  |    6
  1 1 1  |    7
1 0 0 0  |    8
1 0 0 1  |    9
1 0 1 0  |  1 0
1 0 1 1  |  1 1
1 1 0 0  |  1 2
1 1 0 1  |  1 3
1 1 1 0  |  1 4
1 1 1 1  |  1 5
  ...    |  ...

On peut donc déjà constater que, avec une série de 4 bits, on peut obtenir, non pas 15, mais 16 nombres différents. Eh oui, il y a 2 choses extrêmement importantes à retenir :

  • Nous travaillons avec des nombres entiers, et non avec des nombres réels à virgule
  • Mais la numération débute donc toujours à 0 ce qui ajoute donc bien "une unité"
  • Les nombres entiers qui sont impaires ne peuvent jamais être divisés en deux : il restera toujours "1 unité" au milieu
  • Et, inversement, les nombres paires n'ont pas d'unité de milieu (c'est important à savoir lorsqu'on essaie de centrer quelque chose !!!)

Par exemple, prenez un groupe de 5 pommes. Vous ne pouvez pas les diviser en 2 groupes parfait : il y aura toujours une pomme qui restera au milieu.
​ En revanche, si vous cherchez l'unité qui sera au milieu d'un groupe de 6 pommes, eh bien il n'y en a pas.
​ Et lorsque vous avez 7 pommes, sachez que le numéro de la dernière n’est pas "7" mais "6" car le numéro de la première, lui, est bien le "0", et non le "1".

Alors, en infographie, on a regrouper les suites de bits par paquets de 8 bits. On appelle ça : un octet, ou, en anglais, un byte (à ne pas confondre, donc, avec les "bits" : ça ne se prononce pas de la même manière).
​ L'octet est donc devenue l'unité de base de l'information (quantité pertinente) en informatique.
​ Ceci représente donc, en numération décimale, une plage de nombres allant de 0 à 255, donc, possédant 256 nombres différents. Et ceci est sans doute la chose la plus importante à apprendre et à retenir de ce chapitre !!!

Mais, pour mieux se représenter ces octets, on pourrait les couper en 2, à savoir : 2 groupes de 4 bits représentant chacun 16 valeurs différentes.
​ Mais on pourrait aussi voir le nombre décimale que représente chaque "bizaine" (dizaines en binaire) :

 1   1   1   1  | 1   1  1  1 <= Binaire
256 128  64  32 | 16  8  4  2 <= Décimal

Ceci étant dit, sachez qu’il existe également un autre système de numération très répandu : l'hexadécimal qui, lui, au lieu de n'utiliser que 10 digits pour la numération, en utilise 16 !!!
​ Mais alors, comment fait-il puisqu’il n'existe pas 16 chiffres !??? Eh bien, tout bonnement, après le chiffre 9, il utilise les lettres de l'alphabet latin, à savoir :

0, 1 ... 8, 9,  A, B, C, D, E, F

Ce qui nous donne donc, lorsqu'on compte :

Hexadécimal  |  Décimal  |   Binaire
         0   |        0  |  0000'   0
         1   |        1  |  0000'   1
         2   |        2  |  0000'  10
         3   |        3  |  0000'  11
         4   |        4  |  0000' 100
         5   |        5  |  0000' 101
         6   |        6  |  0000' 110
         7   |        7  |  0000' 111
         8   |        8  |      '1000
         9   |        9  |      '1001
         A   |       10  |      '1010
         B   |       11  |      '1011
         C   |       12  |      '1100
         D   |       13  |      '1101
         E   |       14  |      '1110
         F   |       15  |     0'1111
        10   |       16  |     1'0001
        11   |       17  |     1'0010
        12   |       18  |     1'0011
        13   |       19  |     1'0100
       ...   |      ...  |     ...
        7F   |      127  |  0111'1111
        80   |      128  |  1000'0000
       ...   |      ...  |     ...
        FF   |      255  |  1111'1111
                                 WXYZ

Vous remarquerez que sur la colonne binaire Z (la 1ère - regardez en base de la liste), les nombres s'alternent à chaque fois. Sur la colonne Y, ils alternent tous les 2 nombres. Sur X, c’est tous les 4, et sur W c’est tous les 9 nombres qu’ils alternent, ... Donc, si l’on a bien apprit ses suites (cf. plus haut) et que l’on suit ce même schéma (2, 4, 8, 16, 32, 64, 128, 256), on peut en déduire que le 8e bit (le dernier, celui du poids le plus fort), n'alternera qu'une seul fois dans la plage allant de 0 à 255 !

Ensuite, vous remarquerez que 1 octet peut s'écrire :

  • soit sous la forme de 8 bits,
  • soit sous la forme d'un nombre décimale allant de 0 à 255 (soit, de 3 digits)'
  • soit sous la forme d'un nombre hexadécimal de seulement 2 digits (généralement précédé d'une mention faisant référence à cette numération si proche de la numération décimale, telle que, par exemple "Hx..", ou "0h.." voire "0x..").

Une autre chose remarquable avec l'octet est qu’il est paire et que, par conséquent, il ne possède pas de milieu propre mais peut être divisé en 2 groupes entiers. Ceci est important à retenir à l'usage en infographie...

Les données

modifier

Donc, comme nous venons de le voir, les informations sont des nombres. Donc, les données que les ordinateurs traitent seront aussi des nombres. Par conséquent, les ordinateurs, en plus de pouvoir traiter et comparer tous ces nombres via de la logique élémentaire, savent aussi procéder à des calculs sur ces nombres. En fait, on peut dire sans trop de mal que le cœur des ordinateurs n'est rien d’autre qu'une grosse calculatrice automatique ! Et c’est tout à fait ça, enfin... en un peu plus complexe quand même, je vous l'accorde.

Mais alors, comment fait-on pour transformer des données qui ne sont pas des nombres en données qui sont des nombres. Eh bien, la réponse va peut-être en surprendre certains mais : on les "numérisent", tout simplement ! Et ça, ça se fait, soit avec des machines dédiées à ça (le faisant uniquement dans leur cadre d'expertise propre, donc, pour des activités auxquelles elles sont dédiées entièrement - nous donnerons des exemples par la suite), soit, sur un plan plus théorique, en créant des tables de correspondance. Et c'est, par exemple, le cas des caractères d'écriture à travers l’w:ASCII ASCII.

J'évoque la table des caractères ASCII (qui est une vieille table primitive) car elle peut comporter, justement, que 256 caractères. Autrement dit, chaque caractère n'est codé que sur 1 seul octet. Dit encore autrement, à chaque octet correspond un caractère. Enfin, pas exactement puisque les 32 premiers caractères ne possèdent pas de glyphe associé car ils ont une fonction spéciale hérité des machines à écrire mécaniques, mais c’est encore une autre histoire...

Les lettres, mots et phrases

modifier

Donc, la première chose que l’on a vu c’est que, en juxtaposant des suites de bits, de 1 et de 0, on peut obtenir des nombres (qui ont donc une correspondance avec les nombres décimaux du système décimal ou du système hexadécimal). Ces nombres représentent donc l'unité sémantique de base de l'informatique, c'est-à-dire, une unité permettant décemment de pouvoir lui attribuer un sens, une signification un minimum intéressante linguistiquement.

Vous avez remarqué qu'ici nous faisons explicitement référence au domaine de la linguistique en utilisant certain de ses termes. Sachez que cette utilisation n’est pas d'ordre pédagogique mais bel et bien logique car, en réalité, nous utilisons bien ici des unités informatives, dites "sémantiques", qui constituent bien les fondements de la linguistique. Ceci n'est donc pas une simple analogie, mais quelque chose de bien plus fondamental, propre au domaine de l'information dans son sens le plus abstrait !

Donc, la première chose que l’on a fait est de regrouper ces bits par paquets de 8 formant ainsi des octets - des bytes en anglais. Ces octets, qui peuvent donc prendre 256 formes différentes, doivent en fait être considérés comme étant des lettres, un alphabet de 256 lettres différentes. Donc, on pourrait comparer les bits aux traits permettant dessiner ces glyphes (ces lettres, ces symboles graphiques). Sauf que là, bien entendu, ces glyphes ne sont pas fait d'encre mais de signaux électriques, électroniques, à cause des technologies employés. Mais dans le fond, ça ne change pas la nature de ce qu’ils sont pour nous d'un point de vu conceptuel, abstrait.

Sauf que l’on remarque que, contrairement aux alphabets humains, toutes ces lettres sont constituées du même nombre d'éléments, de "traits", de bits. Ceci est dû à certaines contraintes induites par des choix techniques historiques...

Bon, alors, nous savons que, en soit, les lettres ont chacune une certaine valeur sémantique, certes, mais que, en soit, cette valeur n’est pas suffisante pour constituer un langage descriptif, c'est-à-dire, n'ayant pas intrinsèquement une valeur sémantique suffisamment variée pour pouvoir être réellement utile, exploitable, suffisante pour décrire des données complexes.

Donc, tout naturellement, l’idée a été de former des mots en juxtaposant ces lettres, ces octets, ces bytes. Donc, en informatique, 1 mot est la juxtaposition de 2 octets. Le terme "mot" se dit "word" en anglais et est, dans la documentation technique, souvent résumé à sa plus simple expression, à savoir : "w".

Sauf que, vous vous l'imaginez bien, ces mots n'ont pas suffi pour décrire certaines données. On en a donc créé de plus long. Or, comme nous l'avons déjà évoqué, en informatique, on utilise presque toujours des multiples de 2 (pour un aspect pratique induit par l’utilisation des bits, du binaire...).

Donc, au lieu de coller entre eux 3 octets, on passe du couple "2 octets = 1 mot" au couple "4 octets = 1 double-mot". En anglais, on parle donc de "double word", ou, de "dword" et parfois, simplement de "dw" voire, de "d" pour y faire référence. Notez que 4 octets correspondent à des mots d'une longueur de : 8 bits x 4 = 32 bits.

Et, comme ça n'a pas encore suffit, on a également créé des quadruples mots constitués de 8 octets juxtaposés (ou, de 2 dw, selon comment on voit les choses...). En anglais on parle alors de "qword", "qw", "q". Ils font donc : 8 bits x 8 = 64 bits.

Vous constatez donc que, du fait de l’utilisation des multiples de 2, nous retrouvons bien des valeurs appartenant à la liste des valeurs récurrentes en informatique que nous avons évoqué précédemment...

Cependant, notez qu'en informatique, au sens strict, un mot a une longueur définie arbitrairement (enfin, selon certaines contraintes techniques) et on parle de leur taille, de leur nombre de "digits" pour les définir. Mais ici, il s'agit de vous montrer l'usage le plus fréquent fait de ces termes : c’est donc de l'informatique empirique dont il s'agit !

Donc, voyons combien de valeurs (entières) différentes peuvent prendre ces mots de tailles différentes :

- 1 trait, soit, 1 bit : 2 combinaisons possibles = "0" ou "1"
- 1 lettre, faite nécessairement avec 8 traits, donc, de 8 bits : 256 combinaisons possibles allant de 0 à 255 = 1 octet/byte
- 1 mot de 2 lettres, soit, 16 bits : 2^16 = 65'536 combinaisons possibles allant de 0 à 65'535 = 2 octets/bytes = 1 word/w
- 1 double-mot de 4 lettres, soit 32 bits : 2^32 = 4'294'967'296 combinaisons possibles = 4 octets/bytes = 1 dword/dw/d
- 1 quadruple mot de 8 lettres, soit 64 bits : 2^64 = 18'446'744'073'709'551'616 combinaisons possibles = 8 octets/bytes = 1 qword/qw/q

Ne vous laissez pas impressionner par la taille de ces nombres... Imaginez plutôt ça comme un "potentiel". Par exemple, si vous avez 1 mètre-carré pour travailler, vous y ferez nécessairement moins de chose qu'avec 100 m2 ! Ici, c’est pareil : à chaque taille correspond une utilisation particulière.

En gros, ce qu’il faut retenir c’est :

0/1 = bit = trait
1  octet/byte =  8 bits = lettre = "1111'1111"
2 octets/byte = 16 bits = word  =  w
4 octets/byte = 32 bits = dword = dw
8 octets/byte = 64 bits = qword = qw

Quant au concept de phrases, eh bien, je pense que vous savez déjà qu’il ne s'agit que de juxtaposition de plusieurs mots, mais ordonnées selon une grammaire. Eh bien ici, c’est pareil qu'en français sauf qu’il n'y a pas d'espace entre les mots et que cette grammaire n’est pas techniquement normée, standardisée et dépend donc du contexte et de ce que l’on veut exprimer.
En d’autre termes, en informatique, il existe bien plus de dialectes différents que de langues humaines, vivantes ET mortes réunies !!!

Astuces

modifier
  Section facultative pouvant être sautée en première lecture !

Alors, sachez déjà qu'en informatique nous ne représentons jamais les bits. C'est-à-dire que les bits n'ont pas de représentation car ce n’est pas réellement utile. Donc, on utilise plutôt directement les octets qui, eux, ont une réelle valeur sémantique. Par conséquent, il y a plusieurs façons de vous représenter, de manière très concrète, les octets/bytes :

Première méthode

modifier

La seconde méthode pour visualiser les octets/bytes, en informatique de façon générale, repose sur la corrélation historique qu’il existe entre les octets et les caractères d'écriture. En effet, il faut savoir que l'informatique a, historiquement, hérité, emprunté, voire même, totalement assimilé et approfondi certains concepts et technologies. Et elle a, entre autres, beaucoup pioché dans la linguistique et l'imprimerie, à travers, entre autres, l'utilisation, à ses balbutiements, de leurs normes. Les machines à écrire (électriques) ont, par exemple, jouées un grand rôle. En effet, au début, les écrans n'étaient pas réellement accessibles et il les ordinateurs s'exprimaient souvent à travers ces machines à écrire électriques pour fournir leurs résultats.

Donc, ce que les développeurs ont fait au début c’est de créer une table de correspondance entre les caractères et les octets. Donc, à chaque caractère correspondait un octet (et vice et versa). Et tous les systèmes actuels d'écriture en informatique ont hérités de ce principe de correspondance entre des octets (enfin, de nos jours, des mots ou des dwords) et des glyphes à reproduire (dessiner sur l'écran ou sur l'imprimante) et ce, toujours à travers des tables de correspondance donc (sauf que, de nos jours, elles sont immenses et complexes).

Or, l'une des premières est la table ASCII dont nous avons brièvement évoqué l’existence précédemment. Et cette table est toujours présente, à un niveau bas, dans nos ordinateurs contemporains et ses codes sont toujours utilisés de nos jours. Cette table, extrêmement primitive (mais suffisante pour l'époque) est codée utilise un codage sur 1 octet/byte. Donc, cette table ne possède que 256 caractères (i.e., suffisamment pour représenter toutes les lettres et symboles de l'alphabet latin, mais pas suffisamment pour écrire avec en plusieurs langues...).
Or, comme nous l'avons déjà brièvement évoqué, cette table est directement héritée du fonctionnement des machines à écrire et qu'elle comporte donc des codes fonctionnels. C'est-à-dire que les 32 premiers codes (de 0 à 31) ne correspondent pas à des glyphes (des lettres) à reproduire, mais à des fonctions à exécuter, comme, par exemple, le fameux "retour chariot" typique de ces machines. Outre le retour chariot (renvoi en début de ligne), on peut également citer le "saut de ligne" (ligne suivante), la tabulation (espace en début de ligne), correction d'un caractère, ... C'est-à-dire, des fonction ayant été conçus selon les contraintes de ces machines à écrire - d'un autre temps - et non selon les contraintes de nos ordinateurs actuels sur lesquels elles sont pourtant toujours présente à travers la table des caractères ASCII.

Bref, tout ça pour dire que, à part pour ces 32 fonctions n'ayant pas de représentation graphique, chaque octet peut être représenté par un caractère (sauf les 32 premiers octets donc, ce qui est plutôt gênant !). Donc, on peut visualiser les octets à partir d'un simple éditeur de texte primitif - ce qui est faisable mais pas vraiment conseillé. En somme, une façon simple de se représenter ce qu'est, concrètement, un octet (constitué de 8 bits), c’est de se l'imaginer comme étant une lettre d'un texte. Et d'ailleurs, au-delà même de la table des caractères ASCII, les caractères que vous lisez tous les jours, sur internet par exemple, sont encore souvent, simplement codés sur 1 seul octet ! Donc, oui, on peut dire que 1 octet = 1 caractère et ce, même si ce n’est pas nécessairement vrai actuellement, ça vous permet de faire certaines corrélations comme, par exemple, vous représenter ce que représenterait, sous forme de texte, une quantité d'informations donnée.

Par exemple, si je vous dis qu'une image fait 300 kilo-octets, ça veut dire qu'on pourrait considérer son poids comme représentant un texte constitué de 300'000 caractères. C'est-à-dire, en fin de compte, un texte assez petit, bien loin de la taille d'un roman (puisqu’il s'agit bien là de caractères, donc, de "lettres", et non de "mots" !).

Notez également que, tout comme en informatique, en infographie également de nombreux concepts, normes, vocable et technologies (...) sont issues, naturellement, de l'univers de l'imprimerie.

Seconde méthode

modifier

La seconde, qui est préférée par les développeurs, les programmeurs, ET, les infographiste, c’est de les représenter sous leur forme hexadécimale (nombres en base 16). Par exemple, à l'aide d'éditeurs hexadécimaux qui font parfaitement ce travail de transcription à notre place. Dans le cas d'une représentation hexadécimale, il est important de comprendre que chaque octet/byte est codé sur 2 digits, c'est-à-dire, via un couple de 2 symboles, digits, chiffres hexadécimaux. Or, comme l’on sait que ces digits, ces chiffres, vont de 0 à 9 puis de A à F, il est assez aisée de savoir si ce qu'on lit est, ou non, une valeur exprimée, codée, en hexadécimal, ou alors du pur chinois qui n'a pas de sens pour nous ! D'autant si cette valeur est précédée d'une mention explicite du genre "0x", "Hx" (ou autres variantes de ce type).

En effet, lorsqu'on tombe sur des valeurs ayant des chiffres décimaux (0..9) ET des lettres alphabétiques latines (a,b,c,..., mais, généralement, plutôt en majuscule), si ces lettres ne dépassent jamais la lettre F, donc, qu’il n'y a pas de "G", de "X", de "N", ... alors il doit certainement s'agir d'un nombre codé, exprimé en hexadécimal. En outre, s'ils sont appariés, c'est-à-dire, regroupés par paires (de 2 digits), alors, il s'agit d'octets/bytes codés, représentés, en hexadécimal.

Ceci induit que l’on peut déterminer la taille des mots qui sont utilisés. Deux digits correspondant à 1 octet, et, 1 "word" correspondant à 2 octets, 4 digits hexadécimaux correspondront donc à 1 word !

Exemples :
FF = 1 octet/byte
FF FF = 2 octets/bytes = 1 word
FFFF FFFF = 4 octets/bytes = 1 dword
FFFF'FFFF FFFF'FFFF = 8 octets = 1 qword

Donc, la correspondance est assez simple à faire et nous donne un ordre d'idée de la potentialité sémantique à laquelle on a à faire.

Par contre, faire la correspondance entre ces octets codés sous leur forme hexadécimale et leur valeurs numérique en base décimale (en base 10, de 0 à 9) est une chose beaucoup moins aisée ! Cependant, le fait qu’ils soient sous la forme de 2 digits aide. Le truc à garder en tête, bien sûr, c’est que, vu qu’il s'agit de nombres entiers, et que leur nombre est paire (256), il n'y a pas de milieu. Donc, on peut les diviser en 2 groupes entiers. Or, comme on sait que la moitié de 16, c’est 8, donc, on peut en déduire que le premier groupe va de 0 à 7 et que l'autre va de 8 à F.

En d’autre terme, on sait que "00" correspondra à 0 (naturellement). Que "FF" correspondra au maximum, donc, à 255 (puisque l’on sait que la valeur que peuvent prendre les octets va de 0 à 255).
Et comme le premier groupe va de 0 à 7, et que F est le digit le plus élevé, on comprend parfaitement (enfin, avec un peu d'entrainement tout de même, je ne vous en veux pas si vous ne saisissez pas immédiatement ce concept) que la valeur hexadécimal "7F" correspond à la fin de la première moitié, c'est-à-dire, à "127" en décimal, et que, "80" est la 1ère valeur de la seconde moitié allant de "128" à "255".

Dit encore autrement, en utilisant les valeurs extrêmes et en connaissant les deux moitiés (donc, soit 7, soit 8), on peut se servir des nombres hexadécimaux comme d'une échelle crantée, sans devoir nécessairement faire la correspondance en décimal : ce qui est bien pratique pour tout dire !

Exemples :

  • Le nombre hexa "82" est proche de "80" qui est la moitié. Donc, s'il n'a pas une importance capitale, autant le rabaisser à "80" !
  • Le nombre hexa "39" fait partie de la moitié inférieure. On peut donc déjà arrondir son unité à son maximum pour mieux comprendre, donc, à "F". Ce qui nous donnerais déjà "3F" au lieu de "39". Mais la "dizaine hexadécimale" est à 3. Or, 3 est la moitié inférieure de 7 : 0-1-2-3 ; 4-5-6-7. On sait donc qu'on se trouve à 1/4 sur l'échelle 0-256, soit, à 63.

Or, savoir c'est plus important que de savoir exactement à quoi correspond ce nombre hexadécimal en nombre décimal ! Mais bon, comme on sait qu'on est au quart, il suffit de diviser deux fois en deux 256 via la liste des valeurs récurrentes que l’on connaît par cœur, à savoir : 256 - 128 - 64.

Il faut donc connaître les rudiments des valeurs clé :

Valeurs récurrentes    :  2, 4, 8, 16, 32, 64, 128, 256
Valeurs récurrentes -1 :  1, 3, 7, 15, 31, 63, 127, 255
Une octet/byte = 256, soit, de 0 à 255, soit, de "00" à "FF"
 Moitié inférieure :
   0  à    7  |  00 à 07  |  moitié d'unité hexa : 0-7 8-F
   8  à   15  |  08 à 0F
  16  à   31  |  10 à 1F  |  Soit une tranche de 16 - "x0-xF" -   unités hexa. = 16
  32  à   63  |  20 à 3F  |  Soit une tranche de 32 - "2x-3x" - dizaines hexa. = 32
  64  à   95  |  40 à 5F  |  Soit une tranche de 32
  96  à  127  |  60 - 7F  |  - idem -

On peut donc déjà constater quelques règles utiles :

  • Quand un nombre hexa se termine par "F" c’est qu’il est multiple de 16
  • Les dizaines hexa correspondent à des sauts de 32
  • Pour connaître les demies, les quarts et les huitièmes (1/2 ; 1/4 ; 1/8), il suffit de cumuler !

Je vous épargne la table de la deuxième moitié, mais voici les correspondances hexa les plus utiles à connaître :

"0F" = 15  |  "10" = 16    :           1/16
"1F" = 31  |  "20" = 32    :       1/8
"3F" = 63  |  "40" = 64    :  1/4  2/8
"5F" = 95  |  "60" = 96    :       3/8
"5F" = 127 |  "80" = 128   :  1/2  4/8
"9F" = 159 |  "A0" = 160   :       5/8
"BF" = 191 |  "C0" = 192   :  3/4  6/8
"DF" = 223 |  "E0" = 224   :       7/8
      "FF" = 255"          :  2/2  8/8

Donc, en résumé :
- "x0" : 1, 2, 4, 6, 8, A, C, E  pour les valeurs paires de début
- "xF" : 0, 1, 3, 5, 9, B, D, F  pour les valeurs impaires de fin

Voilà, vous voyez l'importance de la parité.

Et il est à noter que, de manière générale, en infographie, le respect de la parité (et de sa bonne interprétation) est essentiel, permettant ainsi de mieux maitriser son travail. D'où, donc, l'importance de la maîtrise des crans de cette échelle sur 256 : croyez-moi sur parole, le respect de ces crans soulagera grandement toutes vos interventions !

Les types de données

modifier

Alors, maintenant que nous avons vu plus en détail ce qu'était les bits, les octets, les mots, doubles-mots, etc., nous allons nous pencher brièvement sur les significations qu'on peut leur donner.

Nous avons déjà vu qu’il y a 2 manières de donner un sens à ces informations :

  • les considérer comme ayant une valeur numérique,
  • ou les considérer comme étant des références numériques liées à une table, c'est-à-dire, le numéro d'une case, d'une ligne, d'une cellule qui, elle, contient la véritable information, de quelque nature soit-elle (caractère d'imprimerie, actions à effectuer - i.e. instructions, une couleur peut-être également, ou tout autre chose encore, qu'importe).

Nous allons ici nous attarder davantage que ce que nous l'avons déjà fait sur les différents types de valeurs numériques que ces octets, mots, dword, etc. peuvent revêtir.

Pour le moment, nous avons considéré les octets, représentant possiblement 256 combinaisons différentes, comme des "nombres entiers positifs" débutant à 0. Mais rien ne nous empêche de les interpréter, les considérer, différemment, c'est-à-dire, en leur donnant une autre valeur. La première idée venant en tête étant, évidemment, de faire débuter leur numération non pas à partir de 0, mais à partir de "1" afin de les transformer en simples "entiers naturels".

Nombres entiers relatifs

modifier

Mais tout le problème qui s'est initialement posé aux informaticiens était de savoir, en utilisant des octets, des mots, etc., comment obtenir des nombres d'une autre nature que les trop simples "entiers". Comme, par exemple, des "entiers relatifs", c'est-à-dire, pouvant être négatifs. Ou encore, comment obtenir des "nombres réels", donc, pouvant être fractionnés avec une partie entière, une virgule puis une partie décimale, etc. Eh bien, c’est ce que nous allons rapidement voir tout de suite.

La première question est donc de savoir comment transformer un octet, entier, en valeur "relative", donc, en "entier relatif". Eh bien, tout simplement, en le "relativisant" !!! C'est-à-dire, en le considérant de manière légèrement différente.
La solution est simple : puisqu'avec un octet nous disposons de 256 nombres différents, au lieu de débuter la numération à 0 (ou à 1), nous avons qu’à couper ce nombre de combinaisons en 2 et faire ainsi débuter la numération dans le négatif ! Sauf qu’il faut se rappeler que les octets sont des nombres pairs, et donc, ne possédant pas de nombre "milieu". Autrement dit, il va se poser le problème de la place que doit avoir le 0. Donc, voici les 2 modèles possibles :

1111'1111 = 256 combinaisons
0 à 255 : octet classique, considéré "normalement" en nombre entier
1 à 256 : octet atypique considéré en nombre naturel
Considéré en "nombres entiers relatifs" :
de -127 à  0 puis, de 1 à +128 : (-127 à +128), considération classique des nombres relatifs
de -128 à -1 puis, de 0 à +127 : (-128 à +127), extrêmement atypique !!! (pour des raisons techniques et normatives)

Donc, lorsqu'on travaille en nombres relatifs, et même si la règle du début à -127 est, pour des raisons techniques, très largement acquise, il peut toujours perdurer une ambiguïté qui nécessitera préalablement de tester le bornage des valeurs extrêmes du système : si -128 n’est pas accepté, alors nous savons à quoi nous en tenir concernant l'emplacement du "0".

Afin de mieux comprendre, faisons le même exercice mais cette fois, au lieu d’utiliser les 256 combinaisons de l'octet, prenons le nombre paire de "8" combinaisons :

Soit un nombre paire de cases, divisées en 2 groupes de 4 unités, donc, pas de case au milieu, pas de "milieu absolu" !
[0] [1] [2] [3]  [4] [5] [6] [7]  =  8 combinaisons, de 0 à 7
négatifs      0 | 0     positifs
[3] [2] [1]  [0]  [1] [2] [3] [4]  =  8 combinaisons, de -3 à +4
[4] [3] [2] [1]  [0]  [1] [2] [3]  =  8 combinaisons, de -4 à +3

Ceci n'étant vrai, évidemment, qu'avec un nombre paire or, les octets, ne sont pas impaire : CQFD !

Pour information, dans les ordinateurs, ceci se traduit par une interprétation différente du bit de poids fort ("1111'111") qui, s'il est à 0 (donc, les 128 premiers jusqu'à "0111'1111"), signifie que le nombre est négatif, sinon, positif en débutant à 1 : 0xxx'xxxx = négatif, -127 à -1 ; 1xxx'xxxx = positif, 0 à +128.
Vous avez donc bien conscience qu’il y a 1 nombre négatif en moins que les nombres positifs ET qu’il y a bien toujours le nombre "0" !
Ceci n’est pas absolument vital mais quand même important à prendre en considération lors d'éventuels calculs...

Gardez en tête que je ne vous présente ici que les cas les plus courants car, de fait, il existe beaucoup d'autres méthodes d'interprétations possibles des octets, mots, dwords (etc.) ET, pleinement effectives en informatique... Juste pour vous en donner un petit aperçu, sachez, par exemple que certains considèrent que le ce bit de poids fort correspond au signe et que, par conséquent, l'échelle devient impaire allant de -127 à +127, l'équilibrant ainsi mais en perdant 1 possibilité tout de même, et donc, par la même, en réduisant de "1" la pleine valeur sémantique de l'octet (le "0" étant représenté 2 fois) même si, en soit, ce n’est pas une grosse perte (notez qu'on utilise quasiment plus cette méthode de nos jours) !
Bien que cela n'ai pas vraiment d'importance pour les infographistes, sachez qu'en réalité, les bits des octets des nombres négatifs sont tous basculés (de "0" à "1" et inversement) et ceci, afin de faciliter les opérations arithmétiques en améliorant les vitesses des calculs...

Notez également que cette technique est également utilisable avec les mots, dword, ... Par exemple, avec 2 octets on a 65'536 combinaisons, donc, soit de 0 à 65'535, soit de -32'767 à +32'768.

Nombres réels

modifier

Alors, maintenant, nous voulons aller plus loin encore et utiliser des "nombres réels". Alors, déjà, là, on voit tout de suite que l'octet ne suffira pas pour un usage courant et que, par conséquent, nous allons être obligé d’utiliser des mots, voire plus (double-mots, qword, ...), donc, plusieurs octets.
La, beaucoup de méthodes différentes sont possibles, mais on en distingue 2 grandes principales...

La première consiste à utiliser des "nombres à virgule fixe", c'est-à-dire, possédant tous le même nombre de chiffres après la virgule - et donc un nombre de chiffres également fixe avant la virgule !!! On parle aussi de "précision" pour qualifier le nombre de ces décimales suivant le nombre d'octets employés. Par exemple, on parlera de nombres (sans préciser qu’il s'agit bien de nombres "réels", puisque c’est induit !) à "simple précision" ou à "double précision", ou, tout bonnement, de "simples" et de "doubles".

En gros, et pour faire court, les bits du groupe d'octets (mot, dword, ...) sont divisés arbitrairement en 2 parties :

  • le premier groupe est considéré comme des entiers relatifs
  • le second groupe comme représentant les décimales.

Ca n'a pas vraiment d'importance pour nous, mais sachez que chaque bit de décimale correspond à l'inverse d'une puissance de 2, c'est-à-dire, à une fraction (½ pour le 1er bit, ¼ pour le second, ...)... Et parfois même, il n'existe tout simplement pas de partie entière, le nombre étant ainsi considéré comme strictement inférieur à 1 - ceci permettant donc d'obtenir plus de décimales avec le même nombre d'octets !

En infographie, les réels à précision fixe, à "virgule fixe", sont principalement utilisés pour leur facilité et leur vitesse de calcul par les ordinateurs et donc, on les trouvera plus souvent sous la forme de "simple précision" que de double (ou plus) car ils sont destinés à des applications se devant d’être véloces tout en ne nécessitant pas une précision "scientifique".

Par exemple, nous (ou les programmes, les logiciels) les utiliserons énormément pour définir des angles (par exemple, dans les jeux vidéo ou dans le graphisme vectoriel - nous y reviendrons...).

En revanche, parfois, et ce, même en infographie, l’utilisation de réels à virgule fixe n’est pas souhaitable du fait de l’utilisation d'équations mathématiques complexes. Dans ce cas, les nombres réels à "virgule flottante" seront utilisés. Les calculs seront donc plus lents mais leurs résultats, mieux adaptés, voire, plus précis (enfin, selon les cas). Mais là, leur format réel ne nous importe peu.

Structures

modifier

Nous avons déjà rapidement évoqué les phrases, les tables et les caractères (ces 2 derniers étant des types de données). Il faut bien comprendre qu'en informatique, la signification des phrases, qui ne sont donc rien d’autre que des suites d'octets, est déterminée par celui qui les écrit, c'est-à-dire, par les programmeurs eux-mêmes (certaines grammaires étant, heureusement, normalisées) !

Les structures de données ne sont donc rien de plus que des amas d'octets ayant une signification liée à leur contexte et définies par les programmeurs. Par exemple, pour décrire une voiture, les programmeurs peuvent parfaitement décider une structure comme celle-ci :

- 1 dword (4 premiers octets) :  Suite de caractères ASCII de la marque de la voiture. Exemple : "ABCD"
- 1 word (2 bytes) : entier naturel de la largeur en centimètres. Exemple : 48'000 cm (ça fait beaucoup pour une voiture ;-)
- 1 word (2 bytes) : entier naturel de la hauteur...
-  'idem pour la largeur
- 1 dword (4 bytes) : réel à virgule flottante double précision définissant le prix de la voiture. Exemple : 48'000,256897 diamants
Donc, la structure finale sera une phrase formatée ainsi :
MARK-XX-YY-HH-PRIX
Donc, chaque voiture sera décrite par une suite de 14 octets (soit, 112 bits) ayant chacun une signification particulière selon l'endroit de la phrase où ils seront placés.

En infographie, il est important de bien comprendre le principe, le concept, car nous devront connaître au moins quelques portions de certaines structures classiques et récurrentes.

Conclusion

modifier

Sachez donc qu’il existe une multitude de structures de type ET de nature totalement différentes et que c’est ce qui permet une telle diversité de description des données en informatique de nos jours. On peut donc presque tout décrire avec, comme seule et unique base, de bêtes "1" et "0" !!!

les fichiers

modifier

Nous allons enchaîner directement par un petit exercice...

Considérons une table de caractères :

  • Chaque caractère est constitué d'une grille de 8x8 points de côté
  • et chaque point peut être soit noir, soit blanc.

Regardons ensemble comment serait faite la structure de cette table : Alors, déjà, si chaque point ne peut prendre que 2 couleurs (noir, ou blanc), ils peuvent chacun être codés sur 1 seul bit. Et comme la grille des caractères fait exactement 8 points de largeur, c'est-à-dire, le nombre exact de bits qu’il y a dans 1 octet, il nous suffirait de 8 octets pour décrire tous les points. Et l’on sait déjà que 8 octets/bytes, on appelle ça un "qword". Donc, on aurait déjà besoin de 1 qword pour chaque caractère. Mais est-ce que cela suffirait ? Eh bien non, puisqu’il faudrait encore identifier l'appartenance de chaque qword en l'associant à un nombre, en les numérotant si vous préférez. Donc bon, disons qu'on utiliserait pour ça 1 octet, comme dans le cas du ASCII, qui nous permettrait donc d’avoir une table d'un maximum de 256 caractères. Est-ce que cela suffit-il ? Comme on ne va pas nécessairement avoir 256 caractères, mais, disons, un nombre variable selon notre envie du jour, il faudra donc spécifier le nombre de caractères contenus dans cette table. Et donc, utiliser encore 1 octet pour le spécifier. Mais cette table, elle n'est peut-être pas la seule, et donc, il va peut-être bien falloir lui donner un identifiant ! Pour ça, on va utiliser, non pas 1 octet mais 2, donc, un word. Ainsi, on pourra, au maximum, créer 65'536 tables différentes, ce qui devrait suffire à nos besoins.

Voyons déjà ce que ça pourrait donner :

La lettre A :  ( "." = 0 ; "#" = 1 )
 Glyphe     Binaire   Dec.  Hexadécimal
...##...   0001'1000 = 024 = 18
..#..#..   0010'0100 = 036 = 24           8 OCTETS/BYTES
.#....#.   0100'0010 = 066 = 42           =   1 QWORD
.#....#.   0100'0010 = 066 = 42   =>  18'24'42'42 7E'42'42'E7
.######.   0111'1110 = 126 = 7E
.#....#.   0100'0010 = 066 = 42
.#....#.   0100'0010 = 066 = 42
###..###   1110'0111 = 231 = E7

On voit donc émerger 2 structures : la première est celle de chaque ligne où chaque bit correspond à 1 couleur de 1 point : cccc'cccc Vous remarquez alors que nous faisons d'une pierre 2 coups puisque nous avons deux informations en une seule : la couleur des points ET leur position ! Le formatage des données donne donc AUSSI une information en soit.

Ensuite, on a la structure, de taille fixe, de la grille des lignes : ligne1, ligne2, ligne3 ... ligne 8 Le tout n'utilisant que 8 symboles pour l'ordinateur (mais beaucoup plus pour nous : 8x8 = 64 couleurs + 64 positions induite = 128 informations en seulement 8 symboles informatiques !!!).

Passons maintenant à la structure de la table elle-même :

Table de caractère :
- XX : 2 octets pour le numéro identifiant la table de manière unique (0 à 65'53'5).
  * Caractère n°1 :
    # 1 octet : identifiant du caractère parmi les 256 possibles
    # 1 qword : les 8 octets de sa grille
  * Caractère n°2 :
    - idem -

Donc, ici nous voyons que chaque caractère se définit par 9 octets et que la table, elle, a 1 octet supplémentaire afin de pouvoir exister.

Mais, maintenant, ce qui serait bien c’est de créer la liste de toutes les tables de caractères !
Disons donc qu’il faut déjà un nom à cette liste parce que, après tout, il peut également y en avoir plusieurs (pour les différentes langues par exemple !).
Ensuite, il serait bien, également, de donner un nom pour chaque table de la liste. Alors, disons que le nom de la liste n'est qu'un simple numéro identificateur, tout comme celui des tables elles-mêmes, donc, 2 octets. Et disons encore que le nom de chaque association avec les numéros des tables pourra prendre un nombre fixe de caractères : 10 par exemple, donc, 10 octets. Pour finir, disons qu’il nous manque également, comme pour les tables, le nombre de tables comprises dans la liste : 2 octets

Cette liste aura donc cet aspect :

XX : 2 octets pour le n°ID de la liste
YY : 2 octets pour le nombre de tables existant dans la liste
 - Nom de la table :  10 octets
 - Numéro de la table associée : 2 octets

Donc là, nous voyons 2 grandes structures :

  • Une listant des tables
  • Une (celle des tables) listant des caractères

Alors maintenant, petit exercice :

Quel sera la taille totale, en octets, de ces deux structures, si nous avons :
* 25 tables de caractères
* Comportant 196 caractères chacune (imaginez qu’il s'agisse d'une moyenne, pour simplifier)

La liste des tables :
 Entête : XX-YY = 4 octets
  Liste : (10 octets + 2 octets) fois 25
 Total : 4 + (12 * 25) = 304 octets

Chaque table :
 Entête : XX = 2 octets
 Caractères : 1 octet + 8 octets (grille) = 9 octets par caractère
 196 caractères fois 9 octets = 1'764 octets
 1'764 + 2 octets d'entête = 1'766 octets

Poids total de toutes les tables :
 1'766 octets pour chaque table fois 25 tables = 44'100 octets

Poids total de la liste des tables et de toutes les tables :
 304 octets + 44'100 octets = 44'404 octets
Soit, précisément : 43 ko (Kilo-octets) - (44'404 / 1024)

Vous constatez donc que tous ces octets sont bel et bien structurés et que certains correspondent à des chiffres, d'autres, à des noms, d'autres encore, à des points de couleur, ...
Et que, en outre, nous avons : 1 liste et 25 tables, donc 26 éléments bien distincts.

Eh bien, un fichier, ce n'est rien d’autre que ça : un groupe, structuré, d'octets mis les uns à la suite des autres, mais dont la signification dépend entièrement du format des structures sous-jacentes que le développeur, programmeur, aura choisi d’utiliser arbitrairement pour les besoins propres de l’application à laquelle ces données sont vouées !

Autrement dit, si un autre programmeur, programme ou, logiciel, lit ces données sans en connaître préalablement leur structure interne, elles n'auront aucun sens voire, seront interprétés de manière totalement absurde.

Cependant, une règle générale (et donc, ne pouvant pas, nécessairement, s'appliquer dans tous les cas de figure, mais suffisamment générique pour pouvoir être évoquée ici), les fichiers sont constitués d'au moins 2 parties, voire, 3 :

  • L'entête : données décrivant les structures contenues, leur nombre, ...
  • Les données elles-mêmes : souvent, du moins, c’est le cas généralement en infographie, constituées d'une succession répétée de petites structures élémentaires
  • Le pied, ou, métadonnées : données complémentaires, souvent facultatives et destinées à aider le classement automatique du fichier...

S'ils ne contiennent que des données brutes sans entête ni métadonnées, on les considérera comme étant des "fichiers brutes", ou, littéralement en anglais, au format "ROW".

Notez également que les formats de fichiers sont généralement conçus soit :

  • en "texte claire", c'est-à-dire, avec uniquement des caractères d'écriture afin d’être lisibles par l'homme via des éditeurs de texte simple
  • en octets brutes (uniquement déchiffrables par des programmes/logiciels) afin d'optimiser la légèreté du fichier (gain sémantique) ET de mettre en place des dispositifs de contrôle de l'intégrité structurelle du fichier afin de détecter les corruptions techniques pouvant subvenir en affectant gravement le fonctionnement du programme/logiciel les utilisant.

Par exemple, le contrôle de parité vous empêchera de modifier le fichier à la main (via un éditeur de texte ou un éditeur hexadécimal) sans savoir exactement ce que vous faites, et donc, connaître parfaitement la structure du fichier que vous êtes en train de modifier. Si cette parité est rompue, le fichier sera considéré comme étant corrompu et sera, le plus souvent, inaccessible ou illisible par le programme/logiciel chargé de l’utiliser/interpréter. Donc, en somme : gardez vos mains dans vos poches si vous ne savez pas précisément ce que vous faites !

Les types de fichiers

modifier

C'est pourquoi les développeurs, programmeurs, etc. ont fini par normaliser, standardiser, le format de certaines de ces structures.
Donc, chaque fichier informatique possède son propre format de (structure des) données, mais certains de ces formats sont standards et les fichiers dans ces formats pourront donc être utilisés correctement par plusieurs intervenants/utilisateurs/logiciels/programmes/programmeurs et, en définitive, infographistes.

En informatique, il existe donc une multitude de formats de fichiers standards, réutilisables. Mais, évidemment, ceux qui nous intéressent sont ceux liés de près à l'infographie.
Par exemple, les formats standard d'image, ou ceux des polices d'écriture, ou encore, ceux des vidéos.
Qui dit formats standards dit aussi "formats propriétaires", c'est-à-dire, conçus par des entreprises, dédiés à leurs programmes/logiciels informatiques, et qui ne sont donc pas nécessairement réutilisable en dehors d'eux, par des utilisateurs ne disposant pas de ces programmes/logiciels spécifiques au propriétaire du format !
Or, il se trouve que, justement, en infographie, cette "mauvaise pratique de l'informatique" est assez répandue et il vous faudra donc souvent jongler entre tous ces formats et disposer également de logiciels de conversion de format de vos fichiers.

D'où la nécessité, en tout premier lieu, de chercher à savoir si le format que vous comptez utiliser est, ou non, propriétaire ou libre/standard. Et, en second lieu, de bien connaître la spécificité des formats que vous utilisez le plus afin de toujours garder la maîtrise sur vos actions (de conversion entre particulier) et de vos choix (du format initial de travail, ...).

Parce que, en effet, lors de conversion de formats, vos fichiers peuvent perdre des données, ou, au contraire, être alourdis par des données superflues, voir même, profondément corrompus !

Quoiqu’il en soit, vos environnement système (OS, "operating système", en anglais), c'est-à-dire, le logiciel principal de votre ordinateur, votre "système informatique" à vous, votre "environnement graphique", "interface graphique", en somme, votre "bureau", ... vous indiquera, de diverses façons (icône dédiée, extension du nom des fichiers, ...), quel est le type de chacun de vos fichiers (au cas où vous l'oublieriez !).

Et, naturellement, la plupart des logiciels sauront ouvrir, lire, et interpréter différents types de fichiers (et donc, en faire des conversions).

l'arborescence

modifier

l'ordinateur, en détail

modifier

le microprocesseur

modifier

la mémoire vive

modifier

le processeur graphique

modifier

l'acquisition des données

modifier

Qui dit "production", dit aussi : manipulation, corrections, stockage, édition/impression, etc.

Pour produire tout graphisme de manière informatisé, au moins une intervention humaine est nécessaire.
​ Une première distinction est à faire entre les personnes qui créent des programmes informatiques destinés à produire automatiquement des images, des personnes qui utilisent des logiciels pour créer des images. En effet, dans le premier cas, ce sont les programmes qui génèrent des images selon la volonté de leur programmeur (souvent des artistes), et dans l'autre cas, ce sont des utilisateurs d’outils informatiques qui traitent les images selon leur volonté.

Nous n'aborderons plus le premier cas puisque l'immense majorité des infographistes utilisent en fait des logiciels de création et de manipulation d'images. En fait, ils se servent de l'informatique comme d'un simple outils pour leurs créations.

La deuxième distinction à faire concerne le support des infographies. En effet, on a trop souvent tendance à s'imaginer que les infographies ne sont portées qu'exclusivement via le vecteur "écrans d'ordinateurs" ce qui est, tout simplement, une grossière erreur. En effet, les infographies peuvent parfaitement être imprimées. Il existe même des robots permettant de reproduire l'infographie de manière physique (mais, toujours, informatisée) via, par exemple, un bras articulé muni d'un pinceau ou d'un crayon, ou encore, de billes de peinture projetées sur une toile (paintball).

Deuxièmes Notions

modifier

Qui dit "infographie" dit donc "graphismes". Mais dit aussi "informatique". Et qui dit "informatique" dit aussi "numérique". Donc, graphismes fait avec des chiffres, des nombres (et traités automatiquement par des fonctions, mathématiques ou algorithmiques).

Donc, il s'agit d'images construites grâce à des informations qui ne sont rien d’autre que des nombres (dont le traitement est automatisé donc) !

Ce qui vient alors immédiatement à l'esprit c’est que, pour les produire, il faut utiliser des mathématiques. En effet, mais rassurez-vous, les infographistes n'ont nullement besoin d’être matheux. Alors bien sûr, il y a des mathématiciens qui expriment leur fibre artistique à travers de magnifiques infographies engendrées par de ténébreuses équations (comme, par exemple, des fractales).

 
Un exemple de fractale.

Mais, dans l'absolu, il n'y a, fondamentalement, que deux moyens de "produire" (reproduire) des images avec des données sous forme de chiffres :

  • dessiner des formes géométriques avec des paramètres (ex: un cercle d'une taille X ou Y, tracé avec une couleur C1 et remplit avec une couleur C2)
  • juxtaposer des points de différentes couleurs, sur une grille, un canevas, pour reproduire une image réaliste.

La première méthode est dite "IMAGERIE VECTORIELLE" (un vecteur étant un truc bidule géométrique), la seconde est dite "imagerie MATRICIELLE" (une matrice étant une simple grille de cases). En fait, la grande majorité des infographies sont de type matricielle et l’on ne le mentionne que lorsqu’il est nécessaire de faire la distinction entre les deux.

Vous vous en doutez : ces deux méthodes sont radicalement différentes et nécessitent donc souvent des logiciels bien différents dans leur approche (bien qu’ils puissent tous faire un peu de l'autre manière, aux besoins).

passons maintenant à la vue d'ensemble afin de discerner plus concrètement les différentes branches de l'infographie ainsi que quelques spécificités liées à l'usage de l'informatique.