Θεʙρία Πληροφορίας και Κʙδίκʙν...

36
Πανεπιστήμιο Ιωαννίνων Τμήμα Μηχανικών Η/Υ και Πληροφορικής Μέθοδοι Lempel-Ziv Αλγόριθμοι LZ77 και LZ78 από τους J. Ziv και A. Lempel (1977, 1978) Οι ίδιοι και παραλλαγές τους χρησιμοποιούνται σε: UNIX (εντολή compress) συμπίεση εικόνων (αρχεία GIF) συμπίεση modem (V.42) rar και gzip Δημιουργία λεξικού on line με βάση την ήδη κωδικοποιημένη ακολουθία κινούμενο παράθυρο Εύκολη υλοποίηση Γρήγορη αποκωδικοποίηση και ελάχιστη απάιτηση μνήμης Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Transcript of Θεʙρία Πληροφορίας και Κʙδίκʙν...

Page 1: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

Μέθοδοι Lempel-Ziv

• Αλγόριθμοι LZ77 και LZ78 από τους J. Ziv και A. Lempel (1977, 1978)

• Οι ίδιοι και παραλλαγές τους χρησιμοποιούνται σε:

– UNIX (εντολή compress)

– συμπίεση εικόνων (αρχεία GIF)

– συμπίεση modem (V.42)

– rar και gzip

• Δημιουργία λεξικού on line

– με βάση την ήδη κωδικοποιημένη ακολουθία

– κινούμενο παράθυρο

• Εύκολη υλοποίηση

• Γρήγορη αποκωδικοποίηση και ελάχιστη απάιτηση μνήμης

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Page 2: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

LZ77 – Κωδικοποίηση

• Το κινούμενο παράθυρο αποτελείται από

– Την περιοχή αναζήτησης (search buffer)

– Την περιοχή προτύπου (look-ahead buffer)

• Ο αλγόριθμος αναζητάει στην περιοχή αναζήτησης ταιριάσματα με το τρέχον σύμβολο και τα επόμενά του της περιοχής προτύπου

• Αποθηκεύει: <offset, length, next>

– offset: απόσταση από την τρέχουσα θέση προς τα πίσω

– length: αριθμός συμβόλων που ταιριάζουν

– next: το επόμενο σύμβολο

– χρειάζεται στην περίπτωση που δεν υπάρχει ταίριασμα

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Page 3: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

LZ77 – Κωδικοποίηση (παράδειγμα)

• Ακολουθία: αβααβαβααββ

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Βufferssearch|look-ahead

Ταίριασμα μεταξύτων παραθύρων

Κώδικας(<offset, length, next>)

Τμήμα που έχει κωδικοποιηθεί

|αβααβαβααββ

Page 4: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

LZ77 – Κωδικοποίηση (παράδειγμα)

• Ακολουθία: αβααβαβααββ

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Βufferssearch|look-ahead

Ταίριασμα μεταξύτων παραθύρων

Κώδικας(<offset, length, next>)

Τμήμα που έχει κωδικοποιηθεί

|αβααβαβααββ |αβααβαβααββ

Page 5: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

LZ77 – Κωδικοποίηση (παράδειγμα)

• Ακολουθία: αβααβαβααββ

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Βufferssearch|look-ahead

Ταίριασμα μεταξύτων παραθύρων

Κώδικας(<offset, length, next>)

Τμήμα που έχει κωδικοποιηθεί

|αβααβαβααββ |αβααβαβααββ <0,0,α>

Page 6: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

LZ77 – Κωδικοποίηση (παράδειγμα)

• Ακολουθία: αβααβαβααββ

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Βufferssearch|look-ahead

Ταίριασμα μεταξύτων παραθύρων

Κώδικας(<offset, length, next>)

Τμήμα που έχει κωδικοποιηθεί

|αβααβαβααββ |αβααβαβααββ <0,0,α> αβααβαβααββ

Page 7: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

LZ77 – Κωδικοποίηση (παράδειγμα)

• Ακολουθία: αβααβαβααββ

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Βufferssearch|look-ahead

Ταίριασμα μεταξύτων παραθύρων

Κώδικας(<offset, length, next>)

Τμήμα που έχει κωδικοποιηθεί

