Przegląd systemów MPEG-2

  • 05/31/2018
  • 2 protokół do czytania
    • s
    • v
    • m

w tej sekcji przedstawiono ogólny, nietechniczny przegląd warstwy systemów MPEG – 2. Systemy MPEG-2 to standard, który określa sposób multipleksowania strumieni audio i wideo w MPEG-2.

strumienie elementarne

multipleksowanie MPEG-2 rozpoczyna się od jednego lub więcej strumieni bajtowych, zwanych strumieniami elementarnymi, które zawierają wideo, audio lub inne dane. Na przykład wideo ES zawiera skompresowane klatki wideo, nagłówki sekwencji, nagłówki grupy obrazów (GOP) i wszystko inne, co jest potrzebne dekoderowi do dekodowania strumienia. Warstwa systemowa nie definiuje zawartości strumienia bajtów ES.

strumień elementarny jest podzielony na pakiety, tworząc spakowany strumień elementarny (PES). Pakiety PES mają zmienną długość. Zawartość pakietu nazywa się payload. Każdy pakiet PES zawiera również nagłówek. Multiplekser przypisuje każdemu PES 1-bajtowy identyfikator strumienia; poszczególne pakiety PES są identyfikowane przez identyfikator strumienia w nagłówku pakietu. W przypadku strumieni audio identyfikator strumienia ma postać 110xxxxx. W przypadku wideo identyfikator strumienia ma postać 1110yyyy.

standard MPEG-2 definiuje dwa sposoby dostarczania spakowanych strumieni elementarnych: strumieni programowych i strumieni transportowych.

strumienie programów

strumienie programów są przeznaczone do środowisk, które są stosunkowo wolne od błędów, takich jak lokalne przechowywanie plików. W strumieniu programu Pakiety PES są multipleksowane i zorganizowane w jednostki zwane pakietami. Wszystkie strumienie PES w strumieniu programu są zsynchronizowane z tym samym zegarem.

strumienie transportowe

strumienie transportowe (TS) są przeznaczone do środowisk nierzetelnych lub podatnych na błędy, takich jak transmisje sieciowe. Ponadto mogą zawierać wiele programów zsynchronizowanych z różnymi zegarami. Strumień transportowy dodaje drugą warstwę packetizing-strumienie PES są pakowane wewnątrz pakietów transport stream, które mają stały rozmiar 188 bajtów na pakiet. Pakiety TS mogą również zawierać strumienie informacji o programach, które są opisane w poniższej sekcji.

każdy pakiet TS ma 4-bajtowy nagłówek oraz opcjonalne pole adaptacyjne zawierające dodatkowe informacje o nagłówku. Multiplekser przypisuje identyfikator programu (PID) do każdego strumienia PES lub strumienia informacji o programie. PID są używane do identyfikacji pakietów TS, podobnie jak stream ID identyfikuje Pakiety PES. (Jeśli strumień transportowy zawiera wiele programów, identyfikatory strumieni mogą nie być unikalne, ale przypisania PID są unikalne w strumieniu transportowym.

informacje specyficzne dla programu

ponieważ strumień transportowy może przenosić wiele programów, musi istnieć sposób na powiązanie różnych pakietów PES z programami, do których należą. Odbywa się to za pomocą tabel identyfikujących strumienie programu. Łącznie dane te nazywane są informacjami specyficznymi dla programu (psi). Dane PSI są przenoszone w pakietach TS, podobnie jak dane PES. Istnieją różne rodzaje danych PSI, w tym:

  • tabela powiązań programu (PAT). Pat jest zawsze przypisany do PID 0x000. Każdy wpis w PAT jest PID, który identyfikuje Pakiety PMT dla tego programu (patrz następna pozycja).

  • Program Map Table (PMT). Każdy PMT definiuje JEDEN program. PMT zawiera listę strumieni; każda pozycja w tabeli podaje PID dla tego strumienia oraz kod identyfikujący Typ strumienia. ISO / IEC 13818-1 definiuje niektóre standardowe typy strumieni; Skrócona lista znajduje się w poniższej tabeli.

    stream_type opis
    0x01 MPEG-1 video
    0x02 MPEG-2 video
    0x03 MPEG-1 audio
    0x04 MPEG-2 audio
    0x80-0xff użytkownik prywatny

    inne standardy oparte na MPEG-2, takie jak ATSC, mogą definiować dodatkowe typy strumieni w zakresie „user private”. Na przykład ATSC definiuje 0x81 jako dźwięk Dolby AC-3.

  • tabele dostępu warunkowego (CAT)

  • tabele identyfikacji sieci (NIT)

obsługa MPEG-2 w DirectShow