Hay un mito reciente circulando por la red que hace referencia a la posibilidad de que ciertas imágenes capturadas por la sonda Mars Express de la ESA representen en realidad signos de civilización [1] [2] [3] [4].
La controversia está causada por una confusión de quienes buscan inspirar sus fantasías en esas imágenes. El argumento principal es que, puesto que los mismos patrones se pueden ver en varias imágenes en diferentes posiciones, están necesariamente sobre la superficie de Marte y no son, por tanto, defectos en la captura de la imagen.
La imagen del vídeo [2] no se encuentra ya en la página que el autor indica, así que aquí hay un enlace directo: http://www.esa.int/esa-mmg/mmg.pl?idf=SEMPMT0A90E. Es una imagen de 2283×1522 píxels con este aspecto:
No confíe el lector en la versión aquí replicada para análisis alguno, puesto que esta imagen está reducida y comprimida, y en los detalles pequeños, de los cuales aquí se han perdido muchos, radica la cuestión. Descargue la versión original de la web de la ESA si desea seguir este texto.
Aquí ya salta claramente a la vista un aspecto. O Marte es pequeñito y cuadrado, o esa imagen es un render en tres dimensiones usando un mapa de elevación y una textura. La descripción de la imagen dice así:
This perspective view, taken by the High Resolution Stereo Camera (HRSC) on board ESA's Mars Express spacecraft, shows Crater Hale on Mars.
The image is centred at latitude 36° South and longitude 324° East. The image was taken with a ground resolution of about 40 metres per pixel during Mars Express orbit 533 in June 2004. [...]
Esto es un error de la ESA, pues esa descripción, tal y como está escrita, da a pensar que esa imagen que se ve es directamente la captura de la sonda, cuando en realidad no es así: es la proyección en tres dimensiones de la misma utilizando un mapa de altura. La textura es casi con toda probabilidad esta: http://www.esa.int/esa-mmg/mmg.pl?idf=SEMTQWWJD1E y es la imagen de referencia que vamos a tomar en el siguiente análisis. Los datos de elevación para obtener el mapa de altura han sido obtenidos a partir de una versión estereoscópica capturada por la sonda, tal que esta: http://www.esa.int/esa-mmg/mmg.pl?idf=SEM1QWWJD1E.
De modo que los «analistas» toman imágenes que se ven en varias perspectivas, amplían la misma zona y en todas les aparecen los mismos patrones geométricos. Al hacerlo, no se dan cuenta de que están todo el tiempo observando la misma imagen aplicada como textura al mismo mapa de elevación colocado en diversas posiciones para hacer el render 3D.
Aquí vemos un detalle de estos patrones, sobre la imagen en perspectiva (recorte tomado tal cual de las coordenadas 1226,0 - 1522,446):
Y aquí vemos la misma zona de la imagen original (tomada de las coordenadas 1300,40 - 1450,190; después girada 180° para que la posición coincida con la anterior, después ampliada un 300% y por último aplicando el filtro Normalize de GIMP, aunque con cualquier método de aumento del contraste se apreciará el cuadriculado igualmente):
Se puede observar que, efectivamente, los patrones cuadriculados coinciden para la vista en perspectiva y para la imagen original. Lógico, es la misma imagen, con el contraste aumentado en la vista en perspectiva debido a la iluminación 3D. Más de uno estará sin duda preguntándose, a la vista de las imágenes, por qué tanto revuelo por unos artefactos JPEG. Es una buena pregunta que cabría dirigir a los proponentes de estas ideas. Para los que no, van unas explicaciones. El análisis es extensible a todas las porciones que muestran «signos de civilización», pero nos centraremos en el recorte recién presentado.
Funcionamiento de la cámara
La Cámara Estéreo de Alta Resolución (HRSC, por sus siglas en inglés) es una cámara que registra la imagen línea a línea de barrido, a diferencia de las cámaras convencionales que registran la imagen completa cada vez. Cada línea contiene 5.184 píxels; la altura no depende de la resolución de la cámara, sino que es indefinida. La frecuencia de los barridos depende de la velocidad de movimiento de la sonda, para hacer coincidir los tamaños horizontal y vertical. Se toman nueve canales simultáneamente: tres de RGB, tres de datos tridimensionales, uno del infrarrojo cercano y dos de fotometría. Hay más información sobre la cámara aquí: HRSC on Mars Express.
Para poder transmitir a la Tierra la ingente cantidad de datos generada por la cámara, fue preciso hacer algunas concesiones. Concretamente, hubo que reducir en algunos casos el número de pixels y que comprimir mediante JPEG, buscando un compromiso entre la calidad de la imagen y el ancho de banda de la transmisión. Aun con esas reducciones, la cantidad de datos transmitida está en el orden de los terabytes. Lo fundamental aquí es que la versión que llega a la Tierra ya está comprimida con JPEG. Aunque en la galería se presenten archivos TIFF comprimidos sin pérdida, las imágenes que contienen ya han pasado por una compresión JPEG en su transmisión a la Tierra.
Algoritmo de compresión
Conceptualmente, la compresión JPEG funciona, a grandes rasgos, como sigue. Se divide la imagen en cuadrados de 8x8 píxels (los bordes necesitan tratamiento especial si la resolución de la imágen no es múltiplo de 8). Para cada cuadrado, se realiza una transformada discreta del coseno (DCT), lo que se traduce en la práctica en descomponer el cuadrado en una combinación lineal de estos cuadrados:
Es decir, se descompone como la suma del primer cuadro multiplicado por un número, más el segundo multiplicado por otro número, más el tercero multiplicado por otro... En total, sesenta y cuatro coeficientes. Esos coeficientes (que pueden ser negativos) son los que en realidad se guardan, en lugar de los píxels. Después es posible reconstruir el cuadrado original a partir de esos sesenta y cuatro valores. La compresión se consigue reduciendo la precisión con que se almacenan. En realidad, lo que se guarda son unos números enteros que representan los coeficientes con la precisión reducida. Se almacenan, además, en formato comprimido (típicamente Huffman), pudiendo llegar a ocupar cada uno incluso tan poco como un bit.
Además de esto, en las imágenes en color también hay un cambio de espacio de color, de RGB a YCbCr, para codificar la luminancia y la crominancia de forma distinta, puesto que el ojo es más sensible a los cambios de iluminación que a los de color. Así, la crominancia se codifica en píxels más «gordos» o más «anchos» que la luminancia, lo que implica menos información que comprimir. A este proceso se le llama downsampling (reducción de muestreo) de la crominancia.
Esa es la base de la teoría. Si hay alguien interesado, existen explicaciones más detalladas en [5], [6], [7] y [8], por ejemplo (la última incluye además código Haskell para decodificar un JPEG simple monocromo).
Dependiendo de multitud de factores, es posible que en el proceso de compresión queden muchos de los cuadros anulados (coeficiente cero) y tan sólo se vean uno o dos sumados. Además, cuando la diferencia de tonalidad de una zona es escasa, el rango dinámico es bajo y las variaciones pueden verse reducidas incluso a dos tonos. Cuando esto ocurre, el efecto (amplificado a blanco y negro puros) es el representado en la siguiente figura:
O su inverso:
Comparemos de nuevo con la imagen marciana:
O los marcianos cultivan sus campos dándoles forma de cuadro de DCT, o esto tiene todo el aspecto de ser artefactos (efectos secundarios no deseados debidos a la pérdida por la compresión).
Desmontando excusas
Vamos a ir viendo y comentando las objeciones con las que me he encontrado.
Es que es la única zona fotografiada por la Mars Express en la que se dan esos defectos. Eso es porque a la ESA se les ha pasado censurarlo.
No. Es la única fotografía donde se ven a simple vista, pero los defectos están en más imágenes, aunque en la mayoría de las demás hay que saber cómo sacarlos a relucir.
Ante todo, hay que tener en cuenta que esa no es la imagen tal como la tomó la sonda, como más adelante veremos, sino una versión postprocesada para hacerla más brillante y mejorar el contraste. Esa mejora del contraste es la que hace que los defectos salgan a la luz. Eso es aún más notable en la versión 3D.
Un ejemplo donde se ven defectos similares:
A simple vista no se ven los mismos defectos, pero si descomponemos la imagen en YCbCr (el espacio de color en el que trabaja la compresión JPEG), obsérvese lo que aparece en el canal Cb:
Parece que se adivina algo. Mejoremos el contraste (usando Normalize):
Ahí están de nuevo. Obsérvese el tamaño de los puntos de la cuadrícula secundaria, mucho mayores que los píxels de la imagen. Esto nos indica que en esta imagen o se ha hecho un downsampling de crominancia enorme, probablemente de 6×6 u 8×8, o más probablemente, la ESA ha empleado la vista nadir para aportar datos de luminancia, ya que la resolución de dicha vista es sustancialmente mayor.
Pero has tenido que hacer malabarismos para sacar esos defectos a relucir. En la imagen original se ven a simple vista o simplemente aumentando un poco el contraste.
Es cierto que ha habido que hacer algunos malabarismos, pero no es cierto que en la imagen original se vean tan fácilmente. Sólo se ve en imágenes postprocesadas. Las siete que hay del Hale en la galería de imágenes de la ESA (a fecha de escritura de esta entrada) son postprocesadas y proceden de la misma imagen original.
¿Y cuál es la imagen original? Para averiguarlo tenemos que seguir las pistas indicadas en este breve artículo: [9]. Esto nos conduce a la web de la Freie Universität Berlin (FUB). Tienen un subdominio específico para el mapa de Marte elaborado por la Mars Express: http://hrscview.fu-berlin.de/. Buscamos una imagen que incluya el cráter Hale y la órbita Nº. 533, que es la nombrada en la descripción de la imagen que nos interesa.
Está aquí: [10].
Está disponible para descarga en dos formatos: PDS (alojado en el PSA, el Planetary Science Archive de la ESA) y VICAR (alojado en la propia FUB). Ninguno de los dos formatos es reconocido por Gimp directamente (aunque hay un plugin para leer PDS aquí: http://registry.gimp.org/node/1627), pero el VICAR tiene una estructura lo bastante sencilla como para que se pueda leer sin necesidad de conversores específicos. El ImageMagick que tengo viene con códec de VICAR, así que quien tenga la misma suerte puede usarlo para convertir los archivos a un formato reconocible por nuestro programa gráfico sin más. El xloadimage también soporta VICAR y también es capaz de realizar la conversión con el parámetro -dump
. Nos interesan los canales rojo, verde y azul (los acabados en re4.53.bz2, gr4.53.bz2 y bl4.53.bz2, respectivamente).
Para los que no quieran instalarse el ImageMagick sólo para convertirlo, explicamos aquí cómo hacerlo de forma artesanal pero sencilla. El formato VICAR es muy simple: consta de una cabecera en ASCII y a continuación, los datos crudos de la imagen. En este caso todos los archivos son imágenes en escala de grises con 8 bits por píxel. Al no soportar compresión, han sido comprimidos con bzip2 para que ocupen menos. Los usuarios de Windows que no conozcan el bzip2 quizá puedan descomprimirlo con WinRar o WinZip.
Para convertir la imagen descomprimida a formato TGA, más popular, basta con descargar este archivo [11] y anteponerlo al VICAR, con lo que se convertirá en TGA. Para anteponer el archivo, el Linux y el Windows tienen formas diferentes de hacerlo. En Windows, en una ventana de símbolo del sistema, se puede escribir:
copy /b h0533_0000.tgahdr + h0533_0000.re4.53 h0533_0000.re4.53.tga copy /b h0533_0000.tgahdr + h0533_0000.gr4.53 h0533_0000.gr4.53.tga copy /b h0533_0000.tgahdr + h0533_0000.bl4.53 h0533_0000.bl4.53.tga
Y en Linux, en una ventana de terminal:
cat h0533_0000.tgahdr h0533_0000.re4.53 > h0533_0000.re4.53.tga cat h0533_0000.tgahdr h0533_0000.gr4.53 > h0533_0000.gr4.53.tga cat h0533_0000.tgahdr h0533_0000.bl4.53 > h0533_0000.bl4.53.tga
El archivo h0533_0000.tgahdr sirve sólo para imágenes con resolución 3512×19608, por lo que la única imagen adicional para la que servirá es para la infrarroja, por si alguien tiene curiosidad.
Tras añadir la cabecera TGA al archivo VICAR, hay que desechar las tres primeras líneas, ya que no son datos de imagen, sino de la cabecera VICAR, que todavía está en el archivo. De todas formas, la parte que nos interesa está cerca del límite inferior de la imagen. Es el último cráter grande visible, y está cortado por la derecha (por eso la imagen en la galería de la ESA también lo está).
Cada imagen TGA se puede usar como uno de los canales RGB para recomponer la imagen. En Gimp esto se puede hacer con Compose. Temporalmente (durante unas pocas semanas desde la fecha de escritura de esta entrada), la imagen resultante está disponible para descarga aquí: [temp1]. Ocupa 48 Mb comprimida como PNG. La versión descomprimida ocupa más de 200 Mb, así que es preferible que tengamos un ordenador con bastante memoria si queremos abrirla con un navegador. Los créditos de rigor:
HRSCview. Freie Universitaet Berlin and DLR Berlin, http://hrscview.fu-berlin.de/
Esta es «casi» la imagen original usada por la ESA para obtener la imagen principal del Hale de la galería. Aquí está la misma zona que en las imágenes anteriores, una vez recortada y rotada, con su color original y con los datos byte a byte coincidentes con los originales:
Es de destacar lo oscura que está, por lo que siendo datos de 8 bits, el rango dinámico está obviamente mermado. También está muy azulada; no hay apenas tonos rojizos. Nada comparable a ese cráter Hale brillante que se nos muestra en http://www.esa.int/esa-mmg/mmg.pl?idf=SEMTQWWJD1E.
Veamos su descomposición RGB (clic para ampliar):
Para apreciar mejor los detalles, veamos lo mismo pero en escala de grises:
Todavía no se ven muy bien, así que aquí va una versión con el contraste mejorado:
Con esto ya podemos sacar algunas conclusiones. El canal R ha quedado prácticamente destrozado por los artefactos de compresión, al estar tan oscuro. El canal G y el B aún son un poco aprovechables. Comparemos ahora con la descomposición RGB de la imagen de la galería de la ESA:
El canal G y el B coinciden, sin duda, pero ¿de dónde ha salido ese canal R tan nítido comparado con la imagen VICAR?
La respuesta: del canal nadir. Sí, esa imagen con la friolera de 14048×78432 píxels y 354 Mb comprimidos (más de 1 Gb descomprimido) que hay para descarga. Abarca la misma área pero a mayor resolución. Concretamente, 4 veces más resolución en cada eje (es decir, 16 píxels por cada píxel de las otras).
He comprobado que coinciden. No puede generarse un TGA porque el tamaño vertical es mayor que el máximo admitido por dicho formato, que es 65.535, así que lo he convertido a PGM. Al Gimp le ha costado un rato cargar la imagen, otro rato hacer el recorte del cráter y otro rato cerrarla, pero al final obtuve mi premio, un recorte de 800×800 de la zona de interés (clic para la versión completa):
Una vez escalada y ajustados los niveles, la coincidencia es casi total:
Las escasas diferencias se deben probablemente a pequeños ajustes del autor de la imagen de la galería para orientarla de acuerdo con una proyección nadir y hacerla coincidir con los canales G y B.
Y el canal G (verde) exhibe exactamente los mismos defectos que la imagen de la discordia:
En resumen, la imagen del cráter Hale usada como textura en los render 3D es una versión retocada, con color falso (en concreto, un canal rojo que no es el real sino que procede de la imagen nadir pancromática) de una imagen muy oscura y deteriorada de partida, en la que los defectos de compresión salen a la luz en cuanto se aumenta el contraste. Al usar la misma imagen para todas las proyecciones, los defectos han sido reproducidos de igual manera. Se aplica tanto a http://www.esa.int/esa-mmg/mmg.pl?idf=SEMPMT0A90E como a http://www.esa.int/esa-mmg/mmg.pl?idf=SEMCMT0A90E.
Si fuera como dices, se verían patrones similares en otras imágenes.
Sólo en las que han sido postprocesadas, amplificando los defectos sustancialmente. Como en esta imagen de Google Maps: [12]
¿Puedes acaso mostrar una del mismo cráter donde no se vean los mismos patrones?
Sí. Hay más imágenes del cráter Hale, como estas de la NASA: [13]
Pero esa es de la NASA y podrían haber sido más cuidadosos encubriendo. Además, esa imagen tiene menos resolución.
Bien, pues veamos más imágenes de la FUB que recogen el cráter Hale. La órbita 511: [14]. Puesto que ya hemos visto cómo extraerla, vamos al grano. Aquí una cabecera apropiada para una imagen con esa resolución: [15]. La imagen recompuesta (2294×14826, 28 Mb) está temporalmente disponible para descarga aquí: [temp2]. Se ve nuestra zona de interes por los pelos (la raya negra de arriba es el borde de la captura):
La imagen es más clara, con lo cual hay mayor rango dinámico y la calidad por tanto es mejor, como se ve en la descomposición RGB siguiente, incluyendo el canal R, que, aunque deteriorado, al menos ya muestra algún detalle:
Compárese con la descomposición RGB de la anterior, la correspondiente a la órbita 533:
¿Tiene defectos de compresión la 511? Sí, sin duda. ¿En los mismos lugares? Definitivamente no. Son imágenes distintas. Los patrones han cambiado de forma por completo, porque no eran sino defectos del JPEG.
Otras imágenes del cráter Hale que al lector le puede interesar estudiar: [16], [17].
Conclusiones finales
Los defectos de la compresión JPEG de la imagen tomada como origen para obtener las demás, eran demasiado acusados en el canal R como para poder usarlos, por lo que han sido descartados y reemplazados; los canales G y B se han mantenido, y sus defectos han trascendido a las imágenes finales, siendo los del canal G los más acusados y visibles. Otras tomas del mismo cráter no exhiben los mismos patrones, sino otros diferentes. Se trata pues, sin duda, de artefactos de compresión JPEG.
Y a modo de postdata, la imagen de la órbita 2526 procesada por el visor HRSCview, donde no se ve más que lo que hay, un cráter: 2526_0001.
Apéndice
A continuación se lista el programa en PHP para obtener la imagen con los cuadrados DCT del JPEG.
<?php // Resolución de color (Nº. de tonos de gris). Máx. 255. $r = 255; $img = imagecreate(300, 300); $clr = array(); $bg = imagecolorallocate($img, 255, 128, 64); // Fondo $clr[0] = imagecolorallocate($img, 0, 0, 0); for ($i=2; $i<256; $i++) $clr[$i-1] = imagecolorallocate($img, $i, $i, $i); for ($yy = 0; $yy < 8; $yy++) { imagefilledrectangle($img, 0, 38*$yy+34, 299, 38*$yy+37, $clr[254]); imagefilledrectangle($img, 38*$yy+34, 0, 38*$yy+37, 299, $clr[254]); for ($xx = 0; $xx < 8; $xx++) for ($y = 0; $y < 8; $y++) for ($x = 0; $x < 8; $x++) { $c = ( cos((2*$x+1)*$xx*pi()/16) * cos((2*$y+1)*$yy*pi()/16) + 1.0) * 0.4999999; imagefilledrectangle($img, $xx*38+1+$x*4, $yy*38+1+$y*4, $xx*38+4+$x*4, $yy*38+4+$y*4, $clr[floor($c*$r)*(254.9999999/($r-1))]); } } header('Content-type: image/png'); imagepng($img); imagedestroy($img); ?>
Hay un color para los bordes y 255 grises. Para dar cabida al color de los bordes, se ha eliminado el color con RGB (1, 1, 1). El parámetro $r
es la resolución de color, esto es, el número de colores (tonos de gris) que habrá en la imagen. Ajustándolo a 2 se obtiene la versión bicolor usada en el texto. Para obtener la imagen en negativo, cámbiese floor
por 254-floor
.
Agradecimientos
Agradecimientos a Julio por los datos que aportó en la discusión sobre este tema, especialmente algunos enlaces de los presentados.
También a la ESA, la FUB y el DLR (el Centro Aeroespacial Alemán) por hacer públicas las imágenes y los datos.
Referencias
[1] http://www.marsanomalyresearch.com/evidence-reports/2005/084/hale-civ-evidence.htm
[2] http://www.youtube.com/watch?v=qcR7VX-FwDY
[3] http://www.youtube.com/watch?v=PDEiHJwjCwc
[4] http://www.youtube.com/watch?v=0-dHqJYcDOM
[5] http://www.ams.org/featurecolumn/archive/image-compression.html
[6] http://dvd-hq.info/data_compression_2.php
[7] http://www.cs.sfu.ca/CC/365/mark/material/notes/Chap4/Chap4.2/Chap4.2.html
[8] http://www.imperialviolet.org/binary/jpeg/
[9] http://adsabs.harvard.edu/abs/2008LPI....39.1822M
[10] http://hrscview.fu-berlin.de/cgi-bin/ion-p?page=product.ion&code=25554104&image=0533_0000
[11] http://www.formauri.es/personal/pgimeno/xfiles/Hale/h0533_0000.tgahdr
[12] http://maps.google.com/maps?f=q&source=s_q&q=15%C2%B039%2702.89%22S+128%C2%B041%2751.78%22E&sll=37.0625,-95.677068&sspn=33.077336,63.369141&ie=UTF8&ll=-15.650674,128.69778&spn=0.002454,0.003868&t=h&z=18
[13] http://alderaan.arc.nasa.gov/pdsimages/select?qt=simple&q=product_id%3A%22611A46%22
[14] http://hrscview.fu-berlin.de/cgi-bin/ion-p?page=product.ion&code=78872241&image=0511_0000
[15] http://www.formauri.es/personal/pgimeno/xfiles/Hale/h0533_0000.tgahdr
[16] http://hrscview.fu-berlin.de/cgi-bin/ion-p?page=product.ion&code=79936214&image=2526_0001
[17] http://hrscview.fu-berlin.de/cgi-bin/ion-p?page=product.ion&code=99640167&image=4343_0000.
Actualización
La FUB confirma mis hallazgos: Respuesta de la FUB sobre las imágenes del Hale
3 comments:
joder tio como te comes la cabeza. debes estar chinao. no hay quien se lea esa mierda
Muy interesante e ilustrativo. Gracias por el trabajo invertido.
Impresionante post, gracias por el análisis, muy completo y didáctico.
Post a Comment