Το Πρότυπο Συμπίεσης MPEG

 

Εισαγωγή στη μέθοδο συμπίεσης ψηφιακού video και ήχου MPEG

 

Η ανάγκη για ψηφιακή συμπίεση

 

Με δεδομένη την oλοένα και αυξανόμενη χρήση της ψηφιακής τεχνολογίας, η οποία αντικαθιστά την αναλογική που παραδοσιακά χρησιμοποιείται εδώ και δεκαετίες στις τηλεπικοινωνίες, την τηλεόραση, την ηχογράφηση και αναπαραγωγή της μουσικής αλλά και σε άλλους τομείς, έχει αρχίσει παράλληλα να γίνεται έρευνα και προς την κατεύθυνση της συμπίεσης της ψηφιακής πληροφορίας, με στόχο την οικονομία εύρους φάσματος (bandwidth). Οι λόγοι για τους οποίους είναι όχι απλά χρήσιμη αλλά απαραίτητη η ανάπτυξη αυτών των τεχνικών συμπίεσης δεν είναι ίσως τόσο προφανείς, γι’ αυτό ας εξετάσουμε μερικά παραδείγματα που φανερώνουν την επιτακτική ανάγκη για επέκταση της εφαρμογής της ψηφιακής συμπίεσης, τόσο στην εικόνα όσο και στον ήχο (δύο μορφές επικοινωνίας που παράγουν αυξημένο όγκο ψηφιακής πληροφορίας).  

Eνα κανονικό ασυμπίεστο τηλεοπτικό σήμα PAL καταλαμβάνει ένα  bandwidth περίπου 5 MHz. 'Eστω ότι θέλουμε να το μεταδώσουμε ψηφιακά. Για να μην έχουμε απώλεια πληροφορίας (που μεταφράζεται σε μείωση της ποιότητας της εικόνας) πρέπει σύμφωνα με το θεώρημα Nyquist να κάνουμε τη δειγματοληψία στη διπλάσια συχνότητα, δηλαδή στα 10 MHz. Για να έχουμε επαρκή ευκρίνεια (resolution) πρέπει κάθε δείγμα να έχει τουλάχιστον 8 bits (28=256 επίπεδα κωδικοποίησης). Μέχρι στιγμής έχουμε 10*8=80 Mbits/sec. Αν και ήδη αντιμετωπίζουμε πρόβλημα μετάδοσης σε μία τόσο υψηλή ταχύτητα, το πρόβλημα είναι μεγαλύτερο αν θέλουμε να έχουμε καλύτερη ευκρίνεια, οπότε θα χρησιμοποιήσουμε δείγματα των 16, ή 24 bits και φυσικά μέχρι στιγμής αναφερόμαστε σε ασπρόμαυρη εικόνα. Αν θέλουμε να έχουμε και χρώμα ο όγκος της ψηφιακής πληροφορίας γίνεται τριπλάσιος (αφού κάθε χρώμα σχηματίζεται σα συνδυασμός των τριών βασικών χρωμάτων πράσινο, κόκκινο, μπλέ - μιλώντας πάντα για ασυμπίεστα σήματα). Συνεπώς χρειαζόμαστε τουλάχιστον 3*80=240 Mbits/sec (30 MB/sec).

Για να καταλάβει κανείς το μέγεθος του bandwidth που χρειάζεται αρκεί να το συγκρίνει με την ταχύτητα μεταφοράς (transfer rate) δεδομένων από/προς τον επεξεργαστή μέσα σε ένα computer (που γίνεται στις περισσότερες περιπτώσεις με ISA bus) η οποία δεν μπορεί να ξεπεράσει τα  40 Μbit/sec (5 MB/sec) είναι δηλαδή 6 φορές πιο μικρή από όσο χρειαζόμαστε. Ακόμα και με τη χρήση SCSI bus το πρόβλημα παραμένει. Στην περίπτωση των CD/ROM τα πράγματα γίνονται ακόμα πιο δύσκολα αφού αυτά φτάνουν μέχρι 10 Μbit/sec (24 φορές πιο μικρή ταχύτητα). Έτσι παρόλο που είναι δυνατή (αν και πρακτικά ασύμφορη) η μετάδοση του παραπάνω σήματος (π.χ. μέσω δικτύων ΑΤΜ) είναι αδύνατη η αποθήκευση και αναπαραγωγή του.

Αλλά δεν είναι μόνο το transfer rate που κάνει αδύνατη την αξιοποίηση της παραπάνω μετάδοσης. Αρκεί να αναλογιστούμε ότι για την αποθήκευση ενός τυπικού κινηματογραφικού film που διαρκεί 90 λεπτά (90*60=5400 δευτερόλεπτα), θα χρειαζόμασταν αποθηκευτικό μέσο ικανό να αποθηκεύσει τα 30*5400=162 GΒ. Δηλαδή πρέπει να χρησιμοποιήσουμε περίπου 65 σκληρούς δίσκους computer, χωρητικότητας 2,5 GΒ (μία τυπική χωρητικότητα για τα σημερινά δεδομένα).

Άλλο παράδειγμα που δείχνει το πρόβλημα αποθήκευσης είναι το γνωστό σε όλους μας CD. Εκεί αποθηκεύονται περίπου 75 λεπτά ασυμπίεστου στερεοφωνικού ψηφιακού ήχου με συχνότητα δειγματοληψίας 44.1 KHz και ακρίβεια 16-bit. Δεδομένου ότι έχουμε δύο ανεξάρτητα κανάλια, ο συνολικός όγκος πληροφορίας είναι περίπου 650 MB. Αν όμως το CD χρησιμοποιηθεί για την αποθήκευση ψηφιακού video τότε μπορεί να χωρέσει το πολύ 30 δευτερόλεπτα. Ακόμα και τα νεότερης επινόησης DVD (Digital Video Disk) τα οποία είναι CD με χωρητικότητα 4.7 GB (δηλαδή 7 φορές πιο μεγάλη από το ‘κανονικό’ CD), δεν επαρκούν για την αποθήκευση μιας κινηματογραφικής ταινίας 90 λεπτών ασυμπίεστου ψηφιακού video αφού χρειαζόμαστε τουλάχιστον 35 DVD.

Όλα τα παραπάνω κάνουν φανερό ότι υπάρχει πρόβλημα τόσο μετάδοσης όσο και αποθήκευσης του ασυμπίεστου ψηφιακού σήματος video (άρα και του ήχου που το συνοδεύει, παρ’ όλο που καταλαμβάνει πολύ λιγότερο όγκο). Μόνο στην περίπτωση του μουσικού CD το πρόβλημα αποθήκευσης έχει λυθεί και έχει δημιουργηθεί ένα standard που επιτρέπει την αποθήκευση του ήχου σε ψηφιακή ασυμπίεστη μορφή. Ακόμα και σε αυτή την περίπτωση όμως το πρόβλημα μετάδοσης του ήχου ποιότητας CD παραμένει (εδώ εννοούμε τη μετάδοση σε ευρύτερα δίκτυα όπως το Internet ή την τηλεοπτική μετάδοση μέσω δορυφόρων, όπου η ανάγκη για οικονομία bandwidth είναι δεδομένη). Άρα είναι φανερό ότι πρέπει να γίνουν προσπάθειες για τη σημαντική μείωση του όγκου της ψηφιακής πληροφορίας αλλά χωρίς να γίνουν μεγάλοι συμβιβασμοί στην ποιότητα του ήχου και της εικόνας. 

 

