फाइल संपीड़न कैसे काम करता है?

विषयसूची:

फाइल संपीड़न कैसे काम करता है?
फाइल संपीड़न कैसे काम करता है?

वीडियो: फाइल संपीड़न कैसे काम करता है?

वीडियो: फाइल संपीड़न कैसे काम करता है?
वीडियो: How to Speed Up Your Windows 10 Performance (Best Settings Ever) - YouTube 2024, नवंबर
Anonim
सॉफ्टवेयर इंजीनियरों ने हमेशा एक छोटी सी जगह में बहुत सारे डेटा को फ़िट करने के नए तरीके विकसित किए हैं। यह सच था जब हमारी हार्ड ड्राइव छोटी थीं, और इंटरनेट के आगमन ने इसे और अधिक महत्वपूर्ण बना दिया है। फ़ाइल संपीड़न हमें जोड़ने में एक बड़ा हिस्सा निभाता है, जिससे हमें लाइन के नीचे कम डेटा भेजना पड़ता है ताकि हम व्यस्त नेटवर्क पर अधिक डाउनलोड कर सकें और अधिक कनेक्शन प्राप्त कर सकें।
सॉफ्टवेयर इंजीनियरों ने हमेशा एक छोटी सी जगह में बहुत सारे डेटा को फ़िट करने के नए तरीके विकसित किए हैं। यह सच था जब हमारी हार्ड ड्राइव छोटी थीं, और इंटरनेट के आगमन ने इसे और अधिक महत्वपूर्ण बना दिया है। फ़ाइल संपीड़न हमें जोड़ने में एक बड़ा हिस्सा निभाता है, जिससे हमें लाइन के नीचे कम डेटा भेजना पड़ता है ताकि हम व्यस्त नेटवर्क पर अधिक डाउनलोड कर सकें और अधिक कनेक्शन प्राप्त कर सकें।

तो यह कैसे काम करता है?

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

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

दूसरी तरफ, एलजेड 77 अपेक्षाकृत सरल है और हम यहां के बारे में बात करेंगे। यह डुप्लिकेट शब्दों को हटाने और उन्हें "छोटे" कुंजी के साथ प्रतिस्थापित करने का प्रयास करता है जो शब्द का प्रतिनिधित्व करता है।

उदाहरण के लिए पाठ का यह छोटा टुकड़ा लें:

एलजेड 77 एल्गोरिदम इस पाठ को देखेगा, यह महसूस करेगा कि यह तीन बार "हाउटोगिक" दोहराता है, और इसे इस पर बदल देता है:
एलजेड 77 एल्गोरिदम इस पाठ को देखेगा, यह महसूस करेगा कि यह तीन बार "हाउटोगिक" दोहराता है, और इसे इस पर बदल देता है:
फिर, जब यह पाठ को वापस पढ़ना चाहता है, तो यह "htogogeek" के साथ (एच) के हर उदाहरण को प्रतिस्थापित करेगा, जो हमें मूल वाक्यांश पर वापस लाएगा।
फिर, जब यह पाठ को वापस पढ़ना चाहता है, तो यह "htogogeek" के साथ (एच) के हर उदाहरण को प्रतिस्थापित करेगा, जो हमें मूल वाक्यांश पर वापस लाएगा।

हम इस "लापरवाह" की तरह संपीड़न कहते हैं - आपके द्वारा डाला गया डेटा आपके द्वारा प्राप्त किए जाने वाले डेटा जैसा ही है। कुछ भी नहीं खो गया है।

हकीकत में, LZ77 कुंजी की एक सूची का उपयोग नहीं करता है, बल्कि इसके बजाय दूसरी और तीसरी घटना को स्मृति में एक लिंक के साथ बदल देता है:

तो अब, जब यह (एच) हो जाता है, तो यह "howtogeek" पर वापस देखेगा और इसके बजाय इसे पढ़ेगा।
तो अब, जब यह (एच) हो जाता है, तो यह "howtogeek" पर वापस देखेगा और इसके बजाय इसे पढ़ेगा।

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

