Opóźnienie w sieciowych systemach dozoru wizyjnego na żywo

czerwiec, 2024

Podsumowanie

Proces strumieniowania na żywo w sieciowym systemie dozoru wizyjnego składa się z przechwytywania obrazu w kamerze, kompresji i transportu przez sieć IP, oraz dekompresji w odbiorniku w celu wyświetlenia. Każdy z tych kroków wnosi większe lub mniejsze opóźnienie.

  • Opóźnienie wprowadzone po stronie kamery. Po przechwyceniu obrazu następuje jego przetwarzanie, kompresja i pakowanie. Każdy krok wprowadza pewne opóźnienie, ale ogólnie rzecz biorąc, procesy wewnątrz kamery stanowią tylko niewielką część całkowitego opóźnienia.

  • Opóźnienie wprowadzane przez sieć IP. Może być bardzo duże albo bardzo małe i jest najbardziej nieprzewidywalnym czynnikiem w sumie opóźnień. Przewidywalność tę można jednak znacząco poprawić, inwestując w dobre oprogramowanie i sprzęt sieciowy. Opóźnienie sieciowe zależy w dużej mierze od stosunku ilości danych do przepustowości. Kamerę można skonfigurować w taki sposób, by zmniejszyć ilość generowanych przez nią danych, a tym samym zmniejszyć liczbę pakietów do przesłania przez sieć IP.

  • Opóźnienie wprowadzone po stronie klienta. Po stronie klienta dane są odbierane i buforowane w celu sortowania i kolejkowanego przekazywania do karty graficznej i monitora. Na opóźnienie największy wpływ, nawet do kilku sekund, ma bufor odbiorczy po stronie klienta. Bez dużego bufora strumień wizyjny może nie być odtwarzany płynnie.

Zmniejszenie opóźnienia jest kwestią kosztów. Największą poprawę w tym zakresie można osiągnąć poprzez usprawnienie sieci IP oraz sprzętu i oprogramowania po stronie klienta.

Wprowadzenie

W kontekście dozoru wizyjnego opóźnienie to czas między momentem przechwycenia obrazu a momentem jego wyświetlenia. Inne nazwy to: opóźnienie całkowite (end-to-end) lub opóźnienie przetwornik-ekran. Proces transportu obrazu z przetwornika kamery do monitora obejmuje długą sekwencję kroków.

Niniejsza specyfikacja standardu zawiera opis różnych kroków, które składają się na całkowite opóźnienie, a także zalecenia dotyczące sposobów zmniejszenia opóźnienia.

Czym jest opóźnienie?

Definicja opóźnienia zależy od kontekstu. W technologii sieciowej opóźnienie definiuje się jako odstęp między czasem wysłania informacji ze źródła a czasem jej odebrania w miejscu docelowym.

W niniejszej specyfikacji omówione zostaną opóźnienia występujące w sieciowych systemach dozoru wizyjnego. Na nasze potrzeby opóźnienie określamy jako różnicę między czasem przechwycenia obrazu przez kamerę a czasem, w którym zostanie on wyświetlony na wyświetlaczu. W tym odstępie czasu obraz jest przechwytywany, kompresowany, przesyłany, dekompresowany i wyświetlany. Każdy kolejny krok powoduje wzrost całkowitego opóźnienia. Dla uproszczenia, całkowite opóźnienie (end-to-end) może składać się z trzech głównych etapów:

  • opóźnienie wprowadzane przez kamerę (opóźnienie przetwarzania obrazu, opóźnienie kompresji),

  • opóźnienie wprowadzane przez sieć IP (opóźnienie transmisji),

  • opóźnienie wprowadzane przez stronę odbiorcy (bufor klienta, opóźnienie dekompresji, opóźnienie wyświetlania).

Aby osiągnąć zakładane docelowe opóźnienie systemu dozoru wizyjnego, każde z tych opóźnień musi zostać uwzględnione podczas projektowania rozwiązania wizyjnego.

Jak mierzy się opóźnienie?

