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:
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:
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.