본문으로 건너뛰기
PS5PCEM
부분펌웨어와 HLE

PNG 인코딩과 디코딩

PNG 인코더는 피치가 있는 RGBA나 BGRA 픽셀로 8비트 RGB 또는 RGBA 파일을 씁니다. 디코더는 인터레이스가 아닌 그레이스케일, 팔레트, RGB, RGBA 이미지를 검사된 게스트 버퍼로 읽습니다.

2026년 10월 10일까지의 저장소 노트

인코딩

타이틀은 행 피치가 너비보다 클 수 있는 픽셀 사각형을 인코더에 넘깁니다. PS5PCEM은 피치가 있는 RGBA와 BGRA를 받아 표준 8비트 RGB 또는 RGBA PNG를 씁니다. 호출자는 스캔라인 필터와 0부터 9까지의 압축 수준을 고릅니다. 출력 쓰기는 타이틀이 제공한 버퍼 범위로 제한됩니다.

인코더는 파일 형식을 소프트웨어로 구현한 것입니다. 시스템 이미지 라이브러리를 호출하지 않으며, 콘솔의 하드웨어 인코더와 비교해 특정 속도를 주장하지 않습니다.

디코딩

libScePngDec은 PNG 메타데이터를 파싱하고, 인터레이스가 아닌 그레이스케일, 팔레트, RGB, RGBA 이미지를 검사된 게스트 RGBA 또는 BGRA 버퍼로 디코딩합니다. 스캔라인 필터를 적용하고 팔레트 투명도를 존중합니다. 픽셀을 쓰기 전에 대상 버퍼를 검사합니다.

Adam7 인터레이스 입력은 잘못된 이미지로 디코딩하는 대신 인식한 뒤 거부합니다. 그래서 인터레이스된 아이콘과 스크린숏이 조용히 깨진 버퍼가 되지 않습니다.

위치

PNG는 타이틀이 시작 중에 마주치는 작은 펌웨어 서비스 중 하나입니다. 아이콘, 아틀라스, 저장 썸네일이 여기에 해당합니다. H.264에 FFmpeg를 쓰는 AvPlayer 영상 경로와도, 글꼴 래스터라이저와도 독립적입니다.

10월 9일 펌웨어 보고서는 인코더를 시계, AMPR 완료 크기 조회와 함께 묶어 다룹니다. 이 셋은 임포트 공백을 메웠습니다. 그것만으로 측정된 프레임 시간이 바뀌지는 않습니다.

구현된 것

  • 피치가 있는 RGBA와 BGRA 입력을 압축 수준 0–9의 8비트 RGB 또는 RGBA PNG로.
  • 필터와 팔레트 알파를 포함한, 인터레이스가 아닌 그레이스케일, 팔레트, RGB, RGBA 디코딩.
  • 검사된 대상 버퍼와 한도가 있는 인코더 출력.

아직 빠진 것

  • Adam7 인터레이스 PNG는 인식만 하고 디코딩하지 않습니다.
  • 16비트와 특이한 보조 청크는 구현된 범위 밖입니다.
  • 하드웨어 PNG 블록은 없습니다. 양쪽 모두 CPU에서 실행됩니다.

관련 메커니즘

이 페이지들에 대하여

본문은 PS5PCEM 저장소의 아키텍처 노트와 2026년 10월 보고서를 따릅니다. 특정 테스트를 통과했다고 해서 새로운 프레임 속도나 새로운 완주를 뜻하지는 않습니다.

모든 기술