Codificación unaria


La codificación unaria , [nb 1] o el sistema numérico unario y también llamado a veces código de termómetro , es una codificación de entropía que representa un número natural , n , con n unos seguidos de un cero (si el número natural se entiende como un entero no negativo ) o con n  - 1 unos seguidos de un cero (si el número natural se entiende como un entero estrictamente positivo ). Por ejemplo, 5 se representa como 111110 o 11110. Algunas representaciones usan n o n - 1 ceros seguidos de uno. Los unos y los ceros son intercambiables sin pérdida de generalidad . La codificación unaria es tanto un código sin prefijo como un código de sincronización automática .

para .

para la cual k ≥ φ = 1,61803398879…, la proporción áurea , o, más generalmente, para cualquier distribución discreta para la cual

para . Aunque es la codificación símbolo por símbolo óptima para tales distribuciones de probabilidad, la codificación de Golomb logra una mejor capacidad de compresión para la distribución geométrica porque no considera los símbolos de entrada de forma independiente, sino que agrupa implícitamente las entradas. Por la misma razón, la codificación aritmética funciona mejor para distribuciones de probabilidad general, como en el último caso anterior.

La codificación unaria se utiliza en los circuitos neuronales responsables de la producción del canto de los pájaros . [1] [2] El núcleo en el cerebro de los pájaros cantores que juega un papel tanto en el aprendizaje como en la producción del canto de los pájaros es el HVC ( centro vocal alto ). Las señales de comando para diferentes notas en el canto de los pájaros emanan de diferentes puntos en el HVC. Esta codificación funciona como codificación espacial, que es una estrategia eficiente para los circuitos biológicos debido a su simplicidad y robustez inherentes.

Todos los datos binarios se definen por la capacidad de representar números unarios en longitudes de ejecución alternas de 1 y 0. Esto se ajusta a la definición estándar de códigos unarios de N dígitos del mismo número 1 o 0. Todas las longitudes de ejecución, por definición, tienen al menos un dígito y, por lo tanto, representan números enteros estrictamente positivos .