CPNG, um fork retrocompatível do PNG

Um fork “compatível” do formato de imagem PNG, o CPNG, pretende adicionar recursos como codificação/decodificação mais rápidas e suporte a HDR, mantendo-se totalmente visualizável em decodificadores PNG existentes. Os comentaristas elogiam a abordagem retrocompatível por oferecer suporte instantâneo no ecossistema, mas questionam se estender um formato de 30 anos arrisca fragmentação, diferenças sutis de renderização e novos problemas de segurança. Muitos comparam o CPNG a formatos modernos como WebP, AVIF e JPEG XL, debatendo se melhorias incrementais no PNG valem a pena ou se seria melhor investir em padrões novos e mais eficientes.

Motivação e conceito do CPNG

  • Muitos comentaristas gostam da ideia de estender o PNG de uma forma totalmente retrocompatível, para que navegadores e sistemas operacionais existentes possam exibir pelo menos uma imagem básica.
  • O CPNG é descrito como uma reinterpretação do PNG quando certas condições são atendidas, aproveitando o design extensível do PNG baseado em chunks.
  • Alguns veem isso como uma maneira inteligente e pragmática de inovar sem os problemas de implantação de um formato totalmente novo.

Compatibilidade retroativa vs. fragmentação

  • Um debate gira em torno do que “100% retrocompatível” realmente significa:
    • Apoiadores: decodificadores antigos ainda veem um PNG válido; decodificadores mais novos podem adicionar HDR ou outros recursos usando dados extras.
    • Céticos: as imagens de saída podem diferir entre decodificadores (por exemplo, HDR vs SDR), o que eles veem como “fallback” em vez de compatibilidade verdadeira.
  • Preocupação: com o tempo, isso pode criar uma “família” de variantes do PNG em que as imagens parecem diferentes entre ferramentas e plataformas, ecoando os primeiros problemas de alpha do PNG, e as inconsistências de APNG, PSD/SVG.
  • Outros contrapõem que o PNG já tem chunks opcionais (gamma, perfis ICC etc.) que os decodificadores podem ignorar, e que a evolução dos formatos é inevitável.

Desempenho e compressão

  • Vários comentários destacam que codificar/decodificar PNG (especialmente zlib/DEFLATE) pode ser um verdadeiro gargalo de CPU em jogos e servidores.
  • A DEFLATE restrita do CPNG e a decodificação multithread são vistas como otimizações valiosas; permanecem dúvidas sobre o impacto no tamanho do arquivo e no desempenho de leitura em decodificadores legados (em grande parte sem resposta).
  • A discussão relacionada aborda alternativas e otimizações: fpng, QOI, forks de zlib (Cloudflare, chromium) e formatos de textura amigáveis à GPU.

Comparação com outros formatos de imagem

  • Alguns perguntam por que não usar simplesmente formatos mais novos como WebP, AVIF ou, especialmente, JPEG XL, que vários comentaristas classificam muito bem para compressão sem perdas e/ou eficiência.
  • Um resumo de classificação:
    • Eficiência: WebP (B), AVIF (A), JXL (S).
    • Velocidade de codificação: WebP (B), AVIF (D), JXL (A).
    • Compatibilidade: WebP (A), AVIF (B), JXL (D).
  • Problemas de gerenciamento de cor e metadados com WebP/AVIF/HEIC são destacados; o PNG continua atraente pela confiabilidade.

Ideias “retrocompatíveis” alternativas e segurança

  • Alguns propõem um subconjunto restrito ou não compactado do PNG para sistemas simples ou embarcados, usando apenas blocos DEFLATE não compactados; outros sugerem BMP ou NetPBM como bases mais simples.
  • Há um breve aviso de que mais complexidade em formatos semelhantes ao PNG pode introduzir novas vulnerabilidades de segurança (por exemplo, problemas com logos de inicialização como “LogoFAIL”).

Perspectivas de adoção

  • As opiniões estão divididas: alguns duvidam que o CPNG ganhe força se o APNG lutou para isso; outros observam que o APNG, na verdade, é amplamente suportado hoje, mesmo que raramente usado.
  • No geral, o tópico mistura forte entusiasmo pelo hack com preocupação substancial sobre a complexidade de longo prazo do ecossistema.