Format de données

Un article de Wikipédia, l'encyclopédie libre.
Aller à : Navigation, rechercher

Le format des données est la manière utilisée en informatique pour représenter des données sous forme de nombres binaires. C'est une convention (éventuellement normalisée) utilisée pour représenter des données, soit des informations représentant un texte, une page, une image, un son, un fichier exécutable, etc. Lorsque ces données sont stockées dans un fichier, on parle de format de fichier. Une telle convention permet d'échanger des données entre divers programmes informatiques ou logiciels, soit par une connexion directe soit par l'intermédiaire d'un fichier. On appelle interopérabilité cette possibilité d'échanger des données entre différents logiciels.

Sommaire

[modifier] Typologie

On distingue un format dont la spécification est publiquement accessible, un format ouvert, d'un format fermé dont la spécification est secrète. Un format fermé correspond généralement à un logiciel seul capable de pleinement l'exploiter.

Une autre distinction s'opère entre un format normalisé, faisant l'objet d'une normalisation par une institution publique ou internationale (ISO, W3C) et un format quelconque, qui peut devenir un standard de fait s'il est populaire. Un tel format est parfois normalisé par la suite comme OpenDocument.

Un format est dit propriétaire s'il a été élaboré par une entreprise, dans un but essentiellement commercial. Un format propriétaire peut être ouvert (le format PDF d'Adobe par exemple) s'il est publié, ou fermé (le format '.doc' de Microsoft par exemple). Mais même lorsque des spécifications sont rendues publiques, les entreprises à l'origine de formats propriétaires tentent d'en conserver le contrôle à la fois soit en proposant régulièrement de nouvelles versions plus élaborées (contrôle par maintien d'une avance technologique) soit en utilisant des moyens juridiques comme le brevet. Ce type de pratiques anti concurrentielles via des outils juridiques est admise aux États-Unis. Elle est sujette à controverse en Europe (voir Brevetabilité du logiciel).

[modifier] Formats des nombres

[modifier] Nombres entiers

Un nombre entier naturel est en général simplement représenté en binaire (en base 2), avec la règle de conversion classique. À la différence des entiers naturels, les entiers informatiques sont finis. On ne peut donc représenter ainsi que les nombres tenant dans l'intervalle défini par le nombre de bits disponible. Lorsque l'on veut représenter un entier relatif, on réserve un bit pour désigner le signe (en général le bit le plus à gauche) ; on parle alors d'« entier signé ». La plupart du temps, les nombres négatifs seront codés selon la règle du complément à deux.

Par exemple, avec un octet on peut représenter :

On notera que pour comparer deux entiers relatifs codés ainsi, il suffit de réaliser un OU exclusif avec (10000000 en binaire) sur chacun avant le test.

Article détaillé : Système binaire.

D'autres types sont également usités pour représenter les entiers, il s'agit du codage BCD de forme étendue (un chiffre sur un octet), ou compactée (un chiffre sur 4 bits). Bien que ces formats soient moins performants pour des calculs que le système binaire décrit supra car ils nécessitent des instructions supplémentaires pour remettre en forme le résultat des opérations arithmétiques réalisées, ils sont toujours employés sur de nombreux systèmes (Ordinateur central, SGBD, ... ) et gérés par les processeurs, car ils ne sont pas limités par le nombre de bits utilisés par le processeur pour l'arithmétique binaires (8 bits, 16 bits, 32 bits, 64 bits, ...) et qu'ils conservent la précision unitaire contrairement aux nombres à virgule flottante.

[modifier] Nombres fractionnaires

Pour les nombres fractionnaires, la convention de numération veut qu'en base n, « 0,a » désigne a·1/n (=a·n-1), « 0,0a » désigne a·1/n² (=a·n-2)... Par exemple en base 10 (n = 10), « 0,005 » désigne 5·10-3.

Ainsi, le nombre 0,001 en binaire (n = 2) désigne 1·2-3=0,125.

Donc en informatique, la première solution consiste à attribuer un certain nombre de bits à droite aux puissances négatives de 2.

Une autre solution consiste à utiliser le codage BCD comme pour les entiers en considérant le positionnement de la virgule à une position fixe, par exemple, pour un codage sur 10 chiffres, les huit premiers chiffres contiennent la partie entière et les deux derniers la partie décimale. Ce positionnement est totalement arbitraire et doit être géré par le programmeur pour les affichages ou les calculs, surtout pour les multiplications ou lorsque deux nombres ne sont pas définis avec le même nombre de chiffres après la virgule.
C'est ce type de donnée qui est généralement utilisé dans les SGBD pour le type DECIMAL.

Article détaillé : Virgule flottante.
Article détaillé : Virgule fixe.

