Portable Graymap (.pgm)

Netpbm Стандарт

Portable Graymap Format (PGM) - это спецификация изображений в оттенках серого из семейства Netpbm, широко используемая в компьютерном зрении, робототехнике, оптическом контроле и алгоритмах цифровой обработки изображений.

Анализ и метаданные

Операционные системы и анализаторы файлов идентифицируют файлы PGM по начальной двоичной последовательности байтов:

Выберите или перетащите файлы сюда

100% конфиденциальное преобразование в браузере - файлы никогда не покидают ваше устройство

или вставьте Ctrl+V
Гарантия конфиденциальности без передачи по сети: 0 байт загружено на внешние серверы. Вся обработка выполняется локально в песочнице вашего браузера.

Сигнатура заголовка на уровне байтов (Magic Bytes)

Операционные системы и анализаторы файлов идентифицируют файлы PGM по начальной двоичной последовательности байтов:

HEX-СИГНАТУРА (СМЕЩЕНИЕ 0):

50 32 / 50 35

ПРЕДСТАВЛЕНИЕ ASCII: P2 / P5

Стандартизация: Netpbm Library Standard

Технические спецификации

Архитектура контейнераФормат Netpbm в текстовом (ASCII, P2) или двоичном (P5) виде с указанием ширины, высоты, максимального значения серого и потока пикселей
СжатиеНесжатые исходные двоичные байты или удобочитаемые числовые значения ASCII
Порядок байтов (Endianness)С прямым порядком байтов от старшего к младшему (для 16-битных двоичных образцов в режиме P5)
Цветовые пространстваЛинейные оттенки серого или оттенки серого sRGB
Каналы и структура1 канал в оттенках серого (с точностью 8 или 16 бит)
Макс. габаритыПрактически не ограничено (поддерживает произвольное 64-битное пространство координат)
ПрозрачностьОтсутствует
Потоковая передача и прогрессивная загрузкаПотоковое воспроизведение построчно

Техническая матрица сравнения: PGM против конкурентов

Технический атрибутPGM (Текущий)PBMPPMPNG
Цветовой режимОттенки серого (8-бит / 16-бит)1-битный монохромныйПолноцветный RGB (24-бит / 48-бит)Оттенки серого, RGB, RGBA
Родственный формат NetpbmPGM (Переносной полутоновый растр)PBM (Переносимый битовый растр)PPM (Переносимая пиксельная карта)Стандарт W3C вне Netpbm
Сигнатурные байтыP2 (ASCII) / P5 (Двоичный)P1 (ASCII) / P4 (Двоичный)P3 (ASCII) / P6 (Двоичный)‰PNG....
СжатиеБез сжатияБез сжатияБез сжатияСжатие Deflate без потерь

Типичные режимы повреждения и руководство по восстановлению в HEX

Изображение отображается инвертированным или полностью засвеченным белым цветом.

Первопричина: Несоответствие параметра 'maxval' в заголовке (например, maxval объявлен как 1 вместо 255).

Восстановление: Исправьте строку заголовка maxval или выполните перекодирование с помощью конвертера Netpbm от File2File.

Анализ безопасности и векторы атак на парсер

Декодеры PGM должны тщательно проверять, соответствуют ли разобранные счетчики пикселей заявленным размерам, чтобы предотвратить переполнение буфера.

Известные векторы атак

  • Переполнение целых чисел при выделении буфера ширины на высоту на (maxval > 255 ? 2 : 1).
  • Чтение за пределами буфера при чтении поврежденных токенов чисел ASCII.
  • Отказ в обслуживании из-за огромного выделения памяти, вызванного сфабрикованными размерами в заголовке.

Защитные лучшие практики: Ограничивайте максимально допустимые размеры и пределы выделения памяти перед чтением потоков пикселей.

Исторические истоки и вехи

200016-битная глубина (максимальное значение до 65535) стандартизирована в двоичном режиме P5 для научных исследований.
1993Включен в инструментарий Netpbm в качестве стандартного промежуточного формата оттенков серого.
1989Джефф Посканзер создает PGM в дополнение к PBM с полноценной поддержкой 256 уровней серого.

Ключевые преимущества и плюсы

  • Нулевая сложность: чрезвычайно простые синтаксический анализ и запись на C, Python или WebAssembly без внешних библиотек.
  • Встроенная поддержка 16-битных оттенков серого делает его идеальным для карт высот, карт глубин и тепловизионной съемки.
  • Режим ASCII (P2) позволяет напрямую просматривать и изменять исходные значения пикселей в стандартных текстовых редакторах.

Технические ограничения и минусы

  • Отсутствие сжатия: большой объем файлов по сравнению со сжатыми форматами вроде PNG.
  • Отсутствуют метаданные о физических размерах, цветовых пространствах или геолокации.
  • Строго одноканальный: невозможно хранить цветные данные или альфа-прозрачность.

Интересные технические факты

  • OpenCV, ROS (Robot Operating System) и системы машинного зрения часто используют PGM для навигационных карт SLAM.
  • Разработчики игр часто используют 16-битные файлы PGM в качестве карт высот ландшафта, так как исходные данные о рельефе не сжаты и просты в загрузке.
  • Параметр 'maxval' в заголовке определяет максимальное значение яркости (обычно 255 для 8-битного или 65535 для 16-битного формата).

Часто задаваемые технические вопросы

Для чего используется формат PGM?

PGM в основном используется в компьютерном зрении (OpenCV), робототехнике (файлы карт ROS), научных исследованиях и генерации карт высот 3D-ландшафтов.

В чем разница между файлами PGM P2 и P5?

P2 представляет собой простой текст ASCII, где каждый пиксель записан в виде числа, в то время как P5 сохраняет пиксели в виде компактных двоичных байтов.

Как я могу конвертировать PGM в JPG или PNG?

Загрузите свой файл PGM на File2File.app, чтобы конвертировать его в формат PNG или JPG прямо в вашем браузере с соблюдением полной конфиденциальности.