Codificación gamma de Elias


El código γ de Elias o el código gamma de Elias es un código universal que codifica enteros positivos desarrollado por Peter Elias . [1] : 197, 199  Se usa más comúnmente cuando se codifican números enteros cuyo límite superior no se puede determinar de antemano.

Para representar un número , Elias gamma (γ) usa bits. [1] : 199 

La codificación gamma se utiliza en aplicaciones donde el valor codificado más grande no se conoce de antemano, o para comprimir datos en los que los valores pequeños son mucho más frecuentes que los valores grandes.

La codificación gamma no codifica números enteros cero o negativos. Una forma de manejar el cero es sumar 1 antes de codificar y luego restar 1 después de decodificar. Otra forma es prefijar cada código distinto de cero con un 1 y luego codificar cero como un solo 0.

Una forma de codificar todos los enteros es configurar una biyección , mapeando enteros (0, −1, 1, −2, 2, −3, 3, ...) a (1, 2, 3, 4, 5, 6 , 7, ...) antes de codificar. En el software, esto se hace más fácilmente asignando entradas no negativas a salidas impares y entradas negativas a salidas pares, por lo que el bit menos significativo se convierte en un bit de signo invertido :

La codificación exponencial de Golomb generaliza el código gamma a números enteros con una distribución de ley de potencia "más plana", al igual que la codificación de Golomb generaliza el código unario. Implica dividir el número por un divisor positivo, comúnmente una potencia de 2, escribir el código gamma para uno más que el cociente y escribir el resto en un código binario ordinario.