Cwiczenie 2

Transkrypt

Cwiczenie 2
Cwiczenie
2
Narzedzia programowe do transmisji strumieni w sieciach
lokalnych -VIC/VAT/SVideo
Tomasz Mojsa
2.1 Cel cwiczenia
Celem cwiczenia jest poznanie podstawowego oprogramowania dla sieci Internet umo_zliwiajacego
transmisje, kodowanie i dekodowanie strumieni multimedialnych. Omowiono tak_ze przyklad
dzialania prostego algorytmu kompresji.
2.2 Wprowadzenie do tematyki cwiczenia
Systemy multimedialne w sieciach komputerowych moga byc budowane w oparciu o rozwiazania
sprzetowe lub te_z rozwiazania programowe. Przykladem systemow multimedialnych opartych o
platforme sprzetowa moga byc systemy takie jak NPoint-6000 rmy TSL czy te_z ATV/AVA rmy
Fore. Sa to jednak rozwiazania kosztowne i wykraczajace poza niezbedne minimum. Istnieje
tak_ze oprogramowanie zapewniajace programowa kompresje i dekompresje strumieni multimedialnych bez u_zycia tak specjalistycznych urzadzen.
2.2.1 Ogolna charakterystyka zagadnien i problemow pojawiajacych
sie w przesylaniu strumieni multimedialnych w sieciach komputerowych
Problem Gwarantowanej Jakosci stanowi podstawowe wyzwanie w budowie wszystkich systemow
multimedialnych. Dostarczanie cyfrowo zapisanej informacji multimedialnej wymaga rozwiazania
nastepujacych problemow:
1
Zapewnienienia gwarantowanego pasma w sieci lub dynamiczna adaptacje do zmian w jej
przepustowosci
Zapewnienienia gwarantowanego czasu procesora przeznaczonego do dekodowania i kodowania dzwieku i obrazu,
Dodatkowe wymagania jakie musza spelniac systemy multimedialne to:
Precyzyjny dobor algorytmow kompresji,
Zapewnienie synchronizacji strumieni audio i video,
Zapewnienie mo_zliwosci zestawiania polacze
n.
2.2.2 Problem "gwarantowanej jakosci" w sieciach komputerowych
Wiekszosc systemow multimedialnych budowana jest w taki sposob, aby traala do najszerszego
grona odbiorcow. Pociaga to za soba koniecznosc wykorzystywania najbardziej rozpowszechnionych protokolow sieciowych. Typowym protokolem wykorzystywanym w transmisji strumieni
jest protokol UDP/IP. Protokol IPv4 nie zapewnia gwarantowanej przepustowosci i zestawienia
permanentnego lacza o stalych zarezerwowanych parametrach. W przypadku du_zego obciaz_ enia
sieci wystepuja opoznienia w przesylaniu informacji lub wrecz jej gubienie i brak mo_zliwosci
odtworzenia przesylanych fragmentow ramek. Niektore aplikacje dla ominiecia tego ograniczenia
wykorzystuja protokol na poziomie aplikacji - RTP. Poniewa_z RTP jest zintegrowany z aplikacjami mo_ze dzialac on nad takimi stosami protokolow jak UDP/IP, RMTP/RTIP oraz AAL5/ATM.
Znakomita wiekszosc systemow multimedialnych pracuje nad protokolem UDP/IP u_zywajac
wlasnie RTP. Czesto mo_zliwa tak_ze jest te_z praca tego protokolu w trybie transmisji indywidualnej i grupowej(w tym integracja z MBONE'm).
MBONE to wirtualna siec, ktora sklada sie z domen transmisji grupowej, ktore moga bezposrednio
wspierac rozglaszanie (np. sieci Ethernet), polaczonych poprzez tunele typu punkt-punkt pomiedzy
zwykle jedna wybrana maszyna w danej domenie. Pakiety transmisji grupowej sa opakowywane
na czas transmisji przez tunele w taki sposob, z_ e sa one postrzegane na czas transmisji przez
tunel jako pakiety unicastowe (dolaczany jest inny header IP, adres przeznaczenia jest ustawiany
jako adres konca tunelu (multicastowego routera) w innej domenie)
2.2.3 Problem "gwarantowanego czasu procesora"
Problem ten w przypadku wiekszosci systemow operacyjnych ogolnego przeznaczenia pozostaje
nadal otwarty. Ilosc aplikacji dzialajacych na danej maszynie wplywa znaczaco na szybkosc i
jakosc obrazow. Dla zapewnienia odpowiedniej jakosci konieczne byloby ingerowanie w przydzielanie czasu procesora aplikacjom. Nie w ka_zdym systemie operacyjnym jest to mo_zliwe.
2.2.4 Metody kompresji danych i podstawowe informacje na temat
statycznych obrazow
Ka_zdy statyczny obraz mo_ze byc zasadniczo charakteryzowany przez 4 wartosci:
2
Szerokosc w pikselach,
Wysokosc w pikselach,
Liczba kanalow. Ka_zdy kanal w wielokanalowym obrazie musi miec te same wymiary,
Rodzaj danych u_zywanych do opisu jednego kanalu. Typowo jest to bit, 1 lub 2 bajty.
Niektore formaty narzucaja scisle ograniczenie na wymiary obrazu. Obrazy w ro_znych formatach
moga byc przechowywane sekwencyjnie wedlug kanalu lub wedlug kolejnosci piksli. Obrazy,
zawierajace 8 lub 16 bitowe dane do opisu piksla w 1 kanale, sa typowo przechowywane w
sekwencyjnie wg. porzadku. Obrazy do opisu 1 kanalu u_zywajace 1 bit typowo sa zapisywane w
sekwencyjny sposob kanalami. Dodatkowo odgrywa role przestrzen kolorow (Color Space) . Dla
RGB kanaly sa przechowywane w postaci najpierw czerwony, zielony, niebieski. Dla przestrzeni
kolorow YCbCr luminancja jest w pierwszym kanale, chrominancja Cb/Cr w drugim i trzecim.
Luminancja jest to wielkosc fotometryczna okreslajaca gestosc natez_ enia swiatla,
Chrominancja jest to kalorymetryczna cecha barwy okreslana jako roz_ nica pomiedzy nia a
biela odniesienia o tej samej jaskrawosci (luminancji).
Do najbardzie rozpowszechnionych formatow plikow w jakich przechowywuje sie kompresowane
sekwencje obrazu nale_za:
CellB,
JPEG,
H261,
MPEG-1.
2.2.5 CellB
Cechy charakterystyczne przykladowego opisanego poni_zej de/kodera CellB to:
Szybkie dekodowanie i wyswietlanie zwlaszcza na indeksowanych w buerach ramek,
Male wykorzystanie CPU,
Dobrej jakosci obraz.
Kompresja wewnatrz ramki odbywa sie na 4x4 blokach piksli u_zywajac tzw. cel kodow. Kompresja miedzy ramkami odbywa sie u_zywajac skip kodow.
Obraz musi miec rozmiar bedacy wielokrotnoscia 4x4. Kompresja odbywa sie od strony lewej
do prawej, od gory do dolu. Jesli kompresor odnajdzie tzw. celce (fragment 4x4 piksle) bez
referencji do poprzedniej celce w poprzednim obrazie koduje ja u_zywajac czterobajtowy kod
celki. Kod celki koduje dwa kolory (wyra_zone poprzez Chrominacje Cb/Cr i luminacje Y0/Y1)
3
Indeks do
tabeli Cb/Cr
16 bit mask
Indeks do
tabeli Y/Y
Rysunek 2.1: Cell kod przypisywany celce 4x4
Byte 0
Byte 1
Cb value
Cr value
Rysunek 2.2: Wektor w tabeli chrominancji
i 16 bitowa maske, okreslajca, ktore z tych wartosci winny byc u_zyte do reprezentacji ka_zdego
z 16 pikseli. Dwa kolory sa kodowane w nastepujacy sposob: srednia z Cb i Cr jest obliczana
dla bloku 4x4, nastepnie jest obliczany indeks do tablicy 256 wektorow, w ktorej ka_zdy wektor
sklada sie z pola o wartosciach odpowiednio Cb i Cr (po 1 bajcie).
Indeks do danego wektora, ktorego wartosci najbardziej odpowiadaja wartosci sredniej chrominancji w danej celce jest zapisywany do 3 bajtu kodu celki. 256 wektorow jest czesto wybierane
na podstawie algorytmu zwanego (Adaptive) Colormap Selection, ktory tworzy 256 wektorow o
kolorach u_zywanych w obrazie. Nastepnie oblicza sie luminancje srednia dla danej celce i dzieli
wartosci luminancji w niej na te poni_zej sredniej i powy_zej wartosci. Potem liczy sie indeks do
tablicy 256 wektorow, gdzie 1 bajt to wartosc srednia z wartosci poni_zej sredniej luminancji, a 2
bajt to wartosc srednia z wartosci powy_zej sredniej luminancji. Pierwszy kolor (numer 1) danej
cel to: 1 bajt luminancji i wartosci wektora chrominacji. Drugi kolor (numer 2)celki to: 2 bajt
luminancji i wartosci wektora chrominacji.
Byte 0
Byte 1
Y0 value
Y1 value
Rysunek 2.3: Wektor w tabeli luminancji
Bity wektora maski sa ustawiane na 0 lub 1 w zale_znosci czy luminancja jest powy_zej czy poni_zej
sredniej w celce i wtedy kolor jest dobierany dla ka_zdego piksla numer 1 lub numer 2. Daje to w
efekcie 32 bity informacji na 16 piksli czyli poziom kompresji 2bity/piksel. Skip kody 1 bajtowe
daja dodatkowo kompresje srednio 0.8bit/piksel . Umo_zliwiaja one nie kodowanie celek, ktore sa
takie same jak w poprzedniej ramce, zwyklym algorytmem, lecz tylko zapamietywanie, z_ e nale_zy
powtorzyc odpowiednia cel z poprzedniej ramki.
4
2.2.6 Zestawianie polaczen i koordynacja pracy systemow
Zestawianie polaczen i koordynacja pracy systemow odbywa sie czesto korzystajac z pomocy specjalnie zaprojektowanych szyn. Przykladem takiej szyny mo_ze byc Conference Media Bus systemu
VIC/VAT. Szyna taka jest czesto implementowana przez socket multicastowy. W ten sposob dochodzi do wymiany informacji pomiedzy VIC a VAT. Synchronizacja obrazu z dzwiekiem ma
miejsce dzieki wysylaniu specjalnych znacznikow na temat opoznien.
2.3 Przebieg cwiczenia
Do przeprowadzenie cwicznia potrzebne jest nastepujace oprogramowanie :
SunVideo
VIC
VAT
2.3.1 Zadanie A - Obserwacja strumienia generowanego przez SunVideo (bez strumienia audio)
Nale_zy zaobserwowac wielkosc strumienia oraz ilosc ramek na sekunde dla nastepujacych strumieni:
Strumie
n typu Direct,
Strumie
n typu GrayScale,
Strumie
n typu CellB,
Strumie
n typu JPEG,
Strumie
n typu MPEG-1.
2.3.2 Zadanie B - Obserwacja strumienia generowanego u_zywajac
SunVideo wraz ze strumieniem audio
Nale_zy zaobserwowac wielkosc strumieni w poszczegolnych formatach oraz zanotowac ilosc ramek
na sekunde. Wyciagnac wnioski na temat wzrostu wielkosci calkowitego strumienia.
2.3.3 Zadanie C - Obserwacja strumienia generowanego u_zywajac
SunVideo (bez strumienia audio) - 8bitow
Nale_zy zaobserwowac wielkosc strumienia oraz ilosc ramek na sekunde oraz wyciagnac wnioski
na temat wielkosci calkowitego strumienia dla obrazu 8 bitowego.
5
Rysunek 2.4: SunVideo
2.3.4 Zadanie D - Obserwacja strumienia generowanego u_zywajac
SunVideo (wraz ze strumieniem audio) - 8bitow
Nale_zy zaobserwowac wielkosc strumienia oraz ilosc ramek na sekunde oraz wyciagnac wnioski
na temat wzrostu wielkosci calkowitego strumienia 8 bitowego.
2.3.5 Zadanie E - Obserwacja strumienia generowanego u_zywajac
VIC (bez strumienia audio)
Strumien typu JPEG
Strumien typu MPEG1
Strumien typu h261
6
Rysunek 2.5: VIC
2.3.6 Zadanie F - Obserwacja strumienia audio generowanego u_zywajac
VAT
Nale_zy skongurowac program VAT tak aby generowal odpowiednio:
Strumie
n typu PCM
Strumie
n typu GSM
Po dokonaniu konguracji zmierzyc wielkosc strumienia audio.
2.3.7 Zadanie G - Obserwacja zmiany generowanego strumienia w
zale_znosci od zawartosci ruchomego obrazu
Celem zadania jest skierowanie kamery koleno w miejsca, o du_zej ilosci ruchu, a nastepnie malej
ilosci ruchu oraz obserwacja jak miedzyramkowa kompresja w algorytmach CellB oraz MPEG-1
wplywa na wielkosc generowanego strumienia.
2.4 Zestaw pytan
1. Jaka jest szerokosc pasma generowanego jest podczas transmisji strumienia multimedialnego MPEG-1 ?
7
Rysunek 2.6: VAT
2. Jak mo_zna zmniejszyc szerokosc pasma generowanego poprzez koder MPEG-1?
3. Jak procentowo wzrasta szerokosc pasma generowanego podczas transmisji strumienia multimedialnego MPEG-1 wraz z dzwiekiem?
4. Jaka jest szerokosc pasma generowanego korzystajac z algorytmu kompresji typu JPEG?
5. Jaka jest szerokosc pasma generowanego bez u_zycia jakichkolwiek algorytmow kompresji?
6. Dla jakiego rodzaju obrazow kodowanych algorytmem CellB uzyskuje sie najwiekszy poziom
kompresji?
2.5 Literatura
[1] W.F Schreibe, Fundamentals of Electronic Imaging Systems, Second Edition (SpringerVerlag, 1991),
[2] R.W.G Hunt, The Reproduction of Colour in Photography, Printing and Television, Fourth
Edition (Fountain Press 1987),
[3] Charles A. Ponton, A Technical Introduction to Digital Video, John Wiley and Sons, 1996,
[4] Charles A. Poynton, Color FAQ www.inforamp.net/~poynton,
8
[5] Beginner's Guide to VIC, http://www-itg/mbone/vic.begin.html,
[6] Beginner's Guide to VAT, http://www-itg/mbone/vat.begin.html,
9

Podobne dokumenty