इंस्टाग्राम की कंप्रेशन क्वालिटी पर एक नज़र

click fraud protection

पता लगाएं कि क्या एंड्रॉइड के लिए इंस्टाग्राम की खराब संपीड़न गुणवत्ता प्लेटफ़ॉर्म सीमाओं या इंस्टाग्राम के डेवलपर्स की जानबूझकर की गई हरकत का परिणाम है।

एंड्रॉइड के लिए इंस्टाग्राम एप्लिकेशन आज दुनिया में सबसे लोकप्रिय सोशल मीडिया प्लेटफार्मों में से एक बन गया है। इससे अधिक सभी प्लेटफार्मों पर 300 मिलियन मासिक उपयोगकर्ता, और Google Playstore पर 100 मिलियन से अधिक व्यक्तिगत डाउनलोड, आप उम्मीद करेंगे कि Facebook का स्नैपशॉट-शेयरिंग एप्लिकेशन डिज़ाइन और कार्यक्षमता दोनों में गुणवत्ता का दावा करेगा। दुर्भाग्य से, इसके यूजरबेस के एक बड़े हिस्से के लिए - यानी, एंड्रॉइड इंस्टाग्रामर्स - इंस्टाग्राम केवल उस काम में अच्छा काम करने में विफल रहता है जो उसे करना चाहिए - सुंदर तस्वीरें साझा करना।

जबकि iOS उपयोगकर्ता अपनी रचनाओं और क्षणों को उच्च निष्ठा के साथ साझा कर सकते हैं, Android उपयोगकर्ता वर्षों से अपनी तस्वीरों में अत्यधिक गुणवत्ता हानि की रिपोर्ट कर रहे हैं। इस तरह के सिरदर्द की शिकायत करने वाले सबसे पुराने धागों में से एक यहाँ XDA पर पाया गया सितंबर 2012 में, और यह थ्रेड अब तक चल रहा है, जो पाठकों को इंस्टाग्राम द्वारा फ़ोटो को नष्ट करने की हास्यास्पद घटना से बचने के लिए अपरंपरागत तरीके प्रदान करता है। आप सोचेंगे कि दो साल से अधिक की शिकायतों, सॉफ्टवेयर और हार्डवेयर दोनों में तकनीकी सुधार और आर्थिक और बाजार विकास के बाद, इंस्टाग्राम ने इन मुद्दों को संबोधित किया होगा। क्या यह कुछ ऐसा है जिसके लिए वे दोषी हैं? या क्या समस्या का अंतर्निहित कारण जितना दिखता है उससे कहीं अधिक गहरा है?

एक सीधी नजर

यहाँ एक तस्वीर है जो मैंने स्वयं ली है। मूल शॉट का वजन होता है 4.34एमबी और गोली मार दी गई 9.6MP. "इंस्टाक्रॉप" डाउनसैंपलिंग को ध्यान में न रखें, जो बाद में इसे इंस्टाग्राम के मूल में डाउनस्केल करके ऐसी उच्च-रिज़ॉल्यूशन फ़ाइल के विवरण को नष्ट कर देगा। 640x640 पिक्सेल आउटपुट, पोस्ट-प्रोसेसिंग एल्गोरिदम के प्रत्यक्ष प्रभाव और इस पर इसके संपीड़न को देखने के लिए मैंने इसे इंस्टाग्राम अपलोड के 1:1 पहलू अनुपात के जेपीजी में क्रॉप किया। फ़ाइल।

मैंने बस वर्गाकार JPG क्रॉप को पकड़ा और इसे अपने इंस्टाग्राम पर बिना किसी फ़िल्टर, प्रभाव या किसी भी मूल्य में बदलाव किए बिना पोस्ट कर दिया। आप उम्मीद करेंगे कि छवि वैसी ही दिखे जैसी मूल रूप से देखी गई थी, लेकिन परिणाम निराशाजनक था। सीमाओं और रंग ग्रेडियेंट के आसपास संपीड़न कलाकृतियां अप्रशिक्षित आंखों के लिए भी आश्चर्यजनक रूप से ध्यान देने योग्य हैं। जबकि मूल फसल फ़ाइल का आकार 1:1 था 1.6एमबी, नई आकार और संपीड़ित छवि है 125KB. इसका मतलब यह है कि संपीड़न ने मूल फ़ाइल का आकार लगभग कई गुना कम कर दिया 13 - जो जरूरी नहीं कि कुछ संदर्भों में बुरा हो।

