Datenkonvertierung - Data conversion

Datenkonvertierung ist die Konvertierung von Computerdaten von einem Format in ein anderes. In einer Computerumgebung werden Daten auf verschiedene Weise codiert . Beispielsweise wird Computerhardware auf der Grundlage bestimmter Standards gebaut, die erfordern, dass Daten beispielsweise Paritätsbitprüfungen enthalten . Ebenso basiert das Betriebssystem auf bestimmten Standards für den Umgang mit Daten und Dateien. Darüber hinaus behandelt jedes Computerprogramm Daten auf unterschiedliche Weise. Immer wenn eine dieser Variablen geändert wird, müssen die Daten in irgendeiner Weise konvertiert werden, bevor sie von einem anderen Computer, Betriebssystem oder Programm verwendet werden können. Auch unterschiedliche Versionen dieser Elemente beinhalten in der Regel unterschiedliche Datenstrukturen. Beispielsweise ist das Wechseln von Bits von einem Format in ein anderes, gewöhnlich zum Zweck der Anwendungsinteroperabilität oder der Fähigkeit, neue Funktionen zu nutzen, lediglich eine Datenumwandlung. Datenkonvertierungen können so einfach sein wie die Konvertierung einer Textdatei von einem Zeichencodierungssystem in ein anderes; oder komplexer, wie die Konvertierung von Office-Dateiformaten oder die Konvertierung von Bildformaten und Audiodateiformaten .

Es gibt viele Möglichkeiten, Daten innerhalb der Computerumgebung zu konvertieren. Dies kann nahtlos erfolgen, wie im Fall eines Upgrades auf eine neuere Version eines Computerprogramms. Alternativ kann die Konvertierung die Verarbeitung durch ein spezielles Konvertierungsprogramm erfordern oder einen komplexen Prozess mit Zwischenstufen oder komplexe "Export"- und "Import"-Verfahren beinhalten, die die Konvertierung in und von einer Registerkarte umfassen können -getrennte oder durch Kommas getrennte Textdatei. In einigen Fällen kann ein Programm in der Dateneingabestufe mehrere Dateiformate erkennen und ist dann auch in der Lage, die Ausgabedaten in einer Reihe unterschiedlicher Formate zu speichern. Ein solches Programm kann verwendet werden, um ein Dateiformat zu konvertieren. Wird das Quellformat bzw. Zielformat nicht erkannt, so kann zeitweise ein drittes Programm zur Verfügung stehen, das die Konvertierung in ein Zwischenformat ermöglicht, das dann mit dem ersten Programm umformatiert werden kann. Es gibt viele mögliche Szenarien.

Informationsgrundlagen

Bevor eine Datenkonvertierung durchgeführt wird, sollte der Benutzer oder Anwendungsprogrammierer einige Grundlagen der Computer- und Informationstheorie im Hinterkopf behalten. Diese beinhalten:

  • Informationen können vom Computer leicht verworfen werden, aber das Hinzufügen von Informationen erfordert Mühe.
  • Der Computer kann Informationen nur regelbasiert hinzufügen.
  • Upsampling die Daten oder die Umwandlung zu einer funktionsreichen Format keine Informationen hinzufügen; es schafft lediglich Platz für diese Hinzufügung, die normalerweise ein Mensch tun muss.
  • In einem elektronischen Format gespeicherte Daten können schnell geändert und analysiert werden.

