>> Tecnologia eletrônica >  >> Lar inteligente >> Vida Inteligente

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


Codificação é o processo de tradução de 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 letras minúsculas para maiúsculas. A decodificação é o processo inverso. Você pode decodificar "ABC" para "abc" usando o mesmo conjunto de regras. Existem muitas aplicações 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 para que os fluxos de vídeo de alta definição possam ser visualizados pela Internet.

Codificação de mídia


A codificação é comumente usada para reduzir o tamanho dos dados de áudio e vídeo. Um programa codificador-decodificador, chamado 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" por "Z". O arquivo resultante seria "ZDQZ", que é 50% menor que o arquivo original. O algoritmo do Codec #2 pode substituir "ABC?" com "Y" e "?ABC" com "X", onde "?" indica qualquer caractere. O arquivo resultante seria "YX", que é 75% menor que o arquivo original.

Decodificação de mídia


A decodificação usa o mesmo codec para reconstruir o arquivo original a partir de um arquivo codificado. Por exemplo, aplicar o Codec nº 1 a "ZDQZ" ao contrário substitui "Z" por "ABC" para criar o arquivo original "ABCDQABC". O codec nº 1, que era 50% menor, é chamado de codec sem perdas porque a decodificação sempre recria o arquivo original. O codec nº 2 decodifica "YX" com "ABC??ABC" e tenta adivinhar quais são os caracteres ausentes. O codec pode adivinhar "DE", o que resulta em "ABCDEABC". O codec nº 2, que era 75% 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 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 executa 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 às configurações de idioma e teclado do usuário.

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 o armazenado no banco de dados. Se um usuário esquecer sua senha, ele deve alterá-la, pois o sistema não conhece sua senha original, apenas seu valor criptografado.