दिलचस्प बात यह है कि इंस्टाग्राम एक "उच्च गुणवत्ता वाली छवि प्रसंस्करण" प्रदान करता है जो डिफ़ॉल्ट रूप से बंद है, लेकिन जब इसे चालू किया जाता है, तो परिणाम वास्तव में बेहतर नहीं होते हैं, और संपीड़ित फ़ाइल रुक जाती है 129KB. यहां मैं आपको वही फसल प्रदान करता हूं और आप देख सकते हैं कि वर्तमान संपीड़न अभी भी तीव्र है और छवि की निष्ठा में अभी भी एक मोटा और पिक्सेलयुक्त नुकसान है।

दबाव

कंप्यूटर एल्गोरिदम विभिन्न तकनीकों के साथ एक छवि के आकार को कम करने के विभिन्न तरीके प्रदान करते हैं जो अनुकूलन करते हैं

डेटा की बाद में व्याख्या करने और उचित चित्र को उचित तरीके से प्रदर्शित करने की आवश्यकता है। छवियों के लिए कई फ़ाइल प्रकार इन संपीड़न तकनीकों से मजबूती से जुड़े हुए हैं जिनका वे समर्थन करते हैं या समर्थन नहीं करते - और यही कारण है कि हम आम तौर पर कुछ प्रकार के चित्रों पर बेहतर गुणवत्ता देखते हैं अन्य। पीएनजी (पोर्टेबल नेटवर्क ग्राफ़िक्स) फ़ाइलों का उपयोग आम तौर पर विश्वसनीयता और तस्वीर की गुणवत्ता खोए बिना मीडिया साझा करने के लिए किया जाता है, जो हानिपूर्ण संपीड़न से गुजरने वाली छवियों की तुलना में बड़े फ़ाइल आकार की कीमत पर होता है। GIF यह एक बहुत पुराना छवि प्रारूप है जो हानिरहित रूप से संपीड़ित भी होता है।

फ़ाइल आकार को कम करने या अनुकूलित करने की तकनीकें कई प्रोग्रामर अपनी शैक्षणिक गतिविधियों में सीखते हैं, चाहे वे किसी भी क्षेत्र में विकसित हों। जैसे नाम अपस्फीति (के लिए इस्तेमाल होता है पीएनजी) या Lempel-Ziv-वेल्च एल्गोरिदम (आमतौर पर इसके लिए उपयोग किया जाता है GIF) आजकल कई कंप्यूटर विज्ञान कक्षाओं में भाग लेते हैं, कई प्रोग्रामर के कानों में गूंजते हैं, और तेजी से अधिक कुशल संपीड़न तकनीकों के विकास और दस्तावेज़ीकरण के साथ, आप उम्मीद करेंगे कि अरबपति प्लेटफ़ॉर्म एक बहुत अच्छी तस्वीर पेश करने के लिए उचित रूप से कुशल एल्गोरिदम को शामिल करेगा, जबकि तकनीकीताओं को उनके सर्वर और उपयोगकर्ता पर बहुत अधिक बोझ नहीं डालना पड़ेगा। हार्डवेयर.

लेकिन ऐसा बिलकुल नहीं है. लाखों इंस्टाग्रामर्स और मैं जो तस्वीरें हर दिन लेते और अपलोड करते हैं, वे सीधे तौर पर इनकी इंजीनियरिंग कौशल की कहानी का खंडन करती हैं प्रौद्योगिकी जगत की महाशक्तियाँ, जिनसे अपेक्षा की जाती है कि वे सर्वोत्तम उपयोगकर्ता प्रदान करने के लिए अपने राजस्व का एक बड़ा हिस्सा अपने सॉफ़्टवेयर में वापस निवेश करें अनुभव। लेकिन यहाँ अभी भी एक प्रश्न अनुत्तरित है: Android क्यों और iOS क्यों नहीं?

