67
תתתתת תתתתת תתתת תתתת תת תת: : תתתת תתתתתת תתתתת תתתת תתתתתת תתתתת תתתתתת תתתתתת

דחיסת מידע

  • Upload
    tiger

  • View
    38

  • Download
    1

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: דחיסת מידע

דחיסת מידעדחיסת מידע

::אואו

אייך מספרים סיפור אייך מספרים סיפור בקיצורבקיצור

Page 2: דחיסת מידע

כיצד מאחסנים ספר במחשבכיצד מאחסנים ספר במחשב

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

מחרוזת ביטים שנוכל לשחזר ממנה את מחרוזת ביטים שנוכל לשחזר ממנה את הספר.הספר.

שיטה פשוטה ליצירת מחרוזת כזו היא על ידי שיטה פשוטה ליצירת מחרוזת כזו היא על ידי הגדרת מחרוזת ביטים קצרה )מילה בינארית( הגדרת מחרוזת ביטים קצרה )מילה בינארית(

עבור כל אות מהא"ב של השפה בה נכתב עבור כל אות מהא"ב של השפה בה נכתב הספר, ויצירת המחרוזת עבור הספר כולו על הספר, ויצירת המחרוזת עבור הספר כולו על

ידי שירשור המחרוזות האלה, זו אחרי זו, על פי ידי שירשור המחרוזות האלה, זו אחרי זו, על פי סדר האותיות בספר.סדר האותיות בספר.

Page 3: דחיסת מידע

נבחן, למשל, אנגליתנבחן, למשל, אנגלית ביט – בית אחד – לכל ביט – בית אחד – לכל 88נתאים מילה באורך נתאים מילה באורך

סימן בשפה: אותיות )גדולות וקטנות(, ספרות, סימן בשפה: אותיות )גדולות וקטנות(, ספרות, סימני פיסוק, רווחים, סוף שורה, סוף קובץ, וכו' סימני פיסוק, רווחים, סוף שורה, סוף קובץ, וכו'

-- נוח, משום שיחידת הכתיבה בדיסק היא בית -- נוח, משום שיחידת הכתיבה בדיסק היא בית ביטים ביטים 88 -סימנים כאלה סימנים כאלה 100100מספיק, משום שישנם כ- מספיק, משום שישנם כ

88מילים שונות בנות מילים שונות בנות 2288 = = 256256בשפה, וישנן בשפה, וישנן ביטביט

יש אפשרות לייצג גם סימנים נוספים מיוחדים יש אפשרות לייצג גם סימנים נוספים מיוחדיםכמו שינוי שפה, שינוי פונט, וכו'. אפשר לאחסן כמו שינוי שפה, שינוי פונט, וכו'. אפשר לאחסן

גם טקסט בן שתי שפות, ועוד.גם טקסט בן שתי שפות, ועוד.

Page 4: דחיסת מידע

ASCII Table ASCII Table American Standard Code for Information InterchangeAmerican Standard Code for Information Interchange

Page 5: דחיסת מידע

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

Page 6: דחיסת מידע

סימנים סימנים10001000ספר באנגלית בן ספר באנגלית בן

בתים, כשמשתמשים בתים, כשמשתמשים 10001000 מאוחסן כקובץ בן מאוחסן כקובץ בן בבית לכל סימן בשפה.בבית לכל סימן בשפה.

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

ביטים, והן ביטים, והן 77 מילים שונות באורך מילים שונות באורך 2277 = = 128128 ישנן ישנן ~ הסימנים בשפה.~ הסימנים בשפה.100100מספיקות כדי לייצג את כל מספיקות כדי לייצג את כל

בתים בתים 875875 = = 7/87/8**10001000 הספר יאוחסן כקובץ בן הספר יאוחסן כקובץ בן לא כל סימן בבית משלו; קשה לאתר סימן על פי לא כל סימן בבית משלו; קשה לאתר סימן על פי

מקומו בספר.מקומו בספר.

Page 7: דחיסת מידע

דוגמא ליצוג טקסט כמחרוזת ביטיםדוגמא ליצוג טקסט כמחרוזת ביטיםASCIIASCII הביטים ה"ימניים" של הביטים ה"ימניים" של 77על פי על פי

AA10000011000001

BB10000101000010

CC10000111000011

DD10001001000100

RR10100101010010

SS10100111010011

‘ ‘‘ ‘01000000100000

A B R A _ C A D A B R A

100000110000101010010100000101000001000011100000110001001000001100001010100101000001

X 7 סימנים באנגלית 12 ביטים 84ביטים לסימן -< ס"ה

Page 8: דחיסת מידע

האמנם נוכל לשחזר את הטקסט?האמנם נוכל לשחזר את הטקסט?

1000001100001010000101000001

1000001 , 1000010 , 1000010 , 1000001

AA10000011000001

BB10000101000010

CC10000111000011

A B B A

Page 9: דחיסת מידע

האם נוכל לחסוך עוד בנפח האיחסון? האם נוכל לחסוך עוד בנפח האיחסון? אולי כדאיאולי כדאי

-77 להתאים לאותיות השכיחות מילים קצרות יותר מ- להתאים לאותיות השכיחות מילים קצרות יותר מ ביטיםביטים

ובתמורה, לאותיות הנדירות, להתאים מילים ארוכות ובתמורה, לאותיות הנדירות, להתאים מילים ארוכות ביטים ביטים77יותר מ – יותר מ –

העיקר שסך הכל נייצר מילים שונות כמספר הסימנים העיקר שסך הכל נייצר מילים שונות כמספר הסימנים בשפה )עכשיו אין הכרח שמספר המילים יהיה חזקה בשפה )עכשיו אין הכרח שמספר המילים יהיה חזקה

