Unterschied zwischen Kodierung und Dekodierung

Frau hört Musik auf einem Handy

Musikdateien werden normalerweise mit dem MP3-Codec kodiert.

Bildnachweis: Purestock/Purestock/Getty Images

Codieren ist der Prozess der Übersetzung von Daten zwischen zwei Formaten nach einem Regelwerk oder einer Formel. Sie können beispielsweise "abc" in "ABC" codieren, indem Sie Regeln von Kleinbuchstaben in Großbuchstaben verwenden. Die Dekodierung ist der umgekehrte Vorgang. Sie können "ABC" in "abc" decodieren, indem Sie dieselben Regeln verwenden. Es gibt viele verschiedene Anwendungen für die Datenkodierung und -dekodierung. Die Verschlüsselung ist beispielsweise eine Form der Verschlüsselung, die einen Schlüssel verwendet. Ohne den Schlüssel können die verschlüsselten Daten nicht entschlüsselt werden. Videodaten werden codiert, um sie zu verkleinern, sodass hochauflösende Videostreams über das Internet angezeigt werden können.

Codierung wird häufig verwendet, um die Größe von Audio- und Videodaten zu reduzieren. Ein Codec-Codec genanntes Coder-Decoder-Programm wendet eine Reihe mathematischer Algorithmen an, die redundante Daten eliminieren. Angenommen, eine Datei enthält die Daten "ABCDQABC". Der Algorithmus von Codec #1 könnte darin bestehen, zu ersetzen „ABC“ mit „Z“. Die resultierende Datei wäre "ZDQZ", die 50 Prozent kleiner als das Original ist Datei. Der Algorithmus von Codec #2 könnte "ABC?" ersetzen. mit "Y" und "?ABC" mit "X", wobei "?" bezeichnet ein beliebiges Zeichen. Die resultierende Datei wäre "YX", die 75 Prozent kleiner als die Originaldatei ist.

Video des Tages

Die Dekodierung verwendet denselben Codec, um die Originaldatei aus einer kodierten Datei zu rekonstruieren. Wenn Sie beispielsweise Codec #1 auf "ZDQZ" in umgekehrter Richtung anwenden, wird "Z" durch "ABC" ersetzt, um die ursprüngliche Datei "ABCDQABC" zu erstellen. Codec #1, der 50 Prozent kleiner war, wird als verlustfreier Codec bezeichnet, da die Dekodierung immer das Original wiederherstellt Datei. Codec #2 dekodiert "YX" mit "ABC?? ABC" und versucht dann zu erraten, was die fehlenden Zeichen sind. Der Codec könnte "DE" erraten, was zu "ABCDEABC" führt. Codec #2, der 75 Prozent kleiner war, ist a verlustbehafteter Codec, da der Dekodierungsprozess möglicherweise eine Datei erstellt, die dem Original nahe kommt, aber nicht identisch.

URLs und Zeichensätze

Nicht jede Codierung führt zu einem Ergebnis, das kleiner ist als die uncodierten Daten. Beispielsweise ist die URL "example.com/Secret of Life.html" ungültig, da sie Leerzeichen enthält. Ein Webprogrammierer codiert die URL, die alle Leerzeichen durch "%20" ersetzt, um zu erstellen "example.com/Secret%20of%20Life.html." Der Dekodierungsprozess führt die inverse Operation aus und ersetzt "%20" durch ein Leerzeichen. In ähnlicher Weise könnte ein Datenbankprogramm alle Daten in Unicode codieren, einem Master-Zeichensatz für die meisten Sprachen. Wenn ein Benutzer Daten abruft, dekodiert das Programm den Unicode, um ihn an die Sprach- und Tastatureinstellungen des Benutzers anzupassen.

Kodierung, die nicht dekodiert werden kann

Einige Kodierungen sollen nicht dekodiert werden. Ein Hash ist eine lange Folge zufälliger Zeichen, die mit einem Kodierungsalgorithmus verwendet wird, um ein verschlüsseltes Ergebnis zu erzeugen, das nicht dekodiert werden kann, selbst wenn Sie den Hash kennen. Beispielsweise kann das Passwort eines Benutzers mit einem Hash verschlüsselt und in einer Datenbank gespeichert werden. Findet ein Hacker die Datenbank, kann er keine Passwörter entschlüsseln. Wenn sich ein Benutzer anmeldet, verschlüsselt das System das vom Benutzer eingegebene Passwort mit dem Hash und vergleicht das Ergebnis mit dem in der Datenbank gespeicherten. Wenn ein Benutzer sein Passwort vergisst, muss er es ändern, da das System sein ursprüngliches Passwort nicht kennt, sondern nur seinen verschlüsselten Wert.