ΕΗΙΗ ΔΗΟΡΑΤΙΑ Ανώαο Εκαι w x ικό Ί μα Πιαιά...

25
ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ Ενότητα 9: Πρότυπο Συμπίεσης Βίντεο MPEG Ιωάννης Έλληνας Τμήμα Υπολογιστικών Συστημάτων ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα

Transcript of ΕΗΙΗ ΔΗΟΡΑΤΙΑ Ανώαο Εκαι w x ικό Ί μα Πιαιά...

Page 1: ΕΗΙΗ ΔΗΟΡΑΤΙΑ Ανώαο Εκαι w x ικό Ί μα Πιαιά ...eclass.teipir.gr/openeclass/modules/document/file.php...ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ Ενότητα

ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ

Ενότητα 9: Πρότυπο Συμπίεσης Βίντεο MPEG

Ιωάννης Έλληνας

Τμήμα Υπολογιστικών Συστημάτων

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ

Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά

Τεχνολογικού Τομέα

Page 2: ΕΗΙΗ ΔΗΟΡΑΤΙΑ Ανώαο Εκαι w x ικό Ί μα Πιαιά ...eclass.teipir.gr/openeclass/modules/document/file.php...ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ Ενότητα

2

Άδειες Χρήσης

• Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

• Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας

χρήσης, η άδεια χρήσης αναφέρεται ρητώς.

Χρηματοδότηση

• Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού

έργου του διδάσκοντα.

• Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Ανώτατο Εκπαιδευτικό

Ίδρυμα Πειραιά Τεχνολογικού Τομέα» έχει χρηματοδοτήσει μόνο τη

αναδιαμόρφωση του εκπαιδευτικού υλικού.

• Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος

«Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την

Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους.

Page 3: ΕΗΙΗ ΔΗΟΡΑΤΙΑ Ανώαο Εκαι w x ικό Ί μα Πιαιά ...eclass.teipir.gr/openeclass/modules/document/file.php...ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ Ενότητα

3

1. Σκοποί ενότητας ................................................................................................ 4

2. Περιεχόμενα ενότητας........................................................................................ 4

3. Συνοπτική θεωρία .............................................................................................. 5

3.1 Εκτίμηση κίνησης (Motion Estimation) ......................................................... 5

3.1.1 Εικόνα 9.1: Επιφάνεια εργασίας VCDemo. ........................................... 6

3.1.2 Εικόνα 9.2: Motion estimation menu. .................................................... 6

3.1.3 Εικόνα 9.3: Επιφάνεια εργασίας στο motion estimation. ....................... 8

3.1.4 Εικόνα 9.4: Τέσσερα διαδοχικά frames αντισταθμισμένα με την

εκτίμηση κίνησης. .............................................................................................. 8

3.1.5 Εικόνα 9.5: Τα διανύσματα των macroblock στο backround είναι σχεδόν

μηδενικά ............................................................................................................ 9

3.2 Κωδικοποιητής MPEG ................................................................................ 9

3.2.1 Εικόνα 9.6: Επιλογές κωδικοποίησης ................................................. 10

3.2.2 Εικόνα 9.7: Κωδικοποίηση ασυμπίεστου βίντεο με MPEG. ................ 11

3.2.3 Επεξηγηματικός Πίνακας 1 ................................................................. 11

3.2.4 Εικόνα 9.8: I/P/B frames. ................................................................... 12

3.2.5 Εικόνα 9.9: I/P frames. ....................................................................... 13

3.2.6 Εικόνα 9.10: intra-coded video. .......................................................... 14

3.3 Αποκωδικοποιητής MPEG ........................................................................ 14

3.3.1 Εικόνα 9.11: Eπιλογές αποκωδικοποιητή. .......................................... 15

3.3.2 Εικόνα 9.12: Μενού αποκωδικοποιητή MPEG. ................................... 16

3.3.3 Εικόνα 9.13: Αποκωδικοποίηση stream σε κανονική λειτουργία. ........ 17

3.3.4 Εικόνα 9.14: H πρόβλεψη για το βίντεο της Εικόνας 9.13. .................. 18

3.3.5 Εικόνα 9.15: Κανονική αποκωδικοποίηση. ......................................... 19

4. Ασκήσεις.......................................................................................................... 20

4.1 Άσκηση 1 .................................................................................................. 20

4.1.1 Πίνακας 9.1 : Συμπιεσμένη εικόνα. ..................................................... 20

4.2 Άσκηση 2 .................................................................................................. 21

4.2.1 Πίνακας 9.2 : Συμπιεσμένη εικόνα ...................................................... 22

4.3 Άσκηση 3 .................................................................................................. 22

