दोषरहित संपीड़न डेटा की सीमा क्या है? (यदि ऐसी कोई सीमा मौजूद है)


14

हाल ही में मैं संपीड़न-संबंधित एल्गोरिदम के साथ काम कर रहा हूं, और मैं सोच रहा था कि सबसे अच्छा संपीड़न अनुपात क्या है जो नुकसानदायक ऊर्जा संपीड़न द्वारा प्राप्त किया जा सकता है।

अब तक इस विषय पर एकमात्र स्रोत मुझे मिल सकता था:

डिजिटाइज्ड डेटा जैसे वीडियो, डिजिटाइज्ड फिल्म और ऑडियो का दोषरहित संपीड़न सभी सूचनाओं को संरक्षित रखता है, लेकिन डेटा के आंतरिक प्रवेश के कारण शायद ही कभी 1: 2 संपीड़न की तुलना में बहुत बेहतर कर सकता है

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


1
मुझे यकीन नहीं है कि इस तरह के प्रश्न पूछने के लिए सैद्धांतिक कंप्यूटर विज्ञान सबसे अच्छी साइट है। यदि आवश्यक हो, तो इस प्रश्न को अधिक उपयुक्त साइट पर बंद करने या स्थानांतरित करने के लिए स्वतंत्र महसूस करें।
औरन

3
यह वही हो सकता है जो आप ढूंढ रहे हैं: en.wikipedia.org/wiki/Entropy_encoding । मुख्य शब्द एंट्रॉपी है
ह्सियन-चीह चांग ''

3
मुझे नहीं पता कि दुर्भाग्य से एक अधिक उपयुक्त साइट क्या होगी। परिमाणीकरण त्रुटि एन्ट्रापी का एक स्रोत है जो शायद बड़े संपीड़न अनुपात में बाधा होती है।
पीटर शोर

2
क्या आपको किस प्रकार के डेटा के लिए दोषरहित डेटा संपीड़न की आवश्यकता है? छवियाँ, संगीत, भाषण, सामान्य डेटा, ...? हालाँकि, उच्च स्तर के परिचय के लिए data-compression.com/theory.html (और पृष्ठों के निचले भाग पर संसाधन)
Marzio De Biasi

2
@ हमारी छवियाँ। अधिक विशेष रूप से, चिकित्सा छवियों। मैं उस पृष्ठ पर एक नज़र डालूंगा। धन्यवाद।
औरॉन

जवाबों:


27

मुझे यकीन नहीं है कि अगर किसी ने अभी तक यह स्पष्ट नहीं किया है कि जादुई संख्या ठीक 1: 2 है और नहीं, उदाहरण के लिए, 1: 1.1 या 1:20।

एक कारण यह है कि कई विशिष्ट मामलों में लगभग आधे डिजीटल डेटा शोर है , और शोर (परिभाषा के अनुसार) संपीड़ित नहीं किया जा सकता है।

मैंने एक बहुत ही सरल प्रयोग किया:

  • मैंने एक ग्रे कार्ड लिया । एक मानव आंख के लिए, यह ग्रे कार्डबोर्ड के एक सादे, तटस्थ टुकड़े जैसा दिखता है। विशेष रूप से, कोई जानकारी नहीं है

  • और फिर मैंने एक सामान्य स्कैनर लिया - ठीक उसी तरह का उपकरण जिसका उपयोग लोग अपनी तस्वीरों को डिजिटाइज़ करने के लिए कर सकते हैं।

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

  • मैंने ग्रे कार्ड का 1000x1000 पिक्सेल हिस्सा काट लिया, और इसे ग्रेस्केल (8 बिट प्रति पिक्सेल) में बदल दिया।

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

हालांकि, एक बड़े आवर्धन के साथ, यह वास्तव में इस तरह दिखता है:

30x30 की फसल, कारक 10 द्वारा आवर्धित