Το πρότυπο συμπίεσης MPEG

 Τα αρχικά MPEG προέρχονται από τις λέξεις Moving Picture Experts Group (Ομάδα Ειδικών στην Κινούμενη Εικόνα) . Πρόκειται για  μία επιτροπή που δρα στα πλαίσια του Διεθνούς Οργανισμού τυποποίησης. Επίσημα είναι γνωστή σαν ISO/IEC JTC1/SC29/WG11. Ιδρύθηκε το 1988  και είναι μέλος του JTC1 (Joint ISO/IEC Technical Committee on Information Technology - Ενωμένη Τεχνική επιτροπή ΙSO/IEC στην Τεχνολογία της Πληροφορικής) . Ο συντονιστής της επιτροπής MPEG είναι ο Leonardo Chiariglione γνωστός σαν ο «πατέρας» του MPEG. Η επιτροπή πραγματοποιεί 3 - 4 συναντήσεις το χρόνο σε διάφορες πόλεις του κόσμου όπου συζητούνται οι εξελίξεις της ερευνητικής δουλειάς που έχει γίνει ενδιάμεσα, θέτονται στόχοι και προθεσμίες και διατυπώνονται οι προδιαγραφές πάνω στις οποίες οι εταιρίες θα αναπτύξουν τα προϊόντα.

Το όνομα MPEG έχει επικρατήσει όμως να αναφέρεται και στην οικογένεια των τυποποιήσεων (standards) που δημιουργήθηκαν από την ομάδα MPEG και χρησιμοποιούνται γιά τη μετάδοση οπτικών και ηχητικών δεδομένων σε ψηφιακή συμπιεσμένη μορφή. Η οικογένεια MPEG περιλαμβάνει τα standards MPEG-1, MPEG-2 και τo επερχόμενo MPEG-4, τα οποία είναι επίσημα γνωστά σαν ISO/IEC-11172, ISO/IEC-13818 και ISO/IEC-14496 αντίστοιχα. Πιο αναλυτικά :

 

·       MPEG-1      Coding of moving pictures and associated audio for digital storage media at up to about 1,5 Mbit/s. Αναπτύχθηκε για την αποθήκευση και ανάκτηση κινούμενης εικόνας και ήχου σε ψηφιακά μέσα με ρυθμό μετάδοσης μέχρι 1,5 Μbits/sec. H εικόνα έχει ανάλυση 352x240 pixels (NTSC) ή 352x288 pixels (PAL) και η ποιότητά της είναι σε επίπεδα VHS video. Χρησιμοποιείται κυρίως για την αποθήκευση video σε CD-ROM, Video-CD και CD-i και όπου αλλού χρειάζεται μικρό (σε σχέση με το MPEG-2) bandwidth. To MPEG-1 μπορεί να χρησιμοποιηθεί σε εφαρμογές με ρυθμό μετάδοσης 4-5 Mbits/sec, αλλά τα αποτελέσματα δεν είναι τόσο καλά, όσο στην κανονική περιοχή λειτουργίας του.

 ·       MPEG-2      Generic coding of moving pictures and associated audio information. Aναπτύχθηκε για εφαρμογή στην ψηφιακή τηλεόραση. H βασική ανάλυση της εικόνας ακολουθεί το τηλεοπτικό πρότυπο CCIR-601 (broadcast quality - ποιότητα εκπομπής) δηλαδή 704x480 pixels (NTSC) ή 704x576 pixels (PAL) και υποστηρίζει εικόνα πλεκτής σάρωσης (interlaced). Ο ρυθμός μετάδοσης κυμαίνεται από 3 ως 10 Mbits/sec. Οι εφαρμογές του είναι στην καλωδιακή τηλεόραση (CableTV), στη δορυφορική (Direct Broadcasting Satellite TV) αλλά αναμένεται να επεκταθεί και στην επίγεια τηλεόραση. Επίσης χρησιμοποιείται στην αποθήκευση κινηματογραφικών ταινιών στα DVD (Digital Video Disk). 

 ·       MPEG-4      Coding of audio-visual objects. Ο όρος audio visual objects (AV-objects) είναι γενικός και  σημαίνει διάφορες οντότητες που απαρτίζουν την εικόνα και οι οποίες μπορούν κωδικοποιητής και αποκωδικοποιητής να χειρισθούν αυτόνομα και ανεξάρτητα από τις υπόλοιπες. Με τον όρο οντότητες πάλι εννοούμε σχήματα και ήχους, φυσικούς ή computer generated που χρησιμοποιούνται για να αναπαραστήσουν άλλα ομοειδή αντικείμενα. Είναι ένα standard για εφαρμογές επικοινωνίας πολυμέσων (multimedia comunications) δηλαδή εφαρμογές όπως video-phone, video-conference, video e-mail, electronic news και πολλές άλλες. Η ανάλυση της εικόνας είναι 176x144 pixels σε  σχετικά  χαμηλούς ρυθμούς μετάδοσης που κυμαίνονται ανάμεσα στα 4.8 και 64 Κbits/sec, κατάλληλα δηλαδή για μετάδοση σε δίκτυα με μικρό διαθέσιμο bandwidth ανά συνδρομητή, όπως το Internet.

 

Επίσης υπάρχει στα σχέδια και το MPEG-7 που είναι ένα standard κωδικοποίησης με αναπαράσταση περιεχομένου (content representation), για την αναζήτηση πληροφοριών σε εφαρμογές πολυμέσων.

Να σημειωθεί ότι οι αναλύσεις (resolution) της εικόνας που αναφέρθηκαν παραπάνω δεν είναι περιοριστικές αλλά αναφέρονται στους περιορισμούς που έχουν τεθεί για να κρατηθούν σε λογικά επίπεδα η πολυπλοκότητα των κωδικοποιητών και αποκωδικοποιητών και ο όγκος δεδομένων. Ο περιορισμός αυτός ονομάζεται CPB (Constrained Parameters Bitstream) και ορίζει τις διαστάσεις που πρέπει να έχουν τα MPEG σήματα, κάτι σαν ένα standard format. Παρόλα αυτά μπορεί να γίνει κωδικοποίηση και σε υψηλότερες αναλύσεις απλώς δεν υπάρχει εγγύηση ότι θα μπορούν να χρησιμοποιηθούν με όλους τους διαθέσιμους αποκωδικοποιητές, άσχετα αν ακολουθούν τους κανόνες του MPEG. Ετσι το MPEG-2 π.χ. μπορεί να φτάσει ανάλυση (resolution) 1920x1080 και το MPEG-1 4095x4095. Επίσης το γεγονός ότι τα σήματα MPEG εμφανίζονται σε δύο διαφορετικές αναλύσεις (διαστάσεις) εικόνας οφείλεται στην ύπαρξη δύο συστημάτων για το αναλογικό σήμα, τα PAL και NTSC, με δειγματοληψία των οποίων προκύπτουν τα σήματα MPEG. Ακόμα δεν έχει γίνει σημαντική πρόοδος στην κατεύθυνση της δημιουργίας πηγών (κάμερες κτλ.) που θα παράγουν σήμα MPEG απευθείας.

Τα δύο τελευταία στάδια του MPEG είναι ακόμα υπό ανάπτυξη και δεν έχουν γίνει ακόμα standards (το MPEG-4 δεν έχει γίνει ακόμα standard και το MPEG-7 είναι ακόμα στα προκαταρκτικά σχέδια) ενώ τα MPEG-1 και MPEG-2 έχουν τεθεί ήδη σε εκτεταμένη εφαρμογή. Σε γενικές γραμμές το MPEG-1 έχει αντικατασταθεί από το MPEG-2 το οποίο είναι μια βελτίωση του, που προσφέρει καλύτερη εικόνα και λόγους συμπίεσης και είναι συμβατό με το MPEG-1 (backwards compatible). Αυτό σημαίνει ότι συσκευές MPEG-2 μπορούν να χειριστούν σήματα συμπιεσμένα με MPEG-1 (αλλά όχι το αντίστροφο).

Ενδιάμεσα υπήρξε και το MPEG-3 το οποίο ήταν προσανατολισμένο στην τεχνολογία της Τηλεόρασης Υψηλής Ευκρίνειας (HDTV - Ηigh Definition TV) αλλά εγκαταλείφθηκε αφού διαπιστώθηκε ότι το MPEG-2 μπορεί με κάποιες αλλαγές στη σύνταξη των προδιαγραφών να χρησιμοποιηθεί το ίδιο καλά στη HDTV. 'Eτσι η δουλειά που είχε γίνει πάνω στο MPEG-3 ενσωματώθηκε στο MPEG-2.

