gzip (DEFLATE)

देखें कि gzip टेक्स्ट को कैसे छोटा करता है: रिपीट छोटी कॉपी बन जाते हैं, और Huffman कोड बार-बार आने वाले सिंबल को कम बिट देते हैं।

  • 32 KB
  • 3-258 बाइट
  • 15 बिट तक
  • gzip फ़्रेम 18 बाइट
इस पेज के अन्य शब्द
  • लिटरल: जैसे का तैसा लिखा गया कैरेक्टर, क्योंकि उसकी पोज़िशन से 3 या ज़्यादा कैरेक्टर का कोई रिपीट शुरू नहीं होता।
  • प्रीफ़िक्स-फ़्री: कोई भी कोड किसी दूसरे कोड की शुरुआत नहीं है, इसलिए कोड की धारा को बिना सेपरेटर के वापस पढ़ा जा सकता है।
LZ77 और Huffman, चरण दर चरण 0 / 19 चरण

टेक्स्ट में 23 कैरेक्टर हैं, बिना कम्प्रेशन के 184 बिट। कम्प्रेसर इसे बाएँ से दाएँ पढ़ता है और हर पोज़िशन पर देखता है कि आगे जो है, वह पहले आ चुका है या नहीं।

स्पेस: चलाएं या रोकें। बाएं और दाएं ऐरो: चरण दर चरण। Home और End: सीधे जाएं।

इसे आज़माएं: एक ही अक्षर कई बार टाइप करें। दूरी 1 वाली एक ही कॉपी उन सबको कवर कर लेती है, क्योंकि कॉपी उसी टेक्स्ट पर ओवरलैप कर सकती है जो वह खुद बना रही है।

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

gzip, DEFLATE को दो चरणों में चलाता है। LZ77 टेक्स्ट पर आगे बढ़ता है और हर पोज़िशन पर बाइट की वह सबसे लंबी लड़ी खोजता है जो पिछले 32 KB में पहले आ चुकी है; उन्हें दोहराने की जगह वह एक जोड़ी लिखता है: कितने बाइट कॉपी करने हैं (3-258) और वे कितने पीछे हैं। जो बचता है, यानी लिटरल और ये जोड़ियाँ, उसे फिर Huffman कोड से लिखा जाता है: बार-बार आने वाले सिंबल को छोटे कोड मिलते हैं और कम आने वालों को लंबे। gzip नतीजे को 10 बाइट के हेडर और CRC-32 चेकसम वाले 8 बाइट के ट्रेलर में लपेटता है।

यह कब सही विकल्प है

gzip ऐसे टेक्स्ट को कम्प्रेस करता है जिसमें दोहराव हो: HTML, CSS, JavaScript, JSON, लॉग, CSV। हर ब्राउज़र और सर्वर इसे समझता है, यह हर लेवल पर तेज़ है, और रिस्पॉन्स को चलते-चलते कम्प्रेस करने के लिए यही सुरक्षित डिफ़ॉल्ट है। जो डेटा पहले से कम्प्रेस है, जैसे JPEG, PNG, WOFF2 या ZIP, उसमें कोई रिपीट नहीं बचा, इसलिए gzip बस अपना फ़्रेम जोड़ देता है।

आपके अपने टेक्स्ट पर

वही दो चरण, लंबे टेक्स्ट पर असली gzip (लेवल 6) से। अपना टेक्स्ट पेस्ट करें, या Gzip और Brotli कम्प्रेशन टूल से लाएँ।

इनपुट