Telewizja cyfrowa DVB
System przesyłowy sygnału cyfrowego DVB Drukuj
Wpisany przez Mariusz Waśkowiec   

W koderze standardu MPEG-2 - rys. 5.1 skompresowane sygnały wizji, fonii i dodatkowych danych (np. teletekstu) są łączone w jeden sygnał cyfrowy. Na wyjściu kodera wizji i fonii znajdują się układy, które dzielą strumienie danych na pakiety elementarne PES (Packetized Elementary Streams). Podział na pakiety elementarne PES - rys. 5.2 - może być dokonany w sposób prawie dowolny: w przypadku stu mienia wizji początek pakietu nie musi pokrywać się z początkiem zakodowanego obrazu Jedynym ograniczeniem jest maksymalna długość pakietu wynosząca 64 kB. Długość elementarnego pakietu jest różna i zależy od charakteru kodowanych danych.


Rys. 5.1. Koder standardu MPEG-2

 


Rys. 5.2. Podział elementarnego strumienia na pakiety PES

 


Rys. 5.3. Nagłówek pakietu elementarnego PES

Pakiet PES jest rozpoznawany na podstawie swojego nagłówka - rys. 5.3, który zawiera

  • 3-bajtową sekwencję startową (00 00 01 hex)
  • 1-bajtowy identyfikator strumienia do którego należy pakiet, liczba identyfikatorów strumieni została ograniczona do 32 dla fonii i 16 dla wizji; dzięki temu zagwarantowane jest, że w strumieniu danych nie powtórzy się sekwencja bajtów startowych na główka pakietu PES i identyfikatora strumienia,
  • 2 bajty określające długość pakietu (stąd ograniczenie długości pakietu do 64 kB),
  • 2 bajty flag sygnalizujących występowanie w nagłówku pól dodatkowych, z których najważniejsze są: znacznik czasu prezentacji PTS (Presentation Time Stamp) i znacznik czasu dekodowania (Decoding Time Stamp). Pola te są wykorzystywane do synchronizacji dekodowania poszczególnych strumieni danych,
  • 1 bajt określający długość nagłówka,
  • pola dodatkowe, jeśli zostało to zaznaczone w bajtach flag.


Bezpośrednio po nagłówku znajdują się dane przesyłane w tym pakiecie.
Standard MPEG-2 przewiduje stosowanie dwóch rodzajów multiplekserów: programowego (Program Multiplexer) i transportowego (Transport Multiplekser).

Strumień programowy (Program Stream) jest tworzony przez zwykłe przeplatanie elementarnych pakietów danych należących do jednego programu telewizyjnego. Pakiety mogą być multipleksowane w dowolnej kolejności, wymagane jest jedynie zachowanie porządku chronologicznego w ramach poszczególnych strumieni elementarnych (wizji, fonii, danych). Zaletą strumienia programowego jest mała nadmiarowość danych - elementarne pakiety z reguły są dość długie, a ich nagłówki stosunkowo krótkie. W przypadku strumienia programowego nie ma możliwości zabezpieczenia pakietów przed błędami transmisji, gdyż pakiety te są różnej długości, a kody protekcyjne wymagają pakietów o stałej długości. Dlatego też ten sposób multipleksowania elementarnych pakietów danych może być stosowany przy przesyłaniu kanałem o niskim poziomie zakłóceń, np. w sieciach komputerowych albo zapisie na dyskach magnetycznych lub optycznych.

Strumień transportowy (Transport Stream) tworzony jest w inny sposób - elementarne pakiety danych PES są dzielone na mniejsze pakiety o stałej długości równej 184 bajty, przy czym w strumieniu transportowym mogą być umieszczane elementarne pakiety danych pochodzące z różnych programów telewizyjnych.

Sposób podziału na pakiety strumienia transportowego jest ściśle określony (rys. 5.4):

  • początek obrazu w strumieniu wizji (lub bloku próbek w strumieniu fonii) musi być umieszczony na początku pakietu strumienia transportowego,
  • kolejne bajty danych pakietu elementarnego są umieszczane w kolejnych pakietach strumienia transportowego,
  • jeśli długość pakietu elementarnego nie jest wielokrotnością 184 (co jest mało prawdopodobne) ostatni pakiet strumienia transportowego, w którym znajdują się dane z pakietu elementarnego jest wypełniany danymi nadmiarowymi (pole adaptacyjne), tak aby zawierał w sumie 184 bajty.

 