Παρακάτω θα ακολουθήσει μία γενική περιγραφή των γενικών αρχών και των διαφόρων βημάτων της μεθόδου συμπίεσης που χρησιμοποιείται για το video, οι οποίες είναι κοινές και στις τρεις ‘εκδόσεις’ του MPEG. Κατόπιν θα γίνει μία σύντομη περιγραφή του τρόπου κωδικοποίησης του ήχου, ή οποία διαφέρει από αυτή του video και στις ιδιότητες πάνω στις οποίες στηρίζεται αλλά και στις μεθόδους που χρησιμοποιεί.

 

Γενικές αρχές της συμπίεσης video

 

Ποιοτική ανοχή

 Σε αντίθεση με την αντίληψη ότι η ψηφιακή μετάδοση θα πρέπει να έχει το εύρος ζώνης που χρειάζεται για να μεταδώσει και το πιο απαιτητικό πλαίσιο (frame) μιας σειράς κινούμενων εικόνων, ακόμα και αν αυτό παρουσιάζεται με συχνότητα 1%, τώρα πια κάτω από την εμπορική πίεση που υπάρχει (λόγοι κόστους) θεωρείται λογικό να  δεχόμαστε  κάποιο ποσοστό παραμόρφωσης σε τέτοιες σπάνιες σκηνές, με αντάλλαγμα να μπορούμε να χρησιμοποιήσουμε τα bit που εξοικονομούμε για την αναβάθμιση του μέσου όρου ανάλυσης του συνόλου των σκηνών. Έτσι σε αντίθεση με την ηχογράφηση ήχου σε CD, που γίνεται χωρίς καμία συμπίεση, στη συμπίεση video αναζητείται μία χρυσή τομή (sweet spot) ανάμεσα στην ποιότητα και το bandwidth που πολλές φορές βασίζεται σε υποκειμενικές μετρήσεις που γίνονται σε άτομα που θεωρούνται ικανά “δείγματα” πάνω στην εκτίμηση της εικόνα και του ήχου λόγω επαγγελματικής εμπειρίας. Αν η εμπειρία τους δεν τους επιτρέπει να αντιληφθούν σημαντικές διαφορές στην ποιότητα του κωδικοποιημένου ήχου από τον αρχικό και συγχρόνως θεωρούν ανεκτές τις ατέλειες (artifacts) της εικόνας μετά από κάποιο ποσοστό συμπίεσης, η μέθοδος και το ποσοστό αυτό θεωρούνται αποδεκτά και τυποποιούνται. Να σημειωθεί εδώ ότι ενώ ο ήχος προσφέρεται για μεγάλα ποσοστά συμπίεσης χωρίς να μπορεί να γίνει αισθητή υποβάθμιση στην ποιότητά του, στον τομέα της εικόνας τα πράγματα είναι λίγο πιο δύσκολα και οι όποιες ατέλειες είναι ορατές, απλά γίνεται προσπάθεια να μην γίνονται ενοχλητικές για το θεατή.

 

Πλεονασμός (Redundancy)

 Η βασική αρχή πάνω στην οποία στηρίζονται όλες οι μέθοδοι ψηφιακής συμπίεσης είναι το γεγονός ότι το σήμα εμπεριέχει ένα ποσοστό πλεονασμού (redundancy). Με τον όρο αυτό εννοούμε την πληροφορία που είτε μπορεί να παραληφθεί, είτε να κωδικοποιηθεί με λιγότερη ακρίβεια, χωρίς αυτό να έχει αξιοσημείωτη επίδραση στο τελικό αποτέλεσμα. Υπάρχουν δύο είδη πλεονασμού:

 

1.      Στατικός πλεονασμός (Spatial Redundancy):  Το επίπεδο του σήματος μπορεί σε κάθε δεδομένη χρονική στιγμή να πρoϋπολογιστεί από την προηγούμενη τιμή του, γιατί οι τιμές δειγμάτων της εικόνας σε μεγάλο ποσοστό σχετίζονται μεταξύ τους. Αυτό μπορούμε να το επαληθεύσουμε και εποπτικά π.χ. σε μία εικόνα του δελτίου ειδήσεων ένα μεγάλο κομμάτι της εικόνας (φόντο) παραμένει αμετάβλητο και μόνο το κομμάτι της εικόνας που καταλαμβάνει ο παρουσιαστής μεταβάλλεται ελαφρά (κινήσεις των χειλιών, των βλεφάρων κτλ). Έτσι μπορούμε να υπολογίσουμε ένα τμήμα της εικόνας από μία προηγούμενη και να προσθέσουμε απλά τις διαφορές που έχουν προκύψει χωρίς να χρειάζεται να κωδικοποιούμε σε κάθε πλαίσιο (frame) την πλεονάζουσα πληροφορία.

 

2.      Υποκειμενικός Πλεονασμός (Temporal Redundancy) :  Ανάλογα με το περιεχόμενο της εικόνας το ανθρώπινο μάτι μπορεί να ανεχτεί ένα ποσοστό παραμόρφωσης ή αλλοίωσης ορισμένων παραμέτρων της εικόνας χωρίς αυτό να γίνει αντιληπτό. Π.χ. είναι γνωστό ότι η ανθρώπινη όραση είναι γενικά πολύ πιο ευαίσθητη στη φωτεινότητα της εικόνας παρά στα χρώματα. Αντίστοιχες ιδιότητες έχει και η ακοή. Άρα μπορούμε να αφιερώσουμε λιγότερο από το διαθέσιμο bandwidth στην περιγραφή των χρωμάτων και γενικά της πλεονάζουσας πληροφορίας και αυτό να περάσει απαρατήρητο από το θεατή. Ο υποκειμενικός πλεονασμός και οι ιδιαιτερότητες της ανθρώπινης όρασης έχουν αξιοποιηθεί εδώ και δεκαετίες στην αναλογική τεχνολογία της τηλεόρασης, αλλά τώρα βρίσκουν εφαρμογή και στις ψηφιακές τεχνικές μετάδοσης.

 

DCT Coding (Discrete Cosine Transform Coding)

 Ο Διακριτός Συνημιτονικός Μετασχηματισμός (Discrete Cosine Transform) είναι μία μέθοδος που βρίσκει μεγάλη εφαρμογή  στην ψηφιακή συμπίεση γενικά αλλά και στο MPEG ειδικότερα. Με το μετασχηματισμό DCT μπορούμε να μεταφέρουμε την πληροφορία που περικλείει η εικόνα από το πεδίο του χώρου στο πεδίο της συχνότητας (αφηρημένο πεδίο), όπου η περιγραφή της μπορεί να γίνει με σημαντικά μικρότερο πλήθος bits, για διάφορους λόγους.

 Ο μετασχηματισμός DCT ορίζεται ως εξής :

Για κάθε pixel (x,y) εφαρμόζοντας τον τύπο :

 

όπου C(x) =      0.7071, x =0

1          , x >0

 παίρνουμε την τιμή DCT(i,j) που είναι η τιμή του συντελεστή του μετασχηματισμού στο πεδίο της συχνότητας. Έτσι αντιστοιχίζουμε τις τιμές των pixels στις αντίστoιχες τιμές συντελεστών.

 Οι συντελεστές αυτοί μεταφέρουν ο καθένας ένα κομμάτι της αρχικής πληροφορίας (αυτό που αντιστοιχεί στο κομμάτι του φάσματος που περιγράφει). Επειδή όμως έχει παρατηρηθεί ότι η ανθρώπινη όραση αντιλαμβάνεται πολύ περισσότερο τα φαινόμενα που σχετίζονται με χαμηλές συχνότητες όπως (π.χ. χρώματα  με μικρότερα μήκη κύματος), ενώ δείχνει κάποια ανοσία σε υψίσυχνες περιοχές του σήματος (π.χ. ακμές της εικόνας), οι συντελεστές του μετασχηματισμού που αντιστοιχούν σε χαμηλές συχνότητες έχουν μεγαλύτερη βαρύτητα από αυτούς που περιγράφουν τις υψηλές συχνότητες και για το λόγο αυτό οι πρώτοι περιγράφονται με τη μεγαλύτερη δυνατή ακρίβεια..

