La codifica è il processo di traduzione dei dati tra due formati secondo un insieme di regole o una formula. Ad esempio, è possibile codificare "abc" in "ABC" utilizzando le regole da minuscole a maiuscole. La decodifica è il processo inverso. Puoi decodificare "ABC" in "abc" usando lo stesso set di regole. Esistono molte diverse applicazioni per la codifica e la decodifica dei dati. La crittografia, ad esempio, è una forma di codifica che utilizza una chiave. Senza la chiave, i dati codificati non possono essere decodificati. I dati video sono codificati per renderli più piccoli in modo che i flussi di video ad alta definizione possano essere visualizzati su Internet.

Donna che ascolta la musica su un telefono cellulare

Codifica multimediale

La codifica viene comunemente utilizzata per ridurre le dimensioni dei dati audio e video. Un programma codificatore-decodificatore, chiamato codec, applica una serie di algoritmi matematici che eliminano i dati ridondanti. Ad esempio, supponiamo che un file contenga i dati "ABCDQABC". L'algoritmo del codec n. 1 potrebbe sostituire "ABC" con "Z." Il file risultante sarebbe "ZDQZ", che è più piccolo del 50% rispetto al file originale. L'algoritmo del codec # 2 potrebbe sostituire "ABC?" con "Y" e "? ABC" con "X", "dove"? " indica qualsiasi personaggio. Il file risultante sarebbe "YX", che è il 75 percento più piccolo del file originale.

Decodifica multimediale

La decodifica utilizza lo stesso codec per ricostruire il file originale da un file codificato. Ad esempio, l'applicazione del Codec n. 1 su "ZDQZ" al contrario sostituisce "Z" con "ABC" per creare il file originale "ABCDQABC". Il codec n. 1, che era più piccolo del 50%, è chiamato codec lossless perché la decodifica ricrea sempre il file originale. Il codec n. 2 decodifica "YX" con "ABC ?? ABC", quindi cerca di indovinare quali sono i caratteri mancanti. Il codec potrebbe indovinare "DE", che risulta in "ABCDEABC". Il codec n. 2, che era più piccolo del 75%, è un codec con perdita di dati, poiché il processo di decodifica potrebbe creare un file vicino all'originale, ma non identico.

URL e set di caratteri

Non tutta la codifica produce un risultato più piccolo dei dati non codificati. Ad esempio, l'URL "example.com/Secret of Life.html" non è valido perché contiene spazi. Un programmatore Web codifica l'URL, che sostituisce tutti gli spazi con "% 20" per creare "esempio.com/Secret%20of%20Life.html". Il processo di decodifica esegue l'operazione inversa e sostituisce "% 20" con uno spazio. Allo stesso modo, un programma di database potrebbe codificare tutti i dati in Unicode, un set principale di caratteri nella maggior parte delle lingue. Quando un utente recupera i dati, il programma decodifica Unicode in base alla lingua e alle impostazioni della tastiera dell'utente.

Codifica che non può essere decodificata

Alcune codifiche non devono essere decodificate. Un hash è una lunga serie di caratteri casuali utilizzati con un algoritmo di codifica per produrre un risultato crittografato che non può essere decodificato, anche quando si conosce l'hash. Ad esempio, la password di un utente potrebbe essere crittografata con un hash e archiviata in un database. Se un hacker trova il database, non può decodificare alcuna password. Quando un utente accede, il sistema codifica la password immessa dall'utente con l'hash e confronta il risultato con quello memorizzato nel database. Se un utente dimentica la sua password, deve cambiarla, poiché il sistema non conosce la sua password originale, ma solo il suo valore crittografato.