El formato Portable Network Graphics (PNG) organiza los datos de la imagen en una serie de 'chunks' o fragmentos discretos. Cada fragmento sigue una estructura específica: una longitud de 4 bytes, un nombre de 4 bytes, los datos reales y una verificación de redundancia cíclica (CRC) para la detección de errores. La convención de nombres de estos fragmentos dicta cómo un decodificador los maneja. Por ejemplo, las letras mayúsculas significan fragmentos 'Críticos' necesarios para mostrar la imagen correctamente, mientras que las letras minúsculas denotan fragmentos 'Anciliarios'. Esta distinción significa que, si bien los metadatos como 'IHDR' (Cabecera de imagen) son esenciales para definir el ancho, la altura y la profundidad de bits, otra información como 'gAMA' (Gamma) o 'pHYs' (Dimensiones físicas) se considera opcional para el renderizado básico.

Un gráfico que ilustra las convenciones de nomenclatura para los fragmentos PNG, mostrando categorías como Anciliario, Público, Reservado e Inseguro.
La convención de nombres de los fragmentos PNG determina cómo un decodificador prioriza y maneja diferentes tipos de datos.iter.ca

La convención de nombres de estos fragmentos dicta cómo un decodificador los maneja. Por ejemplo, las letras mayúsculas significan fragmentos 'Críticos' necesarios para mostrar la imagen correctamente, mientras que las letras minúsculas denotan fragmentos 'Anciliarios'.

En el núcleo del proceso de decodificación se encuentra el fragmento 'IDAT', que contiene los datos de imagen comprimidos reales. Debido a que los codificadores de transmisión pueden no conocer la longitud total de los datos de antemano, un archivo PNG puede contener múltiples fragmentos IDAT que el decodificador concatena en un solo flujo. Este flujo se descomprime luego utilizando el algoritmo estándar zlib. Sin embargo, la descompresión por sí sola no produce una imagen visible; los datos resultantes aparecen sesgados o distorsionados porque cada fila de la imagen contiene un byte de 'filtro'. Estos filtros —como 'Average', 'Up' o 'Paeth'— están diseñados para hacer que los datos sean más comprimibles por zlib al describir la relación entre un píxel y sus vecinos. Para reconstruir la imagen final, el decodificador debe 'desfiltrar' los datos, deshaciendo estas operaciones matemáticas fila por fila.

Más allá de la decodificación estándar, el formato PNG admite el 'entrelazado', que permite que una imagen se cargue en pasadas progresivas. Esto se logra dividiendo la imagen en siete áreas no superpuestas, conocidas como Adam7. Estas pasadas se almacenan secuencialmente en el archivo, lo que permite a un visor mostrar primero una versión de baja resolución de la imagen, que va ganando detalle gradualmente a medida que se cargan más pasadas. Esta técnica es particularmente útil para la percepción visual humana, ya que el detalle horizontal suele priorizarse durante las etapas iniciales de carga. Aunque el formato es robusto, incluso pequeños errores en los cálculos de los filtros —como el manejo incorrecto de desbordamientos de enteros en el filtro 'Average'— pueden dar lugar a artefactos visuales significativos, ya que la reconstrucción matemática de los píxeles falla.

Un diagrama que muestra las siete pasadas Adam7 no superpuestas en una cuadrícula de 8x8, ilustrando la carga progresiva de imágenes.
El método de entrelazado Adam7 divide una imagen en siete pasadas para permitir la carga y visualización progresiva.iter.ca

Esto se logra dividiendo la imagen en siete áreas no superpuestas, conocidas como Adam7. Estas pasadas se almacenan secuencialmente en el archivo, lo que permite a un visor mostrar primero una versión de baja resolución de la imagen, que va ganando detalle gradualmente a medida que se cargan más pasadas.

Una letra S multicolor que aparece con fallos y distorsionada a partir de un cuarto de su recorrido hacia abajo.
Pueden ocurrir artefactos visuales cuando la reconstrucción matemática de los píxeles falla debido a errores en los cálculos de los filtros.iter.ca

Aunque el formato es robusto, incluso pequeños errores en los cálculos de los filtros —como el manejo incorrecto de desbordamientos de enteros en el filtro 'Average'— pueden dar lugar a artefactos visuales significativos, ya que la reconstrucción matemática de los píxeles falla.