|αβααβαβααββ |αβααβαβααββ <0,0,α> αβααβαβααββ

α|βααβαβααββ

Page 8: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

LZ77 – Κωδικοποίηση (παράδειγμα)

• Ακολουθία: αβααβαβααββ

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Βufferssearch|look-ahead

Ταίριασμα μεταξύτων παραθύρων

Κώδικας(<offset, length, next>)

Τμήμα που έχει κωδικοποιηθεί

|αβααβαβααββ |αβααβαβααββ <0,0,α> αβααβαβααββ

α|βααβαβααββ α|βααβαβααββ

Page 9: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

LZ77 – Κωδικοποίηση (παράδειγμα)

• Ακολουθία: αβααβαβααββ

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Βufferssearch|look-ahead

Ταίριασμα μεταξύτων παραθύρων

Κώδικας(<offset, length, next>)

Τμήμα που έχει κωδικοποιηθεί

|αβααβαβααββ |αβααβαβααββ <0,0,α> αβααβαβααββ

α|βααβαβααββ α|βααβαβααββ <0,0,β>

Page 10: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

LZ77 – Κωδικοποίηση (παράδειγμα)

• Ακολουθία: αβααβαβααββ

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Βufferssearch|look-ahead

Ταίριασμα μεταξύτων παραθύρων

Κώδικας(<offset, length, next>)

Τμήμα που έχει κωδικοποιηθεί

|αβααβαβααββ |αβααβαβααββ <0,0,α> αβααβαβααββ

α|βααβαβααββ α|βααβαβααββ <0,0,β> αβααβαβααββ

Page 11: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

LZ77 – Κωδικοποίηση (παράδειγμα)

• Ακολουθία: αβααβαβααββ

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Βufferssearch|look-ahead

Ταίριασμα μεταξύτων παραθύρων

Κώδικας(<offset, length, next>)

Τμήμα που έχει κωδικοποιηθεί

|αβααβαβααββ |αβααβαβααββ <0,0,α> αβααβαβααββ

α|βααβαβααββ α|βααβαβααββ <0,0,β> αβααβαβααββ

αβ|ααβαβααββ

Page 12: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

LZ77 – Κωδικοποίηση (παράδειγμα)

• Ακολουθία: αβααβαβααββ

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Βufferssearch|look-ahead

Ταίριασμα μεταξύτων παραθύρων

Κώδικας(<offset, length, next>)

Τμήμα που έχει κωδικοποιηθεί

|αβααβαβααββ |αβααβαβααββ <0,0,α> αβααβαβααββ

α|βααβαβααββ α|βααβαβααββ <0,0,β> αβααβαβααββ

αβ|ααβαβααββ αβ|ααβαβααββ

Page 13: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

LZ77 – Κωδικοποίηση (παράδειγμα)

• Ακολουθία: αβααβαβααββ

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Βufferssearch|look-ahead

Ταίριασμα μεταξύτων παραθύρων

Κώδικας(<offset, length, next>)

Τμήμα που έχει κωδικοποιηθεί

|αβααβαβααββ |αβααβαβααββ <0,0,α> αβααβαβααββ

α|βααβαβααββ α|βααβαβααββ <0,0,β> αβααβαβααββ

αβ|ααβαβααββ αβ|ααβαβααββ <2,1,α>

Page 14: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

LZ77 – Κωδικοποίηση (παράδειγμα)

• Ακολουθία: αβααβαβααββ

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Βufferssearch|look-ahead

Ταίριασμα μεταξύτων παραθύρων

Κώδικας(<offset, length, next>)

Τμήμα που έχει κωδικοποιηθεί

|αβααβαβααββ |αβααβαβααββ <0,0,α> αβααβαβααββ

α|βααβαβααββ α|βααβαβααββ <0,0,β> αβααβαβααββ

αβ|ααβαβααββ αβ|ααβαβααββ <2,1,α> αβααβαβααββ

Page 15: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

LZ77 – Κωδικοποίηση (παράδειγμα)

• Ακολουθία: αβααβαβααββ

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Βufferssearch|look-ahead

Ταίριασμα μεταξύτων παραθύρων

Κώδικας(<offset, length, next>)