कोई स्पष्ट रूप से दिखाई देने वाला पैटर्न नहीं है, लेकिन इसमें एक समान ग्रे रंग नहीं है। इसका अधिकांश भाग ग्रे कार्ड की खामियों के कारण होता है, लेकिन मैं यह मानूंगा कि इसका अधिकांश हिस्सा स्कैनर द्वारा उत्पन्न शोर है (सेंसर सेल में थर्मल शोर, एम्पलीफायर, ए / डी कनवर्टर, आदि)। गाऊसी शोर की तरह बहुत सुंदर लग रहा है; यहाँ हिस्टोग्राम है ( लघुगणकीय पैमाने में):

हिस्टोग्राम

अब अगर हम मान लें कि प्रत्येक पिक्सेल को इस वितरण से अपना शेड उठाया गया है, तो हमारे पास कितना एंट्रॉपी है? मेरी पायथन लिपि ने मुझे बताया कि हमारे पास पिक्सेल के अनुसार 3.3 बिट्स एन्ट्रापी हैं । और यह बहुत शोर है।

यदि यह वास्तव में मामला था, तो इसका मतलब यह होगा कि कोई भी संपीड़न एल्गोरिथ्म जो हम उपयोग करते हैं, 1000x1000 पिक्सेल बिटमैप को 412500-बाइट फ़ाइल में, सर्वश्रेष्ठ मामले में संकुचित किया जाएगा। और व्यवहार में क्या होता है: मुझे 432018-बाइट पीएनजी फ़ाइल मिली, जो बहुत करीब है।


यदि हम थोड़ा-बहुत सामान्य करते हैं, तो ऐसा लगता है कि इस स्कैनर के साथ मैं जो भी ब्लैक एंड व्हाइट तस्वीरें स्कैन करता हूं, मुझे निम्नलिखित का योग मिलेगा:

  • "उपयोगी" जानकारी (यदि कोई हो),
  • शोर, लगभग। प्रति पिक्सेल 3 बिट्स।

अब भले ही आपका संपीड़न एल्गोरिदम उपयोगी जानकारी को << 1 बिट प्रति पिक्सेल में निचोड़ता है, फिर भी आपके पास असंगत शोर के 3 बिट प्रति पिक्सेल जितना होगा। और असम्पीडित संस्करण 8 बिट प्रति पिक्सेल है। तो संपीड़न अनुपात 1: 2 के बॉलपार्क में होगा, इससे कोई फर्क नहीं पड़ता कि आप क्या करते हैं।


एक और उदाहरण, अति-आदर्श परिस्थितियों को खोजने के प्रयास के साथ:

  • एक आधुनिक DSLR कैमरा, सबसे कम संवेदनशीलता सेटिंग (कम से कम शोर) का उपयोग करते हुए।
  • एक ग्रे कार्ड का एक आउट-ऑफ-फोकस शॉट (भले ही ग्रे कार्ड में कुछ दृश्यमान जानकारी हो, यह धुंधला हो जाएगा)।
  • बिना किसी कंट्रास्ट को जोड़े RAW फाइल को 8-बिट ग्रेस्केल इमेज में बदलना। मैंने एक वाणिज्यिक रॉ कनवर्टर में विशिष्ट सेटिंग्स का उपयोग किया। कनवर्टर डिफ़ॉल्ट रूप से शोर को कम करने की कोशिश करता है। इसके अलावा, हम अंतिम परिणाम को 8-बिट फ़ाइल के रूप में सहेज रहे हैं - हम, संक्षेप में, कच्चे सेंसर रीडिंग के निम्नतम-ऑर्डर बिट्स को फेंक रहे हैं!

और अंतिम परिणाम क्या था? यह मुझे स्कैनर से जो मिला है, उससे कहीं बेहतर लगता है; शोर कम स्पष्ट है, और देखने के लिए कुछ भी नहीं है। फिर भी, गॉसियन शोर है:

30x30 की फसल, कारक 10 द्वारा आवर्धित हिस्टोग्राम