Opóźnienie wyrażane jest zwykle w jednostkach czasu, sekundach [s] lub milisekundach [ms]. Bardzo trudno jest zmierzyć dokładne opóźnienie, ponieważ wymagałoby to dokładnej synchronizacji zegarów kamery i urządzenia wyświetlającego. Jednym z prostych sposobów (z zastrzeżeniem niewielkiego odchylenia od dokładnej wartości) jest użycie funkcji nakładania tekstowego znacznika czasu. W metodzie tej mierzy się całkowite opóźnienie systemu dozoru wizyjnego, czyli różnicę czasu między przechwyceniem jednego obrazu w obiektywie a momentem, w którym ten sam obraz jest renderowany w urządzeniu wyświetlającym.

Należy pamiętać, że metoda ta wnosi błąd maks. jednego interwału obrazu. Jest to spowodowane tym, że znaczniki czasu wykorzystywane do obliczania opóźnienia są zbierane tylko podczas przechwytywania obrazu. Możliwe będzie zatem obliczenie opóźnienia tylko z uwzględnieniem częstotliwości odświeżania. Jeżeli częstotliwość odświeżania wynosi 25 obrazów/s, opóźnienie oblicza się jako wielokrotność 40 ms. Jeżeli częstotliwość odświeżania wynosi 1 obraz/s, opóźnienie oblicza się jako wielokrotność sekundy. Metoda ta nie jest więc zalecana w przypadku niskiej częstotliwości odświeżania.

Aby zmierzyć opóźnienie przy użyciu funkcji nakładania tekstowego znacznika czasu, należy:

  1. włączyć znacznik czasu, stosując (%T:%f),

  2. umieścić kamerę pod takim kątem, aby rejestrowała własny strumień wizyjny na żywo,

  3. wykonać zrzuty strumienia wyjściowego na żywo, aby porównać różnicę między czasem wyświetlanym w oryginalnym znaczniku, a czasem wyświetlanym w pętli ekranowej.

    Przykład pomiaru opóźnienia przy użyciu funkcji nakładania tekstowego znacznika czasu. Można zauważyć różnicę czasu wynoszącą 25,46 - 25,30 = 0,16 s lub 160 ms. Oznacza to, że całkowite opóźnienie wynosi 160 ms.

Czynniki wpływające na opóźnienie

Całkowite opóźnienie jest sumą opóźnień wprowadzanych przez kamerę, sieć IP i klienta.

Opóźnienie wprowadzane przez kamerę

Każdy obraz zajmuje odstęp czasowy około 1/30 s ekspozycji, po którym następuje krótki czas skalowania i kodowania obrazu. Zakodowany obraz jest dzielony i pakowany; jeden obraz jest wyprowadzany do sieci IP co 33 ms. Czas potrzebny na ten proces w kamerze może wynieść poniżej 50 ms, ale częściej jest to kilkaset ms. Różni się on nieznacznie w zależności od kamery (pomijając kamery PTZ) oraz od tego, czy obraz jest określany jako ramka typu I czy typu P.

Opóźnienie przechwytywania

Zajrzyjmy do wnętrza kamery dozorowej. Przetwornik obrazu w kamerze składa się z milionów fotodetektorów (elementów światłoczułych), popularnie nazywanych pikselami. Przetwornik rejestruje światło w pikselach przez czas trwania (interwał) jednej ekspozycji, a następnie przekształca uchwyconą energię świetlną w sygnały elektryczne. Ładunek jest następnie usuwany i piksele są gotowe do kolejnej ekspozycji. Liczba ekspozycji, które przetwornik dostarcza na jednostkę czasu, czyli ile obrazów kamera jest w stanie przechwycić na sekundę, określa częstotliwość odświeżania przetwornika.

Opóźnienie przechwytywania zależy od częstotliwości odświeżania. W przypadku ustawienia częstotliwości odświeżania 30 obrazów/s, co oznacza, że przetwornik będzie przechwytywać jeden obraz co 1/30 sekundy, opóźnienie przechwytywania wyniesie maks. 33,3 ms.

Opóźnienie przetwarzania obrazu

Każdy przechwycony obraz przechodzi przez szereg etapów przetwarzania, takich jak zamiana skanowania międzyliniowego na kolejnoliniowe (progresywne), skalowanie, a także obrót obrazu, które zwiększają opóźnienie. Im więcej etapów przetwarzania, tym większe opóźnienie wprowadzane przez kamerę. Ponieważ jednak przetwarzanie w kamerze wpływa na ilość generowanych danych, liczba etapów przetwarzania ma również wpływ na opóźnienie sieciowe, gdy dane są przesyłane przez sieć IP.