Τμήμα που έχει κωδικοποιηθεί

|αβααβαβααββ |αβααβαβααββ <0,0,α> αβααβαβααββ

α|βααβαβααββ α|βααβαβααββ <0,0,β> αβααβαβααββ

αβ|ααβαβααββ αβ|ααβαβααββ <2,1,α> αβααβαβααββ

αβαα|βαβααββ

Page 16: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

LZ77 – Κωδικοποίηση (παράδειγμα)

• Ακολουθία: αβααβαβααββ

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Βufferssearch|look-ahead

Ταίριασμα μεταξύτων παραθύρων

Κώδικας(<offset, length, next>)

Τμήμα που έχει κωδικοποιηθεί

|αβααβαβααββ |αβααβαβααββ <0,0,α> αβααβαβααββ

α|βααβαβααββ α|βααβαβααββ <0,0,β> αβααβαβααββ

αβ|ααβαβααββ αβ|ααβαβααββ <2,1,α> αβααβαβααββ

αβαα|βαβααββ αβαα|βαβααββ

Page 17: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

LZ77 – Κωδικοποίηση (παράδειγμα)

• Ακολουθία: αβααβαβααββ

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Βufferssearch|look-ahead

Ταίριασμα μεταξύτων παραθύρων

Κώδικας(<offset, length, next>)

Τμήμα που έχει κωδικοποιηθεί

|αβααβαβααββ |αβααβαβααββ <0,0,α> αβααβαβααββ

α|βααβαβααββ α|βααβαβααββ <0,0,β> αβααβαβααββ

αβ|ααβαβααββ αβ|ααβαβααββ <2,1,α> αβααβαβααββ

αβαα|βαβααββ αβαα|βαβααββ <3,2,β>

Page 18: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

LZ77 – Κωδικοποίηση (παράδειγμα)

• Ακολουθία: αβααβαβααββ

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Βufferssearch|look-ahead

Ταίριασμα μεταξύτων παραθύρων

Κώδικας(<offset, length, next>)

Τμήμα που έχει κωδικοποιηθεί

|αβααβαβααββ |αβααβαβααββ <0,0,α> αβααβαβααββ

α|βααβαβααββ α|βααβαβααββ <0,0,β> αβααβαβααββ

αβ|ααβαβααββ αβ|ααβαβααββ <2,1,α> αβααβαβααββ

αβαα|βαβααββ αβαα|βαβααββ <3,2,β> αβααβαβααββ

Page 19: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

LZ77 – Κωδικοποίηση (παράδειγμα)

• Ακολουθία: αβααβαβααββ

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Βufferssearch|look-ahead

Ταίριασμα μεταξύτων παραθύρων

Κώδικας(<offset, length, next>)

Τμήμα που έχει κωδικοποιηθεί

|αβααβαβααββ |αβααβαβααββ <0,0,α> αβααβαβααββ

α|βααβαβααββ α|βααβαβααββ <0,0,β> αβααβαβααββ

αβ|ααβαβααββ αβ|ααβαβααββ <2,1,α> αβααβαβααββ

αβαα|βαβααββ αβαα|βαβααββ <3,2,β> αβααβαβααββ

αβααβα|βααββ

Page 20: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

LZ77 – Κωδικοποίηση (παράδειγμα)

• Ακολουθία: αβααβαβααββ

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Βufferssearch|look-ahead

Ταίριασμα μεταξύτων παραθύρων

Κώδικας(<offset, length, next>)

Τμήμα που έχει κωδικοποιηθεί

|αβααβαβααββ |αβααβαβααββ <0,0,α> αβααβαβααββ

α|βααβαβααββ α|βααβαβααββ <0,0,β> αβααβαβααββ

αβ|ααβαβααββ αβ|ααβαβααββ <2,1,α> αβααβαβααββ

αβαα|βαβααββ αβαα|βαβααββ <3,2,β> αβααβαβααββ

αβααβα|βααββ αβααβαβ|ααββ

Page 21: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

LZ77 – Κωδικοποίηση (παράδειγμα)

• Ακολουθία: αβααβαβααββ

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Βufferssearch|look-ahead

Ταίριασμα μεταξύτων παραθύρων

Κώδικας(<offset, length, next>)