((22של של ושהאורך הכולל, בביטים, של הקובץ המיצג את הספר ושהאורך הכולל, בביטים, של הקובץ המיצג את הספר

מספר הסימנים שבספר מספר הסימנים שבספרXX 77יהיה פחות מ- יהיה פחות מ- ושתתקיים תכונה נוספת שתיכף נדון בה ושתתקיים תכונה נוספת שתיכף נדון בה

Page 10: דחיסת מידע

אותיות אותיות44דוגמא: שפה בת דוגמא: שפה בת

= טקסט = טקסט abacabadabacabadabacabadabacabad צריך , צריך שוות אורךשוות אורך בשימוש במילים בשימוש במילים ,

ביטים. ביטים.22להתאים לכל אות מילה בת להתאים לכל אות מילה בת aa0000

bb0101

cc1010

dd1111 הטקסט כולו יאוחסן על פי התאמה זו כ - הטקסט כולו יאוחסן על פי התאמה זו כ -–0000010100001010000001010000111100000101000010100000010100001111 ביטים ביטיםx 16 = 32x 16 = 32 22אורך האיחסון: אורך האיחסון: –

אבל…אבל…

Page 11: דחיסת מידע

נקצה לאותיות מילים באורכים נקצה לאותיות מילים באורכים שוניםשונים

-ל- ל aa 11, השכיחה ביותר, נקצה מילה באורך , השכיחה ביותר, נקצה מילה באורך -ל- ל bb 22, השניה בשכיחותה – מילה באורך , השניה בשכיחותה – מילה באורך -ול- ול cc -ול- ול dd 33, השכיחות הכי פחות – באורך , השכיחות הכי פחות – באורך

aa00

bb1010

cc110110

dd111111

abacabadabacabad - הטקסט כולו יאוחסן אז כ - הטקסט כולו יאוחסן אז כ

–00101000110110001010001111110010100011011000101000111111 ביטים ביטיםx 1 + 4 x 2 + 2 x 3 + 2 x 3 x 1 + 4 x 2 + 2 x 3 + 2 x 3 = 28 = 28 88אורך האיחסון = אורך האיחסון = –..2828 ביטים ל- ביטים ל- 3232דחסנו מ- דחסנו מ- –

Page 12: דחיסת מידע

האם נוכל לשחזר את הטקסט האם נוכל לשחזר את הטקסט מתוך המחרוזת הבינארית?מתוך המחרוזת הבינארית?

נתונה ההתאמה של כל אות בשפה למילה נתונה ההתאמה של כל אות בשפה למילה בינאריתבינארית

ונתונה מחרוזת המתאימה לטקסט כולו ונתונה מחרוזת המתאימה לטקסט כולו 0100110010011101001100100111

?מהו הטקסט? מהו הטקסט מאחר שלאותיות מותאמות מילים באורכים מאחר שלאותיות מותאמות מילים באורכים

שונים, אי אפשר לפרוס את הטקסט לפרוסות שונים, אי אפשר לפרוס את הטקסט לפרוסות שוות אורך כך שכל פרוסה תתאים לאות שוות אורך כך שכל פרוסה תתאים לאות

מהשפה. מהשפה. יש לבחון את תוכן המחרוזת הבינארית ולפרוס יש לבחון את תוכן המחרוזת הבינארית ולפרוס

אותה בזהירות.אותה בזהירות.

aa00

bb1010

cc110110

dd111111

Page 13: דחיסת מידע

ננסה לשחזר את הטקסט ננסה לשחזר את הטקסט מתוך המחרוזת הבינאריתמתוך המחרוזת הבינארית

היא מילה מהטבלה ? היא מילה מהטבלה ?00 האם האם

-כן! – מתאימה ל- כן! – מתאימה ל aa

? האם היא תחילתה של מילה אחרת ? האם היא תחילתה של מילה אחרת !לא! לא

ונכריז על האות , ונכריז על האות 00 לכן נפרוס את הפרוסה לכן נפרוס את הפרוסה ,aa

aa00

bb1010

cc110110

dd111111

a

01001100100111010011001001110010011001001111001100100111

Page 14: דחיסת מידע

ננסה לשחזר את הטקסט ננסה לשחזר את הטקסט מתוך המחרוזת הבינאריתמתוך המחרוזת הבינארית

היא מילה מהטבלה ? היא מילה מהטבלה ?11 האם האם

!לא! לא

היא מילה מהטבלה ? היא מילה מהטבלה ?1010 האם האם -כן! – מתאימה ל- כן! – מתאימה ל bb

? האם היא תחילתה של מילה אחרת ? האם היא תחילתה של מילה אחרת !לא! לא

ונכריז על , ונכריז על 1010 לכן נפרוס את הפרוסה לכן נפרוס את הפרוסה , bbהאות האות

aa00

bb1010

cc110110

dd111111

ab

0,10011001001110,10011001001110,0,110011001001110011001001110,0,10100110010011101100100111

Page 15: דחיסת מידע

ננסה לשחזר את הטקסט ננסה לשחזר את הטקסט מתוך המחרוזת הבינאריתמתוך המחרוזת הבינארית

היא מילה מהטבלה ? היא מילה מהטבלה ?00 האם האם

-כן! – מתאימה ל- כן! – מתאימה ל aa

? האם היא תחילתה של מילה אחרת ? האם היא תחילתה של מילה אחרת !לא! לא

ונכריז על האות , ונכריז על האות 00 לכן נפרוס את הפרוסה לכן נפרוס את הפרוסה ,aa

aa00

bb1010

cc110110

dd111111

aba

0,10,011001001110,10,011001001110,10,0,10,0011001001111100100111

Page 16: דחיסת מידע

ננסה לשחזר את הטקסט ננסה לשחזר את הטקסט מתוך המחרוזת הבינאריתמתוך המחרוזת הבינארית

היא מילה מהטבלה ? היא מילה מהטבלה ?11 האם האם

!לא! לא

היא מילה מהטבלה? היא מילה מהטבלה?1111 האם האם !לא! לא

היא מילה מהטבלה ? היא מילה מהטבלה ?110110האם האם -כן! – מתאימה ל- כן! – מתאימה ל cc

האם היא תחילתה של מילה אחרת ? האם היא תחילתה של מילה אחרת ?!לא! לא

ונכריז על האות , ונכריז על האות 110110 לכן נפרוס את הפרוסה לכן נפרוס את הפרוסה ,cc

aa00

bb1010

cc110110

dd111111

abac

0,10,0,11001001110,10,0,11001001110,10,0,0,10,0,111001001111001001110,10,0,0,10,0,111100100111001001110,10,0,0,10,0,11011001001110100111

וכו'

Page 17: דחיסת מידע

כאשר שום מילה בטבלהכאשר שום מילה בטבלהאינה תחילתה של מילה אחרתאינה תחילתה של מילה אחרת

aa00

bb1010

cc110110

dd111111

0

0

0 1

1

1

d

a

b

c

Trieאפשר להציב את כל מילות הטבלה על פני עץ מסומן קשתות:

Page 18: דחיסת מידע

קל מאד לפרוס את המחרוזתקל מאד לפרוס את המחרוזתהבינארית למרכיביה ולשחזר את הבינארית למרכיביה ולשחזר את

הטקסטהטקסט

0

0

0 1

1

1

d

a

b

c

0100110010011101001100100111

Page 19: דחיסת מידע

קל מאד לפרוס את המחרוזתקל מאד לפרוס את המחרוזתהבינארית למרכיביה ולשחזר את הבינארית למרכיביה ולשחזר את

הטקסטהטקסט

0

0

0 1

1

1

d

a

b

c

0010011001001111001100100111

a

Page 20: דחיסת מידע

קל מאד לפרוס את המחרוזתקל מאד לפרוס את המחרוזתהבינארית למרכיביה ולשחזר את הבינארית למרכיביה ולשחזר את

הטקסטהטקסט

0

0

0 1

1

1

d

a

b

c

0,0,10100110010011101100100111

ab

Page 21: דחיסת מידע

קל מאד לפרוס את המחרוזתקל מאד לפרוס את המחרוזתהבינארית למרכיביה ולשחזר את הבינארית למרכיביה ולשחזר את

הטקסטהטקסט

0

0

0 1

1

1

d

a

b

c

0,10,0,10,0011001001111100100111

aba

Page 22: דחיסת מידע

קל מאד לפרוס את המחרוזתקל מאד לפרוס את המחרוזתהבינארית למרכיביה ולשחזר את הבינארית למרכיביה ולשחזר את

הטקסטהטקסט

0

0

0 1

1

1

d

a

b

c

0,10,0,0,10,0,11011001001110100111

abac

וכו'

Page 23: דחיסת מידע

Kraft-McMillanKraft-McMillanאי שוויון אי שוויון כדי להבטיח שפריסת מחרוזת בינארית למילים שמרכיבות אותה כדי להבטיח שפריסת מחרוזת בינארית למילים שמרכיבות אותה

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

,לכן לא כל המילים יכולות להיות קצרות; אם אחת מתקצרת, לכן לא כל המילים יכולות להיות קצרות; אם אחת מתקצרת חייבות האחרות להתארך.חייבות האחרות להתארך.

ואם נתון אוסף מילים שאורכיהן מקיימים אי שוויון זה, אפשר ואם נתון אוסף מילים שאורכיהן מקיימים אי שוויון זה, אפשר )אם צריך( לשנות את תוכני המילים כך ששום מילה לא תהיה תחילתה )אם צריך( לשנות את תוכני המילים כך ששום מילה לא תהיה תחילתה של מילה אחרת. יחס הדחיסה לא ישתנה, אך פריסת מחרוזות תהיה של מילה אחרת. יחס הדחיסה לא ישתנה, אך פריסת מחרוזות תהיה

( חביבים במיוחד.( חביבים במיוחד.prefix freeprefix freeקלה במיוחד. לכן אוספים כאלה )קלה במיוחד. לכן אוספים כאלה )

12 il

Page 24: דחיסת מידע

סכום ביניים קצר:סכום ביניים קצר:מבוקש!!!מבוקש!!!

:התאמה בין אותיות השפה שבה נכתב הספר התאמה בין אותיות השפה שבה נכתב הספר צופן:צופן למילים בינאריות.למילים בינאריות.

צופן שיקצר ככל האפשר את אורך האיחסון של הספרצופן שיקצר ככל האפשר את אורך האיחסון של הספרלאות שכיחה – מילה קצרהלאות שכיחה – מילה קצרהלאות נדירה – מילה ארוכהלאות נדירה – מילה ארוכה

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

אורכי המילים מקיימים את אי שוויון אורכי המילים מקיימים את אי שוויוןKMKM רצוי אוסף המילים שהינו רצוי אוסף המילים שהינוprefix freeprefix free

Page 25: דחיסת מידע

,Huffman, Huffmanהתשובה: על פי הפמן התשובה: על פי הפמן 19521952))))

