Ir para o conteúdo
PS5PCEM
ParcialFirmware e HLE

Codificação e decodificação de PNG

O codificador de PNG escreve arquivos RGB ou RGBA de 8 bits a partir de pixels RGBA ou BGRA com pitch. O decodificador lê imagens não entrelaçadas em escala de cinza, paleta, RGB e RGBA para um buffer convidado verificado.

Notas do repositório até 10 de outubro de 2026

Codificação

Os títulos entregam ao codificador um retângulo de pixels que pode ter um pitch de linha maior que a largura. O PS5PCEM aceita RGBA e BGRA com pitch e escreve um PNG padrão RGB ou RGBA de 8 bits. Quem chama seleciona os filtros de linha de varredura e um nível de compressão de 0 a 9. As escritas de saída são limitadas pelo buffer que o título forneceu.

O codificador é uma implementação em software do formato de arquivo. Ele não chama uma biblioteca de imagem do sistema e não afirma uma velocidade específica diante do codificador de hardware do console.

Decodificação

A libScePngDec analisa os metadados PNG e decodifica imagens não entrelaçadas em escala de cinza, paleta, RGB e RGBA para buffers RGBA ou BGRA convidados e verificados. Os filtros de linha de varredura são aplicados, e a transparência de paleta é respeitada. O destino é verificado antes de os pixels serem escritos.

Entrada entrelaçada Adam7 é reconhecida e recusada, em vez de ser decodificada numa imagem errada. Ícones e capturas entrelaçados, portanto, não se transformam em silêncio num buffer embaralhado.

Onde isso se encaixa

PNG é um dos pequenos serviços de firmware que um título encontra durante a inicialização: ícones, atlas e miniaturas de save. É independente do caminho de filme do AvPlayer, que usa FFmpeg para H.264, e independente do rasterizador de fontes.

O relatório de firmware de 9 de outubro agrupa o codificador com o relógio e as consultas de tamanho de conclusão do AMPR. Esses três fecharam lacunas de importação. Eles não mudam, por si sós, um tempo de quadro medido.

O que está implementado

  • Entrada RGBA e BGRA com pitch para PNG RGB ou RGBA de 8 bits nos níveis de compressão 0–9.
  • Decodificação de escala de cinza, paleta, RGB e RGBA não entrelaçados, inclusive filtros e alfa de paleta.
  • Buffers de destino verificados e saída limitada do codificador.

O que ainda falta

  • PNG entrelaçado Adam7 é reconhecido e não é decodificado.
  • 16 bits e chunks auxiliares exóticos ficam fora do subconjunto implementado.
  • Não há bloco de PNG em hardware. Os dois lados rodam na CPU.

Mecanismos relacionados

O que estas páginas descrevem

O texto segue as notas de arquitetura e os relatórios de outubro de 2026 no repositório do PS5PCEM. Um teste pontual que passa não é uma nova taxa de quadros nem uma nova conclusão de jogo.

Todas as tecnologias