4.4 Άσκηση 4 .................................................................................................. 23

4.4.1 Πίνακας 9.3 : Συμπιεσμένη εικόνα. ..................................................... 23

4.5 Άσκηση 5 .................................................................................................. 24

4.5.1 Πίνακας 9.4 : Συμπιεσμένη εικόνα. ..................................................... 24

4.6 Άσκηση 6 .................................................................................................. 25

Page 4: ΕΗΙΗ ΔΗΟΡΑΤΙΑ Ανώαο Εκαι w x ικό Ί μα Πιαιά ...eclass.teipir.gr/openeclass/modules/document/file.php...ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ Ενότητα

4

1. Σκοποί ενότητας Σκοπός της ενότητας είναι να περιγραφεί το πρότυπο συμπίεσης βίντεο MPEG και να

κληθεί ο εκπαιδευόμενος να λύσει πρακτικές ασκήσεις.

2. Περιεχόμενα ενότητας H ενότητα αυτή καλύπτει τις ακόλουθες βασικές έννοιες:

Κωδικοποίηση βίντεο

Ψηφιακό βίντεο

Συμπίεση βίντεο

Εκτίμηση κίνησης

Τεχνικές ταιριάσματος μπλοκ

Γενική μορφή ενός video codec

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

Με τις αντίστοιχες 6 ασκήσεις για λύση που καλύπτουν τις παραπάνω θεματικές.

Page 5: ΕΗΙΗ ΔΗΟΡΑΤΙΑ Ανώαο Εκαι w x ικό Ί μα Πιαιά ...eclass.teipir.gr/openeclass/modules/document/file.php...ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ Ενότητα

5

3. Συνοπτική θεωρία

Για το εργαστηριακό μέρος του MPEG-1 και MPEG-2 θα χρησιμοποιήσουμε το

πρόγραμμα VCDemo1. Το VCDemo είναι ένα εργαλείο εκμάθησης συμπίεσης

εικόνας και βίντεο με πλήρες μενού, το οποίο μπορεί να τρέξει σε windows. Είναι

πολύ εύχρηστο και δεν χρειάζεται καμία γνώση προγραμματισμού. Ο σκοπός του

VCDemo είναι να μας δώσει τη δυνατότητα να πειραματιστούμε με διαφορετικούς

αλγόριθμους συμπίεσης εικόνας, χωρίς να χρειάζεται να υλοποιήσουμε κάποιο

κώδικα. Έτσι μόνο από τις επιλογές του μενού μπορούμε να αλλάξουμε διάφορες

παραμέτρους στη συμπίεση της εικόνας ή του βίντεο.

Αρχικά θα αναλύσουμε την εκτίμηση κίνησης με το VCDemo και μετά θα δούμε την

κωδικοποίηση και αποκωδικοποίηση με MPEG-1.

3.1 Εκτίμηση κίνησης (Motion Estimation)

Αρχικά θα πρέπει να ανοίξουμε μια αλληλουχία ασυμπίεστων εικόνων (sequences),

που ουσιαστικά είναι ένα ασυμπίεστο βίντεο. Οι τύποι αρχείων που υποστηρίζονται

από το VCDemo είναι bmp image sequences (.seq) και raw yuv (.yuv). Εμείς αρχικά

θα ανοίξουμε το football.seq που βρίσκεται στην βιβλιοθήκη του VCDemo και στη

συνέχεια θα το συγκρίνουμε και με άλλα sequences.

Στην Eικόνα 9.1 φαίνεται η επιφάνεια εργασίας του VCDemo. Πατώντας το δεύτερο

εικονίδιο από αριστερά μπορούμε να ανοίξουμε ένα image sequence και να το

επεξεργαστούμε.

1 Πανεπιστήμιο TU-Delft (ICT Group) – http://www-ict.its.tudelft.nl/vcdemo.

Page 6: ΕΗΙΗ ΔΗΟΡΑΤΙΑ Ανώαο Εκαι w x ικό Ί μα Πιαιά ...eclass.teipir.gr/openeclass/modules/document/file.php...ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ Ενότητα

6

3.1.1 Εικόνα 9.1: Επιφάνεια εργασίας VCDemo.

Ανοίγουμε λοιπόν το αρχείο football.seq και επιλέγουμε το Motion Estimation από το

μενού του VCDemo, με αποτέλεσμα να μας εμφανιστεί το παράθυρο της Εικόνας 9.2

με τις παρακάτω επιλογές:

3.1.2 Εικόνα 9.2: Motion estimation menu.