80 100 150 250 120 100 200

180 220

330 420

580

1000

a b c d e f g

01

1

0

0 1

11

10

0

0

0000

Page 26: דחיסת מידע

,Huffman, Huffmanהתשובה: על פי הפמן התשובה: על פי הפמן 19521952))))

80 100 150 250 120 100 200

180 220

330 420

580

1000

a b c d e f g

01

1

0

0 1

11

10

0

0

0000 0001

Page 27: דחיסת מידע

,Huffman, Huffmanהתשובה: על פי הפמן התשובה: על פי הפמן 19521952))))

80 100 150 250 120 100 200

180 220

330 420

580

1000

a b c d e f g

01

1

0

0 1

11

10

0

0

0000 0001 001 100 101 1101

Page 28: דחיסת מידע

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

אות אות

מילה בינאריתמילה בינארית

aa 00000000

bb 00010001

cc 001001

dd 0101

ee 100100

ff 101101

gg 1111

Page 29: דחיסת מידע

הצפנה עם הצופן שבנינו הצפנה עם הצופן שבנינו

אות אות

מילה בינאריתמילה בינארית

aa 00000000

bb 00010001

cc 001001

dd 0101

ee 100100

ff 101101

gg 1111

defecd

0110010110000101

ביטים.16ס"ה