अब, यह एक आदर्श उदाहरण है। हकीकत में, अधिकांश पाठ केवल कुछ वर्णों के रूप में छोटे के साथ संपीड़ित होते हैं। उदाहरण के लिए, शब्द "द" को तब भी संपीड़ित किया जाएगा जब यह "वहां," "उनके," और "फिर" जैसे शब्दों में दिखाई देता है। बार-बार पाठ के साथ, आप कुछ पागल संपीड़न अनुपात प्राप्त कर सकते हैं। इस टेक्स्ट फ़ाइल को "हाउटोगेक" शब्द के साथ 100 बार दोहराएं। मूल पाठ फ़ाइल आकार में तीन किलोबाइट है। संकुचित होने पर, हालांकि, यह केवल 158 बाइट लेता है। यह लगभग 95% संपीड़न है।

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

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

छवि और वीडियो संपीड़न कैसे काम करता है?

वीडियो और ऑडियो संपीड़न बहुत अलग काम करता है। टेक्स्ट के विपरीत जहां आप लापरवाही संपीड़न कर सकते हैं, और कोई डेटा खो नहीं जाता है, छवियों के साथ हमारे पास "लॉसी संपीड़न" कहा जाता है जहां आप कुछ डेटा खो देते हैं। और जितना अधिक आप संकुचित करेंगे उतना अधिक डेटा खो देंगे।
वीडियो और ऑडियो संपीड़न बहुत अलग काम करता है। टेक्स्ट के विपरीत जहां आप लापरवाही संपीड़न कर सकते हैं, और कोई डेटा खो नहीं जाता है, छवियों के साथ हमारे पास "लॉसी संपीड़न" कहा जाता है जहां आप कुछ डेटा खो देते हैं। और जितना अधिक आप संकुचित करेंगे उतना अधिक डेटा खो देंगे।

यही कारण है कि उन भयानक दिखने वाले जेपीईजी की ओर जाता है जिन्हें लोगों ने कई बार अपलोड, साझा और स्क्रीनशॉट किया है। प्रत्येक बार जब छवि संकुचित हो जाती है, तो यह कुछ डेटा खो देता है।

यहां एक उदाहरण दिया गया है। यह एक स्क्रीनशॉट है जिसे मैंने लिया है जिसे बिल्कुल संपीड़ित नहीं किया गया है।

तब मैंने उस स्क्रीनशॉट को लिया और इसे फ़ोटोशॉप के माध्यम से कई बार चलाया, हर बार इसे कम गुणवत्ता वाला जेपीईजी के रूप में निर्यात किया जाता था। परिणाम यहाँ है।
तब मैंने उस स्क्रीनशॉट को लिया और इसे फ़ोटोशॉप के माध्यम से कई बार चलाया, हर बार इसे कम गुणवत्ता वाला जेपीईजी के रूप में निर्यात किया जाता था। परिणाम यहाँ है।
बहुत बुरा लगता है, है ना?
बहुत बुरा लगता है, है ना?

खैर, यह केवल एक सबसे खराब स्थिति परिदृश्य है, हर बार 0% जेपीईजी गुणवत्ता पर निर्यात। तुलना के लिए, यहां 50% गुणवत्ता जेपीईजी है, जो स्रोत पीएनजी छवि से लगभग अलग नहीं है जबतक कि आप इसे उड़ाते हैं और नजदीकी नज़र डालते हैं।

इस छवि के लिए पीएनजी आकार में 200 केबी था, लेकिन यह 50% गुणवत्ता जेपीईजी केवल 28 केबी है।
इस छवि के लिए पीएनजी आकार में 200 केबी था, लेकिन यह 50% गुणवत्ता जेपीईजी केवल 28 केबी है।

तो यह इतना जगह कैसे बचाता है? खैर, जेपीईजी एल्गोरिदम इंजीनियरिंग का एक काम है। अधिकांश छवियां संख्याओं की एक सूची संग्रहित करती हैं, प्रत्येक संख्या एक पिक्सेल का प्रतिनिधित्व करती है।

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

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

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

वीडियो संपीड़न

वीडियो छवियों से थोड़ा अलग काम करता है। आपको लगता है कि वे जेपीईजी का उपयोग करके वीडियो के प्रत्येक फ्रेम को संकुचित करेंगे, और वे निश्चित रूप से ऐसा करते हैं, लेकिन वीडियो के लिए एक बेहतर तरीका है।
वीडियो छवियों से थोड़ा अलग काम करता है। आपको लगता है कि वे जेपीईजी का उपयोग करके वीडियो के प्रत्येक फ्रेम को संकुचित करेंगे, और वे निश्चित रूप से ऐसा करते हैं, लेकिन वीडियो के लिए एक बेहतर तरीका है।

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

