तो यह कैसे काम करता है?
उस प्रश्न का उत्तर देने के लिए कुछ जटिल गणित को समझाया जाना चाहिए, निश्चित रूप से हम इस आलेख में शामिल होने से अधिक निश्चित हैं, लेकिन आपको समझने की आवश्यकता नहीं है कि यह मूल बातें समझने के लिए गणितीय रूप से कैसे काम करता है।
टेक्स्ट को संपीड़ित करने के लिए सबसे लोकप्रिय पुस्तकालय दो संपीड़न एल्गोरिदम पर भरोसा करते हैं, दोनों एक ही समय में बहुत अधिक संपीड़न अनुपात प्राप्त करने के लिए उपयोग करते हैं। ये दो एल्गोरिदम "एलजे 77" और "हफमैन कोडिंग" हैं। हफमैन कोडिंग काफी जटिल है, और हम यहां उस पर विस्तार से नहीं जा रहे हैं। मुख्य रूप से, यह छोटे असाइन करने के लिए कुछ फैंसी गणित का उपयोग करता हैबाइनरी कोड प्रक्रिया में फ़ाइल आकार को कम करने, व्यक्तिगत पत्रों के लिए। यदि आप इसके बारे में अधिक जानना चाहते हैं, तो इस आलेख को देखें कि कोड कैसे काम करता है, या कंप्यूटरफाइल द्वारा यह व्याख्याकर्ता।
दूसरी तरफ, एलजेड 77 अपेक्षाकृत सरल है और हम यहां के बारे में बात करेंगे। यह डुप्लिकेट शब्दों को हटाने और उन्हें "छोटे" कुंजी के साथ प्रतिस्थापित करने का प्रयास करता है जो शब्द का प्रतिनिधित्व करता है।
उदाहरण के लिए पाठ का यह छोटा टुकड़ा लें:
हम इस "लापरवाह" की तरह संपीड़न कहते हैं - आपके द्वारा डाला गया डेटा आपके द्वारा प्राप्त किए जाने वाले डेटा जैसा ही है। कुछ भी नहीं खो गया है।
हकीकत में, LZ77 कुंजी की एक सूची का उपयोग नहीं करता है, बल्कि इसके बजाय दूसरी और तीसरी घटना को स्मृति में एक लिंक के साथ बदल देता है:
यदि आप अधिक विस्तृत स्पष्टीकरण में रूचि रखते हैं, तो कंप्यूटरफाइल से यह वीडियो बहुत उपयोगी है।
अब, यह एक आदर्श उदाहरण है। हकीकत में, अधिकांश पाठ केवल कुछ वर्णों के रूप में छोटे के साथ संपीड़ित होते हैं। उदाहरण के लिए, शब्द "द" को तब भी संपीड़ित किया जाएगा जब यह "वहां," "उनके," और "फिर" जैसे शब्दों में दिखाई देता है। बार-बार पाठ के साथ, आप कुछ पागल संपीड़न अनुपात प्राप्त कर सकते हैं। इस टेक्स्ट फ़ाइल को "हाउटोगेक" शब्द के साथ 100 बार दोहराएं। मूल पाठ फ़ाइल आकार में तीन किलोबाइट है। संकुचित होने पर, हालांकि, यह केवल 158 बाइट लेता है। यह लगभग 95% संपीड़न है।
यह एलजेड 77 एल्गोरिदम, सभी बाइनरी डेटा पर, वैसे ही, केवल पाठ पर लागू होता है, हालांकि पाठ आमतौर पर संकुचित करना आसान होता है क्योंकि अधिकांश भाषाएं कितनी बार दोहराई जाती हैं। उदाहरण के लिए, चीनी की तरह एक भाषा अंग्रेजी से संपीड़ित करने के लिए थोड़ा कठिन हो सकती है।
छवि और वीडियो संपीड़न कैसे काम करता है?
यही कारण है कि उन भयानक दिखने वाले जेपीईजी की ओर जाता है जिन्हें लोगों ने कई बार अपलोड, साझा और स्क्रीनशॉट किया है। प्रत्येक बार जब छवि संकुचित हो जाती है, तो यह कुछ डेटा खो देता है।
यहां एक उदाहरण दिया गया है। यह एक स्क्रीनशॉट है जिसे मैंने लिया है जिसे बिल्कुल संपीड़ित नहीं किया गया है।
खैर, यह केवल एक सबसे खराब स्थिति परिदृश्य है, हर बार 0% जेपीईजी गुणवत्ता पर निर्यात। तुलना के लिए, यहां 50% गुणवत्ता जेपीईजी है, जो स्रोत पीएनजी छवि से लगभग अलग नहीं है जबतक कि आप इसे उड़ाते हैं और नजदीकी नज़र डालते हैं।
तो यह इतना जगह कैसे बचाता है? खैर, जेपीईजी एल्गोरिदम इंजीनियरिंग का एक काम है। अधिकांश छवियां संख्याओं की एक सूची संग्रहित करती हैं, प्रत्येक संख्या एक पिक्सेल का प्रतिनिधित्व करती है।
जेपीईजी इनमें से कोई नहीं करता है। इसके बजाए, यह डिस्क्रेट कोसाइन ट्रांसफॉर्म नामक किसी चीज़ का उपयोग करके छवियों को संग्रहीत करता है, जो अलग तीव्रता पर एक साथ जोड़े गए साइन लहरों का संग्रह है। यह 64 विभिन्न समीकरणों का उपयोग करता है, लेकिन इनमें से अधिकतर उपयोग नहीं किए जाते हैं। फ़ोटोशॉप और अन्य छवि ऐप्स में जेपीईजी के लिए गुणवत्ता स्लाइडर यह है कि कितने समीकरणों का उपयोग करना है। ऐप्स तब फ़ाइल आकार को कम करने के लिए हफमैन एन्कोडिंग का उपयोग करते हैं।
यह जेपीईजी को एक बेहद उच्च संपीड़न अनुपात देता है, जो गुणवत्ता के आधार पर एक फ़ाइल को कम कर सकता है जो कई किलोबाइट्स तक कई मेगाबाइट्स तक कम हो सकता है। बेशक, यदि आप इसे बहुत अधिक उपयोग करते हैं, तो आप इसके साथ समाप्त होते हैं:
वीडियो संपीड़न
हम "इंटरफ्रेम संपीड़न" नामक कुछ का उपयोग करते हैं, जो प्रत्येक फ्रेम के बीच परिवर्तनों की गणना करता है और केवल उनको स्टोर करता है। तो, उदाहरण के लिए, यदि आपके पास अपेक्षाकृत अभी भी शॉट है जो वीडियो में कई सेकंड लेता है, तो बहुत सी जगह सहेजी जाती है क्योंकि संपीड़न एल्गोरिदम को उस दृश्य में सभी सामानों को स्टोर करने की आवश्यकता नहीं होती है जो बदले नहीं जाते हैं। अंतरफ्रेम संपीड़न मुख्य कारण है कि हमारे पास डिजिटल टीवी और वेब वीडियो है। इसके बिना, वीडियो सैकड़ों गीगाबाइट होंगे, 2005 में औसत हार्ड ड्राइव आकार से अधिक जब यूट्यूब लॉन्च हुआ था।
इसके अलावा, चूंकि इंटरफ़ेम संपीड़न अधिकतर स्थिर वीडियो के साथ सबसे अच्छा काम करता है, यही कारण है कि confetti वीडियो गुणवत्ता खंडहर।
नोट: जीआईएफ ऐसा नहीं करता है, यही कारण है कि एनिमेटेड जीआईएफ अक्सर बहुत छोटे और छोटे होते हैं, लेकिन अभी भी एक बहुत बड़ा फ़ाइल आकार है।
वीडियो के बारे में ध्यान रखने योग्य एक और बात यह है कि प्रत्येक बिटरेट-डेटा की मात्रा हर सेकेंड में दी जाती है। यदि आपका बिटरेट 200 केबी / एस है, उदाहरण के लिए, आपका वीडियो बहुत खराब लगेगा। गुणवत्ता बढ़ जाती है क्योंकि बिटरेट ऊपर जाता है, लेकिन प्रति सेकंड कुछ मेगाबाइट्स के बाद, आपको कम रिटर्न मिलता है।
यह एक जेलीफ़िश के वीडियो से लिया गया ज़ूम फ्रेम है। बाईं ओर वाला एक 3 एमबी / एस है, और दाईं ओर वाला एक 100 एमबी / एस है।
यह डेमो वास्तविक वीडियो के साथ बेहतर काम करता है, इसलिए यदि आप इसे अपने लिए जांचना चाहते हैं, तो आप यहां इस्तेमाल किए गए वही बिटरेट परीक्षण वीडियो डाउनलोड कर सकते हैं।
ऑडियो संपीड़न
एमपी 3 बिटरेट का भी उपयोग करता है, जिसमें 48 और 9 6 केबीपीएस (कम अंत) से 128 और 240 केबीपीएस (बहुत अच्छा) से 320 केबीपीएस (उच्च अंत ऑडियो) तक कम होता है, और आप शायद असाधारण अच्छे हेडफ़ोन के साथ अंतर सुनेंगे ( और कान)।
ऑडियो के लिए लापरवाही संपीड़न कोडेक्स भी हैं- मुख्य वाला एफएलएसी है- जो पूरी तरह से लापरवाह ऑडियो प्रदान करने के लिए एलजे 7777 एन्कोडिंग का उपयोग करता है। कुछ लोग एफएलएसी की सही ऑडियो गुणवत्ता की कसम खाता है, लेकिन एमपी 3 के प्रसार के साथ, ऐसा लगता है कि ज्यादातर लोग या तो अंतर नहीं बता सकते हैं या नहीं सोच सकते हैं।