Page 30: דחיסת מידע

פיענוח עם הצופן שבנינופיענוח עם הצופן שבנינו

אות אות

מילה בינאריתמילה בינארית

aa 00000000

bb 00010001

cc 001001

dd 0101

ee 100100

ff 101101

gg 1111

0110010110000101

d g

0

0

0

0

1

1

1

1

0 1

a b

c

0 1

e f

Page 31: דחיסת מידע

פיענוח עם הצופן שבנינופיענוח עם הצופן שבנינו

אות אות

מילה בינאריתמילה בינארית

aa 00000000

bb 00010001

cc 001001

dd 0101

ee 100100

ff 101101

gg 1111

01,10010110000101

d g

0

0

0

0

1

1

1

1

0 1

a b

c

0 1

e f

d

Page 32: דחיסת מידע

פיענוח עם הצופן שבנינופיענוח עם הצופן שבנינו

אות אות

מילה בינאריתמילה בינארית

aa 00000000

bb 00010001

cc 001001

dd 0101

ee 100100

ff 101101

gg 1111

01,100,10110000101

d g

0

0

0

0

1

1

1

1

0 1

a b

c

0 1

e f

d e

Page 33: דחיסת מידע

פיענוח עם הצופן שבנינופיענוח עם הצופן שבנינו

אות אות

מילה בינאריתמילה בינארית

aa 00000000

bb 00010001

cc 001001

dd 0101

ee 100100

ff 101101

gg 1111

01,100,101,10000101

d g

0

0

0

0

1

1

1

1

0 1

a b

c

0 1

e f

d e f

Page 34: דחיסת מידע

פיענוח עם הצופן שבנינופיענוח עם הצופן שבנינו

אות אות

מילה בינאריתמילה בינארית

aa 00000000

bb 00010001

cc 001001

dd 0101

ee 100100

ff 101101

gg 1111

01,100,101,100,00101

d g

0

0

0

0

1

1

1

1

0 1

a b

c

0 1

e f

d e f e

Page 35: דחיסת מידע

פיענוח עם הצופן שבנינופיענוח עם הצופן שבנינו

אות אות

מילה בינאריתמילה בינארית

aa 00000000

bb 00010001

cc 001001

dd 0101

ee 100100

ff 101101

gg 1111

01,100,101,100,001,01

d g

0

0

0

0

1

1

1

1

0 1

a b

c

0 1

e f

d e f e c

Page 36: דחיסת מידע

פיענוח עם הצופן שבנינופיענוח עם הצופן שבנינו

אות אות

מילה בינאריתמילה בינארית

aa 00000000

bb 00010001

cc 001001

dd 0101

ee 100100

ff 101101

gg 1111

01,100,101,100,001,01

d g

0

0

0

0

1

1

1

1

0 1

a b

c

0 1

e f

d e f e c d

Page 37: דחיסת מידע

מה יתן הפמן עבור הסדרהמה יתן הפמן עבור הסדרה{ { a,b,c,da,b,c,d}}שלנו מעל שלנו מעל

abacabadabacabadabacabadabacabad

8 4 2 2

a b c d

4

8

16