Beispielsweise kann ein Echtfarbenbild leicht in Graustufen umgewandelt werden, während die umgekehrte Umwandlung ein mühsamer Prozess ist. Das Konvertieren einer Unix- Textdatei in eine Microsoft- Textdatei (DOS/Windows) erfordert das Hinzufügen von Zeichen, aber dies erhöht die Entropie nicht, da es regelbasiert ist; wohingegen das Hinzufügen von Farbinformationen zu einem Graustufenbild nicht programmgesteuert erfolgen kann, da nur ein Mensch weiß, welche Farben für jeden Abschnitt des Bildes benötigt werden – es gibt keine Regeln, die verwendet werden können, um diesen Prozess zu automatisieren. Das Konvertieren eines 24-Bit- PNG in ein 48-Bit - PNG fügt keine Informationen hinzu, es füllt nur vorhandene RGB- Pixelwerte mit Nullen auf, sodass ein Pixel mit einem Wert von FF C3 56 beispielsweise zu FF00 C300 5600 wird Die Konvertierung ermöglicht es, ein Pixel auf einen Wert von beispielsweise FF80 C340 56A0 zu ändern, aber die Konvertierung selbst tut dies nicht, sondern nur eine weitere Manipulation des Bildes. Das Konvertieren einer Bild- oder Audiodatei in ein verlustbehaftetes Format (wie JPEG oder Vorbis ) in ein verlustfreies (wie PNG oder FLAC ) oder unkomprimiertes (wie BMP oder WAV ) Format verschwendet nur Platz, da das gleiche Bild mit seinem Verlust an Originalinformationen (die Artefakte der verlustbehafteten Komprimierung) zum Ziel. Ein JPEG-Bild kann niemals die Qualität des Originalbilds, aus dem es erstellt wurde, wiederherstellen, egal wie sehr der Benutzer die Funktion " JPEG-Artefaktentfernung " seines Bildbearbeitungsprogramms ausprobiert.

Die automatische Wiederherstellung von Informationen, die durch einen verlustbehafteten Komprimierungsprozess verloren gegangen sind, würde wahrscheinlich wichtige Fortschritte in der künstlichen Intelligenz erfordern .

Aufgrund dieser Realitäten der Computer- und Informationstheorie ist die Datenkonvertierung oft ein komplexer und fehleranfälliger Prozess, der die Hilfe von Experten erfordert.

Pivot-Konvertierung

Die Datenkonvertierung kann direkt von einem Format in ein anderes erfolgen, aber viele Anwendungen, die zwischen mehreren Formaten konvertieren, verwenden eine Zwischendarstellung , über die jedes Quellformat in sein Ziel konvertiert wird. Es ist beispielsweise möglich, kyrillischen Text von KOI8-R in Windows-1251 zu konvertieren, indem eine Nachschlagetabelle zwischen den beiden Codierungen verwendet wird, aber der moderne Ansatz besteht darin, die KOI8-R-Datei zuerst in Unicode und von dort in Windows-1251 zu konvertieren . Dies ist ein überschaubarerer Ansatz; Anstatt Nachschlagetabellen für alle möglichen Zeichencodierungspaare zu benötigen, benötigt eine Anwendung nur eine Nachschlagetabelle für jeden Zeichensatz, die sie zum Konvertieren in und aus Unicode verwendet, wodurch die Anzahl der Tabellen von Hunderten auf einige Zehner herunterskaliert wird.

Die Pivot-Konvertierung wird in ähnlicher Weise in anderen Bereichen verwendet. Office-Anwendungen verwenden beim Konvertieren zwischen Office-Dateiformaten ihr internes Standarddateiformat als Pivot. Beispielsweise kann ein Textverarbeitungsprogramm eine RTF- Datei in eine WordPerfect- Datei konvertieren, indem das RTF in OpenDocument und dann in das WordPerfect-Format konvertiert wird. Ein Bildkonvertierungsprogramm konvertiert ein PCX- Bild nicht direkt in PNG ; Stattdessen wird das PCX-Bild beim Laden in ein einfaches Bitmap-Format für die interne Verwendung im Speicher dekodiert, und wenn es befohlen wird, in PNG zu konvertieren, wird dieses Speicherbild in das Zielformat konvertiert. Ein Audiokonverter, der von FLAC in AAC konvertiert, dekodiert die Quelldatei zuerst in rohe PCM- Daten im Speicher und führt dann die verlustbehaftete AAC-Komprimierung an diesem Speicherabbild durch, um die Zieldatei zu erzeugen.

Verlorene und ungenaue Datenkonvertierung