वीएससीओ और एंड्रॉइड मेमोरी

जबकि रेडिट जैसे लोकप्रिय इंटरनेट मंच उनके दैनिक आक्रोश का कारण जानने की कोशिश कर रहे थे, ऐसा लग रहा था कि इस अन्याय का कोई तार्किक आधार नहीं है। कंप्यूटिंग शक्ति विभाग में एंड्रॉइड हार्डवेयर के आंतरिक रूप से हीन होने की संभावित व्याख्या, या तथ्य यह है कि, विशाल सरणी को देखते हुए निचले स्तर के एंड्रॉइड डिवाइसों पर, पूरे प्लेटफ़ॉर्म पर एक सुसंगत उपयोगकर्ता अनुभव सुनिश्चित करने के लिए ये उपाय किए जाने थे - चाहे आपने कितना भी भुगतान किया हो अपने फोन को। जैसे-जैसे महीने बीतते गए, हर इंस्टाग्राम अपडेट के बाद रिपोर्ट उसी मुद्दे पर रिपोर्ट करती रही जहां यह समस्या फ़ोरम उपयोगकर्ताओं के बीच एक चलन बन गई, जिसने शीघ्र ही इसके प्रत्येक पुनरावृत्ति का अनुसरण किया आवेदन पत्र।

उपयोगकर्ताओं ने लोकप्रिय कैमरा और चित्र संपादन एप्लिकेशन वीएससीओ कैम के साथ भी ऐसी ही घटना देखी। "एंड्रॉइड फ़ोटोग्राफ़ी के नए मानक" के रूप में प्रचारित, कुछ लोगों ने तुरंत नोटिस किया कि एप्लिकेशन इन दावों पर खरा नहीं उतरा। गुणवत्ता में कमी और देखी गई कलाकृतियों का प्रकार इंस्टाग्राम के समान था, इसलिए कुछ लोगों को तुरंत लगा कि बिंदुओं को जोड़ने वाली एक रेखा है। अब तक हमारे पास केवल अटकलें ही थीं कि इस समस्या का कारण क्या हो सकता है। कुछ लोगों ने समस्या के लिए सीधे तौर पर एंड्रॉइड के अंतर्निहित बिटमैप डाउनसैंपलिंग एल्गोरिदम को जिम्मेदार ठहराया। हालाँकि, जो सबसे सम्मोहक कारण सामने आया वह साधारण तथ्य यह था कि इंस्टाग्राम और संभवतः वीएससीओ ने डाउनसैंपलिंग एल्गोरिदम का खराब कार्यान्वयन किया था, विशेष रूप से निकटतम पड़ोसी पुनः नमूनाकरण. लेकिन डेवलपर्स के आधिकारिक बयान के बिना, अटकलों की पूरी तरह से पुष्टि नहीं की जा सकी।

यह तब था जब हमने सीखा वीएससीओ का तकनीकी समर्थन उनके रिज़ॉल्यूशन और निष्ठा के नुकसान का कारण खराब सॉफ़्टवेयर कार्यान्वयन नहीं था, बल्कि एंड्रॉइड उपकरणों में मेमोरी की कमी थी:

"ज्यादातर एंड्रॉइड डिवाइसों की मेमोरी कुछ गीगाबाइट से ऊपर होने के बावजूद काफी सीमित है।" लेकिन एप्लिकेशन को उपलब्ध सभी चीज़ों का उपयोग करने की अनुमति नहीं है मेमोरी और इस प्रकार हमें एंड्रॉइड से जो कुछ भी हमें दिया गया है, उसका भुगतान करना होगा।

“आयात करते समय बड़ी छवियों का आकार 50% तक छोटा किया जा सकता है आप जिस डिवाइस पर हैं और उपलब्ध मेमोरी पर निर्भर करता है।

