EΝΙΣΧΥΤΙΚΗ Ι ΑΣΚΑΛΙΑ ΨΗΦΙΑΚH ΤΗΛΕOΡΑΣΗ Ψηφιακή τηλεόραση [από το Α έως το Ω] Συµπίεση (ΙΙ) Του Κωνσταντίνου Λεµπιδάκη Μέρος Στο παρόν άρθρο θα αναφερθούµε κυρίως στην συµπίεση που χρησιµοποιείται κατά κόρον στην ψηφιακή τηλεόραση για τη συµπίεση του σήµατος video, δηλαδή στους αλγορίθµους Mpeg2 και H.264. Το H.264 είναι γνωστό και σαν Mpeg 4 Part 10 ή Mpeg 4 AVC. Επίσης θα µιλήσουµε για τα διάφορα χαρακτηριστικά, τις τεχνικές και τις αρχές λειτουργίες των παραπάνω αλγορίθµων χωρίς να µπούµε σε δύσκολες τεχνικές λεπτοµέρειες. Όποιος ενδιαφέρεται για περισσότερες πληροφορίες, µπορεί να ανατρέξει στο διαδίκτυο ή σε κατάλληλη βιβλιογραφία. Σ ε ποιους απευθύνεται... Αυτή η σειρά τεχνικών άρθρων απευθύνεται σε τεχνικούς που θέλουν µε σχετικά απλό τρόπο να εξοικειωθούν µε τη ψηφιακή τηλεόραση και τις διάφορες τεχνολογίες που τη στηρίζουν. Τα άρθρα αυτά ξεκινούν από πολύ βασικές έννοιες και καταλήγουν σε σύνθετα τεχνικά ζητήµατα καλύπτοντας σφαιρικά απ άκρη σ άκρη τη λειτουργία της ψηφιακής τηλεόρασης. Εισαγωγή Στο προηγούµενο άρθρο (τεύχος εκεµβρίου 2013) έγινε µια εισαγωγή στην έννοια της συµπίεσης καθώς και στις αρχές λειτουργίας της µέσα από µια σειρά απλών παραδειγµάτων. Η τεχνολογία της συµπίεσης εξελίσσεται συνεχώς και κατέχει καθοριστικό ρόλο στην ψηφιακή τηλεόραση καθώς µας επιτρέπει να µεταδίδουµε περισσότερο περιεχόµενο (σήµα video, audio και data) σε
ΨΗΦΙΑΚH ΤΗΛΕOΡΑΣΗ EΝΙΣΧΥΤΙΚΗ Ι ΑΣΚΑΛΙΑ Συµπίεση Mpeg Σήµα ITU-BT.R601 Παρατηρώντας την εικόνα Νο. 1 βλέπουµε συνοπτικά το πώς ένα αναλογικό σήµα video και audio προερχόµενο από κάποια κάµερα µπορεί να µετατραπεί σε ψηφιακό σήµα SDI. Ένα σήµα video RGB µπορεί να µετατραπεί µέσω ενός δικτυώµατος αντιστάσεων σε χρωµοδιαφορές (Y, Cb, Cr), όπως είδαµε στο δεύτερο άρθρο της σειράς (τεύχος Νοεµβρίου 2013). Εν συνεχεία, περιορίζουµε το bandwidth των σηµάτων στους 5,75MHz για το σήµα Y και 2,75MHz για τα σήµατα Cb/Cr µε την χρήση συγκεκριµένων Low pass φίλτρων. Αυτή η επεξεργασία γίνεται όσο ακόµα το σήµα είναι αναλογικό. Ακολουθεί η ψηφιοποίηση του σήµατος η οποία επιτελείται από τους A/D converters. Η συχνότητα δειγµατοληψίας (sampling rate) του A/D converters που ψηφιοποιεί το σήµα Y είναι 13.5MHz ενώ αυτών για τα σήµατα Cb και Cr είναι 6,75MHz. Με µία ειδική διαδικασία και διαδοχή τα παραπάνω ψηφιακά σήµατα συναθροίζονται σε ένα bitstream για τα σήµατα Cb και Cr δη- µιουργώντας στο σύνολο ένα ψηφιακό bitstream των 270Mbit/s καθώς 13,5MHz + 6,75MHz + 6,75MHz = 27MHz και 27MHz x 10bit (το resolution των A/D converters) = 270Mbit/s. ιακόσια εβδο- µήντα εκατοµµύρια bits το δευτερόλεπτο, αυτή είναι η ροή των δεδοµένων του σήµατος SDI το οποίο περιέχει ένα ψηφιακό ασυ- µπίεστο σήµα video. 1 Εικόνα 1 ένα δεδοµένο δίαυλο µεταφοράς. Έτσι, ένα κανάλι 8MHz στην µπάντα των UHF µπορεί να χωρέσει µέχρι τέσσερα προγράµµατα SD µε συµπίεση Mpeg2 ή οκτώ προγράµµατα SD µε συµπίεση H.264. Ιστορική αναδροµή Ο οργανισµός MPEG (Moving Picture Expert Group) ιδρύθηκε το 1988 από τους οργανισµούς ISO (International Organization for Standardization) και IEC (International Electrotechnical Commission) προκειµένου να ερευνήσει µεθόδους µε τους οποίους θα µπορούσε να συµπιεστεί ένα σήµα video και audio. Η επίσηµη ονοµασία του οργανισµού είναι κανονικά ISO/IEC JTC1/SC29 WG11. Οι ιδρυτές του οργανισµού είναι ο γιαπωνέζος Hiroshi Yasuda καθώς και ο ιταλός µηχανικός Leonardo Chiariglione. Η πρώτη επίσηµη συνάντηση πραγµατοποιήθηκε τον Μάιο του 1988 στον Καναδά, ενώ µέχρι τα τέλη του 2005 ο οργανισµός αριθµούσε πάνω από 350 µέλη προερχόµενα από διάφορους τοµείς όπως ερευνητικά ιδρύµατα, πανεπιστήµια κτλ. Ο ήχος ακολουθεί παρόµοια διαδροµή µε αυτή του video. Αρχικά το bandwidth περιορίζεται στα 15...20KHz µε την χρήση κατάλληλων Low pass φίλτρων, ενώ για τη ψηφιοποίηση του χρησιµοποιούνται A/D converters µε συχνότητα δειγµατοληψίας που ποικίλει ανάµεσα σε 32kHz, 44,1kHz ή 48kHz. Για συχνότητα δειγ- µατοληψίας 48kHz και resolution 16bit προκύπτει ένα bitstream για τον ήχο ίσο µε 768Kbit/s. Λαµβάνοντας υπόψη τα δύο σήµατα Left και Right του ήχου καταλήγουµε σε 768Kbit/s + 768Kbit/s = 1,5Mbit/s συνολικά. Οι ψηφιακοί διαµορφωτές (encoders) της εταιρίας Lemco µε είσοδο A/V χρησιµοποιούν συχνότητα δειγµατοληψίας 48ΚHz για τα δύο κανάλια του ήχου. Με βάση τα παραπάνω βλέπουµε ότι το ασυµπίεστο σήµα video καταλαµβάνει bandwidth της τάξης των 270Mbit/s το οποίο χρησιµοποιώντας τον αλγόριθµο Mpeg2 µπορούµε να το συµπιέσουµε στα 2-7Mbit/s ενώ χρησιµοποιώντας τον αλγόριθµο H.264 µπορούµε να φτάσουµε στα 1-3Mbit/s!!! Αντίστοιχα, χρησιµοποιώντας συµπίεση Mpeg1, ο ήχος µπορεί να συµπιεστεί από το 1,5Mbit/s που είναι αρχικά σε 100-400Kbits/s (συνήθως 192Kbits/s).
EΝΙΣΧΥΤΙΚΗ Ι ΑΣΚΑΛΙΑ ΨΗΦΙΑΚH ΤΗΛΕOΡΑΣΗ 2 Εικόνα 2 3 Σχήµα 1 Encoder (Συµπιεστής) Στην εικόνα 2 φαίνεται ένας Mpeg2 encoder της εταιρίας Lemco ο οποίος χρησιµοποιεί τον MB86391 επεξεργαστή σηµάτων της Fujitsu. Ο συγκεκριµένος encoder της εικόνας δέχεται ένα αναλογικό σήµα video σε µορφή CVBS και δύο αναλογικά κανάλια ή- χου (Left / Right). Η διαδικασία που περιγράφεται στην παράγραφο " Σήµα ITU-BT.R601" εκτελείται πλήρως από αυτό τον encoder µε την χρήση των κατάλληλων ολοκληρωµένων κυκλωµάτων. Η µηχανή συµπίεσης που περιέχει δέχεται εσωτερικά στην είσοδο της το ψηφιοποιηµένο ασυµπίεστο σήµα video και audio από τους αντίστοιχους A/D converters και παράγει ένα bitstream που περιέχει και τα δύο σε συµπιεσµένη µορφή. Το σήµα video συµπιέζεται εσωτερικά σύµφωνα µε τον αλγόριθµο Mpeg2 ενώ αντίστοιχα ο ήχος σύµφωνα µε τον αλγόριθµο Mpeg1. Σε κάποιες περιπτώσεις υπάρχουν και κάποια δεδοµένα (data) που συνοδεύουν ένα πρόγραµµα (π.χ. Teletext). Το ψηφιακό συ- µπιεσµένο σήµα video, ήχου και data που παράγεται από τη µηχανή συµπίεσης αποτελεί το λεγόµενο "Elementary stream" (σε συντοµία ES). Σε κάποιο στάδιο εσωτερικά στον encoder το ES τεµαχίζεται από τον ίδιο τον encoder σε πακέτα προκειµένου να µπορεί να διανεµηθεί πιο εύκολα και µε µεγαλύτερη ασφάλεια. Το σήµα σε αυτή τη µορφή ονοµάζεται PES (Packetized Elementary Streams). Το κάθε πακέτο PES έχει µέγεθος 64KBytes max. και η απλοποιηµένη δοµή του φαίνεται στο σχήµα 1. Η επικεφαλίδα που περιέχει το κάθε πακέτο έχει µέγεθος 2byte (2x 8bit = 16bit) και περιέχει πληροφορίες για το συγκεκριµένο πακέτο PES ενώ η πληροφορία (payload) περιέχει "ποσότητα" του σή- µατος video ή audio ή data ή λίγο απ όλα. Μέχρι εδώ συζητάµε για ροές δεδοµένων που αφορούν ένα πρόγραµµα µόνο, αυτό που διαχειρίζεται ο encoder. Εδώ υπάρχουν δύο θέµατα: Πρώτον, το µέγεθος των 64kByte ανά πακέτο είναι πολύ µεγάλο για διανοµή. Κατά τη διανοµή κάποια πακέτα µπορεί να χαθούν ή να αλλοιωθούν και τότε όσο µεγαλύτερα είναι τόσο µεγαλύτερη θα είναι και η ζηµιά που θα προκαλέσουν στην εικόνα κατά την αναπαραγωγή, συµφέρει λοιπόν να γίνουν πιο µικρά. εύτερον, όπως έχουµε ήδη δει, λόγο της συµπίεσης περισσότερα του ενός προγράµµατα (προερχόµενα από άλλους encoders), µπορούν να συνταξιδεύσουν στο ίδιο κανάλι εκποµπής. Για να µπορεί να γίνει αυτό θα πρέπει τα πακέτα του κάθε προγράµµατος να περιέχουν επιπλέον πληροφορίες από όσες παρέχονται στα πακέτα PES έτσι ώστε όταν αναµιχθούν µε άλλα να µπορεί ο δέκτης να τα διαχωρίσει και να διαλέξει µόνο αυτά που αφορούν το συγκεκριµένο πρόγραµµα που αναπαράγει κάθε στιγµή. Για τους παραπάνω λόγους, τα πακέτα PES "τεµαχίζονται" ακόµα µία φορά, µέσα στον encoder, σε ακόµα µικρότερα πακέτα των 188bytes ή των 204bytes και αυτά τώρα δηµιουργούν το λεγόµενο Mpeg2 TS (Mpeg2 Transport Stream). Αυτό είναι τελικά και το σήµα που παίρνουµε στην έξοδο του encoder. Αυτό τώρα, πολύ εύκολα µπορεί να αναµειχθεί µε τα αντίστοιχα σήµατα από άλλους encoders και να δηµιουργήσει ένα µπουκέτο περισσοτέρων του ενός προγραµµάτων. Τεχνικές συµπίεσης Mpeg Υπάρχουν διάφορες τεχνικές συµπίεσης που χρησιµοποιούνται στους αλγόριθµους Mpeg προκειµένου να συµπιέσουµε την αρχική πληροφορία των 270Mbit/s του ασυµπίεστου ψηφιακού σή- µατος. Μερικές από αυτές είναι οι εξής:
ΨΗΦΙΑΚH ΤΗΛΕOΡΑΣΗ EΝΙΣΧΥΤΙΚΗ Ι ΑΣΚΑΛΙΑ 8/10bit ανάλυση A/D converter Εκµεταλλευόµενοι την ανθρώπινη αδυναµία του µατιού, µπορού- µε να µειώσουµε την ανάλυση (resolution) των A/D converters α- πό τα 10bit στα 8bit και να πετύχουµε µια συµπίεση της τάξης του 20%, δηλ. τα 270Mbit/s να γίνουν 216Mbit/s. Με τον όρο ανάλυση (resolution) του A/D εννοούµαι πόσο λεπτοµερή (πυκνά στον ά- ξονα της τάσης) είναι τα δείγµατα που παίρνει ο A/D από το αναλογικό σήµα. Όσο πιο µεγάλη είναι η ανάλυση τόσο πιο πιστό α- ντίγραφο δηµιουργούµε. Ένας A/D µε ανάλυση 10bit µπορεί να διαχωρίσει 1024 στάθµες στο αναλογικό σήµα ενώ ένας µε 8bit µόλις 256. Παρ όλα αυτά, η ανάλυση των 8bit δίνει ένα πολύ ικανοποιητικό αποτέλεσµα στο µάτι. Μείωση της πληροφορίας του χρώµατος στην εικόνα / 4:2:0 και 4:2:2 Ο αλγόριθµος συµπίεσης Mpeg "τεµαχίζει" τα pixels µιας εικόνας σε µικρά block τα οποία λέγονται macroblocks όπως φαίνονται στο σχήµα 2. Εκµεταλλευόµενοι για ακόµα µια φορά την ανθρώπινη φύση του µατιού, που είναι λιγότερο ευαίσθητο στις αλλαγές του χρώµατος, µειώνουµε τον αριθµό των pixel της εικόνας που "κουβαλούν" την πληροφορία του χρώµατος, σε σχέση µε την πληροφορία της φωτεινότητας. Ένα macroblock µεγέθους 16x16 pixels αποτελείται από τέσσερα µικρότερα block που µεταφέρουν την πληροφορία του luma και από δύο ή τέσσερα block που µεταφέρουν την πληροφορία του χρώµατος. Μ' αυτόν τον τρόπο γίνεται µια οµαδοποίηση των pixel της εικόνας τα οποία αντιπροσωπεύονται από λιγότερα στοιχεία. Έτσι, στο σύστηµα 4:2:0 χρησιµοποιούνται µόνο δύο block για το χρώµα, ένα για το Cb και ένα για το Cr ενώ στο σύστηµα 4:2:2 χρησιµοποιούνται τέσσερα block για το χρώµα, δύο για το Cb και δύο για το Cr. Όλοι έχουµε δει έστω και µια φορά αυτά τα macroblocks στην εικόνα. Είναι τα λεγόµενα artifacts ή αλλιώς τα µεγάλα pixel που εµφανίζονται στην εικόνα κυρίως όταν κάτι πάει στραβά και ένα µεγάλο µέρος της πληροφορίας χάνεται. Όσο πιο µεγάλο είναι το macroblock τόσο µεγαλύτερη είναι η συµπίεση-οµαδοποίηση των pixel και τόσο χειροτερεύει η ποιότητα της εικόνας. Με την παραπάνω τακτική πετυχαίνουµε περαιτέρω συρρίκνωση της αρχικής πληροφορίας της τάξης του 25%. 4 Σχήµα 2 I,P,B Frames και µέγεθος GOP Τα "I Frames", "P Frames" και "B Frames" και το GOP είναι µία ακόµα µέθοδος συµπίεσης που χρησιµοποιείται στο Mpeg προκειµένου να µειωθεί περαιτέρω το µέγεθος της αρχικής πληροφορίας χωρίς όµως να χαθεί πολύτιµη πληροφορία και αλλοιωθεί σηµαντικά η αρχική εικόνα. Ένας encoder "τεµαχίζει" µια εικόνα στα λεγόµενα "I Frames", "P Frames" και "B Frames" από τα οποία απαρτίζεται η δοµή του Mpeg2 TS. Frame Με τον όρο frame εννοούµε µια ακίνητη εικόνα από ένα σήµα video. Μην ξεχνάµε ότι ένα σήµα video απαρτίζεται από χιλιάδες σταθερές εικόνες οι οποίες διαδέχονται η µια την άλλη σε πολύ γρήγορο ρυθµό. Πιο συγκεκριµένα, στο σύστηµα NTSC (αµερικάνικο αναλογικό σύστηµα) τα frames εµφανίζονται ανά 33ms ενώ στο σύστηµα PAL (το σύστηµα που χρησιµοποιούµε και στην Ελλάδα) τα frames διαδέχονται το ένα το άλλο ανά 40ms. I Frame Το Ι frame είναι το µοναδικό frame το οποίο συµπιέζεται αυτόνο- µα µε βάση την πληροφορία της εικόνας, χωρίς την ανάγκη ύ- παρξης άλλων frame. To γράµµα "Ι" προέρχεται από την λήξη "Intra" coded. P Frame Το P frame συµπιέζεται χρησιµοποιώντας την πληροφορία της ε- κάστοτε εικόνας αλλά και µέρος της πληροφορίας προερχόµενη από το προηγούµενο πιο κοντινό frame I ή P. Το γράµµα"p" προέρχεται από την λέξη predicted. B Frame Το Β frame, το οποίο είναι και το πιο µικρό frame (δηλαδή "κουβαλάει" την µικρότερη πληροφορία εικόνας) προκύπτει µε βάση τα I και P frames που προηγήθηκαν και από τα I και P frames που έπονται. Το γράµµα "Β" προέρχεται από την λέξη bidirectional. Αξίζει να σηµειώσουµε ότι στο Mpeg2 ένα B frame δεν µπορεί να δηµιουργηθεί µε βάση άλλο B frame όπως γίνεται σε κάποιες περιπτώσεις στον αλγόριθµο H.264.
EΝΙΣΧΥΤΙΚΗ Ι ΑΣΚΑΛΙΑ ΨΗΦΙΑΚH ΤΗΛΕOΡΑΣΗ 5 Σχήµα 3 GOP Το Group Οf Pictures ή αλλιώς GOP είναι µια αλληλουχία των παραπάνω frames η οποία περιέχει τουλάχιστον ένα frame I και καθόλου ή µερικά P και B frames. Ένα GOP ξεκινάει και τελειώνει πάντα µε ένα frame Ι, ενώ όλα τα υπόλοιπα frames που υπάρχον µέσα στο GOP σχετίζονται πάντα µε το αρχικό I frame. O λόγος για τον οποίο η Mpeg δηµιούργησε τα I,P και B frames έχει να κάνει µε την ποσότητα της πληροφορίας που µπορεί να ε- ξοικονοµηθεί. Με αυτόν τον τρόπο, µια εικόνα η οποία περιγράφεται από ένα P frame διαθέτει 2 ή 4 φορές λιγότερη πληροφορία από ένα Ι frame. Ένα B frame χρησιµοποιεί ακόµα λιγότερη ποσότητα πληροφορίας για να περιγράψει µια εικόνα σε σχέση µε ένα frame P µε αναλογία 2:5. Για να κατανοήσουµε καλύτερα τα παραπάνω ας δούµε ένα παράδειγµα: Μια αλληλουχία εικόνων που αποτελούν ένα σήµα video συµπιέζονται σε frames Ι,P και B µε βάση το σχήµα 3. Όπως βλέπουµε στο εν λόγω σχήµα 3, ένα GOP πάντα ξεκινάει µε ένα I frame καθώς αυτό περιέχει όλη την απαραίτητη πληροφορία για την συγκεκριµένη εικόνα που µεταφέρει και µπορεί να α- ποκοδικοποιηθεί χωρίς την ανάγκη άλλης πληροφορίας. Το frame No. 4 είναι ένα frame P, το οποίο ουσιαστικά προκύπτει από την αφαίρεση των pixel που άλλαξαν θέση µε βάση τα pixel του frame I, δηλ. το frame P "κουβαλάει" µόνο τις διαφορές των pixel σε σχέση µε το αρχικό I frame. Για αυτό το λόγο ένα P frame πάντα έχει ανάγκη να προπερεύεται ένα frame I. Εν συνεχεία, τα δύο frame Β στην θέση Νο. 2 & 3 προκύπτουν από το αρχικό frame I (θέση Νο. 1) και το frame P (θέση No. 4). Περιέχουν την µικρότερη δυνατή ποσότητα πληροφορίας και πάντα υπάρχει η ανάγκη ύ- παρξης των αντίστοιχω frame I και P προκειµένουν ο δέκτης να ξαναδηµιουργήσει την αρχική εικόνα. Η χρονική σειρά µε την οποία ένας encoder δηµιουργεί τα παραπάνω frames δεν συµπίπει µε την χρονική σειρά µε την οποία έ- να δέκτης τα λαµβάνει. Για αυτόν τον λόγο, ένας decoder που βρίσκεται µέσα σε ένα δέκτη και κάνει την ανάστροφη διαδικασία του encoder, αποθηκεύει τα παραπάνω frames προσωρινά στην µνήµη του και µε ειδικούς µηχανισµούς τα ανακαλεί µε τη σωστή σειρά για την αναπαραγωγή. Εκτός από τις παραπάνω τεχνικές συµπίεσης που χρησιµοποιεί το Mpeg και περιγράφτηκαν πολύ συνοπτικά παραπάνω υπάρχουν επίσης και οι εξής: 1. Η τεχνική "Redundancy reduction" δηλ. απαλοιφή των οριζόντιων και κάθετων γραµµών που δεν φαίνονται 2. Η τεχνική "DPCM" Differential pulse code modulation 3. Η τεχνική "DCT" Discrete cosine transform 4. Huffman coding 5. Zig-zag scanning Το κεφάλαιο µε τις διάφορες τεχνικές συµπίεσης που χρησιµοποιούνται είναι αρκετά µεγάλο και κάποιος που ενδιαφέρεται περισσότερο µπορεί να ανατρέξει στην σχετική βιβλιογραφία ή να βρει πληροφορίες στο Internet. Επίλογος Σε αυτό το άρθρο κάναµε µια αναφορά στον οργανισµό Mpeg ο ο- ποίος ευθύνεται για την δηµιουργία των διαφόρων αλγορίθµων συµπίεσης (Mpeg1, Mpeg2, Η.264 κτλ.) που χρησιµοποιούνται κατά κόρον στην ψηφιακή τηλεόραση για την συµπίεση τόσο του σή- µατος video όσο και του ήχου. Έγινε µια συνοπτική περιγραφή µερικών τεχνικών συµπίεσης που χρησιµοποιούνται σήµερα και του τρόπου λειτουργίας τους. Στο επόµενο άρθρο θα αναφερθούµε στα χαρακτηριστικά των αλγορίθµων συµπίεσης Mpeg2 και H.264 για το σήµα video καθώς επίσης και στον αλγόριθµο Mpeg1 που αφορά την συµπίεση του ήχου.