ΤΕΙ ΚΡΗΤΗΣ ΤΜ. ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡ/ΚΗΣ & ΠΟΛΥΜΕΣΩΝ ΔΙΔΑΣΚΩΝ: Δρ. Γ. ΓΑΡΔΙΚΗΣ 3 MPEG 2 bitstream και πολυπλεξία
2 Μικρότερο δομικό στοιχείο: Το block 8x8 με τους συντελεστές DCT είτε για τη φωτεινότητα ή τη χρωματικότητα Τέσσερα blocks φωτεινότητας (και συνήθως 1 χρωματικότητας μπλε και 1 χρωματικότητας κόκκινου) σχηματίζουν ένα macroblock Μια σειρά από macroblocks σχηματίζει ένα slice
Το σύνολο των slices στην εικόνα σχηματίζει ένα καρέ (frame) Μια ομάδα από frames συνήθως 12 σχηματίζει ένα GOP (Group of Pictures) Το σύνολο των GOP σχηματίζει το Video Sequence (ολόκληρο το βίντεο) Ιεραρχική δομή: block > macroblock > slice > frame > GOP > sequence Η ίδια ιεραρχική δομή χρησιμοποιείται και μέσα στο bitstream κάθε συστατικό περιέχεται στο υπερσύνολό του 3
4
5
Κάθε στοιχείο έχει κάποια bits τα οποία υπάρχουν στην αρχή του και το περιγράφουν (επικεφαλίδα) Επικεφαλίδα macroblock: Κλίμακα κβάντισης, διάνυσμα κίνησης Επικεφαλίδα slice: Σημείο συγχρονισμού Επικεφαλίδα frame: Τύπος (I/P/B), Δομή εικόνας Επικεφαλίδα GOP: Timecode, Σημείο (stamp) συγχρονισμού Επικεφαλίδα sequence: οριζόντια και κατακόρυφη ανάλυση, frame rate 6
Η δομή που προαναφέρθηκε αποτελεί ουσιαστική την έξοδο του κωδικοποιητή εικόνας. Αποτελεί ένα συνεχές bitstream που ονομάζεται Στοιχειώδης Ροή (Elementary Stream ES) Το Elementary Stream δεν είναι κατάλληλο για μετάδοση, γιατί: Δεν είναι χωρισμένη σε πακέτα Δεν περιέχει ήχο Δεν περιέχει πληροφορίες προγράμματος Δεν μπορεί να πολυπλεχθεί με άλλα προγράμματα Έχει συγκεκριμένες αδυναμίες απέναντι σε σφάλματα μετάδοσης π.χ. Αν χαθεί το Sequence Header (που βρίσκεται μόνο στην αρχή), δεν μπορεί να αποκωδικοποιηθεί το βίντεο 7
Το πρώτο βήμα είναι ο τεμαχισμός του Elementary Stream σε πακέτα. Έτσι προκύπτει το PackeLsed Elementary Stream (PES) και τα πακέτα ονομάζονται PES packets. Συνήθως η τομή γίνεται στα όρια των frames και κάθε frame αντιστοιχεί σε ένα PES packet. Συνεπάγεται ότι τα PES packets δεν έχουν σταθερό μήκος. Με τον ίδιο τρόπο σχηματίζεται και ένα PES για τον κωδικοποιημένο ήχο. M P E G 2 E l e m e n t a r y S t r e a m PES Packet 1 PES Packet 2 PES Packet 3 8
Στο κάθε PES Packet προσαρτάται μία επικεφαλίδα (PES packet header) Μεταξύ άλλων, η επικεφαλίδα περιέχει το μήκος του πακέτου, το αναγνωριστικό του Elementary Stream που μεταφέρει, καθώς και πληροφορίες χρονισμού (PTS/DTS) που δείχνουν στον αποκωδικοποιητή MPEG 2 πότε να αποκωδικοποιήσει και πότε να παρουσιάσει το περιεχόμενο του πακέτου. 9
To Packe}sed Elementary Stream είναι χωρισμένο σε πακέτα. Όμως τα PES packets είναι μεταβλητού μεγέθους (μπορεί να είναι πολύ μεγάλα!) και δεν είναι κατάλληλα ούτε για μετάδοση ούτε για πολυπλεξία. Για τον λόγο αυτό, γίνεται μια δεύτερη διαίρεση σε πακέτα. Το Packe}sed Elementary Stream διαιρείται και αυτό σε πακέτα σταθερού μεγέθους των 188 bytes που λέγονται Πακέτα Μεταφοράς (Transport Packets TPs). Προκύπτει έτσι το MPEG 2 Transport Stream M P E G 2 P a c k e t i s e d E l e m e n t a r y S t r e a m PES Packet 1 PES Packet 2 PES Packet 3 TP 1 TP 2... TP n Transport Packets 10 M P E G 2 T r a n s p o r t S t r e a m
Το κάθε Πακέτο Μεταφοράς έχει σταθερό μήκος 188 bytes και επικεφαλίδα 4 bytes. Άρα το ωφέλιμο φορτίο του (payload) είναι 184 bytes, όπου περιέχονται bytes από το PES. Το πεδίο προσαρμογής (adapta}on field) έχει κενά bytes και χρησιμοποιείται για να γεμίσει το πακέτο όταν τα δεδομένα είναι λιγότερα από 184 bytes. Αυτό συμβαίνει στο τέλος του πακέτου PES. 11
Στην επικεφαλίδα του Πακέτου Μεταφοράς, υπάρχουν μεταξύ άλλων: Το byte συγχρονισμού (sync byte). Έχει πάντα την τιμή 0x47 δεκαεξαδικό και δηλώνει την αρχή του πακέτου. Το αναγνωριστικό (Packet IdenLfier ή PID). Είναι μια 13 μπιτη τιμή (από 0x00 μέχρι 0x1fff) που μονοσήμαντα δηλώνει τη ροη που περιέχεται στο πακέτο. Π.χ. Όλα τα πακέτα που μεταφέρουν την εικόνα του προγράμματος Α έχουν PID 0x64. Τον ήχο 0x65. Για το πρόγραμμα Β οι τιμές μπορεί να είναι π.χ. 0xA0, 0xA1 κλπ. Ο μετρητής συνέχειας (conlnuity counter). Αυξάνεται σε κάθε πακέτο και χρησιμεύει για να ανιχνεύσει χαμένα πακέτα μεταφοράς. Ασυνέχεια στην τιμή του μετρητή σημαίνει ένα ή περισσότερα χαμένα πακέτα. Επειδή ο μετρητής είναι 4 bits, μετράει από 0 έως 15 και μετά επιστρέφει πάλι στο 0. 12
Είναι η διαδικασία του συνδυασμού της πληροφορίας πολλών τηλεοπτικών προγραμμάτων σε μία και μόνο ροή («μπουκέτο»). Προκειμένου να γίνει η πολυπλεξία, όλες οι πληροφορίες για όλα τα προγράμματα θα πρέπει να έχουν «φορτωθεί» σε Transport Packets: Κωδικοποιημένες ροές εικόνας Κωδικοποιημένες ροές ήχου Πληροφορίες υπηρεσιών (Service InformaLon) Όνομα προγράμματος Ποιο PID έχουν τα πακέτα που μεταφέρουν την εικόνα Ποιο PID έχουν τα πακέτα που μεταφέρουν τον ήχο Πληροφορίες σχετικά με την κρυπτογράφηση και την υπό συνθήκη πρόσβαση (condilonal access CA) Άλλα δεδομένα (διαδραστικές υπηρεσίες, δεδομένα IP κλπ) 13
14
Η πολυπλεξία MPEG 2 είναι τύπου διαίρεσης χρόνου (Time Division MulLplexing TDM). Δηλαδή δεν εκπέμπεται κάθε πρόγραμμα σε διαφορετική συχνότητα (όπως στην πολυπλεξία διαίρεσης συχνότητας FDM ) αλλά τα Transport Packets των διάφορων ροών συνδυάζονται και μεταδίδονται διαδοχικά. Το αποτέλεσμα είναι ένα σύνθετο MPEG 2 Transport Stream (MulL Program Transport Stream, MPTS) που αποτελεί και το τελικό σήμα βασικής ζώνης της ψηφιακής τηλεόρασης. Συνεπάγεται ότι το συνολικό bitrate της πολυπλεξίας ισούται με το άθροισμα των bitrate των ροών εισόδου. Το συνηθέστερο όμως είναι ο πολυπλέκτης να λειτουργεί σε ένα σταθερό bitrate εξόδου (ΠΑΝΤΑ μεγαλύτερο ή ίσο του αθροίσματος), ακόμη και αν οι ροές εισόδου έχουν μεταβλητό bitrate. Στην περίπτωση αυτή προστίθενται από τον πολυπλέκτη κενά (stuffing) Transport Packets για να αναπληρώσουν την διαφορά. 15
Εικόνα προγράμματος Α (4 Mbps) Ήχος προγράμματος Α (0.4 Mbps) Εικόνα προγράμματος Β(6 Mbps) Ήχος προγράμματος Β (0.4 Mbps) Πληροφορίες υπηρεσιών (0.1 Mbps) M u l P P r o g r a m T r a n s p o r t S t r e a m ( 1 0. 9 M b p s ) Προς βαθμίδα διαμόρφωσης/εκπομπής 16
Σε ένα σύστημα ευρυεκπομπής το σήμα λαμβάνεται από όλους τους δέκτες που βρίσκονται στην περιοχή κάλυψης. Αν όμως ο πάροχος του προγράμματος επιθυμεί το περιεχόμενο (προγράμματα) να είναι ορατό όχι από όλους αλλά μόνο από τους συνδρομητές, τότε απαιτείται ένας μηχανισμός πρόσβασης υπό συνθήκη (CondiLonal Access CA). Σε σύστημα Condi}onal Access, ένα ή περισσότερα προγράμματα μέσα σε ένα Transport Stream κρυπτογραφούνται (scrambled), ώστε να μην μπορεί να τα αποκωδικοποιήσει ο καθένας αλλά μόνο οι συνδρομητές. Δεν κρυπτογραφείται η επικεφαλίδα του Transport Packet, αλλά μόνο το περιεχόμενό του. Έτσι, μία πολυπλεξία «μπουκέτο» μπορεί να περιέχει τόσο ελεύθερα όσο και κρυπτογραφημένα προγράμματα. 17
Η κρυπτογράφηση γίνεται με ένα κεντρικό κλειδί (control word) που μπορεί να έχει μέγεθος αρκετών bytes (συνήθως 8). Μια πολύ απλή μέθοδος κρυπτογράφησης (στην πράξη χρησιμοποιούνται πιο σύνθετες μέθοδοι) βασίζεται στο λογικό XOR μεταξύ των bytes του Transport Packet και του κλειδιού. Έτσι, για την αποκρυπτογράφηση, απαιτείται η γνώση του κεντρικού κλειδιού. Αρχικό Transport Packet Κλειδί 00110101 11001010 11110011 01011100 11001011 00000111 10101100 10000101 Scrambled T.P. Κλειδί 11111110 11001101 01011111 11011001 11001011 00000111 10101100 10000101 18 Αρχικό T.P. 00110101 11001010 11110011 01011100
Όλες οι πληροφορίες σχετικά με την κρυπτογράφηση μπαίνουν και αυτές σε Transport Packets με ειδικό PID Μεταδίδεται περιοδικά το κεντρικό κλειδί, κρυπτογραφημένο και αυτό (μήνυμα ECM EnLtlement Control Message) Μεταδίδεται επίσης περιοδικά μια σειρά από EMMs (EnLtlement Management Messages). Κάθε EMM περιέχει ειδικούς κωδικούς και αντιστοιχεί σε έναν μόνο αποκωδικοποιητή συνδρομητή. Όταν ο αποκωδικοποιητής λάβει το EMM που αντιστοιχεί σε αυτόν, χρησιμοποιεί τους ειδικούς κωδικούς που ταιριάζουν στην ταυτότητά του και μέσω μιας συγκεκριμένης διαδικασίας αποκρυπτογραφεί το κεντρικό κλειδί. Τέλος, ο αποκωδικοποιητής χρησιμοποιεί το γνωστό πλέον σε αυτόν κεντρικό κλειδί για να αποκρυπτογραφήσει το Transport Stream. 19 Οι παραπάνω λειτουργίες εκτελούνται συνήθως από ειδικό CondiLonal Access module σε μορφή κάρτας που περιέχει κυκλώματα για το σκοπό αυτό καθώς και τους κωδικούς του χρήστη.
20 Υπάρχουν πολλά συστήματα για CA από διάφορες εταιρείες (VideoGuard, Irdeto Access, Nagravision, Viaccess, Mediaguard κλπ) η κάθε μία εκ των οποίων κρατάει μυστικό τον ακριβή αλγόριθμο αποκρυπτογράφησης. Εν τούτοις, πολλά από τα συστήματα έχουν ήδη «σπάσει».