Перейти к содержимому
PS5PCEM
ЧастичноПрошивка и HLE

Кодирование и декодирование PNG

Кодировщик PNG пишет 8-битные файлы RGB или RGBA из пикселей RGBA или BGRA с шагом строки. Декодер читает нечересстрочные изображения в градациях серого, с палитрой, RGB и RGBA в проверенный гостевой буфер.

Заметки репозитория по 10 октября 2026 г.

Кодирование

Игры передают кодировщику прямоугольник пикселей, у которого шаг строки может быть больше ширины. PS5PCEM принимает RGBA и BGRA с шагом и пишет стандартный 8-битный PNG в RGB или RGBA. Вызывающий выбирает фильтры строк развёртки и уровень сжатия от 0 до 9. Записи на выход ограничены буфером, который дала игра.

Кодировщик — программная реализация формата файла. Он не обращается к системной библиотеке изображений и не заявляет конкретную скорость относительно аппаратного кодировщика консоли.

Декодирование

libScePngDec разбирает метаданные PNG и декодирует нечересстрочные изображения в градациях серого, с палитрой, RGB и RGBA в проверенные гостевые буферы RGBA или BGRA. Фильтры строк развёртки применяются, прозрачность палитры учитывается. Назначение проверяется до записи пикселей.

Чересстрочный вход Adam7 распознаётся и отвергается, а не декодируется в неверное изображение. Поэтому чересстрочные значки и снимки экрана молча не становятся испорченным буфером.

Где это находится

PNG — одна из небольших служб прошивки, к которым игра обращается при запуске: значки, атласы и миниатюры сохранений. Она независима от пути фильмов AvPlayer, который использует FFmpeg для H.264, и независима от растеризатора шрифтов.

Отчёт о прошивке от 9 октября группирует кодировщик с часами и запросами размера завершения AMPR. Эти три закрыли пробелы импорта. Сами по себе они не меняют измеренное время кадра.

Что реализовано

  • Вход RGBA и BGRA с шагом в 8-битный PNG RGB или RGBA при уровнях сжатия 0–9.
  • Декодирование нечересстрочных изображений в градациях серого, с палитрой, RGB и RGBA, включая фильтры и альфу палитры.
  • Проверенные буферы назначения и ограниченный выход кодировщика.

Чего ещё нет

  • Чересстрочный PNG Adam7 распознаётся и не декодируется.
  • 16-битные изображения и экзотические вспомогательные чанки вне реализованного подмножества.
  • Аппаратного блока PNG нет. Обе стороны работают на CPU.

Связанные механизмы

Чему посвящены эти страницы

Текст следует архитектурным заметкам и отчётам октября 2026 года в репозитории PS5PCEM. Пройденный точечный тест — это не новая частота кадров и не новое прохождение.

Все технологии