Τμήμα που έχει κωδικοποιηθεί

|αβααβαβααββ |αβααβαβααββ <0,0,α> αβααβαβααββ

α|βααβαβααββ α|βααβαβααββ <0,0,β> αβααβαβααββ

αβ|ααβαβααββ αβ|ααβαβααββ <2,1,α> αβααβαβααββ

αβαα|βαβααββ αβαα|βαβααββ <3,2,β> αβααβαβααββ

αβααβα|βααββ αβααβαβ|ααββ <5,3,β>

Page 22: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

LZ77 – Κωδικοποίηση (παράδειγμα)

• Ακολουθία: αβααβαβααββ

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Βufferssearch|look-ahead

Ταίριασμα μεταξύτων παραθύρων

Κώδικας(<offset, length, next>)

Τμήμα που έχει κωδικοποιηθεί

|αβααβαβααββ |αβααβαβααββ <0,0,α> αβααβαβααββ

α|βααβαβααββ α|βααβαβααββ <0,0,β> αβααβαβααββ

αβ|ααβαβααββ αβ|ααβαβααββ <2,1,α> αβααβαβααββ

αβαα|βαβααββ αβαα|βαβααββ <3,2,β> αβααβαβααββ

αβααβα|βααββ αβααβαβ|ααββ <5,3,β> αβααβαβααββ

Page 23: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

LZ77 – Αποκωδικοποίηση (παράδειγμα)

• Αποκωδικοποίηση ακολουθίας: αβααβαβααββ

• Κώδικας: <0,0,α> <0,0,β><2,1,α><3,2,β><5,3,β>

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Κώδικας(<offset, length,

next>)

Ακολουθία

<0,0,α> |

<0,0,β>

<2,1,α>

<3,2,β>

<5,3,β>

Page 24: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

LZ77 – Αποκωδικοποίηση (παράδειγμα)

• Αποκωδικοποίηση ακολουθίας: αβααβαβααββ

• Κώδικας: <0,0,α> <0,0,β><2,1,α><3,2,β><5,3,β>

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Κώδικας(<offset, length,

next>)

Ακολουθία

<0,0,α> |α

<0,0,β>

<2,1,α>

<3,2,β>

<5,3,β>

Page 25: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

LZ77 – Αποκωδικοποίηση (παράδειγμα)

• Αποκωδικοποίηση ακολουθίας: αβααβαβααββ

• Κώδικας: <0,0,α> <0,0,β><2,1,α><3,2,β><5,3,β>

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Κώδικας(<offset, length,

next>)

Ακολουθία

<0,0,α> α|

<0,0,β>

<2,1,α>

<3,2,β>

<5,3,β>

Page 26: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

LZ77 – Αποκωδικοποίηση (παράδειγμα)

• Αποκωδικοποίηση ακολουθίας: αβααβαβααββ

• Κώδικας: <0,0,α> <0,0,β><2,1,α><3,2,β><5,3,β>

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Κώδικας(<offset, length,

next>)

Ακολουθία

<0,0,α> α|

<0,0,β> α|β

<2,1,α>

<3,2,β>

<5,3,β>

Page 27: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

LZ77 – Αποκωδικοποίηση (παράδειγμα)

• Αποκωδικοποίηση ακολουθίας: αβααβαβααββ

• Κώδικας: <0,0,α> <0,0,β><2,1,α><3,2,β><5,3,β>

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Κώδικας(<offset, length,

next>)

Ακολουθία

<0,0,α> α|

<0,0,β> αβ|

<2,1,α>

<3,2,β>

<5,3,β>

Page 28: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

LZ77 – Αποκωδικοποίηση (παράδειγμα)

• Αποκωδικοποίηση ακολουθίας: αβααβαβααββ

• Κώδικας: <0,0,α> <0,0,β><2,1,α><3,2,β><5,3,β>

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Κώδικας(<offset, length,

next>)

Ακολουθία

<0,0,α> α|

<0,0,β> αβ|

<2,1,α>

<3,2,β>

<5,3,β>

Page 29: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

LZ77 – Αποκωδικοποίηση (παράδειγμα)

• Αποκωδικοποίηση ακολουθίας: αβααβαβααββ

• Κώδικας: <0,0,α> <0,0,β><2,1,α><3,2,β><5,3,β>

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Κώδικας(<offset, length,

next>)

Ακολουθία

<0,0,α> α|

<0,0,β> αβ|

<2,1,α> αβ|αα

<3,2,β>

<5,3,β>

Page 30: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

LZ77 – Αποκωδικοποίηση (παράδειγμα)

• Αποκωδικοποίηση ακολουθίας: αβααβαβααββ

• Κώδικας: <0,0,α> <0,0,β><2,1,α><3,2,β><5,3,β>

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Κώδικας(<offset, length,

next>)

Ακολουθία

<0,0,α> α|

<0,0,β> αβ|

<2,1,α> αβαα|

<3,2,β>

<5,3,β>

Page 31: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

LZ77 – Αποκωδικοποίηση (παράδειγμα)

• Αποκωδικοποίηση ακολουθίας: αβααβαβααββ

• Κώδικας: <0,0,α> <0,0,β><2,1,α><3,2,β><5,3,β>

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Κώδικας(<offset, length,

next>)

Ακολουθία

<0,0,α> α|

<0,0,β> αβ|

<2,1,α> αβαα|

<3,2,β>

<5,3,β>

Page 32: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

LZ77 – Αποκωδικοποίηση (παράδειγμα)

• Αποκωδικοποίηση ακολουθίας: αβααβαβααββ

• Κώδικας: <0,0,α> <0,0,β><2,1,α><3,2,β><5,3,β>

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Κώδικας(<offset, length,

next>)

Ακολουθία

<0,0,α> α|

<0,0,β> αβ|

<2,1,α> αβαα|

<3,2,β> αβαα|βαβ

<5,3,β>

Page 33: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

LZ77 – Αποκωδικοποίηση (παράδειγμα)

• Αποκωδικοποίηση ακολουθίας: αβααβαβααββ

• Κώδικας: <0,0,α> <0,0,β><2,1,α><3,2,β><5,3,β>

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Κώδικας(<offset, length,

next>)

Ακολουθία

<0,0,α> α|

<0,0,β> αβ|

<2,1,α> αβαα|

<3,2,β> αβααβαβ|

<5,3,β>

Page 34: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

LZ77 – Αποκωδικοποίηση (παράδειγμα)

• Αποκωδικοποίηση ακολουθίας: αβααβαβααββ

• Κώδικας: <0,0,α> <0,0,β><2,1,α><3,2,β><5,3,β>

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Κώδικας(<offset, length,

next>)

Ακολουθία

<0,0,α> α|

<0,0,β> αβ|

<2,1,α> αβαα|

<3,2,β> αβααβαβ|

<5,3,β>

Page 35: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

LZ77 – Αποκωδικοποίηση (παράδειγμα)

• Αποκωδικοποίηση ακολουθίας: αβααβαβααββ

• Κώδικας: <0,0,α> <0,0,β><2,1,α><3,2,β><5,3,β>

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Κώδικας(<offset, length,

next>)

Ακολουθία

<0,0,α> α|

<0,0,β> αβ|

<2,1,α> αβαα|

<3,2,β> αβααβαβ|

<5,3,β> αβααβαβ|ααββ

Page 36: Θεʙρία Πληροφορίας και Κʙδίκʙν ...cs.uoi.gr/~cnikou/Courses/Information_Theory/Lempel-Ziv-code-exa… · Πανεπισʐήμιο Ιʙαννίνʙν Τμήμα

Πανεπιστήμιο ΙωαννίνωνΤμήμα Μηχανικών Η/Υ και Πληροφορικής

LZ77 – Αποκωδικοποίηση (παράδειγμα)

• Αποκωδικοποίηση ακολουθίας: αβααβαβααββ

• Κώδικας: <0,0,α> <0,0,β><2,1,α><3,2,β><5,3,β>

Θεωρία Πληροφορίας και Κωδίκων Χριστόφορος Νίκου

Κώδικας(<offset, length,

next>)

Ακολουθία

<0,0,α> α|

<0,0,β> αβ|

<2,1,α> αβαα|

<3,2,β> αβααβαβ|

<5,3,β> αβααβαβααββ|