Razlika između kodiranja i dekodiranja

Žena sluša glazbu na mobilnom telefonu

Glazbene datoteke se obično kodiraju pomoću MP3 kodeka.

Zasluga slike: Purestock/Purestock/Getty Images

Kodiranje je proces prevođenja podataka između dva formata prema skupu pravila ili formule. Na primjer, možete kodirati "abc" u "ABC" pomoću pravila od malih do velikih slova. Dekodiranje je inverzni proces. Možete dekodirati "ABC" u "abc" koristeći isti skup pravila. Postoji mnogo različitih aplikacija za kodiranje i dekodiranje podataka. Šifriranje je, na primjer, oblik kodiranja koji koristi ključ. Bez ključa, kodirani podaci se ne mogu dekodirati. Video podaci su kodirani kako bi bili manji kako bi se video tokovi visoke razlučivosti mogli gledati putem Interneta.

Kodiranje se obično koristi za smanjenje veličine audio i video podataka. Program koder-dekoder, nazvan kodek, primjenjuje niz matematičkih algoritama koji eliminiraju suvišne podatke. Na primjer, pretpostavimo da datoteka sadrži podatke "ABCDQABC". Algoritam kodeka #1 mogao bi biti zamjena "ABC" sa "Z". Dobivena datoteka bila bi "ZDQZ", koja je 50 posto manja od izvorne datoteka. Algoritam kodeka #2 mogao bi zamijeniti "ABC?" s "Y" i "?ABC" s "X", gdje je "?" označava bilo koji znak. Dobivena datoteka bila bi "YX", što je 75 posto manje od izvorne datoteke.

Video dana

Dekodiranje koristi isti kodek za rekonstrukciju izvorne datoteke iz kodirane datoteke. Na primjer, primjena kodeka #1 na "ZDQZ" u obrnutom smjeru zamjenjuje "Z" s "ABC" za stvaranje izvorne datoteke "ABCDQABC". Kodek #1, koji je bio 50 posto manji, naziva se kodekom bez gubitaka jer dekodiranje uvijek ponovno stvara izvorni datoteka. Kodek #2 dekodira "YX" s "ABC?? ABC", a zatim pokušava pogoditi koji su likovi koji nedostaju. Kodek bi mogao pogoditi "DE", što rezultira "ABCDEABC". Kodek #2, koji je bio 75 posto manji, je a kodek s gubitkom, jer bi proces dekodiranja mogao stvoriti datoteku koja je bliska izvorniku, ali ne identičan.

URL-ovi i skupovi znakova

Ne daje svako kodiranje rezultat koji je manji od nekodiranih podataka. Na primjer, URL "example.com/Tajna života.html" nije važeći jer sadrži razmake. Web programer kodira URL, koji zamjenjuje sve razmake s "%20" za stvaranje "example.com/Secret%20of%20Life.html." Proces dekodiranja izvodi inverznu operaciju i zamjenjuje "%20" razmakom. Slično, program baze podataka može kodirati sve podatke u Unicode, glavni skup znakova u većini jezika. Kada korisnik dohvaća podatke, program dekodira Unicode kako bi odgovarao korisnikovim postavkama jezika i tipkovnice.

Kodiranje koje se ne može dekodirati

Neka kodiranja nisu namijenjena za dekodiranje. Hash je dugačak niz nasumičnih znakova koji se koristi s algoritmom kodiranja za proizvodnju šifriranog rezultata koji se ne može dekodirati, čak i kada znate hash. Na primjer, korisnička lozinka može biti šifrirana s hashom i pohranjena u bazi podataka. Ako haker pronađe bazu podataka, ne može dekodirati nijednu lozinku. Kada se korisnik prijavi, sustav kodira lozinku koju korisnik unese s hashom i uspoređuje rezultat s onim pohranjenim u bazi podataka. Ako korisnik zaboravi lozinku, mora je promijeniti, jer sustav ne zna njegovu originalnu lozinku, već samo njezinu šifriranu vrijednost.