Databending JPEG 2000

JPEG 2000 es un estándar de compresión y codificación digital de imágenes creado por el Joint Photographic Experts Group (Grupo Conjunto de Expertos en Fotografía o JPEG), en el año 2000 con la intención de sustituir el formato original creado en 1992. El objetivo de JPEG 2000 es no sólo mejorar el rendimiento de compresión JPEG, sino también añadir (o mejorar) las características tales como la escalabilidad y la capacidad de edición. Hay una falta de información independiente JPEG2000: casi todos los materiales actualmente disponibles en la WWW son los miembros de la comisión JPEG, pero hay una serie de artículos muy interesantes sobre la comparación entre JPG y JPEG2000, artifacts, componentes, etc.
En cuanto a los elementos esenciales podríamos destacar:
JPEG 2000 ofrece tanto con pérdida como sin pérdida la misma secuencia de archivo, pues dispone de una sola arquitectura de compresión para ambas; es capaz de ofrecer altas relaciones de compresión para la compresión con pérdida y también es capaz de ofrecer relaciones de compresión de aproximadamente 2,5 : 1 para la compresión sin pérdidas. En relación con estos conceptos hay de decir que la compresión de imágenes con pérdida se aprovecha de las limitaciones de sistema visual humano y elimina algo de información que la gente de todos modos no se ve fácilmente. Esta forma logra una mejor compresión pero el original y los archivos descomprimidos ya no son los mismos. Por el contrario el formato sin pérdida de compresión de imagen (en formatos de imagen como GIF, PNG, TIFF, PCX, IFF) intenta mantener absolutamente todos los datos presentes en la imagen original.
Otra característica de JPEG 2000 es su capacidad de mostrar imágenes a diferentes tamaños y resoluciones desde el mismo archivo de imagen. Debido a que este formato se basa en ondas (la transformación wavelet), la corriente de onda puede ser sólo parcialmente descomprimido si el usuario sólo quiere una imagen de baja resolución, mientras que la imagen de resolución completa se puede ver si se desea.
Pero quizás lo más específico de JPEG 2000 es la división de la imagen en los llamados “Tiling”, cuadros o regiones rectangulares de la imagen que se transforman y se codifican por separado, lo cual tiene la ventaja de que se necesitará menos memoria para descodificar la imagen. Estos cuadros los vemos muy bien cuando hacemos un ligero databending sobre los archivos de este tipo como veremos en los ejemplos realizados. Luego estos cuadros son transformados a una profundidad arbitraria siguiendo la transformación wavelet (el análisis de una señal que puede dar información temporal y frecuencial de forma cuasi-simultánea) que permite que uno sea capaz de seleccionar una determinada área de una imagen para ver la más alta calidad dejando el resto de la imagen con una calidad inferior, lo que se llama un “área de interés”. Esto permite al usuario ver sólo una parte necesaria de la imagen en lugar de toda la imagen.
Estas características nos ayudarán mejor a comprender los resultados que obtengamos cuando realicemos nuestro databending. Cada formato de compresión tiene unos aspectos propios que lo definen por lo cual cuando hacemos glitch en imágenes con distintos formatos éstos tienden también a tener unas características comunes. Como veremos en los distintos ejemplos es muy específico la aparición de los “tiling” o cuadros, las sub-bandas (representan aspectos de la imagen asociados a un rango de frecuencias determinadas, así como un ámbito espacial de la imagen), o la crominancia de los componentes de color, lo que le confiere al glitch un carácter totalmente personal y diferente de los otros formatos de compresión.

route_1.jp2

 

Para realizar nuestro databend partimos de esta foto .jp2 con una resolución de 2048×1536 px.

P21000222

Abrimos el archivo en un editor de texto como Text Edit y empezamos por reemplazar caracteres. Vamos a Edición-> Buscar y Reemplazar; Si sólo ponemos una letra, numero o símbolo, como la cabecera tiene muchos caracteres es fácil que la que elijamos se encuentre en ella, lo cual no nos sirve pues destruiremos el archivo, por lo que hacemos una combinación de dos caracteres: ¿n x ac, dc x ne, etc; esto nos da un número pequeño de caracteres reemplazados ( 70,100), pero así iremos viendo cómo vamos alterando el archivo, viendo los cuadros y sub-bandas respectivos tan característicos de este formato de imagen.

P2100022_1

Seguimos reemplazando caracteres en grupos de dos.

P2100022_2

P2100022_3

Vemos cómo la imagen original, con las sustituciones seguidas que vamos haciendo y también añadiendo “cut & paste” varias veces en distintas partes del texto (eso sin añadir ni eliminar ningún bit) va adquiriendo ese databending tan característico del JPEG 2000, con las baldosas y cuadros.

Albert-5.jp2

Albert-6.jp2

Albert-7.jp2

Albert-8.jp2

En los siguientes ejemplos logré encontrar algún carácter que no estaba en la cabecera, como el “5” que reemplacé con el “6” respectivamente, lo que me dio 4.400 sustituciones y la “?” que reemplacé por la “c” lo que me dio 4533 caracteres reemplazados. La imagen queda totalmente alterada.

Albert-10.jp2

Albert-9.jp2

Con estas imágenes he hecho el siguiente gift animado:

Albert.jp2_2

Siguiendo el mismo proceso con Tex Edit, reemplazando caracteres y cortar y pegar, he hecho variaciones de la imagen de las barcas y con ellas he hecho este otro gif animado.

barquetas

También he probado cómo se comportan estos archivos con un editor hexadecimal, como 0xed y los resultados son los mismos que en los ejemplos anteriores. En la primera imagen sustituí unos pocos caracteres, y en la segunda hice “cortar y pegar” y reemplace dc x n, = 112 y 5 x 6 = 8326.

rodalies_22.jp2

rodalies0x1.jp2

Las siguientes imágenes están hechas a partir de fotos con un tamaño de 1440 x 1080 px; luego de someterlas al proceso de databending con Text Edit siguiendo las pautas anteriores, amplié a 2936 x 2193 px. y recorté las partes que me parecieron más interesantes a una resolución de 2048 x 1536 px.

13315215362.jp2_2

13670234392.jp2

013719457301_2

live.jp2

13314300471.jp2

Información más detallada en éstos links:

http://www.jpeg.org/jpeg2000/
http://es.wikipedia.org/wiki/JPEG_2000
http://www.verypdf.com/pdfinfoeditor/jpeg-jpeg-2000-comparison.htm
http://www.photozone.de/jpeg2000-vs-jpeg-vs-tiff

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s