9 puntos por GN⁺ 2025-06-26 | 2 comentarios | Compartir por WhatsApp
  • El formato de archivo PNG se revisó por primera vez en 20 años y recupera su relevancia de antaño
  • Esta especificación incorpora oficialmente varias tecnologías modernas, como soporte para HDR, APNG (animación) y datos Exif
  • Adobe, Apple, Google y otras grandes empresas de TI, junto con compañías de radiodifusión, participaron de forma conjunta en su desarrollo
  • La especificación más reciente ya es compatible con varios programas, como Chrome, Safari y Photoshop
  • También hay planes para futuras actualizaciones, como mejores técnicas de compresión y codificación/decodificación en paralelo

Introducción: el regreso de PNG y su importancia

  • Recientemente, el formato de archivo PNG se actualizó con una nueva especificación tras casi 20 años de estancamiento
  • Instituciones importantes como la Biblioteca del Congreso de Estados Unidos, Library and Archives Canada y los Archivos Nacionales de Australia adoptan PNG como formato oficialmente recomendado
  • Con esta nueva especificación, PNG recupera su competitividad en el mercado y demuestra su capacidad de innovación

Nuevas funciones y características

Soporte adecuado para HDR y compatibilidad futura

  • El nuevo PNG ofrece soporte para HDR (High Dynamic Range)
  • En la imagen comparativa entre los espacios de color Rec. 2020 y Rec. 709, se muestra que el área más amplia (el triángulo exterior) representa los colores que puede expresar una imagen HDR
  • Esta información HDR solo requiere 4 bytes adicionales (más la sobrecarga existente de chunks de PNG)
  • Chris Lilley y otros autores originales, junto con destacados expertos técnicos, participaron para explicar claramente esta nueva tecnología

Reconocimiento oficial de APNG (PNG animado)

  • El PNG animado (APNG), propuesto originalmente por Mozilla y compatible con Firefox, también se incorporó a la especificación oficial
  • Antes solo era compatible con parte del software, pero ahora está ampliamente adoptado en diversos programas

Soporte oficial para datos Exif

  • Con Exif es posible almacenar metadatos como copyright, información de la cámara e información GPS
  • Esto garantiza una alta utilidad para la creación, conservación y gestión de derechos de autor de imágenes

Mejoras generales y corrección de errores

  • También se realizaron correcciones de erratas y aclaraciones de la especificación existente

Contexto y proceso de desarrollo

  • La última especificación de PNG se publicó hace unos 20 años (3 años y medio antes del lanzamiento del iPhone)
  • El desarrollo se reanudó cuando el W3C Timed Text Working Group (estandarización técnica de subtítulos) planteó la necesidad de soporte HDR en PNG
  • Una vez presentada la propuesta, Adobe, Apple, BBC, Google, MovieLabs, W3C y otras grandes organizaciones tecnológicas participaron en conjunto
  • Se formó un consorcio sólido que convirtió a PNG nuevamente en un formato de imagen de nueva generación
  • Actualmente, dos actualizaciones posteriores ya están en preparación

Estado actual de adopción generalizada

  • La especificación más reciente de PNG ya es compatible con diversos programas, como Chrome, Safari, Firefox, iOS/macOS, Photoshop, DaVinci Resolve y Avid Media Composer
  • También se está ampliando el soporte entre compañías de radiodifusión y en hardware y herramientas relacionadas
  • Los cintillos informativos, banners de marcadores deportivos y otras imágenes de transmisión son ejemplos de uso del nuevo PNG con HDR

Planes a futuro

  • En la próxima edición se planea mejorar aún más la compatibilidad entre HDR y SDR
  • Además, también se están impulsando métodos de compresión más avanzados y codificación/decodificación en paralelo
  • La cuarta edición será una actualización relativamente breve, y después se prevé desarrollar una quinta edición basada en la investigación de tecnologías de compresión

2 comentarios

 
carnoxen 2025-06-26

