Adam7 es un algoritmo de entrelazado para imágenes ráster , más conocido como el esquema de entrelazado que se utiliza opcionalmente en imágenes PNG . Una imagen entrelazada de Adam7 se divide en siete subimágenes, que se definen replicando este patrón de 8 × 8 en toda la imagen.
1 6 4 6 2 6 4 67 7 7 7 7 7 7 75 6 5 6 5 6 5 67 7 7 7 7 7 7 73 6 4 6 3 6 4 67 7 7 7 7 7 7 75 6 5 6 5 6 5 67 7 7 7 7 7 7 7 |
A continuación, las subimágenes se almacenan en el archivo de imagen en orden numérico.
Adam7 usa siete pasadas y opera en ambas dimensiones, en comparación con solo cuatro pasadas en la dimensión vertical que utiliza GIF . Esto significa que una aproximación de la imagen completa se puede percibir mucho más rápidamente en las primeras pasadas, particularmente si se utilizan algoritmos de interpolación como la interpolación bicúbica . [1]
Historia
Adam7 lleva el nombre de Adam M. Costello, quien sugirió el método el 2 de febrero de 1995 y después de los siete pasos involucrados.
Es una reordenación [2] de este esquema de cinco pases [3] que había sido propuesto anteriormente por Lee Daniel Crocker :
1 5 3 55 4 5 43 5 2 55 4 5 4 |
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.
Pases
Los píxeles incluidos en cada pasada y el total de píxeles codificados en ese punto son los siguientes:
Pase 1, 1/64 = 1,5625%
Pase 2, 1/32 = 3,125%
Pase 3, 1/16 = 6.25%
Pase 4, 1/8 = 12,5%
Pase 5, 1/4 = 25%
Pase 6, 1/2 = 50%
Pase 7, 1/1 = 100%
Al renderizar, la imagen generalmente se interpolará en etapas anteriores, en lugar de solo renderizar estos píxeles.
Algoritmos relacionados
Adam7 es un modelo multiescala de los datos, similar a una transformada de ondículas discretas con ondículas de Haar , aunque comienza desde un bloque de 8 × 8 y reduce la resolución de la imagen, en lugar de diezmar ( filtrado de paso bajo , 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.
Iteración
Adam7 surge de la iteración del siguiente patrón:
1233 |
lo que puede interpretarse como "plegado" en las dimensiones vertical y horizontal. Del mismo modo, GIF entrelazado1324 puede verse como una iteración del 12 patrón, pero solo en la dirección vertical (12 se expande a 1.2. que se completa como 1324).
El uso de este patrón de 3 pasadas significa que la primera pasada es (1/2) 2 = 1/4 (25%) de la imagen.
La repetición de este patrón una vez produce un esquema de 5 pasadas; después de 3 pasadas esto rinde
1. 2.. . . .3. 3.. . . . |
que luego se completa para:
1 4 2 45 5 5 53 4 3 45 5 5 5 |
En el patrón de 5 pasadas, la primera pasada (1/4) 2 = 1/16 (6.25%) de la imagen.
Iterar de nuevo produce 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 iterar, produciendo un esquema de 9 pasadas, un esquema de 11 pasadas, etc., o alternativamente se puede usar un número adaptativo de pasadas, tantas como lo permita el tamaño de la imagen (por lo que la primera pasada consiste 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 velocidades de conexión en cuestión), un esquema de 7 pasadas se consideró suficiente y preferible a un esquema simple de 5 pasadas.
Referencias
- ^ Introducción a PNG - nuwen.net
- ^ Costello, Adam M. (02 de febrero de 1995). "entrelazado revisitado: el esquema de Adam7" . png-list (lista de correo) . Consultado el 18 de abril de 2016 .
Reorganicé un poco el esquema de Lee7 (Lee7 es la extensión obvia del esquema de 5 pases de Lee), creando el esquema de Adam7
- ^ Lane, Tom (1 de febrero de 1995). "Métodos entrelazados: pruebas visuales" . png-list (lista de correo) . Consultado el 18 de abril de 2016 .
Propuesta de entrelazado 2-D de 5 pasadas de Lee Crocker