Page 7: ΕΗΙΗ ΔΗΟΡΑΤΙΑ Ανώαο Εκαι w x ικό Ί μα Πιαιά ...eclass.teipir.gr/openeclass/modules/document/file.php...ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ Ενότητα

7

Hierarchy: Μπορούμε να επιλέξουμε Standard Block Matching ή Hierarchical

Block Matching (δυο ή τριών επιπέδων). Αναλόγως την επιλογή μας σ’ αυτήν την ετικέτα μπορεί να αλλάξουν οι επιλογές στις επόμενες.

Search: Μπορούν να χρησιμοποιηθούν διαφορετικοί τύποι στρατηγικής

εκτίμησης κίνησης, όπως: α) Πλήρης αναζήτηση (full search), β) Μια αναζήτηση τη φορά (one-at-a-time search) και γ) Αναζήτηση Ν βημάτων (N-Step search). Η πλήρης αναζήτηση μπορεί να καταναλώσει μεγάλη υπολογιστική ισχύ.

Size: Επιλέγουμε το μέγεθος του μπλοκ που θα γίνει η εκτίμηση κίνησης.

Στην ιεραρχική εκτίμηση, το μέγεθος του μπλοκ είναι στη μεγαλύτερη ανάλυση. Το μέγεθος της ανάλυσης στους άλλους τρόπους επιλέγεται από το πρόγραμμα.

Max. Displ.: Η μέγιστη μετατόπιση μπορεί να επιλεγεί για “Full search” και

“One-at-a-time Search”. Όσο μεγαλύτερη είναι η μέγιστη μετατόπιση τόσο περισσότερη υπολογιστική ισχύ χρειάζεται ο εκτιμητής κίνησης. Για την ιεραρχική εκτίμηση δίνετε η μέγιστη μετατόπιση για διαφορετικά επίπεδα ανάλυσης.

N-Step: Για την εκτίμηση κίνησης τύπου “N-Step” μπορούμε να επιλέξουμε

τον αριθμό των βημάτων. Όσο περισσότερα βήματα έχουμε τόσο μεγαλύτερη είναι η μέγιστη μετατόπιση.

Video: Μπορούμε να επιλέξουμε διάφορους τύπους απεικόνισης του βίντεο. Τα αποτελέσματα της εκτίμησης κίνησης σώζονται εσωτερικά από το πρόγραμμα, έτσι μπορούμε να ξαναδούμε το αποτέλεσμα επιλέγοντας “Display again” χωρίς να χρειάζεται να γίνει ο υπολογισμός από την αρχή.

Στην Εικόνα 9.3 βλέπουμε την επιφάνεια εργασίας του VCDemo αφού έχει τελειώσει

η εκτίμηση κίνησης. Εδώ συγκεκριμένα έχουμε ανοίξει ένα seq αρχείο, μια διαδοχή

δηλαδή από bmp εικόνες. Η κίνηση στις εικόνες εκτιμάται για όλα τα frames και δεν

μπορεί να διακοπεί. Εμφανίζονται τέσσερα παράθυρα:

Η αρχική εικόνα (επάνω αριστερά).

Η διαφορά ανάμεσα σε διαδοχικές εικόνες (επάνω δεξιά).

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

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

(variance) της αρχικής εικόνας, τη διασπορά της εικόνας διαφοράς, τη διασπορά της

αντισταθμισμένης εικόνας και μια εκτίμηση της διαφοροποιημένης εντροπίας του

πεδίου εκτίμησης κίνησης (σε διάνυσμα / bit). Για το τελευταίο, ένας απλός

μονοδιάστατος μη απωλεστικός DPCM πραγματοποιείται στο πεδίο εκτίμησης

κίνησης και υπολογίζεται το ιστόγραμμα της διαφοράς DCPM. Από το ιστόγραμμα

υπολογίζετε η τιμή της εντροπίας του διανύσματος.

Page 8: ΕΗΙΗ ΔΗΟΡΑΤΙΑ Ανώαο Εκαι w x ικό Ί μα Πιαιά ...eclass.teipir.gr/openeclass/modules/document/file.php...ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ Ενότητα

8

3.1.3 Εικόνα 9.3: Επιφάνεια εργασίας στο motion estimation.

Στην παρακάτω εικόνα 9.4 βλέπουμε τέσσερα διαδoχικά frames αντισταθμισμένα με

την εκτίμηση κίνησης. Αν προσέξουμε τα διανύσματα έχουν την κατεύθυνση που

πάει το κάθε αντικείμενο ( στην συγκεκριμένη περίπτωση ο κάθε παίκτης ).

3.1.4 Εικόνα 9.4: Τέσσερα διαδοχικά frames αντισταθμισμένα με

