Diferença entre codificação e decodificação

Mulher ouvindo música em um telefone celular

Os arquivos de música são normalmente codificados com o codec MP3.

Crédito da imagem: Purestock / Purestock / Getty Images

Codificação é o processo de traduzir dados entre dois formatos de acordo com um conjunto de regras ou uma fórmula. Por exemplo, você pode codificar "abc" para "ABC" usando regras de minúsculas para maiúsculas. A decodificação é o processo inverso. Você pode decodificar "ABC" para "abc" usando o mesmo conjunto de regras. Existem muitos aplicativos diferentes para codificação e decodificação de dados. A criptografia, por exemplo, é uma forma de codificação que usa uma chave. Sem a chave, os dados codificados não podem ser decodificados. Os dados de vídeo são codificados para torná-los menores, de modo que fluxos de vídeo de alta definição possam ser visualizados na Internet.

A codificação é comumente usada para reduzir o tamanho dos dados de áudio e vídeo. Um programa codificador-decodificador, denominado codec, aplica uma série de algoritmos matemáticos que eliminam dados redundantes. Por exemplo, suponha que um arquivo contenha os dados "ABCDQABC." O algoritmo do Codec # 1 pode substituir "ABC" com "Z." O arquivo resultante seria "ZDQZ", que é 50 por cento menor que o original Arquivo. O algoritmo do Codec # 2 pode substituir "ABC?" com "Y" e "? ABC" com "X," onde "?" indica qualquer personagem. O arquivo resultante seria "YX", que é 75 por cento menor que o arquivo original.

Vídeo do dia

A decodificação usa o mesmo codec para reconstruir o arquivo original a partir de um arquivo codificado. Por exemplo, aplicar o Codec # 1 a "ZDQZ" ao contrário substitui "Z" por "ABC" para criar o arquivo original "ABCDQABC." Codec # 1, que era 50 por cento menor, é chamado de codec sem perdas porque a decodificação sempre recria o original Arquivo. Codec # 2 decodifica "YX" com "ABC?? ABC ", e então tenta adivinhar quais são os personagens que faltam. O codec pode adivinhar "DE", o que resulta em "ABCDEABC". Codec # 2, que era 75 por cento menor, é um codec com perdas, porque o processo de decodificação pode criar um arquivo próximo ao original, mas não idêntico.

URLs e conjuntos de caracteres

Nem toda codificação produz um resultado menor do que os dados não codificados. Por exemplo, o URL "example.com/Secret of Life.html" é inválido porque contém espaços. Um programador da Web codifica a URL, que substitui todos os espaços por "% 20" para criar "example.com/Secret%20of%20Life.html." O processo de decodificação realiza a operação inversa e substitui "% 20" por um espaço. Da mesma forma, um programa de banco de dados pode codificar todos os dados em Unicode, um conjunto mestre de caracteres na maioria dos idiomas. Quando um usuário recupera dados, o programa decodifica o Unicode para corresponder ao idioma do usuário e às configurações de teclado.

Codificação que não pode ser decodificada

Algumas codificações não se destinam a ser decodificadas. Um hash é uma longa sequência de caracteres aleatórios usada com um algoritmo de codificação para produzir um resultado criptografado que não pode ser decodificado, mesmo quando você conhece o hash. Por exemplo, a senha de um usuário pode ser criptografada com um hash e armazenada em um banco de dados. Se um hacker encontrar o banco de dados, ele não poderá decodificar nenhuma senha. Quando um usuário efetua login, o sistema codifica a senha que o usuário insere com o hash e compara o resultado com aquele armazenado no banco de dados. Se o usuário esquecer sua senha, ele deve alterá-la, pois o sistema não conhece sua senha original, apenas seu valor criptografado.