और एन्ट्रापी? 2.7 बिट प्रति पिक्सेल । अभ्यास में फ़ाइल का आकार? 1M पिक्सेल के लिए 344923 बाइट्स। वास्तव में सबसे अच्छी स्थिति में, कुछ धोखा देने के साथ, हमने संपीड़न अनुपात को 1: 3 कर दिया।


बेशक इस सब का टीसीएस के अनुसंधान से कोई लेना-देना नहीं है, लेकिन मुझे लगता है कि यह ध्यान रखना अच्छा है कि वास्तव में वास्तविक दुनिया के डिजिटाइज्ड डेटा के संपीड़न को सीमित करता है। फैन्सीयर संपीड़न एल्गोरिदम और कच्चे सीपीयू बिजली के डिजाइन में अग्रिम मदद करने के लिए नहीं जा रहा है; यदि आप सभी शोर को दोषरहित रूप से बचाना चाहते हैं, तो आप 1: 2 से बेहतर नहीं कर सकते।


3
ठंडा! यदि शोर गॉसियन है, तो मेरी भावना यह है कि पहले के विलक्षण वैक्टर (या इसी तरह की अधिक फैंसी तकनीक) पर प्रोजेक्ट करने से बहुत अधिक शोर निकल जाएगा। एक त्वरित Google विद्वान खोज ने एम। एलैड और एम। अहरोन द्वारा एक लेख का खुलासा किया, जो प्रक्षेपण विधि + कुछ बायेसियन सांख्यिकी चालबाजी का उपयोग करता है: ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber/4011956 । माना जाता है, 2006 में यह "कला का राज्य" था। बेशक, यह दोषरहित नहीं है, लेकिन जुक्का के आंकड़ों से पता चलता है कि यदि आप छोटे आकार पर जोर देते हैं तो आपको कम से कम शोर कम करने की आवश्यकता है।
साशो निकोलेव

आपके उदाहरण केवल छवियों के दोषरहित संपीड़न के बारे में हैं । मैं अनिच्छा से भौतिक सेंसर (ध्वनि, छवि, वीडियो, अभी तक शायद एक अलग कारक के साथ) से आने वाले किसी भी डेटा को उनका सामान्यीकरण प्रदान करूंगा लेकिन वहाँ (कई?) अन्य फ़ील्ड हैं जहां संपीड़न लागू किया जाता है, 1 से बेहतर अनुपात। 2 (प्राकृतिक भाषा मन में आती है), क्योंकि कम शोर है।
जेरेमी

2
@ जुक्का: +1: सुंदर प्रयोग! @ साशो: चिकित्सा छवियों के लिए, पारंपरिक ज्ञान यह है कि आप कुछ भी नहीं खो सकते हैं, भले ही यह बहुत ही संभावित शोर हो।
पीटर शोर

2
बहुत अच्छी और स्पष्ट व्याख्या!
मारजियो दे बियासी

2
एक और टिप्पणी: यह चिकित्सा छवियों के लिए वास्तव में अपरिहार्य है। यदि आप चिकित्सा छवियों में इस शोर की पर्याप्त मात्रा का उपयोग करने के लिए पर्याप्त परिशुद्धता का उपयोग नहीं करते हैं, तो आप शायद कुछ वास्तविक प्रासंगिक विवरण खो रहे हैं, जिसे आप वास्तव में रखना चाहते हैं।
पीटर शोर

16

क्या आप शैनन के नीरव कोडिंग प्रमेय के बारे में पहले से जानते हैं ? यह प्रमेय दोषरहित संपीडन पर सैद्धांतिक सीमा को बढ़ाता है। दूसरों की कुछ टिप्पणियाँ आपको इस प्रमेय के बारे में पता लग जाती हैं, लेकिन सवाल से, मुझे लगता है कि यह वह उत्तर हो सकता है जिसकी आपको तलाश है।


