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

תוכן שנמחק תוכן שנוסף
←‏עקרונות דחיסת הנתונים: סרבול, כפל מילים
אין תקציר עריכה
שורה 4:
דחיסת נתונים אפשרית משום שבצורתם הגולמית של הנתונים קיימת פעמים רבות [[יתירות]] גבוהה, כלומר מידע החוזר על עצמו או מידע שניתן לייצג בצורה חסכונית יותר. העיקרון הבסיסי בדחיסה הוא כי במידע שאנו עושים בו שימוש יש "סדר" מסוים. מציאת הסדר הזה מאפשרת לייצג את המידע בדרך יעילה יותר. מידע שהוא מקרי (רעש) לא יכול להידחס. מידת אי-הסדר מכונה "[[אנטרופיה (סטטיסטיקה)|אנטרופיה]]".
 
דחיסת הנתונים מאפשרת לנו לעשות שימוש יעיל במדיה (תמונות, קול, וידאו). הדחיסה מאפשרת יעילות גבוהה בפעולות כגון העברת תמונות על גבי ה[[אינטרנט]], שמירת סרט על [[תקליטור]] DVD ודיבור ב[[טלפון סלולרי]].
 
בעולם המחשב קיימים פורמטים שונים לקבצים דחוסים, ובהם: [[ZIP (פורמט)|ZIP]], [[MP3]], [[JPEG]], [[DIVX]], MPEG. לעומתם, קיימים סוגי קבצים של מידע לא דחוס כגון: BMP ו-WAV (קובץ WAV גם הוא דחוס לעיתים). מידע שמאוחסן בקבצים כאלו גדול משמעותית מהקבצים הדחוסים. כך תמונה לא דחוסה (בקובץ BMP) יכולה להגיע לגודל של כ-1,000,000 בתים (1MB) ואילו אותה תמונה דחוסה (בקובץ JPEG) [[דחיסה מאבדת נתונים|בדחיסה מאבדת]] יכולה להיות בגודל של כ-50,000 בתים (50KB) - יחס של 1:20.
שורה 14:
==טכניקות דחיסה==
===דחיסה משמרת מידע===
דחיסה משמרת היא דחיסה המאפשרת לנו להפעיל פונקציה הפוכה לפונקציית הדחיסה, כך שהתוצאה שתתקבל תהיה זהה למקור. טכניקות דחיסה אלו מנצלות את העובדה שבמידע הנבדק יש חוקיות מתמטית.
 
====קידוד אורך חזרה RLE====
שורה 26:
 
====קידוד גודל משתנה וקוד הופמן====
אותיות מסוימות ב[[אלפבית]] שכיחות יותר מאותיות אחרות. כך האותיות [[י|יוּד]] ו-[[ו|וו]] נפוצות בעברית פי עשרה לערך מהאותיות [[צ]] ו-[[ז]]. אם נרצה לייצג טקסט נוכל להקטין את גודלו תוך שימוש בקוד קצר לאותיות נפוצות וקוד יותר ארוך לאותיות נדירות, כפי שהדבר נעשה ב[[קוד מורס]]. השיטה הנפוצה ביותר לדחיסה כזו קרויה [[קוד הופמן]]. רוב פורמטי הדחיסה עושים שימוש באלגוריתם זה.
 
רוב קובצי הטקסט משתמשים בקידוד [[ASCII]] על מנת לייצג את התווים שבהם. לפי קידוד זה לכל תו יש ערך בעל 7 ביטים (כלומר סה"כ 2 בחזקת 7 - 128 תווים שונים), או בעל ערך של שמונה ביטים כאשר הביט השמיני הוא ביט זוגיות. בקבצים כאלה כדי לשמור n תווים בעצם כותבים 8*n ביטים. בהרבה מקובצי הטקסט לא משתמשים בכל התווים ובנוסף לתווים מסוימים יש סיכוי יותר גדול להופיע מאשר לתווים אחרים (למשל האותיות י' או ו' מופיעות הרבה יותר מאשר צ' או ט'). כלומר, קודם כל ניתן לייצג את כל התווים בקובץ מסוים בפחות ביטים - למשל כדי לייצג שמונה תווים צריך סה"כ 3 ביטים לכל תו. חוץ מכך, ניתן לתת לתווים מסוימים, שמופיעים יותר פעמים, קוד קצר יותר ולעומת זאת תווים שמופיעים לעיתים רחוקות ניתן קודים ארוכים יותר (על מנת לשמור על הקוד ניתן לפענוח).
שורה 58:
 
====טכניקות נוספות====
טכניקות דחיסה נוספות כגון PPM, CTW, ו-[[התמרת_בורווסהתמרת בורווס-וילר|BWT]] משיגות ביצועים טובים יותר (חיסכון בתווים) בתמורה לאיטיות מסוימת יחסית ל-LZ.
 
===דחיסה מאבדת מידע===