την εκτίμηση κίνησης.

Page 9: ΕΗΙΗ ΔΗΟΡΑΤΙΑ Ανώαο Εκαι w x ικό Ί μα Πιαιά ...eclass.teipir.gr/openeclass/modules/document/file.php...ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ Ενότητα

9

Για να καταλάβουμε καλύτερα πως λειτουργεί η εκτίμηση κίνησης βλέπουμε το

παρακάτω βίντεο, Εικόνα 9.5, στο οποίο απεικονίζεται ένα σπίτι. Όπως προχωράει

το πλάνο, το σπίτι μετακινείται ελάχιστα ενώ το δέντρο που περνάει μπροστά κινείται

γρήγορα. Έτσι, ο αλγόριθμος βλέπει τη διαφορά στη φωτεινότητα ανάμεσα στα pixel

και την κωδικοποιεί. Γενικά και στα δύο παραδείγματα μπορεί να φαίνεται ότι ο

αλγόριθμος αναγνωρίζει αντικείμενα, δεν συμβαίνει όμως αυτό. Το μόνο που μπορεί

ουσιαστικά να καταλάβει είναι αλλαγές στη φωτεινότητα του κάθε macroblock.

Στα δύο προηγούμενα παραδείγματα έχουμε χρησιμοποιήσει εκτίμηση κίνησης σε

blocks 8 x 8. Είναι καλή επιλογή αφού χρειάζεται μέτρια υπολογιστική ισχύ.

3.1.5 Εικόνα 9.5: Τα διανύσματα των macroblock στο backround

είναι σχεδόν μηδενικά

.

3.2 Κωδικοποιητής MPEG

Ο MPEG κωδικοποιητής του VCDemo συνδυάζει ένα MPEG-1 και MPEG-2

κωδικοποιητή και παράγει ένα κανονικό MPEG stream, χωρίς να έχει τα καλύτερα

αποτελέσματα σε ταχύτητα και bit rate – SNR. Γι’ αυτό, καλό είναι να χρησιμοποιείται

μόνο για να μελετήσουμε τις βασικές ιδιότητες του προτύπου MPEG, όπως το GOP,

Page 10: ΕΗΙΗ ΔΗΟΡΑΤΙΑ Ανώαο Εκαι w x ικό Ί μα Πιαιά ...eclass.teipir.gr/openeclass/modules/document/file.php...ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ Ενότητα

10

bit rate και την εκτίμηση κίνησης. Υπάρχουν άλλα εύχρηστα προγράμματα

κωδικοποίησης/αποκωδικοποίησης που κάνουν αποτελεσματική συμπίεση.

Όταν ενεργοποιούμε το παράθυρου του MPEG κωδικοποιητή καμία επιλογή δεν είναι

διαθέσιμη μέχρι να διαλέξουμε το αρχείο που θα αποθηκευτούν τα αποτελέσματα

(δηλαδή το συμπιεσμένο stream). Αναλόγως το πρότυπο που διαλέγουμε (MPEG-1

ή 2) μερικές επιλογές είναι απενεργοποιημένες.

Στην Εικόνα 9.6 βλέπουμε το μενού για την MPEG κωδικοποίηση:

3.2.1 Εικόνα 9.6: Επιλογές κωδικοποίησης

File: Θέτουμε το όνομα του MPEG αρχείου που θα παραχθεί και επιλέγουμε

πρότυπο (MPEG 1 ή 2).

Rate: Ορίζουμε το bit rate του συμπιεσμένου αρχείου σε Mbit / sec.

GOP: Μπορούμε να επιλέξουμε διαφορετικές δομές για το Group-Of-Pictures.

Αν και υπάρχουν πολλές δομές, εδώ έχουμε τις πιο καθιερωμένες (μη προσαρμοζόμενες).

Motion: Διαλέγουμε τη μέγιστη μετατόπιση. Ο κωδικοποιητής χρησιμοποιεί

ιεραρχική εκτίμηση κίνησης για συμπίεση που βασίζεται σε frames (πλαίσια-προοδευτική σάρωση) ή fields (πεδία-πεπλεγμένη σάρωση).

Format: Για το πρότυπο ΜPEG-2 μπορούμε να διαλέξουμε το format για το

βίντεο. Αν επιλέξουμε το πεπλεγμένο (interlaced) format, τότε θα πρέπει να ορίσουμε τη θέση του πρώτου πεδίου.

Field/Frame: Στην περίπτωση που έχουμε πεπλεγμένο format, μπορούμε να