00

0 1

1

1

0 10 110 111

Page 38: דחיסת מידע

כמה טוב הוא צופן הפמן?כמה טוב הוא צופן הפמן?

שום צופן אחר אינו נותן דחיסה שום צופן אחר אינו נותן דחיסה

טובה יותר מצופן הפמן. טובה יותר מצופן הפמן.

Page 39: דחיסת מידע

כמה טוב הוא צופן הפמןכמה טוב הוא צופן הפמןבמושגים של שכיחויות האותיותבמושגים של שכיחויות האותיות

רוצים לקצר את המילים המותאמות לאותיות רוצים לקצר את המילים המותאמות לאותיות השכיחות, ולהאריך את המילים המותאמות השכיחות, ולהאריך את המילים המותאמות

לאותיות הנדירות. לאותיות הנדירות. ? אבל כמה לקצר וכמה להאריך ? אבל כמה לקצר וכמה להאריך לאות ששכיחות ההופעה שלה היא יש : לאות ששכיחות ההופעה שלה היא יש שנוןשנון :

להתאים מילה בינארית באורך ביטיםלהתאים מילה בינארית באורך ביטים

,צופן הפמן, שיוצר אורכים שלמים, כמובן, צופן הפמן, שיוצר אורכים שלמים, כמובן מתקרב לאורכים אלהמתקרב לאורכים אלה

p

1log2

p

Page 40: דחיסת מידע

Claude Elwood ShannonClaude Elwood Shannon 1916 -20011916 -2001

A Mathematical Theory of Communication )1948(

Page 41: דחיסת מידע

שנון: אנטרופיה של מקורשנון: אנטרופיה של מקור אם מקור חסר זיכרון פולט אות : אם מקור חסר זיכרון פולט אות שנוןשנון :

בהסתברות )ולכן היא שכיחות ההופעה בהסתברות )ולכן היא שכיחות ההופעה של בכל טקסט ארוך מספיק( יש להתאים ל של בכל טקסט ארוך מספיק( יש להתאים ל

מילה בינארית באורך מילה בינארית באורך

ואז, התוחלת של מספר הביטים שמוקצים לאות ואז, התוחלת של מספר הביטים שמוקצים לאות מקור היא: מקור היא:

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

לאות מקור )יחס הדחיסה( נמוך מהאנטרופיה לאות מקור )יחס הדחיסה( נמוך מהאנטרופיה

ip

12log

ip

ip1

2log

ipia

ia ipia

Page 42: דחיסת מידע

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

11

Page 43: דחיסת מידע

ואולי אות היא שצריכים להסתכל על שתי ואולי אות היא שצריכים להסתכל על שתי אותיות?אותיות?

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

הטקסט להקשר שלהן בטקסט, כלומר לזהות האותיות הטקסט להקשר שלהן בטקסט, כלומר לזהות האותיות הסמוכות להן בטקסט.הסמוכות להן בטקסט.

במקום להתאים מילה בינארית לכל אות בשפה, נתאים מילה במקום להתאים מילה בינארית לכל אות בשפה, נתאים מילהבינארית לכל זוג אותיות. למשל:בינארית לכל זוג אותיות. למשל:

האותיות, עבור הטקסט האותיות, עבור הטקסט 44בשפה בת בשפה בת ababacacababadadababacacababadad :תוך שימוש בצופן שבטבלה:תוך שימוש בצופן שבטבלה:נייצר את המחרוזת הבינארית:נייצר את המחרוזת הבינארית001010001111001010001111

ביטים. ביטים.1212ס"ה ס"ה – )ביטים.( ביטים.(2828)עם מילה לכל אות בודדת )אפילו עם מילים שונות אורך( – )עם מילה לכל אות בודדת )אפילו עם מילים שונות אורך

abab00

acac1010

adad1111

Page 44: דחיסת מידע

ומה יש לשנון להגיד על זה ?ומה יש לשנון להגיד על זה ?

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

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

של של AA מעל הא"ב מעל הא"ב nn הוא האוסף בן המחרוזות באורך הוא האוסף בן המחרוזות באורך

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

((nn=1=1במקום על אותיות בודדות )עבורן במקום על אותיות בודדות )עבורן

nAn p