Rys. 5.4. Podział pakietu elementarnego na pakiety strumienia transportowego


Każdy pakiet uzupełniany jest 4-bajtowym nagłówkiem - rys. 5.5 - zawierającym m.in.:

  • bajt synchronizacji (47 hex),
  • 13-bitowy identyfikator pakietu (Packet IDentification), umożliwiający stwierdzenie, z którego elementarnego pakietu pochodzą dane przesyłane w danym pakiecie strumienia transportowego,
  • 1-bitowy wskaźnik payload_unit_start_indicator, którego ustawienie sygnalizuje, że dany pakiet strumienia transportowego jest pierwszym pakietem wydzielonym z danego pakietu elementarnego PES,
  • 4-bitowy licznik pakietów (Continuity Counter), informujący, którym z kolei pakietem wydzielonym z elementarnego pakietu PES jest dany pakiet.

 


Rys. 5.5. Nagłówek pakietu strumienia transportowego


Zastosowanie w strumieniu transportowym krótkich pakietów o stałej długości pozwala na efektywne zabezpieczenie przed błędami transmisji. Typowo każdy pakiet jest zabezpieczany 16 bajtami kodu Reeda-Solomona, który umożliwi korekcję do 8 błędów w każdym pakiecie. Strumień transportowy może być więc stosowany wszędzie tam, gdzie poziom zakłóceń w kanale transmisyjnym jest wysoki, a więc w transmisji programów telewizyjnych poprzez radiodyfuzję satelitarną lub naziemną, lub w sieciach kablowych.

W strumieniu transportowym identyfikator pakietu PID ma długość 13 bitów, co pozwala na multipleksowanie ponad 8000 różnych elementarnych strumieni danych. Część pakietów zarezerwowano do transmisji informacji opisujących przesyłane w strumieniu transportowym programy (Program Specific Information - PSI). Spośród tych pakietów najważniejszy jest pakiet o numerze 0, który zawiera tablicę PAT (Program Association Table) z zapisaną informacją o wszystkich przesyłanych programach - rys. 5.6. Tablica PAT zawiera spis programów z wyszczególnionymi numerami pakietów, w których transmitowane są tablice z opisami poszczególnych programów (Program Map Tables - PMT). Przykładowo na rys. 5.6 opis programu nr l jest przesyłany w pakiecie o numerze 306, opis programu nr 3 w pakiecie o numerze 1127, itd. Na początku tablicy PAT wyszczególniony jest program nr O, pakiet opisuŹjący ten program (10 na rys. 5.6) zarezerwowano do przesyłania informacji o sieci nadającej dany zestaw programów (Network Information Table). W tablicach PMT wymienione są numery wszystkich pakieŹtów zawierających elementarne strumienie danych dla danego programu. Program nr 3 w omawianym przykładzie, którego tablica PMT jest zawarta w pakiecie nr 1127 - rys. 5.7 - składa się z sygnału wizyjnego transmitowanego w pakietach o numerach identyfikacyjnych 726, sygnałów fonicznych transmitowanych w pakietach o nr 57, 60, 1022. napisów dla niesłyszących (subtitle) w pakietach o nr 123. Do synchronizaŹcji dekodowania i wyświetlania programu nr 3 wykorzystywany jest sygnał zegarowy (Programme Clock Reference) w polach adaptacyjnych pakietów o nr 726. Sposób synchronizacji jest omówiony w następnym rozdziale.

Dekodowanie strumienia transportowego MPEG-2 rozpoczyna się od wydzielenia z całego strumienia tablicy PAT. Na jej podstawie dekoder określa numery pakietów składające się na program, który ma być w tej chwili odbierany. Następnie ze strumienia transportowego wybiera tylko pakiety o odpowiednich numerach, pomijając wszystkie należące do innych programów - rys. 5.8. Pakiety odpowiadające poszczególnym strumieniom, z których składa się dobierany program, są grupowane w odpowiedniej kolejności, tak aby odtworzyć elementarne pakiety danych PES.