Niektóre parametry wpływające na opóźnienie:

  • Obrót obrazu. Obrót strumienia wizyjnego o 90 lub 270° dodatkowo obciąża procesor kodujący. Piksele muszą zostać uporządkowane i zbuforowane, co wnosi pewne opóźnienie.

  • Rozdzielczość. Wyższa rozdzielczość oznacza większą liczbę pikseli do zakodowania przez procesor. Wzrost czasu przetwarzania przy wyższej rozdzielczości w porównaniu ze wzrostem przy niższej rozdzielczości jest zwykle nieznaczny, ponieważ równoważy go szybszy procesor w kamerach wysokiej rozdzielczości. Jednak wyższa rozdzielczość oznacza większą ilość danych na każdy obraz, a tym samym większą ilość przesyłanych pakietów. W sieci IP o ograniczonej przepustowości może to prowadzić do opóźnienia podczas transmisji. Opóźnienie to prowadzi z kolei prowadzi do konieczności posiadania większego bufora po stronie odbiornika, co oznacza następne opóźnienie.

  • Filtrowanie szumów. Zaawansowane filtrowanie szumów wymaga buforowania wielu obrazów, co wprowadza dodatkowe opóźnienie.

  • Maskowanie prywatności. Zaawansowane funkcje maskowania prywatności, takie jak AXIS Live Privacy Shield, mogą wprowadzać dodatkowe opóźnienie. Wynika to z wymaganego buforowania zapewniającego, że we właściwym czasie stosowane są prawidłowe maski prywatności.

Opóźnienie kompresji

Obraz jest kodowany w celu skompresowania danych przed ich przesłaniem przez sieć IP. Kompresja obejmuje jeden lub kilka algorytmów matematycznych, które usuwają dane obrazu. Zajmuje to mniej lub więcej czasu w zależności od ilości danych do przetworzenia. Na opóźnienie kompresji wprowadzone na tym etapie wpływa kilka aspektów odnoszących się do kompresji:

  • Złożoność algorytmów kompresji

    Standardy H.264 i H.265 są bardziej zaawansowanymi metodami kompresji niż MJPEG. Kamery Axis mają jednak zazwyczaj wyższą wydajność kompresji H.264 i H.265 w porównaniu z kompresją MJPEG, co oznacza, że opóźnienie kompresji w przypadku standardów H.264 lub H.265 nie musi być wyższe. Wyższe opóźnienie może być jednak po stronie dekodera. Strumienie danych H.264 i H.265 wytwarzane przez kamery Axis wymagają od dekodera buforowania co najmniej jednego obrazu, natomiast dekodowanie strumienia MJPEG bufora nie wymaga. Co więcej, technologia Zipstream dodaje maks. dwa obrazy dodatkowego opóźnienia, czyli 66,7 ms w przypadku obrazu o częstotliwości odświeżania 30 obrazów/s.

  • Skuteczność metody kompresji

    Najpopularniejsze standardy kodowania stosowane w kamerach Axis to MJPEG, H.264 i H.265. Wszystkie one wprowadzają opóźnienie w kamerze. H.264 i H.265 minimalizują konieczną przepływność do odbiornika bardziej niż MJPEG, co oznacza, że mniej będzie pakietów danych do wysłania przez sieć IP, koniecznych do rozpakowania i renderowania w odbiorniku. Zmniejszy to całkowite opóźnienie.

  • Wybór przepływności

    Kompresja obrazu zmniejsza wielkość danych wizyjnych. Jednak nie wszystkie obrazy będą mieć taką samą wielkość po kompresji. Wielkość skompresowanych danych może się różnić w zależności od sceny. Innymi słowy, oryginalne skompresowane dane składają się ze strumieni o zmiennej przepływności (Variable BitRate - VBR), czego wynikiem jest przesyłanie do sieci IP strumienia o zmiennej przepływności. Należy wziąć pod uwagę ograniczenia dostępnej sieci IP takie jak przepustowość. Ograniczenia przepustowości strumienia wizyjnego zazwyczaj wymagają dostosowania przepływności. W niektórych koderach można wybrać pomiędzy VBR i maksymalną przepływnością (Maximum BitRate - MBR). Wybierając MBR zyskuje się pewność, że do sieci IP zostanie wprowadzona ograniczona ilość danych. Unikanie przeciążania sieci IP zmniejsza opóźnienie sieciowe i potrzebę stosowania większego bufora w odbiorniku systemowym.

    W kamerach Axis kodery H.264 i H.265 mogą mieć ustawienie VBR i MBR. Z reguły zaleca się jednak korzystanie z ustawienia VBR w przypadku sieciowych systemów wizyjnych, w których jakość jest dostosowywana do zawartości sceny w czasie rzeczywistym. Nie zaleca się, aby zawsze używać MBR jako ogólnego ustawienia na potrzeby redukcji wymaganej objętości pamięci masowej lub radzenia sobie z połączeniem sieciowym o niskiej przepustowości, ponieważ kamery podające obraz z ustawieniem MBR mogą z tego powodu usuwać istotne informacje dowodowe w krytycznych sytuacjach.

    Korzystanie z technologii Zipstream w kamerze zmniejsza przepływność strumienia wizyjnego. Pozwala to ograniczyć ilość danych, a tym samym opóźnienie w sieci IP.

  • Liczba strumieni. Jeżeli z kamery ma być wyprowadzany więcej niż jeden rodzaj strumienia wizyjnego (o różnych częstotliwościach odświeżania lub rozdzielczościach), przetwarzanie dodatkowego strumienia spowoduje dodatkowe opóźnienie, ponieważ wszystkie strumienie muszą być kodowane przez ten sam procesor.

