|
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

. 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
Wykorzystanie kompresji MPEG-2 w projekcie DVB
Prace badawcze nad cyfrową transmisją sygnału wizyjnego prowadzono
na długo przed opublikowaniem standardu MPEG-2. Pierwsze próby
transmisji cyfrowych w roku 1990, udowodniły, że całkowicie cyfrowy
telewizyjny system transmisyjny jest możliwy do realizacji przy
ówczesnym poziomie techniki. Powszechnie uważano wtedy, że przyszłość
telewizji należy do analogowo-cyfrowych standardów rodziny MAC.
W roku 1991 zawiązała się grupa - European Launching Group -
złożona z przedstawicieli stacji telewizyjnych, producentów sprzętu
elektronicznego i organizacji standaryzacyjnych, której zadaniem
była koordynacja prac badawczych dotyczących telewizji cyfrowej
na obszarze Europy. W roku 1993 grupa ta przyjęła nową nazwę
- Digital Video Broadcasting (DVB). Jej celem stało się opracowanie
cyfrowych standardów telewizyjnych, które umożliwiłyby cyfrową
transmisję programów telewizyjnych w sieciach naziemnych (DVB-T),
satelitarnych (DVB-S) i kablowych (DVB-C). Standardy te miały
być możliwie najbardziej zbliżone do siebie, aby zmniejszyć koszty
ich opracowywania i ułatwić wymianę programów. Przyjęto, że we
wszystkich opracowywanych przez DVB standardach wykorzystywana
będzie metoda kompresji wizji i fonii określona w standardzie
MPEG-2. Do transmisji wykorzystywany będzie strumień transportowy
MPEG-2, w którym blok informacji o przekazywanych programach
(PSI) uzupełniono dodatkowym blokiem informacyjnym (Service Information
- SI). Blok SI umożliwia m.in. opracowanie jednolitego systemu
szyfrowania nadawanych programów telewizyjnych. We wszystkich
standardach stosowane będzie zabezpieczenie kodem Reeda-Solomona
w pierwszym (zewnętrznym) stopniu zabezpieczenia przed błędami
transmisji. Poszczególne standardy (rys. 5.11) różnią się natomiast
metodą modulacji i drugim (wewnętrznym) stopniem zabezpieczenia
przed błędami transmisji. W standardzie satelitarnym DVB-S stosowana
jest modulacja QPSK, w kablowym DVB-C 16-, 32- lub 64-stanowa
modulacja QAM, a w naziemnym DVB-T modulacja OFDM z 1704 (2K)
lub 6816 (8k) nośnymi. W standardach DVB-S i DVB-T dodatkowo
stosowane będzie przeplatanie bitów i zabezpieczenie kodem splotowym
przed błędami transmisji. W standardzie kablowym DVB-C drugi
(wewnętrzny) poziom zabezpieczenia nie będzie musiał być stosowany.
5.11. Schematy blokowe emisji w standardzie DVB
|