Al principio, el organismo rechazó APNG diciendo que no era un estándar para imágenes, y recién ahora lo reconocen.

 
GN⁺ 2025-06-26
Comentarios en Hacker News
  • Aclara que es el autor y que cualquier pregunta es bienvenida en cualquier momento.

    • Enfatiza que este PNG no es un formato completamente nuevo, sino una versión actualizada del formato existente.

    • Señala que ofrece una compatibilidad retroactiva muy alta.

    • Explica que incluso los programas antiguos pueden leer los nuevos archivos PNG lo mejor posible y, por ejemplo, seguir reconociendo que se trata de una foto de una manzana roja.

    • Resume los puntos clave porque puede haber confusión sobre cómo funciona PNG internamente.

      • Un archivo PNG está compuesto por varios chunks de datos.
      • Cada chunk tiene un nombre, así que un programa puede simplemente saltarse los chunks que no conoce o no necesita.
      • Especifica que solo existe un único flujo de imagen.
    • Comenta que le gustaría que hubiera archivos de ejemplo que aprovechen las funciones de la nueva especificación PNG, especialmente una página de demostración donde se puedan descargar directamente imágenes animadas o HDR para probar la compatibilidad de los programas.

    • Dice que apoya los metaformatos y el tooling de propósito general.

      • Pone como ejemplo estructuras como Office Open XML o ePub, que se pueden parsear solo con bibliotecas de zip y XML.
      • Explica, por experiencia propia, que PNG tiene una estructura casi igual a Interchange File Format (en adelante, IFF), pero que antes tenía diferencias sutiles en la especificación, por lo que no era posible parsear a la vez PNG y archivos de la familia IFF con un parser IFF totalmente genérico.
      • Señala que IFF es fácil de implementar y tiene ventajas para la compresión de datos, pero hasta ahora solo se ha usado para fines limitados, como datos de juegos antiguos o audio AIFF/RIFF, y apunta que una de las razones por las que no surgió un tooling general fue la frustrante falta de compatibilidad entre PNG e IFF.
      • Expresa su deseo de que, si PNGv3 hiciera que los archivos PNG fueran oficialmente archivos IFF, la popularidad de PNG sirviera de base para expandir un ecosistema IFF de propósito general, por ejemplo algo como libiff, y que también pudiera usarse para definir formatos nuevos.
      • Menciona que él mismo ha creado parsers PNG/IFF y que no es fácil simplemente modificar PNG para volverlo compatible con IFF, además de que hay que mantener la compatibilidad hacia atrás, especialmente con parsers de hardware.
      • Propone documentar por separado la estructura IFF modificada que usa PNG como un nuevo estándar de metaformato, IFF 2.0.
      • Espera que IFF 2.0 formalice un perfil compatible con PNGv2 y también perfiles que cubran IFFv1, como AIFF/RIFF, para impulsar tooling IFF de propósito general.
      • Además, en un nuevo perfil greenfield, es decir, un formato nuevo adaptado a entornos modernos, podría introducirse, por ejemplo, verificación de integridad con hashes modernos en lugar de CRC, una ampliación del conjunto de caracteres para nombres de chunks y una estructura que almacene eficientemente la información de propiedades de cada chunk.
      • Considera deseable que estas estructuras permitan transcodificar tanto IFFv1 como PNGv2, y que se adopte una declaración estratégica de perfiles, como la combinación y compatibilidad entre HTML4 y XHTML en HTML5.
      • En conclusión, enfatiza que se centró más en los objetivos de diseño que en los detalles, especialmente en minimizar la heterogeneidad entre formatos viejos y nuevos y en ampliar el ecosistema de herramientas.
  • En su herramienta de dibujo basada en web usa el truco de guardar la representación JSON del documento en el campo de comentarios de PNG.

    • Así, el archivo guardado puede usarse directamente como imagen y también volver a cargarse en el editor.

    • Tiene la ventaja de que no se acumulan archivos JSON difíciles de identificar en la carpeta de descargas.

    • Dice que es divertido, pero que resulta incómodo explicar al usuario por qué el archivo se guarda como .png, o por qué los datos desaparecen si lo abre y lo guarda en Paint u otro programa similar.

    • Krita también guarda así la configuración de pinceles, pero cuando hay demasiados datos puede causar problemas inesperados.

    • Macromedia Fireworks usaba PNG como formato de guardado predeterminado desde hace 20 años.

      • Claro, en ese entonces no le metían JSON.
    • Muchos frontends de generación de imágenes con IA también lo usan de forma parecida.

      • Guardan prompts o configuraciones en el comentario de la imagen, de modo que al abrir solo la imagen se pueden recuperar los ajustes o incluso cargar todo el workflow, como hace ComfyUI.
      • De hecho, piensa que este enfoque es bastante común en herramientas que trabajan con imágenes.
    • Macromedia Fireworks guardaba archivos Fireworks dentro de PNG,

      • los archivos de Adobe Illustrator (AI) en realidad son PDF,
      • y los archivos PSD de Photoshop también pueden guardarse dentro de TIFF.
      • Por eso en Photoshop se ven varias capas, pero en otros programas puede aparecer solo una.
  • Esta especificación se parece más a una explicitación de algo que ya estaba ampliamente implementado.

    • Incluso si se le llama PNG de nueva generación, si necesitara un decodificador nuevo quizá podrían haberlo llamado PNG2.

    • JPEG-XL ya cumple con la mayoría de las condiciones que la gente quiere en un códec sin pérdida.

      • El problema es la velocidad y los recursos de codificación/decodificación.
    • Actualmente, el mejor códec de imágenes sin pérdida es HALIC.

    • Dice que, según este hilo de discusión sobre HALIC, en realidad LEA 0.5 es superior.

    • Sinceramente, comenta que durante un tiempo ignoró JPEG XL porque pensaba que solo servía para “imágenes gigantes”.

    • Usa png en su herramienta de anotación de imágenes para visión por computadora (XLabel).

      • Guarda las etiquetas de clase directamente en los metadatos de la imagen, así que no hace falta tener archivos de texto por separado.
      • En el futuro le gustaría crear un formato extendido adecuado para este tipo de uso.
    • La compresión sin pérdida de WebP está al nivel de lo mejor de la industria y, aun así, no se usa ampliamente.

      • Eso sugiere que no lo más importante es lograr el mejor rendimiento absoluto en compresión sin pérdida, sino la adopción del ecosistema.
    • Los problemas de velocidad de codificación/decodificación podrían mejorar con el tiempo.

      • Es algo que realmente ocurrió antes en el ecosistema jpg.
  • Que oficialmente se haya incorporado soporte para datos Exif es la mejor noticia.

    • Antes también se podían escribir datos personalizados en el encabezado, pero el soporte para Exif es muy bienvenido.

    • De paso, comenta que le da curiosidad si Exif tiene campos relacionados con giroscopio (rotación) o aceleración (gravedad).

      • Le ha pasado que las fotos tomadas con la app de cámara de Google no incluyen esa información, y eso luego se echa en falta para corrección automática o composición de panoramas.
    • Existen un campo de aceleración (Exif.Photo.Acceleration) y un campo para altitud/ángulo de elevación de cámara (Exif.Photo.CameraElevationAngle),

      • pero no cubren los tres ejes completos.
      • Hay sensores ambientales, pero solo se reflejan ciertos elementos específicos definidos por quienes redactaron la especificación.
      • Exif.Photo.MakerNote es un área libre donde el fabricante puede guardar la información que quiera, y su límite de tamaño es suficientemente grande como para registrar incluso datos de 9 ejes.
    • Exif puede generar confusión según cómo se maneje la rotación en el renderizado de imágenes.

      • Los decodificadores viejos y nuevos pueden mostrar la imagen de manera distinta dependiendo de si aplican o no la rotación Exif.
      • Como no hay recomendaciones concretas para los decodificadores sobre la rotación Exif, también son frecuentes los bugs de rotación doble, por ejemplo cuando el entorno de escritorio y la biblioteca la aplican por separado.
      • Solo existe una recomendación ambigua del tipo: “si el decodificador no puede saber por separado si debe confiar o no en los datos Exif, entonces los datos Exif deben tratarse solo como de valor histórico”.
      • Piensa que, para una compatibilidad retroactiva completa, hace falta una guía clara del estilo “nunca rotar”.
    • No existe un campo estándar para registrar datos del acelerómetro o del sistema de navegación inercial de la cámara.

    • De hecho, muchos sitios web eliminan la mayoría de los datos Exif al subir imágenes.

      • Esto se debe a que algunos campos pueden aprovecharse para invadir la privacidad o rastrear ubicaciones.
    • Personalmente, preferiría que la gente usara XMP en vez de Exif.

      • Exif tiene una estructura extraña y, en esencia, es como incrustar una imagen TIFF dentro de PNG.
  • Esta especificación PNG oficializa de manera explícita prácticas que ya estaban muy extendidas.

    • El mejor códec debe funcionar en todas partes, en cualquier app, en el shell del sistema operativo, en APIs, en Linux, etc.

    • Formatos como HEIC o AV1, si no tienen soporte a nivel del sistema operativo, ni siquiera son fáciles de previsualizar.

    • Un formato que no circula correctamente no debería convertirse en el predeterminado de una plataforma.

    • Dice que trabaja con muchos formatos de imagen, incluso formatos raros que solo se usan en nichos específicos.

      • Dar soporte real a una gran variedad de formatos es un desafío enorme.
      • Las bibliotecas suelen decir en la superficie que soportan jpg/tif/heic, pero eso no significa que manejen sin problemas, por ejemplo, un jpeg de 30 GB o todos los metadatos.
    • Esta nueva especificación podría resultar incluso más confusa que HEIC o AV1.

      • Antes de abrir el archivo no hay manera de saber qué códec contiene el PNG.
  • Dice que es la primera vez que ve que HDR se use claramente no para significar una ampliación del brillo y el rango de contraste, sino “un espacio de color más amplio”.

  • Se pregunta si no llega demasiado tarde.

    • Y además, JPEG XL ya ofrece todas las funciones —compresión con pérdida/sin pérdida, animación, HDR, Exif, etc.— junto con técnicas de compresión avanzadas como finite state entropy y ZStandard.

    • Piensa que no hace falta una actualización separada de PNG y que simplemente habría que usar JPEG XL.

    • Pero la realidad es que eso de “solo hay que adoptarlo” no funciona.

      • Estado del soporte de JPEG XL en navegadores: han pasado 5 años y solo hay un navegador que lo soporta.
      • Si los proveedores de navegadores no lo implementan, la realidad es que ni los desarrolladores ni los usuarios pueden usar un formato nuevo.
    • Sobre la mención de “técnicas avanzadas de compresión (como ZStandard)”.

      • ZStandard incluso puede ser malo para comprimir números con cambios de amplitud constantes, por ejemplo gradientes.
      • Bzip2 funciona mejor en ese aspecto y sería más adecuado cuando dos variables, como en el ejemplo, corresponden a canales de color mediante repeticiones internas y externas.
      • Los datos reales no son tan simples por el ruido, pero aun así este tipo de comparación entre algoritmos sigue alejándose de la realidad.
    • Sobre “no hace falta actualizar PNG, solo hay que adoptar JPEG XL”.

      • Entonces habría que decírselo a Google.
      • En la práctica, Google abandonó el soporte de JPEG XL en Chrome (issue relacionado), y eso bloqueó la expansión del ecosistema.
    • Dice que no entiende por qué se crea otro estándar más, o una variante más.

      • Lamenta que ya hay suficiente confusión y aun así siguen apareciendo nuevos estándares sin un punto de venta particularmente distintivo.
  • Ahora que se puede reemplazar GIF por APNG (mezcla alfa + fondo transparente + compresión sin pérdida), podría volver la estética web de los 2000.

    • Se pregunta si existe también un estándar para Animated SVG.

      • Recuerda haber visto antes animaciones SVG basadas en JavaScript, como avatares de chatbots, pero no sabe bien si hay un framework estándar.
    • Animated SVG sí existe.

    • Tiene entendido que hoy en día, en lugar de GIF, se usan mucho más videos sin audio, como mp4, porque comprimen mejor.

      • Se pregunta si Animated PNG tiene competitividad frente a formatos de video como AV1.
    • En la mayoría de los servicios que permiten subir GIF, el soporte para APNG o animated WEBP es casi inexistente.

      • Se queja de que el soporte backend está prácticamente en cero, lo cual es muy frustrante.
    • Si conviertes clips cortos en gráficos animados, WEBP originalmente era mejor que APNG.

      • Si se usa GIF como formato intermedio, APNG todavía puede competir un poco.
      • Hoy en día, AVIF es la mejor opción.
    • Comenta que hace algunos años usó la biblioteca Lottie (Bodymovin).

      • Hacía animaciones en Adobe After Effects, las exportaba como svg y json, y luego aplicaba fácilmente la animación en la web con lottie JS.
      • Sintió que faltaban buenas herramientas o DX (experiencia de desarrollo) en el terreno de las animaciones web vectoriales.
      • También tiene curiosidad por las herramientas y la DX del lado de animated PNG.
  • Sobre la afirmación en el PR de que “muchos programas ya soportan la nueva especificación PNG”.

    • La mención de que Photoshop soporta APNG es incorrecta.

      • Aunque el reconocimiento de APNG aparece como el segundo punto de What’s new, le decepcionó ver que en realidad Photoshop no lo soporta.
    • Photoshop sí soporta la parte de HDR, pero no la parte de APNG.

  • Alguien menciona que la gente debería poder manejar en software la incertidumbre de tiempo/fecha de manera coherente.

    • Por ejemplo, la necesidad de gestionar información temporal ambigua como “la foto se escaneó en 2025, el contenido es de alrededor de Pascua, entre 1920 y 1940”.

    • EXIF tiene un campo DateTimeDigitized.

    • En Google Photos y Apple Photos se puede asignar una fecha manualmente, pero en realidad no la guardan en EXIF.

      • Al moverse entre plataformas, las imágenes sin EXIF terminan perdiendo también esa información de fecha.