Das Ziel der Datenkonvertierung besteht darin, alle Daten und so viele eingebettete Informationen wie möglich beizubehalten. Dies ist nur möglich, wenn das Zielformat dieselben Funktionen und Datenstrukturen unterstützt, die in der Quelldatei vorhanden sind. Die Konvertierung eines Textverarbeitungsdokuments in eine Nur-Text-Datei beinhaltet notwendigerweise den Verlust von Formatierungsinformationen, da das Klartext-Format Textverarbeitungskonstrukte wie das Markieren eines Wortes als Fettdruck nicht unterstützt. Aus diesem Grund Konvertierung von einem Format in ein anderes , das keine Funktion nicht unterstützt , die für den Benutzer wichtig ist , wird selten durchgeführt, obwohl es für die Interoperabilität notwendig sein kann, beispielsweise eine Datei von einer Version der Umwandlung von Microsoft Word zu einer früheren Version Aktivieren Sie die Übertragung und Verwendung durch andere Benutzer, die nicht dieselbe neuere Version von Word auf ihrem Computer installiert haben.

Der Informationsverlust kann durch Approximation im Zielformat gemildert werden. Es gibt keine Möglichkeit, ein Zeichen wie ä in ASCII umzuwandeln , da es im ASCII-Standard fehlt, aber die Informationen können beibehalten werden, indem das Zeichen als ae angenähert wird . Dies ist natürlich keine optimale Lösung und kann sich auf Vorgänge wie Suchen und Kopieren auswirken. und wenn eine Sprache zwischen ä und ae unterscheidet , dann beinhaltet diese Annäherung einen Informationsverlust.

Die Datenkonvertierung kann auch unter Ungenauigkeiten leiden, die das Ergebnis der Konvertierung zwischen konzeptionell unterschiedlichen Formaten sind. Das WYSIWYG- Paradigma, das in Textverarbeitungs- und Desktop-Publishing- Anwendungen vorhanden ist, im Gegensatz zum strukturell-beschreibenden Paradigma, das in SGML , XML und vielen davon abgeleiteten Anwendungen wie HTML und MathML zu finden ist, ist ein Beispiel. Die Verwendung eines WYSIWYG-HTML-Editors vereint die beiden Paradigmen, und das Ergebnis sind HTML-Dateien mit suboptimalem, wenn nicht gar nicht standardmäßigem Code. Im WYSIWYG-Paradigma bedeutet ein doppelter Zeilenumbruch einen neuen Absatz, da dies der visuelle Hinweis für ein solches Konstrukt ist, aber ein WYSIWYG-HTML-Editor konvertiert eine solche Sequenz normalerweise in <BR><BR>, was strukturell überhaupt kein neuer Absatz ist . Als weiteres Beispiel ist die Konvertierung von PDF in ein bearbeitbares Textverarbeitungsformat eine schwierige Aufgabe, da PDF die Textinformationen wie Gravuren auf Stein aufzeichnet, wobei jedes Zeichen eine feste Position erhält und Zeilenumbrüche fest codiert sind, während Textverarbeitungsformate Textumbrüche ermöglichen. PDF kennt kein Wort-Leerzeichen – der Abstand zwischen zwei Buchstaben und der Abstand zwischen zwei Wörtern unterscheiden sich nur in der Menge. Daher wird ein Titel mit ausreichendem Buchstabenabstand für die Wirkung normalerweise mit Leerzeichen in der Textverarbeitungsdatei enden, zum Beispiel EINFÜHRUNG mit einem Abstand von 1 em als EINFÜHRUNG in der Textverarbeitung.

Offene vs. geheime Spezifikationen

Eine erfolgreiche Datenkonvertierung erfordert gründliche Kenntnisse der Funktionsweise von Quell- und Zielformaten. Falls die Spezifikation eines Formats unbekannt ist, ist Reverse Engineering erforderlich, um die Konvertierung durchzuführen. Reverse Engineering kann eine gute Annäherung an die ursprünglichen Spezifikationen erreichen, aber dennoch können Fehler und fehlende Funktionen die Folge sein.

Elektronik

Die Datenformatumwandlung kann auch auf der physikalischen Schicht eines elektronischen Kommunikationssystems erfolgen. Eine Konvertierung zwischen Leitungscodes wie NRZ und RZ kann bei Bedarf durchgeführt werden.

Siehe auch

Verweise

Manolescu, Vorname (2006). Mustersprachen des Programmdesigns 5 . Upper Saddle River, NJ: Addison-Wesley. ISBN 0321321944.