छवि संपीड़न कैसे काम करता है: मूल बातें
किसी कारण से, आप वास्तव में 1.97 मेगाबाइट्स स्पेस के बिना छवि में 2 मिलियन पिक्सल फिट कर सकते हैं। मुझे एक मीठा 1080 पी वॉलपेपर मिला (जिसमें लगभग 2 मिलियन पिक्सल हैं) और इसे डाउनलोड किया गया। गुणों की जांच, मैंने कुछ अजीब देखा: यह केवल मेरी हार्ड ड्राइव पर 230 केबी स्पेस ले लिया। ऐसा क्यों है? किसी ऐसे व्यक्ति के लिए जो छवि संपीड़न को समझ में नहीं आता है, यह जादू की तरह लगता है। लेकिन एक बार जब आप विषय को जान लेंगे, तो आप समझेंगे कि आपकी स्क्रीन पर पिक्सेल की मात्रा के बावजूद कुछ छवियां दूसरों की तुलना में बड़ी हैं। समय छोटा है, तो आइए छवि संपीड़न के पीछे बुनियादी सिद्धांतों में त्वरित गोता लगाएँ।
तरीके, दृष्टिकोण, एल्गोरिदम गैलोर।
यह सोचने के लिए मूर्ख है कि छवि को संपीड़ित करने का एक ही तरीका है। अलग-अलग विधियां हैं, जिनमें से प्रत्येक एक आम समस्या के लिए एक अद्वितीय दृष्टिकोण है, और प्रत्येक दृष्टिकोण को एक समान निष्कर्ष तक पहुंचने के लिए विभिन्न एल्गोरिदम में उपयोग किया जा रहा है। प्रत्येक एल्गोरिदम को एक फ़ाइल प्रारूप (पीएनजी, जेपीजी, जीआईएफ, आदि) द्वारा दर्शाया जाता है। अभी के लिए, हम उन विधियों के बारे में बात करने जा रहे हैं जिनका उपयोग आम तौर पर छवियों को संपीड़ित करने के लिए किया जाता है, जो बताएंगे कि उनमें से कुछ इतनी कम जगह क्यों लेते हैं।
लापरवाही संपीड़न
जब आप छवि संपीड़न के संदर्भ में "लापरवाह" शब्द के बारे में सोचते हैं, तो संभवतः आप एक ऐसी विधि के बारे में सोचते हैं जो अपेक्षाकृत छोटे छवि आकार को बनाए रखने के दौरान गुणवत्ता को संरक्षित रखने के लिए सबसे कठिन प्रयास करता है। यह सच के बहुत करीब है। एक विधि के रूप में, लापरवाह संपीड़न छवि स्पष्टता को संरक्षित, जितना संभव हो विरूपण को कम करता है। यह सभी पिक्सल की एक इंडेक्स बनाकर और समान रंगीन पिक्सल को एक साथ समूहित करके करता है। यह फ़ाइल की संपीड़न कैसे काम करता है, सिवाय इसके कि हम डेटा की छोटी इकाइयों से निपट रहे हैं।
इस प्रकार की नौकरी के लिए डिफलेट सबसे आम एल्गोरिदम में से एक है। यह दो अन्य एल्गोरिदम (हफमैन और एलजेड 77, यदि आप एक बुकवार्म हैं) पर आधारित है और इसमें छवियों के भीतर पाए गए डेटा को समूहित करने का एक बहुत ही प्रयास किया गया और सही तरीका है। डेटा की लंबाई के माध्यम से चलने और एक ही रंग इकाई के साथ एक पिक्सेल के कई उदाहरणों को संग्रहीत करने के बजाय (रन-लम्बाई एन्कोडिंग के रूप में जाना जाता है), यह पूरे कोड में पाए गए डुप्लिकेट स्ट्रिंग को पकड़ता है और "पॉइंटर" सेट करता है प्रत्येक डुप्लिकेट के लिए मिला। जहां भी एक विशेष स्ट्रिंग डेटा (पिक्सेल) का प्रयोग अक्सर किया जाता है, यह उन सभी पिक्सल को भारित प्रतीक के साथ बदल देता है जो सब कुछ और संपीड़ित करता है।
ध्यान दें कि रन-लम्बाई एन्कोडिंग और डिफलेट के साथ, पिक्सेल में से कोई भी वास्तव में खाया नहीं जाता है या रंग बदलने के लिए मजबूर नहीं किया जाता है। इस विधि का उपयोग पूरी तरह से एक छवि में परिणाम होता है जो कच्चे मूल के समान होता है। दोनों के बीच एकमात्र अंतर यह है कि वास्तव में आपके हार्ड ड्राइव पर कितनी जगह ली जाती है!
हानिपूर्ण संपीड़न
जैसा कि नाम का तात्पर्य है, हानिकारक संपीड़न एक छवि को अपनी कुछ सामग्री खो देता है। जब बहुत दूर ले लिया जाता है, तो यह वास्तव में छवि को पहचानने योग्य नहीं बना सकता है। लेकिन हानिकारक यह नहीं दर्शाता है कि आप पिक्सेल को खत्म कर रहे हैं। वास्तव में इस तरह छवियों को संपीड़ित करने के लिए आमतौर पर दो एल्गोरिदम उपयोग किए जाते हैं: एन्कोडिंग और क्रोमो सबैम्पलिंग को बदलें । पूर्व छवियों में और बाद में वीडियो में अधिक आम है।
एन्कोडिंग को बदलने के साथ, एक छवि के रंगों को अलग-अलग गणितीय सूत्र का उपयोग करके औसत किया जाता है जिसे अलग कोसाइन ट्रांसफॉर्म कहा जाता है। छवि रंगीन हानि को पीड़ित करती है और अत्यधिक उपयोग होने पर कलाकृतियों (छवि के यादृच्छिक बिंदुओं पर अजीब पिक्सेलेशन) पेश कर सकती है। यह विशेष एल्गोरिदम एक मजबूत लाभ के साथ अपनी मजबूती के लिए बनाता है: आप यह निर्धारित कर सकते हैं कि आप छवि के साथ कितनी गुणवत्ता रखना चाहते हैं। लापरवाही संपीड़न के साथ, सबसे नज़दीक आप समग्र रूप से गुणवत्ता में हेरफेर करने के लिए आ सकते हैं, प्रत्येक छवि के रंगों की संख्या निर्धारित करके।
Chroma subsampling एक और दृष्टिकोण लेता है। रंग के छोटे ब्लॉक को औसत करने के बजाय, जो किसी छवि की चमक को भी प्रभावित कर सकता है, यह सावधानीपूर्वक सभी क्षेत्रों पर चमक रखने की कोशिश करता है। यह आपकी आंखों को गुणवत्ता में किसी भी डुबकी को आसानी से ध्यान में नहीं रखता है। यह एनिमेशन के संपीड़न के लिए वास्तव में बहुत अच्छा है, यही कारण है कि इसे वीडियो स्ट्रीम में अधिक उपयोग किया जाता है। यह कहना नहीं है कि छवियां इस एल्गोरिदम का भी उपयोग नहीं करती हैं।
लेकिन रुको, और भी है! Google ने एक नए हानिकारक एल्गोरिदम पर एक शॉट भी लिया, जिसे वेबपी के नाम से जाना जाता है। रंगीन जानकारी औसत करने के बजाय, यह आसपास के टुकड़ों को देखकर पिक्सेल के रंग की भविष्यवाणी करता है। परिणामस्वरूप संकुचित छवि में वास्तव में लिखा गया डेटा अनुमानित रंग और वास्तविक रंग के बीच का अंतर है। अंत में, कई भविष्यवाणियां सटीक होंगी, जिसके परिणामस्वरूप शून्य हो जाएगा। और ज़ीरो के पूरे समूह को मुद्रित करने के बजाय, यह उन सभी को एक प्रतीक में संकुचित करता है जो उन्हें दर्शाता है। Google की सटीकता में छवि सटीकता में सुधार हुआ है और संपीड़न अन्य हानिकारक एल्गोरिदम की तुलना में छवि आकार को 25 प्रतिशत की औसत से कम कर देता है।
यह प्रश्न और चर्चा के लिए समय है!
यदि आप छवि फ़ाइलों की दुनिया में नए हैं, तो आप शायद कम से कम इस जानकारी को भ्रमित कर पाएंगे। यदि आपके पास कोई प्रश्न है, तो इसे टिप्पणियों में पोस्ट करें और हम इसका उत्तर देने के लिए अपनी पूरी कोशिश करेंगे। अन्यथा, इस पर चर्चा करने के लिए आपका स्वागत है!