Κατά την αναπαραγωγή γίνεται η αντίστροφη διαδικασία με τη βοήθεια του  μετασχηματισμού IDCT (Inverse Discrete Cosine Transform - Αντίστροφος Διακριτός Μετασχηματισμός Συνημίτονων) , που περιγράφεται από τον τύπο:

 

 Το αποτέλεσμα είναι να πάρουμε πίσω σχεδόν ανέπαφη την αρχική πληροφορία (εκτός από κάποια αναπόφευκτα σφάλματα στρογγυλοποίησης).

 

Κβαντοποίηση (Quantization)

 Η μέθοδος που μας βοηθάει να απαλλαγούμε από σημαντικό μέρος της πληροφορίας είναι η κβαντοποίηση. Με τον όρο κβαντοποίηση γενικά εννοούμε τη μετατροπή ενός σήματος άπειρων (η πάρα πολλών) τιμών σε ένα σήμα ορισμένων διακριτών τιμών π.χ. η κβαντοποίηση μιας εικόνας που περιέχει εκατομμύρια χρώματα οδηγεί σε μία εικόνα που έχει 256 διαφορετικές τιμές για το χρώμα (πρότυπο JPEG). Με άλλα λόγια κβαντοποίηση είναι ο περιορισμός των bits με τα οποία περιγράφουμε τα δείγματα του σήματος (προφανώς το 256 έχει πολύ λιγότερα bits από τους τεράστιους αριθμούς με τους οποίους έπρεπε να περιγράψουμε τα δείγματά μας αν δεν γινόταν κβαντοποίηση).

Ένα παράδειγμα (με πιο «διαισθητικά» νούμερα) είναι το παρακάτω που δείχνει ταυτόχρονα με τη μεγάλη οικονομία που γίνεται και την εισαγωγή σημαντικών σφαλμάτων (για τον περιορισμό των οποίων επιστρατεύονται άλλες μέθοδοι) :

 

O αριθμός 45 είναι 101101 έχει δηλαδή 6 bits.

Με 4 bits γίνεται 1011 = 11

Με 3 bits γίνεται 101 = 5 κτλ.

 

Δηλαδή αν είχαμε διαλέξει να περιγράψουμε το σήμα με 3 bits, τιμές όπως το 45 και το 11 θα έπαιρναν την τιμή 101 (=5). Είναι προφανές ότι η κβαντοποίηση εισάγει σφάλμα ανάλογο με τον αριθμό τον bits που απορρίπτονται και κατά συνέπεια ευθύνεται στο μεγαλύτερο βαθμό γιά την απώλεια πληροφορίας κατά τη συμπίεση (lossy compression) σε αντίθεση με το μετασχηματισμό DCT που είναι μία, σε μεγάλο βαθμό αντιστρεπτή διαδικασία.

Για να περιγράψουμε όσο περισσότερες από τις τιμές του σήματος γίνεται με δοσμένο αριθμό bits, διαιρούμε τις τιμές των δειγμάτων είτε με σταθερές τιμές (uniform quantization)  είτε με πίνακες κβαντοποίησης (quantization tables). Στη συγκεκριμένη περίπτωση, δηλαδή στο πρότυπο MPEG χρησιμοποιείται η δεύτερη μέθοδος και μάλιστα υπάρχει ένας πίνακας για τα πλαίσια που έχουν κωδικοποιηθεί με ενδοπλαισιακή (intra-frame coding) και ένας για αυτά με δια-πλαισιακή (inter-frame coding).  

 

Τμηματική Πρόβλεψη Κίνησης (Block Motion Compensation)

     Ένας τρόπος με τον οποίο μπορούμε να περιγράψουμε πιο αποτελεσματικά εικόνες με κίνηση είναι η τμηματική πρόβλεψη κίνησης. Με τη βοήθεια αυτής της μεθόδου μπορούμε να εκτελέσουμε τη δια-πλαισιακή  (inter-frame) κωδικοποίηση και να περιγράψουμε την αλληλουχία εικόνων ως σειρά ομοιοτήτων και διαφορών. Για παράδειγμα στο παρακάτω σχήμα έχουμε μία σκακιέρα σε δύο φάσεις που διαφέρουν μεταξύ τους στο ότι κάποια πιόνια έχουν μετακινηθεί.

Εναλλακτικά με το να κωδικοποιήσουμε ανεξάρτητα τα δύο πλαίσια μπορούμε να περιγράψουμε τη δεύτερη εικόνα με το να τη χωρίσουμε σε ίσα τμήματα και να φτιάξουμε ένα πίνακα που να περιέχει τμήματα που έχουν μείνει ίδια και διανύσματα που να δείχνουν τη νέα θέση των τμημάτων που άλλαξαν θέση. Έτσι αν έχουμε ήδη αποστείλει την πρώτη εικόνα μπορούμε να στείλουμε τη δεύτερη σαν ένα πίνακα 20 διανυσμάτων και ορισμένων σταθερών τμημάτων, που προφανώς έχει πολύ μικρότερο μέγεθος.

Το παραπάνω είναι μία καλή προσέγγιση της μεθόδου αλλά στην πραγματικότητα οι πραγματικές εικόνες δεν θα είναι τόσο όμοιες μεταξύ τους όσο η σκακιέρα. Θα έχουν κάποια κοινά τμήματα που αλλάζουν θέση από πλαίσιο σε πλαίσιο αλλά θα υπάρχουν και τμήματα που αλλάζουν θέση διατηρώντας το σχήμα τους αλλά μεταβάλλεται το χρώμα τους, καθώς και άλλα που δεν υπάρχουν σε προηγούμενο πλαίσιο αλλά εμφανίζονται σε κάποιο για πρώτη φορά. Για την κάλυψη αυτών των περιπτώσεων χρησιμοποιείται μία πιο βελτιωμένη εκδοχή της παραπάνω ιδέας (ή για την ακρίβεια διάφορες εκδοχές της παραπάνω ιδέας).

Η σύνταξη του MPEG καθορίζει πως θα αναπαρίσταται η πληροφορία για την κίνηση του κάθε macroblock, ότι θα γίνεται δηλαδή αυτή η αναπαράσταση με τη χρήση διανυσμάτων κίνησης, αλλά δεν καθορίζει πως τα διανύσματα αυτά θα υπολογίζονται και για το λόγο αυτό εμφανίζονται διάφορες υλοποιήσεις της μεθόδου εύρεσης των διανυσμάτων κίνησης οι οποίες στηρίζονται όλες στην ελαχιστοποίηση μίας συνάρτησης που υπολογίζει την ταύτιση του τρέχοντος με το macroblock αναφοράς.

Αν και μπορεί να χρησιμοποιηθεί κάθε συνάρτηση σφάλματος που υπάρχει, η πιο συχνά χρησιμοποιούμενη συνάρτηση είναι η Απόλυτη Διαφορά (AE - Absolute Error) η οποία δίνεται από τον παρακάτω τύπο :

 

Στην παραπάνω εξίσωση το f(i,j) και g(i,j) αντιπροσωπεύουν τις συντεταγμένες των pixels στο τρέχον και το macroblock αναφοράς αντίστοιχα. Το macroblock αναφοράς που καθορίζεται από το διάνυσμα (dx,dy) αντιπροσωπεύει την περιοχή αναζήτησης. Το macroblock που παράγει το μικρότερο σφάλμα αντιστοιχεί στην τιμή του διανύσματος που ψάχνουμε.

