Diferența dintre codificare și decodare

Femeie care ascultă muzică pe un telefon mobil

Fișierele muzicale sunt de obicei codificate folosind codecul MP3.

Credit imagine: Purestock/Purestock/Getty Images

Codificarea este procesul de traducere a datelor între două formate conform unui set de reguli sau unei formule. De exemplu, puteți codifica „abc” în „ABC” folosind reguli de la litere mici la majuscule. Decodificarea este procesul invers. Puteți decoda „ABC” în „abc” folosind același set de reguli. Există multe aplicații diferite pentru codificarea și decodarea datelor. Criptarea, de exemplu, este o formă de codificare care utilizează o cheie. Fără cheie, datele codificate nu pot fi decodificate. Datele video sunt codificate pentru a le face mai mici, astfel încât fluxurile video de înaltă definiție să poată fi vizionate pe Internet.

Codificarea este folosită în mod obișnuit pentru a reduce dimensiunea datelor audio și video. Un program de codare-decodor, numit codec, aplică o serie de algoritmi matematici care elimină datele redundante. De exemplu, să presupunem că un fișier conținea datele „ABCDQABC”. Algoritmul codecului #1 ar putea fi înlocuit „ABC” cu „Z”. Fișierul rezultat ar fi „ZDQZ”, care este cu 50 la sută mai mic decât originalul fişier. Algoritmul codecului #2 ar putea înlocui „ABC?” cu "Y" și "?ABC" cu "X", unde "?" indică orice caracter. Fișierul rezultat ar fi „YX”, care este cu 75 la sută mai mic decât fișierul original.

Videoclipul zilei

Decodarea folosește același codec pentru a reconstrui fișierul original dintr-un fișier codificat. De exemplu, aplicarea Codecului #1 la „ZDQZ” în sens invers înlocuiește „Z” cu „ABC” pentru a crea fișierul original „ABCDQABC”. Codec-ul #1, care era cu 50% mai mic, se numește codec fără pierderi, deoarece decodificarea recreează întotdeauna originalul fişier. Codecul #2 decodifică „YX” cu „ABC?? ABC”, și apoi încearcă să ghicească care sunt personajele care lipsesc. Codecul ar putea ghici „DE”, care are ca rezultat „ABCDEABC”. Codecul #2, care a fost cu 75 la sută mai mic, este a codec cu pierderi, deoarece procesul de decodare ar putea crea un fișier care este aproape de original, dar nu identic.

URL-uri și seturi de caractere

Nu toată codificarea produce un rezultat mai mic decât datele necodificate. De exemplu, adresa URL „example.com/Secret of Life.html” este nevalidă deoarece conține spații. Un programator Web codifică adresa URL, care înlocuiește toate spațiile cu „%20” pentru a crea „example.com/Secret%20of%20Life.html”. Procesul de decodare realizează operaţia inversă şi înlocuiește „%20” cu un spațiu. În mod similar, un program de bază de date poate codifica toate datele în Unicode, un set principal de caractere în majoritatea limbilor. Când un utilizator preia date, programul decodifică Unicode pentru a se potrivi cu setările de limbă și tastatură ale utilizatorului.

Codificare care nu poate fi decodificată

Unele codificări nu sunt destinate a fi decodificate. Un hash este un șir lung de caractere aleatorii utilizate cu un algoritm de codare pentru a produce un rezultat criptat care nu poate fi decodat, chiar și atunci când cunoașteți hash-ul. De exemplu, parola unui utilizator poate fi criptată cu un hash și stocată într-o bază de date. Dacă un hacker găsește baza de date, nu poate decoda nicio parolă. Când un utilizator se conectează, sistemul codifică parola pe care utilizatorul o introduce cu hash și compară rezultatul cu cel stocat în baza de date. Dacă un utilizator își uită parola, trebuie să o schimbe, deoarece sistemul nu cunoaște parola sa originală, ci doar valoarea ei criptată.