इसके अलावा, चूंकि इंटरफ़ेम संपीड़न अधिकतर स्थिर वीडियो के साथ सबसे अच्छा काम करता है, यही कारण है कि confetti वीडियो गुणवत्ता खंडहर।

नोट: जीआईएफ ऐसा नहीं करता है, यही कारण है कि एनिमेटेड जीआईएफ अक्सर बहुत छोटे और छोटे होते हैं, लेकिन अभी भी एक बहुत बड़ा फ़ाइल आकार है।

वीडियो के बारे में ध्यान रखने योग्य एक और बात यह है कि प्रत्येक बिटरेट-डेटा की मात्रा हर सेकेंड में दी जाती है। यदि आपका बिटरेट 200 केबी / एस है, उदाहरण के लिए, आपका वीडियो बहुत खराब लगेगा। गुणवत्ता बढ़ जाती है क्योंकि बिटरेट ऊपर जाता है, लेकिन प्रति सेकंड कुछ मेगाबाइट्स के बाद, आपको कम रिटर्न मिलता है।

यह एक जेलीफ़िश के वीडियो से लिया गया ज़ूम फ्रेम है। बाईं ओर वाला एक 3 एमबी / एस है, और दाईं ओर वाला एक 100 एमबी / एस है।

फ़ाइल आकार में 30x वृद्धि, लेकिन गुणवत्ता में ज्यादा वृद्धि नहीं है। आम तौर पर, यूट्यूब वीडियो आपके कनेक्शन के आधार पर लगभग 2-10 एमबी / एस बैठते हैं, क्योंकि शायद कुछ और नहीं देखा जाएगा।
फ़ाइल आकार में 30x वृद्धि, लेकिन गुणवत्ता में ज्यादा वृद्धि नहीं है। आम तौर पर, यूट्यूब वीडियो आपके कनेक्शन के आधार पर लगभग 2-10 एमबी / एस बैठते हैं, क्योंकि शायद कुछ और नहीं देखा जाएगा।

यह डेमो वास्तविक वीडियो के साथ बेहतर काम करता है, इसलिए यदि आप इसे अपने लिए जांचना चाहते हैं, तो आप यहां इस्तेमाल किए गए वही बिटरेट परीक्षण वीडियो डाउनलोड कर सकते हैं।

ऑडियो संपीड़न

ऑडियो संपीड़न पाठ और छवि संपीड़न के समान ही काम करता है। जहां जेपीईजी एक छवि से विस्तार हटा देता है जिसे आप नहीं देख पाएंगे, ऑडियो संपीड़न ध्वनि के लिए समान होता है। यदि वास्तविक गिटार बहुत अधिक है, तो आपको स्ट्रिंग पर गिटार लेने की क्रैकिंग सुनने की आवश्यकता नहीं हो सकती है।
ऑडियो संपीड़न पाठ और छवि संपीड़न के समान ही काम करता है। जहां जेपीईजी एक छवि से विस्तार हटा देता है जिसे आप नहीं देख पाएंगे, ऑडियो संपीड़न ध्वनि के लिए समान होता है। यदि वास्तविक गिटार बहुत अधिक है, तो आपको स्ट्रिंग पर गिटार लेने की क्रैकिंग सुनने की आवश्यकता नहीं हो सकती है।

एमपी 3 बिटरेट का भी उपयोग करता है, जिसमें 48 और 9 6 केबीपीएस (कम अंत) से 128 और 240 केबीपीएस (बहुत अच्छा) से 320 केबीपीएस (उच्च अंत ऑडियो) तक कम होता है, और आप शायद असाधारण अच्छे हेडफ़ोन के साथ अंतर सुनेंगे ( और कान)।

ऑडियो के लिए लापरवाही संपीड़न कोडेक्स भी हैं- मुख्य वाला एफएलएसी है- जो पूरी तरह से लापरवाह ऑडियो प्रदान करने के लिए एलजे 7777 एन्कोडिंग का उपयोग करता है। कुछ लोग एफएलएसी की सही ऑडियो गुणवत्ता की कसम खाता है, लेकिन एमपी 3 के प्रसार के साथ, ऐसा लगता है कि ज्यादातर लोग या तो अंतर नहीं बता सकते हैं या नहीं सोच सकते हैं।

सिफारिश की: