ההבדל בין GZIP ו- BZIP2 ההבדל בין

Anonim

GZIP לעומת BZIP2

GNU zip (הידוע גם בשם GZIP) הוא יישום תוכנה במטרה לדחוס קבצים. הוא נועד במקור להחליף את תוכנית הדחיסה המשמשת במערכות יוניקס המוקדמות - לשימוש בפרוייקט גנו (פרויקט תוכנה חופשית).

BZIP2 הוא אלגוריתם דחיסת נתונים ללא קוד פתוח - למעשה, סוג של אלגוריתמים לדחיסת נתונים המאפשר לנתונים המקוריים של קובץ דחוס להיות משוחזר לחלוטין מהנתונים הדחוסים.

GZIP מבוסס על אלגוריתם המכונה DEFLATE. זהו גם אלגוריתם דחיסת נתונים ללא אובדן נתונים. הוא משתמש בשני אלגוריתם LZ77 ו Huffman קידוד. בעיקרו של דבר, GZIP מתייחס לתבנית הקובץ של אותו שם. תבנית זו היא כותרת של 10 בתים שמכילה מספר קסמים (כלומר ערך מספרי או טקסט שלא משתנה לעולם ומשמש לציון תבנית קובץ או פרוטוקול, ערך מספרי ללא שם, שמעולם לא משתנה, או ערכים נפרדים שאינם יכולים לטעות עבור כל דבר אחר), כותרות נוספות שעשויות להיות או לא בהכרח נחוצות (שם קובץ מקורי, לדוגמה), גוף המכיל מטען דחוס-דחוס (שהוא הנתונים שהכותרות נושאות) וכן כותרת תחתונה בעלת 8 בתים אשר מכיל בדיקת CRC-32, כמו גם את אורך הנתונים המקוריים לא דחוסים.

-> ->

יש מגוון של טכניקות דחיסה כי פורמט BZIP2 משתמש, אשר מוערמים על גבי אחד את השני בכמה שכבות. הם מופיעים בסדר מאוד מיוחד: קידוד אורך האורך (שהוא רצף של 4 עד 255 סמלים כפולים המוחלף על ידי ארבעת הסמלים הראשונים, ואורך של קידוד חוזר בין 0 ל 251), בורוז-וילר להפוך (שהוא סוג הבלוק הפיך שמרכיב את הליבה של BZIP2), העבר לחזית (משאיר את הגודל של הבלוק המעובד ללא שינוי), קידוד אורך האורך (המורכב מחוטרים ארוכים של סמלים - בדרך כלל אפסים - כל הזמן לחזור על הפלט, והם מוחלפים הן על ידי סמל והן רצף של שני קודים), קידוד Huffman (שהוא תהליך המחליף סמלים באורך קבוע של 8 סיביות בייטים עם קודי אורך משתנה), קידוד הופמן מרובים (אשר מורכב טבלאות הופמן מרובות בגודל זהה), קידוד בסיס אונירי 1, קידוד דלתא ומערך מעט דליל.

סיכום:

1. GZIP הוא יישום חינם המשמש לדחוס קבצים; BZIP2 הוא קוד פתוח lossless דחיסת נתונים אלגוריתם המאפשר לאחזר את הנתונים המקוריים של קובץ דחוס.

2. GZIP מורכב מכותרת של 10 בתים, כותרות אופציונליות, גוף וכותרת של 8 בתים; BZIP2 מורכב לא פחות מ 9 שכבות של טכניקות דחיסה.