codificar | decodificar | comprimir

> tunstall | variable | fija <

// Codificación Tunstall: compresión óptima de variable a longitud fija

0 caracteres
0 caracteres

>> funciones

[VAR→FIJA]

Codificación V2F

Mapea secuencias de longitud variable a códigos de longitud fija.

[ÓPTIMO]

Basado en probabilidades

El diccionario se construye usando la distribución de probabilidad de los símbolos.

[DECODIFICABLE]

Decodificación sencilla

Los códigos de longitud fija permiten una decodificación simple y rápida.

>> información técnica

Cómo funciona la codificación Tunstall

La codificación Tunstall construye un diccionario de secuencias de longitud variable que se asignan a códigos binarios de longitud fija. A partir de símbolos individuales, expande iterativamente la secuencia de mayor probabilidad añadiendo cada símbolo del alfabeto. Esto produce un código variable-a-fijo óptimo donde las secuencias más probables obtienen sus propios códigos.

Ejemplo de Tunstall

Texto: 'aabaa' con P(a)=0.8, P(b)=0.2

Construcción del diccionario (códigos de 3 bits):
Inicial: a, b
Expandir 'a': aa, ab
Expandir 'aa': aaa, aab
Expandir 'ab': aba, abb

Diccionario final (8 códigos):
aaa → 000
aab → 001
aba → 010
abb → 011
aa  → 100
ab  → 101
a   → 110
b   → 111

Codificación: 'aabaa' → 001 100 (aab + aa)

¿Por qué usar codificación Tunstall?

  • Códigos de salida de longitud fija
  • Implementación sencilla del decodificador
  • Sin problemas de sincronización
  • Adecuado para implementaciones en hardware
  • Óptimo para fuentes sin memoria (memoryless)

>> preguntas frecuentes

¿Qué es la codificación Tunstall?

La codificación Tunstall es un método de codificación entrópica de longitud variable a fija. A diferencia de Huffman (fijo a variable), Tunstall asigna secuencias de longitud variable a palabras de código de longitud fija, lo que la hace ideal para aplicaciones que requieren una tasa de salida constante.

¿Tunstall frente a Huffman?

Huffman: entrada fija → salida variable (por ejemplo, 'a' → '0', 'b' → '10'). Tunstall: entrada variable → salida fija (por ejemplo, 'aa' → '000', 'ab' → '001'). Tunstall es mejor para hardware y sincronización, pero normalmente ofrece ratios de compresión algo menores.

¿Cómo se construye el diccionario?

Se comienza con símbolos individuales. Luego se repite: 1) encontrar la secuencia con mayor probabilidad, 2) eliminarla y añadir todas las extensiones posibles añadiendo un símbolo, 3) continuar hasta alcanzar el tamaño de diccionario deseado (2^n para códigos de n bits).

¿Dónde se utiliza la codificación Tunstall?

La codificación Tunstall se utiliza en compresión de voz, codificación de imágenes y escenarios donde se requiere una tasa de salida fija. Es especialmente útil en implementaciones de hardware y sistemas en tiempo real donde los códigos de longitud variable complicarían el temporizado.