मैं उस प्रमेय के बारे में नहीं जानता था। मुझे लगता है कि विकिपीडिया का दावा बिल्कुल सही नहीं है, क्योंकि प्राप्त करने योग्य संपीड़न अनुपात डेटा के एन्ट्रापी पर संकुचित होने पर निर्भर करता है।
औरोन

मेरा मानना ​​है कि छवियों के आंतरिक प्रवेश को निर्धारित करना वास्तव में काफी कठिन है - यदि डेटा 2-डी के बजाय रैखिक है, तो यह बहुत आसान है।
पीटर शोर

तो, बेतरतीब ढंग से (वर्दी) उत्पन्न पाठ के लिए अधिकतम संपीड़न अनुपात क्या होगा?
स्कान

11

n>0

  1. n

  2. सामान्य व्यावहारिक समाधान 8 बिट्स का उपयोग करना है, यदि एकमात्र पूर्णांक जो आप कभी भी एन्कोड करेंगे, वे सभी 1 और 256 के बीच हैं (यदि आप चाहते हैं तो 16, 32 और 64 बिट्स का सामान्यीकरण करें)।

  3. n+1nn

  4. log2nlog2n+1nlog2n1log2n2log2n1nlgn=max(1,log2n)

  5. 2log2n1

  6. KKसंगणना योग्य नहीं है। इस धारणा के आसपास एक आसान समाधान लेविन के आत्म-परिसीमन कार्यक्रमों द्वारा दिया जाता है , जहां आप केवल एक निष्पादित निष्पादन समय (उदाहरण के लिए, मूल उदाहरण की लंबाई के एक निरंतर कारक के भीतर, जो कि निम्न सीमा पर है, के साथ केवल कार्यक्रमों पर विचार करते हैं) एल्गोरिथ्म की जटिलता जो प्रत्येक प्रतीक को लिखने की आवश्यकता है)।

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


7

(मेरी टिप्पणी का सिर्फ एक विस्तार)

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

हालाँकि, उच्च-विपरीत किनारों के साथ और चिकनी स्तर के संक्रमण के बिना छवियों के कुछ वर्ग (उदाहरण के लिए चिकित्सा स्केल चित्र) को संकुचित किया जा सकता है (इतनी कुशलता से नहीं)।

जेपीईजी-रास और JPEG2000 चिकित्सा छवियों के दोषरहित भंडारण के लिए मानक प्रतीत होते हैं। संपीड़न अनुपात की तुलना के लिए इस तालिका को देखें (जेपीईजी-एलएस थोड़ा बेहतर संपीड़न प्राप्त करता है)।

"दोषरहित चिकित्सा छवि संपीड़न" का उपयोग करते हुए मुझे निम्नलिखित लेख मिले जो आपकी मदद कर सकते हैं:

चिकित्सा छवि संपीड़न तकनीकों पर हाल ही में (2011) सर्वेक्षण: दो आयामी चिकित्सा छवि संपीड़न तकनीक - एक सर्वेक्षण

... यह पत्र दो आयामी (2 डी) अभी भी चिकित्सा छवियों के लिए डीसीटी, डीडब्ल्यूटी, आरओआई और तंत्रिका नेटवर्क पर आधारित विभिन्न संपीड़न तकनीकों का अवलोकन प्रस्तुत करता है।

दो मानक दोषरहित संपीड़न एल्गोरिदम की एक विस्तृत प्रस्तुति: दोषरहित मोड में JPEG-LS और JPG2000: ग्रेस्केल चिकित्सा छवियों का दोषरहित संपीड़न - पारंपरिक और पारंपरिक दृष्टिकोण की प्रभावशीलता

... कई संरचनात्मक क्षेत्रों, तौर-तरीकों और विक्रेताओं से तीन हजार, छः सौ और उनहत्तर (3,679) एकल फ्रेम ग्रेस्केल छवियों का परीक्षण किया गया। ...