Η πιο απλή διορατικά αλλά και η πιο πολύπλοκη από πλευράς υπολογιστικής πολυπλοκότητας  είναι η πλήρης αναζήτηση (full search) η οποία καλύπτει κάθε pixel στην περιοχή αναζήτησης.

Για να μειωθεί λίγο η υπολογιστική πολυπλοκότητα έχει επινοηθεί η μέθοδος  αναζήτησης τριών βημάτων (TSS - Three Step Search). Ο αλγόριθμος υπολογίζει την απόλυτη διαφορά (AE) στο κέντρο και σε οχτώ περιοχές της περιοχής αναζήτησης που είναι 32x32 pixels. Η περιοχή που θα έχει τη μικρότερη απόλυτη διαφορά γίνεται το κέντρο για την επόμενη αναζήτηση, η οποία έτσι έχει το μισό μέγεθος. Η διαδικασία αυτή επαναλαμβάνεται τρεις φορές, όπως φαίνεται στο παρακάτω σχήμα (η περιοχή του κάθε βήματος περικλείεται από σημεία που φέρουν την αντίστοιχη αρίθμηση).

 

Σχήμα 5-2: Motion Compensation με χρήση του Trhree Step Search

 

Ανατομία του σήματος ΜPEG

 Ένα σήμα κωδικoποιημένο με MPEG αποτελείται από τρία επίπεδα: system, video και audio, όπως φαίνεται παρακάτω :

Σχήμα 5-3: Σχηματικό διάγραμμα αποκωδικοποιητή MPEG.

 

·       Το επίπεδο system περιλαμβάνει πληροφορίες σχετικά με το συγχρονισμό, την τυχαία), ελέγχει τη ροή του σήματος για να  μην παρατηρείται έλλειψη ή πλεονασμός δεδομένων, παρέχει πληροφορίες για σημεία αναφοράς που διευκολύνουν την τυχαία προσπέλαση (random access) και τέλος περιέχει πληροφορίες για το διαχωρισμό του video από το audio και γιά την συγχρονισμένη απεικόνισή τους.

·       Τα επίπεδα video και audio περιέχουν κωδικοποιημένη την εικόνα και τον ήχο αντίστοιχα.

 

Η κωδικοποίηση αυτών των επιπέδων μπορεί να έχει γίνει ταυτόχρονα ή ξεχωριστά. Σε κάθε περίπτωση, τα δεδομένα των τριών επιπέδων συνενώνονται σε ένα ενιαίο σήμα (bit-stream) μέσω μιας διαδικασίας που ονομάζεται πολυπλεξία (multiplexing ή muxing). H αντίστροφη διαδικασία ονομάζεται demultiplexing  (ή demuxing). Μερικά συστήματα κάνουν την πολυπλεξία σε πραγματικό χρόνο (real-time) και άλλα όχι.

Η διαδικασία της κωδικοποίησης και αποκωδικοποίησης του MPEG  γίνεται με hardware ή με software. Η λύση του software είναι πιο φθηνή αλλά έχει μειονέκτημα στον τομέα της ποιότητας της εικόνας και απαιτεί αρκετά ισχυρούς υπολογιστές για να λειτουργήσει (Pentium). Η λύση του hardware είναι ακριβότερη, βασίζεται σε υλοποιήσεις των διαφόρων μεθόδων με ολοκληρωμένα VLSI και παράγει αυτόνομα συστήματα (κωδικοποιητές ή αποκωδικοποιητές) που δεν χρειάζονται υπολογιστή για να λειτουργήσουν, ενώ ταυτόχρονα έχουν πολύ καλή ποιότητα εικόνας.

Είναι σημαντικό να σημειώσουμε ότι οι περισσότερες μέθοδοι κωδικοποίησης video όπως Cinepak, Indeo, Motion-JPEG,  στηρίζονται στις μεθόδους συμπίεσης ακίνητης εικόνας JPEG (Joint Photographic Experts Group), αντιμετωπίζοντας την κινούμενη εικόνα σαν μια σειρά από διαδοχικές ακίνητες εικόνες. Η μέθοδος MPEG αν και δανείζεται σε μεγάλο βαθμό τις βασικές αρχές του JPEG επεκτείνει την προσέγγιση αυτή και περιγράφει την παράμετρο της κίνησης με ένα πιο λεπτομερή και αποτελεσματικό τρόπο από τις άλλες μεθόδους, με ευεργετικά αποτελέσματα από πλευράς ποσοστού συμπίεσης.

Προκειμένου να γίνει η επεξεργασία της εικόνας και η διαδικασία πρόβλεψης της κίνησης, το κάθε πλαίσιο (frame) της εικόνας χωρίζεται σε τμήματα που ονομάζονται slices. Τα slices περιέχουν μία σειρά macroblocks, οποία όπως φανερώνει και το όνομά τους περιέχουν μία σειρά από blocks. Τα blocks είναι τμήματα της εικόνας διαστάσεων 8x8.

Ο ρόλος των slices είναι να περιορίσουν τη διάδοση των λαθών (error propagation). Αν ένα slice ληφθεί με λάθος παραλείπεται χωρίς να χάνουμε όλη την εικόνα. Γενικά τα slices βοηθούν στην απόκρυψη των σφαλμάτων (error concealment).

Το κάθε macroblock περιέχει ένα πίνακα με πληροφορίες φωτεινότητας (16x16) και δύο πίνακες του μισού μεγέθους (8x8) για το χρώμα.

 

Πιο αναλυτικά : όπως είναι γνωστό από την αναλογική τεχνολογία της τηλεόρασης και για λόγους που έχουν ήδη αναφερθεί, για την κωδικοποίηση της εικόνας δε χρησιμοποιούμε τρία ανεξάρτητα σήματα για τις συνιστώσες R,G,B παρόλο που κάθε χρώμα μπορεί να περιγραφεί από αυτές και άλλo ένα για τη φωτεινότητα, αλλά στην πράξη χρησιμοποιείται μόνο αυτό της φωτεινότητας (Υ) και δύο άλλα (Cr) και (Cb) που περιέχουν τις πληροφορίες για τα R,G,B αν συνδυαστούν με τη φωτεινότητα σύμφωνα με τους παρακάτω τύπους :

Y = 0,30R + O,59G + 0,14B                                          

Cr = 0,74(R-Y) - 0,27(B-Y) = 0,60R + 0,28G + 0,32B     

Cb = 0,48(R-Y) + 0,41(B-Y) = 0,21R + 0,52G + 0,31B    (γιά το NTSC)

και

Y = 0,30R + O,59G + 0,11B                                          

Cr = 0,493(B-Y) = -0,15R - 0,29G + 0,44B         

Cb = 0,877(R-Y) = 0,62R - 0,52G - 0,10B (για το PAL)

* Να σημειώσουμε ότι αυτό το μοντέλο είναι αυτό που συναντάται πιο  συχνά. Παρ’ όλα αυτά στις μέρες μας γίνεται πρόοδος και στον τομέα της αναλογικής τεχνολογίας της εικόνας και έχουν εισαχθεί νέες αναλογικές τεχνικές όπως το S-VHS όπου οι τρεις συνιστώσες του σήματος μεταδίδονται με τρία διαφορετικά σήματα.

 

Τα σήματα  Cr και Cb δειγματοληπτούνται στα 6,75 Ηz και το Υ στα 13,5 Hz (δηλαδή στη διπλή συχνότητα). Και οι δύο συχνότητες πάντως έχουν επιλεγεί γιατί είναι πολλαπλάσια του 2,25 Hz που είναι το ελάχιστο κοινό πολλαπλάσιο των γραμμών των πλαισίων PAL και NTSC (525/2*25 και 625/2*30) και αυτό γιατί σύμφωνα με τηλεοπτικά πρότυπα πρέπει ο ρυθμός δειγματοληψίας να είναι ο ίδιος ανεξάρτητα με τη συχνότητα του αναλογικού σήματος.

