Diferencia entre codificación y decodificación

La codificación es el proceso de traducir datos entre dos formatos de acuerdo con un conjunto de reglas o una fórmula. Por ejemplo, puede codificar "abc" a "ABC" usando reglas de minúsculas a mayúsculas. La decodificación es el proceso inverso. Puede decodificar "ABC" a "abc" usando el mismo conjunto de reglas. Hay muchas aplicaciones diferentes para la codificación y decodificación de datos. El cifrado, por ejemplo, es una forma de codificación que utiliza una clave. Sin la clave, los datos codificados no se pueden decodificar. Los datos de video están codificados para hacerlos más pequeños para que las secuencias de video de alta definición se puedan ver a través de Internet.

Codificación de medios

La codificación se usa comúnmente para reducir el tamaño de los datos de audio y video. Un programa codificador-decodificador, llamado códec, aplica una serie de algoritmos matemáticos que eliminan datos redundantes. Por ejemplo, suponga que un archivo contiene los datos "ABCDQABC". El algoritmo del códec n. ° 1 podría ser reemplazar "ABC" con "Z". El archivo resultante sería "ZDQZ", que es un 50 por ciento más pequeño que el archivo original. El algoritmo del códec #2 podría reemplazar a "ABC?" con "Y" y "?ABC" con "X", donde "?" indica cualquier carácter. El archivo resultante sería "YX", que es un 75 por ciento más pequeño que el archivo original.

Descodificación de medios

La decodificación utiliza el mismo códec para reconstruir el archivo original a partir de un archivo codificado. Por ejemplo, aplicar el códec n.º 1 a "ZDQZ" al revés reemplaza "Z" por "ABC" para crear el archivo original "ABCDQABC". El códec n. ° 1, que era un 50 por ciento más pequeño, se denomina códec sin pérdidas porque la decodificación siempre recrea el archivo original. El códec #2 decodifica "YX" con "ABC??ABC" y luego intenta adivinar cuáles son los caracteres que faltan. El códec podría adivinar "DE", lo que da como resultado "ABCDEABC". El códec n.º 2, que era un 75 por ciento más pequeño, es un códec con pérdida porque el proceso de decodificación podría crear un archivo parecido al original, pero no idéntico.

URL y conjuntos de caracteres

No toda la codificación produce un resultado que es más pequeño que los datos no codificados. Por ejemplo, la URL "example.com/Secret of Life.html" no es válida porque contiene espacios. Un programador web codifica la URL, que reemplaza todos los espacios con "%20" para crear "example.com/Secret%20of%20Life.html". El proceso de decodificación realiza la operación inversa y reemplaza "%20" con un espacio. De manera similar, un programa de base de datos podría codificar todos los datos en Unicode, un conjunto maestro de caracteres en la mayoría de los idiomas. Cuando un usuario recupera datos, el programa decodifica el Unicode para que coincida con la configuración de idioma y teclado del usuario.

Codificación que no se puede decodificar

Algunas codificaciones no están destinadas a ser decodificadas. Un hash es una cadena larga de caracteres aleatorios que se usa con un algoritmo de codificación para producir un resultado cifrado que no se puede decodificar, incluso cuando conoce el hash. Por ejemplo, la contraseña de un usuario puede cifrarse con un hash y almacenarse en una base de datos. Si un pirata informático encuentra la base de datos, no puede decodificar ninguna contraseña. Cuando un usuario inicia sesión, el sistema codifica la contraseña que el usuario ingresa con el hash y compara el resultado con el almacenado en la base de datos. Si un usuario olvida su contraseña, debe cambiarla, ya que el sistema no conoce su contraseña original, solo su valor encriptado.