ΑΤΕΙ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ Τμήμα Μηχανικών Πληροφορικής ΤΕ ΤΕΧΝΙΚΗ ΣΥΜΠΙΕΣΗΣ VID EO H.264 ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Γκιούρα Αγγέλα (ΑΜ: T02832) Επιβλέπων: Κων/νος Χαϊκάλης, Καθηγητής Εφαρμογών ΛΑΡΙΣΑ 2014
«Εγώ η Γκιούρα Αγγέλα, δηλώνω υπεύθυνα ότι η παρούσα Πτυχιακή Εργασία με τίτλο ΤΕΧΝΙΚΗ ΣΥΜΠΙΕΣΗΣ VIDEO H.264 είναι δική μου και βεβαιώνω ότι: Σε όσες περιπτώσεις έχω συμβουλευτεί δημοσιευμένη εργασία τρίτων, αυτό επισημαίνεται με σχετική αναφορά στα επίμαχα σημεία. Σε όσες περιπτώσεις μεταφέρω λόγια τρίτων, αυτό επισημαίνεται με σχετική αναφορά στα επίμαχα σημεία. Με εξαίρεση τέτοιες περιπτώσεις, το υπόλοιπο κείμενο της πτυχιακής αποτελεί δική μου δουλειά. Αναφέρω ρητά όλες τις πηγές βοήθειας που χρησιμοποίησα. Σε περιπτώσεις που τμήματα της παρούσας πτυχιακής έγιναν από κοινού με τρίτους, α- ναφέρω ρητά ποια είναι η δική μου συνεισφορά και ποια των τρίτων. Γνωρίζω πως η λογοκλοπή αποτελεί σοβαρότατο παράπτωμα και είμαι ενήμερος(-η) για την επέλευση των νομίμων συνεπειών»
Εγκρίθηκε από την τριμελή εξεταστική επιτροπή Τόπος: Ημερομηνία: ΕΠΙΤΡΟΠΗ ΑΞΙΟΛΟΓΗΣΗΣ 1. 2. 3.
Περίληψη Αντικείμενο αυτής της πτυχιακής είναι η τεχνική συμπίεσης (πρότυπο ) Η.264 Στο δεύτερο κεφάλαιο θα περιγραφούν γενικά οι τεχνικές συμπίεσης (προτύπων) που υπάρχουν.. Στο τρίτο κεφάλαιο θα αναλυθεί η τεχνική συμπίεσης (πρότυπο ) Η.264. Στο τέταρτο κεφάλαιο θα εξηγηθεί ο κώδικας matlab της προσομοίωσης ενώ στο πέμπτο θα αναφερθούν κάποιοι τρόποι εμπορικής εκμετάλλευσης της εν λόγω τεχνικής συμπίεσης.τέλος, ακολουθούν τα συμπεράσματα και στο παράρτημα θα δούμε τον κώδικα προσομοίωσης της συγκεκριμένης τεχνικής. -i-
Ευχαριστίες Αρχικά, θα ήθελα να ευχαριστήσω τους γονείς μου για την αμέριστη στήριξή τους όλα αυτά τα χρόνια, και τις θυσίες που έκαναν. Επίσης, ευχαριστώ θερμά τον επιβλέποντα καθηγητή μου κ. Χαϊκάλη Κων/νο για την εμπιστοσύνη που μου έδειξε αναθέτοντας μου την παρούσα πτυχιακή. Γκιούρα Αγγέλα -iii-
Περιεχόμενα ΠΕΡΙΛΗΨΗ... I ΕΥΧΑΡΙΣΤΙΕΣ... III ΠΕΡΙΕΧΟΜΕΝΑ... V 1 Ο ΚΕΦΑΛΑΙΟ: ΕΙΣΑΓΩΓΗ... 7 2 Ο ΚΕΦΑΛΑΙΟ :ΤΕΧΝΙΚΕΣ ΣΥΜΠΙΕΣΗΣ ΒΙΝΤΕΟ... 9 2.1 ΤΥΠΟΙ ΒΙΝΤΕΟ... 9 2.2 ΤΙ ΕΙΝΑΙ ΣΥΜΠΙΕΣΗ ΚΑΙ ΓΙΑ ΠΟΙΟΥΣ ΛΟΓΟΥΣ ΧΡΕΙΑΖΕΤΑΙ... 9 2.3 ΣΥΜΠΙΕΣΗ ΨΗΦΙΑΚΟΥ ΒΙΝΤΕΟ... 11 2.4 ΤΕΧΝΙΚΕΣ ΣΥΜΠΙΕΣΗΣ ΨΗΦΙΑΚΟΥ ΒΙΝΤΕΟ... 11 2.5 ΠΡΟΤΥΠΑ ΣΥΜΠΙΕΣΗΣ... 13 3 Ο ΚΕΦΑΛΑΙΟ : ΠΡΟΤΥΠΟ Η.264... 21 3.1 ΤΙ ΕΙΝΑΙ ΤΟ Η.264;... 21 3.2 ΠΕΡΙΓΡΑΦΗ ΤΡΟΠΟΥ ΛΕΙΤΟΥΡΓΙΑΣ ΤΗΣ ΣΥΜΠΙΕΣΗΣ ΒΙΝΤΕΟ... 25 3.3 ΑΝΑΛΥΣΗ ΟΡΙΣΜΩΝ ΤΥΠΟΠΟΙΗΜΕΝΩΝ ΤΕΧΝΙΚΩΝ ΚΩΔΙΚΟΠΟΙΗΣΗΣ ΒΙΝΤΕΟ... 28 3.4 ΑΝΑΠΤΥΞΗ ΤΟΥ ΠΡΟΤΥΠΟΥ Η.264... 30 3.5 ΠΡΟΦΙΛ ΚΑΙ ΕΠΙΠΕΔΑ ΤΟΥ Η.264... 31 3.6 ΤΡΟΠΟΣ ΛΕΙΤΟΥΡΓΙΑΣ ΕΝΟΣ ΣΥΣΤΗΜΑΤΟΣ ΚΩΔΙΚΟΠΟΙΗΣΗΣ-ΑΠΟΚΩΔΙΚΟΠΟΙΗΣΗΣ ΒΑΣΙΣΜΕΝΟ ΣΤΟ ΠΡΟΤΥΠΟ H.264... 32 3.7 ΔΙΑΔΙΚΑΣΙΕΣ ΚΩΔΙΚΟΠΟΙΗΤΗ... 36 3.8 ΔΙΑΔΙΚΑΣΙΕΣ ΑΠΟΚΩΔΙΚΟΠΟΙΗΤΗ... 37 4 O ΚΕΦΑΛΑΙΟ: ΠΡΟΣΟΜΟΙΩΣΗ ΤΟΥ ΠΡΟΤΥΠΟΥ H.264 ΜΕ ΤΗΝ ΒΟΗΘΕΙΑ ΤΟΥ MATLAB... 39 ΕΙΣΑΓΩΓΙΚΟ ΣΗΜΕΙΩΜΑ... 39 4.1 ΠΑΡΟΥΣΙΑΣΗ ΒΙΝΤΕΟ ΠΡΟΣ ΣΥΜΠΙΕΣΗ ΚΑΙ ΤΕΛΙΚΟΥ ΑΠΟΤΕΛΕΣΜΑΤΟΣ... 39 4.2 ΑΝΑΛΥΣΗ ΚΩΔΙΚΑ ΤΟΥ M FILE MAIN... 40 4.3 ΑΝΑΛΥΣΗ ΤΗΣ ΣΥΝΑΡΤΗΣΗΣ PLAY... 41 -v-
4.4 ΑΝΑΛΥΣΗ ΤΗΣ ΣΥΝΑΡΤΗΣΗΣ READ... 42 4.5 ΑΝΑΛΥΣΗ ΤΗΣ ΣΥΝΑΡΤΗΣΗΣ RESIZE... 42 4.6 ΑΝΑΛΥΣΗ ΤΗΣ ΣΥΝΑΡΤΗΣΗΣ SAVEANDPLAY... 42 4.7 ΣΤΙΓΜΙΟΤΥΠΑ ΟΘΟΝΗΣ ΕΚΤΕΛΕΣΗΣ ΠΡΟΣΟΜΟΙΩΣΗΣ... 43 5 Ο ΚΕΦΑΛΑΙΟ : ΕΜΠΟΡΙΚΗ ΕΚΜΕΤΑΛΛΕΥΣΗ ΤΟΥ Η.264... 45 ΣΥΜΠΕΡΑΣΜΑΤΑ... 47 ΠΑΡΑΡΤΗΜΑ :ΚΩΔΙΚΑΣ MATLAB... 48 ΒΙΒΛΙΟΓΡΑΦΙΑ... 57 -vi-
1 ο Κεφάλαιο: Εισαγωγή Οι τεχνικές συμπίεσης αποτελούν ζήτημα ζωτικής σημασίας για την μετάδοση και αποθήκευση βίντεο διότι με την χρήση τους μειώνεται το εύρος ζώνης το οποίο μπορεί να καταλαμβάνει κάποιο βίντεο κατά την διάρκεια της μετάδοσής του καθώς και ο χώρος αποθήκευσής του.σε μία εποχή που οι τηλεπικοινωνίες εξελίσσονται αλματωδώς αποτελεί απαίτηση των καιρών η βελτίωση του τρόπου μετάδοσης δεδομένων.η τεχνική συμπίεσης Η.264 αποτελεί ένα λιθαράκι προς αυτήν την κατεύθυνση. -7-
2 ο Κεφάλαιο :Τεχνικές συμπίεσης βίντεο 2.1 Τύποι βίντεο Οι κύριοι τύποι βίντεο είναι δύο και είναι οι ακόλουθοι: αναλογικό βίντεο ψηφιακό βίντεο 2.1.1 Αναλογικό βίντεο Αναλογικό βίντεο ονομάζουμε την ηλεκτρονική τεχνολογία κωδικοποίησης μετάδοσης και αναπαραγωγής οπτικοακουστικής πληροφορίας με την χρήση σημάτων αναλογικού τύπου. [5] 2.1.2 Ψηφιακό βίντεο Την δεκαετία του 1990 με τον όρο ψηφιακό βίντεο εννοούσαμε τα ψηφιακά αρχεία βίντεο που προέκυπταν από την ψηφιοποίηση του αναλογικού video.σήμερα ο όρος ψηφιακό βίντεο ή τεχνολογία DV (Digital Video) αναφέρεται γενικά σε όλο το σύνολο των ψηφιακών τεχνολογιών με τις οποίες γίνεται η παραγωγή,η επεξεργασία, η αποθήκευση, η διανομή και η αναπαραγωγή εκπομπή του οπτικοακουστικού υλικού σε ψηφιακή μορφή[5] 2.2 Τι είναι συμπίεση και για ποιους λόγους χρειάζεται Η συμπίεση έχει την έννοια της μείωσης των δεδομένων της εικόνας.ένα αναλογικό βίντεο το οποίο έχει ψηφιοποιηθεί μπορεί να αποτελείται έως και από 165 Mbps δεδομένων. Προκειμένου να μειωθεί το κόστος μετάδοσης αυτών των δεδομένων θα πρέπει να μειωθούν τα δεδομένα εικόνας.για να επιτευχθεί αυτός ο στόχος υλοποιούνται οι ακόλουθες τεχνικές : 1. μείωση χρωματικών αποχρώσεων στο εσωτερικό της εικόνας 2. μείωση χρωματικής ανάλυσης αναφορικά με το κυρίαρχη ένταση φωτός 3. αφαίρεση μικρών,αόρατων σημείων της εικόνας -9-
4. σύγκριση παρακείμενων εικόνων και αφαίρεση λεπτομερειών οι οποίες είναι όμοιες σε αυτές τις δύο εικόνες Οι τρεις πρώτες τεχνικές αναφέρονται σε τεχνικές συμπίεσης εικόνων.σε τέτοιες τεχνικές συμπίεσης αξιολογείται μόνο ένα πλαίσιο (frame) τη φορά και στην συνέχεια συμπιέζεται. Η τελευταία τεχνική αναφέρεται στην συμπίεση βίντεο στην οποία πολλά γειτονικά πλαίσια συγκρίνονται με σκοπό την περαιτέρω συμπίεση δεδομένων εικόνας. Όλες αυτές οι τεχνικές βασίζονται στην ακριβή κατανόηση της συνδυαστικής λειτουργίας του ανθρώπινου μυαλού και των ματιών προκειμένου να σχηματίσουν ένα περίπλοκο οπτικό σύστημα. Το αποτέλεσμα αυτών των ανεπαίσθητων μειώσεων είναι η επίτευξη μίας σημαντικής μειώσεως στο τελικό αρχείο εικόνας με ελάχιστες η και καθόλου δυσμενείς επιπτώσεις στην ποιότητα του.το επίπεδο στο οποίο αυτές οι αλλαγές μπορούν να γίνουν αισθητές από το ανθρώπινο μάτι εξαρτάται από το βαθμό με τον οποίο χρησιμοποιείται η επιλεγμένη τεχνική.συχνά η συμπίεση με ποσοστό από πενήντα τοις εκατό έως ενενήντα τοις εκατό μπορεί να υλοποιηθεί χωρίς καμία διαφορά η οποία να είναι ορατή στο ανθρώπινο μάτι. Εικόνα 1 Χρόνος "ανεβάσματος μη συμπιεσμένου βίντεο και χρόνος "ανεβάσματος" συμπιεσμένου βίντεο [5] -10-
2.3 Συμπίεση ψηφιακού βίντεο 2.3.1 Συμπίεση με απώλειες (lossy compression )και συμπίεση χωρίς απώλειες ( lossless compression) Υπάρχουν δύο βασικές κατηγορίες συμπίεσης η συμπίεση με απώλειες και η συμπίεση χωρίς απώλειες.η συμπίεση με απώλειες έχει την έννοια ότι κατά την διάρκεια της διαδικασίας της συμπίεσης τα δεδομένα μειώνονται σε τέτοιο βαθμό που η αρχική πληροφορία να μην μπορεί να ανακτηθεί όταν αποσυμπιεστεί το βίντεο. Η συμπίεση χωρίς απώλειες από την άλλη πλευρά σημαίνει ότι το αρχικό βίντεο μπορεί να ανακτηθεί πλήρως όταν αποσυμπιεστεί το βίντεο. Αυτό συμβαίνει επειδή για την μείωση των δεδομένων είναι διαθέσιμος μικρός αριθμός τεχνικών και το αποτέλεσμα είναι η περιορισμένη μείωσή τους.[5] 2.3.2 Καθυστέρηση συμπίεσης (compression latency) Η διαδικασία της συμπίεσης εμπεριέχει έναν ή πολλούς μαθηματικούς αλγόριθμους οι οποίοι αφαιρούν δεδομένα εικόνας.όταν ένα βίντεο πρόκειται να προβληθεί εφαρμόζονται άλλοι αλγόριθμοι έτσι ώστε να ερμηνευτούν τα δεδομένα και στην συνέχεια να προβληθούν στην οθόνη. Για την ολοκλήρωση αυτών των βημάτων, όπως είναι φυσικό απαιτείται κάποιος χρόνος.αυτή η καθυστέρηση ονομάζεται καθυστέρηση συμπίεσης (compression latency). Όσο πιο περίπλοκος είναι ο αλγόριθμος συμπίεσης τόσο μεγαλύτερη είναι η καθυστέρηση.όταν γίνεται χρήση συμπίεσης βίντεο και συγκρίνονται παρακείμενα πλαίσια τότε εισάγεται περισσότερος χρόνος καθυστέρησης. Για μερικές εφαρμογές όπως η συμπίεση ταινιών η καθυστέρηση συμπίεσης είναι ένας παράγοντας που δεν επηρεάζει την προβολή της αφού η ταινία δεν προβάλλεται σε ζωντανή μετάδοση. Όμως σε βίντεο παρακολούθησης η χαμηλή καθυστέρηση είναι ζωτικής σημασίας. [4]. 2.4 Τεχνικές συμπίεσης ψηφιακού βίντεο Οι τεχνικές συμπίεσης βίντεο (compressor/decompressor ή codec) που χρησιμοποιούνται είναι οι ακόλουθες : -11-
Χωρική συμπίεση (Ενδοπλαισιακή) είναι οι τεχνικές συμπίεσης οι οποίες εκμεταλλεύονται την ομοιότητα διαδοχικών πλαισίων. Χρονική συμπίεση (Διαπλαισιακή) είναι οι τεχνικές συμπίεσης που εκμεταλλεύονται τον τρόπο μεταβολής της πληροφορία μεταξύ διαδοχικών πλαισίων. Ας πάρουμε για παράδειγμα την περίπτωση των πλάνων ενός τηλεπαρουσιαστή ο οποίος εκφωνεί τα νέα της ημέρας :σε αυτή την περίπτωση η χρονική συμπίεση παρατηρεί ότι τα μόνα pixels που αλλάζουν από πλαίσιο σε πλαίσιο είναι αυτά που απαρτίζουν το πρόσωπο του παρουσιαστή. Όλα τα άλλα pixels δεν αλλάζουν (όταν βέβαια η κάμερα είναι ακίνητη). Έτσι αντί να περιγράφεται το κάθε pixel από κάθε πλαίσιο ο συμπιεστής δημιουργεί ομάδες καρέ (2 έως 25 περίπου ανάλογα με τις διαφορές που υ- πάρχουν μεταξύ τους) και περιγράφει όλα τα pixels του πρώτου καρέ της ομάδας και κατόπιν,για κάθε επόμενο καρέ της ομάδας περιγράφει μόνο τα pixels που διαφέρουν από το προηγούμενο καρέ. Κάτι αντίστοιχο γίνεται όταν υπάρχει κίνηση σε μία περιοχή βίντεο και μπορεί να προβλεφθεί η διαφορά θέσης του αντικειμένου ή του ηθοποιού ανάμεσα σε μία ομάδα πλαισίων. Οι δύο χαρακτηριστικές τεχνικές αυτής της μεθόδου συμπίεσης λέγονται «διαφορά καρέ» και «εκτίμηση κίνησης». Η διαπλαισιακή τεχνική συμπίεσης είναι η πιο πολύπλοκη τεχνική αλλά επιτυγχάνει τα μεγαλύτερα ποσοστά συμπίεσης με πολύ καλή ποιότητα.λόγω του ότι τα πλαίσια είναι ομαδοποιημένα και τα πλαίσια μιας ομάδας έχουν άμεση σχέση μεταξύ τους και κυρίως με το πρώτο πλαίσιο το οποίο ονομάζεται πλαίσιο κλειδί (key frame) δεν ενδείκνυται η επεξεργασία του αρχείου που έχει δημιουργηθεί με αυτόν τον συμπιεστή γιατί μία αλλαγή ή διαγραφή που θα γίνει π.χ στο πλαίσιο-κλειδί θα επηρεάσει και τα υπόλοιπα πλαίσια της ομάδας του πράγμα που δεν το επιθυμούμε. Συμπίεση με ή χωρίς απώλειες. Υπάρχουν ορισμένες τεχνικές συμπίεσης που χρησιμοποιούν μη απωλεστικούς αλγόριθμους (lossless compression) χωρίς δηλαδή να μειώνεται η ποιότητα του πρωτογενούς υλικού αλλά έχουν το μειονέκτημα ότι μειώνεται ελάχιστα το μέγεθος του αρχείου (περίπου 2:1) με αποτέλεσμα να μην μπορεί να διαχειρισθεί εύκολα.αντίθετα οι τεχνικές συμπίεσης που χρησιμοποιούν απωλεστικούς αλγόριθμους πετυχαί- -12-
νουν μεγαλύτερη μείωση του μεγέθους του αρχείου με απώλειες τόσες ώστε να μην είναι εύκολα ορατές από το ανθρώπινο μάτι. Ασύμμετρη και συμμετρική συμπίεση. Συμμετρικός λέγεται ο αλγόριθμος που χρειάζεται τον ίδιο χρόνο για την κωδικοποίηση και την αποκωδικοποίηση, ενώ ασύμμετρος ο αλγόριθμος που χρειάζεται διαφορετικούς χρόνους για την κωδικοποίηση και την αποκωδικοποίηση. Περισσότεροι Codecs (κωδικοποιητές) χρησιμοποιούν πολλούς αλγόριθμους μαζί οι οποίοι χρησιμοποιούν διαφορετικές τεχνικές συμπίεσης και μπορούν να επιτύχουν υψηλά ποσοστά συμπίεσης (έως 50:1), χωρίς να υπάρχει μεγάλη διαφορά στη ποιότητα από το πρωτογενές υλικό. Ένας τέτοιος κωδικοποιητής είναι ο MPEG ο οποίος είναι ασύμμετρος,απωλεστικός, ενδοπλαισιακός και κυρίως διαπλαισιακός.τα αρχικά MPEG προέρχονται από τις λέξεις Moving Picture Experts Group. Πρόκειται για μία επιτροπή ειδικών που δραστηριοποιείται στην ανάπτυξη απωλεστικών συμπιεστών για συμπίεση πληροφορίας εικόνας,ήχου και βίντεο. Μέχρι σήμερα η επιτροπή MPEG έχει διατυπώσει την μορφή αρκετών συμπιεστών που φέρουν όλοι την ονομασία MPEG και μοιράζονται μεν τα ίδια βασικά χαρακτηριστικά διαφέρουν όμως σε αρκετά σημεία και συνδέονται από έναν χαρακτηριστικό αριθμό.οι σπουδαιότεροι από αυτούς είναι οι MPEG1, MPEG-2, MPEG-4.[5] 2.5 Πρότυπα συμπίεσης Γενική αναφορά στα πρότυπα JPEG και MPEG Υπάρχουν δύο βασικά πρότυπα συμπίεσης το JPEG και το MPEG. Το JPEG σχετίζεται με την συμπίεση εικόνων ενώ το MPEG έχει να κάνει με την συμπίεση ψηφιακού βίντεο. Σε αυτό το σημείο θα πρέπει να αναφέρουμε πως τα πρότυπα συμπίεσης εικόνων JPEG και JPEG 2000 έχουν εκδόσεις οι οποίες είναι κατάλληλες για συμπίεση ψηφιακών βίντεο οι οποίες είναι το πρότυπο Motion JPEG και το πρότυπο Motion JPEG 2000.Τα πρότυπα MPEG-1, MPEG-2, MPEG-4 και H.264 τα οποία συμπεριλαμβάνονται στην ομάδα προτύπων MPEG έχουν κάποιες ομοιότητες αλλά και κάποιες διαφορές. Ένα κοινό στοιχείο αυτών των προτύπων είναι ότι όλα είναι διεθνή πρότυπα και έχουν πιστοποιηθεί από τον οργανισμό ISO( International -13-
Organization for Standardization, Διεθνής Οργανισμός για Προτυποποίηση) και από την επιτροπή IEC (International Electrotechnical Commission, Διεθνής Ηλεκτροτεχνική Επιτροπή) με συνεργάτες σε πολλές χώρες. Υπάρχουν επίσης συστάσεις οι οποίες έγιναν από την ένωση ITU (International Telecommunication Union,Διεθνής Ένωση Τηλεπικοινωνιών) η οποία έχει συνδράμει στην παγκόσμια αναγνώριση αυτών των προτύπων ως de facto πρότυπα για ψηφιακές εικόνες και κωδικοποίηση video. Στα πλαίσια της ένωσης ITU δραστηριοποιείται η επιτροπή VCEG (Video Coding Experts Group, Επιτροπή Ειδικών Κωδικοποίησης Βίντεο) η οποία ανέπτυξε τις εισηγήσεις για τα πρότυπα συμπίεσης H.261 και H.263 για τηλεδιασκέψεις. Η ανάπτυξη των προτύπων JPEG και MPEG άρχισε από τα μέσα του 1980 όταν σχηματίστηκε μία ομάδα με το όνομα JPEG (Joint Photographic Experts Group, Κοινή Ομάδα Ειδικών Φωτογραφίας ). Αυτή η ομάδα είχε ως στόχο την ανάπτυξη ενός πρότυπου για την συμπίεση έγχρωμων εικόνων και η πρώτη δημόσια συνεισφορά της ήταν η κυκλοφορία του πρώτου μέρους του προτύπου JPEG το 1991. Από τότε η ομάδα JPEG δουλεύει πάνω στο αρχικό πρότυπο JPEG και παράλληλα αναπτύσσει το πρότυπο JPEG 2000. Στα μέσα της δεκαετίας του 1980 σχηματίστηκε η επιτροπή MPEG (Motion Picture Experts Group, Ομάδα Ειδικών Κινούμενης Εικόνας) η οποία είχε ως σκοπό την ανάπτυξη ενός προτύπου για την κωδικοποίηση κινούμενης εικόνας και ο- πτικοακουστικού υλικού.από τότε έχουν αναπτυχθεί τα πρότυπα MPEG-1, MPEG- 2 και MPEG-4 καθώς και πρότυπα που δεν χρησιμοποιούνται για την κωδικοποίηση των πολυμέσων δηλαδή τα MPEG-7 και MPEG-21.Ακολουθεί μία συνοπτική περιγραφή των προτύπων [5] 2.5.1 MPEG-1 Το πρώτο δημόσιο πρότυπο της επιτροπής MPEG ήταν το MPEG-1 τα πρώτα μέρη του οποίου τέθηκαν σε κυκλοφορία το 1993.Η συμπίεση βίντεο σύμφωνα με το πρότυπο MPEG-1 βασίστηκε στην ίδια τεχνική με αυτή που χρησιμοποιήθηκε στο πρότυπο JPEG.Επιπροσθέτως το πρότυπο MPEG-1 περιλαμβάνει τεχνικές για κωδικοποίηση ακολουθίας βίντεο. Το πρότυπο MPEG-1 επικεντρώνεται σε ροές δε- -14-
δομένων 1,5 Mbps και αρχικά χρησίμευε για αποθήκευση ψηφιακών βίντεο σε DVD. Πρέπει να τονίσουμε ότι περισσότερη σημασία δίνεται στην συμπίεση και όχι στην ποιότητα της εικόνας. Είναι σημαντικό να τονιστεί ότι το πρότυπο MPEG-1 όπως επίσης και τα πρότυπα MPEG-2, MPEG-4 και H.264 που περιγράφονται παρακάτω ορίζουν το συντακτικό μίας ροής (stream) ενός κωδικοποιημένου βίντεο καθώς και την μέθοδο αποκωδικοποίησης αυτής της ροής των bit (bitstream).επομένως,μόνο ο αποκωδικοποιητής είναι τυποποιημένος. Ένας κωδικοποιητής MPEG μπορεί να υλοποιηθεί με διαφορετικό τρόπο και κάποιος μπορεί να αποφασίσει να υλοποιήσει μόνο μία υποομάδα του συντακτικού αρκεί αυτή η υποομάδα να παρέχει μια ροή bit η οποία θα είναι συμβατή με το πρότυπο.αυτό το γεγονός παρέχει δυνατότητα βελτιστοποίησης της τεχνολογίας και μείωση της πολυπλοκότητας στις υλοποιήσεις από την μια πλευρά αλλά δεν αποτελεί εγγύηση εξασφάλισης ποιότητας από την άλλη [3] 2.5.2 MPEG-2 To MPEG-2 εμφανίστηκε το 1994 και ο σκοπός της υλοποίησής του ήταν η βελτίωση της τεχνικής συμπίεσης του MPEG-1 προκειμένου να καλύψει μεγαλύτερες εικόνες και να επιτύχει υψηλότερη ποιότητα. Το αποτέλεσμα αυτών των αλλαγών ήταν η κάλυψη μεγαλύτερου εύρους ζώνης. Επίσης στο πρότυπο MPEG-2 συμπεριλαμβάνονται προηγμένες τεχνικές που σαν σκοπό τους έχουν την βελτίωση της ποιότητας βίντεο με τον ίδιο ρυθμό bits.συνεπώς απαιτούνται και περίπλοκα εξαρτήματα. Ο ρυθμός μετάδοσης δεδομένων μπορεί να είναι σταθερός ή μεταβλητός και ποικίλει από 700 έως 9.200Κbps η μέγιστη ανάλυση φθάνει 1280x720 pixels με ρυθμό ανανέωσης πλαισίων μέχρι 60 fps και ήχο ποιότητας CD. To πεδίο εφαρμογής του είναι κύρια η πλατφόρμα DVD. Έτσι μια ταινία διάρκειας 2 ωρών μπορεί να χωρέσει άνετα σε δίσκο DVD μιας στρώσης (χωρητικότητας 4,7GB) με ικανοποιητική ποιότητα.[3] -15-
2.5.3 MPEG-3 Το πρότυπο MPEG-3 προορίζονταν αρχικά για την τηλεόραση υψηλής ευκρίνειας( HDTV,High Definiton Television ).Στην πορεία όμως ανακαλύφθηκε πως το πρότυπο MPEG-2 θα μπορούσε να τροποποιηθεί ελάχιστα και να επιτύχει τα ίδια α- ποτελέσματα με το υπό σχεδίαση πρότυπο δηλαδή το MPEG-3.Έτσι τερματίστηκε η υλοποίηση του προτύπου MPEG-3.[3] 2.5.4 MPEG-4 Το πρότυπο MPEG-4 βασίζεται στην ίδια τεχνική με τα πρότυπα MPEG-1 και MPEG-2.Και πάλι η ανάπτυξη του καινούργιο προτύπου επικεντρώθηκε στις νέες εφαρμογές.το σημαντικότερο χαρακτηριστικό αυτού του προτύπου αναφορικά με την συμπίεση βίντεο είναι η υποστήριξη συσκευών οι οποίες «καταναλώνουν» α- κόμα πιο χαμηλό εύρος ζώνης (bandwidth) όπως για παράδειγμα κινητές συσκευές όπως κινητά τηλέφωνα.επίσης το πρότυπο MPEG-4 σχεδιάστηκε για την υποστήριξη εφαρμογών υψηλής ποιότητας και με απεριόριστο εύρος ζώνης. Γενικά,όπως είναι λογικό, το πρότυπο MPEG-4 έχει ευρύτατη γκάμα εφαρμογών.επίσης υποστηρίζει οποιονδήποτε ρυθμό πλαισίων 2.5.4.1 Περισσότερα στοιχεία για το πρότυπο MPEG-4 Το πρότυπο MPEG-4 έχει ορισμένα χαρακτηριστικά τα οποία είναι απαιραίτητο να κατανοηθούν.η περιγραφή τους είναι η ακόλουθη: 2.5.4.2 Τύποι πλαισίων (Frame types) Η βασική αρχή της συμπίεσης βίντεο είναι η πρόβλεψη από εικόνα σε εικόνα (image-to-image prediction). Η πρώτη εικόνα ονομάζεται I-frame και είναι αυτόνομη δηλαδή δεν υπάρχουν εξαρτήσεις.στα πλαίσια (frames) που ακολουθούν μπορεί να γίνει χρήση μέρους της πρώτης εικόνας ως σημείο αναφοράς.μία εικόνα η οποία προβλέπεται από μία εικόνα αναφοράς ονομάζεται P-πλαίσιο (P-frame) και μία εικόνα η οποία προβλέπεται αμφίδρομα δηλαδή από δύο εικόνες αναφοράς ονομάζεται B-πλαίσιο (B-frame). Ακολουθεί μία εικόνα στην οποία μπορούμε να δούμε μία τυπική ακολουθία με πλαίσια I,B και P.Θα πρέπει να ότι ένα P-πλαίσιο μπορεί να έχει ως αναφορά μόνο ένα προηγούμενο I-πλαίσιο ή ένα προηγούμενο P-πλαίσιο ενώ ένα B-πλαίσιο -16-
μπορεί να έχει ως αναφορά και προηγούμενα και επόμενα I-πλαίσια και B- πλαίσια. Εικόνα 2 Ο αποκωδικοποιητής βίντεο το αποκαθιστά αποκωδικοποιώντας τη ροή των bits (bit stream) ανά πλαίσιο (frame-by-frame).η αποκωδικοποίηση πρέπει πάντα να αρχίζει με I-πλαίσιο το οποίο μπορεί να αποκωδικοποιηθεί ανεξάρτητα σε αντίθεση με τα πλαίσια τύπου P και B τα οποία πρέπει να αποκωδικοποιηθούν μαζί με την τρέχουσα εικόνα αναφοράς ή τις τρέχουσες εικόνες αναφοράς.[2] 2.5.4.3 Ομάδα εικόνων Μία παράμετρος η οποία μπορεί να προσαρμοστεί στο πρότυπο MPEG-4 είναι το μήκος και η δομή της ομάδας εικόνων (Group of Pictures,GOP).Σε μερικά πρότυπα MPEG ο όρος «ομάδα εικόνων» απαντάται και ως «ομάδα βίντεο» (Group of Video, GOV).Η παράμετρος συνήθως επαναλαμβάνεται σε ένα καθορισμένο μοτίβο (pattern).παρατηρήστε το παράδειγμα που ακολουθεί: GOV = 4, e.g. IPPP IPPP... GOV = 15, e.g. IPPPPPPPPPPPPPP IPPPPPPPPPPPPPP... GOV = 8, e.g. IBPBPBPB IBPBPBPB Η κατάλληλη ομάδα εικόνων εξαρτάται από την εφαρμογή.η μείωση της συχνότητας των I-πλαισίων φέρνει ως αποτέλεσμα την μείωση του ρυθμού bit (bit rate).η αφαίρεση των B-πλαισίων έχει ως συνέπεια την μείωση της καθυστέρησης. -17-
2.5.5 MPEG-7 Το MPEG-7 είναι ένα πρότυπο διαφορετικού είδους αφού είναι ένα πρότυπο περιγραφής περιεχομένου πολυμέσων και δεν έχει να κάνει με το αντικείμενο της κωδικοποίησης κινητών εικόνων και ήχου. Με την βοήθεια του MPEG-7 το περιεχόμενο του βίντεο ή μίας οποιασδήποτε πολυμεσικής εφαρμογής περιγράφεται και συνδέεται με το ίδιο το περιεχόμενο, έτσι ώστε να είναι δυνατή η αναζήτηση περιεχομένου το οποίο θα ορίσει ο χρήστης. 2.5.6 MPEG-21 Το MPEG-21 είναι ένα πρότυπο το οποίο καθορίζει μέσα διαμοιρασμού ψηφιακών δικαιωμάτων,αδειών και περιορισμών για ψηφιακό περιεχόμενο.το MPEG-21 είναι ένα πρότυπο βασισμένο σε XML και ο σκοπός ανάπτυξής του είναι η καταπολέμηση της παράνομης διανομής του ψηφιακού περιεχομένου.τέλος το MPEG-21 δεν είναι κατάλληλο για καταστάσεις παρακολούθησης video. Ρυθμός bit μεταβλητών (Variable Bit Rate) και ρυθμός bit σταθερών (Constant Bit Rate) Ένα άλλο χαρακτηριστικό του προτύπου MPEG είναι ο ρυθμός bit που χρησιμοποιείται.στα περισσότερα πρότυπα MPEG είναι δυνατή η επιλογή κατάστασης (mode) ρυθμού bit.οι καταστάσεις προς επιλογή είναι οι ακόλουθες: CBR (Constant Bit Rate) VBR (Variable Bit Rate) Η βέλτιστη επιλογή εξαρτάται από την εφαρμογή και την διαθέσιμη δομή του δικτύου. Σε περίπτωση που το εύρος ζώνης είναι περιορισμένο η προτιμώμενη κατάσταση ρυθμού bit είναι η CBR (Constant Bit Rate) διότι αυτή η κατάσταση παράγει έναν συνεχή και προκαθορισμένο ρυθμό bit.το μειονέκτημα αυτής της κατάστασης είναι ότι η ποιότητα της εικόνας θα ποικίλει. Συγκεκριμένα,η ποιότητα της εικόνας θα είναι υψηλή όταν δεν υπάρχει κίνηση σε μία σκηνή ενώ όταν αυξάνεται η κίνηση η ποιότητα θα μειώνεται. Με την χρήση της κατάστασης VBR (Variable Bit Rate) μπορεί να διατηρηθεί ένα προκαθορισμένο επίπεδο ποιότητας εικόνας ανεξάρτητα από ύπαρξη κίνησης ή μη. Αυτή η συνθήκη είναι συνήθως επιθυμητή σε εφαρμογές παρακολούθησης βίντεο στις οποίες υπάρχει ανάγκη για υψηλή ποιότητα ιδιαίτερα όταν υπάρχει κίνηση σε -18-
μία σκηνή.αφού ο ρυθμός bit σε κατάσταση VBR (Variable Bit Rate) μπορεί να ποικίλει η υποδομή του δικτύου θα πρέπει να είναι καλύτερη και το διαθέσιμο εύρος ζώνης θα πρέπει να είναι μεγαλύτερο. 2.5.7 Η.261 και H.263 Τα Η.261 και H.263 δεν αποτελούν πρότυπα αλλά συστάσεις (recommendations) της επιτροπής ITU. Είναι βασισμένα στην ίδια τεχνολογία με αυτή των προτύπων MPEG και μπορούν να θεωρηθούν απλοποιημένες εκδόσεις της συμπίεσης βίντεο MPEG. Τα Η.261 και H.263 σχεδιάστηκαν αρχικά για τηλεδιασκέψεις οι οποίες απαιτούν χαμηλό εύρος ζώνης.θα πρέπει να σημειώσουμε ότι από τα δύο αυτά πρότυπα λείπουν μερικές από τις πιο βασικές τεχνικές των προτύπων MPEG οι οποίες χρησιμεύουν στην αξιοποίηση της χρήσης του εύρους ζώνης ένα γεγονός που μπορεί να χαρακτηριστεί ως αντιφατικό.συμπερασματικά τα Η.261 και H.263 δεν μπορούν να θεωρηθούν κατάλληλα για κωδικοποίηση βίντεο.[2] 2.5.8 H.264 To H.264 είναι το τελευταίο πρότυπο για κωδικοποίηση βίντεο.η πρωτοβουλία δημιουργίας είχε πολλαπλούς στόχους: Ένας στόχος ήταν η παροχή καλής ποιότητας βίντεο με ουσιαστικά χαμηλότερους ρυθμούς bit (bit rates) από τα προηγούμενα πρότυπα. Καλύτερη ανοχή σε σφάλματα.το πρότυπο είναι σχεδιασμένο για να δίνει μικρότερη καθυστέρηση αλλά και καλύτερη ποιότητα σε περίπτωση υψηλότερης καθυστέρησης. Όλα αυτά τα χαρακτηριστικά ενσωματώθηκαν στο νέο αυτό πρότυπο χωρίς την αύξηση πολυπλοκότητας σχεδιασμού του έτσι ώστε η χρήση του να γίνει μη πρακτική ή ακριβή για την ανάπτυξη εφαρμογών και διαφόρων συστημάτων. Τέλος, η επίτευξη προσαρμοστικότητας του προτύπου έτσι ώστε να είναι δυνατή η χρήση του σε μία ευρεία γκάμα εφαρμογών οι οποίες θα μπορούσαν να έχουν ως χαρακτηριστικά χαμηλούς ή υψηλούς ρυθμούς bit, βίντεο με χαμηλή ή υψηλή ανάλυση,απαιτήσεις για χαμηλή ή υψηλή καθυστέρηση. -19-
Κάποια παραδείγματα τέτοιου είδους εφαρμογών είναι τα ακόλουθα : βίντεο ψυχαγωγίας,όπως για παράδειγμα δορυφορικές μεταδόσεις διαφόρων γεγονότων υπηρεσίες τηλεπικοινωνίας υπηρεσίες streaming Περισσότερες λεπτομέρειες γι αυτό το πρότυπο θα δούμε στο επόμενο κεφάλαιο. -20-
3 ο Κεφάλαιο : Πρότυπο Η.264 Εισαγωγικό σημείωμα Το πρόσφατο πρότυπο συμπίεσης βίντεο ονομάζεται Η.264 ή MPEG-4 Part 10/AVC for Advanced Video Coding προσδοκάται να είναι το πρότυπο το οποίο θα επικρατήσει από εδώ και πέρα. Θα πρέπει να αναφέρουμε ότι το εν λόγω πρότυπο είναι το τελευταίο μίας ακολουθίας προτύπων τα οποία είναι το H.261, MPEG-1 Video, MPEG-2 Video, H.263, MPEG-4 Visual στα οποία αναφερθήκαμε στο προηγούμενο κεφάλαιο. Τα δίκτυα τα οποία χρησιμοποιούνται για μετάδοση βίντεο είναι δίκτυα που χρησιμοποιούνται ως συσκευές σύνδεσης μεταξύ των συσκευών τους μεταγωγείς (switches) και ονομάζονται δίκτυα μεταγωγών (switched networks). Στην ομάδα αυτών των δικτύων ανήκουν το δίκτυο PSTN στο οποίο γίνεται χρήση των προτύπων συμπίεσης H.263 και MPEG-4,το δίκτυο ISDN στο οποίο εφαρμόζεται το πρότυπο H.261 και τα δίκτυα πακέτων (packet networks) όπως το δίκτυο ATM στο οποίο χρησιμοποιούνται τα πρότυπα συμπίεσης MPEG-2 και MPEG-4, το Διαδίκτυο (Internet) στο οποίο χρησιμοποιούνται τα πρότυπα συμπίεσης H.263, MPEG-4 και τα κινητά δίκτυα στα οποία εφαρμόζονται τα πρότυπα H.263, MPEG-4. Η σπουδαιότητα των νέων τεχνολογιών πρόσβασης σε δίκτυα όπως για παράδειγμα η τεχνολογία UTMS(Universal Mobile Telecommunications System ) δημιούργησαν την απαίτηση για ένα καινούργιο πρότυπο κωδικοποίησης βίντεο.[3] 3.1 Τι είναι το Η.264; Το H.264 Advanced Video Coding είναι ένα βιομηχανικό πρότυπο για κωδικοποίηση βίντεο,μία ομάδα εργαλείων για συμπίεση βίντεο και ένα στάδιο στο συνεχώς εξελισσόμενο τοπίο της ψηφιακής επικοινωνίας με βίντεο. 3.1.1 Μία μορφή συμπίεσης βίντεο Το H.264 αποτελεί μία μέθοδο και μία μορφή συμπίεσης βίντεο.συμπίεση βίντεο ονομάζουμε την διαδικασία μετατροπής ενός ψηφιακού βίντεο σε μορφή η οποία καταλαμβάνει λιγότερο χώρο στο κανάλι μετάδοσης σε περίπτωση που επιθυμούμε να το -21-
μεταδώσουμε ή σε χώρο αποθήκευσης σε περίπτωση που θέλουμε να το αποθηκεύσουμε. Η συμπίεση βίντεο ή αλλιώς η κωδικοποίηση βίντεο είναι μία τεχνολογία ζωτικής σημασίας για εφαρμογές όπως η ψηφιακή τηλεόραση, DVD, τηλεδιασκέψεις και ροής βίντεο μέσω Διαδικτύου (internet video streaming ). Η τυποποίηση της συμπίεσης βίντεο κάνει εφικτή την διαλειτουργικότητα προϊόντων από διαφορετικούς κατασκευαστές.με την βοήθεια ενός κωδικοποιητή μετατρέπεται ένα βίντεο σε μία συμπιεσμένη μορφή και ένας αποκωδικοποιητής το επαναφέρει στην αρχική του μορφή. Σε μία τυπική εφαρμογή του H.264 όπως για παράδειγμα μία εφαρμογή εξ αποστάσεως παρακολούθησης : Το βίντεο από μία κάμερα λήψης κωδικοποιείται με την χρήση του προτύπου H.264 με σκοπό την παραγωγή μίας ροής bit (bitstream).στη συνέχεια η παραγόμενη ροή στέλνεται μέσω ενός δικτύου σε έναν αποκωδικοποιητή με την συνδρομή του οποίου το βίντεο ανακτά τη δομή του βίντεο-πηγής έτσι ώστε να είναι κατάλληλο προς θέαση ή αποθήκευση. Στην παρακάτω εικόνα βλέπουμε πως ένα βίντεο-πηγή ή αν θέλετε πιο απλά ένα μη συμπιεσμένο υλικό βίντεο κωδικοποιείται από έναν κωδικοποιητή και αποθηκεύεται σε έναν εξυπηρετητή (server).το συμπιεσμένο βίντεο,δηλαδή η ακολουθία των bits,μεταδίδεται σε έναν ή περισσότερους πελάτες (clients) [2] Εικόνα 3-22-
Σε μία αμφίδρομη «συνομιλητική» (conversational) εφαρμογή βίντεο όπως για παράδειγμα μία εφαρμογή τηλεδιάσκεψης (videoconferencing) (Apple,iChat, Skype Video ) και στις δύο άκρες του συστήματος είναι απαραίτητη η παρουσία ενός κωδικοποιητή για την συμπίεση του βίντεο το οποίο προέρχεται από την κάμερα και ενός αποκωδικοποιητή για την αποσυμπίεση του βίντεο προκειμένου να γίνει κατάλληλο προς θέαση.όλα όσα αναφέραμε παρουσιάζονται στο σχήμα που ακολουθεί :[2] Εικόνα 4 3.1.2 Ένα βιομηχανικό πρότυπο Το Recommendation H.264: Advanced Video Coding είναι ένα επίσημο έγγραφο το οποίο έχουν εκδώσει από κοινού δύο σώματα προτυποποίησης: το ITU-T (International Telecommunication Union) και το ISO/IEC (International Organisation for Standardisation/International Electrotechnical Commission). ITU-T είναι ο τομέας ο οποίος συντονίζει τα πρότυπα τηλεπικοινωνιών εκ μέρους της Διεθνούς Ένωσης Τηλεπικοινωνιών (International Telecommunication Union). Η λέξη ISO αποτελεί το ακρωνύμιο των λέξεων International Organization for Standardization (Διεθνής Οργανισμός Τυποποίησης ) και η λέξη IEC είναι ακρωνύμιο των λέξεων International Electrotechnical Commission (Διεθνής Ηλεκτροτεχνική Επιτροπή ) που επιβλέπει όλα τα πρότυπα για ό- λες τις ηλεκτρικές,ηλεκτρονικές και συσχετιζόμενες με αυτούς τους δύο τομείς τεχνολογίες. Το όνομα Η.264 χρησιμοποιήθηκε από τον ITU-T ενώ ο ISO/IEC ονόμασε το πρότυπο MPEG-4 Part 10/AVC αφού παρουσιάστηκε ως καινούργιο τμήμα της σουίτας του προτύπου MPEG-4. Σε αυτό το σημείο θα πρέπει να αναφέρουμε ότι η σουίτα του προτύπου MPEG-4 περιλαμβάνει για παράδειγμα MPEG-4 Part 2 το οποίο είναι ένα -23-
πρότυπο που χρησιμοποιείται σε κωδικοποιητές βασισμένους σε IP( IP-based video encoders ) και σε κάμερες δικτύου. Στο έγγραφο αυτό ορίζεται μία μορφή ή πιο απλά ένα συντακτικό για συμπιεσμένα βίντεο και μία μέθοδο αποκωδικοποίησης αυτού του συντακτικού έτσι ώστε να παραχθεί ένα βίντεο κατάλληλο προς θέαση.στο έγγραφο τυποποίησης δεν ορίζεται ακριβώς ο τρόπος κωδικοποίησης ψηφιακού βίντεο αυτό αφήνεται στον κατασκευαστή του κωδικοποιητή βίντεο-αλλά πρακτικά ο κωδικοποιητής καθρεπτίζει τα βήματα της διαδικασίας αποκωδικοποίησης.στο σχήμα που ακολουθεί απεικονίζεται η διαδικασία κωδικοποίησης και αποκωδικοποίησης με την χρήση του προτύπου H.264[2]. Εικόνα 5 Το Η.264 είναι ένα πρότυπο το οποίο έχει άδεια χρήσεως (licensed). Υποστηρίζει τις πιο αποτελεσματικές τεχνικές συμπίεσης βίντεο που υπάρχουν. Το πρότυπο Η.264 παρέχει αυξημένη δυνατότητα συμπίεσης βίντεο. Χωρίς συμβιβασμούς αναφορικά με την ποιότητα της εικόνας,ένας κωδικοποιητής Η.264 είναι εξοπλισμένος τεχνολογικά έτσι ώστε να είναι σε θέση να μειώσει το μέγεθος ενός αρχείου ψηφιακού βίντεο κατά ογδόντα τοις εκατό (80%) περισσότερο από το πρότυπο Motion JPEG και κατά πενήντα τοις εκατό περισσότερο από το πρότυπο MPEG-4 Part 2.Αυτό σημαίνει πρακτικά ότι απαιτείται πολύ λιγότερο εύρος ζώνης -24-
και χώρος αποθήκευσης για ένα αρχείο βίντεο. Επίσης σημαίνει ότι μπορεί να επιτευχτεί υψηλότερης ποιότητας βίντεο για ένα δεδομένο ρυθμό βίντεο( bit rate).[2] 3.1.3 Μία εργαλειοθήκη για συμπίεση βίντεο Το H.264/AVC περιγράφει μία ομάδα εργαλείων και μεθόδων για συμπίεση βίντεο. Αναλυτικότερα το πρότυπο ορίζει πως ένα βίντεο το οποίο κωδικοποιείται με την χρήση αυτών των εργαλείων θα πρέπει να παρουσιάζεται και να αποκωδικοποιείται. Ένας κωδικοποιητής βίντεο έχει την τεχνική δυνατότητα να επιλέγει τα εργαλεία που θα χρησιμοποιήσει και τον τρόπο που θα τα εφαρμόσει στην τρέχουσα ακολουθία βίντεο με μερικούς περιορισμούς. Ένας αποκωδικοποιητής συμβατός με το πρότυπο H.264/AVC πρέπει να έχει την τεχνική δυνατότητα χρήσης ενός υποσυνόλου εργαλείων τα οποία είναι γνωστά με το όνομα προφίλ (profile)[2] 3.2 Περιγραφή τρόπου λειτουργίας της συμπίεσης βίντεο Στη σύγχρονη επικοινωνία με βίντεο γίνεται χρήση ψηφιακών βίντεο το οποίο έχει ληφθεί από κάποια κάμερα ή βίντεο τα οποία έχουν δημιουργηθεί για κάποιο σκοπό με την χρήση κάποιου είδους λογισμικού όπως για παράδειγμα λογισμικό κινούμενων εικόνων (animation software). Στην εικόνα που ακολουθεί παρουσιάζουμε αρχικά ένα scope τυποποίησης κωδικοποίησης βίντεο στο οποίο βλέπουμε καθαρά ότι ορίζεται μόνο η σημασιολογία (semantics ) καθώς και το συντακτικό της ροής των bit (bitstream). Στο προαιρετικό στάδιο της προεπεξεργασίας ο αποστολέας του βίντεο μπορεί να επιλέξει να επεξεργαστεί το βίντεό του με την χρήση κάποιου ειδικού λογισμικού όπως κάποιου ειδικού μετατροπέα(converter) ή με την χρήση τεχνικών επαύξησης (enhancement techniques). Στην έξοδο της προεπεξεργασίας παίρνουμε το βίντεο επεξεργασμένο και στη συνέχεια έρχεται η σειρά της κωδικοποίησης.στην έξοδο του κωδικοποιητή παίρνουμε το βίντεο με την μορφή ροής bit (bitstream). Μετά από την μετάδοση της ροής των bit πάνω από ένα δίκτυο μετάδοσης ή την αποθήκευσή του αν αυτό είναι το ζητούμενο προκειμένου να προβάλλουμε το βίντεο μας -25-
Πρώτα το αποκωδικοποιούμε και, αφού, πάλι, περάσει από το προαιρετικό στάδιο της μετα-επεξεργασίας το οποίο ίσως περιλαμβάνει κάποιου είδους μετατροπής (format conversion) και διόρθωση σφαλμάτων, προβάλλεται.[4] Βίντεο-πηγή Προεπεξεργασία Βίντεο Κωδικοποίηση Ροή bit (Bitstream) Κανάλι/ Λήψη Βίντεο Μετα-επεξεργασία και ανάκτηση σφαλμάτων Μέσο αποθήκευσης Βίντεο Ροή bit (Bitstream) Αποκωδικοποίηση Εικόνα 6 Όπως προαναφέραμε το πρότυπο ορίζει τον συντακτικό (syntax) και την σημασιολογία (semantics) της ροής bit όπως επίσης και την μέθοδο επεξεργασίας η οποία χρειάζεται να γίνει από τον αποκωδικοποιητή προκειμένου τα μετατραπεί η ροή bit σε βίντεο κατάλληλο για θέαση. Γι αυτό τον λόγο οι κατασκευαστές τον αποκωδικοποιητών βίντεο μπορούν μόνο να ανταγωνιστούν σε τομείς όπως το κόστος και στις απαιτήσεις υλικού. Ένας άλλος τομέας για τον οποίο οι κατασκευαστές μπορούν να παρέχουν ανταγωνιστικά εργαλεία που μπορεί να βοηθήσουν στην δημιουργία μίας βελτιστοποιημένης αποκωδικοποιημένης ροής βίντεο για την εφαρμογή-στόχο. Επιπλέον στο πρότυπο δεν ορίζεται πως γίνεται η κωδικοποίηση και η προεπεξεργασία ενός βίντεο και έτσι οι κατασκευαστές κωδικοποιητών μπορούν να αναπτύξουν τη δημιουργικότητά τους στα πεδία της αποδοτικότητας του κώδικα, της ανοχής στα σφάλματα (error resilience) και της ανάκαμψης από σφάλματα (error recovery ) καθώς και στις απαιτήσεις υλικού. Ταυτόχρονα στην τυποποίησης της ροής bit(bit stream) και στον αποκωδικοποιητή διατηρούνται οι θεμελιώδεις απαιτήσεις για οποιοδήποτε πρότυπο επικοινωνίας.με αυτόν τον τρόπο επιτυγχάνεται η διαλειτουργικότητα.[4] -26-
Για ικανοποιητική μετάδοση σε οποιαδήποτε περιβάλλοντα δεν είναι απαραίτητη μόνο η παράμετρος της αποδοτικότητας του κώδικα αλλά και η απρόσκοπτη και εύκολη ενσωμάτωση του κωδικοποιημένου βίντεο στο τρέχον και μελλοντικό πρωτόκολλο και στις τρέχουσες και μελλοντικές αρχιτεκτονικές δικτύου.αυτό συμπεριλαμβάνει και το Internet όπως επίσης και τα ασύρματα δίκτυα.η προσαρμογή μίας οποιασδήποτε αναπαράστασης κωδικοποιημένου βίντεο ή ροής bit (bitstream) σε οποιοδήποτε δίκτυο επικοινωνίας τυπικά ορίστηκε στις προδιαγραφές συστήματος (system specifications) των προηγουμένων προτύπων MPEG όπως επίσης και στις προδιαγραφές συστήματος των προτύπων H.320 και H.324. Θα πρέπει να αναφέρουμε σε αυτό το σημείο ότι μόνο μία στενή ενσωμάτωση της προσαρμογής δικτύου και της κωδικοποίησης βίντεο μπορεί να φέρει σαν αποτέλεσμα την βέλτιστη απόδοση ενός συστήματος επικοινωνίας.γι αυτό τον λόγο το πρωτόκολλο H.264/AVC αποτελείται από δύο εννοιολογικά επίπεδα (conceptual layers) όπως φαίνεται στο σχήμα που ακολουθεί. Εικόνα 7 Το επίπεδο κωδικοποίησης βίντεο (video coding layer ) ορίζει την ικανοποιητική αναπαράσταση του βίντεο Το επίπεδο προσαρμογής δικτύου (network adaptation layer) έχουμε την μετατροπή της αναπαράστασης του βίντεο του επιπέδου κωδικοποίησης βίντεο σε μορφή κατάλληλη για ειδικά στρώματα μεταφοράς ή,αν υπάρχει ανάγκη αποθήκευσης, σε μορφή κατάλληλη για το συγκεκριμένο μέσο αποθήκευσης.[4] -27-
3.3 Ανάλυση ορισμών τυποποιημένων τεχνικών κωδικοποίησης βίντεο Οι τυποποιημένες τεχνικές κωδικοποίησης βίντεο όπως το πρότυπο H.264/AVC είναι βασισμένες σε υβριδική κωδικοποίηση βίντεο.στην παρακάτω εικόνα βλέπουμε ένα γενικό block διάγραμμα ενός υβριδικού κωδικοποιητή βίντεο με αντιστάθμιση κίνησης (motion compensation ). To προσαρμοστικό φίλτρο απεμπλοκής ( adaptive deblocking filter )και η ενδοπλαισιακή πρόβλεψη (intra-frame prediction) είναι δύο καινούργια εργαλεία του H.264. Η εικόνα εισαγωγής διαιρείται σε macroblocks. Ένα macroblock, πολύ απλά μιλώντας, είναι μία μονάδα πρόβλεψης αντιστάθμισης κίνησης (motion compensated prediction). Η αντιστάθμιση κίνησης (motion compensation ) είναι μία αλγοριθμική τεχνική με την βοήθεια της οποίας είναι δυνατή η πρόβλεψη πλαισίου ενός βίντεο δεδομένων των προηγούμενων ή /και του μελλοντικών πλαισίων με βάση την κίνηση της κάμερας ή την κίνηση των αντικειμένων στο βίντεο. Κάθε macroblock αποτελείται από τρία στοιχεία τα Y,Cr και Cb.Το στοιχείο Y ο- νομάζεται συστατικό φωτεινότητας (luminance component ) και αντιπροσωπεύει αυτό ακριβώς που υπονοεί το όνομα δηλαδή την πληροφορία αναφορικά με την ένταση φωτός (brightness information). Τα στοιχεία,cr και Cb αντιπροσωπεύουν την πληροφορία που αφορά το χρώμα (color information). Ένα macroblock αποτελείται από μία ομάδα (block ) από στοιχεία εικόνων(picture elements) διάστασης 16 επί 16 για το συστατικό φωτεινότητας (luminance component ) και από δύο ομάδες (blocks) από στοιχεία εικόνων (picture elements) διάστασης 8 επί 8-28-
Εικόνα 8 Με την συμπίεση βίντεο επιτυγχάνεται η αφαίρεση πλεοναζόντων δεδομένων βίντεο έτσι ώστε το αρχείο ψηφιακού βίντεο να μπορεί να σταλεί και να αποθηκευτεί με ευκολία.η διαδικασία συμπεριλαμβάνει την εφαρμογή ενός αλγορίθμου στο βίντεο-πηγή έτσι ώστε να δημιουργηθεί ένα συμπιεσμένο αρχείο το οποίο θα είναι έτοιμο για μετάδοση ή αποθήκευσή του.για να παιχθεί το συμπιεσμένο αρχείο εφαρμόζεται ένας αντίστροφος αλγόριθμος για να παραχθεί ένα βίντεο το οποίο θα προβάλλει το ίδιο περιεχόμενο με εκείνο που περιέχεται στο βίντεο-πηγή.έχουμε ήδη αναφέρει στο προηγούμενο κεφάλαιο τον όρο καθυστέρηση (latency) αλλά σε αυτό το σημείο θα πρέπει να τονίσουμε ότι η καθυστέρηση περιλαμβάνει τον χρόνο συμπίεσης, αποστολής,αποσυμπίεσης και προβολής του βίντεο.[4] Ένα ζευγάρι αλγορίθμων το οποίο συνεργάζεται ονομάζεται κωδικοποιητήςαποκωδικοποιητής βίντεο (video codec,encoder/decoder). Οι κωδικοποιητές/αποκωδικοποιητές που εφαρμόζουν διαφορετικά πρότυπα είναι σχεδόν πάντα α- σύμβατοι μεταξύ τους.για να το εξηγήσουμε καλύτερα το περιεχόμενο ενός βίντεο το οποίο έχει συμπιεστεί με την χρήση ενός προτύπου δεν μπορεί να αποσυμπιεστεί χρησιμοποιώντας ένα άλλο πρότυπο.για παράδειγμα ένας κωδικοποιητής ο οποίος έχει υλοποιηθεί σύμφωνα με το πρότυπο H.264 δεν μπορεί να δουλέψει με έναν αποκωδικοποιητή MPEG-4 Part 2.Αυτό συμβαίνει διότι ένας αλγόριθμος δεν μπορεί να αποκωδικοποιήσει σωστά την έξοδο από έναν άλλο αλγόριθμο αλλά είναι δυνατόν να εφαρμόσει πολλούς διαφορετικούς αλγόριθμους στο ίδιο λογισμικό ή υλικό και έτσι θα είναι δυνατή η συμπίεση πολλών προτύπων. -29-
Διαφορετικά πρότυπα συμπίεσης χρησιμοποιούν διαφορετικές μεθόδους μείωσης δεδομένων και αυτό έχει ως συνέπεια την διαφοροποίηση αποτελεσμάτων αναφορικά με τον ρυθμό bit (bit rate) την ποιότητα του βίντεο και την καθυστέρηση(latency). Είναι απαραίτητο να αναφέρουμε σε αυτό το σημείο ότι τα αποτελέσματα των κωδικοποιητών που χρησιμοποιούν το ίδιο πρότυπο συμπίεσης μπορεί να διαφέρουν επειδή ο σχεδιαστής ενός κωδικοποιητή μπορεί να επιλέξει να εφαρμόσει διαφορετικές ο- μάδες εργαλείων οι οποίες βέβαια ορίζονται από το συγκεκριμένο πρότυπο.αν η έξοδος ενός αποκωδικοποιητή συμβαδίζει με τις ρυθμίσεις ενός προτύπου και ενός αποκωδικοποιητή είναι δυνατό να γίνουν διαφορετικές εφαρμογές. Αυτό το γεγονός μας δίνει ένα πλεονέκτημα διότι οι διαφορετικές εφαρμογές έχουν διαφορετικούς στόχους και προϋπολογισμούς. Οι επαγγελματικοί κωδικοποιητές μη πραγματικού χρόνου για διαχείριση οπτικών μέσων (optical media) θα πρέπει να έχουν την επιλογή της παραγωγής καλύτερης ποιότητας κωδικοποιημένου βίντεο από το υλικό ενός κωδικοποιητή πραγματικού χρόνου ο οποίος χρησιμοποιείται για τηλεδιασκέψεις ο οποίος ενσωματώνεται σε μία συσκευή χειρός. Συνεπώς ένα δεδομένο πρότυπο δεν μπορεί να εγγυηθεί έναν δεδομένο ρυθμό bit (bit rate) ή μία δεδομένη ποιότητα βίντεο.επιπροσθέτως η απόδοση ενός προτύπου δεν μπορεί να συγκριθεί με την απόδοση άλλων προτύπων ή και με άλλες εφαρμογές του ίδιου προτύπου χωρίς να ορίζουμε εξ αρχής των τρόπο εφαρμογής τους. Σε αντίθεση με τον κωδικοποιητή ο αποκωδικοποιητής θα πρέπει να εφαρμόσει όλα τα απαιτούμενα μέλη ενός προτύπου έτσι ώστε η αποκωδικοποίηση μίας συμβατής ροής bit (bit stream)να είναι επιτυχής. Αυτό συμβαίνει διότι σε ένα πρότυπο ορίζεται ε- πακριβώς ο τρόπος αποκατάστασης κάθε bit ενός συμπιεσμένου βίντεο με την χρήση ενός αλγόριθμου αποσυμπίεσης.[4] 3.4 Ανάπτυξη του προτύπου Η.264 Είναι λογικό ότι ο σκοπός ανάπτυξης του προτύπου Η.264 ήταν η βελτίωση κάποιων αδυναμιών των προηγούμενων προτύπων. Το πρότυπο Η.264 έχει την τεχνολογία να υποστηρίξει τα εξής: υλοποιήσεις που κάνουν εφικτή μία μείωση του ρυθμού bit η οποία κυμαίνεται κατά μέσο όρο στο πενήντα τοις εκατό (50%) -30-
υπάρχει μία ανοχή σε σφάλματα και έτσι τα λάθη εκπομπής μέσω διαφόρων δικτύων είναι ανεκτά δυνατότητες χαμηλής καθυστέρησης και μεγαλύτερη ποιότητα για υψηλότερες καθυστερήσεις ξεκάθαρο συντακτικό πράγμα το οποίο διευκολύνει τις υλοποιήσεις ακριβές ταίριασμα αποκωδικοποίησης το οποίο καθορίζει ακριβώς πως πρέπει να γίνονται οι αριθμητικοί υπολογισμοί από έναν κωδικοποιητή και έναν αποκωδικοποιητή για την αποφυγή σφαλμάτων. Το Η.264 έχει την ευελιξία υποστήριξης μίας ευρείας ποικιλίας εφαρμογών με διαφορετικές απαιτήσεις σε ρυθμό bit.για παράδειγμα σε εφαρμογές βίντεο ψυχαγωγίας το H.264 έχει μία απόδοση ρυθμού bit από ένα έως δέκα Mbit/s (1-10 Mbit/s) με υψηλή καθυστέρηση ενώ για υπηρεσίες τηλεπικοινωνίας το πρωτόκολλο έχει μία απόδοση ρυθμού bit κάτω από ένα Mbit/s (1 Mbit/s) με χαμηλή καθυστέρηση.[3] 3.5 Προφίλ και επίπεδα του Η.264 Οι ομάδες οι οποίες ασχολήθηκαν με την ανάπτυξη του προτύπου Η.264 συγκεντρώθηκαν στην δημιουργία μίας απλής και ξεκάθαρης λύσης περιορίζοντας τις επιλογές και τα χαρακτηριστικά στο ελάχιστο. Μία σπουδαία πλευρά του προτύπου σε σύγκριση με άλλα πρότυπα συμπίεσης βίντεο είναι η παροχή των δυνατοτήτων του σε προφίλ,δηλαδή σε ομάδες χαρακτηριστικών των αλγορίθμων και επίπεδα,δηλαδή σε τάξεις απόδοσης οι οποίες υποστηρίζουν διάφορες εφαρμογές. Το πρότυπο Η.264 έχει επτά προφίλ και το καθένα από αυτά στοχεύει σε μία συγκεκριμένη τάξη εφαρμογών.κάθε προφίλ ορίζει ποια ομάδα χαρακτηριστικών μπορεί να χρησιμοποιεί ο κωδικοποιητής και οριοθετεί την πολυπλοκότητα υλοποίησης του αποκωδικοποιητή Οι κάμερες δικτύου και οι κωδικοποιητές βίντεο χρησιμοποιούν κατά κανόνα το προφίλ το οποίο ονομάζεται baseline ( baseline profile) το οποίο αρχικά προοριζόταν για εφαρμογές με περιορισμένους υπολογιστικούς πόρους.το προφίλ baseline είναι το καταλληλότερο δεδομένης της διαθέσιμης απόδοσης σε κωδικοποιητή πραγματικού χρόνου ο οποίος είναι ενσωματωμένος σε ένα δικτυακό προϊόν το οποίο έχει να κάνει με την προβολή ή την λήψη βίντεο.αυτό το προφίλ επιπλέον κάνει δυνατή την χαμηλή καθυστέρηση μία απαίτηση μεγάλης σημασίας για τα βίντεο παρακολούθησης. -31-
Το πρότυπο Η.264 έχει έντεκα επίπεδα ή αλλιώς βαθμούς δυνατοτήτων τα οποία περιορίζουν την απόδοση,το εύρος ζώνης και τις απαιτήσεις σε μνήμη.κάθε επίπεδο ορίζει τον ρυθμό σε bits (bit rate)και τον ρυθμό κωδικοποίησης σε macroblock ανά δευτερόλεπτο (macroblock per second) για αναλύσεις εύρους από QCIF μέχρι HDTV και παραπάνω.όταν έχουμε μεγαλύτερη ανάλυση απαιτείται και μεγαλύτερο επίπεδο.[2] 3.6 Τρόπος λειτουργίας ενός συστήματος κωδικοποίησης-αποκωδικοποίησης βασισμένο στο πρότυπο H.264 Ένας κωδικοποιητής βασισμένος στο πρότυπο H.264 έχει την τεχνική δυνατότητα διενέργειας διαδικασιών πρόβλεψης,μετασχηματισμού και κωδικοποίησης.ένας αποκωδικοποιητής βασισμένος στο πρότυπο H.264 έχει την τεχνική δυνατότητα διενέργειας συμπληρωματικών διαδικασιών αποκωδικοποίησης,αντίστροφου μετασχηματισμού και ανακατασκευής έτσι ώστε να καταστεί δυνατή η αναπαραγωγή μίας αποκωδικοποιημένης ακολουθίας βίντεο (βίντεο προς θέαση ). Όπως φαίνεται στην εικόνα που ακολουθεί μία ακολουθία αρχικών πλαισίων βίντεο κωδικοποιείται με βάση το πρότυπο H.264 και σαν αποτέλεσμα αυτής της κωδικοποίησης έχουμε μία σειρά από bits τα οποία αντιπροσωπεύουν το βίντεο σε συμπιεσμένη μορφή. Αυτή η συμπιεσμένη ροή των bits (bitstream) μεταδίδεται ή αποθηκεύεται και μπορεί να αποκωδικοποιηθεί έτσι ώστε να ανακατασκευαστεί η ακολουθία βίντεο (video sequence). Η αποκωδικοποιημένη μορφή του βίντεο κατά κανόνα δεν είναι ταυτόσημη με εκείνη της αρχικής ακολουθίας διότι το πρότυπο H.264 είναι απωλεστικό (lossy).αυτό πρακτικά σημαίνει πως ίσως η ποιότητα εικόνας αλλοιωθεί κατά την διάρκεια της συμπίεσης. -32-
Εικόνα 9 Ένα πλαίσιο ή ένα πεδίο προς κωδικοποίηση όπως για παράδειγμα το πλαίσιο Α του σχήματος που ακολουθεί επεξεργάζεται από έναν κωδικοποιητή συμβατό με το πρότυπο H.264.Ο κωδικοποιητής είναι φτιαγμένος έτσι ώστε να υπάρχει δυνατότητα κωδικοποίησης και αποστολής του πλαισίου σαν τμήμα της ροής των bit (bitstream) ή του κωδικοποιημενου αρχείου καθώς και η δυνατότητα ανακατασκευής του πλαισίου, δηλαδή η δημιουργία ενός αντιγράφου του αποκωδικοποιημένου πλαισίου το οποίο στην εικόνα μας έχει την ονομασία Α που τελικά θα παραχθεί από τον αποκωδικοποιητή. Αυτό το ανακατασκευασμένο αντίγραφο μπορεί να αποθηκευτεί σε μία ενδιάμεση μνήμη κωδικοποίησης για αποθήκευση εικόνων (coded picture buffer, CPB ) και στη συνέχεια χρησιμοποιείται καθ όλη την διάρκεια της κωδικοποίησης των άλλων πλαισίων.ο ρόλος του αποκωδικοποιητή είναι η λήψη της κωδικοποιημένης ροής των bit(bitstream) και η αποκωδικοποίηση του πλαισίου Α για θέαση ή για περαιτέρω επεξεργασία. Ταυτόχρονα στον αποκωδικοποιητή μπορεί να υπάρχει η δυνατότητα αποθήκευσης ενός αντιγράφου του πλαισίου Α σε μία ενδιάμεση μνήμη αποκωδικοποίησης ( -33-
decoded picture buffer, DPB) και στην συνέχεια χρησιμοποιείται καθόλη την διάρκεια της αποκωδικοποίησης των άλλων πλαισίων. Εικόνα 10 Η δομή ενός κωδικοποιητή βασισμένου στο πρότυπο H.264 φαίνεται στην εικόνα που ακολουθεί. Η επεξεργασία των δεδομένων γίνεται με μονάδες οι οποίες ονομάζονται macroblocks (MB) οι οποίες ανταποκρίνονται σε pixels 16 επί 16. Στον κωδικοποιητή παράγεται ένα macroblock πρόβλεψης (prediction MB) το οποίο αφαιρείται από το τρέχον macroblock (current MB) έτσι ώστε να σχηματιστεί ένα υπόλοιπο macroblock (residual MB). Το υπόλοιπο macroblock (residual MB) μετασχηματίζεται,κβαντοποιείται και κωδικοποιείται.παράλληλα,τα κβαντοποιημένα δεδομένα κλιμακώνονται εκ νέου,μετασχηματίζονται αντίστροφα και προστίθενται στο macroblock πρόβλεψης (prediction macroblock) έτσι ώστε να γίνει εφικτή η ανακατασκευή μίας κωδικοποιημένης μορφής του πλαισίου το οποίο αποθηκεύεται για προβλέψεις που θα λάβουν χώρα αργότερα. -34-
Εικόνα 11 Η δομή ενός αποκωδικοποιητή βασισμένου στο πρότυπο H.264 φαίνεται στην εικόνα που ακολουθεί. Σε έναν αποκωδικοποιητή έναν macroblock αποκωδικοποιείται κλιμακώνεται εκ νέου και μετασχηματίζεται αντίστροφα έτσι ώστε να είναι εφικτός ο σχηματισμός ενός αποκωδικοποιημένου υπόλοιπου macroblock ( residual macroblock ).Ο αποκωδικοποιητής παράγει την ίδια πρόβλεψη η οποία έχει παραχθεί στον κωδικοποιητή και αυτή προστίθεται στο αποκωδικοποιημένο υπόλοιπο macroblock (residual macroblock ) έτσι ώστε να παραχθεί ένα αποκωδικοποιημένο macroblock.[2] Εικόνα 12-35-
3.7 Διαδικασίες κωδικοποιητή 3.7.1 Πρόβλεψη (Prediction) Ο κωδικοποιητής έχει την τεχνική δυνατότητα παραγωγής μίας πρόβλεψης του τρέχοντος macroblock η οποία βασίζεται σε δεδομένα τα οποία έχουν κωδικοποιηθεί προηγουμένως είτε από το τρέχον πλαίσιο με την χρήση της ενδοπρόβλεψης ( intra prediction ) είτε από άλλα πλαίσια τα οποία έχουν ήδη κωδικοποιηθεί με την χρήση της πρόβλεψης μεταξύ πλαισίων (inter prediction).ο κωδικοποιητής αφαιρεί την πρόβλεψη από το τρέχον macroblock έτσι ώστε να δημιουργηθεί ένα υπόλοιπο (residual macroblock ).Στην παρακάτω εικόνα βλέπουμε ένα διάγραμμα ροής πρόβλεψης. Εικόνα 13 Οι μέθοδοι πρόβλεψης οι οποίες υποστηρίζονται από το πρότυπο H.264 είναι πιο ευέλικτες από εκείνες των προηγούμενων προτύπων διότι υπάρχει η δυνατότητα προβλέψεων με μεγαλύτερο βαθμό ακρίβειας πράγμα το οποίο σημαίνει ότι η συμπίεση θα είναι περισσότερο αποτελεσματική. Στην ενδοπρόβλεψη γίνεται χρήση block τα οποία έχουν μέγεθος 16 επί 16 και 4 επί 4 για να είναι δυνατή η πρόβλεψη του macroblock από γειτονικά προηγουμένως κωδικοποιημένα pixel τα οποία ανήκουν στο ίδιο πλαίσιο.οι τιμές των γειτονικών pixels που έχουν εκτιμηθεί προηγουμένως εκτιμώνται για να γίνει μία πρόβλεψη του τρέχοντος macroblock. Στην πρόβλεψη μεταξύ πλαισίων γίνεται χρήση ενός εύρους block μεγέθους από 16 επί 16 έως 4 επί 4 για πρόβλεψη pixel στο τρέχον πλαίσιο από παρόμοιες περιοχές σε πλαίσια τα οποία έχουν κωδικοποιηθεί προηγουμένως τα οποία μπορεί να βρίσκονται πριν ή μετά από το τρέχον πλαίσιο σε σειρά θέασης.[2] -36-
3.7.2 Μετασχηματισμός και κβαντοποίηση Ένα block υπόλοιπων δειγμάτων μετασχηματίζεται με την χρήση μιας μορφής Διακριτού Μετασχηματισμού Συνημιτόνου ( Discrete Cosine Transform ). Ένας τέτοιος σχηματισμός έχει ως έξοδο μία ομάδα συντελεστών από τους οποίους ο κάθε ένας είναι μία βαρύνουσα τιμή για ένα σταθερό πρότυπο βάσης.όταν αυτοί οι συντελεστές συνδυαστούν τα πρότυπα βάσης αναδημιουργούν τα υπόλοιπα δείγματα.η έξοδος του μετασχηματισμού κβαντίζεται δηλαδή κάθε συντελεστής διαιρείται με μία ακέραια τιμή.[3] 3.7.3 Κωδικοποίηση ροής bit Η διαδικασία κωδικοποίησης βίντεο έχει σαν αποτέλεσμα την παραγωγή ενός αριθμού τιμών που θα πρέπει να κωδικοποιηθούν για να σχηματίσουν την συμπιεσμένη ροή bit. Αυτές οι τιμές συμπεριλαμβάνουν τα ακόλουθα : 1. κβαντισμένους συντελεστές μετασχηματισμού 2. πληροφορίες για να είναι δυνατή η ανακατασκευή της πρόβλεψης στον αποκωδικοποιητή 3. πληροφορίες για την δομή των συμπιεσμένων δεδομένων και των εργαλείων συμπίεσης που χρησιμοποιήθηκαν κατά την διάρκεια της κωδικοποίησης 4. πληροφορίες για την πλήρη ακολουθία του βίντεο Αυτές οι τιμές και οι παράμετροι μετατρέπονται σε δυαδικούς κώδικες με την χρήση κώδικα μήκους μεταβλητής και/ή αριθμητικό κώδικα.[3] 3.8 Διαδικασίες αποκωδικοποιητή 3.8.1 Αποκωδικοποίηση ροής bit Ένας αποκωδικοποιητής βίντεο λαμβάνει την συμπιεσμένη ακολουθία ροής bit, αποκωδικοποιεί κάθε ένα από τα συντακτικά στοιχεία και εξάγει την πληροφορία που περιγράφηκε στην προηγούμενη παράγραφο η οποία χρησιμοποιείται για αντιστροφή της διαδικασίας κωδικοποίησης και για την αναδημιουργία μίας ακολουθίας εικόνων βίντεο.[3] 3.8.2 Εκ νέου κλιμάκωση και αντίστροφος μετασχηματισμός Οι κβαντισμένοι και μετασχηματισμένοι συντελεστές κλιμακώνονται εκ νέου δηλαδή κάθε ένας από αυτούς πολλαπλασιάζεται με μία ακέραια τιμή για να αποκατασταθεί η -37-
αρχική κλίμακά του.ένας αντίστροφος μετασχηματισμός συνδυάζει τα σταθερά πρότυπα βάσης και την βαρύτητα των εκ νέου κλιμακούμενων συντελεστών.[2] 3.8.3 Ανακατασκευή Για κάθε macroblock o αποκωδικοποιητής σχηματίζει μία ταυτόσημη πρόβλεψη με αυτήν που δημιουργήθηκε από τον κωδικοποιητή με την χρήση ενδοπρόβλεψης ή πρόβλεψης μεταξύ πλαισίων.ο αποκωδικοποιητής προσθέτει την πρόβλεψη στο αποκωδικοποιημένο υπόλοιπο για την ανακατασκευή ενός αποκωδικοποιημένου macroblock το οποίο μπορεί να προβληθεί σαν μέρος ενός πλαισίου βίντεο [4] -38-
4 o Κεφάλαιο: Προσομοίωση του προτύπου H.264 με την βοήθεια του Matlab Εισαγωγικό σημείωμα Σε αυτό το κεφάλαιο θα αναλύσουμε την προσομοίωση του προτύπου H.264 που έχει υλοποιηθεί σε κώδικα Matlab ο οποίος θα παρουσιαστεί εξ ολοκλήρου στο τέλος της εργασίας σε μορφή παραρτήματος. 4.1 Παρουσίαση βίντεο προς συμπίεση και τελικού αποτελέσματος Το βίντεο προς συμπίεση ή πιο απλά η είσοδος της προσομοίωσης είναι αυτό που παρουσιάζεται στο ακόλουθο στιγμιότυπο οθόνης. Εικόνα 14 Το βίντεο το οποίο αποτελεί την έξοδο της προσομοίωσης είναι αυτό που βλέπουμε στο ακόλουθο στιγμιότυπο οθόνης. -39-
Εικόνα 15 Παρατηρούμε πως κατά την προβολή του βίντεο μετά την αποκωδικοποίηση,η ανάλυση της εικόνας δεν είναι όμοια με την αρχική, αλλά παραμένει πολύ καλή η ποιότητα της. 4.2 Ανάλυση κώδικα του m file main Το κεντρικό m-file της εφαρμογής είναι το maίn.m.στην αρχή του αρχείου μας έχουμε την κωδικοποίηση των παραμέτρων του. To βίντεό μας αποτελείται από 10 πλαίσια (frames).το πρώτο πλαίσιο είναι πλαίσιο τύπου I και τα υπόλοιπα πλαίσια είναι πλαίσια τύπου P.Στην συνέχεια αποθηκεύουμε τον αριθμό των πλαισίων σε μία μεταβλητή την οποία ονομάζουμε NumberOfFrames. Στη συνέχεια γίνεται ανάγνωση του βίντεο και αποθήκευσή του στο αρχείο 00OriginalVideo.mat.Τα αρχεία mat αποτελούνται από ένα header μεγέθους εκατόν είκοσι οχτώ bytes ακολουθουμένου από ένα ή περισσότερα στοιχεία δεδομένων(data element).κάθε στοιχείο δεδομένων αποτελείται από μία ετικέτα (tag)των οχτώ byte η οποία ακολουθείται από το στοιχείο δεδομένων. Στην ετικέτα ορίζεται ο αριθμός των byte στο στοιχείο δεδομένων και o τρόπος ερμηνείας αυτών των byte δηλαδή αν αυτά τα byte θα πρέπει να διαβαστούν σαν τιμές των δεκαέξι bit ή των τριάντα δύο bit ή σαν πραγματικοί αριθμοί ή σαν κάποιο άλλο τύπο. Στην συνέχεια καλούμε την συνάρτηση play η οποία είναι υλοποιημένη σε ξεχωριστό m-file και αμέσως μετά καλούμε την συνάρτηση resize που επίσης είναι υλοποιημένη σε ξεχωριστό m-file. Αμέσως μετά ακολουθεί η κωδικοποίηση των παραμέτρων εισόδου :αυτό πολύ α- -40-
πλά σημαίνει κωδικοποίηση της εισόδου της ακολουθίας βίντεο και ορισμός της τιμής της παραμέτρου ποιότητας (quality parameter, Qp). Επόμενο βήμα είναι η κωδικοποίηση του περιγράμματος ή αν θέλετε πιο απλά του «στησίματος» του βίντεο.αναλυτικότερα ορίζουμε καθολικές μεταβλητές για το πλάτος και το ύψος του βίντεο,το μέγεθος των macroblock τα οποία απαρτίζουν τα πλαίσια τύπου P (P-frames). Επίσης ορίζουμε και τον τρόπο προβολής μηνυμάτων. Αμέσως μετά ακολουθεί η κωδικοποίηση της αρχικοποίησης της εξόδου.συγκεκριμένα αρχικοποιούμε το αντικείμενο PSNR για κάθε πλαίσιο.το αντικείμενο PSNR υπολογίζει την αναλογία σήματος προς θόρυβο ανάμεσα σε εικόνες.αυτή η α- ναλογία συνήθως χρησιμοποιείται σαν μέτρο ποιότητας ανάμεσα σε μία πρωτότυπη και μία συμπιεσμένη εικόνα. Στην συνέχεια αρχικοποιούμε τον ρυθμό των bit (bit rate) για κάθε πλαίσιο.αμέσως μετά αρχικοποιούμε την ανακατασκευασμένη ακολουθία βίντεο και την ροή bit (bitstream) της εξόδου. Tο επόμενο βήμα είναι η υλοποίηση των διεργασιών κωδικοποίησης.αρχικά αποθηκεύουμε την κεφαλίδα (header) και κωδικοποιούμε τις παραμέτρους εισόδου. Έπειτα κωδικοποιούμε το πλαίσιο τύπου I.Στην αρχή επικολλούμε σε αυτό την α- ντίστοιχη κεφαλίδα.στην συνέχεια εξάγουμε το πλαίσιο τύπου I και αμέσως μετά λαμβάνει χώρα η κωδικοποίηση του συγκεκριμένου πλαισίου. Έπειτα,όπως είναι λογικό ακολουθεί η κωδικοποίηση των πλαισίων τύπου P Τέλος έχουμε την αποθήκευση των κωδικοποιημένων πλαισίων.στην συνέχεια αποθηκεύουμε τα αποτελέσματα της κωδικοποίησης. Το αμέσως επόμενο βήμα είναι το στάδιο της αποκωδικοποίησης.αρχικά λαμβάνει χώρα η αποκωδικοποίηση της ροής bit (bitstream).έπειτα ακολουθεί η αποκωδικοποίηση της κεφαλίδας (header),του πλαισίου τύπου I και φυσυσικά των πλαισίων τύπου P. Τέλος αποθηκεύουμε το αποκωδικοποιημένο βίντεο και το παίζουμε. 4.3 Ανάλυση της συνάρτησης play Η συνάρτηση play η οποία καλείται στο m-file main δέχεται δύο ορίσματα (mov (movement ),obj (object)).h αμέσως επόμενη κίνηση είναι ο σχηματισμός ενός αντικειμένου γραφικών το οποίο αποδίδεται στην μεταβλητή hf.με την συνάρτηση set -41-
είναι δυνατός ο χειρισμός ιδιοτήτων γραφικών αντικειμένων.χρησιμοποιούμε λοιπόν αυτήν την συνάρτηση για να ορίσουμε την θέση του βίντεό μας,το ύψος του και το πλάτος του.με την χρήση της συνάρτηση movie είναι εφικτή η αναπαραγωγή των πλαισίων του βίντεό μας και την καλούμε γι αυτόν ακριβώς τον σκοπό. 4.4 Ανάλυση της συνάρτησης read Η συνάρτηση read η οποία καλείται στο m-file main δέχεται δύο ορίσματα :το βίντεο εισόδου και τον αριθμό των πλαισίων του. Μετά τον ορισμό και την αρχικοποίηση κάποιων μεταβλητών έχουμε προκαθορισμό της δομής του βίντεο.στην συνέχεια διαβάζεται ένα-ένα πλαίσιο και αποθηκέυεται στο αρχείο 00OriginalVideo.mat 4.5 Ανάλυση της συνάρτησης resize Η συνάρτηση resize, η οποία καλείται στο m-file main δέχεται πέντε ορίσματα :το βίντεο,το αρχικό πλαίσιο,το τελικό πλαίσιο το πλάτος του βίντεο και το ύψος του. Στην συνέχεια υπολογίζεται ο αριθμός των πλαισίων του βίντεο και η ακολουθία των πλαισίων του βίντεο αποθηκεύεται στην μεταβλητή VideoSeq_Input. Το επόμενο βήμα είναι να αποθηκεύσουμε στην μεταβλητή writerobj το αντικείμενο VideoWriter. Αμέσως μετά ανοίγουμε το αντικείμενο writerobj. Αμέσως μετά υπολογίζουμε την μονόχρωμη φωτεινότητα και κλείνουμε το αντικείμενο writerobj. Αποθηκεύουμε το αποτέλεσμα του υπολογισμού στο αρχείο 01ResizedFrames.mat με το όνομα VideoSeq_Input. Αμέσως μετά διαβάζουμε το βίντεο προς κωδικοποίηση με την χρήση της εντολής VideoReader και το αποτέλεσμα της ανάγνωσης το αποθηκεύουμε στην μεταβλητή VideoSeq_Obj. Έπειτα, υπολογίζουμε τον αριθμό των πλαισίων και διαβάζουμε ένα πλαίσιο την φορά και καλούμε την συνάρτηση set για να χειριστούμε τις ιδιότητες του αντικειμένου μας. 4.6 Ανάλυση της συνάρτησης saveandplay Η συνάρτηση saveandplay η οποία καλείται στο m-file main δέχεται δύο ορίσματα: το αρχείο εισόδου και τα πλαίσια. -42-
Στην αρχή δημιουργούμε ένα αντικείμενο writerobj στο οποίο υπάρχει το μη συμπιεσμένο αρχείο και σε αυτό αποθηκεύουμε τα πλαίσια. Αμέσως μετά παίζουμε το βίντεο και προκαθορίζουμε την δομή του.τέλος με την συνάρτηση set ορίζουμε τις ιδιότητές του. 4.7 Στιγμιότυπα οθόνης εκτέλεσης προσομοίωσης Όπως είδαμε και παραπάνω το βίντεο προς συμπίεση είναι το ακόλουθο : Εικόνα 16 Όταν «τρέχει» η προσομοίωση τα στάδια κωδικοποίησης και αποκωδικοποίησης των πλαισίων απεικονίζονται ως ακολούθως : -43-
Εικόνα 17 Εικόνα 18 Το αποτέλεσμα της συμπίεσης είναι το ακόλουθο όπως άλλωστε έχουμε ήδη δει : -44-