ΤΕΙ ΚΡΗΤΗΣ ΤΜ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡ/ΚΗΣ & ΠΟΛΥΜΕΣΩΝ ΔΙΔΑΣΚΩΝ: Δρ. Γ. ΓΑΡΔΙΚΗΣ 2 Κωδικοποίηση εικόνας
Ακολουθία από ψηφιοποιημένα καρέ (frames) που έχουν συλληφθεί σε συγκεκριμένο ρυθμό frame rate (π.χ. 10fps, 25fps, 50fps) Διάφορες αναλύσεις CIF (352x288), PAL (720x576), 1080p (1920x1080) κλπ. 2
Ένα αναλογικό σήμα PAL καταλαμβάνει φάσμα 8MHz Αν ψηφιοποιηθεί: 720x576 = 414720 pixels ανά frame (καρέ) 1 pixel = 3 bytes (1 byte για το Y, 1 για το Cr και 1 για το Cb) Άρα χρειάζονται 1244160 bytes (1.2 MB) ανά frame Για μετάδοση 25 frames/sec απαιτούνται 31.1 MB/sec = 248.8 Mbits/sec!! Το φάσμα που απαιτείται εκτιμάται στα 120 MHz (σε σύγκριση με τα 8 της αναλογικής TV) Για HDTV: >1GBit/sec!! Λύση: Κωδικοποίηση (=συμπίεση) του ψηφιακού βίντεο εφαρμόζοντας τεχνικές ψηφιακής επεξεργασίας εικόνας Αποτέλεσμα: Αντί για 248 Mbits απαιτούνται μόνο 6 Mbits για τη μετάδοση ενός ψηφιοποιημένου σήματος PAL (μείωση κατά 97%!!) 3
Με απώλειες (lossy) Μέρος της πληροφορίας χάνεται, αλλά η συμπίεση που επιτυγχάνεται είναι μεγάλη (τυπικά 1:40) Χωρίς απώλειες (lossless) Η εικόνα διατηρείται ακέραια, αλλά ο βαθμός συμπίεσης είναι περιορισμένος (π.χ. 1:5) Τεχνικές : Αντιστάθμιση κίνησης Ανάλυση DCT/Μετατροπή στο πεδίο της χωρικής συχνότητας (μετατροπή των τιμών των pixels σε συχνοτικούς συντελεστές) και απόρριψη χωρικών συχνοτήτων που δεν είναι ορατές. Κωδικοποίηση εντροπίας (entropy coding) = αναπαράσταση των συντελεστών που εμφανίζονται συχνότερα με λιγότερα ψηφία 4
Η ομάδα MPEG (MoÉon Pictures Experts Group) υφίσταται στα πλαίσια του διεθνούς οργανισμού τυποποίησης (ISO). Αφορά κωδικοποίηση κινούμενης εικόνας και ήχου. MPEG 1 (1993). Το πρώτο πρότυπο κωδικοποίησης για ήχο και εικόνα. Είχε στόχο να κωδικοποιήσει Video στο bitrateτου CD (1.5 Mbps). Χαμηλή ποιότητα εικόνας και ήχου. MPEG 2 (1995). Υποστηρίζει broadcast quality εικόνα. Χρησιμοποιείται στην ψηφιακή τηλεόρασηκαι στα DVD. MPEG 4 (1998) και επέκταση MPEG 4 AVC (H.264). Πολύ ευέλικτο και αποδοτικό πρότυπο, χρησιμοποιείται στους υπολογιστές, κινητά, και τελευταία στην ψηφιακή τηλεόραση υψηλής ευκρίνειας. 5
Είναι διεθνές πρότυπο (ISO IEC 13818). Απωλεστικός (lossy) αλγόριθμος κωδικοποίησης. Μπορεί να αποδώσει πολύ καλή ποιότητα στα 6 Mbits/sec για PAL SD ανάλυση και στα 17 Mbits/sec για Full HD ανάλυση. ISO IEC 13818 1 (Systems): Περιγράφει την πολυπλεξία, τη δομή του stream και την κατανομή σε πακέτα και τη μετάδοση ISO IEC 13818 2 (Video): Περιγράφει την κωδικοποίηση της εικόνας ISO IEC 13818 3 (Audio): Περιγράφει την κωδικοποίηση του ήχου Χρήσεις Στα DVD Στην ψηφιακή τηλεόραση 6
Αποτελεί εξέλιξη του MPEG 1, προσφέροντας επιπλέον υποστήριξη για: Υψηλότερες αναλύσεις Κλιμακωτή κωδικοποίηση (scalable coding διάσπαση του κωδικοποιημένου video σε δύο ή περισσότερα ιεραρχικά streams) Κωδικοποίηση εικόνας με πεπλεγμένη (interlaced) σάρωση Ήχο πολλών καναλιών (surround) Τεχνικές που χρησιμοποιούνται για τη συμπίεση (δηλ. γιαεξοικονόμηση bits): I. Αντιστάθμιση κίνησης (moéon compensaéon) II. Μετασχηματισμός συνημιτόνου (DCT transform) και κβάντιση των συντελεστών III. Κωδικοποίηση εντροπίας (Huffman) στους συντελεστές 7
Μετατροπή από χώρο RGB σε YUV (βλ. Μάθημα 1). Χωρισμός της εικόνας σε blocks 8x8 pixels Χωρισμός της εικόνας σε macroblocks 16x16 pixels 1 macroblock = 4 blocks 8
Στην αντιστάθμιση κίνησης ασχολούμαστε μόνο με τα macroblocks (Μ/Β) Αναζήτηση σε κάθε καρέ macroblocksπου είναι παρόμοια με macroblocks γειτονικών καρέ που είτε έχουν μετακινηθεί είτε έμειναν στάσιμα Καταγραφή μόνο του διανύσματος κίνησης (δx, δy) του macroblock από το ένα καρέ στο άλλο, αντί για το ίδιο το περιεχόμενο του macroblock Περιοχή αναζήτησης Θέση σε γειτονικό καρέ (0,0) Διάνυσμα κίνησης 9 Μ/Β που ταιριάζει καλύτερα Τρέχον M/B
Σε κάθε macroblockαντιστοιχεί και ένα διάνυσμα κίνησης, και έτσι μεταδίδονται μόνο τα διανύσματα κίνησης και όχι τα macroblocksαυτά καθεαυτά Αν δεν βρεθεί κατάλληλο ταίριασμα, το macroblock θεωρείται αυτόνομο (intra) και κωδικοποιείται εξολοκλήρου χωρίς αναφορά 10
11 Τα καρέ ταξινομούνται σε τρεις κατηγορίες, ανάλογα με την εξάρτησή τους από τα γειτονικά: I frames (Intra): Είναι καρέ που κωδικοποιούνται ολόκληρα και τελείως αυτόνομα, χωρίς αναφορά στα γειτονικά τους P frames (Predicted): Είναι καρέ που έχουν macroblocksμε αναφορά σε προηγούμενα I frames ή P frames B frames (Bidirecponal): Είναι καρέ που έχουν macroblocksμε αναφορά σε προηγούμενα ή επόμενα I frames ή P frames
Κάθε τόσο πρέπει να μεταδίδονται ανεξάρτητα καρέ (I frames) ώστε σε περίπτωση λάθους να υπάρχει καινούργια αναφορά για να συνεχιστεί η αναπαραγωγή. Αλλιώς πιθανά λάθη θα μεταδίδονται από καρέ σε καρέ επ άπειρον. Μια συνήθης ακολουθία είναι η εξής:... I B B P B B P B B P B B... Μία ομάδα καρέ από Ι frame σε I frame ονομάζεται Group Of Pictures (GOP). Ο αριθμός των καρέ που περιλαμβάνει ονομάζεται GOP Size. Στο προηγούμενο παράδειγμα GOP Size = 12 (συνηθισμένο για την ψηφιακή τηλεόραση) 12
Γίνεται σε επίπεδο block 8x8 (σε αντίθεση με την αντιστάθμιση κίνησης που γίνεται σε επίπεδο macroblock) Σε κάθε block 8x8 εκτελείται ο μετασχηματισμός διακριτού συνημιτόνου (DCT) (Ο παρακάτω τύπος για Ν=8) Έτσι, οι τιμές των pixels f(x,y) αντιστοιχούνται σε συντελεστές χωρικών συχνοτήτωνf(x,y). Το κάθε block αναλύεται στις χωρικές του συχνότητες. 13
F(0,0) Χαμηλές χωρικές συχνότητες 14 Υψηλές χωρικές συχνότητες F(7,7) Οι 64 βασικές χωρικές συχνότητες. Κάθε block, μέσω του μετασχηματισμού DCT παρίσταται σαν γραμμικός συνδυασμός των συχνοτήτων αυτών.
Με τον μετασχηματισμό DCT μπορούμε να εξοικονομήσουμε bits γιατί η πληροφορία συνήθως συγκεντρώνεται σε λίγους συντελεστές, κυρίως σε αυτούς που αντιστοιχούν στις χαμηλές χωρικές συχνότητες. Οι μηδενικοί συντελεστές δεν μεταδίδονται. Block Τιμές pixels Συντελεστές DCT 15 Μετασχηματισμός DCT
Για ακόμη μεγαλύτερη εξοικονόμηση bits, οι συντελεστές DCT δεν μεταδίδονται ως έχουν, αλλά κβαντίζονται. Συγκεκριμένα, γίνονται τα εξής: 1. Πρώτον, κάθε συντελεστής διαιρείται με το αντίστοιχο στοιχείο ενός πίνακα κβάντισης (Quanpzer Matrix)που είναι σταθερός και προκαθορισμένος (περιγράφεται στο πρότυπο MPEG 2). 2. Δεύτερον, το αποτέλεσμα διαιρείται με έναν σταθερό αριθμό που λέγεται κλίμακα κβάντισης (Quanpzer Scale). Αυτόν τον επιλέγουμε κατά την κωδικοποίηση. 3. Μεταδίδεται τελικά το τελικό πηλίκο των δύο διαδοχικών διαιρέσεων (η στρογγυλοποίησή του σε ακέραιο) 16
Αρχικοί Συντελεστές DCT Συντελεστές που μεταδίδονται 17 Πίνακας κβάντισης Κλίμακα κβάντισης
Όσο αυξάνουμε την κλίμακα κβάντισης, τόσο περισσότεροι είναι οι συντελεστές DCT που τελικά μηδενίζονται και δεν μεταδίδονται. Έτσι, εξοικονομούμε bits αλλά χάνουμε σε ποιότητα εικόνας καθώς χάνονται χωρικές συχνότητες. Τα block παραμορφώνονται, χάνουν τη λεπτομέρειά τους αλλά και τη συνέχειά τους. Γίνονται δηλατή ορατά τα όρια των blocks, κάτι που είναι γνωστό ως blockiness effect Χαμηλή κλίμακα κβάντισης Υψηλή κλίμακα κβάντισης 18
H κλίμακα κβάντισης είναι το κλειδί που ορίζει την ποιότητα αλλά και το bit rate (σε Mbits/s) του κωδικοποιημένου κατά MPEG βίντεο. Χαμηλή κλίμακα κβάντισης Καλή ποιότητα Δεν χάνονται χωρικές συχνότητες και δεν φαίνονται οι ατέλειες της κωδικοποίησης No blockiness effect Μεγάλος αριθμός bits ανά block Υψηλό bit rate που απαιτείται Υψηλή κλίμακα κβάντισης Κακή ποιότητα Χάνονται χωρικές συχνότητες και φαίνονται οι ατέλειες της κωδικοποίησης Βlockiness effect Μικρός αριθμός bits ανά block Μικρό bit rate που απαιτείται 19 Συνήθως στον κωδικοποιητή ορίζουμε το επιθυμητό bit rate και αυτός αυτόματα προσαρμόζει την κλίμακα κβάντισης (μπορεί να αλλάζει σε κάθε καρέ ή και σε κάθε macroblock) προκειμένου να πετύχει στην έξοδο το bit rate που έχουμε ορίσει.
Δεν υπάρχει γενικός κανόνας, ότι δηλ. «X Mbits/sαντιστοιχούν σε καλή ποιότητα και Υ Mbits/sαντιστοιχούν σε κακή ποιότητα» Γρήγορες σκηνές απαιτούν περισσότερα bits για τα διανύσματα κίνησης σε σχέση με τις αργές γι αυτό και χρειάζονται υψηλότερο bit rate Σκηνές που αλλάζουν απότομα από καρέ σε καρέ απαιτούν επίσης υψηλότερο bit rate γιατί δεν μπορούν να εκμεταλλευτούν την αντιστάθμιση κίνησης (δεν υπάρχει μεγάλη συσχέτιση μεταξύ γειτονικών καρέ) Σκηνές που έχουν μεγάλη χωρική λεπτομέρεια απαιτούν επίσης υψηλότερο bit rate γιατί κάθε block έχει μεγάλους συντελεστές DCT ακόμη και στις υψηλές χωρικές συχνότητες. 20
Λάθη >αποτέλεσμα π.χ. διαλείψεων σε ένα ασύρματο κανάλι ή απώλειας πακέτων IP σε ένα δίκτυο δεδομένων λόγω συμφόρησης Απώλεια διανυσμάτων κίνησης >Macroblocksβρίσκονται σε λάθος θέσεις Απώλεια συντελεστών DCT >Η εικόνα παραμορφώνεται, χάνονται τα όρια των blocks Υπάρχει πλήθος μεθόδων απόκρυψης λαθών (error concealment) 21
Διεθνές πρότυπο (ISO / IEC 14496) Παραλλαγές: DivX, Xvid, QuickÉmeκλπ. Βασίζεται στο MPEG 2, είναι όμως πιο πολύπλοκο Καλύτερη απόδοση κωδικοποίησης (ίδια ποιότητα στο μισό σχεδόν bit rate σε σχέση με το MPEG 2) Υποστήριξη όλων των αναλύσεων, όλων των μέσων αποθήκευσης (από κινητά μέχρι Blu Ray), όλων των δικτύων διανομής (από IPTV μέχρι broadcast) Απόκρυψη λαθών και ελάττωση του blockiness effect Καθώς η τεχνολογία κωδικοποίησης προχωράει, τόσο ελαττώνεται το bitrateκωδικοποιημένου βίντεο που απαιτείται για μια συγκεκριμένη ποιότητα 22