1 / 67

דחיסת מידע

דחיסת מידע. או: אייך מספרים סיפור בקיצור. כיצד מאחסנים ספר במחשב. הדיסק שלנו יכול לאחסן רק ביטים, ולכן הספר יאוחסן כמחרוזת רציפה של ביטים. מחרוזת ביטים שנוכל לשחזר ממנה את הספר.

tiger
Download Presentation

דחיסת מידע

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. דחיסת מידע או: אייך מספרים סיפור בקיצור

  2. כיצד מאחסנים ספר במחשב • הדיסק שלנו יכול לאחסן רק ביטים, ולכן הספר יאוחסן כמחרוזת רציפה של ביטים. • מחרוזת ביטים שנוכל לשחזר ממנה את הספר. • שיטה פשוטה ליצירת מחרוזת כזו היא על ידי הגדרת מחרוזת ביטים קצרה (מילה בינארית) עבור כל אות מהא"ב של השפה בה נכתב הספר, ויצירת המחרוזת עבור הספר כולו על ידי שירשור המחרוזות האלה, זו אחרי זו, על פי סדר האותיות בספר.

  3. נבחן, למשל, אנגלית • נתאים מילה באורך 8 ביט – בית אחד – לכל סימן בשפה: אותיות (גדולות וקטנות), ספרות, סימני פיסוק, רווחים, סוף שורה, סוף קובץ, וכו' • נוח, משום שיחידת הכתיבה בדיסק היא בית -- 8 ביטים • מספיק, משום שישנם כ- 100 סימנים כאלה בשפה, וישנן 256 = 28 מילים שונות בנות 8 ביט • יש אפשרות לייצג גם סימנים נוספים מיוחדים כמו שינוי שפה, שינוי פונט, וכו'. אפשר לאחסן גם טקסט בן שתי שפות, ועוד.

  4. ASCII Table American Standard Code for Information Interchange

  5. Extended ASCII Codes“The most popular ‘standard’ extended set”

  6. ספר באנגלית בן 1000 סימנים • מאוחסן כקובץ בן 1000 בתים, כשמשתמשים בבית לכל סימן בשפה. • אם רוצים לדחוס, כי חשוב לחסוך בנפח האיחסון, נוכל להסתפק ב- 7 ביטים לסימן באנגלית. • ישנן 128 = 27 מילים שונות באורך 7 ביטים, והן מספיקות כדי לייצג את כל 100~ הסימנים בשפה. • הספר יאוחסן כקובץ בן 1000*7/8 = 875 בתים • לא כל סימן בבית משלו; קשה לאתר סימן על פי מקומו בספר.

  7. דוגמא ליצוג טקסט כמחרוזת ביטיםעל פי 7 הביטים ה"ימניים" של ASCII A B R A _ C A D A B R A 100000110000101010010 100000101000001000011 100000110001001000001 100001010100101000001 12 סימנים באנגלית X 7 ביטים לסימן -> 84 ביטים ס"ה

  8. האמנם נוכל לשחזר את הטקסט? 1000001100001010000101000001 1000001 , 1000010 , 1000010 , 1000001 A B B A

  9. האם נוכל לחסוך עוד בנפח האיחסון? אולי כדאי • להתאים לאותיות השכיחות מילים קצרות יותר מ- 7 ביטים • ובתמורה, לאותיות הנדירות, להתאים מילים ארוכות יותר מ – 7 ביטים • העיקר שסך הכל נייצר מילים שונות כמספר הסימנים בשפה (עכשיו אין הכרח שמספר המילים יהיה חזקה של 2) • ושהאורך הכולל, בביטים, של הקובץ המיצג את הספר יהיה פחות מ- 7 X מספר הסימנים שבספר • ושתתקיים תכונה נוספת שתיכף נדון בה

  10. דוגמא: שפה בת 4 אותיות • טקסט = abacabadabacabad • בשימוש במילים שוות אורך, צריך להתאים לכל אות מילה בת 2 ביטים. • הטקסט כולו יאוחסן על פי התאמה זו כ - • 00010010000100110001001000010011 • אורך האיחסון: 2 x 16 = 32 ביטים • אבל…

  11. נקצה לאותיות מילים באורכים שונים • ל- a, השכיחה ביותר, נקצה מילה באורך 1 • ל- b, השניה בשכיחותה – מילה באורך 2 • ול- c ול- d, השכיחות הכי פחות – באורך 3 abacabadabacabad • הטקסט כולו יאוחסן אז כ - • 0100110010011101001100100111 • אורך האיחסון = 8 x 1 + 4 x 2 + 2 x 3 + 2 x 3 = 28 ביטים • דחסנו מ- 32 ביטים ל- 28.

  12. האם נוכל לשחזר את הטקסט מתוך המחרוזת הבינארית? • נתונה ההתאמה של כל אות בשפה למילה בינארית • ונתונה מחרוזת המתאימה לטקסט כולו • 01001100100111 • מהו הטקסט? • מאחר שלאותיות מותאמות מילים באורכים שונים, אי אפשר לפרוס את הטקסט לפרוסות שוות אורך כך שכל פרוסה תתאים לאות מהשפה. • יש לבחון את תוכן המחרוזת הבינארית ולפרוס אותה בזהירות.

  13. ננסה לשחזר את הטקסט מתוך המחרוזת הבינארית 01001100100111 01001100100111 • האם 0 היא מילה מהטבלה ? • כן! – מתאימה ל- a • האם היא תחילתה של מילה אחרת ? • לא! • לכן נפרוס את הפרוסה 0, ונכריז על האות a a

  14. ננסה לשחזר את הטקסט מתוך המחרוזת הבינארית 0,1001100100111 0,1001100100111 0,1001100100111 • האם 1 היא מילה מהטבלה ? • לא! • האם 10 היא מילה מהטבלה ? • כן! – מתאימה ל- b • האם היא תחילתה של מילה אחרת ? • לא! • לכן נפרוס את הפרוסה 10, ונכריז על האות b ab

  15. ננסה לשחזר את הטקסט מתוך המחרוזת הבינארית 0,10,01100100111 0,10,01100100111 • האם 0 היא מילה מהטבלה ? • כן! – מתאימה ל- a • האם היא תחילתה של מילה אחרת ? • לא! • לכן נפרוס את הפרוסה 0, ונכריז על האות a aba

  16. ננסה לשחזר את הטקסט מתוך המחרוזת הבינארית 0,10,0,1100100111 0,10,0,1100100111 0,10,0,1100100111 0,10,0,1100100111 • האם 1 היא מילה מהטבלה ? • לא! • האם 11 היא מילה מהטבלה? • לא! • האם 110 היא מילה מהטבלה ? • כן! – מתאימה ל- c • האם היא תחילתה של מילה אחרת ? • לא! • לכן נפרוס את הפרוסה 110, ונכריז על האות c abac וכו'

  17. 0 1 a 0 1 b 0 1 c d כאשר שום מילה בטבלהאינה תחילתה של מילה אחרת אפשר להציב את כל מילות הטבלה על פני עץ מסומן קשתות: Trie

  18. קל מאד לפרוס את המחרוזתהבינארית למרכיביה ולשחזר את הטקסט 01001100100111 0 1 a 0 1 b 0 1 c d

  19. קל מאד לפרוס את המחרוזתהבינארית למרכיביה ולשחזר את הטקסט 01001100100111 0 1 a 0 1 b a 0 1 c d

  20. קל מאד לפרוס את המחרוזתהבינארית למרכיביה ולשחזר את הטקסט 0,1001100100111 0 1 a 0 1 b ab 0 1 c d

  21. קל מאד לפרוס את המחרוזתהבינארית למרכיביה ולשחזר את הטקסט 0,10,01100100111 0 1 a 0 1 b aba 0 1 c d

  22. קל מאד לפרוס את המחרוזתהבינארית למרכיביה ולשחזר את הטקסט 0,10,0,1100100111 0 1 a 0 1 b abac 0 1 c d וכו'

  23. אי שוויון Kraft-McMillan • כדי להבטיח שפריסת מחרוזת בינארית למילים שמרכיבות אותה תעשה באופן יחיד, חייבים אורכי המילים הבינאריות שבטבלה לקיים: • לכן לא כל המילים יכולות להיות קצרות; אם אחת מתקצרת, חייבות האחרות להתארך. • ואם נתון אוסף מילים שאורכיהן מקיימים אי שוויון זה, אפשר (אם צריך) לשנות את תוכני המילים כך ששום מילה לא תהיה תחילתה של מילה אחרת. יחס הדחיסה לא ישתנה, אך פריסת מחרוזות תהיה קלה במיוחד. לכן אוספים כאלה (prefix free) חביבים במיוחד.

  24. סכום ביניים קצר:מבוקש!!! • צופן: התאמה בין אותיות השפה שבה נכתב הספר למילים בינאריות. • צופן שיקצר ככל האפשר את אורך האיחסון של הספר • לאות שכיחה – מילה קצרה • לאות נדירה – מילה ארוכה • צופן שכל מחרוזת שייצר עבור טקסט תיפרס באופן יחיד למילים שהרכיבו את המחרוזת • אורכי המילים מקיימים את אי שוויון KM • רצוי אוסף המילים שהינו prefix free

  25. התשובה: על פי הפמן Huffman, 1952)) 1000 0 1 580 0 330 420 0 0 1 1 180 220 1 0 0 1 1 80 100 150 250 120 100 200 b c d e f g a 0000

  26. התשובה: על פי הפמן Huffman, 1952)) 1000 0 1 580 0 330 420 0 0 1 1 180 220 1 0 0 1 1 80 100 150 250 120 100 200 b c d e f g a 0000 0001

  27. התשובה: על פי הפמן Huffman, 1952)) 1000 0 1 580 0 330 420 0 0 1 1 180 220 1 0 0 1 1 80 100 150 250 120 100 200 b c d e f g a 0000 0001 001 01 100 101 11

  28. הצופן שבנינו

  29. הצפנה עם הצופן שבנינו defecd 0110010110000101 ס"ה 16 ביטים.

  30. פיענוח עם הצופן שבנינו 0110010110000101 1 0 0 0 1 1 0 1 0 1 g d 0 1 c e f a b

  31. פיענוח עם הצופן שבנינו 01,10010110000101 d 1 0 0 0 1 1 0 1 0 1 g d 0 1 c e f a b

  32. פיענוח עם הצופן שבנינו 01,100,10110000101 d e 1 0 0 0 1 1 0 1 0 1 g d 0 1 c e f a b

  33. פיענוח עם הצופן שבנינו 01,100,101,10000101 d e f 1 0 0 0 1 1 0 1 0 1 g d 0 1 c e f a b

  34. פיענוח עם הצופן שבנינו 01,100,101,100,00101 e e d f 1 0 0 0 1 1 0 1 0 1 g d 0 1 c e f a b

  35. פיענוח עם הצופן שבנינו 01,100,101,100,001,01 e e c d f 1 0 0 0 1 1 0 1 0 1 g d 0 1 c e f a b

  36. פיענוח עם הצופן שבנינו 01,100,101,100,001,01 e e c d d f 1 0 0 0 1 1 0 1 0 1 g d 0 1 c e f a b

  37. מה יתן הפמן עבור הסדרהשלנו מעל {a,b,c,d} abacabadabacabad 16 1 8 1 4 0 0 0 1 8 4 2 2 a b c d 10 110 111 0

  38. כמה טוב הוא צופן הפמן? שום צופן אחר אינו נותן דחיסה טובה יותר מצופן הפמן.

  39. כמה טוב הוא צופן הפמןבמושגים של שכיחויות האותיות • רוצים לקצר את המילים המותאמות לאותיות השכיחות, ולהאריך את המילים המותאמות לאותיות הנדירות. • אבל כמה לקצר וכמה להאריך ? • שנון: לאות ששכיחות ההופעה שלה היא יש להתאים מילה בינארית באורך ביטים • צופן הפמן, שיוצר אורכים שלמים, כמובן, מתקרב לאורכים אלה

  40. Claude Elwood Shannon1916 -2001 A Mathematical Theory of Communication (1948)

  41. שנון: אנטרופיה של מקור • שנון: אם מקור חסר זיכרון פולט אות בהסתברות (ולכן היא שכיחות ההופעה של בכל טקסט ארוך מספיק) יש להתאים ל מילה בינארית באורך • ואז, התוחלת של מספר הביטים שמוקצים לאות מקור היא: • זוהי האנטרופיה של המקור • שום צופן אינו יכול לדחוס כך שממוצע הביטים לאות מקור (יחס הדחיסה) נמוך מהאנטרופיה

  42. האנטרופיה של מקור עם א"ב בן שתי אותיות הנפלטות בהסתברויות p , p-1

  43. ואולי אות היא שצריכים להסתכל על שתי אותיות? • טקסטים שנוצרו על ידי אדם אינם כאלה הנפלטים ממקור חסר זיכרון. יש קשר בין שכיחות ההופעה של אותיות בתוך הטקסט להקשר שלהן בטקסט, כלומר לזהות האותיות הסמוכות להן בטקסט. • במקום להתאים מילה בינארית לכל אות בשפה, נתאים מילה בינארית לכל זוג אותיות. למשל: • בשפה בת 4 האותיות, עבור הטקסט abacabadabacabad • תוך שימוש בצופן שבטבלה: • נייצר את המחרוזת הבינארית: • 010011010011 • ס"ה 12 ביטים. • (עם מילה לכל אות בודדת (אפילו עם מילים שונות אורך) – 28 ביטים.)

  44. ומה יש לשנון להגיד על זה ? עבור מקורות שאינם חסרי זיכרון, המאופינים על ידי ההסתברויות לפליטת מחרוזות של אותיות (ולא אותיות בודדות), או עבור טקסט נתון, ושכיחות ההופעה בו של מחרוזות של אותיות, המספר המינימאלי הממוצע של ביטים לאות הוא הוא האוסף בן המחרוזות באורך n מעל הא"ב A של המקור. כדי לדחוס, אפשר להפעיל הפמן על המחרוזות באורך n מסוים, במקום על אותיות בודדות (עבורן n=1)

  45. אז אייך מספרים סיפור בקיצור ? • מכבירים מילים על האירועים המפתיעים, אלה שההסתברות שיקרו (כפי שמעריכים אותה לפני פרוץ סדרת האירועים) – נמוכה • ומקצרים בתיאור הארועים הצפויים • במהדורת חדשות מכבירים יותר מילים על אירוע בו איש נשך כלב מאשר על אירוע בו כלב נשך איש. • שנון: כמות המידע בדווח על קרות אירוע שההסתברות (א-פריורי) שיקרה היא הינה

  46. איך (עוד) מספרים סיפור בקיצור • אומרים: היום, כל מה שקרה לי דומה למה שקרה לי אתמול, או ביום שלישי שעבר, חוץ מתוספת קטנה אחת, והיא ... • למפל וזיו, שני פרופסורים מהטכניון, פרסמו בשנים 1977 ו- 1978, שיטות לדחיסת ספרים (או תוכניות מחשב, או כל קובץ של אותיות) מבלי למצוא קודם את השכיחות היחסית של האותיות (או תתי-המחרוזות) בקובץ אותו רוצים לדחוס.

  47. האלגוריתם של למפל וזיו 1978 מפסקים את הסדרה הנתונה לפסקאות שונות זו מזו, פסקה אחרי פסקה, מראשית המחרוזת אל סופה, כך שכל אחת מהפסקאות מורכבת מפסקה שפוסקה קודם לכן פלוס האות שבאה אחריה תודה לכרמל ולאוהד

  48. האלגוריתם של למפל וזיו 1978 במקום כל פסקה, כותבים את מספר הפסקה שלה היא דומה ("בדיוק כמו ביום שלישי שעבר") ואת האות הנוספת ("חוץ מתוספת קטנה אחת והיא..") (0 הוא היום בו לא קרה כלום)

  49. גם פה ה-Trie עוזר מאד aaababbbaaabaaaaaaabaabb

  50. גם פה ה-Trie עוזר מאד a,aababbbaaabaaaaaaabaabb 0 a 1 (0,a)

More Related