Portable Graymap (.pgm)
Netpbm StandardnoPortable Graymap Format (PGM) je specifikacija slika u nijansama sive iz Netpbm porodice, koja se naširoko koristi u algoritmima računarskog vida, robotike, optičke inspekcije i obrade digitalnih slika.
Pregledaj i metapodaci
Operativni sistemi i analizatori datoteka identifikuju PGM datoteke proverom početnog binarnog niza bajtova:
Potpis zaglavlja na nivou bajtova (Magic Bytes)
Operativni sistemi i analizatori datoteka identifikuju PGM datoteke proverom početnog binarnog niza bajtova:
HEX POTPIS (OFFSET 0):
50 32 / 50 35ASCII REPREZENTACIJA: P2 / P5
Standardizacija: Netpbm Library Standard
Tehničke specifikacije
| Arhitektura kontejnera | ASCII (P2) or binary (P5) Netpbm format with width, height, maximum gray value, and pixel stream |
| Kompresija | Uncompressed raw binary bytes or human-readable ASCII text numbers |
| Bajtni redosled (Endianness) | Big-Endian (for 16-bit binary samples in P5 mode) |
| Prostori boja | Linear Grayscale or sRGB Grayscale |
| Kanali i struktura | 1 channel grayscale (8-bit or 16-bit precision) |
| Maksimalne dimenzije | Practically unlimited (supports arbitrary 64-bit coordinate space) |
| Transparentnost | None |
| Strimovanje i progresivno učitavanje | Sequential row-by-row streaming playback |
Tehnička matrica poređenja: PGM vs Konkurenti
| Tehnički atribut | PGM (Trenutno) | PBM | PPM | PNG |
|---|---|---|---|---|
| Režim boja | Nijanse sive (8-bitne / 16-bitne) | 1-bitni monohromatski | RGB prave boje (24-bitne / 48-bitne) | Nijanse sive, RGB, RGBA |
| Netpbm srodnik | PGM (Portable Graymap) | PBM (Portable Bitmap) | PPM (Portable Pixmap) | W3C standard koji nije iz Netpbm paketa |
| Magični bajtovi | P2 (ASCII) / P5 (Binarno) | P1 (ASCII) / P4 (Binarno) | P3 (ASCII) / P6 (Binarno) | ‰PNG.... |
| Kompresija | Nekomprimovano | Nekomprimovano | Nekomprimovano | Deflate bez gubitaka |
Uobičajeni režimi oštećenja i vodič za heksadecimalni oporavak
Slika se prikazuje izvrnuto ili potpuno preosvetljeno belo.
Osnovni uzrok: Nepodudaranje parametra „maxval" u zaglavlju (npr. maxval je deklarisan kao 1 umesto 255).
Oporavak: Ispravite liniju zaglavlja za maxval ili izvršite transkodiranje pomoću File2File Netpbm konvertera.
Bezbednosna analiza i vektori napada parsera
PGM dekoderi moraju pažljivo da potvrde da parsirani broj piksela odgovara deklarisanim dimenzijama kako bi se sprečilo prekoračenje bafera.
Poznati vektori napada
- Preliv celobrojne vrednosti tokom alokacije bafera širina * visina * (maxval > 255 ? 2 : 1).
- Prekoračenje čitanja bafera pri čitanju nepravilnih tokena ASCII brojeva.
- Uskraćivanje usluge (DoS) kroz masivnu alokaciju memorije pokrenutu lažnim dimenzijama u zaglavlju.
Defanzivne najbolje prakse:
Istorijat i prekretnice
Ključne prednosti
- Nulta složenost: izuzetno jednostavno za parsiranje i zapisivanje u programskim jezicima C, Python ili WebAssembly bez spoljnih biblioteka.
- Izvorna podrška za 16-bitne nijanse sive čini ga idealnim za mape visina, mape dubine i termalno snimanje.
- ASCII režim (P2) omogućava direktan pregled i manipulaciju sirovim vrednostima piksela u standardnim uređivačima teksta.
Tehnička ograničenja i nedostaci
- Nema kompresije: velike veličine datoteka u poređenju sa kompresovanim formatima poput PNG-a.
- Nedostaju mu metapodaci za fizičke dimenzije, prostore boja ili geolokaciju.
- Strogo jednokanalni format: ne može da skladišti podatke u boji niti alfa providnost.
Zanimljivosti
- OpenCV, ROS (Robot Operating System) i sistemi mašinskog vida često koriste PGM za SLAM navigacione mape.
- Programeri igara često koriste 16-bitne PGM datoteke kao mape visina terena jer su sirovi podaci o nadmorskoj visini nekompresovani i laki za učitavanje.
- Parametar „maxval" u zaglavlju definiše maksimalnu vrednost osvetljenosti (obično 255 za 8-bitne ili 65535 za 16-bitne vrednosti).
Često postavljana tehnička pitanja
Za šta se koristi PGM format?
PGM se prvenstveno koristi u računarskom vidu (OpenCV), robotici (ROS mape datoteka), naučnom snimanju i generisanju mapa visine 3D terena (heightmap).
Koja je razlika između P2 i P5 PGM datoteka?
P2 je običan ASCII tekst gde je svaki piksel upisani broj, dok P5 skladišti piksele kao kompaktne binarne bajtove.
Kako mogu da konvertujem PGM u JPG ili PNG?
Otpremite svoju PGM datoteku na File2File.app da biste je konvertovali u PNG ili JPG direktno u pretraživaču uz potpunu privatnost.