La conversion de données est la conversion de données informatiques d'un format à un autre. Dans un environnement informatique, les données sont codées de diverses manières. Par exemple, le matériel informatique est construit sur la base de certaines normes, qui exigent que les données contiennent, par exemple, des contrôles de bits de parité . De même, le système d'exploitation est basé sur certaines normes pour la gestion des données et des fichiers. En outre, chaque programme informatique gère les données d'une manière différente. Chaque fois que l'une de ces variables est modifiée, les données doivent être converties d'une manière ou d'une autre avant de pouvoir être utilisées par un ordinateur, un système d'exploitation ou un programme différent. Même des versions différentes de ces éléments impliquent généralement des structures de données différentes. Par exemple, le changement de bits d'un format à un autre, généralement à des fins d'interopérabilité d'applications ou de capacité à utiliser de nouvelles fonctionnalités, n'est qu'une conversion de données. Les conversions de données peuvent être aussi simples que la conversion d'un fichier texte d'un système de codage de caractères à un autre ; ou plus complexes, comme la conversion de formats de fichiers bureautiques ou la conversion de formats d'image et de formats de fichiers audio .
Il existe de nombreuses façons de convertir des données dans l'environnement informatique. Cela peut se faire de manière transparente, comme dans le cas de la mise à niveau vers une version plus récente d'un programme informatique. Alternativement, la conversion peut nécessiter un traitement à l'aide d'un programme de conversion spécial, ou elle peut impliquer un processus complexe de passage par des étapes intermédiaires, ou impliquer des procédures complexes d'"exportation" et d'"importation", qui peuvent inclure la conversion vers et depuis un fichier texte délimité par des tabulations ou des virgules. Dans certains cas, un programme peut reconnaître plusieurs formats de fichiers de données au stade de la saisie des données et est ensuite également capable de stocker les données de sortie dans plusieurs formats différents. Un tel programme peut être utilisé pour convertir un format de fichier. Si le format source ou le format cible n'est pas reconnu, alors parfois un troisième programme peut être disponible qui permet la conversion vers un format intermédiaire, qui peut ensuite être reformaté à l'aide du premier programme. Il existe de nombreux scénarios possibles.
Informations de base
Avant de procéder à une conversion de données, l'utilisateur ou le programmeur d'application doit garder à l'esprit quelques notions de base en informatique et en théorie de l'information . Il s'agit notamment de :
- L’information peut facilement être supprimée par l’ordinateur, mais ajouter des informations demande des efforts.
- L'ordinateur ne peut ajouter des informations que de manière basée sur des règles.
- Le suréchantillonnage des données ou la conversion vers un format plus riche en fonctionnalités n’ajoute pas d’informations ; cela fait simplement de la place pour cet ajout, ce qu’un humain doit généralement faire.
- Les données stockées dans un format électronique peuvent être rapidement modifiées et analysées.
Par exemple, une image en vraies couleurs peut facilement être convertie en niveaux de gris, tandis que la conversion inverse est un processus laborieux. La conversion d'un fichier texte Unix en fichier texte Microsoft (DOS/Windows) implique l'ajout de caractères, mais cela n'augmente pas l' entropie car elle est basée sur des règles ; alors que l'ajout d'informations de couleur à une image en niveaux de gris ne peut pas être effectué de manière fiable par programmation, car il nécessite l'ajout de nouvelles informations, de sorte que toute tentative d'ajout de couleur nécessiterait une estimation par l'ordinateur basée sur des connaissances antérieures. La conversion d'un PNG 24 bits en un PNG 48 bits n'ajoute pas d'informations, elle ne fait que compléter les valeurs de pixels RVB existantes avec des zéros , de sorte qu'un pixel avec une valeur de FF C3 56, par exemple, devient FF00 C300 5600. La conversion permet de modifier un pixel pour qu'il ait une valeur de, par exemple, FF80 C340 56A0, mais la conversion elle-même ne le fait pas, seule une manipulation supplémentaire de l'image le peut. Convertir une image ou un fichier audio dans un format avec perte (comme JPEG ou Vorbis ) en un format sans perte (comme PNG ou FLAC ) ou non compressé (comme BMP ou WAV ) ne fait que gaspiller de l'espace, car la même image avec sa perte d'informations d'origine (les artefacts de compression avec perte) devient la cible. Une image JPEG ne peut jamais être restaurée à la qualité de l'image d'origine à partir de laquelle elle a été créée, peu importe combien l'utilisateur essaie la fonction « Suppression des artefacts JPEG » de son programme de manipulation d'images.
La restauration automatique des informations perdues à cause d’un processus de compression avec perte nécessiterait probablement des avancées importantes en intelligence artificielle .
En raison de ces réalités de l’informatique et de la théorie de l’information, la conversion de données est souvent un processus complexe et sujet aux erreurs qui nécessite l’aide d’experts.
Conversion pivot
La conversion des données peut se faire directement d'un format à un autre, mais de nombreuses applications qui convertissent entre plusieurs formats utilisent une représentation intermédiaire par laquelle tout format source est converti vers sa cible. Par exemple, il est possible de convertir un texte cyrillique de KOI8-R en Windows-1251 à l'aide d'une table de recherche entre les deux codages, mais l'approche moderne consiste à convertir d'abord le fichier KOI8-R en Unicode , puis de celui-ci en Windows-1251. Il s'agit d'une approche plus gérable ; plutôt que d'avoir besoin de tables de recherche pour toutes les paires possibles de codages de caractères, une application n'a besoin que d'une seule table de recherche pour chaque jeu de caractères, qu'elle utilise pour convertir vers et depuis Unicode, réduisant ainsi le nombre de tables de centaines à quelques dizaines.
La conversion pivot est également utilisée dans d'autres domaines. Les applications bureautiques, lorsqu'elles sont utilisées pour convertir entre des formats de fichiers bureautiques, utilisent leur format de fichier interne par défaut comme pivot. Par exemple, un traitement de texte peut convertir un fichier RTF en fichier WordPerfect en convertissant le RTF en OpenDocument , puis celui-ci au format WordPerfect. Un programme de conversion d'image ne convertit pas directement une image PCX en PNG ; au lieu de cela, lors du chargement de l'image PCX, il la décode dans un format bitmap simple pour une utilisation interne en mémoire, et lorsqu'il reçoit l'ordre de convertir en PNG, cette image mémoire est convertie au format cible. Un convertisseur audio qui convertit du FLAC au AAC décode d'abord le fichier source en données PCM brutes en mémoire, puis effectue la compression AAC avec perte sur cette image mémoire pour produire le fichier cible.
Conversion de données perdues et inexactes
L'objectif de la conversion des données est de conserver toutes les données et autant d'informations intégrées que possible. Cela n'est possible que si le format cible prend en charge les mêmes fonctionnalités et structures de données présentes dans le fichier source. La conversion d'un document de traitement de texte en fichier texte brut implique nécessairement la perte d'informations de formatage, car le format texte brut ne prend pas en charge les constructions de traitement de texte telles que le marquage d'un mot en gras. Pour cette raison, la conversion d'un format vers un autre qui ne prend pas en charge une fonctionnalité importante pour l'utilisateur est rarement effectuée, bien qu'elle puisse être nécessaire pour l'interopérabilité, par exemple la conversion d'un fichier d'une version de Microsoft Word vers une version antérieure pour permettre le transfert et l'utilisation par d'autres utilisateurs qui n'ont pas la même version ultérieure de Word installée sur leur ordinateur.
La perte d'informations peut être atténuée par une approximation dans le format cible. Il n'existe aucun moyen de convertir un caractère tel que ä en ASCII , car la norme ASCII ne le permet pas, mais les informations peuvent être conservées en approximant le caractère sous la forme ae . Bien entendu, ce n'est pas une solution optimale et cela peut avoir un impact sur des opérations telles que la recherche et la copie ; et si un langage fait une distinction entre ä et ae , alors cette approximation implique une perte d'informations.
La conversion des données peut également souffrir d'inexactitudes, résultant de la conversion entre des formats conceptuellement différents. Le paradigme WYSIWYG , présent dans les traitements de texte et les applications de PAO , par rapport au paradigme structurel-descriptif, que l'on trouve dans SGML , XML et de nombreuses applications qui en dérivent, comme HTML et MathML , en est un exemple. L'utilisation d'un éditeur HTML WYSIWYG confond les deux paradigmes, et le résultat est des fichiers HTML avec un code sous-optimal, voire non standard. Dans le paradigme WYSIWYG, un double saut de ligne signifie un nouveau paragraphe, car c'est le signal visuel d'une telle construction, mais un éditeur HTML WYSIWYG convertit généralement une telle séquence en <BR><BR>, qui n'est structurellement pas du tout un nouveau paragraphe. Autre exemple, la conversion d' un PDF en un format de traitement de texte modifiable est une tâche difficile, car le PDF enregistre les informations textuelles comme une gravure sur pierre, chaque caractère étant placé à une position fixe et les sauts de ligne étant codés en dur, alors que les formats de traitement de texte prennent en charge la redistribution du texte. Le format PDF ne reconnaît pas le caractère d'espacement des mots : l'espace entre deux lettres et l'espace entre deux mots ne diffèrent que par leur quantité. Par conséquent, un titre avec un espacement des lettres suffisant pour produire un effet se retrouvera généralement avec des espaces dans le fichier de traitement de texte, par exemple INTRODUCTION avec un espacement de 1 cadratin comme INTRODUCTION dans le traitement de texte.
Spécifications ouvertes ou secrètes
Une conversion de données réussie nécessite une connaissance approfondie du fonctionnement des formats source et cible. Dans le cas où la spécification d'un format est inconnue, une rétro-ingénierie sera nécessaire pour effectuer la conversion. L'ingénierie inverse peut permettre d'obtenir une approximation proche des spécifications d'origine, mais des erreurs et des fonctionnalités manquantes peuvent toujours en résulter.
Électronique
La conversion du format des données peut également se produire au niveau de la couche physique d'un système de communication électronique. La conversion entre les codes de ligne tels que NRZ et RZ peut être effectuée si nécessaire.