एक और सर्वेक्षण: समकालीन चिकित्सा छवि संपीड़न तकनीकों का एक सर्वेक्षण

संपादित करें

शायद आप अभी भी सोच रहे हैं "क्या एक छवि का एन्ट्रॉपी है?" ... ठीक है, यह छवि में निहित जानकारी की मात्रा है ... लेकिन इसे बेहतर ढंग से समझने के लिए, आपको आमतौर पर छवि संपीड़न में उपयोग किए जाने वाले 3 चरणों के बारे में कुछ पढ़ना चाहिए :

  • परिवर्तन (उदाहरण के लिए असतत तरंग परिवर्तन)
  • परिमाणीकरण
  • एन्ट्रापी एन्कोडिंग

आप छवि संपीड़न (उदाहरण के लिए एक त्वरित ट्यूटोरियल ) पर एक ट्यूटोरियल या पुस्तक की खोज के लिए Google का उपयोग कर सकते हैं , या एक ऑनलाइन तकनीकी वीडियो देखने की कोशिश कर सकते हैं (उदाहरण के लिए व्याख्यान 16 - छवि और वीडियो कोडिंग का परिचय )।


7

एक स्ट्रिंग के रूप में एक फ़ाइल के बारे में सोचो।

आप एक स्ट्रिंग के कोलमोगोरोव जटिलता से बेहतर कभी नहीं कर सकते (यह कोमोगोरोव जटिलता की परिभाषा से है)।

एक स्ट्रिंग लंबाई को ठीक करें। तो अब हम केवल लंबाई n के तारों को देख रहे हैं।

ऐसे सभी तारों में से आधे को अधिकतम 1 बिट पर संकुचित किया जा सकता है। सभी तारों में से 1/4 को अधिकतम 2 बिट्स द्वारा संपीड़ित किया जा सकता है। ऐसे सभी तारों में से 1/8 को अधिकतम 3 बिट्स द्वारा संपीड़ित किया जा सकता है।

तो तार (छवियों, फ़ाइलों, आदि) के किस अंश को 2: 1 - बहुत, बहुत कम के अनुपात में संकुचित किया जा सकता है। तो क्यों संपीड़न कभी काम करता है? क्योंकि लगभग सभी डेटा जो वास्तविक लोग वास्तव में संपीड़ित करने की कोशिश कर रहे हैं, उच्च संरचित है - यह एक यादृच्छिक फ़ाइल की तरह नहीं दिखता है। और अधिक यादृच्छिक डेटा देख, सेक करने के लिए कठिन। वे हाथ से जाते हैं। अधिकांश तार यादृच्छिक लगते हैं।

इस क्रिया को देखने के लिए, कुछ यादृच्छिक प्रक्रिया का उपयोग करके एक यादृच्छिक फ़ाइल उत्पन्न करें। मेरा मतलब वास्तव में, वास्तव में यादृच्छिक फ़ाइल है। अब अपने पसंदीदा संपीड़न एल्गोरिदम का उपयोग करके इसे संपीड़ित करने का प्रयास करें। यह या तो एक ही आकार का रहेगा या बड़ा हो जाएगा, लगभग हर समय।

दूसरी तरफ, अत्यधिक संकुचित तार हैं। निम्नलिखित स्ट्रिंग लें: 100000..000 (1 लाख शून्य के बाद)। इसका वर्णन पिछले वाक्य में फिट बैठता है, और एक कंप्यूटर इसे उस विवरण (या एक बहुत पसंद) से इसे फिर से संगठित कर सकता है। फिर भी वह विवरण एक लाख अंकों के पास कहीं नहीं है।

तथ्य यह है कि उस संपत्ति के साथ तार (अत्यधिक संपीड़ित होने के) सभी संभव तारों के बीच अत्यंत दुर्लभ हैं। द्वितीयक तथ्य यह है कि लगभग सभी मानव-जनित डेटा सुपर, सुपर कंप्रेसेबल हैं क्योंकि यह बहुत संरचित है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.