χρησιμοποιήσουμε την πλήρη ισχύ του MPEG-2. Υπάρχουν διάφορες επιλογές λειτουργίας του κωδικοποιητή. Για παράδειγμα μπορούμε να επιλέξουμε ο κωδικοποιητής να χρησιμοποιεί πάντα εκτίμηση κίνησης στο επίπεδο των frames και DCT σε περίπτωση που χρησιμοποιείται frame κωδικοποίηση.

Page 11: ΕΗΙΗ ΔΗΟΡΑΤΙΑ Ανώαο Εκαι w x ικό Ί μα Πιαιά ...eclass.teipir.gr/openeclass/modules/document/file.php...ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ Ενότητα

11

O κωδικοποιητής εμφανίζει την εικόνα που μόλις κωδικοποιήθηκε. Επειδή τα frames

δεν κωδικοποιούνται με την ίδια χρονική συνέχεια που έχουν στο βίντεο, μπορεί να

δούμε μερικά περίεργα αποτελέσματα κατά την κωδικοποίηση, όπως η ταινία να

πηγαίνει μπρος ή πίσω.

Οι πιο χρήσιμες πληροφορίες εμφανίζονται στο παράθυρο δεξιά. Μπορούμε να

δούμε το bit rate ανά frame, τον τρόπο που κωδικοποιήθηκε το frame (I/P/B) και τον

τρόπο με τον οποίο συμπιέστηκε το κάθε macroblock.

3.2.2 Εικόνα 9.7: Κωδικοποίηση ασυμπίεστου βίντεο με MPEG.

3.2.3 Επεξηγηματικός Πίνακας 1

S: skipped

I: Intra-coded

0: Μπροστινή πρόβλεψη χωρίς αντιστάθμιση κίνησης

F: Μπροστινό frame / πρόβλεψη 16x8

f: Μπροστινή πρόβλεψη πεδίου

Page 12: ΕΗΙΗ ΔΗΟΡΑΤΙΑ Ανώαο Εκαι w x ικό Ί μα Πιαιά ...eclass.teipir.gr/openeclass/modules/document/file.php...ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ Ενότητα

12

p: Διπλή πρόβλεψη

Β: Αναδρομικό frame / πρόβλεψη 16x8

b: Αναδρομική πρόβλεψη πεδίου

D: Frame / 16x8 Interpolation

d: Field Interpolation

Στη συνέχεια, θα δούμε τρεις διαφορετικές κωδικοποιήσεις του ίδιου βίντεο. Αρχικά

με μπροστινή και αναδρομική πρόβλεψη (I/P/B frames), μόνο με μπροστινή (Ι/Ρ

frames) και intra-coded (χωρίς δηλαδή καθόλου πρόβλεψη). Χρησιμοποιούμε το ίδιο

bit rate, οπότε κάθε διαφορά στην ποιότητα εξαρτάται μόνο από την δομή του GOP.

3.2.4 Εικόνα 9.8: I/P/B frames.

Page 13: ΕΗΙΗ ΔΗΟΡΑΤΙΑ Ανώαο Εκαι w x ικό Ί μα Πιαιά ...eclass.teipir.gr/openeclass/modules/document/file.php...ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ Ενότητα

13

3.2.5 Εικόνα 9.9: I/P frames.

Αν παρατηρήσουμε στο τρίτο frame της Εικόνας 9.9, τα διανύσματα είναι σχεδόν

μηδενικά, ενώ στην Εικόνα 9.8 δεν είναι. Αυτό συμβαίνει γιατί η κάμερα σταματάει να

κινείται, οπότε δεν μπορούμε να έχουμε μπροστινή πρόβλεψη (μεταδίδεται το ίδιο

frame). Επίσης, κατά την κωδικοποίηση του βίντεο της Εικόνας 9.9 δεν είχαμε αυτήν

την περίεργη απεικόνιση που προαναφέραμε (εμφανιζόταν κανονική αναπαραγωγή

βίντεο) και αυτό γιατί δεν επιλέξαμε να υπάρχει αναδρομική πρόβλεψη (B frames).

Παρακάτω θα δούμε ένα intra-coded βίντεο. Όπως φαίνεται, η ποιότητα της εικόνας

είναι εμφανώς κατώτερη:

Page 14: ΕΗΙΗ ΔΗΟΡΑΤΙΑ Ανώαο Εκαι w x ικό Ί μα Πιαιά ...eclass.teipir.gr/openeclass/modules/document/file.php...ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ Ενότητα

14

3.2.6 Εικόνα 9.10: intra-coded video.

3.3 Αποκωδικοποιητής MPEG

Ο αποκωδικοποιητής MPEG είναι πλήρως συμβατός με τα πρότυπα MPEG –