वे यह भी दावा करते हैं कि यह उनकी इमेज प्रोसेसिंग तकनीक है जो मेमोरी और एसओसी दोनों पर बहुत अधिक बोझ डालती है यह, एंड्रॉइड मेमोरी सीमाओं के साथ मिलकर, यही कारण है कि हम गुणवत्ता संबंधी बाधाएं देखते हैं जो हमें नहीं मिलती हैं आईओएस.

के अनुसार Android के डेवलपर प्रशिक्षण लेख, पर एक कठोर सीमा निर्धारित की गई है प्रत्येक ऐप के लिए ढेर का आकार एक कार्यात्मक मल्टीटास्किंग वातावरण बनाए रखने के लिए। यह इस बात पर निर्भर करता है कि डिवाइस में कितनी रैम उपलब्ध है, और यदि ऐप ढेर क्षमता तक पहुंचता है, तो इसमें रैम खत्म होने का जोखिम होता है।

तो पहली नज़र में, यह प्रतीत वीएससीओ की कहानी सम्मोहक है, लेकिन यह कुछ ऐसी चीजों की व्याख्या नहीं करती है, जिन्हें संशयवादी दृष्टिकोण अपनाने वाले लोग टाल नहीं सकते हैं।

परिसीमन

बहुत ही सतही नज़र में, हम यह प्रश्न पूछ सकते हैं: यदि एक स्मार्टफोन जिसमें आमतौर पर 1 जीबी और 2 जीबी रैम है और नवीनतम पोर्टेबल प्रोसेसर पूर्ण रिज़ॉल्यूशन में एक छवि को संसाधित नहीं कर सकते हैं, 32 एमबी रैम डीएसएलआर कैमरे क्यों सक्षम हैं वह?

इस मुद्दे पर मजबूत राय जुटाने के लिए हम अपने वरिष्ठ मान्यता प्राप्त डेवलपर्स में से एक के पास पहुंचे। ओम्निरोम डेवलपर XpLoDWilD टिप्पणी की:

“यहाँ सीमा छवि की गणना या संसाधित करने का तरीका है। इसके लिए GPU तेज़ है, और ऐसा करने का सबसे तेज़ तरीका छवि को बनावट के रूप में GPU में 'अपलोड' करना है और इसे संसाधित करें - इसमें समस्या यह है कि आप GPU अधिकतम बनावट आकार द्वारा सीमित हैं, जो आम तौर पर होता है 4096x4096।”

सामान्य तौर पर, 8MP चित्र 3264x2448 होते हैं, जो 4000x3000 की 12MP तक की सीमा में फिट होने के लिए काफी छोटे होते हैं। नए फ्लैगशिप और कैमरा-फ़ोन सेंसर 13MP से ऊपर जा सकते हैं और चित्र का आकार अधिकतम GPU से बड़ा हो सकता है अधिकतम बनावट आकार, जिसके लिए अनिवार्य रूप से बाधा के भीतर छवि को कम करने और समग्र रूप से खोने की आवश्यकता होगी विवरण।

“मुद्दा यह नहीं है कि ऐप्स हैं एक छोटा संस्करण अपलोड किया जा रहा हैहालाँकि, ऐसा नहीं है कि ऐप्स हैं छवि के डाउनस्केल्ड संस्करण को संसाधित करना, और उस संसाधित फ़ाइल को अपलोड करना”, उन्होंने आगे कहा। "संभवतः प्रसंस्करण समय को और कम करने के लिए, उन्होंने रिज़ॉल्यूशन को और भी कम निर्धारित किया है"।

