// you’re reading...

Przydatne informacje

Metody zapisu obrazu z kamer

Sygnał, który jest przekazywany przez przetwornik to czystym odwzorowaniem cyfrowym bez kompresji. Charakteryzuje się dużym strumieniem danych. Po zapisie bez kompresji zajmuje zbyt wiele pamięci i jego zapis jest nieekonomiczny. Doprowadziło to do rozwoju różnych metod kompresji. Są to te same algorytmy, które używamy do kompresji filmów DVD oraz DivX.

Kompresja mpeg4
MPEG-4, wprowadzony pod koniec 1998 jest oznaczeniem grupy standardów kodowania audio i wideo wraz z pokrewnymi technologiami, opracowanej przez grupę ISO/IEC MPEG. Główne zastosowania MPEG-4 to media strumieniowe w sieci Web, dystrybucja CD, wideokonferencje i telewizja.
MPEG-4 przejął wiele elementów standardów MPEG-1, MPEG-2 i pokrewnych, dodając nowe możliwości takie jak (rozszerzone) wsparcie VRML dla renderowania 3D, zorientowane-obiektowo pliki złożone (zawierające obiekty audio, wideo i VRML), wsparcie dla technologii DRM (zdefiniowanych jako zewnętrzne standardy) i różnoraką interaktywność.

Działanie kodera mpeg4 polega na tworzeniu klatek kluczowych zawierających pełną informację o obrazie, a następnie generowaniu kilku, kilkunastu klatek zawierających tylko zmiany w stosunku do poprzedniej klatki. Taka metoda zapisu powoduje, że mpeg4 nadaje się głównie do zapisu strumienia wideo oraz nie pozwala na dokładne przeglądanie klatek. Rozpoczęcie odtwarzania może się odbyć tylko w miejscu klatki kluczowej. Zaletą kompresji mpeg4 jest możliwość umieszczenia ścieżki dźwiękowej w strumieniu.

Kodowanie do mpeg4 ma również ograniczenia w stosunku do rozdzielczości. Ze względu na dużą moc obliczeniową potrzebną zarówno do zapisu jak i odtwarzania, nie stosuje się większej rozdzielczości zapisu niż PAL. Wyklucza to kompletnie zastosowanie kodowanie mpeg4 w kamerach megapiksleowych.

Kompresja mjpeg
Algorytm kompresji używany przez JPEG jest algorytmem stratnym, tzn. w czasie jego wykonywania tracona jest bezpowrotnie część pierwotnej informacji.
Algorytm przebiega następująco [5]:
Obraz jest konwertowany z kanałów czerwony-zielony-niebieski (RGB) na jasność (luminancję) i 2 kanały barwy (chrominancje). Ludzie znacznie dokładniej postrzegają drobne różnice jasności od drobnych różnic barwy, a więc użyteczne jest tutaj użycie różnych parametrów kompresji. Krok nie jest obowiązkowy (opcjonalnie można go pominąć).
Wstępnie odrzucana jest część pikseli kanałów barwy, ponieważ ludzkie oko ma znacznie niższą rozdzielczość barwy niż rozdzielczość jasności. Można nie redukować wcale, redukować 2 do 1 lub 4 do 1.
Kanały są dzielone na bloki 8×8. W przypadku kanałów kolorów, jest to 8×8 aktualnych danych, a więc zwykle 16×8.

Na blokach wykonywana jest dyskretna transformata kosinusowa (DCT). Zamiast wartości pikseli mamy teraz średnią wartość wewnątrz bloku oraz częstotliwości zmian wewnątrz bloku, obie wyrażone przez liczby zmiennoprzecinkowe. Transformata DCT jest odwracalna, więc na razie nie tracimy żadnych danych.

Zastąpienie średnich wartości bloków przez różnice wobec wartości poprzedniej. Poprawia to w pewnym stopniu współczynnik kompresji.
Kwantyzacja, czyli zastąpienie danych zmiennoprzecinkowych przez liczby całkowite. To właśnie tutaj występują straty danych. Zależnie od parametrów kompresora, odrzuca się mniej lub więcej danych. Zasadniczo większa dokładność jest stosowana do danych dotyczących niskich częstotliwości niż wysokich.

Współczynniki DCT są uporządkowywane zygzakowato, aby zera leżały obok siebie.

Współczynniki niezerowe są kompresowane algorytmem Huffmana. Są specjalne kody dla ciągów zer.
Użyta transformata powoduje efekty blokowe w przypadku mocno skompresowanych obrazków.
Kompresja mjpeg to zbiór klatek tworzony ze zdjęć kompresowanych metodą jpeg. W przypadku strumienia JPG przesyłane są kolejne klatki. Nie mamy możliwości zapisu dźwięku. Możliwe jest używanie materiału o dowolnej rozdzielczości co znacznie podnosi elastyczność algorytmu. Kompresja mjpeg pomimo wielu zalet generuje dość duży strumień danych w sieci Ethernet. W zamian za to umożliwia poklatkowe szczegółowe przeglądanie materiałów w dowolnym miejscu osi czasowej.
Mjpeg jest najpopularniejszą kompresją stosowaną w kamerach IP.

