Portable Graymap (.pgm)
Netpbm StandartinisNešiojamasis pilkumo žemėlapio formatas (PGM) yra „Netpbm" šeimos pilkumo lygio vaizdo specifikacija, plačiai naudojama kompiuterinio matymo, robotikos, optinio tikrinimo ir skaitmeninio vaizdo apdorojimo algoritmuose.
Tikrinti ir metaduomenys
Operacinės sistemos ir failų analizatoriai atpažįsta PGM failus tikrindami pradinę dvejetainę baitų seką:
Baitų lygio antraštės parašas (magiškieji baitai)
Operacinės sistemos ir failų analizatoriai atpažįsta PGM failus tikrindami pradinę dvejetainę baitų seką:
ŠEŠIOLIKTAINIS PARAŠAS (POSLINKIS 0):
50 32 / 50 35ASCII ATVAIZDAVIMAS: P2 / P5
Standartizacija: Netpbm Library Standard
Techninės specifikacijos
| Konteinerio architektūra | ASCII (P2) or binary (P5) Netpbm format with width, height, maximum gray value, and pixel stream |
| Glaudinimas | Uncompressed raw binary bytes or human-readable ASCII text numbers |
| Baitų seka (Endianness) | Big-Endian (for 16-bit binary samples in P5 mode) |
| Spalvų erdvės | Linear Grayscale or sRGB Grayscale |
| Kanalai ir struktūra | 1 channel grayscale (8-bit or 16-bit precision) |
| Maksimalūs matmenys | Practically unlimited (supports arbitrary 64-bit coordinate space) |
| Skaidrumas | None |
| Srautas ir progresyvusis įkėlimas | Sequential row-by-row streaming playback |
Techninė palyginimo matrica: PGM vs konkurentai
| Techninis atributas | PGM (Dabartinis) | PBM | PPM | PNG |
|---|---|---|---|---|
| Spalvų režimas | Pilkumo lygiai (8 bitų / 16 bitų) | 1 bito nespalvotas | RGB Truecolor (24 bitų / 48 bitų) | Pilkumo lygiai, RGB, RGBA |
| Netpbm giminaitis | PGM (nešiojamasis pilkumo žemėlapis) | PBM (nešiojamasis bitų žemėlapis) | PPM (nešiojamasis pikselių žemėlapis) | Ne „Netpbm" W3C standartas |
| Magiškieji baitai | P2 (ASCII) / P5 (dvejetainis) | P1 (ASCII) / P4 (dvejetainis) | P3 (ASCII) / P6 (dvejetainis) | ‰PNG.... |
| Suspaudimas | Nesuspaustas | Nesuspaustas | Nesuspaustas | Be nuostolių „Deflate" |
Dažni sugadinimo režimai ir šešioliktainio atkūrimo vadovas
Vaizdas rodomas apverstas arba visiškai išblukęs baltai.
Pirminė priežastis: Nesutampantis „maxval" parametras antraštėje (pvz., maxval deklaruotas kaip 1 vietoj 255).
Atkūrimas: Pataisykite maxval antraštės eilutę arba koduokite su „File2File Netpbm Converter".
Saugumo analizė ir analizatoriaus atakos vektoriai
PGM dekoderiai privalo kruopščiai patikrinti, ar išanalizuotų pikselių skaičius atitinka nurodytus matmenis, kad būtų išvengta buferio perpildymo.
Žinomi atakos vektoriai
- Sveikųjų skaičių perpildymas paskirstant plotis * aukštis * (maxval > 255 ? 2 : 1) buferį.
- Buferio nuskaitymas virš ribų skaitant netinkamai suformuotus ASCII skaičių žetonus.
- Paslaugos trikdžiai per didžiulį atminties paskirstymą, kurį sukėlė suklastoti antraštės matmenys.
Geriausia apsaugos praktika:
Istorinė kilmė ir svarbiausi etapai
Pagrindiniai privalumai
- Nėra sudėtingumo: itin paprasta analizuoti ir rašyti C, „Python" arba „WebAssembly" kalbomis be išorinių bibliotekų.
- Gimtasis 16 bitų pilkumo spalvų palaikymas daro jį idealiu aukščio žemėlapiams, gylio žemėlapiams ir termovizoriniams vaizdams.
- ASCII režimas (P2) leidžia tiesiogiai tikrinti ir manipuliuoti neapdorotomis pikselių vertėmis standartiniuose teksto rengyklėse.
Techniniai apribojimai ir trūkumai
- Jokio suspaudimo: dideli failų dydžiai, palyginti su suspaustais formatais, tokiais kaip PNG.
- Trūksta metaduomenų fiziniams matmenims, spalvų erdvėms ar geografinei padėčiai nustatyti.
- Griežtai vieno kanalo: negali saugoti spalvų duomenų arba alfa skaidrumo.
Įdomūs techniniai faktai
- „OpenCV", ROS („Robot Operating System") ir mašininio matymo sistemos dažnai naudoja PGM SLAM navigacijos žemėlapiams.
- Žaidimų kūrėjai dažnai naudoja 16 bitų PGM failus kaip reljefo aukščio žemėlapius, nes neapdoroti aukščio duomenys yra nesuspausti ir lengvai įkeliami.
- Antraštėje esantis „maxval" parametras apibrėžia didžiausią šviesumo vertę (paprastai 255 esant 8 bitams arba 65535 esant 16 bitų).
Dažniausiai užduodami techniniai klausimai
Kam naudojamas PGM formatas?
PGM daugiausia naudojamas kompiuterinėje matoje (OpenCV), robotikoje (ROS žemėlapių failuose), moksliniame vaizdavime ir 3D reljefo aukščio žemėlapių generavime.
Kuo skiriasi P2 ir P5 PGM failai?
P2 yra paprastas ASCII tekstas, kuriame kiekvienas pikselis yra parašytas skaičius, o P5 saugo pikselius kaip kompaktiški dvejetainiai baitai.
Kaip galiu konvertuoti PGM į JPG arba PNG?
Įkelkite savo PGM failą į „File2File.app“, kad konvertuotumėte jį į PNG arba JPG tiesiog savo naršyklėje su visišku privatumu.