1 και MPEG -2. Μπορεί να αποκωδικοποιήσει κάθε βίντεο που έχουμε κατεβάσει

από το Internet, όμως χωρίς ήχο. Το παράθυρο με τις επιλογές για την

αποκωδικοποίηση φαίνονται στην Εικόνα 9.11:

Page 15: ΕΗΙΗ ΔΗΟΡΑΤΙΑ Ανώαο Εκαι w x ικό Ί μα Πιαιά ...eclass.teipir.gr/openeclass/modules/document/file.php...ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ Ενότητα

15

3.3.1 Εικόνα 9.11: Eπιλογές αποκωδικοποιητή.

Operation: Μπορούμε να επιλέξουμε τη λειτουργία του αποκωδικοποιητή και της εξόδου: α) Κανονική έξοδος: εμφανίζονται οι αποκωδικοποιημένες εικόνες όπως θα τις βλέπαμε σε κάθε άλλο αποκωδικοποιητή. β) Τα προβλεπόμενα frames, χωρίς να προσθέσουμε την κβαντισμένη διαφορά πρόβλεψης που στέλνεται από τον κωδικοποιητή στον αποκωδικοποιητή. Με αυτόν τον τρόπο μπορούμε να πάρουμε μια ιδέα της ποιότητας της πρόβλεψης. γ) Οι κωδικοποιημένες διαφορές πρόβλεψης, δηλαδή τα δεδομένα που στέλνονται από τον κωδικοποιητή στον αποκωδηκοποιητή μέσω του bit stream. Μ’ αυτόν τον τρόπο μπορούμε να εκτιμήσουμε την ποιότητα της πρόβλεψης και τον αριθμό τον intra-coded macroblocks.

Display: Μπορούμε να ενεργοποιήσουμε τρεις επιλογές: α) έγχρωμη ή

ασπρόμαυρη απεικόνιση. β) Να εμφανίζονται τα διανύσματα πρόβλεψης κίνησης και γ) παράκαμψη των Β-frames.

Video: Διαλέγουμε διαφορετικούς τύπους απεικόνισης βίντεο. Η επιλογή

frame-by-frame μας επιτρέπει να ελέγξουμε το κάθε αποκωδικοποιημένο frame.

Wireless: Εξομοίωση ασύρματου καναλιού. Το πρόγραμμα εισάγει

ρεαλιστικά bit packet errors πριν το σήμα φτάσει στον αποκωδικοποιητή.

Save As: Μπορούμε να σώσουμε το αποκωδικοποιημένο βίντεο σε raw YUV

format.

Στην Εικόνα 9.12 βλέπουμε το κεντρικό μενού αφού έχουμε ανοίξει ένα MPEG

stream. Στο παράθυρο αριστερά βλέπουμε το αποκωδικοποιημένο frame του βίντεο

που έχουμε φορτώσει, το προβλεπόμενο frame ή τη διαφορά πρόβλεψης ανάλογα με

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

Page 16: ΕΗΙΗ ΔΗΟΡΑΤΙΑ Ανώαο Εκαι w x ικό Ί μα Πιαιά ...eclass.teipir.gr/openeclass/modules/document/file.php...ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ Ενότητα

16

πληροφορίες για το format και τις επιλογές κωδικοποίησης του MPEG stream. Κατά

την αποκωδικοποίηση φαίνεται και η δομή του GOP.

Η κόκκινη κουκίδα συμβολίζει το αρχικό σημείο του κάθε διανύσματος πρόβλεψης

κίνησης που επικαλύπτει την εικόνα. Αν το Macroblock έχει μόνο την κόκκινη κουκίδα

σημαίνει ότι το διάνυσμα έχει μηδενική τιμή ή ότι είναι intra-coded, δηλαδή χωρίς

καθόλου πρόβλεψη. Αυτό μπορούμε να το καταλάβουμε βλέποντας την

κωδικοποιημένη διαφορά πρόβλεψης. Τα διανύσματα κίνησης που φαίνονται είναι

για μπροστινή πρόβλεψη (δηλαδή για τα Ρ πλαίσια), εκτός αν κάποιο macroblock σε

B frame έχει προβλεφθεί με αναδρομικό τρόπο (forward prediction). Σ’ αυτήν την

περίπτωση χρησιμοποιείται η αναδρομική πρόβλεψη. Μερικά macroblock

χρησιμοποιούν πολλαπλά διανύσματα κίνησης, εδώ όμως εμφανίζεται μόνο ένα.

3.3.2 Εικόνα 9.12: Μενού αποκωδικοποιητή MPEG.

Στη συνέχεια θα δούμε τέσσερα frames από το παραπάνω βίντεο (Εικόνα 9.13). Στην

αρχή θέτουμε τον αποκωδικοποιητή σε κανονική λειτουργία, δηλαδή απλή

αποκωδικοποίηση των frames:

Page 17: ΕΗΙΗ ΔΗΟΡΑΤΙΑ Ανώαο Εκαι w x ικό Ί μα Πιαιά ...eclass.teipir.gr/openeclass/modules/document/file.php...ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ Ενότητα

17

3.3.3 Εικόνα 9.13: Αποκωδικοποίηση stream σε κανονική

λειτουργία.

Page 18: ΕΗΙΗ ΔΗΟΡΑΤΙΑ Ανώαο Εκαι w x ικό Ί μα Πιαιά ...eclass.teipir.gr/openeclass/modules/document/file.php...ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ Ενότητα

18

Στην παραπάνω εικόνα βλέπουμε τις πληροφορίες για το βίντεο και τη δομή του

Group-Of –Pictures (GOP). Όπως φαίνεται έχουμε ένα intra-coded frame και μετά

δύο Β frames για κάθε ένα Ρ.

Στην παρακάτω Εικόνα 9.14, θα δούμε την πρόβλεψη γι’ αυτά τα τέσσερα frames.

Όπως φαίνεται, σε σημεία που αλλάζει απότομα η φωτεινότητα (όπως στην κίνηση

του δέντρου ή στο σπίτι που εισέρχεται στην εικόνα) υπάρχουν λάθη στην

πρόβλεψη.

Στη συνέχεια θα δούμε ένα δεύτερο παράδειγμα για την αποκωδικοποίηση MPEG

(Εικόνα 9.15).

3.3.4 Εικόνα 9.14: H πρόβλεψη για το βίντεο της Εικόνας 9.13.

Page 19: ΕΗΙΗ ΔΗΟΡΑΤΙΑ Ανώαο Εκαι w x ικό Ί μα Πιαιά ...eclass.teipir.gr/openeclass/modules/document/file.php...ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ Ενότητα

19

3.3.5 Εικόνα 9.15: Κανονική αποκωδικοποίηση.

Page 20: ΕΗΙΗ ΔΗΟΡΑΤΙΑ Ανώαο Εκαι w x ικό Ί μα Πιαιά ...eclass.teipir.gr/openeclass/modules/document/file.php...ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ Ενότητα

20

4. Ασκήσεις

4.1 1η Άσκηση Ανοίξτε ένα βίντεο και επιλέξτε την εκτίμηση κίνησης από το μενού του προγράμματος (ΜΕ). Δείτε την εκτίμηση κίνησης σε ένα βίντεο επιλέγοντας block μεγέθους 4 x 4. Στην συνέχεια επιλέξτε 8 x 8. α) Τι διαφορές παρατηρείτε; Χρειάστηκε περισσότερος ή λιγότερος χρόνος για την

κωδικοποίηση της εικόνας;

β) Τοποθετήστε το αποτέλεσμα με block 4 x 4, κάνοντας alt – PrintScreen στον

Πίνακα 9.1.

γ) Πειραματιστείτε με διάφορα μεγέθη block και επιλογές της εκτίμησης κίνησης και

διατυπώστε τα συμπεράσματά σας.

4.1.1 Πίνακας 9.1 : Συμπιεσμένη εικόνα.

Page 21: ΕΗΙΗ ΔΗΟΡΑΤΙΑ Ανώαο Εκαι w x ικό Ί μα Πιαιά ...eclass.teipir.gr/openeclass/modules/document/file.php...ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ Ενότητα

21

Σχόλια:

4.2 2η Άσκηση Στο VCDemo μπορούμε να κωδικοποιήσουμε ένα MPEG βίντεο από μια σειρά ασυμπίεστων εικόνων bmp. Η διαδικασία είναι πολύ εύκολη. Απλώς βάζουμε τα frames (πλαίσια) σε ένα φάκελο, αντιγράφουμε μόνο το πρώτο πλαίσιο της σειράς στον αρχικό φάκελο του VCDemo και μετονομάζουμε το extension του αρχείου από bmp σε seq. Αν έχουν γίνει όλα σωστά, το πρόγραμμα θα πρέπει να έχει αναγνωρίσει τη σειρά εικόνων έτσι ώστε να μπορούμε να την κωδικοποιήσουμε.

Χρειάζεται πολύ προσοχή όμως στην ονομασία του φακέλου και των πλαισίων.

Όλα τα πλαίσια θα πρέπει να έχουν το ίδιο όνομα (πχ. Car), το οποίο ακολουθεί τη σειρά του πλαισίου στο βίντεο. Δηλαδή το πρώτο frame θα πρέπει να ονομάζεται Car1, το δεύτερο Car2 κοκ.

Ο φάκελος θα πρέπει να έχει το όνομα της σειράς χωρίς τον αύξοντα αριθμό. Στη συγκεκριμένη περίπτωση Car.

Το πρώτο πλαίσιο που υπάρχει έξω από τον φάκελο με τις εικόνες παίζει το ρόλο του header file. Πρέπει να έχει το ίδιο όνομα με το φάκελό μας και να έχει extension seq, δηλαδή Car.seq.

Βρείτε λοιπόν μία σειρά εικόνων και με την παραπάνω διαδικασία δείτε και

τοποθετήστε τα αποτελέσματα της εκτίμησης κίνησης στον Πίνακα 9.2.

Page 22: ΕΗΙΗ ΔΗΟΡΑΤΙΑ Ανώαο Εκαι w x ικό Ί μα Πιαιά ...eclass.teipir.gr/openeclass/modules/document/file.php...ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ Ενότητα

22

4.2.1 Πίνακας 9.2 : Συμπιεσμένη εικόνα

Σχόλια:

4.3 3η Άσκηση Ανοίξτε το βίντεο που αποκωδικοποιήσαμε στην Εικόνα 9.15 (ultima04.mpg). Δοκιμάστε να το αποκωδικοποιήσετε και μόνοι σας. Μελετείστε τις πληροφορίες που εμφανίζονται στο δεξί μέρος της οθόνης. Μπορείτε να περιγράψετε συνοπτικά το GOP του βίντεο από αυτές τις πληροφορίες;

Page 23: ΕΗΙΗ ΔΗΟΡΑΤΙΑ Ανώαο Εκαι w x ικό Ί μα Πιαιά ...eclass.teipir.gr/openeclass/modules/document/file.php...ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ Ενότητα

23

Σχόλια:

4.4 4η Άσκηση Ανοίξτε πάλι το ίδιο βίντεο, αυτή τη φόρα όμως επιλέξτε την πρόβλεψη κίνησης (Frame Prediction) από τον αποκωδικοποιητή. Τοποθετείστε το αποτέλεσμα στον Πίνακα 9.3. Τι διαφορές βλέπετε σε σχέση με την κανονική αποκωδικοποίηση; Κατά την εργασία του προγράμματος παρατηρείστε το χρονόμετρο στο βίντεο. Αν προσέξετε δεν μετράει σωστά τον χρόνο. Μπορείτε να αναφέρετε χωρίς πολλές λεπτομέρειες γιατί συμβαίνει αυτό;

4.4.1 Πίνακας 9.3 : Συμπιεσμένη εικόνα.

Page 24: ΕΗΙΗ ΔΗΟΡΑΤΙΑ Ανώαο Εκαι w x ικό Ί μα Πιαιά ...eclass.teipir.gr/openeclass/modules/document/file.php...ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ Ενότητα

24

Σχόλια:

4.5 5η Άσκηση Ανοίξτε και αποκωδικοποιείστε το βίντεο balloo02.mpg και βάλτε το αποτέλεσμα στον Πίνακα 9.4. Τι παρατηρείτε; Υπάρχει εκτίμηση κίνησης σε αυτό το βίντεο κι αν όχι γιατί;

4.5.1 Πίνακας 9.4 : Συμπιεσμένη εικόνα.

Page 25: ΕΗΙΗ ΔΗΟΡΑΤΙΑ Ανώαο Εκαι w x ικό Ί μα Πιαιά ...eclass.teipir.gr/openeclass/modules/document/file.php...ΕΠΕΞΕΡΓΑΣΙΑ ΕΙΚΟΝΑΣ Ενότητα

25

Σχόλια:

4.6 6η Άσκηση Χρησιμοποιώντας τον κωδικοποιητή ΜPEG του VCDemo κωδικοποιείστε μία σειρά ασυμπίεστων εικόνων και με δύο διαφορετικές δομές GOP: αναδρομική και μπροστινή πρόβλεψη (Ι/P/B frames) και χωρίς πρόβλεψη (Intra-coded). Παρατηρείστε τις πληροφορίες που μας δίνει το VCDemo για την ποιότητα (PSNR) και το σφάλμα (ΜSE). Στη συνέχεια ανοίξτε τα βίντεο που κωδικοποιήσατε με ένα τρίτο πρόγραμμα (για παράδειγμα τον Windows Media Player). Υπάρχουν εμφανείς διαφορές; Πειραματιστείτε και με διαφορετικά bit-rate και γράψτε τα συμπεράσματά σας

Σχόλια: