- PNG फ़ाइल फ़ॉर्मैट को 20 साल बाद नए रूप में संशोधित किया गया है और इसने अपनी पुरानी अहमियत फिर हासिल की है
- इस स्पेक में HDR सपोर्ट, APNG (एनीमेशन), Exif डेटा के आधिकारिक सपोर्ट सहित कई आधुनिक तकनीकों को शामिल किया गया है
- Adobe, Apple, Google जैसी प्रमुख IT कंपनियों और ब्रॉडकास्ट कंपनियों ने मिलकर इसके विकास में भाग लिया
- नवीनतम स्पेक को Chrome, Safari, Photoshop जैसे कई प्रोग्राम पहले से ही सपोर्ट कर रहे हैं
- आगे बेहतर कंप्रेशन तकनीक और parallel encoding/decoding जैसी अतिरिक्त अपडेट की योजना है
परिचय: PNG की वापसी और महत्व
- हाल ही में PNG फ़ाइल फ़ॉर्मैट को लगभग 20 साल की ठहराव अवधि के बाद नए स्पेक के साथ अपडेट किया गया है
- Library of Congress, Library and Archives Canada, National Archives of Australia जैसी प्रमुख संस्थाओं ने PNG को आधिकारिक रूप से अनुशंसित फ़ॉर्मैट के रूप में अपनाया है
- नए स्पेक के जरिए PNG ने बाज़ार में अपनी प्रतिस्पर्धात्मकता फिर हासिल की है और अपनी नवाचार क्षमता दिखाई है
नई सुविधाएँ और विशेषताएँ
उचित HDR सपोर्ट और भविष्य की संगतता
- नया PNG HDR (High Dynamic Range) सपोर्ट प्रदान करता है
- Rec. 2020 और Rec. 709 color gamut की तुलना वाली इमेज में बड़ा क्षेत्रफल वाला बाहरी त्रिकोण उन रंगों को दिखाता है जिन्हें HDR इमेज व्यक्त कर सकती है
- इस HDR जानकारी के लिए केवल 4 bytes (और मौजूदा PNG chunk overhead) अतिरिक्त चाहिए
- Chris Lilley जैसे शुरुआती लेखक और प्रमुख तकनीकी विशेषज्ञों ने भाग लेकर नई तकनीकों को स्पष्ट रूप से समझाया है
APNG (Animated PNG) की आधिकारिक मान्यता
- Mozilla द्वारा पहली बार प्रस्तावित और Firefox द्वारा सपोर्ट की गई Animated PNG (APNG) को भी आधिकारिक स्पेक में शामिल किया गया है
- पहले इसे केवल कुछ सॉफ़्टवेयर ही सपोर्ट करते थे, लेकिन अब इसे कई प्रोग्राम व्यापक रूप से अपना रहे हैं
Exif डेटा का आधिकारिक सपोर्ट
- Exif के जरिए कॉपीराइट, कैमरा जानकारी, GPS जानकारी जैसे metadata को स्टोर किया जा सकता है
- इमेज निर्माण, संग्रहण और कॉपीराइट प्रबंधन जैसे कार्यों में इसकी उपयोगिता बहुत अधिक है
समग्र सुधार और त्रुटि सुधार
- मौजूदा स्पेक की त्रुटियों (Errata) के सुधार और स्पष्टीकरण भी साथ में किए गए हैं
पृष्ठभूमि और विकास प्रक्रिया
- पिछला PNG स्पेक लगभग 20 साल पहले जारी हुआ था (iPhone के लॉन्च से साढ़े 3 साल पहले)
- W3C Timed Text Working Group (subtitle technology standardization) ने PNG में HDR सपोर्ट की ज़रूरत उठाई, जिसके बाद विकास फिर शुरू हुआ
- प्रस्ताव आते ही Adobe, Apple, BBC, Google, MovieLabs, W3C जैसी प्रमुख तकनीकी संस्थाएँ संयुक्त रूप से इसमें शामिल हुईं
- एक मज़बूत consortium बना और PNG अगली पीढ़ी के इमेज फ़ॉर्मैट के रूप में फिर उभरा
- फिलहाल दो अनुवर्ती अपडेट भी पहले से तैयार किए जा रहे हैं
पहले से व्यापक रूप से लागू स्थिति
- Chrome, Safari, Firefox, iOS/macOS, Photoshop, DaVinci Resolve, Avid Media Composer सहित कई प्रोग्राम नवीनतम PNG स्पेक को सपोर्ट करते हैं
- ब्रॉडकास्ट कंपनियों तथा संबंधित हार्डवेयर और tooling में भी इसका सपोर्ट बढ़ रहा है
- न्यूज़ स्क्रॉल, स्पोर्ट्स स्कोर बैनर जैसी प्रसारण इमेजें नए HDR PNG के उपयोग के उदाहरण हैं
आगे की योजना
- अगले संस्करण में HDR & SDR compatibility को और बेहतर बनाने की योजना है
- इसके अलावा और उन्नत कंप्रेशन तरीके, parallel encoding/decoding पर भी काम चल रहा है
- चौथा edition अपेक्षाकृत छोटा अपडेट होगा, और उसके बाद कंप्रेशन तकनीक के शोध के आधार पर पाँचवें edition का विकास किया जाएगा
2 टिप्पणियां
शुरुआत में APNG को संगठन ने इमेज के लिए standard नहीं मानकर ठुकरा दिया था, और अब जाकर उसे मान्यता दी है।
Hacker News टिप्पणियाँ
लेखक होने की बात बताते हुए कहा कि सवाल हों तो कभी भी स्वागत है
यह ज़ोर दिया कि यह PNG पूरी तरह नया फ़ॉर्मैट नहीं, बल्कि मौजूदा फ़ॉर्मैट का अपडेटेड संस्करण है
बताया कि यह बहुत उच्च स्तर की backward compatibility देता है
समझाया कि पुराने प्रोग्राम भी नई PNG फ़ाइलों को जहाँ तक संभव हो, अच्छी तरह पढ़ सकते हैं, और उदाहरण के लिए यह पहचान सकते हैं कि यह लाल सेब की तस्वीर है
PNG के अंदरूनी काम करने के तरीके को लेकर भ्रम हो सकता है, इसलिए मुख्य बातें संक्षेप में रखीं
इच्छा जताई कि नए PNG spec की क्षमताओं का उपयोग करने वाली example files हों, खासकर ऐसी demo page जहाँ animation या HDR images सीधे डाउनलोड करके program compatibility टेस्ट की जा सके
कहा कि मैं meta-format और general-purpose tooling का समर्थक हूँ
मेरे web-based drawing tool में मैं document की JSON representation को PNG के comment field में store करने वाली तरकीब इस्तेमाल करता हूँ
इससे saved file सीधे image की तरह भी काम करती है और उसे editor में फिर से खोला भी जा सकता है
इसका फायदा यह है कि download folder में पहचान में न आने वाली JSON files इकट्ठी नहीं होतीं
यह दिलचस्प तो है, लेकिन users को समझाना मुश्किल होता है कि file .png के रूप में क्यों save हो रही है, या Paint जैसे tool में खोलकर save करने पर data क्यों गायब हो जाता है
Krita भी brush settings को ऐसे ही save करता है, लेकिन data बहुत ज़्यादा हो तो अनपेक्षित समस्याएँ आ सकती हैं
Macromedia Fireworks 20 साल पहले से PNG को default save format की तरह इस्तेमाल करता था
कई AI image generation frontends भी इसी तरह इस्तेमाल करते हैं
Macromedia Fireworks PNG में Fireworks file save करता था,
यह spec पहले से व्यापक रूप से implemented चीज़ों को औपचारिक रूप देने के काफ़ी करीब है
अगर अगली पीढ़ी के PNG के लिए नया decoder चाहिए होता, तो इसे PNG2 कहना भी ठीक रहता
JPEG-XL पहले से ही उस lossless codec की ज़्यादातर शर्तें पूरी करता है जो लोग चाहते हैं
मौजूदा समय का सबसे अच्छा lossless image codec HALIC है
HALIC discussion thread देखने पर लगता है कि वास्तव में LEA 0.5 बेहतर है
सच कहूँ तो मैंने कुछ समय तक JPEG XL को सिर्फ "बहुत बड़ी images" के लिए समझकर नज़रअंदाज़ किया था
मैं computer vision image annotation tool (XLabel) में png इस्तेमाल करता हूँ
WebP की lossless compression उद्योग में शीर्ष स्तर की है, फिर भी इसका व्यापक उपयोग नहीं है
encoding/decoding speed की समस्या समय के साथ सुधर सकती है
आधिकारिक Exif data support शामिल होना सबसे अच्छी खबर है
पहले भी header में custom data लिखा जा सकता था, लेकिन Exif support का स्वागत है
वैसे जिज्ञासा है कि क्या Exif में gyroscope(घुमाव) या accelerometer(गुरुत्व) से जुड़े fields हैं
accelerometer field(Exif.Photo.Acceleration) और altitude के लिए field(Exif.Photo.CameraElevationAngle) तो हैं,
Exif image rendering में rotation handling को लेकर भ्रम पैदा कर सकता है
camera के accelerometer या inertial navigation data को record करने के लिए कोई standard field नहीं है
वास्तव में कई websites upload के समय अधिकांश Exif data हटा देती हैं
व्यक्तिगत रूप से मैं चाहूँगा कि लोग Exif की जगह XMP इस्तेमाल करें
यह PNG spec पहले से प्रचलित तरीकों को औपचारिक रूप से standardize करता है
सबसे अच्छा codec वह होना चाहिए जो हर जगह, किसी भी app में, OS shell या API, Linux आदि में भी काम करे
HEIC या AV1 जैसे formats में अगर OS स्तर पर support न हो, तो file preview करना भी मुश्किल हो जाता है
जो format ठीक से प्रचलन में न हो, उसे platform default नहीं बनना चाहिए
मेरा काम कई image formats, यहाँ तक कि सिर्फ खास क्षेत्रों में इस्तेमाल होने वाले rare formats, से जुड़ा है
यह नया spec HEIC या AV1 से भी ज़्यादा उलझन पैदा कर सकता है
अब तक पहली बार देखा कि HDR का इस्तेमाल स्पष्ट रूप से brightness/contrast ratio विस्तार के बजाय "wide color space" के अर्थ में किया गया
लगता है शायद बहुत देर हो चुकी है
और JPEG XL पहले से सभी features देता है: lossy/lossless compression, animation, HDR, Exif आदि, साथ ही advanced compression techniques जैसे finite-state entropy और ZStandard भी
मुझे लगता है अलग PNG update की ज़रूरत नहीं, बस JPEG XL इस्तेमाल करना चाहिए
लेकिन "बस adopt कर लो" वास्तविकता में काम नहीं करता
"advanced compression techniques(ZStandard आदि)" के उल्लेख पर
"PNG update की ज़रूरत नहीं, बस JPEG XL अपना लो"
समझ नहीं आता कि फिर एक और standard(derived variant) क्यों बनाया जा रहा है
अब GIF को APNG(alpha blending + transparent background + lossless compression) से replace किया जा सकता है, तो 2000s के web का एहसास फिर लौट सकता है
जिज्ञासा है कि क्या Animated SVG का भी कोई standard है
Animated SVG मौजूद है
मेरी जानकारी में आजकल GIF की जगह बिना audio वाले videos, जैसे mp4, ज़्यादा अच्छी compression देते हैं और इसलिए ज़्यादा उपयोग होते हैं
ज़्यादातर services जो GIF upload support करती हैं, उनमें APNG या animated WEBP support लगभग नहीं के बराबर है
छोटे videos को animated graphics में बदलने पर WEBP मूल रूप से APNG से बेहतर रहा है
कुछ साल पहले Lottie(Bodymovin) library इस्तेमाल करने का अनुभव रहा है
PR में यह दावा था कि "कई programs पहले से नए PNG spec को support करते हैं"
Photoshop के APNG support का उल्लेख गलत है
Photoshop HDR हिस्सा support करता है, लेकिन APNG हिस्सा support नहीं करता
किसी ने कहा कि लोगों को समय/तारीख की अनिश्चितता को software में एकसमान तरीके से manage करने की ज़रूरत है
जैसे "photo 2025 में scan हुई, सामग्री Easter के आसपास की है, 1920~1940 के बीच की" जैसी अस्पष्ट समय जानकारी संभालने की ज़रूरत
EXIF में DateTimeDigitized field मौजूद है
Google Photos और Apple Photos में तारीख़ सीधे सेट की जा सकती है, लेकिन वे उसे वास्तव में EXIF में save नहीं करते