Adam7 es un algoritmo de entrelazado para imágenes rasterizadas , más conocido como el esquema de entrelazado que se utiliza opcionalmente en imágenes PNG . Una imagen entrelazada Adam7 se divide en siete subimágenes, que se definen replicando este patrón de 8x8 en toda la imagen.
Luego, las subimágenes se almacenan en el archivo de imagen en orden numérico.
Adam7 utiliza siete pasadas y opera en ambas dimensiones, en comparación con las cuatro pasadas que utiliza GIF en la dimensión vertical . Esto significa que se puede percibir una aproximación de toda la imagen mucho más rápidamente en las primeras pasadas, en particular si se utilizan algoritmos de interpolación como la interpolación bicúbica . [1]
Adam7 debe su nombre a Adam M. Costello, quien sugirió el método el 2 de febrero de 1995, y a los siete pasos implicados.
Se trata de una reorganización [2] de este esquema de cinco pasos [3] que había sido propuesto anteriormente por Lee Daniel Crocker :
Las propuestas especulativas alternativas en ese momento incluían el entrelazado de espirales cuadradas y el uso de curvas de Peano , pero fueron rechazadas por ser demasiado complicadas.
Los píxeles incluidos en cada pasada y el total de píxeles codificados en ese punto son los siguientes:
Al renderizar, la imagen generalmente se interpolará en etapas anteriores, en lugar de solo renderizar estos píxeles.
Adam7 es un modelo multiescala de los datos, similar a una transformada wavelet discreta con wavelets de Haar , aunque comienza a partir de un bloque de 8x8 y reduce la resolución de la imagen, en lugar de diezmarla ( filtrado de paso bajo y luego reducción de resolución). Por lo tanto, ofrece un peor comportamiento de frecuencia, mostrando artefactos ( pixelación ) en las primeras etapas, a cambio de una implementación más simple.
Adam7 surge de la iteración del siguiente patrón:
lo que puede interpretarse como "plegado" en las dimensiones vertical y horizontal. De manera similar, el entrelazado GIF1324puede verse como una iteración de la12patrón, pero sólo en la dirección vertical (12se expande a1.2.que se rellena como1324).
El uso de este patrón de 3 pasadas significa que la primera pasada es (1/2) 2 = 1/4 (25%) de la imagen.
Al iterar este patrón una vez se obtiene un esquema de 5 pasadas; después de 3 pasadas, esto produce
que luego se completa de la siguiente manera:
En el patrón de 5 pasadas, la primera pasada (1/4) 2 = 1/16 (6,25 %) de la imagen.
Al iterar nuevamente se obtiene el esquema Adam7 de 7 pasadas, donde la primera pasada (1/8) 2 = 1/64 (1,5625 %) de la imagen.
En principio, esto se puede repetir, obteniendo un esquema de 9 pasadas, un esquema de 11 pasadas, etc., o bien se puede utilizar un número adaptable de pasadas, tantas como lo permita el tamaño de la imagen (de modo que la primera pasada consista en un solo píxel), como es habitual en el modelado multiescala sin escala. En el contexto en el que se desarrolló PNG (es decir, para los tamaños de imagen y las velocidades de conexión en cuestión), se consideró que un esquema de 7 pasadas era suficiente [ ¿por qué? ] y preferible a un esquema simple de 5 pasadas.
un poco el esquema Lee7 (Lee7 es la extensión obvia del esquema de 5 pasadas de Lee), y obtuve el esquema Adam7.
de entrelazado 2-D de 5 pasadas de Lee Crocker