[modifier] Formats de texte

Les textes sont formés de caractères en nombres finis (lettres, diacritiques, signes de ponctuation…). Il est donc simple d'attribuer un nombre à chaque caractère. Cette conversion caractère → nombre est définie par convention sous la forme d'une table, ou page de code. Les plus utilisés sont l'ASCII et l'Unicode.

Les textes comprennent aussi de la mise en page (alignement des paragraphes) et de la mise en forme (type de police de caractère, taille…). La solution retenue en général consiste à définir des mots de commande, des instructions, séparées du texte par un caractère spécial. Ainsi, en HTML, les instructions sont appelées « balises » et sont mises entre des chevrons <…> ; en LaTeX, les instructions sont introduites par une barre de fraction inversée \. De ce fait, certains caractères sont réservés aux instructions et ne peuvent plus faire partie du texte ; il existe alors des « codes d'échappement », ou bien des instructions spéciales permettant de les représenter.

Jusqu'en 2006, le logiciel Microsoft Word a retenu une autre manière de stocker la mise en forme: les données (texte et images) sont mises en brut (sans mise en forme) dans le document, et la mise en forme est définie dans une partie du document appelée « saut de section » (section break). Le saut de section, hormis le fait de marquer un changement de mise en page (saut de colonne, saut de page), est une zone invisible contenant des pointeurs attribuant un formatage à une partie de la section. Cette solution de stockage brut des données a été historiquement adoptée à une époque où peu d'autres solutions existaient (au début des années 1980). C'était une approche couramment adoptée pour beaucoup d'applications et liée entre autres au niveau faible de standards de stockage. Cependant, l'expérience a montré que cette approche se révèle très lourde et source de problèmes (corruption de documents) pour les documents ayant environ 100 pages et plus. Si Microsoft a tenté de conserver son modèle et de le faire évoluer petit à petit pour éviter de tout reprendre à la base, ce dernier est arrivé à ses limites. Pour son édition de 2007, Microsoft a adopté un nouveau format propriétaire, Open XML.

[modifier] Formats d'image

La base de la représentation des images est la géométrie analytique.

[modifier] Format carte de points

Exemple agrandi d'une image carte de points

On peut découper une image en points élémentaires, ou « pixel », et attribuer une couleur à ce pixel. La couleur est représentée par un nombre, la correspondance couleur → nombre étant faite par une « palette ».

Il est inutile de donner les coordonnées des points : si l'on donne la largeur de l'image en nombre n de points, alors les n premiers points représentent la première ligne, les points n+1 à 2n représentent la deuxième ligne… Il suffit alors de fixer par convention l'ordre de balayage, en l'occurrence l'ordre de lecture occidental (de gauche à droite et de haut en bas).

Ceci donne une image au format carte de points, souvent appelée image bitmap. C'est donc un canevas de points dont chacun se voit attribuer une valeur colorée. Les grandes différences entre les formats existants sont la profondeur de couleurs (1 bit : noir ou blanc, 8 bits : 256 couleurs, 24 bits : 16 millions de couleurs…) et le type de compression (sans compression, ou raw, avec une compression par motifs, avec une compression destructive…)

Par exemple, prenons une carte noir et blanc (1 pour blanc, 0 pour noir) définissant une image large de cinq points par la suite de chiffres suivante :

1000101010001000101010001

il faut découper cette carte par groupes de 5 bits :

10001
01010
00100
01010
10001

ce qui nous donne le dessin d'un « X » blanc sur fond noir.

Le format des données doit donc inclure, outre la liste des points, la largeur de l'image et la description de la palette ; ceci se fait en général en début de fichier (on parle d'« en-tête » de fichier).

Article détaillé : Image matricielle.

[modifier] Format vectoriel

Une image au format vectoriel est une image qui se décrit par des ensembles de coordonnées mathématiques et non par un canevas de points. Par exemple,

En outre, des informations sur le tracé sont nécessaires : les attributs graphiques sont l'épaisseur, le style (continu ou pointillés), la couleur du trait, sa transparence, etc.

