La indexación recursiva es un algoritmo utilizado para representar grandes valores numéricos utilizando miembros de un conjunto relativamente pequeño .
La indexación recursiva escribe las diferencias sucesivas del número después de extraer el valor máximo del conjunto alfabético del número, y continúa recursivamente hasta que la diferencia se encuentre dentro del rango del conjunto.
La indexación recursiva con un alfabeto de 2 letras se denomina código unario .
Codificación
Para codificar un número N , siga reduciendo el elemento máximo de este conjunto ( S max ) a partir de N y muestre S max para cada diferencia, deteniéndose cuando el número se encuentre en el rango semicerrado/semiabierto [0 – S max ).
Ejemplo
Sea S = [0 1 2 3 4 … 10], un conjunto de 11 elementos, y tenemos que indexar recursivamente el valor N=49.
Según este método, resta 10 a 49 y repite el proceso hasta que la diferencia sea un número comprendido entre 0 y 10.
Los valores son 10 ( N = 49 – 10 = 39), 10 ( N = 39 – 10 = 29), 10 ( N = 29 – 10 = 19), 10 ( N = 19 – 10 = 9), 9. La secuencia indexada recursivamente para N = 49 con el conjunto S es 10, 10, 10, 10, 9.
Descodificación
Calcula la suma de los valores del índice.
Ejemplo
Descifrar el ejemplo anterior implica 10 + 10 + 10 + 10 + 9 = 49.
Usos
Esta técnica se utiliza con mayor frecuencia en sistemas de codificación de longitud variable para codificar secuencias más largas de las que permiten los tamaños del alfabeto.
Referencias
- Khalid Sayood, Introducción a la compresión de datos, 3.ª ed., Morgan Kaufmann .
- Teoría de la codificación
- Compresión de datos
- Algoritmos de compresión sin pérdidas