पोर्टेबल ग्रेमैप (.pgm)
Netpbm मानकपोर्टेबल ग्रेमैप प्रारूप (PGM) नेटपबम परिवार का ग्रेस्केल इमेज विनिर्देश है, जिसका व्यापक रूप से कंप्यूटर विज़न, रोबोटिक्स, ऑप्टिकल निरीक्षण और डिजिटल इमेज प्रोसेसिंग एल्गोरिदम में उपयोग किया जाता है।
निरीक्षण और मेटाडेटा
ऑपरेटिंग सिस्टम और फ़ाइल विश्लेषक शुरुआती बाइनरी बाइट अनुक्रम का निरीक्षण करके PGM फ़ाइलों की पहचान करते हैं:
बाइट-स्तरीय हेडर हस्ताक्षर (मैजिक बाइट्स)
ऑपरेटिंग सिस्टम और फ़ाइल विश्लेषक शुरुआती बाइनरी बाइट अनुक्रम का निरीक्षण करके PGM फ़ाइलों की पहचान करते हैं:
HEX हस्ताक्षर (ऑफ़सेट 0):
50 32 / 50 35ASCII निरूपण: P2 / P5
मानकीकरण: Netpbm लाइब्रेरी मानक
तकनीकी विनिर्देश
| कंटेनर आर्किटेक्चर | चौड़ाई, ऊँचाई, अधिकतम धूसर मान और पिक्सेल स्ट्रीम वाला ASCII (P2) या बाइनरी (P5) Netpbm प्रारूप |
| कंप्रेशन | असंपीड़ित कच्चे बाइनरी बाइट या मानव-पठनीय ASCII टेक्स्ट संख्याएँ |
| बाइट एंडियानेस | बिग-एंडियन (P5 मोड में 16-bit बाइनरी नमूनों के लिए) |
| कलर स्पेस | लीनियर ग्रेस्केल या sRGB ग्रेस्केल |
| चैनल और संरचना | 1 चैनल ग्रेस्केल (8-bit या 16-bit सटीकता) |
| अधिकतम आयाम | व्यावहारिक रूप से असीमित (मनमाने 64-bit निर्देशांक स्थान का समर्थन) |
| पारदर्शिता | कोई नहीं |
| स्ट्रीमिंग और प्रोग्रेसिव | पंक्ति-दर-पंक्ति क्रमिक स्ट्रीमिंग प्लेबैक |
तकनीकी तुलना मैट्रिक्स: PGM बनाम प्रतियोगी
| तकनीकी विशेषता | PGM (वर्तमान) | PBM | PPM | PNG |
|---|---|---|---|---|
| रंग मोड (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 नंबर टोकन पढ़ते समय बफर ओवर-रीड।
- गढ़े हुए हेडर आयामों द्वारा शुरू किए गए बड़े पैमाने पर मेमोरी आवंटन के माध्यम से सेवा से इनकार।
सुरक्षात्मक सर्वोत्तम प्रथाएँ: पिक्सेल स्ट्रीम पढ़ने से पहले अधिकतम स्वीकार्य आयाम और मेमोरी आवंटन सीमाएँ तय करें।
ऐतिहासिक मूल और मील के पत्थर
मुख्य लाभ और खूबियाँ
- कॉम्पैक्ट 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 में बदलने से गुणवत्ता घट सकती है।