PL214807B1 - Sposób laczenia w ukladzie przetwarzajacym strumienie MPEG pakietów kilku wejsciowych strumieni MPEG w jeden transportowy strumien wyjsciowy z jednoczesna korekcja oznaczen czasowych - Google Patents

Sposób laczenia w ukladzie przetwarzajacym strumienie MPEG pakietów kilku wejsciowych strumieni MPEG w jeden transportowy strumien wyjsciowy z jednoczesna korekcja oznaczen czasowych

Info

Publication number
PL214807B1
PL214807B1 PL359676A PL35967603A PL214807B1 PL 214807 B1 PL214807 B1 PL 214807B1 PL 359676 A PL359676 A PL 359676A PL 35967603 A PL35967603 A PL 35967603A PL 214807 B1 PL214807 B1 PL 214807B1
Authority
PL
Poland
Prior art keywords
packet
stream
packets
mpeg
input
Prior art date
Application number
PL359676A
Other languages
English (en)
Other versions
PL359676A1 (pl
Inventor
Kamil Burzynski
Original Assignee
Adb Polska Sp
Advanced Digital Broadcast Ltd
Advanced Digital Broadcast Polska Spolka Z Ograniczona Odpowiedzialnoscia
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Adb Polska Sp, Advanced Digital Broadcast Ltd, Advanced Digital Broadcast Polska Spolka Z Ograniczona Odpowiedzialnoscia filed Critical Adb Polska Sp
Priority to PL359676A priority Critical patent/PL214807B1/pl
Priority to US10/823,029 priority patent/US20040218633A1/en
Publication of PL359676A1 publication Critical patent/PL359676A1/pl
Publication of PL214807B1 publication Critical patent/PL214807B1/pl

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23608Remultiplexing multiplex streams, e.g. involving modifying time stamps or remapping the packet identifiers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Sposób łączenia w układzie przetwarzającym strumienie MPEG pakietów kilku wejściowych strumieni MPEG w jednej transportowy strumień wyjściowy z jednoczesną korekcją oznaczeń czasowych, charakteryzuje się tym, że przekazuje się z buforów strumieniowych do odpowiednich buforów pakietowych pakiety każdego strumienia wejściowego MPEG wraz z informacją o zależnościach czasowych między sąsiednimi pakietami danego strumienia wejściowego MPEG, po czym z wymienionych buforów pakietowych za pomocą multipleksera pobiera się pakiety wejściowych strumieni MPEG do przetwornika pakietów, w którym sprawdza się zależności czasowe pomiędzy sąsiednimi pakietami strumieni wejściowych, stanem zegara danego strumienia wyjściowego, czasem wysyłania ostatniego pakietu z danego bufora pakietowego oraz dozwolonym przesunięciem czasowym pakietów w strumieniu wyjściowym i na ich podstawie koryguje się zawarte w nich oznaczenia czasowe do wartości zegara wyjściowego strumienia MPEG, a następnie dołącza się odpowiednio wybrane pakiety do wyjściowego strumienia MPEG.

Description

PL 214 807 B1
Opis wynalazku
Przedmiotem wynalazku jest sposób łączenia w układzie przetwarzającym strumienie MPEG pakietów kilku wejściowych strumieni MPEG w jeden wyjściowy strumień transportowy z jednoczesną korekcją oznaczeń czasowych, w którym z wielu asynchronicznych źródeł programowych do odpowiednich buforów strumieniowych dostarcza się wejściowe strumienie pakietów danych MPEG o różnych prędkościach transmisji z ustalonymi oznaczeniami czasowymi ich pakietów.
Jeden wyjściowy strumień transportowy TS (Transport Stream) może zawierać kilka kanałów telewizyjnych.
Norma ISO/IEC 13818-1 definiuje trzy oznaczenia czasowe zawarte w strumieniu MPEG (Motion Picture Experts Group).Te oznaczenia czasowe to:
- PCR (Program Clock Reference), które określa przewidywany czas otrzymania danych i zawarte jest w strumieniu w równych odstępach czasu dla danej grupy pakietów definiującej określony program. Oznaczenie PCR nadawane jest w nagłówku pakietu, przykładowo raz na tysiąc pakietów;
- PTS (Presentation Time Stamp), które dotyczy synchronizacji pomiędzy strumieniami podstawowymi ES (Elementary Stream);
- DTS (Decoding Time Stamp), które określa czas dekodowania.
W znanym stanie techniki, pakiety strumieni wejściowych MPEG multipleksuje się i koryguje ich oznaczenia czasowe w ten sposób, że usuwa się ich zadane oznaczenia czasowe i zastępuje je wartościami oznaczeń czasowych obliczonych zgodnie z algorytmem wykrywającym i korygującym wykryte rozsynchronizowanie, po czym pakiety z tak skorygowanymi oznaczeniami czasowymi dołącza się odpowiednio do wyjściowego strumienia MPEG.
Znane są z amerykańskiego opisu patentowego US5790543 urządzenie i sposób do wykrywania rozsynchronizowania powstałego podczas transportu cyfrowo kodowanej informacji, takiej jak pakiety danych kodowane w systemie MPEG i do korekcji wartości oznaczeń czasowych, zgodnie z wykrytym rozsynchronizowaniem.
Ujawniony układ odczytuje pary wartości oznaczeń czasowych PCR w kodowanym strumieniu TS, przy czym każda para wartości oznaczeń czasowych PCR przedstawia przewidywany czas odebrania odpowiadającego jej segmentu strumienia.
Rzeczywisty czas odebrania dla odpowiadającego jej segmentu strumienia jest określany w odpowiedzi na wykrycie odpowiadających wartości oznaczeń czasowych PCR i sygnału niezależnego zegara.
Przewidywany czas odebrania segmentu strumienia jest porównywany z rzeczywistym czasem odebrania w celu określenia rozsynchronizowania w strumieniu pakietu danych.
Rozsynchronizowanie jest korygowane poprzez połączenie technik adaptacyjnego buforowania i zmiany wartości oznaczeń czasowych PCR z korygowaniem wartości zbieżnych z rzeczywistym czasem odebrania segmentów strumienia. Ujawnione rozwiązanie może być implementowane w systemie odbiorczym albo jako część węzła sieci, która minimalizuje skutki zmienności opóźnienia komórek w sieci ATM.
Opisane rozwiązanie umożliwia wykonywanie operacji podziału na segmenty, wykrywania i korygowania ich rozsynchronizowania oraz łączenia realizowanych tylko dla jednego strumienia MPEG. Ponadto nie zapewnia możliwości usuwania i/lub dodawania danych do tego strumienia.
Z opisu europejskiego zgłoszenia patentowego EP1175109 znany jest sposób pomiaru rozsynchronizowania PCR, przesunięcia częstotliwości i zmian częstości zegara z użyciem stałego pasma pomiarów w odniesieniu do nierównomiernych czasów odbierania oznaczeń PCR i zmiennej szybkości zmian PCR, który zawiera następujące kroki:
- pomiar odstępu pomiędzy czasami odbierania PCR za pomocą referencyjnego oscylatora z asynchroniczną dokładnością,
- ustalenie stałego pasma pomiarów niezależnie od szybkości zmian PCR, przy czym ustalona stała szerokość pasma pomiarów rozgranicza częstotliwość rozsynchronizowania i wędrowania,
- obliczanie rozsynchronizowania PCR, przesunięcia częstotliwości i zmian częstości zegara jako funkcji odstępu pomiędzy czasami odbierania PCR, wartościami PCR dla każdego czasu odbierania PCR i ustalonego stałego pasma pomiarów w postaci szeregu równań różnicowych.
PL 214 807 B1
Ten szereg równań różnicowych jest wyprowadzony z hybrydowego cyfrowo-analogowego modelu PLL (Phase Locked Loop) pętli synchronizacji fazowej, gdzie rozsynchronizowanie, przesunięcie częstotliwości i zmiany częstości zegara są uzyskane z różnych punktów systemu kontrolnego PLL.
Dokładniej ten szereg równań różnicowych jest wyprowadzony z aproksymacji filtrowania liniowego dla najmniejszego kwadratu średniego przesunięcia częstotliwości i estymatora najmniejszego kwadratu średnich zmian częstości zegara prostego równania czasu drugiego stopnia dla wartości PCR.
Opisane rozwiązanie przedstawia sposób dokonania pomiarów błędów zegarów PCR w pojedynczym strumieniu.
Ponadto w tym zgłoszeniu wymaga się, aby PCR były poprawne z tolerancją określoną przez normę ISO/IEC 13818-1, a więc poważniejsze błędy nie mogą w nim być skorygowane.
Z opisu amerykańskiego zgłoszenia patentowego US2003007518 znany jest nadajnik zawierający wielowarstwowy multiplekser, służący do generowania strumienia wyjściowego o zadanej prędkości transmisji, multipleksowanego ze strumieni podstawowych o zadanych prędkościach transmisji.
W nadajniku tym, wielowarstwowy multiplekser składa się z co najmniej pierwszego, multipleksera nadrzędnego i kolejnego, drugiego multipleksera podrzędnego, gdzie multiplekser nadrzędny odbiera pierwszy strumień podstawowy z pierwszego wejścia i multipleksowany strumień z drugiego wejścia, na które podawany jest strumień z multipleksera podrzędnego z co najmniej drugiego strumienia podstawowego, przy czym multiplekser nadrzędny zawiera środki do kontroli wyjściowej prędkości transmisji w celu zagwarantowania ustalonej średniej prędkości danych jako funkcji danych strumieni elementarnych.
Rozwiązanie to opisuje jak z wielu podstawowych strumieni elementarnych ES (Elementary Stream) złożyć jeden strumień transportowy TS (Transport Stream), bez korekcji oznaczenia czasowego PCR, gdyż strumień wyjściowy jest tutaj tworzony od zera.
Z amerykańskiego opisu patentowego US5905732 znany jest system przesyłania multipleksowanych danych MPEG, który przyjmuje dane z wielu źródeł i przekazuje je, w postaci pakietów, do wspólnego strumienia danych.
Nierównomierne rozsynchronizowanie pakietów jest określane poprzez odejmowanie średniego opóźnienia dla pakietów w programie od rzeczywistego chwilowego opóźnienia pakietu.
Pakiety zawierające oznaczenia PCR mają usuwaną swą podstawę czasu, korygowaną przez obliczony nierównomierny czas opóźnienia i umieszczaną jako podstawa czasu PCR pakietu, który jest wprowadzany do wspólnego strumienia danych. Modyfikowane są tylko pakiety zawierające oznaczenia czasowe PCR.
Z kolejnego amerykańskiego opisu patentowego US6002687 znany jest multiplekser strumieni transportowych MPEG. Rozwiązanie to ujawnia sposób nadawania wielu programów. Każdy program zawiera jeden albo wiele podstawowych strumieni, które są kodowane w relacji do jednej wspólnej podstawy czasu, odpowiadającej właściwemu programowi.
Nadawane programy pochodzą z wielu wejściowych strumieni transportowych, z których każdy zawiera wiele pakietów transportowych. Każdy pakiet transportowy zawiera identyfikator pakietu określający zawarte w nim dane. Wewnątrz każdego strumienia transportowego, unikalne identyfikatory pakietów są przypisane do każdego strumienia podstawowego każdego programu.
Dane każdego strumienia podstawowego są zawarte tylko w pakietach transportowych, mających odpowiadający identyfikator pakietu.
Każdy wejściowy strumień transportowy zawiera oznaczenia czasowe dla rekonstrukcji podstawy czasu pojedynczego programu, odpowiadające każdemu przekazywanemu w strumieniu programowi.
Multiplekser zawiera moduł łączenia danych, który odbiera wiele wejściowych strumieni transportowych. Moduł łączenia danych również selektywnie usuwa transportowane pakiety z odebranych wejściowych strumieni transportowych.
Multiplekser zawiera magistralę dosyłową, po której moduł łączenia danych wybiórczo przesyła co najmniej część danych ze strumieni transportowych.
Multiplekser wybiera, które pakiety usunięte ze strumieni transportowych przesłać przez magistralę dosyłową, zależnie od identyfikatorów pakietów z pakietów transportowanych.
Ponadto multiplekser zawiera również sterownik, który łączy pakiety transportowe przesyłane magistralą dosyłową w pojedynczy wyjściowy strumień transportowy.
W rozwiązaniu tym wszystkie strumienie muszą mieć wspólny zegar.
Ponadto, z publikacji US2001055318 A1 opisu wynalazku pt. „Data multiplexer, data multiplexing method, and recording medium” jest znane użycie multipleksera oraz formatu MPEG jako
PL 214 807 B1 wyjściowego formatu danych. W tej publikacji przedstawiony jest również sposób tworzenia nowego strumienia z kilku źródeł, które nie są jednak strumieniami pakietów danych MPEG o różnych prędkościach transmisji.
Z kolei, z publikacji EP 1119206 A1 opisu wynalazku pt. „MPEG decoding device” jest znane urządzenie MPEG do dekodowania danych oraz wystawiania na wyjściu układu zdekodowanych obrazów lub pomijania zdekodowanych obrazów w zależności od parametrów czasowych.
Opisane w stanie techniki rozwiązania przedstawione powyżej określają jak wykonać operacje na zegarach MPEG sprzętowo, wraz z określeniem modeli realizujących te czynności układów scalonych.
Realizacje sprzętowe charakteryzuje jednak szereg niedogodności takich jak trudniejsza rozbudowa, mniejsza elastyczność, mniejsza dokładność zegarów, ograniczona liczba kanałów audio/wideo z każdego wejściowego strumienia transportowego TS.
Tym samym rozwiązania te jako sprzętowe są dość drogie i złożone w konfiguracji. Ponadto nie umożliwiają dodawania dowolnych danych do strumieni MPEG.
W sposobie łączenia w układzie przetwarzającym transportowe strumienie MPEG pakietów kilku wejściowych strumieni MPEG w jeden strumień wyjściowy z jednoczesną korekcją oznaczeń czasowych według wynalazku, w którym z asynchronicznych źródeł programowych do odpowiednich buforów strumieniowych dostarcza się wejściowe strumienie pakietów danych MPEG o różnych prędkościach transmisji z ustalonymi oznaczeniami czasowymi ich pakietów, przy czym pakiety strumieni wejściowych MPEG multipleksuje się i koryguje ich oznaczenia czasowe w ten sposób, że usuwa się ich zadane oznaczenia czasowe i zastępuje wartościami oznaczeń czasowych obliczonych zgodnie z algorytmem wykrywającym i korygującym wykryte rozsynchronizowanie, po czym pakiety z tak skorygowanymi oznaczeniami czasowymi dołącza się odpowiednio do wyjściowego strumienia MPEG, istota rozwiązania polega na tym, że przekazuje się z buforów strumieniowych do odpowiednich buforów pakietowych pakiety każdego strumienia wejściowego MPEG wraz z informacją o zależnościach czasowych między sąsiednimi pakietami danego strumienia wejściowego MPEG, po czym z wymienionych buforów pakietowych za pomocą multipleksera pobiera się pakiety wejściowych strumieni MPEG do przetwornika pakietów, w którym sprawdza się zależności czasowe pomiędzy sąsiednimi pakietami strumieni wejściowych, stanem zegara danego strumienia wyjściowego, czasem wysłania ostatniego pakietu z danego bufora pakietowego oraz dozwolonym przesunięciem czasowym pakietów w strumieniu wyjściowym i na ich podstawie koryguje się zawarte w nich oznaczenia czasowe do wartości zegara wyjściowego strumienia MPEG, a następnie dołącza się odpowiednio wybrane pakiety do wyjściowego strumienia MPEG.
Według wynalazku pakiety dostarczane do buforów strumieniowych filtruje się według określonych kryteriów, zaś te kryteria filtrowania pakietów określają numery PID dostarczanych pakietów.
Dane przekazuje się z buforów strumieniowych do buforów pakietowych na żądanie modułu wyjściowego, po sprawdzeniu, że bufor pakietowy może je otrzymać.
W przypadku wyposażenia bufora strumieniowego w dodatkowy zegar, częstotliwość tego zegara dostosowuje się do częstotliwości zegara oznaczeń czasowych pakietów danego strumienia na podstawie wartości średniej wyliczonej z co najmniej dwóch pomiarów wartości oznaczeń czasowych pakietów danego strumienia.
W sposobie według wynalazku w układzie przetwarzającym strumienie MPEG, korzystnie niezależnym procesem, monitoruje się zmiany ilości dostępnych buforów strumieniowych i na podstawie tych zmian dodaje lub usuwa się bufory pakietowe.
Korzystnie zależności czasowe między sąsiednimi pakietami danego strumienia definiuje się jako różnicę oznaczenia czasowego pomiędzy aktualnym, a poprzednim pakietem danego strumienia.
Korzystnie również dla pierwszego pakietu z danego strumienia wejściowego oznaczenie czasowe poprzedniego pakietu definiuje się jako równe oznaczeniu czasowemu aktualnego pakietu.
Korzystnie jest także, gdy dla pierwszego pakietu wysłanego z danego bufora pakietowego czas wysłania ostatniego pakietu dla tego bufora ustawia się na wartość czasu zegara strumienia wyjściowego.
Według wynalazku dla drugiego i następnych pakietów z danego bufora pakietowego czas wysłania ostatniego pakietu dla tego bufora ustawia się na wartość sumy czasu wysłania ostatniego pakietu dla tego bufora pakietowego i zależności czasowych między sąsiednimi pakietami danego strumienia wyjściowego.
PL 214 807 B1
Korzystnie według wynalazku pakiet danego bufora pakietowego dołącza się do wyjściowego strumienia MPEG, gdy suma czasu wysłania ostatniego pakietu dla danego bufora pakietowego i zależności czasowych między sąsiednimi pakietami danego strumienia wejściowego, pomniejszona o aktualną wartość zegara strumienia wyjściowego, jest nie większa od dozwolonego przesunięcia czasowego pakietów w strumieniu wyjściowym.
Ponadto do przesyłanych danych dodaje się dodatkowe dane, korzystnie aplikacje systemu MHP.
Rozwiązanie według wynalazku może być w całości zrealizowane programowo, co daje szereg zalet. Do zalet tych należy między innymi łatwiejsza rozbudowa, większa elastyczność, większa dokładność zegarów, dowolna liczba kanałów audio/wideo z każdego wejściowego strumienia transportowego TS.
Według wynalazku każdy strumień wejściowy może mieć swój zegar, który jest następnie synchronizowany z innymi.
Sposób według wynalazku dzięki możliwości programowej implementacji metody synchronizacji pakietów nadawanych w strumieniu MPEG, pozwala w prosty sposób dzielić N wejściowych strumieni MPEG na części, na przykład filtrując pakiety z jednym numerem PID, dodawać oznaczenia czasowe do każdego pakietu, a następnie na podstawie tych oznaczeń składać docelowy strumień usuwając przy tym wszelkie błędy i przesunięcia czasowe.
Błędy mogą powstać ze względu na wysoką częstotliwość zegarów PCR oraz niemożliwe do przewidzenia opóźnienia działania programów.
Dzięki przedstawionemu mechanizmowi korekcji błędów czasowych, dedykowanemu do programowej implementacji, stworzenie systemu do łączenia strumieni MPEG jest znacznie prostsze i tańsze w porównaniu z rozwiązaniami sprzętowymi.
Ponadto jak wspomniano wyżej, rozwiązanie programowe oznacza łatwiejszą rozbudowę. Można na przykład dodać nowe wewnętrzne multipleksery bądź bloki modyfikujące dane wideo, na przykład wykonujące dekompresję strumienia MPEG, operacje na klatkach, (przykładowo zamianę danego programu z kolorowej wersji na czarno białą) a następnie ponowną kompresję.
Rozwiązanie według wynalazku, implementowane jako programowe, jest również bardziej elastyczne. Można na przykład przesyłać dane między wejściem, a wyjściem systemu za pomocą sieci Ethernet. Dodatkowo wyjściowy zegar jest liczony z dużą precyzją, często dokładniejszą niż umożliwia to oscylator kwarcowy wykorzystywany w rozwiązaniach sprzętowych.
Sposób według wynalazku, zaimplementowany programowo, umożliwia dokładanie dowolnych danych do strumienia MPEG. Programowe rozwiązanie pozwala także wybrać do przetwarzania dowolną liczbę kanałów audio/wideo z każdego wejściowego strumienia transportowego TS.
Ponadto, jeśli źródłami strumieni są pliki, mogą one być łączone ze znacznie wyższą prędkością niż strumienie MPEG nadawane w czasie rzeczywistym. Wynika to z tego, że odczyt i zapis danych z plików może być szybszy niż pobieranie danych z sygnału telewizyjnego.
Kolejnymi zaletami rozwiązania są uniknięcie dekompresji oraz powtórnej kompresji strumieni, spotykanych w niektórych rozwiązaniach, i fakt, że całość przetwarzania danych pomiędzy wejściami, a wyjściami systemu odbywa się na wydzielonych częściach strumieni, co znacząco zmniejsza ilość danych przesyłanych pomiędzy wewnętrznymi elementami systemu.
Według wynalazku podzielony na fragmenty strumień poddawany jest korekcji błędów, które już wcześniej istniały w strumieniu oraz błędów, które powstały przy łączeniu poszczególnych części strumienia TS. Według wynalazku błędy te są poprawiane przez moduł wyjściowy.
Według opisanego wynalazku następuje także synchronizacja i korekcja precyzji synchronizacji zegara PCR z oznaczeniami czasowymi PTS oraz DTS. Można także wykonywać powyższe operacje na strumieniach ‘partial TS'.
Przedmiot wynalazku został bliżej przedstawiony na przykładach realizacji sposobu według wynalazku, objaśnionych rysunkiem, na którym Fig. 1 przedstawia przykładowy system łączący wybrane części trzech strumieni wejściowych, Fig. 2A przedstawia pierwszego typu zakłócenia zegarów PCR, które są korygowane, Fig. 2B przedstawia drugiego typu zakłócenia zegarów PCR, które są korygowane, Fig. 3A przedstawia przykład łączenia strumieni MPEG, Fig. 3B przedstawia przykład łączenia strumieni MPEG, Fig. 4 przedstawia budowę modułu wyjściowego, Fig. 5A przedstawia sposób przetwarzania danych przez moduł wyjściowy, Fig. 5B przedstawia sprawdzenie gotowości pakietu danych, i Fig. 6 przedstawia sposób łączenia przykładowych strumieni danych.
PL 214 807 B1
Fig. 1 przedstawia przykładowy system, który odbiera wejściowe strumienie MPEG TS, dzieli je i odczytuje tylko wybrane dane, które następnie łączy w jeden wyjściowy strumień MPEG TS z odpowiednio skorygowanymi wartościami zegarów strumienia.
W przykładzie przetwarzane są trzy strumienie wejściowe MPEG TS o różnych prędkościach transmisji. Strumienie pierwszy i trzeci nadawane są z prędkością 40 megabitów na sekundę a strumień drugi nadawany jest z prędkością 50 megabitów na sekundę.
Wejściowe moduły 101,102, 103 odpowiedzialne są za filtrowanie strumieni zgodnie z parametrami zadanymi przez użytkownika oraz komunikację z wyjściowymi elementami systemu, multiplekserem 104 i modułem wyjściowym 105. Dane z modułów wejściowych 101, 102, 103 mogą być przekazywane do modułu wyjściowego 105, lub do modułów pośredniczących jak multiplekser 104. W przykładzie moduły wejściowe 101 i 102 przekazują odpowiednio 4 i 6 megabitów danych do multipleksera 104.
Dane z tego modułu pośredniczącego łączone są z danymi modułu wejściowego 103 przez moduł wyjściowy 105, który tworzy wyjściowy strumień MPEG TS o szybkości transmisji 15 megabitów na sekundę, bądź większej, jeśli przykładowy moduł wyjściowy 105 pobiera dane również z innych źródeł, nie pokazanych na Fig. 1.
Moduły wejściowe 101, 102, 103 zawierają dodatkowo bufory danych, umożliwiające monitorowanie pakietów, które będą przetwarzane w przyszłości. Elementy te nazwane zostały buforami strumieniowymi 106.
Według wynalazku dane są pobierane na żądanie modułu wyjściowego 105. Jednak jest także możliwe wykonanie systemu, w którym dane są wysyłane z modułów wejściowych 101, 102, 103.
Zegary strumieni wejściowych są różne od zegara ustalanego w modułach wyjściowych 105 (zazwyczaj w zakresie definiowanym przez normę MPEG).
Dlatego wraz z danymi moduły wejściowe 101, 102, 103 przekazują do odbiorców informacje o opóźnieniu danego pakietu względem pakietu wysłanego poprzednim razem.
Każdy moduł wejściowy 101, 102, 103 ma swój zegar, który synchronizuje z zegarem PCR strumienia podawanego na jego wejście. Odebrany pakiet oczekuje na wysłanie w kolejce danych. Jeśli na wysłanie oczekują dane, są one wysyłane.
W przeciwnym wypadku strumień wypełnia się danymi wypełniającymi (ang. stuffing) tak, aby utrzymać wymaganą prędkość transmisji strumienia danych. Strumień wyjściowy systemu można także wypełnić danymi użytecznymi, przykładowo aplikacjami systemu MHP - Multimedia Home Platform.
Jest to bardzo ważna zaleta, gdyż w znanych rozwiązaniach łączenia strumieni nie ma możliwości dodania aplikacji jako elementu wypełniającego strumień wyjściowy, gdy wszystkie dane kanałów (audio, wideo, dane aplikacji) zostały już wysłane.
Prawidłowa synchronizacja pakietów strumieni MPEG jest bardzo ważna, gdyż norma określająca transmisję zakłada bardzo mały margines błędów, który dla częstotliwości zegara PCR na poziomie 27MHz wynosi jedynie 810Hz.
Fig. 2A oraz Fig. 2B przedstawiają zakłócenia zegarów PCR, które mogą się pojawić podczas transmisji strumienia MPEG.
Pierwszy typ zakłóceń 201, pokazany na Fig. 2A, ilustruje sytuację, gdy zostaną zgubione pakiety strumienia. Błędy tego rodzaju pojawiają się również gdy prawidłowy strumień MPEG poddamy modyfikacjom, które zostaną wykonane z niewystarczającą dokładnością, na tyle dobrze jednak, by zakłócenia były pomijalnie małe, niezauważalne dla odbiorcy oglądającego transmisję telewizyjną.
Takie niedokładne przetwarzanie strumienia ma często miejsce w laboratorium gdy często potrzeba szybko zmienić strumień, chwilowo nie przejmując się drobnymi błędami.
Wtedy zegar PCR nadawany w odstępach, na przykład 1000 pakietów, może zachować się tak jak na rysunku. Ma to miejsce w sytuacji, gdy na skutek zgubienia, bądź przestawienia kolejności pakietów, pakiet zawierający następną wartość PCR przyjdzie wcześniej niż miałoby to miejsce w przypadku odebrania pełnej liczby pakietów.
Drugi typ zakłóceń 202 ma miejsce, gdy wejściowy strumień MPEG odczytywany jest z pliku w pętli. Wtedy wartości zegara PCR zachowują się tak jak na Fig. 2B.
System według wynalazku wykrywa takie zmiany i działa tak, aby nie miały one wpływu na wyjściowy strumień MPEG. Dane są wysyłane w taki sposób, aby wartości PCR cały czas rosły.
Dodatkowym utrudnieniem jest fakt, że strumieni wejściowych nie można połączyć wysyłając pakiety na przemian z każdego wejścia, gdyż w konsekwencji doprowadziłoby to do przerw lub utraty transmisji audio i/lub wideo, ewentualnie do przesunięć pomiędzy obrazem, a dźwiękiem.
PL 214 807 B1
Fig. 3A oraz 3B przedstawiają przykładowe łączenie dwóch transportowych strumieni wejściowych W1 oraz W2 w jeden strumień wyjściowy W3.
Idealna sytuacja, która w realnych warunkach nie zdarza się, przedstawiona jest na Fig. 3A. Nie jest w takim przypadku konieczna zmienna korekcja wartości PCR.
W rzeczywistości nigdy nie wiadomo jakie numery PID będą filtrowane i ile będzie pakietów z tymi numerami. Dodatkowo należy zadbać o to, aby strumienie z różną prędkością danych (ang. bitrate) były właściwie łączone.
W rzeczywistych warunkach częściej występuje sytuacja przedstawiona na Fig. 3B, gdzie pakiety wydzielone ze strumieni wejściowych przychodzą do modułu wyjściowego w tym samym czasie. Połączenie takich strumieni wymaga korekcji większości wartości zegarów PCR odebranych pakietów i prawidłowego przewidywania czasów, w których pakiety muszą zostać wysłane.
W przypadku przykładowej transmisji źródłowy moduł wysłał pierwszy pakiet do modułu wyjściowego. Moduł wyjściowy z braku innej możliwości (w danym momencie jest zajęty) wysyła odebrany pakiet jakiś czas później, na przykład 20 mikrosekund.
Następny pakiet wysłany przez moduł wejściowy ma zostać wysłany na przykład 100 mikrosekund po poprzednim pakiecie. Aby uniknąć przesunięć czasowych w całym strumieniu, moduł wyjściowy, jeśli będzie wolny, wyśle drugi pakiet po 80 mikrosekundach lub jak najbliżej tego czasu, tak aby w efekcie dążyć do zniwelowania opóźnienia, które powstało przy wysyłaniu pierwszego pakietu.
W czasie, kiedy oczekuje się na wysłanie drugiego pakietu, wysyła się dane oczekujące na innych wejściach. Z powodu takich właśnie operacji pojawiają się błędy pokazane na Fig. 2A i należy podjąć dodatkowe kroki naprawcze w celu korekcji wartości PCR.
Na Fig. 4 przedstawiono wewnętrzną budowę modułu wyjściowego 105, który łączy pakiety w wynikowy strumień danych. Wejścia zawierają bufory zdolne do przechowywania pakietów przychodzących oraz informacji o czasie, w którym dane mają zostać wysłane. Elementy te nazwane zostały buforami pakietowymi 401.
W przykładzie pakiet odebrany z wejścia W1 ma zostać wysłany po upłynięciu 1000 cykli zegara od wysłania poprzedniego pakietu z wejścia W1, pakiet odebrany z wejścia W2 ma zostać wysłany po upłynięciu 2000 cykli zegara od wysłania poprzedniego pakietu z wejścia W2, a pakiet odebrany z wejścia W3 ma zostać wysłany, gdy na wejściach W1 oraz W2 nie oczekują dane do wysłania lub czas ich wysłania wybiega w przyszłość na tyle, aby w międzyczasie wysłać dane z wejścia W3.
Wewnętrzny zegar 403 modułu wyjściowego 105 służy do synchronizacji ustawiania danych w strumieniu. Zegar ten jest generowany programowo lub sprzętowo i jego częstotliwość jest równ a dokładnie 27MHz.
Wewnętrzny multiplekser 402 modułu wyjściowego 105 zarządza przekazywaniem pakietów w odpowiedniej kolejności do przetwornika 404 pakietów, w którym dokonuje się korekcji wartości PCR, PTS oraz DTS. W przetworniku 404 pakietów dostępny jest już pełny strumień wyjściowy z pakietami ułożonymi we właściwym porządku.
Ostatnim zadaniem modułu wyjściowego 105 jest przekazanie danych do elementów sprzętowych 405, które wyślą je do urządzeń odbiorczych.
Na Fig. 5A pokazano sposób w jaki przetwarza się dane w module wyjściowym 105, łączącym strumienie. Procedura rozpoczyna się w punkcie 501 zainicjowaniem systemu. Uruchomione zostają zegary modułów wejściowych 101, 102, 103 i wyjściowych 105 oraz rozpoczyna się monitorowanie strumieni danych.
W czasie przetwarzania strumieni, moduły wejściowe monitorują wartości oznaczeń czasowych PCR tak, aby dostosować do nich swoje zegary i przekazywać dane na wyjścia z odpowiednią prędkością.
Wewnętrzne zegary modułów wejściowych 101, 102, 103 nie są korygowane po każdej zmianie szybkości nadawania wartości oznaczeń czasowych PCR. Zegar koryguje się na podstawie średniej wyliczanej z wielu pomiarów tak, by dostosować go do średniej częstotliwości zmian oznaczeń czasowych PCR.
Dla specjalisty oczywistym będzie wykorzystanie innych sposobów dopasowania zegara. Istotne jest, by mechanizm dostosowania zegara był nieczuły na błędy przychodzących wartości oznaczeń czasowych PCR z powodów wymienionych wyżej (Fig. 2A oraz Fig. 2B).
W sytuacji szczególnej, gdy zachodzi pewność, że przychodzące dane są transmitowane z dobrą prędkością, nie zachodzi konieczność synchronizacji zegarów, czyli nie są potrzebne zegary sys8
PL 214 807 B1 temowe skojarzone z wejściami, ponieważ czas pomiędzy pakietami można wyliczyć mierząc czas odstępu między pakietami na wejściu.
Następnie, w kroku 502 procedury, zapamiętuje się w module wyjściowym 105 konfigurację wejść, które są obsługiwane oraz parametry takie jak prędkość nadawania strumienia wyjściowego. Po wykonaniu tego zadania w kroku 503 ustawia się wejście pierwsze jako źródło, z którego dane zostaną pobrane w pierwszej kolejności.
W kolejnym kroku 504 sprawdza się aktualne wejście i wysyła żądanie pobrania następnego pakietu danych. W następnym kroku 505 sprawdza się, czy pakiet jest gotowy i czy można go wysłać. Jeśli tak, pakiet jest wysyłany w kroku 506 w momencie zgodnym z oznaczeniami czasowymi.
W przeciwnym wypadku, w kroku 507 sprawdza się, czy pobrano już dane z wszystkich wejść. Jeśli dane pobrane z wejść muszą poczekać na właściwy czas wysłania, system oczekując na ten czas wyśle dane wypełniające w kroku 509.
Jeśli pozostało jeszcze nie sprawdzone wejście, zostaje ono aktywowane i wysyła się do niego żądanie przekazania następnego pakietu danych.
Opisany powyżej algorytm faworyzuje pierwsze wejście (wejście to jest najczęściej sprawdzane na okoliczność dostępności danych) - można również zmieniać wejścia według bardziej zaawansowanego algorytmu, na przykład uwzględniającego ilość przesłanych danych ze wszystkich wejść. Inna możliwość to przejście z kroku 506 do kroku 507, co zapewni równomierne wykorzystanie wszystkich wejść.
Przebieg kroku 505, w którym sprawdza się gotowość pakietu, został szczegółowo przedstawiony na Fig. 5B. Pierwszym krokiem 510 jest określenie, czy pakiet jest już w buforze pakietowym modułu wyjściowego 105. Jak podano wyżej, bufory pakietowe przechowują dane pobrane z modułów wejściowych 101, 102, 103. Jeśli nie, to w kroku 511 pobiera się pakiet z danego wejścia i przypisuje się do pakietu wartość delta czasu, dzielącą go od poprzedniego pakietu (wartość 0 w przypadku pierwszego pakietu danego strumienia).
Kolejnym krokiem 512 procedury jest sprawdzenie, czy aktualnie pobrany pakiet jest pierwszym pakietem z tego strumienia. Jeśli jest to pierwszy pakiet, wykonuje się krok 513 procedury, gdzie ustawia się czas poprzedniego pakietu dla tego wejścia na aktualną wartość zegara 403 modułu wyjściowego 105.
W przeciwnym przypadku procedura przechodzi do kroku 514, gdzie dodaje się czasy poprzedniego pakietu i czas delta. W kolejnym kroku 515 sprawdza się, czy różnica obliczonej sumy i aktualnej wartości zegara jest mniejsza od dopuszczalnego przez system odchylenia czasu wysłania pakietu, przykładowo 100 cykli zegara.
Jeśli tak, w kolejnym kroku 517 uaktualnia się czas ostatniego pakietu na wyliczoną wcześniej sumę. Wykonanie tej operacji oznacza, że pakiet jest gotowy. Jeśli sprawdzenie w kroku 515 nie jest prawdą, pakiet nie jest gotowy do wysłania.
Aby dokładniej przedstawić sposób łączenia strumieni, na Fig. 6 pokazano dwa przykładowe strumienie danych oraz wartości zegarów dla każdego z pakietów. Pakiety oznaczone numerami mają zostać wysłane na wyjścia odpowiednich modułów wejściowych. Na rysunku przedstawiono tylko fragmenty strumieni S1 i S2, z których należy wysłać odpowiednio 5 i 4 pakiety danych.
Symulacja przedstawiona na rysunku została przeprowadzona z założeniem, że odchylenie od nominalnego czasu (dozwolone przesunięcie czasowe pakietów w strumieniu wyjściowym), przy którym dany pakiet zostanie wysłany, wynosi 100 cykli zegara.
Oznacza to, że oczekujący na wysłanie o czasie 2000 cykli zegara pakiet może zostać wysłany, gdy zegar będzie znajdował się pomiędzy 1900 i 2100 cyklem (warunki optymalne) lub później, jeśli nie będzie mógł zostać wysłany w określonym, preferowanym zakresie czasu. Wszystkie wysyłane pakiety strumienia wyjściowego przyjmują wartości PCR równe stanowi zegara 403 modułu wyjściowego 105.
Tabela przedstawia w kolejności od lewej strony, aktualną wartość zegara PCR strumienia wyjściowego Clk-wy1, czas pakietu WE1 dla strumienia wejściowego S1 oraz czas pakietu WE2 dla strumienia wejściowego S2.
Przesyłanie danych rozpoczyna się, gdy zegary clk-we1, clk-we2 oraz clk-wy1 mają wartość 0. Na rysunku przedstawiono także czasy delta pakietów oraz czasy pakietów poszczególnych wejść przechowywane w wejściowych buforach 401 modułu wyjściowego 105 (Fig. 4).
Rozpoczynając łączenie strumieni moduł wyjściowy 105 pobiera pierwszy pakiet danych z pierwszego wejścia. Otrzymuje pakiet oznaczony P1-1, który jest natychmiast wysłany, gdyż jest to pierwszy pakiet. Jednocześnie czas pakietu dla wejścia we1 ustawiony zostaje na wartość 0. Po wysłaniu P1-1 moduł wyjściowy 105 pobiera następny pakiet z wejścia 1.
PL 214 807 B1
Jednak czas delta dla kolejnego pakietu wynosi 2000. Pakiet ten zostaje zapamiętany, a moduł wyjściowy 105 pobiera nowy pakiet P2-1 z drugiego źródła we2.
Pobrany pakiet P2-1 jest pierwszym z tego wejścia, więc zostaje wysłany natychmiast, a czas pakietu ustawia się na 950, gdyż jest to pierwszy pakiet z tego modułu wejściowego.
Po jego wysłaniu, przy stanie zegara clk-wy1 1900 sprawdza się możliwość wysłania pakietu P1-3. Ze względu na dopuszczalne odchylenie 100, pakiet mający czas delta 2000 może zostać wysłany w aktualnej chwili, zegar clk-wy1 ma wartość 1900.
Po wysłaniu pakietu P1-3 moduł ustawia czas pakietu tego wejścia na 2000 i pobiera kolejny pakiet P1-4. Ponieważ 2000 + 1000 cykli zegara dla czasu delta po odjęciu aktualnej wartości zegara clk-wy2 daje wynik większy od dopuszczalnego odchylenia, pakiet zostaje wstrzymany.
W tym momencie moduł wyjściowy 105 pobiera kolejny pakiet z drugiego wejścia P2-2. Ponieważ czas delta dla tego pakietu wynosi 1000, a aktualny czas to 2850 i poprzedni pakiet z tego wejścia był wysłany w czasie 950, pakiet będzie wysłany. Wartość czasu pakietu dla wejścia drugiego ustawiana jest na 1950.
Wysyłanie pakietu trwa do czasu 3800, gdzie ponownie sprawdza się oczekujący pakiet z wejścia pierwszego. Ponieważ 3000 - 3800 <= 100, pakiet P1-4 zostaje wysłany, a czas pakietu dla wejścia pierwszego ustawia się na 3000.
W tym momencie pojawia się opóźnienie dla pakietu pierwszego strumienia, gdyż pakiet P1-4 został wysłany 1900 cykli zegara po P1-3, podczas gdy w idealnym przypadku powinno być to 1000 cykli.
Po wysłaniu pakietu P1-4, czas clk-wy2 wynosi 4750 i moduł wyjściowy 105 pobiera kolejny pakiet z pierwszego wejścia. Delta tego pakietu P1-8 to 4000, dlatego dopuszczalnym czasem jego wysłania jest 6900. W związku z tym pakiet ten oczekiwać będzie w kolejce, a pobrany zostanie kolejny pakiet z drugiego wejścia. Delta pakietu P2-4 wynosi 2000.
Ponieważ (1950 + 2000) - 4750 = -800, pakiet P2-4 zostaje wysłany, a wartość czasu pakietu ustawiona jest na 3950. Kolejnym krokiem w cyklu zegara clk-wy1 5700 jest pobranie kolejnego pakietu z drugiego wejścia, gdyż pakiet z pierwszego wejścia musi jeszcze czekać.
Czas delta odebranego pakietu P2-8 to 4000, więc musi on poczekać aż wartość zegara clk-wy1 będzie wynosić co najmniej 7850.
Oznacza to, że w danej chwili 5700 nie można wysłać żadnych danych użytecznych, dlatego wysłany zostanie pakiet danych wypełniających.
Pakiet ten zostaje wysłany do chwili 6650. Ponieważ dalej nie można wysłać danych użytecznych, wysyła się kolejny pakiet wypełniający. Jego wysyłanie kończy się w chwili 7600. Powyższe dwa pakiety wypełniające mogą być także pobrane z niezsynchronizowanego wejścia, na przykład z aplikacjami MHP.
Niezsynchronizowane wejście, to takie wejście, z którego dane będą dołączone do strumienia wyjściowego tylko wtedy, gdy dane z wejść głównych we1 i we2 muszą czekać na właściwy moment ich wysłania. Dane z wejść niezsychronizowanych nie wymagają korekcji PCR.
Sprawdzając oczekujące pakiety, moduł wyjściowy 105 stwierdza, że należy wysłać pakiet P1-8, którego wysłanie jest nieznacznie opóźnione. Czas pakietu pierwszego wejścia zostaje ustawiony na 7000.
Po wysłaniu pakietu aktualny czas zegara clk-wy1 wynosi 8550. Ostatnio wysłany pakiet pochodził z wejścia pierwszego, dlatego moduł wyjściowy 105 pobiera następny pakiet P1-10 z tego wejścia. Czas delta dla tego pakietu wynosi 2000, a więc musi on poczekać w kolejce, a w jego miejsce wysłany zostanie pakiet P2-8, który oczekuje już w buforze modułu wyjściowego 105.
Wynik działania (3950 + 4000) - 8550 jest mniejszy niż wartość dopuszczalnego odchylenia i czas pakietu dla wejścia drugiego zostaje ustawiony na wartość 7950. Pakiet jest wysłany, gdy clk-wy1 ma wartość 9500.
Ostatnim krokiem, który należy wykonać dla przykładowych strumieni z Fig. 6, jest wysłanie pakietu P1-10 oczekującego w buforze modułu wyjściowego 105.
Pakiet jest wysłany, ponieważ sprawdzenie dopuszczalnego odchylenia daje wynik -500, a czas pakietu dla wejścia pierwszego zostaje ustawiony na wartość 9000.
Z uwagi na to, że wszystkie pakiety danych zostały wysłane, kolejne pakiety to pakiety wypełniające.
Mogą to być również pakiety pochodzące z niezsynchronizowanego wejścia, na przykład z aplikacjami MHP.

Claims (12)

  1. Zastrzeżenia patentowe
    1. Sposób łączenia w układzie przetwarzającym strumienie MPEG pakietów kilku wejściowych strumieni MPEG w jeden transportowy strumień wyjściowy z jednoczesną korekcją oznaczeń czasowych wejściowych strumieni MPEG, w którym z asynchronicznych źródeł programowych do odpowiednich buforów strumieniowych dostarcza się wejściowe strumienie pakietów danych MPEG o różnych prędkościach transmisji z ustalonymi oznaczeniami czasowymi ich pakietów, przy czym pakiety strumieni wejściowych MPEG multipleksuje się i koryguje się ich oznaczenia czasowe w ten sposób, że usuwa się ich zadane oznaczenia czasowe i zastępuje wartościami oznaczeń czasowych obliczonych zgodnie z algorytmem wykrywającym i korygującym wykryte rozsynchronizowanie, po czym pakiety z tak skorygowanymi oznaczeniami czasowymi dołącza się odpowiednio do wyjściowego strumienia MPEG, znamienny tym, że przekazuje się z buforów strumieniowych (106) do odpowiednich buforów pakietowych (401) pakiety każdego strumienia wejściowego MPEG wraz z informacją o zależnościach czasowych między sąsiednimi pakietami danego strumienia wejściowego MPEG, po czym z wymienionych buforów pakietowych (401) za pomocą multipleksera (402) pobiera się pakiety wejściowych strumieni MPEG do przetwornika (404) pakietów, w którym sprawdza się zależności czasowe pomiędzy sąsiednimi pakietami strumieni wejściowych, stanem zegara danego strumienia wyjściowego, czasem wysłania ostatniego pakietu z danego bufora pakietowego oraz dozwolonym przesunięciem czasowym pakietów w strumieniu wyjściowym i na ich podstawie koryguje się zawarte w nich oznaczenia czasowe do wartości zegara (403) wyjściowego strumienia MPEG, a następnie dołącza się odpowiednio wybrane pakiety do wyjściowego strumienia MPEG.
  2. 2. Sposób według zastrz. 1, znamienny tym, że pakiety dostarczane do buforów strumieniowych (106) filtruje się według kryteriów, które określają numery PID dostarczanych pakietów.
  3. 3. Sposób według zastrz. 1, znamienny tym, że dane przekazuje się z buforów strumieniowych (106) do buforów pakietowych na żądanie modułu wyjściowego.
  4. 4. Sposób według zastrz. 1, znamienny tym, że dane z buforów strumieniowych (106) do buforów pakietowych przekazuje się po sprawdzeniu, że bufor pakietowy może je otrzymać.
  5. 5. Sposób według zastrz. 1, znamienny tym, że w przypadku wyposażenia bufora strumieniowego (106) w dodatkowy zegar, częstotliwość tego zegara dostosowuje się do częstotliwości zegara oznaczeń czasowych pakietów danego strumienia na podstawie wartości średniej wyliczonej z co najmniej dwóch pomiarów wartości oznaczeń czasowych pakietów danego strumienia.
  6. 6. Sposób według zastrz. 1, znamienny tym, że w układzie przetwarzającym strumienie MPEG, niezależnym procesem monitoruje się zmiany ilości dostępnych buforów strumieniowych (106) i na podstawie tych zmian dodaje lub usuwa się bufory pakietowe.
  7. 7. Sposób według zastrz. 1, znamienny tym, że zależności czasowe między sąsiednimi pakietami danego strumienia definiuje się jako różnicę oznaczenia czasowego pomiędzy aktualnym, a poprzednim pakietem danego strumienia.
  8. 8. Sposób według zastrz. 7, znamienny tym, że dla pierwszego pakietu z danego strumienia wejściowego oznaczenie czasowe poprzedniego pakietu definiuje się jako równe oznaczeniu czasowemu aktualnego pakietu.
  9. 9. Sposób według zastrz. 1 znamienny tym, że dla pierwszego pakietu wysłanego z danego bufora pakietowego czas wysłania ostatniego pakietu dla tego bufora ustawia się na wartość czasu zegara strumienia wyjściowego.
  10. 10. Sposób według zastrz. 1, znamienny tym, że dla drugiego i następnych pakietów z danego bufora pakietowego czas wysłania ostatniego pakietu dla tego bufora ustawia się na wartość sumy czasu wysłania ostatniego pakietu dla tego bufora pakietowego i zależności czasowych między sąsiednimi pakietami danego strumienia wejściowego.
  11. 11. Sposób według zastrz. 1, znamienny tym, że pakiet danego bufora pakietowego dołącza się do wyjściowego strumienia MPEG, gdy suma czasu wysłania ostatniego pakietu dla danego bufora pakietowego i zależności czasowych między sąsiednimi pakietami danego strumienia wejściowego, pomniejszona o aktualną wartość zegara strumienia wyjściowego, jest nie większa od dozwolonego przesunięcia czasowego pakietów w strumieniu wyjściowym.
  12. 12. Sposób według zastrz. 1, znamienny tym, że do przesyłanych danych dodaje się dodatkowe dane, korzystnie aplikacje systemu MHP.
PL359676A 2003-04-14 2003-04-14 Sposób laczenia w ukladzie przetwarzajacym strumienie MPEG pakietów kilku wejsciowych strumieni MPEG w jeden transportowy strumien wyjsciowy z jednoczesna korekcja oznaczen czasowych PL214807B1 (pl)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PL359676A PL214807B1 (pl) 2003-04-14 2003-04-14 Sposób laczenia w ukladzie przetwarzajacym strumienie MPEG pakietów kilku wejsciowych strumieni MPEG w jeden transportowy strumien wyjsciowy z jednoczesna korekcja oznaczen czasowych
US10/823,029 US20040218633A1 (en) 2003-04-14 2004-04-13 Method for multiplexing, in MPEG stream processor, packets of several input MPEG streams into one output transport stream with simultaneous correction of time stamps

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PL359676A PL214807B1 (pl) 2003-04-14 2003-04-14 Sposób laczenia w ukladzie przetwarzajacym strumienie MPEG pakietów kilku wejsciowych strumieni MPEG w jeden transportowy strumien wyjsciowy z jednoczesna korekcja oznaczen czasowych

Publications (2)

Publication Number Publication Date
PL359676A1 PL359676A1 (pl) 2004-10-18
PL214807B1 true PL214807B1 (pl) 2013-09-30

Family

ID=33308655

Family Applications (1)

Application Number Title Priority Date Filing Date
PL359676A PL214807B1 (pl) 2003-04-14 2003-04-14 Sposób laczenia w ukladzie przetwarzajacym strumienie MPEG pakietów kilku wejsciowych strumieni MPEG w jeden transportowy strumien wyjsciowy z jednoczesna korekcja oznaczen czasowych

Country Status (2)

Country Link
US (1) US20040218633A1 (pl)
PL (1) PL214807B1 (pl)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10355345A1 (de) * 2003-11-25 2005-06-23 Deutsche Thomson-Brandt Gmbh Verfahren und Vorrichtung zum Speichern oder Wiederfinden von definierten Positionen in einem Datenstrom
US7817535B2 (en) * 2005-11-02 2010-10-19 Cisco Technology, Inc. Method of fault tolerance and synchronous failover for broadcast video across the network
US8989006B2 (en) * 2005-12-29 2015-03-24 General Instrument Corporation Method and apparatus for glitchless failover to redundant stream
JP4189422B2 (ja) * 2006-11-14 2008-12-03 株式会社東芝 放送ts配信システム、このシステムに用いられる放送ts配信装置、ユーザ端末装置及び配信方法
JP2010154133A (ja) * 2008-12-24 2010-07-08 Toshiba Corp デジタル放送受信装置
EP2267476A1 (en) * 2009-06-12 2010-12-29 Thales Deutschland Holding GmbH Secondary surveillance radar system for air traffic control
JP5564853B2 (ja) * 2009-08-14 2014-08-06 ソニー株式会社 受信装置および方法、プログラム、並びに受信システム
AU2013281946B2 (en) 2012-06-29 2017-03-02 Sony Group Corporation Decoding device, and decoding method
US10701124B1 (en) * 2018-12-11 2020-06-30 Microsoft Technology Licensing, Llc Handling timestamp inaccuracies for streaming network protocols

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US133306A (en) * 1872-11-26 Improvement in girders
US2090807A (en) * 1937-08-24 Knitting band
US4508314A (en) * 1984-01-18 1985-04-02 Eaton Corporation Gas valve
US4671484A (en) * 1986-04-16 1987-06-09 Eaton Corporation Gas valve
US4973024A (en) * 1989-09-26 1990-11-27 Toki Corporation Kabushiki Kaisha Valve driven by shape memory alloy
US5211371A (en) * 1991-07-22 1993-05-18 Advanced Control Technologies, Inc. Linearly actuated valve
US6116230A (en) * 1992-03-23 2000-09-12 Convenience Technologies, Inc. Microprocessor-controlled gas appliance utilizing a single electrode spark ignition system and a pulse width modulated proportional valve
WO1998017024A1 (en) * 1996-10-11 1998-04-23 Sarnoff Corporation Apparatus and method for analyzing bitstreams
TW386150B (en) * 1996-11-08 2000-04-01 Matsushita Electric Works Ltd Flow control valve
US5979430A (en) * 1998-02-06 1999-11-09 Universal Tubular Systems, Inc. Supply device for gas appliance manifold
US6463109B1 (en) * 1998-08-25 2002-10-08 Vitesse Semiconductor Corporation Multiple channel adaptive data recovery system
WO2000058649A1 (fr) * 1999-03-31 2000-10-05 Kitz Corporation Soupape a ressort a lame
US6684904B2 (en) * 1999-06-15 2004-02-03 Seiko Instruments Inc. Variable pressure valve apparatus
US6247678B1 (en) * 1999-11-01 2001-06-19 Swagelok Company Shape memory alloy actuated fluid control valve
US6494225B1 (en) * 1999-11-23 2002-12-17 Ecp Family Properties Proportional flow control valve
US6279869B1 (en) * 1999-11-23 2001-08-28 Tadeusz Olewicz Proportional flow control valve

Also Published As

Publication number Publication date
US20040218633A1 (en) 2004-11-04
PL359676A1 (pl) 2004-10-18

Similar Documents

Publication Publication Date Title
JP4528010B2 (ja) ビデオ同期
US7526000B2 (en) Jitter compensation method for systems having wall clocks
US5640388A (en) Method and apparatus for removing jitter and correcting timestamps in a packet stream
KR100632189B1 (ko) 디지털 신호 멀티플렉싱 방법과 장치, 디지털 신호 전송 방법과 장치, 디지털 신호 기록 방법과 장치 및 기록 매체
CA2563799C (en) Rate limited control mechanism for mpeg pcr dejittering
US9544638B2 (en) Method for reconstructing system time clock (STC) without carrying PCR
JP2010136410A (ja) ビデオ・エンコーダおよびエンコーダからデコーダへのタイミングを同期させる方法
AU2005259240B2 (en) Method for transmitting packets in a transmission system
US20110255556A1 (en) Method for transport stream synchronizing in a multiplexer comprising an external corpocessor
US6233238B1 (en) Method for updating clock references in a digital data stream and a remultiplexer
KR101343886B1 (ko) Ip를 통해 mpeg 스트림을 전송하는 방법과, 대응하는 디바이스, 수신 방법 및 수신기
US20100135325A1 (en) Apparatus and method for inserting or extracting network timestamp
EP2681858B1 (en) Deterministic re-multiplexing for sfn networks
JP3438564B2 (ja) ディジタル信号多重化装置及び方法、記録媒体
PL214807B1 (pl) Sposób laczenia w ukladzie przetwarzajacym strumienie MPEG pakietów kilku wejsciowych strumieni MPEG w jeden transportowy strumien wyjsciowy z jednoczesna korekcja oznaczen czasowych
EP2311260B1 (en) Constant bit rate padding of mpeg transport streams
JP4689231B2 (ja) トランスポートストリーム切換装置
JP3893643B2 (ja) 信号多重化方法およびそれを用いた伝送信号生成装置
WO2000010275A1 (en) Bi-directional communications protocol
EP2180710A1 (en) Method for processing a stream of multiplexed packets transporting multimedia data according to an MPEG-2 type format
JP2007518333A (ja) データ伝送システムにおけるジッタの導入
JP2018137654A (ja) 通信装置、通信プログラム、および、通信方法
JP2005244367A (ja) Pcr再スタンプ装置