Portable Graymap (.pgm)
Netpbm StandardPortable Graymap Format (PGM) er gråtonebilledspecifikationen i Netpbm-familien, som er meget brugt inden for computersyn, robotteknologi, optisk inspektion og digitale billedbehandlingsalgoritmer.
Undersøgelse og metadata
Operativsystemer og filanalysatorer identificerer PGM-filer ved at inspicere den indledende binære bytesekvens:
Byte-niveau Header-signatur (Magic Bytes)
Operativsystemer og filanalysatorer identificerer PGM-filer ved at inspicere den indledende binære bytesekvens:
HEX-SIGNATUR (OFFSET 0):
50 32 / 50 35ASCII-REPRÆSENTATION: P2 / P5
Standardisering: Netpbm Library Standard
Tekniske specifikationer
| Containerarkitektur | ASCII-Netpbm-format (P2) eller binært Netpbm-format (P5) med bredde, højde, maksimal gråtoneværdi og pixelstrøm |
| Komprimering | Ukomprimerede rå binære bytes eller menneskeligt læsbare ASCII-tal |
| Byte-rækkefølge | Big-Endian (for 16-bit-binære samples i P5-tilstand) |
| Farverum | Lineære gråtoner eller sRGB-gråtoner |
| Kanaler og struktur | 1 kanal i gråtoner (8-bit- eller 16-bit-præcision) |
| Maks. dimensioner | Praktisk talt ubegrænset (understøtter vilkårlige 64-bit-koordinater) |
| Gennemsigtighed | Ingen |
| Streaming og progressiv | Sekventiel streamingafspilning række for række |
Teknisk sammenligningsmatrix: PGM sammenlignet med konkurrenterne
| Teknisk attribut | PGM (Aktuel) | PBM | PPM | PNG |
|---|---|---|---|---|
| Farvetilstand | Gråtoner (8-bit / 16-bit) | 1-bit monokrom | RGB Truecolor (24-bit / 48-bit) | Gråtoner, RGB, RGBA |
| Netpbm-søskende | PGM (Portable Graymap) | PBM (Portable Bitmap) | PPM (Portable Pixmap) | Ikke-Netpbm W3C-standard |
| Magiske bytes | P2 (ASCII) / P5 (Binær) | P1 (ASCII) / P4 (Binær) | P3 (ASCII) / P6 (Binær) | ‰PNG.... |
| Komprimering | Ukomprimeret | Ukomprimeret | Ukomprimeret | Tabsfri Deflate |
Almindelige korruptionstilstande og hex-gendannelsesvejledning
Billedet vises inverteret eller fuldstændig udbrændt hvidt.
Grundlæggende årsag: Fejmatchet 'maxval'-parameter i hovedet (f.eks. maxval erklæret som 1 i stedet for 255).
Gendannelse: Ret maxval-hovedlinjen eller omkod med File2File.app Netpbm Converter.
Sikkerhedsanalyse og parser-angrebsvektorer
PGM-afkodere skal omhyggeligt validere, at de parsede pixelantal matcher de erklærede dimensioner for at forhindre bufferoverløb.
Kendte angrebsvektorer
- Heltalsoverløb under allokering af bredde * højde * (maxval > 255 ? 2 : 1) buffer.
- Bufferoverlæsning ved læsning af malformede ASCII-nummertokens.
- Nægtelse af tjeneste (DoS) gennem massiv hukommelsesallokering udløst af fabrikerede hoveddimensioner.
Defensive bedste praksisser: Sæt loft over maksimalt tilladte dimensioner og hukommelsesallokeringsgrænser før læsning af pixelstrømme.
Historisk oprindelse og milepæle
Vigtige fordele og styrker
- Den kompakte PGM-struktur kan gøre det ligetil at implementere grundlæggende læsere, men håndtering af sampledybder, headere og fejlbehæftede input kræver stadig omhu.
- Indbygget 16-bits gråtoneunderstøttelse gør det ideelt til højde- og dybdekort samt termisk billedbehandling.
- ASCII-tilstand (P2) muliggør direkte inspektion og manipulation af rå pixelværdier i almindelige teksteditorer.
Tekniske begrænsninger og ulemper
- Ingen komprimering: store filstørrelser sammenlignet med komprimerede formater som PNG.
- Mangler metadata for fysiske dimensioner, farverum eller geolokalisering.
- Strengt enkeltkanal: kan ikke gemme farvedata eller gennemsigtighed (alfa).
Interessante tekniske fakta
- OpenCV, ROS (Robot Operating System) og maskinsynssystemer bruger ofte PGM til SLAM-navigationskort.
- Spiludviklere bruger ofte 16-bit PGM-filer som højdekort over terræn, fordi rå højdedata er ukomprimerede og nemme at indlæse.
- Parametret 'maxval' i filhovedet definerer den maksimale lysstyrkeværdi (typisk 255 for 8-bit eller 65535 for 16-bit).
Ofte stillede tekniske spørgsmål
Hvad bruges PGM-formatet til?
PGM bruges primært inden for computersyn (OpenCV), robotteknologi (ROS-kortfiler), videnskabelig billedbehandling og generering af 3D-terrænhøjde-kort (heightmaps).
Hvad er forskellen mellem P2- og P5 PGM-filer?
P2 er ren ASCII-tekst, hvor hver pixel er et skrevet tal, mens P5 gemmer pixels som kompakte binære bytes.
Hvordan kan jeg konvertere PGM til JPG eller PNG?
PGM gemmer gråtoneværdier. Konvertér til PNG for at få et tabsfrit billede, der understøttes af mange billedvisere, eller til JPEG, hvis du har brug for en mindre fotofil. Konverteringen foregår i din browser.