Wybierając metodę kompresji należy wziąć pod uwagę wszystkie te aspekty. Z jednej strony zaawansowany algorytm kodowania może potrzebować więcej czasu na kodowanie i dekodowanie, ale z drugiej zmniejszy ilość danych przesyłanych przez internet, co z kolei skróci opóźnienie przesyłania i zmniejszy rozmiar bufora odbiornika.

Opóźnienie bufora

Ponieważ strumień świetlny z obiektywu obsługiwany jest w przetworniku kamery po jednym obrazie w danym czasie, kompresowana jednocześnie może być tylko ograniczona ilość danych. Pomiędzy etapami przetwarzania potrzebne są niekiedy krótkoterminowe bufory, które wnoszą opóźnienie w kamerze.

Opóźnienie dźwięku

W niektórych przypadkach strumieniowi wizyjnemu towarzyszy dźwięk. Koder dźwięku (audio) musi czekać na określoną liczbę próbek, zanim blok będzie dostępny do rozpoczęcia kodowania audio, co powoduje dodatkowe opóźnienie po stronie kamery. Częstotliwości próbkowania i rozmiary bloków są różne w różnych algorytmach kodowania audio.

Opóźnienie w sieci IP

Po przechwyceniu, przetworzeniu i skompresowaniu obrazu dane wizyjne przesyłane są przez sieć IP celem odebrania przez klienta i renderowania. Aby zrozumieć, w jaki sposób sieć IP wpływa na opóźnienie, należy przyswoić sobie kilka podstawowych pojęć ściśle związanych z sieciowymi systemami wizyjnymi: przepływność, przepustowość i przepływność do odbiornika. Opóźnienie sieciowe jest proporcjonalne do przepływności i odwrotnie proporcjonalne do przepustowości.

  • Przepływność to ilość danych, mierzona w bitach, przetwarzana w jednostce czasu. W dozorze wizyjnym przepływność jest definiowana jako ilość danych generowanych przez kamerę do przesłania przez sieć IP w jednostce czasu. Przepływność zależy od wielu czynników, w dużej mierze od ujmowanej sceny, przetwarzania wykonanego w kamerze i ustawień strumienia wizyjnego. Gdy kamera generuje więcej danych do przesłania, można spodziewać się większego opóźnienia sieciowego w przypadku ograniczenia przepustowości łącza.

  • Przepustowość to ilość danych, jaką potencjalnie można przesłać przez sieć IP między kamerą a monitorem. Jest to maksymalna wydajność łącza. Przepustowość zależy od długości i infrastruktury łącza, czyli przełączników sieciowych, ruterów, kabli, serwerów proxy i innych. Jeżeli przepustowość sieci IP zostanie zwiększona, będzie można przesłać przez nią więcej danych, co spowoduje zmniejszenie opóźnienia.

  • Przepływność do odbiornika to rzeczywista osiągnięta szybkość (w bitach/s) transmisji danych. Zależy od tego, czy łącze jest współdzielone oraz od zakłóceń elektromagnetycznych kabli w łączu. Mogą ją też ograniczać ustawienia funkcji jakości usług QoS (Quality of Service) skonfigurowanej na portach.

    Gdyby porównać łącze (sieć IP) między kamerą a monitorem do rury, przepływność (1) oznaczałaby ilość danych przenoszonych do rury na jednostkę czasu, przepustowość (2) byłaby grubością rury, a przepływność do odbiornika (3) byłaby miarą ilości danych faktycznie przechodzących przez rurę w jednostce czasu.
  1. Przepływność
  2. Przepustowość
  3. Przepływność do odbiornika

