पोर्टेबल ग्रेमैप (.pgm)

Netpbm मानक

पोर्टेबल ग्रेमैप प्रारूप (PGM) नेटपबम परिवार का ग्रेस्केल इमेज विनिर्देश है, जिसका व्यापक रूप से कंप्यूटर विज़न, रोबोटिक्स, ऑप्टिकल निरीक्षण और डिजिटल इमेज प्रोसेसिंग एल्गोरिदम में उपयोग किया जाता है।

निरीक्षण और मेटाडेटा

ऑपरेटिंग सिस्टम और फ़ाइल विश्लेषक शुरुआती बाइनरी बाइट अनुक्रम का निरीक्षण करके PGM फ़ाइलों की पहचान करते हैं:

फ़ाइलें यहाँ चुनें या छोड़ें

निजी - फ़ाइलें कभी आपके डिवाइस से बाहर नहीं जातीं

या पेस्ट करें Ctrl+V
नेटवर्क पर कोई डेटा भेजे बिना गोपनीयता की गारंटी: बाहरी सर्वर पर 0 बाइट अपलोड किए गए। सारी प्रोसेसिंग आपके ब्राउज़र सैन्डबॉक्स में स्थानीय रूप से हुई।

बाइट-स्तरीय हेडर हस्ताक्षर (मैजिक बाइट्स)

ऑपरेटिंग सिस्टम और फ़ाइल विश्लेषक शुरुआती बाइनरी बाइट अनुक्रम का निरीक्षण करके PGM फ़ाइलों की पहचान करते हैं:

HEX हस्ताक्षर (ऑफ़सेट 0):

50 32 / 50 35

ASCII निरूपण: P2 / P5

मानकीकरण: Netpbm लाइब्रेरी मानक

तकनीकी विनिर्देश

कंटेनर आर्किटेक्चरचौड़ाई, ऊँचाई, अधिकतम धूसर मान और पिक्सेल स्ट्रीम वाला ASCII (P2) या बाइनरी (P5) Netpbm प्रारूप
कंप्रेशनअसंपीड़ित कच्चे बाइनरी बाइट या मानव-पठनीय ASCII टेक्स्ट संख्याएँ
बाइट एंडियानेसबिग-एंडियन (P5 मोड में 16-bit बाइनरी नमूनों के लिए)
कलर स्पेसलीनियर ग्रेस्केल या sRGB ग्रेस्केल
चैनल और संरचना1 चैनल ग्रेस्केल (8-bit या 16-bit सटीकता)
अधिकतम आयामव्यावहारिक रूप से असीमित (मनमाने 64-bit निर्देशांक स्थान का समर्थन)
पारदर्शिताकोई नहीं
स्ट्रीमिंग और प्रोग्रेसिवपंक्ति-दर-पंक्ति क्रमिक स्ट्रीमिंग प्लेबैक

तकनीकी तुलना मैट्रिक्स: PGM बनाम प्रतियोगी

तकनीकी विशेषताPGM (वर्तमान)PBMPPMPNG
रंग मोड (Color Mode)ग्रेस्केल (8-बिट / 16-बिट)1-bit मोनोक्रोमRGB ट्रू कलर (24-बिट / 48-बिट)ग्रेस्केल, RGB, RGBA
नेटपबम परिवार का संबंधित प्रारूपPGM (पोर्टेबल ग्रेमैप)PBM (पोर्टेबल बिटमैप)PPM (पोर्टेबल पिक्समैप)गैर-Netpbm W3C मानक
मैजिक बाइट्स (Magic Bytes)P2 (ASCII) / P5 (बाइनरी)P1 (ASCII) / P4 (बाइनरी)P3 (ASCII) / P6 (बाइनरी)‰PNG....
संपीड़न (Compression)असंपीडितअसंपीडितअसंपीडितलॉसलेस डिफ्लेट

सामान्य करप्शन मोड और हेक्स रिकवरी गाइड

इमेज उल्टी या पूरी तरह से सफेद प्रदर्शित होती है।

मूल कारण: हेडर में 'maxval' पैरामीटर का बेमेल होना (उदा. maxval को 255 के बजाय 1 घोषित करना)।

रिकवरी: maxval हेडर लाइन को सुधारें या File2File.app Netpbm कन्वर्टर के साथ ट्रांसकोड करें।

सुरक्षा विश्लेषण और पार्सर अटैक वेक्टर्स