Rys. 5.6. Tablica PAT opisująca programy zawarte w strumieniu transportowym



Rys. 5.7. Tablica PMT opisująca program nr 3 zawarty w strumieniu transportowym z rys.5.6



Rys. 5.8. Demultipleksowanie strumienia transportowego



Rys. 5.9. Dodawanie znaczników czasu do pakietów elementarnych w koderze MPEG-2

 

Synchronizacja


W nagłówkach pakietów elementarnych PES mogą znajdować się dwa znaczniki czasu PTS i DTS. Znaczniki te są nadawane przez koder w trakcie multipleksowania pakietów. W koderze znajduje się 42-bitowy licznik taktowany sygnałem zegarowym o częstotliwości 27 MHz. Licznik ten jest zegarem dla transmitowanego programu, przy czym zegar nie musi być w żaden sposób związany z czasem obowiązującym w danym kraju. Koder - rys. 5.9 - przetwarzając kolejno obrazy zawarte w strumieniu wizyjnym wpisuje do znaczników czasu prezentacji PTS poszczególnych pakietów 33 najbardziej znaczące bity licznika zegarowego określające czas, w którym obraz transmitowany w tym pakiecie powinien być wyświetlony. Drugi ze znaczników - znacznik czasu dekodowania DTS - jest nadawany w przypadku nadawania obrazów typu B. Jak wcześniej opisano do zdekodowania obrazu typu B konieczne są dwa obrazy odniesienia - jeden znajdujący się przed nim w sekwencji obrazów i jeden znajdujący się po nim. Dlatego też musi być zmieniona kolejność nadawania obrazów: najpierw nadawane są obrazy odniesienia, potem sam obraz typu B. Drugi, późniejszy obraz odniesienia musi być dodatkowo oznaczony znacznikiem czasu dekodowania, określającym czas, w którym ten obraz powinien być zdekodowany i przeniesiony z bufora dekodera do tymczasowej pamięci. Znacznik DTS zabezpiecza przed przepełnieniem bufora dekodera, zawsze występuje razem ze znacznikiem PTS i zawsze ma wartość mniejszą (najpierw obraz musi być zdekodowany, dopiero później wyświetlany) od znacznika PTS. W analogiczny sposób nadawane są znaczniki czasu dla pakietów fonii i innych danych transmitowanych w danym programie telewizyjnym.

Dekoder - rys. 5.10 - ma także swój zegar taktowany sygnałem 27 MHz. Dekoder wydziela z całkowitego sygnału cyfrowego pakiety wizji, fonii i ewentualnie innych danych i odtwarza pakiety elementarne PES. Porównując znaczniki czasu prezentacji PTS poszczególnych pakietów ze stanem licznika zegarowego koder może określić moment, w którym dany pakiet powinien być odtworzony. Ponieważ znacznik PTS zawiera 33 najbardziej znaczące bity zegara więc dokładność synchronizacji odtwarzania pakietów jest równa 1/90 kHz = 11,1 ?s. Do poprawnej pracy dekodera konieczna jest oczywiście synchronizacja jego zegara z zegarem kodera. Do tego celu służy sygnał zegarowy (Programme Clock Reference) wyszczególniony w tablicy PMT (rys. 5.7) każdego transmitowanego programu. Sygnał zegarowy zawiera aktualny stan (42-bity) licznika zegarowego w koderze. Stan zegara musi być przesyłany w strumieniu transportowym nie rzadziej niż co 0,1 s, a w strumieniu programowym nie rzadziej niż co 0,7 s. Dekoder na podstawie wartości sygnału zegarowego ustawia swój zegar i ewentualnie podstraja generator sygnału zegarowego 27 MHz, aby zachować pełen synchronizm z zegarem kodera. W strumieniu programowym każdy z transmitowanych programów może mieć swój własny zegar ale dopuszczalne jest także wykorzystywanie tego samego zegara przez kilka lub wszystkie programy.


5.10. Synchronizacja dekodowania i prezentacji pakietów elementarnych w dekoderze MPEG-2

 
<< pierwsza < poprzednia 1 2 3 4 5 6 następna > ostatnia >>

Strona 1 z 6