Ir al contenido

JPEG, TIFF, y los seres extraterrestres

¿Cómo le enviarías una imagen a alguien que no sabe nada de JPEG, TIFF, PNG, GIF o PSD, y que ni siquiera sabe de la existencia de Photoshop, pero que resulta vital que la reciba y la entienda? Por ejemplo, ¿cómo mandar una foto a un ser de otro planeta? No parece posible, ¿verdad? Sin embargo, esto se hizo al menos una vez, precisamente un día como hoy, el 16 de noviembre de 1974. El cómo, es lo que averiguaremos a continuación.

Y de paso, ¿por qué tantos formatos de archivo de imagen? Y más importante, ¿por qué hacen falta, después de todo? Permítanme partir de la siguiente base: todos sabemos en qué consiste una imagen formada por pixeles (raster images). Digamos por sencillez que es un arreglo bidimensional de mosaicos o celdas (pixeles), con la particularidad de que cada pixel tiene asignado un único color. Ese color está representado por uno o más números escritos como bits, según la imagen; por ejemplo, en una imagen RGB típica cada pixel necesita 8 bits (o, lo que es lo mismo, un byte) por cada canal R, G y B, es decir 3 bytes. Pensemos ahora en una imagen de 1.000 pixeles de ancho por 700 pixeles de alto, es decir 700.000 pixeles. Como cada uno requiere 3 bytes, esta imagen necesita 2.100.000 bytes o, lo que es lo mismo, alrededor de 2 megabytes.

El problema se presenta cuando decido almacenar esa imagen, porque todos los sistemas de almacenamiento y de transmisión de datos operan en serie; un pendrive, un disco rígido, un DVD, el cable de internet o la señal de wifi guardan o envían datos como una secuencia lineal de bytes. Todo lo que puede hacer un sistema de almacenamiento al guardar información es almacenar el primer byte, a continuación el segundo, y así hasta el último (y lo mismo si debemos transmitirlos). Esta secuencia, una vez guardada en un medio de almacenamiento, es lo que llamamos archivo.

Genial, pero ¿cuál es la dificultad? El problema está en que, en una imagen, los bytes forman una especie de matriz con filas y columnas (dos dimensiones), mientras que una secuencia es como una línea (una dimensión). Puedo ordenar esas celdas en una secuencia lineal, pero hay más de una forma de hacerlo. Por ejemplo, primero toda la fila 1, luego la 2, hasta la última; o puedo hacerlo por columnas; o puedo hacerlo por canales (primero todos los bytes de rojo, luego todos los de verde, después los de azul), etc. Supongamos que elijo por filas, y guardo la secuencia resultante en un pendrive. ¿Cómo sabe el destinatario de ese pendrive que los pixeles están guardados por filas? Si no los lee en el orden correcto, el resultado será cualquier cosa. Es más: si supone que la imagen está en RGB (y no tiene porqué suponerlo), podrá deducir que tiene 700.000 pixeles; ¿cuál es su ancho y alto? Podría ser 1.000 por 700, o 700 por 1000, o 1400 por 500, o 350 por 2000…

Por lo tanto, no alcanza con simplemente enviar los 2.100.000 bytes; el receptor necesita saber al menos a) cuántos canales tiene la imagen; b) cuántos bits usa cada canal; c) en qué orden los guardé y d) cuáles son sus dimensiones en pixeles. Esta información requiere bytes extra: son los metadatos de la imagen. Un formato de archivo no es más que una convención sobre cómo ordenar los bytes de la información de color de la imagen y cómo guardar los metadatos, todo ello en una secuencia. Y como cualquier convención, debe ser conocida por ambas partes, emisor y receptor.

Muy bien, pero ¿por qué tantos? Porque cada aplicación tiene su compromiso entre tamaño, versatilidad y compatibilidad. Así tenemos formatos relativamente sencillos pero “prisioneros” de una plataforma (BMP en Windows, PICT en Mac), algo “pesados” pero altamente versátiles y retrocompatibles con aplicaciones anteriores (TIFF), orientados exclusivamente a la compresión (JPEG), los que priorizan el tamaño y la velocidad de carga sobre la profundidad de color (GIF), los que permiten translucencia pero sólo en RGB (PNG), los derivados de los flujos de trabajo de preprensa (EPS, Scitex CT), los diseñados para imágenes médicas (DICOM), etc.

Cómo enviar una foto a un extraterrestre: el mensaje de Arecibo

