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