Codificación de pares de bytes
# Codificación de pares de bytes

La codificación de pares de bytes o la codificación de digram es una forma simple de compresión de datos en la que el par más común de bytes consecutivos de datos se reemplaza con un byte que no ocurre dentro de esos datos. Se requiere una tabla de reemplazos para reconstruir los datos originales. El algoritmo fue descrito públicamente por primera vez por Philip Gage en un artículo de febrero de 1994 "Un nuevo algoritmo para la compresión de datos" en el C Users Journal.

Se ha demostrado que una variante de la técnica es útil en varias aplicaciones de procesamiento de lenguaje natural, como GPT, GPT-2 y GPT-3 de OpenAI.

## Ejemplo de codificación de par de bytes

Supongamos que queremos codificar los datos

El par de bytes "aa" ocurre con mayor frecuencia, por lo que será reemplazado por un byte que no se usa en los datos, "Z". Ahora tenemos los siguientes datos y tabla de reemplazo:

Luego repetimos el proceso con el par de bytes "ab", reemplazándolo con Y:

Podríamos detenernos aquí, ya que el único par de bytes literal que queda solo ocurre una vez. O podríamos continuar el proceso y usar codificación recursiva de pares de bytes, reemplazando "ZY" con "X":

Estos datos no se pueden comprimir aún más mediante la codificación de pares de bytes porque no hay pares de bytes que se producen más de una vez.

Para descomprimir los datos, simplemente realice los reemplazos en el orden inverso.