pn

)(

1)( 2log

1lim

nA

)(p

)(p

nA

Page 45: דחיסת מידע

אז אייך מספרים סיפור בקיצור ?אז אייך מספרים סיפור בקיצור ? מכבירים מילים על האירועים המפתיעים, אלה מכבירים מילים על האירועים המפתיעים, אלה

שההסתברות שיקרו )כפי שמעריכים אותה לפני שההסתברות שיקרו )כפי שמעריכים אותה לפני פרוץ סדרת האירועים( – נמוכהפרוץ סדרת האירועים( – נמוכה

ומקצרים בתיאור הארועים הצפויים ומקצרים בתיאור הארועים הצפויים במהדורת חדשות מכבירים יותר מילים על אירוע במהדורת חדשות מכבירים יותר מילים על אירוע

בו איש נשך כלב מאשר על אירוע בו כלב נשך בו איש נשך כלב מאשר על אירוע בו כלב נשך איש.איש.

שנון: כמות המידע בדווח על קרות אירוע שנון: כמות המידע בדווח על קרות אירוע שההסתברות )א-פריורי( שיקרה היא הינהשההסתברות )א-פריורי( שיקרה היא הינה

p

12log

p

Page 46: דחיסת מידע

איך )עוד( מספרים סיפור בקיצוראיך )עוד( מספרים סיפור בקיצור

אומרים: היום, כל מה שקרה לי דומה למה אומרים: היום, כל מה שקרה לי דומה למה שקרה לי אתמול, או ביום שלישי שעבר, חוץ שקרה לי אתמול, או ביום שלישי שעבר, חוץ

מתוספת קטנה אחת, והיא ...מתוספת קטנה אחת, והיא ... למפל וזיו, שני פרופסורים מהטכניון, פרסמו למפל וזיו, שני פרופסורים מהטכניון, פרסמו

, שיטות לדחיסת ספרים , שיטות לדחיסת ספרים 19781978 ו- ו- 19771977בשנים בשנים )או תוכניות מחשב, או כל קובץ של אותיות( )או תוכניות מחשב, או כל קובץ של אותיות(

מבלי למצוא קודם את השכיחות היחסית של מבלי למצוא קודם את השכיחות היחסית של האותיות )או תתי-המחרוזות( בקובץ אותו האותיות )או תתי-המחרוזות( בקובץ אותו

רוצים לדחוס.רוצים לדחוס.

Page 47: דחיסת מידע

19781978האלגוריתם של למפל וזיו האלגוריתם של למפל וזיו

מפסקים את הסדרה הנתונה לפסקאות שונות זו מזו, מפסקים את הסדרה הנתונה לפסקאות שונות זו מזו, פסקה אחרי פסקה, מראשית המחרוזת אל סופה, פסקה אחרי פסקה, מראשית המחרוזת אל סופה,

כך שכל אחת מהפסקאות מורכבת מפסקה כך שכל אחת מהפסקאות מורכבת מפסקה שפוסקה קודם לכן פלוס האות שבאה אחריהשפוסקה קודם לכן פלוס האות שבאה אחריה

תודה לכרמל ולאוהד

Page 48: דחיסת מידע

19781978האלגוריתם של למפל וזיו האלגוריתם של למפל וזיו

במקום כל פסקה, כותבים את מספר הפסקה שלה היא דומה במקום כל פסקה, כותבים את מספר הפסקה שלה היא דומה )"בדיוק כמו ביום שלישי שעבר"( ואת האות )"בדיוק כמו ביום שלישי שעבר"( ואת האות

הנוספת )"חוץ מתוספת קטנה אחת והיא.."(הנוספת )"חוץ מתוספת קטנה אחת והיא.."(

הוא היום בו לא קרה כלום( הוא היום בו לא קרה כלום(00))

Page 49: דחיסת מידע

עוזר מאד עוזר מאד TrieTrieגם פה ה-גם פה ה-

aaababbbaaabaaaaaaabaabb

Page 50: דחיסת מידע

a,aababbbaaabaaaaaaabaabb

עוזר מאד עוזר מאד TrieTrieגם פה ה-גם פה ה-

0

1

a

(0,a)

Page 51: דחיסת מידע

a,aa,babbbaaabaaaaaaabaabb

עוזר מאד עוזר מאד TrieTrieגם פה ה-גם פה ה-

0

1

a

2

a

(0,a()1,a)

Page 52: דחיסת מידע

a,aa,b,abbbaaabaaaaaaabaabb

עוזר מאד עוזר מאד TrieTrieגם פה ה-גם פה ה-

0

1

a

2

a3

b

(0,a()1,a()0,b)

Page 53: דחיסת מידע

a,aa,b,ab,bbaaabaaaaaaabaabb

עוזר מאד עוזר מאד TrieTrieגם פה ה-גם פה ה-

0

1

a

2

a3

b

4

b

(0,a()1,a()0,b()1,b)

Page 54: דחיסת מידע

a,aa,b,ab,bb,aaabaaaaaaabaabb

עוזר מאד עוזר מאד TrieTrieגם פה ה-גם פה ה-

0

1

a

2

a3

b

4

b

5

b

(0,a()1,a()0,b()1,b()3,b)

Page 55: דחיסת מידע

a,aa,b,ab,bb,aaa,baaaaaaabaabb

עוזר מאד עוזר מאד TrieTrieגם פה ה-גם פה ה-

0

1

a

2

a3

b

4

b

5

b

6

a

(0,a()1,a()0,b()1,b()3,b()2,a)

Page 56: דחיסת מידע

a,aa,b,ab,bb,aaa,ba,aaaaaabaabb

עוזר מאד עוזר מאד TrieTrieגם פה ה-גם פה ה-

0

1

a

2

a3

b

4

b

5

b

6

a7

a

(0,a()1,a()0,b()1,b()3,b()2,a()3,a)

Page 57: דחיסת מידע

a,aa,b,ab,bb,aaa,ba,aaaa,aabaabb

עוזר מאד עוזר מאד TrieTrieגם פה ה-גם פה ה-

0

1

a

2

a3

b

4

b

5

b

6

a7

a

8

a(0,a()1,a()0,b()1,b()3,b()2,a()3,a()6,a)

Page 58: דחיסת מידע

a,aa,b,ab,bb,aaa,ba,aaaa,aab,aabb

עוזר מאד עוזר מאד TrieTrieגם פה ה-גם פה ה-

0

1

a

2

a3

b

4

b

5

b

6

a7

a

8

a9

b

(0,a()1,a()0,b()1,b()3,b()2,a()3,a()6,a()2,b)

Page 59: דחיסת מידע

עוזר מאד עוזר מאד TrieTrieגם פה ה-גם פה ה-

a,aa,b,ab,bb,aaa,ba,aaaa,aab,aabb

0

1

a

2

a3

b

4

b

5

b

6

a7

a

8

a9

b

10

b

(0,a()1,a()0,b()1,b()3,b()2,a()3,a()6,a()2,b()9,b)

Page 60: דחיסת מידע

הפלט מתורגם לבינאריתהפלט מתורגם לבינארית

i2log

(0,a()1,a()0,b()1,b()3,b()2,a()3,a()6,a()2,b()9,b)

a,1a,00b,01b,011b,010a,011a,110a,0010b,1001b, על פני ביטיםi-1 ל- 0, ניצג את האינדקס, שהוא תמיד מספר בין iבזוג ה-

1 2 3 4 5 6 7 8 9 10נמספר את הקטעים המפוסקים מהסדרה

0,10,001,011,0111,0100,0110,1100,00101,10011נחליף כל אות ב- ביטים, כאשר הוא גודל הא"ב של הטקסט. בדוגמא שלנו,

ו- { a,b}הא"ב הוא

01000101101110100011011000010110011נמחק את הפסיקים

ארוך יותר מהטקסט המקורי… אבל לקבצים גדולים ישנה התכנסות מוכחת לאנטרופיה

2log2

Page 61: דחיסת מידע

למעשה, אפשר לייצר פלט בינארילמעשה, אפשר לייצר פלט בינאריעבור כל קטע מיד לאחר הגדרתועבור כל קטע מיד לאחר הגדרתו

כאשר אנו מזהים )תוך ירידה בעץ( קטע חדש כאשר אנו מזהים )תוך ירידה בעץ( קטע חדש ואחריו ואחריו ))jj ) )j < ij < iומזהים אותו כקטע ומזהים אותו כקטע , , ii-- קטע -- קטע