Αντίστοιχα στην ψηφιακή τους μορφή τα τρία αυτά σήματα έχουν την παρακάτω μορφή για κάθε macroblock, δηλαδή τρεις πίνακες (blocks), ένας 16x16 και δύο 8x8, που δείχνουν τις τιμές φωτεινότητας και χρώματος για τα pixels του block.

Πάνω στους πίνακες αυτούς εφαρμόζεται ο μετασχηματισμός  DCT και οι υπόλοιπες διαδικασίες συμπίεσης καθώς και η διαδικασία της πρόβλεψης της κίνησης.

 

Είδη πλαισίων (frames)

 

Δύο βασικές προσεγγίσεις στην κωδικοποίηση της κινούμενης εικόνας είναι οι παρακάτω. Η πρώτη είναι βασισμένη στη μέθοδο συμπίεσης ακίνητης εικόνας JPEG και η δεύτερη στην τμηματική πρόβλεψη κίνησης (block motion compensation) :

Ενδο-πλαισιακή Κωδικοποίηση (Intra-frame Coding):

Σύμφωνα με αυτή την προσέγγιση η κάθε εικόνα (frame) αντιμετωπίζεται σαν αυτόνομη μονάδα και κωδικοποιείται ανεξάρτητα από τις υπόλοιπες, οπότε το τελικό σήμα είναι μία σειρά από διακριτές ακίνητες εικόνες.

Δια-πλαισιακή Κωδικοποίηση (Inter-frame Coding):

Λαμβάνονται κατά την κωδικοποίηση υπ’ όψη οι πιθανές ομοιότητες μεταξύ των πλαισίων και κωδικοποιείται η διαφορά τους με χρήση του block motion compensation. Eτσι στο τελικό σήμα υπάρχει μία εξάρτηση μεταξύ των πλαισίων αφού για να αποκωδικοποιηθεί κάποιο πιθανώς να πρέπει να ληφθούν πληροφορίες και από κάποιο άλλο (προηγούμενο ή επόμενο). Γίνεται έτσι πολύ μεγαλύτερη συμπίεση, αφού μόνο οι διαφορές μεταξύ των πλαισίων κωδικοποιούνται.

Σε ένα σήμα (bit-stream) MPEG υπάρχουν τριών ειδών πλαίσια :

 

Ι (Intra frames) : Tο είδος αυτό των πλαισίων κάνει χρήση του intra frame-coding. Τα πλαίσια τύπου Ι είναι τα μόνα που είναι κωδικοποιημένα στο σύνολό τους και η αποκωδικοποίηση μπορεί να γίνει χωρίς αναφορά σε κάποιο άλλο. Είναι κατά συνέπεια τα μεγαλύτερα σε μήκος και αποτελούν σημεία αναφοράς κατά την τυχαία προσπέλαση ενός σήματος. Επειδή η παρουσία τους είναι απαραίτητη σα σημείο χρονικής αναφοράς και για να αποφευχθεί η διάδοση των σφαλμάτων που δημιουργούν τα P πλαίσια επιβάλλεται να μεταδίδονται ανά τακτά χρονικά πλαίσια. Eτσι υπάρχει ένα I πλαίσιο τουλάχιστον κάθε 15 πλαίσια (δηλαδή δύο φόρες το δευτερόλεπτο αν η συχνότητα είναι 30 Hz).

Η διαδικασία της κωδικοποίησης ενός I πλαισίου φαίνεται στο παρακάτω σχήμα. Η εικόνα χωρίζεται σε macroblocks και για κάθε block ξεχωριστά εφαρμόζεται DCT, Κβαντοποίηση, Zig-Zag Scanning,Run-Length-Encoding και Huffman Encoding (οι μέθοδοι αυτοί θα εξεταστούν ξεχωριστά παρακάτω).

 

P (Predicted frames) : Τα πλαίσια τύπου P είναι βασισμένα σε ένα προηγούμενο I ή P πλαίσιο. Με τη βοήθεια του motion compensation προβλέπουν τη νέα θέση όποιων macroblocks έχουν απλά μετακινηθεί και κωδικοποιούν τον αριθμό του macroblock και ένα διάνυσμα κίνησης. Με τη σειρά τους μπορούν να αποτελέσουν και αυτά σημείο αναφοράς για επόμενα πλαίσια και αυτός είναι και ο λόγος που συμβάλλουν στην εισαγωγή και διάδοση σφαλμάτων, αφού η διαδικασία της πρόβλεψης κίνησης δεν μπορεί να είναι 100% ακριβής. Δεν έχουν το μέγεθος των I πλαισίων γιατί δεν έχουν περιγραφεί με την ίδια ακρίβεια, δηλαδή παρουσιάζουν μεγαλύτερο ποσοστό συμπίεσης. Η διαδικασία λοιπόν της κωδικοποίησης τους, όπως φαίνεται και από το παρακάτω σχήμα είναι: σύγκριση macroblocks και δημιουργία ενός γραμμικού συνδυασμού αυτών που παρουσιάζουν σημαντική ομοιότητα, δημιουργία motion vector, μετασχηματισμός DCT σε κάθε block του νέου macroblock, Κβαντοποίηση, Run-Lenght-Encoding και το αποτέλεσμα κωδικοποιείται με κωδικοποίηση Huffman, όπως και στα I πλαίσια.

 

B (Bi-directional frames): Τα πλαίσια τύπου B είναι πλαίσια που δημιουργούνται λαμβάνοντας το μέσο όρο σε επίπεδο macroblock ενός προηγούμενου και ενός επόμενου πλαισίου Ι και P (ένα από το κάθε είδος). Δε συντελούν τόσο πολύ στη διάδοση των σφαλμάτων γιατί δεν χρησιμοποιούνται ως σημεία αναφοράς και επιπλέον μειώνουν σημαντικά το σφάλμα παίρνοντας το μέσο όρο από δύο πλαίσια. Μπορούμε να πούμε ότι ο ‘κύκλος της ζωής’ τους περιορίζεται μόνο σε αυτά και δεν επεκτείνεται με το να κληροδοτούν πληροφορίες σε άλλα πλαίσια, κάτι που πολλές φορές σε συνδυασμό και με την υπολογιστική πολυπλοκότητα που απαιτούν για την κωδικοποίηση και αποκωδικοποίηση τα κάνει μη επιθυμητά από τους κατασκευαστές. Η διαδικασία της κωδικοποίησης περιλαμβάνει συνδυασμό των αντίστοιχων macroblocks που παρουσιάζουν μικρές διαφορές με τα αντίστοιχα των πλαισίων αναφοράς (προηγούμενο και επόμενο) δηλαδή αφαίρεση του μέσου όρου των άλλων δύο από το τρέχον πλαίσιο, συνδυασμό των διανυσμάτων κίνησης των πλαισίων αναφοράς (που συνδυάζονται όπως και τα αντίστοιχα macroblocks, δηλαδή λαμβάνεται ο μέσος όρος τους) και στη συνέχεια την ίδια διαδικασία με τα I  και P πλαίσια για την κωδικοποίηση του macroblock που προκύπτει.

