Código Elías Omega

El Elias Omega Code  es un código universal para codificar números enteros positivos, desarrollado por Peter Elias.

Al igual que los códigos gamma y delta de Elias , asigna al comienzo de un número entero el orden de su magnitud en el código universal. Sin embargo, a diferencia de los otros dos códigos mencionados, el código omega codifica recursivamente el prefijo, por lo que también se le conoce como código Elias recursivo .

Para codificar un número:

  1. Reescribe un grupo de ceros al final de la vista.
  2. Si el número a codificar es uno, deténgase; si no, agregue la representación binaria del número como un grupo al comienzo de la representación.
  3. Repetir el paso anterior, con el número de dígitos (bits) recién escritos, menos uno, como con el nuevo número a codificar.

Los primeros códigos se muestran a continuación. También se da una llamada distribución estimada, que describe la distribución de valores para los cuales esta codificación da como resultado un código de tamaño mínimo (ver: código universal ).

Empezar a codificar:

Número Codificación
Probabilidad estimada
una 0 1/2
2 100 1/8
3 11 0 1/8
cuatro 10 100 0 1/64
5 10 101 0 1/64
6 10 110 0 1/64
7 10 111 0 1/64
ocho 11 1000 0 1/128
9 11 1001 0 1/128
diez 11 1010 0 1/128
once 11 1011 0 1/128
12 11 1100 0 1/128
13 11 1101 0 1/128
catorce 11 1110 0 1/128
quince 11 1111 0 1/128
dieciséis 10 100 10000 0 1/2048
17 10 100 10001 0 1/2048

Algoritmo para decodificar el número representado en el código omega de Elias:

  1. Comience con la variable N establecida en 1.
  2. Lea el primer "grupo" que sigue a los N dígitos restantes, que consistirán en "0" o "1". Si consta de "0", significa que el valor del entero es 1; si comienza con "1", entonces N obtiene el valor del grupo, que se interpreta como un número binario.
  3. Lea cada grupo siguiente; consistirá en un "0" o un "1" después de los N dígitos restantes. Si el grupo es "0", significa que el valor del entero es N; si comienza con "1", entonces N toma el valor de un grupo, interpretado como un número binario.

La codificación Omega se utiliza en aplicaciones donde no se conoce de antemano el valor más grande a codificar, o para la compresión de datos donde los valores pequeños son mucho más comunes que los grandes.

Véase también

Literatura