jj, אנו יכולים להוציא מיד את היצוג של , אנו יכולים להוציא מיד את היצוג של ccהתו התו על פניעל פני

ביטים, ולאחריו את היצוג הבינארי של ביטים, ולאחריו את היצוג הבינארי של cc.על פני ביטים נוספים. על פני ביטים נוספים ביטים אלה שנוציא, נשרשר אל קצה המחרוזת ביטים אלה שנוציא, נשרשר אל קצה המחרוזת

הבינארית שאנו יוצרים.הבינארית שאנו יוצרים.

i2log

2log

Page 62: דחיסת מידע

מבני נתוניםמבני נתונים -בד"כ ה- בד"כ ה TrieTrie .מספיק. מספיק קובץ מחשב אותו נרצה לדחוס, אשר כולל לא רק טקסט קובץ מחשב אותו נרצה לדחוס, אשר כולל לא רק טקסט

באנגלית, אלא גם נתונים בינאריים, אפשר לראותו כאילו היה באנגלית, אלא גם נתונים בינאריים, אפשר לראותו כאילו היה אותיות, כלומר מחרוזת של אותיות, כלומר מחרוזת של 256256מחרוזת טקסט מעל א"ב בן מחרוזת טקסט מעל א"ב בן

בתים.בתים..בד"כ זהו אופן העיבוד: בית אחרי בית, ולא ביט אחרי ביט. בד"כ זהו אופן העיבוד: בית אחרי בית, ולא ביט אחרי ביט -מכיוון שכך, הרי שכל צומת ב- מכיוון שכך, הרי שכל צומת בTrieTrie 256256 צריך להכיל עד צריך להכיל עד

קשתות, כל קשתות, כל 256256מצביעים לילדיו; כלומר, מכל צומת יצאו עד מצביעים לילדיו; כלומר, מכל צומת יצאו עד אותיות. אותיות.256256אחת מסומנת באות אחרת מהא"ב בן ה- אחת מסומנת באות אחרת מהא"ב בן ה-

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

המקובל הוא מצביע יחיד מכל צומת – אל בנו הבכור, ומבכור המקובל הוא מצביע יחיד מכל צומת – אל בנו הבכור, ומבכור זה – מצביע אל אחיו, ומאח זה – אל אחיו הבא, וכו' לאורך כל זה – מצביע אל אחיו, ומאח זה – אל אחיו הבא, וכו' לאורך כל

האחים שהם ילדיו בפועל של הצומת האב. בהתווסף ילד האחים שהם ילדיו בפועל של הצומת האב. בהתווסף ילד חדש, הוא מתקשר לאחרון האחים.חדש, הוא מתקשר לאחרון האחים.

.פתרון זה יקר בזמן ריצה, אך זול יחסית בנפח זיכרון. פתרון זה יקר בזמן ריצה, אך זול יחסית בנפח זיכרון

Page 63: דחיסת מידע

ואייך מפענחים?ואייך מפענחים?נתונה מחרוזת בינארית, צריך לייצר נתונה מחרוזת בינארית, צריך לייצר

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

