דחיסת נתונים – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
מ ←‏קישורים חיצוניים: סדר כרונולוגי
תגיות: עריכה ממכשיר נייד עריכה דרך האתר הנייד
שורה 30:
רוב קובצי הטקסט משתמשים בקידוד [[ASCII]] על מנת לייצג את התווים שבהם. לפי קידוד זה לכל תו יש ערך בעל 7 ביטים (כלומר סה"כ 2 בחזקת 7 - 128 תווים שונים), או בעל ערך של שמונה ביטים כאשר הביט השמיני הוא ביט זוגיות. בקבצים כאלה כדי לשמור n תווים בעצם כותבים 8*n ביטים. בהרבה מקובצי הטקסט לא משתמשים בכל התווים ובנוסף לתווים מסוימים יש סיכוי יותר גדול להופיע מאשר לתווים אחרים (למשל האותיות י' או ו' מופיעות הרבה יותר מאשר צ' או ט'). כלומר, קודם כל ניתן לייצג את כל התווים בקובץ מסוים בפחות ביטים - למשל כדי לייצג שמונה תווים צריך סה"כ 3 ביטים לכל תו. חוץ מכך, ניתן לתת לתווים מסוימים, שמופיעים יותר פעמים, קוד קצר יותר ולעומת זאת תווים שמופיעים לעיתים רחוקות ניתן קודים ארוכים יותר.
 
קידוד כזה נקרא "קידוד גודל משתנה", מאחר שלכל תו יכול להיות גודל שונה. הבעיה בגודל משתנה היא שהמפענח של הקוד לא יכול לדעת מה מספר הביטים שהוא צריך לקרוא לכל תו, ואיך להפוך את אותו קוד חזרה לתו. עבור קבצים רגילים כל מה שהמפענח צריך לעשות זה לקרוא 7 או שמונה ביטים ולהמיר אותם לפי טבלת ה -ASCII. כדי להתגבר על הבעיה הזאת נותנים לכל תו קוד משלו שתלוי במספר הפעמים בו הוא מופיע בטקסט וכדי להבדיל בין הקודים השונים לכל קוד יש תחילית שונה.
 
לדוגמה ניקח את הטקסט "אאבגאדאב". כאשר מספר הפעמים שהאותיות מופיעות הם: א-4, ב-2, ג-1, ד-1.