XpLoDWilD सुझाव देता है कि बीच में अच्छा संतुलन हो प्रोसेसिंग समय और जीपीयू बाधा उपयोगकर्ता को उस छवि का पूरी तरह से संसाधित पूर्वावलोकन दिखाने के बजाय, जिस पर वे काम कर रहे हैं, दृश्य होगा संपादन प्रक्रिया के लिए सहायता के लिए एक छोटा थंबनेल होना चाहिए जो स्क्रीन पर फिट हो सके (2048x2048 से कुछ छोटा)। इस थंबनेल को आम तौर पर विश्वसनीय रूप से तेजी से संसाधित किया जा सकता है, जबकि उपयोगकर्ता को चित्र कैसा दिखेगा इसका अच्छा अनुमान भी दिया जा सकता है। जब उपयोगकर्ता मूल्य समायोजन और फ़िल्टर चयन पर अपने द्वारा चुने गए विकल्पों की पुष्टि करता है, तो पूर्ण रिज़ॉल्यूशन चित्र होगा पृष्ठभूमि में रूपांतरित - छवि को थंबनेल रिज़ॉल्यूशन आकार के ग्रिड में विभाजित करके, और फिर प्रत्येक ब्लॉक को संसाधित करके अलग से। अंतिम चरण में प्रत्येक क्षेत्र को एक बड़े पूर्ण-रिज़ॉल्यूशन बिटमैप में फ़िट करके सीपीयू पर अंतिम छवि को संयोजित करना शामिल होगा।

यह छवि को मूल रिज़ॉल्यूशन में संसाधित करने का एक तरीका है। यह कुछ ऐसा है जो इंस्टाग्राम करता नहीं दिख रहा है, यह देखते हुए कि आप जो पूर्वावलोकन देखते हैं, वह फिलहाल तक है आप चित्र को संसाधित करते हैं, लेकिन उसमें अपलोड करने के लिए तैयार चित्र जैसी भयानक गुणवत्ता और कलाकृतियाँ नहीं होती हैं चित्र। ऐसा प्रतीत होता है कि पूर्वावलोकन छवि क्रूर संपीड़न से नहीं गुजरती है, इसलिए संपीड़न अंतिम छवि को संसाधित करने के समय होता है - जो निम्न-गुणवत्ता वाली छवि को आउटपुट करता है।

एंड्रॉइड प्लेटफ़ॉर्म पर वास्तव में किसी छवि को उच्च पूर्ण-रिज़ॉल्यूशन में संसाधित करने और इसे अपलोड करने में कोई समस्या नहीं है। हार्डवेयर पक्ष पर, नवीनतम iPhones की बनावट आकार सीमा 2048 से 4096 है। तो यह संभवतः एक हार्डवेयर सीमा नहीं है, और यह एक प्लेटफ़ॉर्म सीमा नहीं है - जैसा कि अन्य डेवलपर्स द्वारा किया जा सकता है और किया गया है।

लेकिन ढेर के आकार की एक सीमा थी, हालाँकि!

हाँ, लेकिन बिल्कुल नहीं. उच्च घनत्व वाली छवियों के लिए आवश्यक अतिरिक्त मेमोरी के कारण जावा हीप पर एक उचित सीमा है। कुछ शोध के बाद मुझे एंड्रॉइड एनडीके पर चर्चा करने वाले एक Google समूह पर बहस का यह अंश मिला मूलनिवासी विकास किट, जो डेवलपर्स को C/C++ में लिखे गए कोड को अनुप्रयोगों में पेश करके पुन: उपयोग करने की अनुमति देता है जावा नेटिव इंटरफ़ेस, जिससे ऐप का निष्पादन कुछ हद तक तेज़ हो जाता है क्योंकि इसकी व्याख्या वर्चुअल मशीन के बजाय सीधे प्रोसेसर पर की जाती है।

बातचीत में, वह हो सकता है यहाँ पाया गया, Google इंजीनियर और Android Framework डेवलपर डायने हैकबॉर्न एंड्रॉइड की मेमोरी बाधाओं के बारे में कुछ गलतफहमियों को दूर करता है। वह नोट करती है कि, "यह देखते हुए कि यह एनडीके सूची है, सीमा वास्तव में आप पर नहीं लगाई गई है, क्योंकि यह केवल जावा ढेर पर है। देशी ढेर में आवंटन की कोई सीमा नहीं है... “. जहां तक ​​रैम के उपयोग का सवाल है, वह टिप्पणी करती हैं: “यदि पर्याप्त रैम है, तो डेटा रैम में रखा जाएगा। अगर नहीं... ठीक है, आप अभी भी दौड़ते हैं”।