¿Y si no tengo contacto con mi receptor? Al no existir un “acuerdo previo” sobre algún “formato de archivo”, no me queda otra que enviar la información de la manera más sencilla posible y apelar a su inteligencia. Por ejemplo, hagamos que cada pixel sea blanco o negro, de esa forma estaremos usando un sólo canal y un sólo bit por pixel. Para las dimensiones, elijamos un tamaño tal que exista una única forma de obtenerlo multiplicando ancho y alto; esto se logra sencillamente haciendo que las dimensiones sean números primos. Un ejemplo: una imagen de 34.933 pixeles sólo puede tener 181 x 193, ya que son los únicos números que multiplicados dan esa cifra. Usando estas sencillas ideas, Frank Drake de la universidad de Cornell, y el famoso científico y divulgador Carl Sagan, diseñaron un mensaje con la esperanza que, algún día, un ser extraterrestre pudiera captarlo y descifrarlo. Ese mensaje se transmitió desde el radiotelescopio de Arecibo, en la isla de Puerto Rico, el 16 de noviembre de 1974, hacia un cúmulo estelar globular llamado M13 a 25.000 años luz de distancia (más de 237 millones de millones de kilómetros de la vereda de casa).

Arecibo_message
El mensaje de Arecibo, ordenado como una “imagen” de 23 x 73 pixeles.

El mensaje de Arecibo (mostrado aquí) constaba de 1679 bits de información, número igual a 23 x 73 (dos números primos), con la esperanza que nuestros primos alienígenas dispusieran esos bits en una cuadrícula de 23 pixeles de ancho por 73 de alto. Cada píxel es blanco o negro; en esta imagen se han pintado con color ciertas partes del mensaje para identificar los diferentes datos enviados. Por ejemplo:

  • Sector superior en blanco: Una convención para contar de 1 hasta 10 usando números binarios. Verticalmente se lee, usando el punto blanco al final de cada grupo como un “punto” o terminación del número, las cantidades 001 (uno), 010 (dos), 011 (tres), 100 (cuatro), 101 (cinco), 110 (seis), 111 (siete), 001000 (ocho, ya ocupando dos columnas), 001001 (nueve) y 001010 (diez). Esta convención es la que se usará en el resto del mensaje que contenga datos numéricos;
  • Sector violeta (superior): Usando la convención anterior, los números 1, 6, 7, 8 y 15, que son los números atómicos del hidrógeno, carbono nitrógeno, oxígeno y fósforo, elementos químicos que componen nuestro ADN;
  • Sector verde: Usando el anterior como guía, las fórmulas moleculares de los seis nucleótidos dentro de nuestro ADN: adenina, timina, citosina, guanina, deoxiribosa y fosfato. Por ejemplo, el segundo bloque (arriba, segundo desde la izquierda) se lee 4, 5, 5, 0, 0, es decir en su orden 4 de hidrógeno, 5 de carbono, 5 de nitrógeno, ninguno de oxígeno y ninguno de fósforo, lo que da C5H4N5, la fórmula molecular de la adenina (tal como aparece en el ADN, a diferencia de su forma libre);
  • Curvas en azul y barra vertical en blanco: un boceto de la doble hélice del ADN (azul), junto la cantidad de nucleótidos que se pensaba entonces que contenía (en blanco). Según la primera convención, ese número es 4.294.441.822 (hoy se estima que es algo menor);
  • Datos de la humanidad: En rojo una idea de cómo “luce” el ser humano, la línea azul a la izquierda pretende indicar que la altura del ser humano es el “número” en blanco entre medio, tomando como unidad la longitud de onda del mensaje. A la derecha, el número que representa la población mundial de entonces, estimada en 4.292.853.750 personas;
  • Sector en amarillo: Otro boceto, en este caso del sistema solar que dio origen al planeta de los autores del mensaje. De izquierda a derecha el Sol, Mercurio, Venus, Tierra (desplazado hacia arriba con la esperanza que se entienda que de ese planeta provino el mensaje), Marte, Júpiter, Saturno, Urano, Neptuno y Plutón.
  • Sector violeta (inferior): Un diagrama de la antena que emitió el mensaje. La parte inferior pretende indicar, otra vez mediante la misma convención, las dimensiones de la antena.

¿Serán nuestros primos capaces de decodificar este mensaje? Difícil saberlo. Pensemos que el mensaje tardará 25.000 años en llegar, y suponiendo que respondan, habrá que esperar otros 25.000 años para recibir la respuesta.

Publicado enGeneralImágenes

Se el primero en comentar

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *