Portable Graymap (.pgm)

Стандарт Стандарт

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

Аналіз та метадані

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

Виберіть або перетягніть файли сюди

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

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

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

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

ШІСТНАДЦЯТКОВА СИГНАТУРА (ЗСУВ 0):

50 32 / 50 35

ASCII-УЯВЛЕННЯ: P2 / P5

Стандартизація: Стандарт бібліотеки Netpbm

Технічні характеристики

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

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

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

Типові режими пошкодження та посібник з відновлення в шістнадцятковому форматі

Зображення відображається інвертованим або повністю засвіченим білим кольором.

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

Відновлення: Виправте рядок заголовка maxval або виконайте транскодування за допомогою конвертера Netpbm від File2File.

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

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

Відомі вектори атак

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

Захисні найкращі практики: Обмежуйте максимально допустимі розміри та ліміти виділення пам'яті перед читанням потоків пікселів.

Історичне походження та віхи

2000Стандартизовано 16-бітну глибину (максимальне значення до 65535) у двійковому режимі P5 для наукової візуалізації.
1993Включено до інструментарію Netpbm як стандартний проміжний формат у відтінках сірого.
1989Джеф Посканзер створює PGM на доповнення до PGM з повною підтримкою 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 безпосередньо у своєму браузері з повною конфіденційністю.