Rozdíl mezi kódováním a dekódováním

Žena poslouchá hudbu na mobilním telefonu

Hudební soubory jsou běžně kódovány pomocí kodeku MP3.

Kredit obrázku: Purestock/Purestock/Getty Images

Kódování je proces překladu dat mezi dvěma formáty podle sady pravidel nebo vzorce. Můžete například zakódovat „abc“ do „ABC“ pomocí pravidel pro dělení malých písmen na velká. Dekódování je inverzní proces. Pomocí stejné sady pravidel můžete dekódovat „ABC“ na „abc“. Existuje mnoho různých aplikací pro kódování a dekódování dat. Šifrování je například forma kódování, která používá klíč. Bez klíče nelze zakódovaná data dekódovat. Video data jsou zakódována tak, aby byla menší, aby bylo možné sledovat streamy videa ve vysokém rozlišení přes internet.

Kódování se běžně používá ke snížení velikosti audio a video dat. Program kodér-dekodér, nazývaný kodek, aplikuje řadu matematických algoritmů, které eliminují nadbytečná data. Předpokládejme například, že soubor obsahoval data "ABCDQABC." Algoritmus kodeku č. 1 může být nahrazen "ABC" s "Z." Výsledný soubor by byl "ZDQZ", což je o 50 procent menší než originál soubor. Algoritmus kodeku č. 2 by mohl nahradit "ABC?" s "Y" a "?ABC" s "X", kde "?" označuje jakýkoli znak. Výsledný soubor bude "YX", což je o 75 procent menší než původní soubor.

Video dne

Dekódování používá stejný kodek k rekonstrukci původního souboru z kódovaného souboru. Například použití kodeku #1 na "ZDQZ" obráceně nahradí "Z" za "ABC", aby se vytvořil původní soubor "ABCDQABC." Kodek #1, který byl o 50 procent menší, se nazývá bezztrátový kodek, protože dekódování vždy znovu vytvoří původní soubor. Kodek #2 dekóduje „YX“ pomocí „ABC?? ABC,“ a pak se snaží uhodnout, jaké jsou chybějící znaky. Kodek může uhodnout „DE“, což má za následek „ABCDEABC“. Kodek #2, který byl o 75 procent menší, je a ztrátový kodek, protože proces dekódování může vytvořit soubor, který se blíží originálu, ale ne identické.

URL a znakové sady

Ne každé kódování vytváří výsledek, který je menší než nekódovaná data. Například adresa URL „example.com/Secret of Life.html“ je neplatná, protože obsahuje mezery. Webový programátor zakóduje adresu URL, která pro vytvoření nahradí všechny mezery "%20". "example.com/Secret%20of%20Life.html." Proces dekódování provádí inverzní operaci a nahradí "%20" mezerou. Podobně může databázový program zakódovat všechna data do Unicode, hlavní sady znaků ve většině jazyků. Když uživatel načte data, program dekóduje Unicode tak, aby odpovídal nastavení jazyka a klávesnice uživatele.

Kódování, které nelze dekódovat

Některá kódování nejsou určena k dekódování. Hash je dlouhý řetězec náhodných znaků používaných s kódovacím algoritmem k vytvoření zašifrovaného výsledku, který nelze dekódovat, i když znáte hash. Uživatelské heslo může být například zašifrováno pomocí hashe a uloženo v databázi. Pokud hacker najde databázi, nemůže dekódovat žádná hesla. Když se uživatel přihlásí, systém zakóduje heslo, které uživatel zadá, s hashem a porovná výsledek s tím, který je uložen v databázi. Pokud uživatel zapomene heslo, musí si ho změnit, protože systém nezná jeho původní heslo, pouze jeho zašifrovanou hodnotu.