Une image vectorielle est donc un ensemble de coordonnées, d'attributs et de commandes que le programme d'affichage (à l'écran ou sur papier) se charge d'interpréter.

Pour des images pouvant être réduites facilement à des formes géométriques (typographisme, cartographie...), le format vectoriel est extrêmement économe.

La particularité des formats vectoriels réside dans le fait que leur rendu final ne dépend que de la résolution du périphérique de sortie. Ce type d'image peut aussi être agrandi sans effets gênants  ; il n'y a pas d'effet de « pixellisation » (les lignes diagonales ou courbes n'apparaissent pas sous forme d'escalier).

Quelques formats vectoriels célèbres : VML, SVG, Adobe PDF (Acrobat), Adobe Illustrator, encapsuled postscript EPS, Quark QXD, Silverlight et Macromedia Flash (formats d'animation vectorielle), AutoCAD DXF.

Article détaillé : Image vectorielle.

[modifier] Représentation des couleurs

Article détaillé : Codage informatique des couleurs.

[modifier] Formats vidéo

Article connexe : Format vidéo.

[modifier] Format de scène 3D

La représentation des objets virtuels créés par les logiciels de modélisation 3D nécessite un format de données spécifique car les formats précédents sont inadaptés. En effet, pour représenter un objet 3D il faut au minimum une description :

Représenter une scène nécessite aussi de spécifier les éclairages utilisés, les positions relatives des objets, les effets d'environnement éventuels mais surtout sa structure hiérarchique (liens des éléments entre eux).

Les premiers formats standard de fait ont été des formats adaptés à la CAO : l'objet est défini à l'aide de facettes ou de surfaces analytiques. Il suffit de définir son origine puis les coordonnées caractéristiques des éléments dans l'espace à 3 dimensions. Par exemple, dans le format DXF d'Autocad, un objet est une suite d'entités nommées et constituées de liste de points X, Y, Z. Par indexation, on constitue des facettes triangles ou des lignes qui s'appuient sur ces points.

Si ce format était suffisant pour du dessin technique il était totalement inadapté à la réalité virtuelle. Dans les années 1990, la société Silicon Graphics (constructrice de station graphique 3D) publia le format Inventor qui comportait la majorité des éléments nécessaires. Ce format évolua vers le format VRML qui a été normalisé.

Par ailleurs, le format 3D Studio ASCII fut lui aussi publié mais l'explosion du marché de la 3D donna naissance à quantité de formats propriétaires. Pour l'utilisateur, le problème était fréquemment de convertir un modèle d'un format à l'autre sans perdre trop d'informations. Des sociétés se sont même spécialisées dans ce type de conversion.

Actuellement, dans le monde professionnel, il n'y a pas de format unique mais plutôt des formats plus ou moins utilisés selon le type d'application. Par exemple :

Néanmoins, la plupart des modeleurs 3D savent plus ou moins bien lire (Import) et créer (Export) plusieurs formats : c'est un critère de choix important. Parmi les formats les plus répandus on peut citer :

La tendance actuelle est de privilégier un format descriptif de type XML. Le format de données 3D est alors appelé langage descriptif comme X3D (évolution du VRML avec un formatage XML).

Le format libre COLLADA permet également d'échanger des données entre différents logiciels. Il existe notamment un importeur/exporteur pour Blender.

[modifier] Format de son

Les formats de son se décomposent en trois parties:

(Voir le chapitre Formats classiques)

[modifier] Compression des données

La compression des données est la technique qui consiste à transformer les données afin qu'elles prennent moins de place. Les données devant être décompressées avant d'être traitées, ceci se fait aux dépens de la rapidité, et avec un risque plus grand de perte de données.

L'idée de base est qu'en général, des éléments se répètent dans les fichiers. On a donc intérêt à représenter les éléments se répétant souvent par des nombres plus petits (c'est-à-dire prenant moins de bits).

On peut distinguer deux types de compression :

Article détaillé : Compression de données.

[modifier] Formats classiques

Formats de fichiers
Catégorie Formats
Images PNG, MNG, TIFF, JPEG, GIF, TGA, OpenEXR, BMP
Dessin vectoriel VML, SVG, Silverlight, Flash, AI, EPS, DXF
3D XCF, BLEND, SKP, (SKB), DXF, 3DS Max, VRML, X3D, IFC
Son OGG, FLAC, MP3, WAV, WMA, AAC
Vidéo MPEG, OGM(DVD, DivX, XviD), AVI, Theora, FLV
Page PDF, PostScript, HTML, XHTML
Document de traitement de texte ODT, TXT, DOC, RTF
Exécutable BIN, ELF, EXE, .sdc
Archives (fichier compressé) 7Z, TAR, GZIP, ZIP, LZW, ARJ, RAR, .sdc
Archives pour bandes dessinées CB7 (.cb7), basé sur 7z
CBA (.cba) basé sur ACE
CBR (.cbr) basé sur RAR
CBT (.cbt), basé sur TAR
CBZ (.cbz), basé sur ZIP

[modifier] Voir aussi

[modifier] Articles connexes


[modifier] Liens externes

Outils personnels
Espaces de noms
Variantes
Actions
Navigation
Contribuer
Imprimer / exporter
Boîte à outils
Autres langues