मुझे यकीन नहीं है कि अगर किसी ने अभी तक यह स्पष्ट नहीं किया है कि जादुई संख्या ठीक 1: 2 है और नहीं, उदाहरण के लिए, 1: 1.1 या 1:20।
एक कारण यह है कि कई विशिष्ट मामलों में लगभग आधे डिजीटल डेटा शोर है , और शोर (परिभाषा के अनुसार) संपीड़ित नहीं किया जा सकता है।
मैंने एक बहुत ही सरल प्रयोग किया:
मैंने एक ग्रे कार्ड लिया । एक मानव आंख के लिए, यह ग्रे कार्डबोर्ड के एक सादे, तटस्थ टुकड़े जैसा दिखता है। विशेष रूप से, कोई जानकारी नहीं है ।
और फिर मैंने एक सामान्य स्कैनर लिया - ठीक उसी तरह का उपकरण जिसका उपयोग लोग अपनी तस्वीरों को डिजिटाइज़ करने के लिए कर सकते हैं।
मैंने ग्रे कार्ड स्कैन किया। (वास्तव में, मैंने पोस्टकार्ड के साथ मिलकर ग्रे कार्ड को स्कैन किया। पोस्टकार्ड सैनिटरी-चेकिंग के लिए था ताकि मैं यह सुनिश्चित कर सकूं कि स्कैनर सॉफ्टवेयर कुछ भी अजीब नहीं करता है, जैसे कि फीचर रहित ग्रे कार्ड को देखने पर स्वचालित रूप से इसके विपरीत जोड़ देता है।)
मैंने ग्रे कार्ड का 1000x1000 पिक्सेल हिस्सा काट लिया, और इसे ग्रेस्केल (8 बिट प्रति पिक्सेल) में बदल दिया।
हमारे पास अब एक अच्छा उदाहरण होना चाहिए कि जब आप स्कैन किए गए ब्लैक एंड व्हाइट फोटो के एक विशिष्ट हिस्से का अध्ययन करते हैं , तो उदाहरण के लिए, स्पष्ट आकाश। सिद्धांत रूप में, देखने के लिए कुछ भी नहीं होना चाहिए।
हालांकि, एक बड़े आवर्धन के साथ, यह वास्तव में इस तरह दिखता है:
कोई स्पष्ट रूप से दिखाई देने वाला पैटर्न नहीं है, लेकिन इसमें एक समान ग्रे रंग नहीं है। इसका अधिकांश भाग ग्रे कार्ड की खामियों के कारण होता है, लेकिन मैं यह मानूंगा कि इसका अधिकांश हिस्सा स्कैनर द्वारा उत्पन्न शोर है (सेंसर सेल में थर्मल शोर, एम्पलीफायर, ए / डी कनवर्टर, आदि)। गाऊसी शोर की तरह बहुत सुंदर लग रहा है; यहाँ हिस्टोग्राम है ( लघुगणकीय पैमाने में):
अब अगर हम मान लें कि प्रत्येक पिक्सेल को इस वितरण से अपना शेड उठाया गया है, तो हमारे पास कितना एंट्रॉपी है? मेरी पायथन लिपि ने मुझे बताया कि हमारे पास पिक्सेल के अनुसार 3.3 बिट्स एन्ट्रापी हैं । और यह बहुत शोर है।
यदि यह वास्तव में मामला था, तो इसका मतलब यह होगा कि कोई भी संपीड़न एल्गोरिथ्म जो हम उपयोग करते हैं, 1000x1000 पिक्सेल बिटमैप को 412500-बाइट फ़ाइल में, सर्वश्रेष्ठ मामले में संकुचित किया जाएगा। और व्यवहार में क्या होता है: मुझे 432018-बाइट पीएनजी फ़ाइल मिली, जो बहुत करीब है।
यदि हम थोड़ा-बहुत सामान्य करते हैं, तो ऐसा लगता है कि इस स्कैनर के साथ मैं जो भी ब्लैक एंड व्हाइट तस्वीरें स्कैन करता हूं, मुझे निम्नलिखित का योग मिलेगा:
- "उपयोगी" जानकारी (यदि कोई हो),
- शोर, लगभग। प्रति पिक्सेल 3 बिट्स।
अब भले ही आपका संपीड़न एल्गोरिदम उपयोगी जानकारी को << 1 बिट प्रति पिक्सेल में निचोड़ता है, फिर भी आपके पास असंगत शोर के 3 बिट प्रति पिक्सेल जितना होगा। और असम्पीडित संस्करण 8 बिट प्रति पिक्सेल है। तो संपीड़न अनुपात 1: 2 के बॉलपार्क में होगा, इससे कोई फर्क नहीं पड़ता कि आप क्या करते हैं।
एक और उदाहरण, अति-आदर्श परिस्थितियों को खोजने के प्रयास के साथ:
- एक आधुनिक DSLR कैमरा, सबसे कम संवेदनशीलता सेटिंग (कम से कम शोर) का उपयोग करते हुए।
- एक ग्रे कार्ड का एक आउट-ऑफ-फोकस शॉट (भले ही ग्रे कार्ड में कुछ दृश्यमान जानकारी हो, यह धुंधला हो जाएगा)।
- बिना किसी कंट्रास्ट को जोड़े RAW फाइल को 8-बिट ग्रेस्केल इमेज में बदलना। मैंने एक वाणिज्यिक रॉ कनवर्टर में विशिष्ट सेटिंग्स का उपयोग किया। कनवर्टर डिफ़ॉल्ट रूप से शोर को कम करने की कोशिश करता है। इसके अलावा, हम अंतिम परिणाम को 8-बिट फ़ाइल के रूप में सहेज रहे हैं - हम, संक्षेप में, कच्चे सेंसर रीडिंग के निम्नतम-ऑर्डर बिट्स को फेंक रहे हैं!
और अंतिम परिणाम क्या था? यह मुझे स्कैनर से जो मिला है, उससे कहीं बेहतर लगता है; शोर कम स्पष्ट है, और देखने के लिए कुछ भी नहीं है। फिर भी, गॉसियन शोर है:
और एन्ट्रापी? 2.7 बिट प्रति पिक्सेल । अभ्यास में फ़ाइल का आकार? 1M पिक्सेल के लिए 344923 बाइट्स। वास्तव में सबसे अच्छी स्थिति में, कुछ धोखा देने के साथ, हमने संपीड़न अनुपात को 1: 3 कर दिया।
बेशक इस सब का टीसीएस के अनुसंधान से कोई लेना-देना नहीं है, लेकिन मुझे लगता है कि यह ध्यान रखना अच्छा है कि वास्तव में वास्तविक दुनिया के डिजिटाइज्ड डेटा के संपीड़न को सीमित करता है। फैन्सीयर संपीड़न एल्गोरिदम और कच्चे सीपीयू बिजली के डिजाइन में अग्रिम मदद करने के लिए नहीं जा रहा है; यदि आप सभी शोर को दोषरहित रूप से बचाना चाहते हैं, तो आप 1: 2 से बेहतर नहीं कर सकते।