Całkowite opóźnienie w sieci zależy od trzech głównych czynników: infrastruktury łącza pomiędzy kamerą a urządzeniem do wyświetlania obrazu (która określa przepustowość), ilości danych wytwarzanych przez kamerę (która określa przepływność) oraz zestawu protokołów transmisji.

Infrastruktura

Sieć IP jest najbardziej nieprzewidywalnym źródłem całkowitego opóźnienia. Przełączniki sieciowe, rutery, kable, serwery proxy: między nadawcą a odbiorcą wszystkie elementy sieci IP wpływają na całkowite opóźnienie. W sieci LAN opóźnienie może wynosić zaledwie kilka ms, co jest wartością nieistotnie niską, którą można zignorować. Jeżeli jednak strumień wizyjny ma być przesyłany przez internet z nieokreślonymi trasami, opóźnienie sieciowe będzie trudne do przewidzenia, a w wielu przypadkach może być głównym czynnikiem wpływającym na całkowite opóźnienie.

Dzięki starannemu zarządzaniu siecią IP i przydzielaniu przepustowości nieprzewidywalne czynniki opóźnienia sieci IP mogą zmienić się w czynniki przewidywalne. Połączenie między kamerą a urządzeniem wyświetlającym musi mieć gwarantowaną przepływność do odbiornika.

W sieci LAN (Local Area Network) można to osiągnąć, upewniając się, że łącze ma jak najmniej przeskoków (hops). Łącze nie powinno być współdzielone z innymi usługami takim jak Voice over IP (VoIP) lub innymi protokołami, mającymi domyślnie priorytet w stosunku do transmisji danych wizyjnych, lub innymi wymagającymi usługami, które przeciążałyby łącze.

Jeżeli łącze znajduje się w sieci WAN (Wide Area Network), należy zagwarantować QoS w każdym przeskoku, tj. w ruterach i przełącznikach sieciowych. Można je również osiągnąć, dzierżawiąc łącze punkt-punkt za pośrednictwem lokalnego dostawcy internetu.

Konfigurowalne czynniki wpływające na przepływność do odbiornika:

  • Narzut danych (przykład: nagłówek VLAN)

  • Serwery proxy i zapory sieciowe

  • QoS każdego łącza na całej trasie

  • Tryb Burst lub brak (włączony —> wyższa szybkość)

  • MTU (Maximum Transmission Unit) - rozmiar maksymalnego pakietu wizyjnego

Czynniki związane z kosztami wpływające na przepływność do odbiornika:

  • Szybkość procesora i bufor portów przełączników sieciowych i ruterów

  • Rodzaj kabla (lub dostęp bezprzewodowy)

Ilość danych w strumieniu wizyjnym

Wybór metody przetwarzania i kompresji obrazu w kamerze wpływa na opóźnienie sieciowe, ponieważ metoda ma wpływ na ilość wytwarzanych danych wizyjnych. Wysłanie mniejszej ilości danych zajmie mniej czasu.

Protokoły transmisji

Obraz z kamery przekazywany jest poprzez protokół transportowy, zwykle RTP lub HTTP. Transmisja do klienta renderującego odbywa się za pośrednictwem sieci IP. Transmisja odbywa się albo za pośrednictwem niezawodnego protokołu TCP, który jest protokołem połączeniowym z retransmisją utraconych pakietów danych, albo za pośrednictwem protokołu UDP, prostszego, który nie gwarantuje dostarczenia i nie zapewnia możliwości retransmisji utraconych pakietów.

W przypadku kamer Axis dostępne są następujące opcje enkapsulacji zakodowanego strumienia danych do transmisji:

Opcje enkapsulacji zakodowanego strumienia danych.
TopologiaZalecane tryby enkapsulacji pakietów wizyjnych Axis
LAN / mniej przeskoków i bezpośrednie zarządzanie węzłamiMJPEG / HTTP / TCP
LAN / mniej przeskoków i bezpośrednie zarządzanie węzłamiH.264, H.265 lub MJPEG / RTP / RTSP / HTTP / TCP
LAN / mniej przeskoków i bezpośrednie zarządzanie węzłamiH.264, H.265 lub MJPEG / RTP / RTSP / TCP
WAN / kilka przeskoków przy braku pełnej kontroli nad węzłamiH.264, H.265 lub MJPEG / RTP / Unicast / UDP
WAN / kilka przeskoków przy braku pełnej kontroli nad węzłamiH.264, H.265 lub MJPEG / RTP / Multicast / UDP

Zdalne połączenie / chmura / WAN / kilka przeskoków przy braku pełnej kontroli nad węzłami

H.264, H.265 lub MJPEG / RTP / WebRTC / UDP lub TCP

Transport pakietu przy protokole TCP trwa dłużej niż z UDP ze względu na dodatkowe ustawienia połączenia, komunikaty potwierdzające i retransmisję pakietów w razie ich utraty. Z drugiej strony, przy protokole UDP użytkownik zobaczy zakłócenia lub przerwy w strumieniu wizyjnym w przypadku utraty pakietów w transmisji. Przy utracie pakietów protokół TCP spowoduje jitter, a UDP zakłócenia lub przerwy. Jeżeli utrata danych i tymczasowe pogorszenie jakości są akceptowalne, można wybrać protokół UDP w przypadku sieci IP o niskiej przepustowości.

Przy korzystaniu z protokołu TCP wysyłanych będzie więcej pakietów, obsługa których wymagać będzie większej przepustowości. Jeżeli wiadomo, że w sieci IP występuje duże obciążenie, jako protokół transmisji należy wybrać protokół UDP. Ponieważ utrata pakietów jest akceptowana, wybór ten spowoduje utratę pakietów, a tym samym niższą jakość obrazu.

Dzięki protokołowi WebRTC i adaptacyjnej przepływności obraz zostanie dostosowany do sieci IP, by uniknąć niekontrolowanych skoków opóźnienia, które mogą wystąpić w przypadku protokołu TCP.

Opóźnienie po stronie klienta

Po odebraniu przez klienta systemu wizyjnego obraz jest rozpakowywany, ponownie porządkowany i dekodowany, a do renderowania stosowany jest odtwarzacz multimedialny. Każdy etap indywidualnie przyczynia się do całkowitego opóźnienia generowanego po stronie klienta. Czynnikiem opóźniającym jest też sam komputer. Na opóźnienie wpływ mają: wydajność procesora, system operacyjny, karta sieciowa i karta graficzna. MJPEG jest zwykle standardem o najniższym opóźnieniu dekodowania i wyświetlania, ponieważ dane mogą być prezentowane na ekranie w miarę ich napływania bez kodów czasowych. H.264 i inne standardy kompresji obrazu przydzielają kody czasowe do każdego obrazu i wymagają odpowiedniego ich renderowania.

Bufor odtwarzania

Rzeczywiste sieci IP są często bardzo duże i złożone, ruch w nich zmienia się gwałtownie, a pakiety docierają w różnej kolejności. Aby skompensować wahania wprowadzane przez transport sieciowy, po stronie klienta stosowany jest bufor. Dzięki buforowi, nazywanemu buforem odtwarzania lub buforem jittera, pakiety trafiają we właściwej kolejności i buforowana jest taka ilość danych, aby nie zabrakło ich dekoderowi; na urządzeniu wyświetlającym prezentowany jest obraz z jednolitą częstotliwością odświeżania.

Bufor ten wnosi stosunkowo wysokie opóźnienie. Różne aplikacje mają różny rozmiar bufora odtwarzania, a w większości przeglądarek można go zmienić. Co ważne, zmniejszenie bufora zwiększy jitter, należy więc znaleźć równowagę między jitterem a akceptowalnym opóźnieniem.

Bufor dźwięku