Ο κύριος λόγος ύπαρξης των Β-πλαισίων είναι η κάλυψη της περίπτωσης κάποιες πληροφορίες της εικόνας να υπάρχουν σε επόμενα πλαίσια και να μην υπάρχουν στα προηγούμενα. Συνεπώς η πρόβλεψή τους με τα P πλαίσια θα ήταν αδύνατη. Σαν παράδειγμα μπορούμε να αναφέρουμε μία πόρτα που ανοίγει ξαφνικά. Η πληροφορία για το τι βρίσκεται πίσω από την πόρτα υπάρχει στα επόμενα πλαίσια και όχι στα προηγούμενα και για να εμφανιστεί και στο τρέχον πλαίσιο πρέπει να ληφθούν σαν σημεία αναφοράς και το προηγούμενο και το επόμενο.

            Αφού τα πλαίσια P κατασκευάζονται με βάση τα Ι και τα Β με βάση τα Ι και P είναι προφανές ότι τα Ι πρέπει να έχουν σταλεί πριν τα αντίστοιχα P. Επίσης και τα P αλλά και τα I πρέπει να έχουν σταλεί πριν από τα  αντίστοιχα Β, παρόλο που στη μετάδοση αυτά παρεμβάλλονται ανάμεσά τους. Η σειρά  με την οποία απεικονίζονται και η σειρά με την οποία αποστέλλονται τα πλαίσια (που προφανώς δεν είναι η ίδια) φαίνεται στο παρακάτω σχήμα :

Η συνηθέστερη διάταξη των πλαισίων σε ένα σήμα MPEG είναι η παρακάτω. Πολλές φορές παρεμβάλλονται περισσότερα Β πλαίσια και τα Ι πλαίσια απέχουν περισσότερο μεταξύ τους (αλλά αυτό υποβαθμίζει την ποιότητα της εικόνας γιατί τα σφάλματα διαδίδονται περισσότερο).

H μικρότερη μονάδα που μπορεί να αποκωδικοποιηθεί ανεξάρτητα ονομάζεται GOP (Group of  Pictures) και περιέχει όλα τα I,P,B πλαίσια που χρειάζονται για την αποκωδικοποίηση, χωρίς να γίνονται αναφορές σε άλλο GOP.

Στον παρακάτω πίνακα φαίνεται η αναλογία πλαισίων I,P,B σε ένα σήμα MPEG :

 

Είδος εικόνας

Bit-rate

Ι

P

B

Μέσος όρος

MPEG-1

(1.15 Mbit/sec)

150,000

50,000

20,000

38,000

MPEG-2

(4.00Mbit/sec)

400,000

200,000

80,000

130,000

 

Πίνακας 5-4.

 

Οι μέθοδοι Run Length Encoding και Huffman

 

Οι δύο αυτές μέθοδοι δεν μεταβάλουν τις τιμές των δειγμάτων (όπως ο μετασχηματισμός DCT για παράδειγμα ή η κβαντοποίηση), αλλά χρησιμοποιούνται στο τελικό στάδιο της κωδικοποίησης, για να μειώσουν τον αριθμό bits που χρησιμοποιούνται για τη μετάδοση τους.

 

Η πρώτη (Run-Length-Encoding) στηρίζεται στο γεγονός ότι υπάρχουν πολλά μηδενικά σε διαδοχικές θέσεις και ανάμεσά τους κάποιες μη μηδενικές τιμές. Έτσι χρησιμοποιώντας κάποια σύμβολα (flags) που δείχνουν ότι αυτό που τα ακολουθεί δεν είναι διακριτή τιμή του σήματος αλλά ομάδα τιμών, ομαδοποιούν τα μηδενικά και τα μεταδίδουν σαν έναν αριθμό (πλήθος μηδενικών). Έτσι σχηματίζονται ζευγάρια τιμών που ο πρώτος δείχνει το πλάτος μιας μη μηδενικής συνιστώσας και ο δεύτερος των αριθμό μηδενικών που ακολουθεί μέχρι την επόμενη, γλυτώνοντας έτσι πολλά bit.

Η δεύτερη (Huffman) είναι μια μέθοδος που αντιστοιχίζει σε συχνότερα εμφανιζόμενες τιμές μία συμβολική τιμή που είναι μικρή (έχει όσο το δυνατόν λιγότερα bits). Ταυτόχρονα δημιουργεί και ένα «λεξικό» (έναν πίνακα δηλαδή) που δείχνει αυτή την αντιστοίχηση και προσθέτει και το λεξικό αυτό στο σήμα για να χρησιμοποιηθεί από τον αποκωδικοποιητή. Έτσι τιμές που εμφανίζονται συχνά και έχουν μεγάλο αριθμό bits περιγράφονται με άλλες που έχουν μικρότερο, άρα πάλι έχουμε οικονομία σε bits.

 

Προσαρμοστική Κωδικοποίηση - Adaptive coding

 

Όπως προαναφέρθηκε υπάρχουν δύο είδη κωδικοποίησης (inter-frame και intra-frame με motion compensation). Επίσης είναι δεδομένο ότι επιβάλλεται η μετάδοση ενός I πλαισίου κάθε 15 πλαίσια. Πέρα από αυτό όμως οι απαιτήσεις της εικόνας μπορεί να απαιτούν περισσότερα ή ακόμα και λιγότερα, δηλαδή μπορεί η εικόνα να περιλαμβάνει γρήγορες αλλαγές σκηνικών και χρωμάτων ή το αντίθετο. Στην πρώτη περίπτωση μπορεί να απαιτηθούν περισσότερα intra-frame πλαίσια και στη δεύτερη για λόγους οικονομίας, λιγότερα.

Έτσι σε πολλές περιπτώσεις (πιο πολύπλοκες υλοποιήσεις) ο κωδικοποιητής μπορεί να επιλέξει το είδος κωδικοποίησης ανάλογα με της ανάγκες της εικόνας. Δηλαδή οι δύο τρόποι κωδικοποίησης χρησιμοποιούνται περιοδικά για να «φιλτράρουν» την εικόνα από αυξημένες παραμορφώσεις, ή στην αντίθετη περίπτωση να ελαττώσουν το ρυθμό μετάδοσης. Αυτός είναι και ο λόγος που στο MPEG-2 εμφανίζεται μεταβαλλόμενο ρυθμός μετάδοσης.

 

Διαδικασία Κωδικοποίησης

 

              Ας δούμε με ένα παράδειγμα την όλη διαδικασία της κωδικοποίησης, όπως εφαρμόζεται στους πίνακες των macroblocks. H διαδικασία της πρόβλεψης κίνησης θεωρείται ότι έχει εξεταστεί παραπάνω και δεν συμπεριλαμβάνεται στο παράδειγμα. Η διαδικασία αφορά ένα πλαίσιο που κωδικοποιείται με κωδικοποίηση μετασχηματισμού DCT (και όχι με motion compensation) δηλαδή ένα I πλαίσιο.

              Έστω ότι έχουμε ένα τέτοιο πλαίσιο, ένα block του οποίου είναι το παρακάτω. Τα νούμερα του αρχικού πίνακα είναι τυχαία και δεν αντιστοιχούν σε κάποια πραγματική εικόνα. Δείχνουν απλώς την επίδραση που έχουν πάνω σε ένα πίνακα οι διαδικασίες του μετασχηματισμού DCT και της Kβαντοποίησης.

 

131        134      139      143      144      144      144      144

134        141      143      146      149      146      146      146

143        145      150      153      148      146      146      146

148        151      152      151      150      148      148      148

150        150      151      152      152      145      145      145

152        151      151      151      150      147      146      145

151        152      153      153      151      148      147      147

151        152      153      153      151      149      149      148

Πίνακας 5-5: Τυχαίο αρχικό μπλοκ pixels 8x8.

Το παραπάνω block  μετά από εφαρμογή του μετασχηματισμού DCT μετασχηματίζεται στο παρακάτω (Πίνακας 2). Καθώς κινούμαστε προς τα δεξιά αυξάνει η οριζόντια ανάλυση και προς τα κάτω η κάθετη. Η τιμή που βρίσκεται στη θέση (0,0) ονομάζεται συντελεστής DC ενώ οι υπόλοιποι ονομάζονται συντελεστές AC. Ο συντελεστής DC δηλαδή ορίζεται σαν αυτός που η συχνότητά του είναι μηδέν και στις δύο κατευθύνσεις, ενώ AC είναι ένας συντελεστής του οποίου η συχνότητα είναι διάφορη του μηδενός σε τουλάχιστον μία διεύθυνση.