वह यह भी कहती हैं कि न केवल इसकी कोई सीमा है देशी ढेर, लेकिन न ही इसके लिए कोई है जीपीयू ढेर. तो ऐसा लगता है कि एनडीके के अस्तित्व के कारण, एंड्रॉइड द्वारा वास्तव में कोई प्रतिबंध "लगाया" नहीं गया है कि आप कितनी मेमोरी, सामान्य प्रोसेसिंग या जीपीयू का उपयोग कर सकते हैं।

लेकिन फिर भी, जावा हीप एक चित्र के लिए पर्याप्त बड़ा होना चाहिएनिगरानी करना. एक असम्पीडित बिटमैप (ARGB 8888) के रूप में एक 13MP चित्र लगभग लगेगा 50एमबी. डिफ़ॉल्ट अधिकतम ढेर आकार श्रेणियाँ 256 एमबी तक या512एमबी यह एंड्रॉइड डिवाइस और उस पर चल रहे एंड्रॉइड संस्करण पर निर्भर करता है। इंस्टाग्राम के बारे में लेता है 62एमबी निष्क्रिय होने पर, और जैसा कि मेरे सिस्टम मॉनिटर ग्राफ़ से पता चलता है, 13MP छवि की पुनर्प्राप्ति और प्रसंस्करण के दौरान RAM का उपयोग नगण्य प्रतीत होता है, और निश्चित रूप से कथित तौर पर "एंड्रॉइड द्वारा लगाई गई" सीमा कहीं भी करीब नहीं है, जिस पर ध्यान दिए बिना काम किया जा सकता है, और इसे कुछ एल्गोरिदम का उपयोग करके टाला या कम भी किया जा सकता है अन्य।

निष्कर्ष

जैसा कि पहले उल्लेख किया गया है, हम इन ऐप्स के पर्दे के पीछे क्या चल रहा है इसकी पूरी कहानी कभी नहीं जान पाएंगे। लेकिन उनके निर्माताओं की प्रतिक्रियाओं या उनके समर्थकों द्वारा दिए गए औचित्य बारीकी से निरीक्षण करने पर बिल्कुल भी प्रशंसनीय नहीं लगते हैं। यहां समस्या एंड्रॉइड के हार्डवेयर या सॉफ़्टवेयर द्वारा प्रदान की जा सकने वाली किसी भी सीमा के बजाय औसत दर्जे के सॉफ़्टवेयर कार्यान्वयन के कारण प्रतीत होती है।

तथ्य यह है कि वहाँ ऐसे एप्लिकेशन हैं जो संपीड़न के आसपास काम करते हैं, साथ ही एंड्रॉइड की आंतरिक कार्यप्रणाली पर दस्तावेज़ीकरण की मौजूदगी और सामग्री, की क्षमता वर्तमान एंड्रॉइड हार्डवेयर और विशेषज्ञों की राय, सभी एंड्रॉइड उपयोगकर्ताओं के साथ जानबूझकर या कम से कम स्वीकार्य रूप से होने वाले अन्याय की ओर इशारा करते प्रतीत होते हैं हल करने योग्य.

मुझे लगता है कि अब एंड्रॉइड उपयोगकर्ताओं के लिए न केवल सच्चाई जानने का, बल्कि उनके साथ उचित व्यवहार करने का भी समय आ गया है। हालाँकि ऐसा हो सकता है कि Android डिवाइस, सामूहिक रूप सेजब हार्डवेयर की बात आती है तो औसत और औसत iPhone से नीचे होते हैं, इसलिए मानकों को कम करने और इस पर हर किसी के उपयोगकर्ता अनुभव को बर्बाद करने का कोई कारण नहीं है। और प्रत्येक डेवलपर द्वारा प्लेटफ़ॉर्म को सेकंड-हैंड बचा हुआ सामान देने से, उपयोगकर्ता तेजी से सिस्टम के बजाय डेवलपर्स पर अपनी निराशा केंद्रित करते हैं - जैसा कि होना चाहिए।

को श्रेय पिक्सेलपल्स विशेष रुप से प्रदर्शित छवि के लिए