, שאורכו אות אחת – , שאורכו אות אחת – 11ומייצרים את הקטע הראשון, קטע מס' ומייצרים את הקטע הראשון, קטע מס' היא האות המיוצגת על ידי הביטים שקראנו. נרשום אות זו כאות היא האות המיוצגת על ידי הביטים שקראנו. נרשום אות זו כאות

הראשונה של הטקסט אותו אנו משחזרים.הראשונה של הטקסט אותו אנו משחזרים. נניח שפענחנו ושרשרנו את כל הקטעים עד לקטע נניח שפענחנו ושרשרנו את כל הקטעים עד לקטעii-1-1.. כדי כדי

, נקרא, ראשית ביטים מהמחרוזת , נקרא, ראשית ביטים מהמחרוזת iiלפענח את הקטע ה-לפענח את הקטע ה-, של קטע , של קטע j<ij<i עבור עבור jjהבינארית. אלה מייצגים את המספר הסידורי הבינארית. אלה מייצגים את המספר הסידורי

שכבר מוכר לנו. נדביק קטע זה אל סוף הטקסט שאנו משחזרים. שכבר מוכר לנו. נדביק קטע זה אל סוף הטקסט שאנו משחזרים. נקרא עוד ביטים מהמחרוזת הבינארית, אלה מיצגים נקרא עוד ביטים מהמחרוזת הבינארית, אלה מיצגים

, ונדביקה אל סוף הטקסט שאנו משחזרים. , ונדביקה אל סוף הטקסט שאנו משחזרים. ccאות שנקרא לה אות שנקרא לה , אשר מורכב משרשור הקטע , אשר מורכב משרשור הקטע iiבכך סיימנו לפענח את הקטע ה-בכך סיימנו לפענח את הקטע ה-

, ואף הדבקנו אותו אל סוף הטקסט שאנו משחזרים., ואף הדבקנו אותו אל סוף הטקסט שאנו משחזרים.cc והאות והאות jjה-ה- עם סיום קריאת המחרוזת הבינארית כולה, נסיים לשחזר את עם סיום קריאת המחרוזת הבינארית כולה, נסיים לשחזר את

הטקסט.הטקסט.

2log

2log

i2log

Page 64: דחיסת מידע

מבני נתונים לפיענוחמבני נתונים לפיענוח

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

: אל : אל TT שני אינדקסים אל תוך שני אינדקסים אל תוך iiבשורה ה-בשורה ה- iiהמקום הראשון והאחרון שתופס בו הקטע ה-המקום הראשון והאחרון שתופס בו הקטע ה-

שמגדיר האלגוריתם.שמגדיר האלגוריתם.

Page 65: דחיסת מידע

סוד הדחיסהסוד הדחיסה

Variable to FixedVariable to Fixed ( ( Huffman is Fixed to VariableHuffman is Fixed to Variable))

קטעים קצרים וארוכים מקבלים אותה מילה בינארית: קטעים קצרים וארוכים מקבלים אותה מילה בינארית: מספר סידורי אל תוך אוסף הקטעים שנוצר עד כהמספר סידורי אל תוך אוסף הקטעים שנוצר עד כה

קטעים שכיחים מתארכים וקטעים נדירים – לא קטעים שכיחים מתארכים וקטעים נדירים – לא

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

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

ההקשרים השונים.ההקשרים השונים.

Page 66: דחיסת מידע

האלגוריתמים של למפל וזיוהאלגוריתמים של למפל וזיו מחרוזת מבלי מחרוזת מבלי לכללכלטוב טוב אוניברסאלי – אוניברסאלי – אלגוריתם אלגוריתם

להתכונן אליה מראש או ללמוד את שכיחות אותיותיה להתכונן אליה מראש או ללמוד את שכיחות אותיותיה ותת-מחרוזותיה.ותת-מחרוזותיה.

הוכח אופטימאלי לסדרות ארוכות מאד, נמצא בפועל הוכח אופטימאלי לסדרות ארוכות מאד, נמצא בפועלטוב ויעיל. )תופס את תכונתנו לחזור על עצמנו בסדרות טוב ויעיל. )תופס את תכונתנו לחזור על עצמנו בסדרות

שאנו מיצרים(שאנו מיצרים(19771977 -משמש ב- משמש ב WinzipWinzip, 1978, 1978 -ב- ב CompressCompress של של UnixUnixשניהם בסטנדרטים של תקשורת בין מחשביםשניהם בסטנדרטים של תקשורת בין מחשביםנוצרו חומרות רבות לביצועםנוצרו חומרות רבות לביצועם מהפכה בתחום: עידן שיטות הדחיסה עם מילון, להבדיל מהפכה בתחום: עידן שיטות הדחיסה עם מילון, להבדיל

מעידן הדחיסה הסטטיסטית. מעידן הדחיסה הסטטיסטית.

Page 67: דחיסת מידע

הערות לסכוםהערות לסכום ככל שנצליח לדחוס יותר, הרי שתפסנו טוב יותר את ככל שנצליח לדחוס יותר, הרי שתפסנו טוב יותר את

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

שיטות של למידה ממוחשבת כדי לנסות להבין את שיטות של למידה ממוחשבת כדי לנסות להבין את המודל, בהנתן הטקסט שפלט.המודל, בהנתן הטקסט שפלט.

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

חזרות ועם פרטים לא חשובים.חזרות ועם פרטים לא חשובים.