Το μεγαλύτερο μέρος της πληροφορίας περιέχεται στο συντελεστή DC (η τιμή του είναι μεγαλύτερη από το διπλάσιο του μέσου όρου των υπολοίπων). Ο συντελεστής αυτός δεν μπορεί σε καμία περίπτωση να παραλειφθεί, σε αντίθεση με τους συντελεστές AC της κάτω δεξιά περιοχής που αντιστοιχούν σε υψηλές συχνότητες και στο τέλος της κωδικοποίησης έχουν πάρει σχεδόν όλοι την τιμή μηδέν.

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

294,94   0,32     -3,08    -1,37    0,44     -0,02    -0,42    0,19

-5,81     -4,07    -1,19    -0,41    -0,15    -0,15    -0,08    -0,11

-2,62     -2,40    -0,34    0,09     -0,29    0,01     0,06     -0,17

-2,06     -0,19    0,10     0,65     0,31     -0,17    0,00     0,21

-0,25     -0,20    0,28     0,11     0,00     -0,01    0,02     0,16

-0,26     0,13     0,32     -0,20    -0,21    0,31     0,33     -0,22

-0,27     0,35     0,12     -0,00    -0,12    0,66     0,28     -0,19

-0,31     0,36     -0,50    -0,32    -0,52    0,37     0,07     -0,01

Πίνακας 5-6: Το ίδιο μπλοκ μετά από εφαρμογή DCT.

 

Στο επόμενο στάδιο εφαρμόζεται κβαντοποίηση και ποσοστοποίηση (thresholding) των τιμών δηλαδή απορρίπτονται αυτές που είναι κάτω από ένα ορισμένο επίπεδο (και αντικαθιστούνται με μηδενικά). Η διαδικασία αυτή βασίζεται αφ’ ενός στο ότι οι χαμηλότερες τιμές εμφανίζονται σε περιοχές που δεν είναι τόσο κρίσιμες από πλευράς αντίληψης των αλλοιώσεων που δημιουργούνται, αλλά και στο ότι τα πολλά μηδενικά και μάλιστα σε διαδοχικές θέσεις είναι πολύ εύκολο να κωδικοποιηθούν με ελάχιστα bits με τη μέθοδο Run-Length encoding. Ο προηγούμενος πίνακας μετά από ποσοστοποίηση, ακολουθεί παρακάτω :

294,94   0,00     -3,08    -1,37    0,00     0,00     0,00     0,00

-5,81     -7,07    -1,19    0,00     0,00     0,00     0,00     0,00

-2,62     -2,40    0,00     0,00     0,00     0,00     0,00     0,00

-2,06     0,00     0,00     0,00     0,00     0,00     0,00     0,00

0,00       0,00     0,00     0,00     0,00     0,00     0,00     0,00

0,00       0,00     0,00     0,00     0,00     0,00     0,00     0,00

0,00       0,00     0,00     0,00     0,00     0,00     0,00     0,00

0,00       0,00     0,00     0,00     0,00     0,00     0,00     0,00

Πίνακας 5-7: Το προηγούμενο μπλοκ μετά από εφαρμογή ποσοστοποίησς (thresholding).

 

              Σειρά έχει η κβαντοποίηση. H κβαντοποίηση στις περισσότερες υλοποιήσεις είναι αφ’ ενός ποικίλη (χρησιμοποιείται διαφορετικός νόμος κβαντοποίησης) αλλά και ρυθμιζόμενη δηλαδή είναι ρυθμιζόμενη η τιμή του κβαντιστή με αντίστοιχη επίδραση στην τελική ποιότητα και το ρυθμό μετάδοσης, δύο μεγέθη αντιστρόφως ανάλογα όπως έχει προαναφερθεί. Στο συγκεκριμένο παράδειγμα ο νόμος κβαντοποίησης που έχει χρησιμοποιηθεί για λόγους απλότητας είναι η στρογγυλοποίηση των αριθμών, που μειώνει σημαντικά τον αριθμό bits, αλλά μπορεί να να εφαρμοστεί και άλλη κβαντοποίηση π.χ. τιμές που διαφέρουν μόνο κατά 3 μεταξύ τους κτλ. (εξαρτάται από το hardware)

295        0          -3         -1         0          0          0          0

-6          -4         -1         0          0          0          0          0

-3          -2         0          0          0          0          0          0

-2          0          3          0          0          0          0          0

0            0          0          0          0          0          0          0

0            0          0          0          0          0          0          0

0            0          0          0          0          0          0          0

0            0          0          0          0          0          0          0

Πίνακας 5-8: Κβαντοποίηση με μετατροπή σε ακέραιες τιμές.

              Ακολουθεί η σάρωση σε σχήμα zig-zag. Η διαδικασία αυτή είναι απαραίτητη γιατί κάποια στιγμή όλα τα δεδομένα που περιέχονται στους πίνακες 2 διαστάσεων, αφού υποστούν επεξεργασία, πρέπει να μεταδοθούν από ένα σειριακό μέσο, άρα πρέπει να κωδικοποιηθούν σειριακά σε ένα σήμα. Το γιατί έχει επιλεγεί το συγκεκριμένο σχήμα σάρωσης (zig-zag από την πάνω δεξιά γωνία όπως στο πιο κάτω σχήμα) γίνεται προφανές από τον πίνακα 4 αν παρατηρήσει κανείς ότι οι τιμές που έχουν προκύψει έχουν μία διάταξη αυξανόμενου μεγέθους αν τις σαρώσουμε κατά αυτό τον τρόπο. Αυτό δεν είναι κάτι τυχαίο που προέκυψε για τις συγκεκριμένες τιμές του παραδείγματος αλλά είναι ιδιότητα του μετασχηματισμού. Η αποθήκευση των τιμών κατά αυτό τον τρόπο βοηθάει πολύ στα επόμενα στάδια της κωδικοποίησης RLE (Run-Length-Encoding) και Huffman.

Στο παρακάτω σχήμα φαίνεται η διάταξη της σάρωσης zig-zag:

 

 

Σχήμα 5-4: Zig-zag scanning.

Κατά την αποκωδικοποίηση ακολουθούνται οι αντίστροφες διαδικασίες. Το αποτέλεσμα που προκύπτει είναι πολύ κοντά στο αρχικό. Το πόσο κοντά εξαρτάται από τις παραδοχές που έχουμε κάνει στην κβαντοποίηση, την ποσοστοποίηση και κατ’ επέκταση στο ρυθμό μετάδοσης που έχουμε χρησιμοποιήσει. Τo block που χρησιμοποιήθηκε για παράδειγμα, αν ανακατασκευαστεί, θα παρουσιάζει την εξής εικόνα, για την οποία μπορούμε να επαληθεύσουμε ότι είναι πολύ κοντά στο αρχικό :

 

131        134      139      142      144      144      144      144

136        139      143      146      147      146      146      145

143        145      148      150      150      148      147      147

148        150      152      152      151      149      148      147

150        151      152      152      150      148      146      146

150        151      152      152      150      148      146      145

151        152      153      152      150      148      147      147

151        152      153      153      151      149      149      148

 

Πίνακας 5-9: Ανακατασκευή του αρχικού block μετά από αποκωδικοποίηση

 

Οι εφαρμογές στις οποίες απευθύνεται το MPEG-2 φαίνονται στον παρακάτω πίνακα :

 

Επίπεδο

Μέγεθος Εικόνας

Pixels/sec (Mbits)

bit-rate

Εφαρμογές

Χαμηλή

352 x 240

3 M

4

Κανονική τηλεοπτική ποιότητα

Κύρια

720 x 480

10 M

15

Τηλεόραση (ποιότητα studio)

Υψηλή 1440

1440 x 1152

47 M

60

Τηλεόραση Υψηλής Ευκρίνειας

Υψηλή

1920 x 1080

63 M

80

Παραγωγή Ταινιών

 

Πίνακας 5-10.