9 pontos por GN⁺ 2023-12-10 | 2 comentários | Compartilhar no WhatsApp
  • CPNG("Compatible Network Graphics") é um fork 100% compatível do formato de imagem PNG, que já tem cerca de 30 anos. Ele moderniza e expande os recursos do PNG, ao mesmo tempo em que mantém compatibilidade com navegadores, sistemas operacionais, engines etc. já existentes
  • Objetivo: ser muito mais rápido que o PNG atual em codificação/decodificação (mais de 10x na codificação e mais de 2-3x na decodificação), impulsionando assim a adoção de bibliotecas e a adição de novos recursos
  • Principais características:
    • Fluxo Deflate restrito: recurso que melhora a velocidade de codificação em 10-25x e a de decodificação em 2-3x em comparação com bibliotecas existentes, já implementado em fpng/fpnge
    • Codificação/decodificação multithread: tecnologia que a Apple já usa. Adiciona tabelas de busca em chunks auxiliares do CPNG, permitindo codificação/decodificação paralela da imagem por tiras.
    • Suporte a FP16 e LOGLUV32: projetado para que imagens HDR possam ser visualizadas de forma razoável mesmo em navegadores e sistemas operacionais que só suportam PNG. Os dados HDR podem ser restaurados sem perdas por meio de um procedimento simples e rápido
    • CPNG como alternativa ao .EXR: o formato .EXR suporta tipos demais de compressão e, na prática, isso prejudica a compatibilidade. O CPNG oferece uma alternativa de tone mapping sem perdas e pode ser pré-visualizado na maioria dos navegadores e sistemas operacionais.
    • Projeto do LOGLUV32: em andamento para alcançar HDR real sem inflar o tamanho dos arquivos. O texto aponta que outras soluções "HDR" exigem armazenar pixels de 16 bits em quantidade maior do que os bits realmente usados, argumentando que isso é desperdício.
  • Importância dos autores de bibliotecas: desde que a compatibilidade seja mantida, quem de fato controla o formato são os autores das bibliotecas.

Opinião do GN⁺

  • O CPNG é um novo formato de imagem que mantém compatibilidade perfeita com o PNG existente enquanto adiciona recursos modernos, com destaque para o avanço expressivo na velocidade de codificação/decodificação e para o suporte a HDR.
  • Espera-se que esse avanço traga mudanças muito úteis e interessantes para profissionais de várias áreas, como desenvolvedores web, designers gráficos e engenheiros de software.
  • A abordagem centrada em compatibilidade reflete um princípio importante do desenvolvimento moderno de software: buscar ao mesmo tempo a evolução da tecnologia e a melhoria da experiência do usuário.

2 comentários

 
kuroneko 2023-12-11

Hmm... será que isso pode mesmo virar um novo padrão de imagem?

Até hoje, entre os padrões de imagem de nova geração, fora o WebP, não teve nenhum que realmente tenha emplacado...
O WebP também passa a sensação de que acabou sendo empurrado pelo Google graças à participação do Chrome no mercado...

 
GN⁺ 2023-12-10
Comentários do Hacker News
  • Preocupação com a possibilidade de o formato PNG se fragmentar em várias versões incompatíveis

    No início da história do PNG, já houve problemas de inconsistência com canal alfa, renderização progressiva e suporte a APNG. Arquivos PSD e SVG também tiveram por muito tempo o problema de aparecerem de forma diferente dependendo do navegador, dispositivo, app ou versão. Expandir o PNG pode causar problemas em praticamente todos os usos reais, e imagens podem parecer "quebradas" por causa de designers usando novos recursos. Alguns recursos, como HDR, podem ser exibidos apenas em certos renderizadores, então mesmo sendo "retrocompatível" isso ainda pode ser problemático. Talvez seja melhor criar um novo formato e deixar que páginas web e dispositivos escolham um substituto quando necessário.

  • Avaliação positiva sobre o motivo de tentar melhorar o PNG e o valor disso

    Se for possível integrar novos recursos ao PNG de forma retrocompatível, isso teria valor porque poderia funcionar imediatamente com todos os navegadores, sistemas operacionais, engines e afins.

  • Elogios à velocidade de codificação do libpng ser mais de 10 vezes mais lenta que jpg ou tiff e à técnica LOGLUV32

    Foi observado que a velocidade de codificação do libpng é lenta, e a parte do LOGLUV32 parece muito inteligente. Gostaram da ideia de uma imagem alternativa com tone mapping construída sobre a base existente, mas esperam que a expansão do formato não leve a problemas de compatibilidade.

  • Reação entusiasmada ao novo formato de imagem e apreciação pela engenharia

    Mesmo sem precisar disso pessoalmente, foi prazeroso ler sobre o assunto, e há desejo de ver mais trabalhos desse tipo, tanto em formatos de imagem bem pensados quanto em boa escrita técnica.

  • Curiosidade sobre a eficiência dos formatos de imagem modernos

    Há curiosidade sobre quais formatos, com perda e sem perda, são hoje os mais eficientes em tamanho ou velocidade de descompressão, considerando o estado atual da tecnologia.

  • Apontamento da falta de menção a JPEG XT e JPEG-HDR

    Foi apontado que não houve menção a JPEG XT e JPEG-HDR.

  • Proposta de uma versão simplificada e retrocompatível do PNG

    Foi sugerido criar uma versão simplificada do PNG para uso em sistemas embarcados de baixa complexidade, mantendo compatibilidade com visualizadores de imagem existentes sem exigir a implementação do "PNG completo". Como o DEFLATE já oferece suporte a blocos não comprimidos, isso poderia funcionar de forma retrocompatível.

  • Pergunta sobre o significado de "100% retrocompatível" e opinião sobre a semelhança com APNG

    Foi levantada a dúvida sobre o que exatamente significa "100% retrocompatível", e se isso é semelhante ao APNG, no sentido de que, ao abrir arquivos que usam recursos novos, ainda se obtém uma imagem razoável.

  • Admiração pelo CPNG e expectativa de melhora de desempenho em bibliotecas que o reconhecem

    As melhorias de desempenho em bibliotecas que reconhecem CPNG pareceram impressionantes, e houve curiosidade sobre se bibliotecas antigas que não reconhecem CPNG sofrem perda de desempenho ao ler imagens CPNG, além de quanto o CPNG seria maior que o PNG.