PGM डिकोडर्स को बफर ओवररन रोकने के लिए सावधानीपूर्वक सत्यापित करना चाहिए कि पार्स किए गए पिक्सेलों की संख्या घोषित आयामों से मेल खाती है।

ज्ञात अटैक वेक्टर्स

  • चौड़ाई * ऊँचाई * (maxval > 255 ? 2 : 1) बफर आवंटन के दौरान पूर्णांक ओवरफ़्लो।
  • विकृत ASCII नंबर टोकन पढ़ते समय बफर ओवर-रीड।
  • गढ़े हुए हेडर आयामों द्वारा शुरू किए गए बड़े पैमाने पर मेमोरी आवंटन के माध्यम से सेवा से इनकार।

सुरक्षात्मक सर्वोत्तम प्रथाएँ: पिक्सेल स्ट्रीम पढ़ने से पहले अधिकतम स्वीकार्य आयाम और मेमोरी आवंटन सीमाएँ तय करें।

ऐतिहासिक मूल और मील के पत्थर

2000वैज्ञानिक इमेजिंग के लिए बाइनरी P5 मोड में 16-बिट गहराई (65535 तक मैक्सवल) मानकीकृत।
1993मानक मध्यवर्ती ग्रेस्केल प्रारूप के रूप में नेटपबम टूलकिट में शामिल किया गया।
1989जेफ पोस्कांज़र ने पूर्ण 256-स्तर ग्रेस्केल समर्थन के साथ PBM के पूरक के रूप में PGM बनाया।

मुख्य लाभ और खूबियाँ

  • कॉम्पैक्ट PGM संरचना से बुनियादी रीडर लागू करना आसान हो सकता है, हालांकि सैंपल डेप्थ, हेडर और खराब इनपुट संभालने में सावधानी चाहिए।
  • मूल 16-बिट ग्रेस्केल समर्थन इसे हाइटमैप, गहराई मानचित्र और थर्मल इमेजिंग के लिए आदर्श बनाता है।
  • ASCII मोड (P2) मानक टेक्स्ट संपादकों में कच्चे पिक्सेल मानों के प्रत्यक्ष निरीक्षण और हेरफेर की अनुमति देता है।

तकनीकी सीमाएँ और कमियाँ

  • कोई संपीड़न नहीं: PNG जैसे संपीड़ित प्रारूपों की तुलना में फ़ाइलें अधिक जगह घेरती हैं।
  • भौतिक आयामों, रंग स्थानों या भौगोलिक स्थिति के लिए मेटाडेटा का अभाव है।
  • सख्त एकल-चैनल: रंग डेटा या अल्फा पारदर्शिता संग्रहीत नहीं कर सकता है।

रोचक तकनीकी जानकारी

  • OpenCV, ROS (रोबोट ऑपरेटिंग सिस्टम), और मशीन विज़न सिस्टम SLAM नेविगेशन मैप्स के लिए अक्सर PGM का उपयोग करते हैं।
  • गेम डेवलपर अक्सर भूभाग हाइटमैप के रूप में 16-बिट PGM फ़ाइलों का उपयोग करते हैं क्योंकि कच्चा ऊंचाई डेटा संपीड़ित नहीं होता है और लोड करने में आसान होता है।
  • हेडर में 'maxval' पैरामीटर अधिकतम चमक मूल्य को परिभाषित करता है (आमतौर पर 8-बिट के लिए 255 या 16-बिट के लिए 65535)।

अक्सर पूछे जाने वाले तकनीकी प्रश्न

PGM फॉर्मेट का उपयोग किस लिए किया जाता है?

PGM का उपयोग मुख्य रूप से कंप्यूटर विजन (OpenCV), रोबोटिक्स (ROS मैप फ़ाइलें), वैज्ञानिक इमेजिंग और 3D टेरेन हाइटमैप जनरेशन में किया जाता है।

P2 और P5 PGM फ़ाइलों में क्या अंतर है?

P2 सादा ASCII टेक्स्ट है जहाँ प्रत्येक पिक्सेल एक लिखित संख्या होती है, जबकि P5 पिक्सेल को कॉम्पैक्ट बाइनरी बाइट्स के रूप में स्टोर करता है।

मैं PGM को JPG या PNG में कैसे बदल सकता हूँ?

PGM ग्रेस्केल नमूने संग्रहीत करता है। व्यापक व्यूअर समर्थन वाली दोषरहित छवि के लिए इसे PNG में बदलें; छोटी फ़ोटो-शैली फ़ाइल चाहिए तो JPEG चुनें। JPEG में बदलने से गुणवत्ता घट सकती है।