¿Qué es un GIF entrelazado?

Un GIF entrelazado almacena las filas de la imagen en cuatro pasadas en lugar de hacerlo secuencialmente. Por ello, un decodificador puede mostrar una versión poco detallada de la imagen completa antes de que lleguen suficientes datos para representar cada fila.

Cómo funcionan los GIF entrelazados

El entrelazado de GIF solo cambia el orden en que las filas de un fotograma se incorporan a los datos de imagen comprimidos con LZW. La primera pasada cubre toda la altura de forma dispersa y las pasadas posteriores rellenan los huecos. La vista previa resultante es un comportamiento del decodificador, no algo que el formato establezca: GIF89a define el orden de las filas y un decodificador puede dibujarlas a medida que llegan. El filtro de desentrelazado de Firefox, por ejemplo, copia cada fila recibida en las filas vecinas que aún no han llegado cuando está activada la visualización progresiva. La tabla de colores, las dimensiones, las reglas de transparencia y los píxeles finales son los mismos que en el almacenamiento secuencial. Las bibliotecas difieren en qué componente deshace la reordenación: DGifSlurp de giflib coloca las filas de un fotograma entrelazado en sus posiciones finales mediante los desplazamientos de las cuatro pasadas e invoca el lector de líneas una vez por fila en el orden almacenado.

Datos clave

  1. ¿En qué orden se almacenan las filas? La pasada 1 contiene una de cada 8 filas a partir de la fila 0, la pasada 2 una de cada 8 filas a partir de la fila 4, la pasada 3 una de cada 4 filas a partir de la fila 2, y la pasada 4 una de cada 2 filas a partir de la fila 1. GIF89a fija este patrón, por lo que un decodificador dispone de aproximadamente una octava parte de las filas después de la pasada 1, una cuarta parte después de la pasada 2 y la mitad después de la pasada 3 (exactamente esas proporciones cuando la altura es múltiplo de 8). Los fotogramas de poca altura dejan pasadas vacías: con cuatro filas o menos no hay ninguna fila de la pasada 2, y un fotograma de una sola fila únicamente tiene la pasada 1. Un desentrelazador debe comparar la fila inicial de cada pasada con la altura del fotograma antes de copiar una fila: un informe público de error del decodificador GIF de APNG4Android describe cómo escribía fuera de su búfer de salida con un fotograma entrelazado de dos filas porque copiaba primero una fila de la pasada 2.
  2. ¿Cómo sé si un GIF está entrelazado? Se determina por fotograma, no por archivo. El indicador de entrelazado es un bit del byte empaquetado de cada descriptor de imagen (giflib lo comprueba con la máscara 0x40), y cada imagen del flujo de datos tiene su propio descriptor, por lo que los fotogramas de una misma animación pueden diferir. Las herramientas no siempre muestran el indicador: un usuario de libvips solicitó un campo de entrelazado en la salida del encabezado GIF después de que gifsave incorporara una opción interlace.
  3. ¿El entrelazado aporta algo además de la vista previa? No. Las filas reordenadas siguen siendo índices de la tabla de colores activa, comprimidos con LZW, y la transparencia sigue siendo el único índice indicado en la extensión de control gráfico. El entrelazado no añade colores ni transparencia parcial.
  4. ¿Mis herramientas escribirán GIF entrelazados sin que se lo pida? Algunas sí, pero no en todas las rutas del código. El manual de Pillow indica que su opción de guardado interlace está activada de forma predeterminada, salvo que la imagen tenga menos de 16 píxeles de ancho o de alto. En el código fuente de Pillow (la versión 12.0.0 y la rama main consultada en octubre de 2026), solo la aplica el componente de escritura de un único fotograma: pasar interlace=False en ese caso la desactiva, mientras que los fotogramas escritos mediante un guardado de varios fotogramas (save_all que produce más de un fotograma) siempre tienen el indicador de entrelazado desactivado y las filas en orden secuencial. Gifsicle lo deja en manos de quien lo invoca: --interlace lo activa y --same-interlace conserva el ajuste existente de cada entrada. Configura la opción explícitamente cuando un consumidor posterior espere una disposición concreta y lee el indicador de los fotogramas que hayas escrito en lugar de deducirlo del valor predeterminado.

Cuándo son relevantes los GIF entrelazados

El entrelazado es relevante en dos ámbitos. En la entrega, cambia el orden en que llegan las filas, lo que permite que un decodificador muestre pronto una versión poco detallada del fotograma completo. Es un orden de filas, no un ajuste de compresión, pero LZW comprime las filas reordenadas, por lo que no se garantiza que el tamaño codificado coincida con el del encoding secuencial. GIF89a no indica cómo afecta el entrelazado al tamaño, así que compara ambos resultados en lugar de suponer que son iguales o que uno es más pequeño. En el procesamiento, se siguen produciendo archivos entrelazados, ya que Pillow entrelaza de forma predeterminada los GIF de un solo fotograma al guardarlos, por lo que cualquier código que lea los datos de imagen GIF fila por fila debe volver a ordenar las filas antes de recortar, redimensionar o convertir un fotograma.

Fuentes

Convierte tus conocimientos sobre multimedia en un pipeline funcional

Conecta las subidas, el procesamiento, la IA, el almacenamiento y la entrega mediante una sola API declarativa, mientras nos encargamos por ti del stack de encoding, el escalado y los cambios constantes de formatos.

Prueba Transloadit gratis