810 likes | 1.16k Views
דחיסת נתונים ואותות סמסטר ב' תשס"ז. שיטות דחיסה ללא עיוות לקבצי מידע האלגוריתמים של למפל ושל זיו. נועם פרסמן, presmann@eng.tau.ac.il , 30.5.2007. תוכנית. סימונים והגדרת הסכמה הכללית אלגוריתמי למפל-זיו יישומים העושים שימוש באלגוריתמים והשוואת ביצועים מדדי דחיסות ( סיבוכיות ) מחרוזות
E N D
דחיסת נתונים ואותותסמסטר ב' תשס"ז שיטות דחיסה ללא עיוות לקבצי מידע האלגוריתמים של למפל ושל זיו נועם פרסמן, presmann@eng.tau.ac.il , 30.5.2007 דחיסת נתונים ואותות – סמסטר ב' תשס"ז
תוכנית • סימונים והגדרת הסכמה הכללית • אלגוריתמי למפל-זיו • יישומים העושים שימוש באלגוריתמים והשוואת ביצועים • מדדי דחיסות ( סיבוכיות ) מחרוזות • הוכחת אוניברסליות LZ78 דחיסת נתונים ואותות – סמסטר ב' תשס"ז
אריתמטיקה של מחרוזות נסמן מחרוזת סופית באורך n מעל א"ב סופי A : אורך המחרוזת: שרשור מחרוזות x ו – y : דחיסת נתונים ואותות – סמסטר ב' תשס"ז
אריתמטיקה של מחרוזות עבור סדרת מחרוזת נסמן את שרשורן: המחרוזת הריקה תסומן באות . הבחינו כי לכל מחרוזת s : המחרוזת היא דחיסת נתונים ואותות – סמסטר ב' תשס"ז
אריתמטיקה של מחרוזות פיסוק באורך m של מחרוזת x ( באורך n ) הוא סדרת תתי מחרוזות: ביחס לפיסוק נתון, נסמן את מספר תתי המחרוזות בפיסוק עד לתו ה k במחרוזת באופן הבא: דחיסת נתונים ואותות – סמסטר ב' תשס"ז
אריתמטיקה של מחרוזות סדרת אורכי הפסקאות תסומן באות l : [!] לעיתים נתעניין בפיסוק של x המכיל מקסימום פסקאות שונות. נסמן את גודל הפיסוק הזה בסימון דחיסת נתונים ואותות – סמסטר ב' תשס"ז
מבנה כללי של האלגוריתמים • נידרש לשני אלגוריתמים: • אלגוריתם המקודד (ממפה מחרוזות מא"ב A לא"ב B ) • אלגוריתם המפענח ( ממפה מחרוזות מא"ב Bלא"ב A ) דחיסת נתונים ואותות – סמסטר ב' תשס"ז
הגדרת אלגוריתם המקודד קלט: מחרוזת x באורך n התוכנית : • המקודד יפסק את הקלט לסדרת הפיסוק הבאה ( פיסוק מקור) • לכל פסקת מקור המפענח יתאים פסקת קוד , כלומר פלט: y אורכי סדרת פסקאות המקור יסומנו ב lsource אורכי סדרת פסקאות הקוד יסומנו ב - lcode דחיסת נתונים ואותות – סמסטר ב' תשס"ז
הגדרת אלגוריתם המפענח קלט: מחרוזת קוד y תוכנית: המפענח יפסק את הקלט לסדרת הפיסוק הבאה ( פיסוק קוד ): וימפה לכל פסקת קוד את פסקת המקור המתאימה לו: פלט: המחרוזת x דחיסת נתונים ואותות – סמסטר ב' תשס"ז
סכמת מפענח סיבתית אם כדי למצוא את הפסקה ה - i בקלט ולפענחה נדרש המפענח לכל היותר למחרוזת של הקוד, נאמר שהסכמה סיבתית ( ביחס למפענח). דחיסת נתונים ואותות – סמסטר ב' תשס"ז
1 1 1 2 2 2 3 3 3 Encoder Decoder מודל שקול עבור סכמה סיבתית time דחיסת נתונים ואותות – סמסטר ב' תשס"ז
קצב הדחיסה של הסכמה עבור מחרוזת x יוגדר קצב הדחיסה המושג ע"י סכמת אלגוריתמי מקודד-מפענח באופן הבא: עבור א"ב מקור וקוד בינארי מתקיים: דחיסת נתונים ואותות – סמסטר ב' תשס"ז
הצגת האלגוריתמים • LZ77 - Sliding Window LZ • LZ78 – Tree Based LZ • LZW – שיפור של LZ78 דחיסת נתונים ואותות – סמסטר ב' תשס"ז
קידוד מספרים טבעיים למה: קיים קוד prefix free עבור המספר הטבעיים כך שאורך הקוד לכל מספר טבעי k הוא דחיסת נתונים ואותות – סמסטר ב' תשס"ז
קידוד מספרים טבעיים - הוכחה "איטרציה" ראשונה – נציע את המיפוי הבא: אורך מילת הקוד: דחיסת נתונים ואותות – סמסטר ב' תשס"ז
קידוד מספרים טבעיים - הוכחה "איטרציה" שניה – נציע את המיפוי הבא: אורך מילת הקוד: דחיסת נתונים ואותות – סמסטר ב' תשס"ז
LZ77 – Sliding Window LZ באלגוריתם זה קיים חוצץ ( buffer) השומר את תת המחרוזת שכבר קודדה. ה - buffer הוא "חלון" הסתכלות על העבר. ואפשר גם להבין אותו בתור "המילון" שלנו. דחיסת נתונים ואותות – סמסטר ב' תשס"ז
תיאור האלגוריתם ( LZ77 ) אתחול ( מקודד ומפענח): ה buffer מלא בסדרה הידועה מראש גם למקודד וגם למפענח. דחיסת נתונים ואותות – סמסטר ב' תשס"ז
אלגוריתם LZ77-המקודד דחיסת נתונים ואותות – סמסטר ב' תשס"ז
אלגוריתם LZ77 – המפענח דחיסת נתונים ואותות – סמסטר ב' תשס"ז
אלגוריתם LZ77 – דוגמא 1א' הנח שב bufferשמור המידע: ועליך לקודד מחרוזת המתחילה כך: אזי ההתאמה הבאה תהיה: 10 והפסקה הבאה היא: 100 כלומר: דחיסת נתונים ואותות – סמסטר ב' תשס"ז
אלגוריתם LZ77 – דוגמא 1ב' הנח שב bufferשמור המידע: ועליך לקודד מחרוזת המתחילה כך: אזי ההתאמה הבאה תהיה: 1010 והפסקה הבאה היא: 01010 כלומר: דחיסת נתונים ואותות – סמסטר ב' תשס"ז
אבחנות בסיסיות • הסכמה היא סיבתית • זהו אלגוריתם חמדן • פסקאות שונות • המחיר לקידוד הפסקה ה j הוא : • לכן קצב הדחיסה: דחיסת נתונים ואותות – סמסטר ב' תשס"ז
LZ77 - גרסה עם bufferחסום דחיסת נתונים ואותות – סמסטר ב' תשס"ז
אבחנות – גרסא עם bufferחסום • סכמה סיבתית; אלגוריתם חמדן • לא כל הפסקאות שונות זו מזו. • המחיר לקידוד הפסקה ה j הוא : • קצב הדחיסה הוא: דחיסת נתונים ואותות – סמסטר ב' תשס"ז
LZ 78-Tree Based LZ בגרסה זו קיים מילון שנסמנו באות D, שהוא סדרה של מחרוזות. המילון בזמן ה - j יסומן ב – D(j) . דחיסת נתונים ואותות – סמסטר ב' תשס"ז
LZ 78 - האלגוריתם אתחול המפענח והמקודד : המילון מכיל את המחרוזת הריקה. דחיסת נתונים ואותות – סמסטר ב' תשס"ז
LZ78 המקודד דחיסת נתונים ואותות – סמסטר ב' תשס"ז
LZ78 - המפענח דחיסת נתונים ואותות – סמסטר ב' תשס"ז
Dictionary 11 9 7 6 10 8 3 0 2 4 1 5 1 שימוש בעץ כייצוג של המילון • מבנה נתונים אבסטרקטי לייצוג המילון הוא עץ מכוון: • לכל מילה במילון קיים צמת • המסלול המכוון מהשורש לצמת מגדיר את המילה דחיסת נתונים ואותות – סמסטר ב' תשס"ז
עץ שחור לבן כייצוג של המילון עץ מכוון עם צמתים משני סוגים: • שחורים : צמתים אלו מייצגים מחרוזות שהן פסקאות שכבר מופו בתהליך הקידוד. • לבנים : צמתים אלו מייצגים פסקאות שטרם זוהו (ולכן אינן חלק מהמילון שלנו) אך הן הבאות בתור למיפוי. דחיסת נתונים ואותות – סמסטר ב' תשס"ז
1 1 0 1 2 1 3 4 4 1 5 1 6 6 7 8 עץ שחור לבן כייצוג של מחרוזות זיהוי מחרוזת יהיה טיול על העץ מהשורש לעלה לבן – לקבלת הפסקה הבאה. הפעם נשלח את המספר של העלה הלבן ( שוב בהתאם למקומו הלקסיקוגרפי ) . דחיסת נתונים ואותות – סמסטר ב' תשס"ז
LZ78 עם חסמים • חלוקה לבלוקים קידוד בנפרד ושרשור ( שקף הבא) • מילון שאינו גדל מעבר לגודל מסוים: • הופך סטטי • מוחק רשומות לפי משטר מסוים • נמחק ומתחיל בנייה מחדש דחיסת נתונים ואותות – סמסטר ב' תשס"ז
BLZ 78 . . . BLZ 78 BLZ 78 דחיסת נתונים ואותות – סמסטר ב' תשס"ז
LZW – שיפור על LZ78 • Welch הבחין שניתן להימנע משליחת התו המחדש uncoded. • נותן שיפורים משמעותיים במקורות דחיסים. • תרם לפופולריות של האלגוריתם דחיסת נתונים ואותות – סמסטר ב' תשס"ז
יישומי האלגוריתמים והשוואת ביצועים • יישומים : • gzip,zip ( LZ77( • compress ( LZW ) • gif ( LZW ) • מבחני השוואת ביצועים – קורפוס קנטרברי דחיסת נתונים ואותות – סמסטר ב' תשס"ז
gzip,zip מימוש של deflate שהוא וריאנט של LZ77: • שימוש ב bufferבגודל 32KB וחלון בגודל 256B עבור המחרוזת הבאה שיש לקודד. • שימוש בטבלת hash לצורך ההתאמות • קידוד הפמן של המצביע, ושל המחדש+אורך המחרוזת. • חלוקה לבלוקים • look ahead –מיתון החמדנות. דחיסת נתונים ואותות – סמסטר ב' תשס"ז
compress יישום הנפוץ בסביבת Unix והוא מימוש של LZW : • גודל המילון המקסימלי יכול להיקבע ע"י המשתמש • התנהגות היישום כאשר המילון מתמלא. דחיסת נתונים ואותות – סמסטר ב' תשס"ז
gif (graphic interchange format) • פורמט הצגה לקבצי תמונות המכילים עד 256 צבעים . • משתמש ב LZW באופן דומה ל – compress. • הסריקה של התמונות נעשית שורה שורה. דחיסת נתונים ואותות – סמסטר ב' תשס"ז
מבחני ביצועים ( Benchmark Tests ) • מוטיבציה • דרישות ממבחן ביצועים אמין • הקורפוס של קנטרברי דחיסת נתונים ואותות – סמסטר ב' תשס"ז
תכולת הקורפוס של קנטרברי דחיסת נתונים ואותות – סמסטר ב' תשס"ז
השוואת ביצועים דחיסת נתונים ואותות – סמסטר ב' תשס"ז
מדדי דחיסות עבור סדרות גישה א' : הגישה הסטכוסטית המחרוזת חברה באנסמבל בעל מאפיינים סטטיסטיים ידועים ( רצוי: סטציונרי וארגודי ) תוצאות ניתנות בתוחלת על פני חברי האנסמבל. מדד הדחיסות: קצב האנטרופיה • חסרונות/בעיות: • מה ידוע על הדחיסות של מחרוזת ספציפית? • מה באשר למקורות שהסטטיסטיקה שלהם אינה ידועה? או שאינם סטציונרים או ארגודיים ? דחיסת נתונים ואותות – סמסטר ב' תשס"ז
מדדי דחיסות עבור מחרוזות גישה ב' : הגישה הדטרמיניסטית : ניתוח מחרוזות אינדיבידואליות נמצא לכל מחרוזת את קצב הדחיסה הטוב ביותר שניתן להשיג עבורה. פעולת הדחיסה היא פעולה חישובית של מיפוי מחרוזות למחרוזות – ולכן נתעניין בקצבי הדחיסה הניתנים להשגה באמצעות מכונות חישוב. • מדדים מוצעים: • סיבוכיות קולמגורוב • קצב למפל זיו דחיסת נתונים ואותות – סמסטר ב' תשס"ז
מכונת חישוב אוניברסלית אידיאלית • מכונת חישוב אוניברסלית אידיאלית היא מערכת המקבלת תוכנית וקלט לתוכנית ומריצה את התוכנית על הקלט . • דוגמאות למכונות אוניברסליות הן למשל: • מכונת טורינג אוניברסלית עם סרט באורך אין-סופי. • מכונת חישוב עם זיכרון Random Accessבגודל לא מוגבל המריצה תוכניות ב C • מכונת חישוב " " " " " " " בAJAV • כל הדוגמאות הנ"ל שקולות במובן, שכל בעיה חישובית שניתן לפתור באמצעות מימוש אלגוריתמי במערכת אחת ניתן לפתור באמצעות מימוש אלגורתמי ( אולי אחר ) בכל אחת מהמערכות האחרות. דחיסת נתונים ואותות – סמסטר ב' תשס"ז
סיבוכיות קולמגורוב דחיסת נתונים ואותות – סמסטר ב' תשס"ז
סבוכיות קולמגורוב: דוגמא א' x = 0n דחיסת נתונים ואותות – סמסטר ב' תשס"ז
סבוכיות קולמגורוב: דוגמא ג' דחיסת נתונים ואותות – סמסטר ב' תשס"ז
אוניברסליות סיבוכיות קולמגורוב דחיסת נתונים ואותות – סמסטר ב' תשס"ז
חֲשיבות סיבוכיות קולמגורוב משפט ( חישוביות סיבוכיות קולמגורוב ) :לכל מכונת חישוב אוניברסלית ואידיאלית, סיבוכיות קולמגורוב – אינה חֲשִיבה. • לא ניתן לממש מקודד המשיג את סיבוכיות קולמגורוב לכל מחרוזת. • באופן כללי,לא ניתן לחשב את סיבוכיות קולמגורוב של מחרוזות, או אפילו להוכיח שסיבוכיות קולמגורוב של מחרוזות היא מספר מסוים. דחיסת נתונים ואותות – סמסטר ב' תשס"ז