Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Código golomb
Código golom-ride
Código golomb exponencial
Algoritmo y aplicaciones
log 2 (1+ p)
m=
p
Encontrar q dividido k para m y ubicamos el prefijo
k
q= ≅ valor entero
m
2. Identificar el número de bits a utilizar en el sufijo con el parámetro C
3. Encontrar el valor e r el cual nos indica que el valor binario que debemos ubicar en el sufijo
dependiendo del número bits encontrados en el paso anterior y la comparación con 2−1
r =k− ( q∗m )
Comparar el valor de r y 2−1:
sir <2 c −m: El numero de Bits es igual a c-1
Prefijo Sufijo
q número de 1s 0 Valor de r o r´ en
binario
Ejemplo de compresión
C =1.58 aproximado a 1
Código Tunstall
Descripción e importancia
Algoritmo y aplicación
El algoritmo requiere como entrada un alfabeto de entrada U , junto con una distribución de
probabilidades para cada entrada de palabra. También requiere una constante arbitraria C , que es
un límite superior al tamaño del diccionario que calculara. El diccionario en cuestión, D , se
construye como un árbol de probabilidades, en el que cada borde está asociado a una letra del
alfabeto de entrada. El algoritmo es así:
Imaginemos que deseamos codificar la cadena “hola mundo”. Supongamos además (algo poco
realista) que el alfabeto de entrada |U | contiene solo caracteres de la cadena “hola mundo”, es
decir, ‘h’, ‘e’, ‘I’, ‘w’, ‘o’, ‘r’, ‘d’. Por lo tanto, podemos calcular la probabilidad de cada carácter en
función de su apariencia estadística en la cadena de entrada. Por ejemplo, la letra L aparece tres
3
veces en una cadena de 12 caracteres: su probabilidad es
12
Inicializamos el árbol, comenzando con un árbol de |U |=9 hojas. Por lo tanto, cada palabra está
directamente asociada a una letra del alfabeto. Las 9 palabras que obtenemos pueden codificarse
en una salida de tamaño fijo de [ log 2 9 ] =4 bits
Luego tomamos la hoja de mayor probabilidad y convertirlo en otro árbol de |U |=9 hojas, una
para cada personaje. Recalculamos las probabilidades de esas hojas. Por ejemplo, la secuencia de
dos letras L ocurre una vez. Dado que hay tres ocurrencias de letras seguidas de una L, la
1
∗3
probabilidad resultante es 3 1
=
12 12
Tenga en cuenta que podríamos iterar aún más, aumentando el número de palabras en |U |−1=8
cada vez.