Kompresja przyszłości H.264
H.264-AVC (ang. Advanced Video Coding) – standard kodowania sekwencji wizyjnych o bardzo małych przepływnościach, przyjęty w roku 2003 jako 10 część standardu ISO MPEG-4 oraz jako rekomendacja ITU-T H.264. Projekt x264 zajmuje się stworzeniem otwartej implementacji tego kodeka.
Efektywność kompresji kodera AVC dzięki wprowadzeniu nowych rozwiązań jest o wiele większa niż poprzednich standardów: MPEG-1, MPEG-2 czy MPEG-4 ASP (popularne implementacje to DivX i Xvid).
Do najważniejszych innowacji AVC można zaliczyć: predykcja między-obrazowa z adaptacyjnym podziałem obrazu na bloki o rozmiarze 4×4, 4×8, 8×4, 8×8, 8×16, 16×8 lub 16×16 punktów, transformacja całkowitoliczbowa, predykcyjne kodowanie wewnątrz-obrazowe, estymacja wektorów ruchu z dokładnością do 1/4 odstępu próbkowania, długookresowa pamięć obrazów, kodowanie entropijne uniwersalnymi kodami o zmiennej długości (UVLC) lub adaptacyjne kodowanie arytmetyczne (CABAC).
Ocenia się, że standard AVC w niedługim czasie wyprze poprzednie standardy, szczególnie w zastosowaniach telewizji cyfrowej, Video On Demand oraz przechowywania sekwencji wizyjnych na nośnikach cyfrowych (CDROM, DVD, Blu-ray). Również w monitoringu kompresja H.264 zdobywa coraz większą popularność.

W kodowaniu H.264 otrzymujemy materiał o stałej wielkości. W przypadku obrazów statycznych mamy maksymalne możliwe odwzorowanie szczegółów. W momencie wprowadzenia ruchu na obserwowany obraz, jakość spada w celu utrzymania stałej wielkości strumienia.

Czołowi producenci kamer zapowiedzieli na rok 2008 premiery pierwszych kamer z kodowanie H.264, AVC.

Metody strumieniowania obrazu
Kamery IP oprócz standardowych funkcji monitoringu mogą służyć również jako źródło obrazu do strumieniowania, czyli przesyłu obrazu do wielu użytkowników w czasie rzeczywistym. Przykładem może być kamera umieszczona w centrali firmy i obraz niej prezentowany użytkownikom firmowej strony WWW. Obraz musi być dostępny szybko w wielu kopiach i jakościach, tak aby każdy użytkownik niezależnie od posiadanego łącza mógł go zobaczyć.

Media strumieniowe to technika dostarczania informacji multimedialnej na życzenie. Najpopularniejsze media strumieniowe opierają się na transmisji skompresowanych danych multimedialnych poprzez Internet. Nie należy mylić mediów strumieniowych z multimedialnymi formatami plików (AVI).
Technika strumieniowa opiera się na idei strumienia pakietów, interpretowanych po kolei w momencie ich odbioru. Każdy pakiet zawiera ilość informacji wystarczającą do otworzenia pewnego fragmentu prezentacji multimedialnej. Bez zastosowania mediów strumieniowych, konieczne jest przesłanie całego pliku z prezentacją i dopiero wtedy można ją odtwarzać.

Aby dostarczyć medium strumieniowe trzeba razem złożyć wiele elementów całego systemu. Najpierw używa się specjalnych kodeków stosujących algorytmy kompresji, które kodują dokument multimedialny do postaci zdatnej do transmisji przez Internet. Następnie dane są przekazywane na serwer, który dostarcza je do wszystkich odbiorców. Wszyscy klienci posiadają odtwarzacze, które składają odebrane z serwera pakiety w gotową prezentację. Potem jest ona dekodowana przez kolejny zestaw kodeków i odtwarzana dla użytkownika.

Wyróżnia się dwa rodzaje dostępu do mediów strumieniowych:

  • na żywo (ang. live) – transmitowane są dane, które od razu docierają do wszystkich użytkowników z jakiegoś odległego od nich miejsca na świecie, np. transmisja koncertu na żywo.
  • na życzenie (ang. on demand) – serwer ma bazę zarejestrowanych danych multimedialnych.
  • Każdy użytkownik, wybiera sobie, który pokaz multimedialny od jakiego momentu chce oglądać. Przykładem może być tutaj wypożyczalnia filmów, w której wybieramy sobie jeden z nich i oglądamy go przez Internet.

    Kluczem do skutecznego zastosowania mediów strumieniowych są kodeki. Zawierają one bardzo wyrafinowane algorytmy matematyczne, które naśladują pracę ludzkiego mózgu podczas odbierania treści multimedialnej. Kodek rejestruje tylko te informacje, które postrzega nasz umysł, a zbędne odrzuca. Wybrane w ten sposób informacje są przesyłane przez sieć.

    Ważny jest też problem buforowania. Internet nie został stworzony do transmisji w czasie rzeczywistym. Pakiety często podróżują wieloma drogami, co powoduje zamianę ich kolejności, albo docieranie pakietów do użytkownika w dużych porcjach. W efekcie konieczne jest buforowanie komunikacji – nowe pakiety nie są od razu wyświetlane, tylko umieszczane są w specjalnym buforze, gdzie czekają na swoją kolej. Jeżeli z jakiegoś powodu któryś pakiet się spóźni, można odtworzyć jeden z pakietów czekających w buforze. Dzięki temu prezentacja może być odtwarzana płynnie. Ceną za to jest występowanie pewnego opóźnienia odbioru.

    Problem mediów strumieniowych jest bardzo złożony i nie został jeszcze skutecznie rozwiązany. Powoduje to, że istnieje wiele różnych protokołów i formatów przesyłu mediów strumieniowych.

    Discussion

    Comments are disallowed for this post.

    Comments are closed.