Bzip1 का क्या हुआ?


40

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

जवाबों:


32

ऐसा लगता है कि मूल bzipका उपयोग 1998 के लिए किया गया था, जिसका उपयोग अंकगणितीय संपीड़न के साथ पेटेंट के मुद्दों के कारण किया गया था। bzip2इस समय के आसपास से खुदाई का एक सा (वास्तव में केवल विकिपीडिया पढ़ने) वेबसाइट के लिए एक संग्रहीत लिंक को बदल देता है ।

यहाँ प्रासंगिक खंड विस्तार यह और अन्य अंतर है:

यह आपकी पिछली पेशकश (bzip-0.21) से कैसे संबंधित है?

bzip2 0.21 का पुनर्लेखन और फिर से इंजीनियर संस्करण है। यह सतही रूप से काफी समान दिखता है, लेकिन लगभग पूरी तरह से फिर से लिखा गया है (कई बार :-))। महत्वपूर्ण अंतर हैं:

  • पेटेंट मुक्त! (मुझे उम्मीद है; ऊपर बयान देखें)। bzip-0.21 ने अंकगणित कोडिंग का उपयोग किया; bzip2 हफ़मैन कोडिंग का उपयोग करता है, जिसे आमतौर पर पेटेंट दृष्टिकोण से गैर-समस्याग्रस्त माना जाता है। दोनों कार्यक्रम बरोज़-व्हीलर ट्रांसफ़ॉर्म पर आधारित हैं, लेकिन, मेरी जानकारी के अनुसार, यह पेटेंट भी नहीं है।

  • तेजी से, विशेष रूप से अपघटन पर। bzip2 0.21 की तुलना में 50% से अधिक तेजी से विघटित होता है, ज्यादातर हफ़मैन कोडिंग के उपयोग के कारण। मैंने संपीड़न गति में भी सुधार किया है, हालांकि इतना नहीं - शायद यह 0.21 की तुलना में 30% अधिक तेजी से संपीड़ित करता है।

  • मीडिया त्रुटियों से पुनर्प्राप्ति। दोनों प्रोग्राम, डिफ़ॉल्ट रूप से, 900k लंबे, ब्लॉक में डेटा को संपीड़ित करते हैं। Bzip2 के साथ, प्रत्येक ब्लॉक को पूरी तरह से स्वतंत्र रूप से नियंत्रित किया जाता है, अपने स्वयं के चेकसम को वहन करता है, और 48-बिट अनुक्रम द्वारा सीमांकित किया जाता है। इसलिए, यदि आपके पास एक क्षतिग्रस्त संपीड़ित फ़ाइल है, तो bzip2 संपीड़ित ब्लॉकों को निकाल सकता है, यह पता लगा सकता है कि कौन से अप्रकाशित हैं, और उन को डिक्रिप्ट करें।

  • परीक्षण विधि। आप उन्हें विघटित किए बिना संपीड़ित फ़ाइलों की अखंडता का परीक्षण कर सकते हैं। मुझे इसे 0.21 में डाल देना चाहिए, वास्तव में, लेकिन बहुत आलसी था (जब मैंने इसे जारी किया था तब तक हैकिंग के साथ जला हुआ था)।

  • बहुत दोहरावदार फ़ाइलों को बेहतर तरीके से संभालता है। ऐसी फाइलें किसी भी ब्लॉक-सॉर्टिंग कंप्रेसर के लिए सबसे खराब स्थिति हैं। bzip2 ऐसी फ़ाइलों के लिए 0.21 की तुलना में लगभग दस गुना तेज चलती है।

  • छोटी मशीनों के लिए समर्थन। bzip2 2300k में बनने वाली किसी भी फाइल को डिकम्प्रेस कर सकता है, जिसका मतलब है कि आप 4-मेगा मशीनों पर फाइलों को डिकम्प्रेस कर सकते हैं। संपीड़न के दौरान पीक मेमोरी का उपयोग भी 0.21 की तुलना में लगभग 900k से कम होकर 6400k हो जाता है।

  • बेहतर झंडा संभालना। विशेष रूप से, लंबे झंडे (- जैसे - यह) का समर्थन किया जाता है, जिससे इसका उपयोग करना आसान हो जाता है।

  • एक-लाइन स्टार्टअप संदेश जो 0.21 मुद्रित किया गया था, चला गया है। यह 0.21 सबसे अधिक शिकायत वाली सुविधा थी। यह आजकल मुझे भी परेशान करता है।

मैं अब 0.21 वितरित नहीं कर रहा हूं, क्योंकि ऐसा करने से पेटेंट के साथ समस्याओं का सामना करना पड़ता है, जो यह सुनिश्चित करता है कि कार्यक्रम का व्यापक रूप से उपयोग नहीं किया जाएगा। यह शर्म की बात है, क्योंकि यह एक उपयोगी कार्यक्रम है, और बहुत से लोग इसे पसंद करते हैं। यदि आप पहले से ही 0.21 का उपयोग करते हैं, तो कृपया bzip2 पर अपग्रेड करें। मैं, दुर्भाग्य से, bzip2 0.21 की .bz फ़ाइलों को डिकम्प्रेस करने में सक्षम नहीं हो सकता, क्योंकि यह पेटेंट-परिहार व्यायाम को बेकार कर देगा। मुझे पता है कि फ़ाइल प्रारूप बदलना दर्दनाक है; अब से, मैं आगे और पीछे के संगत तरीके से कोई भी बदलाव करने की कोशिश करूँगा।

यह भी किसी के लिए स्रोत कोड के केवल विघटन का एक लिंक है जो bzipइसके साथ खेलना चाहता है।


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

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