Graymap portatile (.pgm)

Standardul Standard

Portable Graymap Format (PGM) este specificația pentru imagini în tonuri de gri a familiei Netpbm, utilizată pe scară largă în viziune computerizată, robotică, inspecție optică și algoritmi de procesare digitală a imaginilor.

Inspectare și metadate

Sistemele de operare și analizatoarele de fișiere identifică fișierele PGM prin inspectarea secvenței binare inițiale:

Selectează sau plasează fișierele aici

Privat - fișierele nu părăsesc niciodată dispozitivul tău

sau lipește Ctrl+V
Garanție de confidențialitate: nicio transmisie prin rețea: 0 octeți încărcați pe servere externe. Toată procesarea a avut loc local în sandbox-ul browserului tău.

Semnătura antetului la nivel de octet (octeți magici)

Sistemele de operare și analizatoarele de fișiere identifică fișierele PGM prin inspectarea secvenței binare inițiale:

SEMNĂTURĂ HEXAZECIMALĂ (DECALAJ 0):

50 32 / 50 35

REPREZENTARE ASCII: P2 / P5

Standardizare: Standardul bibliotecii Netpbm

Specificații tehnice

Arhitectură containerFormat Netpbm ASCII (P2) sau binar (P5), cu lățimea, înălțimea, valoarea maximă de gri și fluxul de pixeli
CompresieOcteți binari bruti necomprimați sau valori numerice în text ASCII lizibil
Ordinea octețilorBig-Endian (pentru eșantioane binare pe 16 biți în modul P5)
Spații de culoareTonuri de gri liniare sau sRGB
Canale și structură1 canal în tonuri de gri (precizie de 8 sau 16 biți)
Dimensiuni maximePractic nelimitate (acceptă coordonate pe 64 de biți arbitrare)
TransparențăNu există
Streaming și progresivRedare secvențială, rând cu rând

Matrice de comparație tehnică: PGM vs. concurenți

Atribut tehnicPGM (Curent)PBMPPMPNG
Mod de culoareTonuri de gri (8 biți / 16 biți)Monocrom pe 1 bitTruecolor RGB (24 biți / 48 biți)Tonuri de gri, RGB, RGBA
Înrudit NetpbmPGM (Portable Graymap)PBM (Portable Bitmap)PPM (Portable Pixmap)Standard W3C non-Netpbm
Octeți magiciP2 (ASCII) / P5 (Binar)P1 (ASCII) / P4 (Binar)P3 (ASCII) / P6 (Binar)‰PNG....
CompresieNecomprimatNecomprimatNecomprimatDeflate fără pierderi

Moduri comune de corupție și ghid de recuperare hexazecimală

Imaginea se afișează inversată sau complet supraexpusă, cu zone albe.

Cauză principală: Parametru „maxval" nepotrivit în antet (de ex. maxval declarat ca 1 în loc de 255).

Recuperare: Corectează linia maxval din antet sau recodifică fișierul cu File2File.app Netpbm Converter.

Analiză de securitate și vectori de atac asupra parserului

Decodoarele PGM trebuie să valideze cu atenție că numărul de pixeli analizați corespunde dimensiunilor declarate pentru a preveni depășirea memoriei tampon.

Vectori de atac cunoscuți

  • Depășire de întregi în timpul alocării tamponului pentru lățime * înălțime * (maxval > 255 ? 2 : 1).
  • Citire excesivă a memoriei tampon la citirea jetoanelor numerice ASCII malformate.
  • Refuz de serviciu prin alocare masivă de memorie declanșată de dimensiuni fabricate în antet.

Cele mai bune practici de securitate: Limitează dimensiunile maxime admise și memoria alocată înainte de a citi fluxurile de pixeli.

Origini istorice și repere

2000Adâncimea pe 16 biți (valoare maximă de până la 65535) standardizată în modul binar P5 pentru imagistică științifică.
1993Încorporat în setul de instrumente Netpbm ca format intermediar standard pentru tonuri de gri.
1989Jef Poskanzer creează PGM pentru a completa PBM cu suport complet pentru tonuri de gri pe 256 de niveluri.

Avantaje cheie și beneficii

  • Structura compactă PGM permite implementarea simplă a cititoarelor de bază, deși trebuie tratate cu grijă adâncimile eșantioanelor, antetele și intrările malformate.
  • Suportul nativ pentru tonuri de gri pe 16 biți îl face ideal pentru hărți de altitudine (heightmaps), hărți de adâncime și imagistică termică.
  • Modul ASCII (P2) permite inspecția directă și manipularea valorilor brute ale pixelilor în editoare de text standard.

Limitări tehnice și dezavantaje

  • Fără compresie: dimensiuni mari ale fișierelor în comparație cu formatele comprimate precum PNG.
  • Nu oferă metadate despre dimensiunile fizice, spațiile de culoare sau geolocalizare.
  • Are un singur canal și nu poate stoca date color sau transparență alfa.

Curiozități tehnice interesante

  • OpenCV, ROS (Robot Operating System) și sistemele de viziune mașină utilizează frecvent PGM pentru hărți de navigație SLAM.
  • Dezvoltatorii de jocuri folosesc adesea fișiere PGM pe 16 biți ca hărți de teren deoarece datele de relief brute sunt necomprimate și ușor de încărcat.
  • Parametrul „maxval" din antet definește valoarea maximă de luminozitate (de obicei 255 pentru 8 biți sau 65535 pentru 16 biți).

Întrebări tehnice frecvente

Pentru ce este folosit formatul PGM?

PGM este utilizat în principal în viziune computerizată (OpenCV), robotică (fișiere de hartă ROS), imagistică științifică și generarea de hărți de elevație a terenului 3D.

Care este diferența dintre fișierele PGM P2 și P5?

P2 este text ASCII pur în care fiecare pixel este un număr scris, în timp ce P5 stochează pixelii ca octeți binari compacți.

Cum pot converti PGM în JPG sau PNG?

PGM stochează eșantioane în tonuri de gri. Convertește-l în PNG pentru o imagine fără pierderi, compatibilă cu multe vizualizatoare, sau în JPEG dacă vrei un fișier foto mai mic; acest convertor rulează în browserul tău.