domingo, 14 de febrero de 2010

Gracias Shannon

Como bien sabe todo varón de mi generación, esta es una bella era para ser un pajero compulsivo. Recordad si no, aquellas revistas acartonadas, aquellos diskettes con 5 fotos o aquellos vanos intentos por ver un clip de medio minuto con el módem echando humo... Hoy, sin embargo, podemos sumergirnos cual pececillos felices en un mar de perversión de lo más variada en cuestión de segundos. Pues bien, es hora de dar gracias amigos. No a dios (al que según los curas no le hace gracia que nos la machaquemos, que para eso están los monaguillos menores de edad), sino a Claude Shannon.

Pongamos que queremos mandar la siguiente imagen por internet:


Nos encontraremos con dos problemas principales:

  • La imagen tiene un cojón de píxeles y cada píxel tiene un color y una intensidad. La cantidad de información que hay que transmitir es enorme.
  • El canal por el que tenemos que transmitir no es perfecto. Ya sea en el cable, en el tramo de fibra óptica o dónde sea habrá muchos errores de transmisión, con lo que si no tenemos cuidado lo que se reciba será algo completamente irreconocible.
Como bien sabéis los asiduos de youporn, estos dos problemas no son ningún obstáculo para transmitir casi instantáneamente no ya fotos, sino vídeos de una definición bastante decente. En gran parte, esto se lo debemos a dos ideas de Shannon.

En una imagen (o en cualquier señal), hay una parte básica y lo demás es morralla redundante. En la foto de arriba hay zonas muy uniformes que parece estúpido representar píxel a píxel. No voy a entrar en los detalles, pero Shannon definió una manera de medir rigurosamente la información (lo llamó entropía, inspirado en la magnitud física) que contiene una señal para luego poder comprimirla (en la actualidad, por ejemplo, con JPEG).

Después de comprimir toda la información de una señal en el menor espacio posible, si el canal por el que transmitimos decide introducir errores, la hemos cagado bien cagada. Hay pues que reintroducir redundancia. Una forma muy tonta sería mandar la señal 30 veces, con lo cual quedaría claro qué errores habrían ocurrido y se podría recuperar la original. Esto sería un gasto bastante absurdo (tardaríamos 30 veces más de mandar la señal) y lo ideal sería añadir lo mínimo para asegurarnos de que podemos reconstruir la señal casi sin errores.

Y esto es precisamente lo que hizo Shannon, demostrando que hay una velocidad no nula a la que se puede transmitir con probabilidades de error despreciable. A esto lo llamó capacidad, y no es nada evidente. De hecho todo el mundo pensaba que esa velocidad sería cero. La demostración de Shannon, por cierto, era teórica y hasta 50 años después (en los 90) no se alcanzaron estas velocidades (fue gracias a los turbocódigos, pero eso ya es otra historia).

Poniéndome un poco filosófico, lo que hizo Shannon fue estructurar el tratamiento de la información, tanto cuando queremos eliminar redundancia (por ejemplo al escribir por el móvil "xq no cnststas?no abiams kdao q putas no eran qernos?tqm bsos") como cuando queremos añadirla para evitar ambigüedades en la transmisión (por ejemplo, dando dos toques en lugar de uno al llamar a la puerta para que no se confunda con otro ruido).

Toda esta historia es hoy una disciplina llamada teoría de la información. Hala venga, ya podéis volver al porno.

1 comentario:

Anónimo dijo...

no era que hay un algortimo mejor q los turbocodigos ?
Y don Claudio modeló el asunto para transmisiones telegráficas.