Podczas odtwarzania strumień foniczny jest bardziej wrażliwy na „zacięcia” czy opóźnienia niż strumień wizyjny. Pojedynczy opóźniony pakiet foniczny generuje irytujący trzask w odsłuchiwanym dźwięku, przy czym dźwięk musi być zsynchronizowany z obrazem. W związku z tym gdy obrazowi towarzyszy dźwięk, konieczne jest ustawienie dużego bufora odtwarzania, co oczywiście zwiększy opóźnienie.

Dekompresja

Czas wymagany do przeprowadzenia procesu dekompresji zależy od zastosowanej metody kodowania. Opóźnienie dekodowania zależy w dużej mierze od sprzętowej obsługi dekodera zawartej w karcie graficznej. Dekodowanie sprzętowe jest zazwyczaj szybsze niż programowe. W ogólności dekodowanie H.264 jest bardziej czasochłonne niż MJPEG. W przypadku dekodowania w standardzie H.264 opóźnienie zależy również od profilu wybranego w fazie kodowania. Profil Base jest najłatwiejszy do zdekodowania, zdekodowanie profili Main i High potrwa dłużej. Strumień danych H.264 generowany w urządzeniach wizyjnych Axis wymaga, aby dekoder buforował co najmniej jeden obraz.

Urządzenie wyświetlające

Urządzenie wyświetlające wpływa na opóźnienie poprzez czas transferu, częstotliwość odświeżania ekranu i czas reakcji.

Czas transferu to czas potrzebny na przesłanie zdekodowanych danych wizyjnych z dekodera przez kabel (na przykład HDMI) do monitora. Czas transferu zależy od szybkości kabla i rozdzielczości monitora. W przypadku monitora FHD połączonego standardowym kablem HDMI należy dodać około 10 ms opóźnienia.

Częstotliwość odświeżania urządzenia wyświetlającego również wpływa na opóźnienie. W przypadku monitorów komputerowych częstotliwość odświeżania wynosi około 17 - 20 ms, natomiast częstotliwość odświeżania specjalnych monitorów gamingowych jest na poziomie 4 - 5 ms.

Czas reakcji to czas, jaki zabiera pikselom monitora zmiana wartości. Zależy od tego, jak duża jest zmiana; w przypadku większych zmian opóźnienie może zwiększyć się o 5 - 20 ms.

Zmniejszenie opóźnienia

Zaprojektowanie systemu mającego na celu zapewnienie niskiego opóźnienia będzie wymagać kompromisów. Należy zdecydować, jakie ma być dopuszczalne opóźnienie i znaleźć równowagę między jakością obrazu a kosztem systemu dozoru wizyjnego. W niniejszym rozdziale zawarto kilka prostych zaleceń w odniesieniu do kamery, sieci IP oraz klienta mających zmniejszyć całkowite opóźnienie.

Zmniejszenie opóźnienia w kamerze

  • Rozdzielczość. Jeżeli to możliwe, wybrać niższą rozdzielczość. Wyższa rozdzielczość oznacza więcej danych do zakodowania, co może prowadzić do wyższego opóźnienia.

  • Usprawnienia. Zmniejszyć lub wyłączyć funkcje poprawy jakości obrazu w rodzaju obrotu, zamiany skanowania międzyliniowego na kolejnoliniowe (progresywne) i skalowania. Zastosowanie funkcji poprawy jakości obrazu może wnieść dodatkowe opóźnienie.

  • Tryb niskiego opóźnienia. Aby zoptymalizować czas przetwarzania obrazu w strumieniu na żywo, można włączyć tryb niskiego opóźnienia w podstawowych ustawieniach konfiguracyjnych. Opóźnienie w strumieniu na żywo zostanie zredukowane do minimum, przy czym jakość obrazu będzie niższa niż zwykle.

  • Maskowanie prywatności. Warto rozważyć rezygnację z maskowania prywatności, ponieważ zwiększa ona opóźnienie.

  • Kodowanie. Sprawdzić, czy koder zapewnia poziom kontroli opóźnienia wymagany przez system. Musi istnieć równowaga między ilością danych a możliwościami infrastruktury sieciowej. Jeżeli przez sieć IP o ograniczonej przepustowości przesyłany jest strumień wizyjny, jako metodę kodowania należy wybrać H.264 lub H.265. Przepływność zostanie obniżona przez większą kompresję. Jeżeli sieć IP może zarządzać przepływnością, należy wybrać profil Baseline, ponieważ będzie on łatwiejszy do kodowania i dekodowania.

  • Profil pamięci masowej w ustawieniach Zipstream. Warto rozważyć nieużywanie profilu pamięci masowej (Storage), ponieważ zwiększa on opóźnienie.

  • Liczba strumieni. Ograniczenie liczby strumieni z kamery za pomocą różnych ustawień. Każda niepowtarzalna kombinacja ustawień, takich jak rozdzielczość, częstotliwość odświeżania i kompresja, wymaga własnego, indywidualnego procesu kodowania, co dodatkowo obciąża procesor i powoduje opóźnienie.

  • Przepływność. Spróbować ustawić niższą przepływność. Aby zmniejszyć opóźnienie w kamerze, konieczne jest zmniejszenie ilości wyprowadzanych danych. Na przepływność wpływa wiele czynników, takich jak warunki oświetleniowe, rodzaj sceny, a także poziom kompresji, rozdzielczość, częstotliwość odświeżania i inne.

  • Częstotliwość odświeżania. Najlepiej ustawiać możliwie wysoką częstotliwość odświeżania. Ponieważ obrazy są kodowane i dekodowane pojedynczo, bufory będą opóźniać co najmniej jeden obraz. Przy wyższej częstotliwości odświeżania opóźnienie wnoszone przez bufory zostanie zredukowane. W przypadku strumienia o częstotliwości odświeżania 30 obrazów/s przechwycenie każdego obrazu zajmuje 1/30 s. Można wówczas spodziewać się opóźnienia w buforach maks. 33 ms. W przypadku 25 obrazów/s opóźnienie wyniesie maks. 40 ms.

  • Tryb przechwytywania. Rozważyć zastosowanie trybu przechwytywania z jak najniższą rozdzielczością i jak najwyższą częstotliwością odświeżania. Niska rozdzielczość oznacza mniej pikseli do przetworzenia, a wysoka częstotliwość odświeżania to mniejsze opóźnienie bufora.

  • Dźwięk. Rozważyć rezygnację z rejestracji dźwięku. Dźwięk, który musi być zsynchronizowany z obrazem, wymaga większego bufora odtwarzania, który powoduje większe opóźnienie.

Zmniejszenie opóźnienia w sieci IP

Wiele zaleceń dotyczących kamer ma na celu ograniczenie całkowitej ilości danych przesyłanych przez sieć IP. W większości przypadków właśnie te ograniczenia w największym stopniu przyczyniają się do całkowitego opóźnienia. Jeżeli przepustowość sieci IP jest wysoka, wiele z powyższych zaleceń nie obowiązuje. Należy sprawdzić, czy użytkowana sieć IP ma dobrą jakość usług, i czy wszystkie przeskoki w sieci są skonfigurowane tak, aby spełnić zapotrzebowanie na transmisję danych wizyjnych. Sprawdzić, czy gwarantowana jest przepływność w sieci IP zdolna obsłużyć dane wyjściowe z kamery.

Zmniejszenie opóźnienia po stronie klienta

Usprawnienia po stronie klienta mają duży wpływ na całkowite opóźnienie, jednak wiele można w tym zakresie zrobić.

Procesor i karta graficzna. Procesor odgrywa kluczową rolę w opóźnieniu po stronie klienta. Należy stosować dobry procesor o wydajności wystarczającej do jednoczesnego przetwarzania strumienia wizyjnego i obsługi innych żądań. Należy stosować dobrą kartę graficzną z najnowszym oprogramowaniem i obsługą dekodowania.

Przeglądarka / system VMS. Sprawdzić, czy stosowana przeglądarka nie ma niepotrzebnie długiego bufora odtwarzania; należy mieć na względzie kompromis dotyczący jittera obrazu.

Wyświetlacz. Należy stosować wyświetlacz o możliwie wysokiej częstotliwości odświeżania. Aby uzyskać komfortowy podgląd na żywo (niewpływający jednak na opóźnienie), należy dostosować częstotliwość pracy ekranu do wielokrotności częstotliwości odświeżania obrazu w kamerze. Przykładem niech będzie ustawienie 60 Hz dla trybu 30 obrazów/s lub 50 Hz dla trybu 25 obrazów/s.