Predavanje 2 Objektno orijentisane multimedije Sadraj o o
Predavanje 2 Objektno orijentisane multimedije
Sadržaj o o Kompresija, modulacija, dometi, portabilnost i nastanak unakrsnih platformi Softversko nasleđe, objekti, trenutne promenljive i metodi Apstraktne i konkretne klase, virtuelni metodi i dinamičko vezivanje Radno polje – okvir multimedije
OBJEKTNO ORIJENTISANE MULTIMEDIJE o Postoji prirodna veza između: n n multimedijalnog programiranja i jezika orijentisanog na objektno programiranje. o Mnogi objektno orijentisani programski jezici pokazali su se u praksi delotvornim, naročito u izradi komercijalnih aplikacija. o o Takvi jezici su, na primer: Smaltalk, C"M", Objective C, Eiffel itd. O projektovanju i objektno orijentisanom programiranju postoji brojna literatura. o U narednom delu teksta nastojaće se osvetliti: n n neki pojmovi objektno orijentisane tehnologije, sa napomenom da ovi sadržaji nisu namenjeni korisnicima da služe kao vodič u njenoj praktičnoj primeni.
KOMPRESIJA, MODULACIJA, DOMETI, PORTABILNOST I NASTANAK UNAKRSNIH PLATFFORMI o o o Kompresija: I ranije su multimedijalna okruženja za programere bila pravi izazov. Prvo: dugogodišnji koncepti uključujući: o audio i o video produkciju, o animaciju i o muziku kreatorima programa su bili novina za koju nisu imali odgovarajuću obuku.
Kompresija, modulacija, dometi, portabilnost i nastanak unakrsnih platfformi o Drugo: Multimedijalne aplikacije često zahtevaju (uključuju) specijalni hardver i interfejse za operativne procedure. o Dobra strana objektno orijentisanog programiranja je: o mogućnost kompresije podataka, o što programerima olakšava posao, tj. oslobađa ih mnogih detalja koji se odnose na određene medije i hardver. o Hardver – predstavlja fizičke komponente računarskog sistema, uključujući sve periferne računarske komponente jednog računarskog sistema (na primer: štampač, skener. . ). o Interface – mesto ukrštanja (elektronski uređaj koji povezuje dva druga uređaja koji se ne mogu direktno priključiti na računar).
Kompresija, modulacija, dometi, portabilnost i nastanak unakrsnih platfformi o Modulacija: Oprema koja se danas koristi u audio i video studijima bazirana je na digitalnoj tehnologiji, što omogućuje programerima: o o prožimanje kompletnog proizvoda počev od audio i video miksa do izdavačkog oblikovanja i uređaja za specijalne efekte. Objektno orijentisano programiranje je pogodno: o o za čuvanje složenih interfejsa, za opsluživanje medija u modularnom obliku što korisniku omogućuje lako korišćenje aplikacija.
Kompresija, modulacija, dometi, portabilnost i nastanak unakrsnih platfformi o Domet: Priroda multimedijskih aplikacija, za razliku od mnogih ranije istraženih oblasti, zahteva ubrzan razvoj o o Multimedijski sistemi sa bazama podataka, virtuelna okruženja, desktop konferencijski sistemi i druge aplikacije § moraju se prilagođavati promenama tehnologije interfejsa, medijima i hardverskim platformama. Objektno orijentisano programiranje nudi mehanizme koji omogućuju proširenje postojećih kodova.
Kompresija, modulacija, dometi, portabilnost i nastanak unakrsnih platfformi o o Portabilnost i nastanak unakrsnih platformi Pod idealnim uslovima multimedijske aplikacije treba: o o da rade na različitim platformama kao i da tolerišu hardverske varijacije u okviru platformi. o Portovanje (prebacivanje) sa jedne na drugu platformu ili dodavanje podrške za eventualno novi hardver ne bi trebalo da zahteva ponovnu izradu aplikacije. o Objektno orijentisani interfejsi zavisnost platformi mogu učiniti eksplicitnim i tako pojednostaviti nastanak i razvoj unakrsnih platformi sa ciljem dobijanja heterogene platforme.
SOFTVERSKO NASLEĐE, OBJEKTI, TRENUTNE PROMENLJIVE I METODI o o Softversko nasleđe Multimedijske aplikacije su u punom zamahu svog razvoja, a mnogi programeri softvera su bili suočeni sa problemom nasleđa, tj. potrebom da ostvare kompatabilnost sa ranijim aplikacijama. o Međutim, multimedijalne prezentacije omogućuju da se krene od početka. o Operatori imaju relativnu slobodu da istražuju nove tehnike kao što je objektno orijentisan programski jezik.
Softversko nasleđe, objekti, trenutne promenljive i metodi o Objekti, trenutne promenljive i metodi o Često se kaže da objekti kapsuliraju, tj. da je predmet programskog jezika da identifikuje: o kolekciju podataka i o kolekciju radnji. o Podatke nazivamo trenutne objektne promenljive, a operacije su njihovi metodi.
APSTRAKTNE I KONKRETNE KLASE, VIRTUELNI METODI I DINAMIČKO VEZIVANJE o Apstraktne klase n n o o o grupišu metode i instantne varijable koje su podeljene na nekoliko podklasa, ali njihova definicija je nekompletna u smislu što je metod implementacije bar delimično zavisan od podklasa. Na primer, konkretne klase su potpuno definisane. Metod zavisnosti ili onaj čija je implementacija preskočena putem podklasa naziva se virtuelnim metodom. Jezici koji doživljavaju virtuelni metod zahtevaju dinamičko vezivanje, sposobnost da se u radu povezuju sa kodom koji obezbeđuje implementaciju metoda
RADNO POLJE – OKVIR MULTIMEDIJE o Da bi se prenele ideje na objektno orijentisano multimedijsko programiranje treba napraviti radni okvir koji će obuhvatati: o o o bitne objekte i operacije koje se javljaju u multimedijskim aplikacijama. Zamislimo radni okvir koji ima mogućnost: o međusobnog povezivanja klasa koje su: n napravljene i specijalizovane za različite multimedijske platforme.
Radno polje – okvir multimedije o Aplikacije koriste apstraktne klase adaptiraju se: o na različite multimedijske platforme, o na njihov rad i funkcionalnost, pa su tako i veoma prenosive. o Ostvariti mogućnost da se aplikacije adaptiraju na nove platforme je važan cilj, jer se platforme stalno razvijaju sa razvojem hardvera i novih standarda.
Radno polje – okvir multimedije Aplikacioni interfejs o Šematski i idealizovani prikaz rada radnog okvira, po čemu je on značajan Apstrakna klasa Specijalizacija Apstraktna klasa Konkretna klasa Platforma 1 Platforma 2 Platforma 3 o Slika 1. Blok šema za prikaz okoline
Radno polje – okvir multimedije Aplikacijski interfejs Apstrakna klasa Specijalizacija o Apstraktna klasa Konkretna klasa Platforma 1 Platforma 2 Platforma 3 Ovde, apstraktne klase radnog okvira predstavljaju jedan Aplikacijski Programski Interfejs, ill (API), koji se nalaze na višestrukim platformama.
Radno polje – okvir multimedije Aplikacioni interfejs Apstrakna klasa Specijalizacija o o Apstraktna klasa Konkretna klasa Platforma 1 Platforma 2 Platforma 3 Svaka platforma (kombinacija hardvera i softverskog operativnog sistema), nudi razne vrste nižih usluga, usluga preko sistema programskih interfejsa koji zavise od platforme.
Radno polje – okvir multimedije o Primer tih usluga uključuje raspoređivanje i sinhronizacijske mehanizme za: o o obradu u realnom vremenu, memorisanje formata i memorisanje pristupnih operacija, kao i mrežne protokole za prenos audio i video podataka. Kada je radni okvir specijalizovan uvode se konkretne klase, kako bi se implementirao API u vezi platforme o kojoj je reč.
Radno polje – okvir multimedije o Sam API (Aplikacijski Programski Interfejs), konkretne i apstraktne klase i platforma zajedno čine specifičnu sredinu - okruženje multimedijalnog programiranja. o Aplikacije koriste API mogu biti prenete iz jedne sredine u drugu (Slika 2) i ako su nezavisne u odnosu na podvučenu platformu. Aplikacije Klase Platforma 1 Slika 2
Radno polje – okvir multimedije o Scenario koji je upravo opisan u praksi se veoma pojednostavljuje. Ukoliko je izbor platformi sužen, prenosivost aplikacije će najverovatnije biti ograničena. o Faktori koji sužavaju prenosivost aplikacije uključuju sledeće: o Prvo, platforme ne treba da imaju mogućnosti, pa tako izvesni delovi API mogu biti podržani od strane nekih platformi, ali ne od svih. o Drugo, performanse - rad platformi se razlikuje, pa neke operacije mogu biti izvodljive na nekim platformama, a na nekim ne. o Treće, postoji mogućnost za aplikacije da bajpasiraju API da bi pristupile interfejsu koji je zavisan od platforme.
Radno polje – okvir multimedije o Konačno, ne postoji konsenzus o stepenu podrške sistema za multimedijalno programiranje, umesto toga projekat mreže i rad operativnog sistema je aktuelna oblast istraživanja. o Kako ima puno varijacija kod rada na nižem nivou, može se ispostaviti da su: n objekti i radnog okvira ne odgovarajući ili n neefikasni za neke platforme. o Tako, možda bi mogli zaključiti da je najpozitivnija strana multimedijskog radnog okvira to što ohrabruje ostvarivanje prenosivosti, ali još uvek ne garantuje.
Radno polje – okvir multimedije o o Kao i svaka dobra programska biblioteka, radni okvir treba da je: o robustan, o dobro dokumentovan i o kompletan. Ostali zahtevi, koji se više odnose na multimedijsko programiranje uključuju: o Ekonomičnost koncepta o Otvorenost o Ispitivanje o Distribuiranje o Merljivost o Interfejs visokog stepena
Radno polje – okvir multimedije o Ekonomičnost koncepta o Radni okvir multimedia treba da se zasniva na malom broju koncepata, u suprotnom postoji opasnost da se dobije bezbroj medijski-specifičnih detalja. o Naime, veoma je važno identifikovati bilo koji opšti koncept putem kojeg bi se primenili određeni tipovi medija.
Radno polje – okvir multimedije o o Otvorenost Kada je reč o ovom svojstvu multimedijskog radnog okvira, konstrukcija bi trebala da bude takva da: n n n o omogućuje njegovo proširenje u smislu mogućnosti uključivanja novih tipova medija, reprezentovanja novih podataka, kao i novih hardverskih sposobnosti kada one postanu dostupne. Ispitivanje Radni okvir multimedija treba da specificira interfejs za istraživanje okruženja u smislu mogućnosti. Aplikacije tada mogu da prepoznaju: n n nedostatak svoje funkcionalnosti i da prilagode ponašanje.
Radno polje – okvir multimedije o Distribuiranje o Multimedijski radni prostor bi trebalo od bude od pomoći kod distribuiranja aplikacija, tako što će olakšati tu distribuciju. o Preciznije, objekti u radnom okviru bi trebalo da odgovaraju jedinicama ili podsistemima za lako distribuiranje. o Mnoge buduće multimedijske aplikacije će se verovatno distribuirati, tako da je: n n korisnost radnog okvira u mnogome smanjena i dolazi u konflikt sa distribucijom.
Radno polje – okvir multimedije o o o Merljivost Multimedijski radni okvir treba da podržava predstavljanje mernih medija. Jednom kada je medij u digitalnoj formi poboljšanja u kvalitetu i sposobnosti su vezane za napredak hardvera. Na primer, n ranije verzije procesora su mogle da operišu sa digitalnim videom samo na četvrt ekrana i u rezoluciji od nekoliko frejmova u sekundi, kundi dok su n danasnje verzije sposobne da rade sa čitavim ekranom u rezoluciji od 30 frejmova u sekundi. Ako su medijske reprezentacije merljive, kvalitet aplikacije se može uvećati poboljšanjima platformskih performansi. Frame – Fizičke celine na koje se može podeliti veb stranica
Radno polje – okvir multimedije o o Interfejs visokog stepena Multimedijski radni okvir treba da obezbedi interfejs visokog stepena za: n n n o sinhronizaciju medija, kompoziciju medija, kontrolu uređaja, integrisanje baze podataka i tekuće aktivnosti procesnih medija. Ove operacije su glavne kod multimedijskog programiranja, pa ukoliko se interfejs visokog nivoa može sa lakoćom koristiti razvoj je pojednostavljen.
Radno polje – okvir multimedije o Ti zahtevi su veoma opšti i odnose se na multimedijske radne okvire pre nego na okruženje. o Kada je radni okvir proširen i odgovara aplikacijskoj platformu, onda se pojavljuju i specijalni zahtevi. o Na primer, može se javiti potreba za podrškom izvesnih formata podataka, ili izvesnih delovi hardvera. o Da bi se udovoljilo tim zahtevima druge generacije veoma je važno da radni okvir bude otvoren i proširljiv.
Radni okvir multimedija o Radni okvir multimedija uključuje nešto nam se može učiniti nalik na veliki broj nepovezanih klasa i metoda. o Postoji, međutim, celokupna konstrukcija i klase se tu svrstavaju u četiri različite grupe: o o klase medija, klase za transformisanje, klase za formate i klase za komponente.
Klase medija o Na osnovu klasifikacije iz literature, mediji su podeljeni na tipove pri čemu se svaki tip predstavlja klasom. o Oni se zovu KLASE MEDIJA i čine hijerarhiju prikazanu na slici 3. Instance kod klase medija se zovu OBJEKTI MEDIJA. Objekat medija se sastoji od: o o DESKRIPTORA (onoga koji se opisuje) i VREDNOSTI MEDIJA.
Klase medija o Slika 3 Privremeni mediji Audio Vidio Mediji Muzika Animacija Slika Tekst Grafika
Klase medija o o o Deskriptori vezuju zajedno atribute medijskih objekata po veličini i datumu nastanka, dok se vrednosti medija odnose na aktuelne podatke korišćene za reprezentovanje veštačkih činjenica. Odnosi između: o o medijskih objekata, deskriptora, vrednosti medija i vestačkih činjenica o ilustrovani su da bi se dobio imidž objekta. o Najopštija klasa medija se jednostavno zove MEDIJA. To je jedna apstraktna klasa koja specificira metode koji moraju biti implementirani u konkretnim klasama medija. o
Klase medija o Slika 4 Atributes Media object 307200 Size 640 Width 26/5/96 Creation 480 Heigth Media date 0100100011 1010110011 1101001100 1110100011 Representes
Operacije o o Metodi za klase medija su podeljeni u dve kategorije: o Querying i o Editing. Takođe, u klasi će se pojaviti i interfejs za ostale operacije o Upiti - metod omogućuje aplikacijama da odrede tipove medija prema okolini. Medija i njene subklase imaju metod Deskriptora koji se koristi za postizanje atributa medijskih objekata. o Editovanje - Klasa Media ima tri opšta metoda za editovanje: Cut, Copy i Paste Kao kod metoda Descriptora, editing metode su deo podklasa.
Podklase medija o Neposredne podklase medija su: o o o o o Image, Graphic, Text i Temporal Media klasa. Svrha podklase Media je grupisanje specifičnih medijskih operacija. Klasa Image označava metode za likove, dok klasa Text klasifikuje metode za tekst. To su apstraktne klase i imaju dalje podklase. Na primer, primer n n neke operacije sa likovima mogu se primeniti samo na one iz domena sive skale, dok se druge primenjuju samo na kolorisane likove (kao što je, na primer, seperacija boja).
Podklase medija o Kada se posmatraju podklase Image i drugi tipovi medija, hijerarhija medija postaje mnogo dublja nego što je hijerarhija predstavljena na slici 3. o U izvesnom smislu hijerarhija Media je neizbalansirana i teži da grupiše Image, Graphic i Text kao podklase prostornog medija. Medutim, nije jasno koji bi se metodi dobiii tom klasom, a da već nisu deo klase Media. o
Podklase vremenskog medija o Treba opisati vrednosti: o Vremenskog medija, o klasu vremenskog medija i o njene podklase. o Uopšteno, svaka vrednost vremenskog medija je vremensko slaganje elemenata medija. o Vremensko slaganje sadrži timing informacije za svoje elemente. Treba dati: o n n primere dole naznačenih medijskih elemenata, pa zatim posmatramo njihovu organizaciju kao privremeno slaganje.
Podklase vremenskog medija o o Elementi medija: Audio, video, i vrednosti drugih privremenih medija izgrađene su slaganjem jednostavnih elemenata medija. Svaki tip privremenog medija ima odgovarajući asocirajući tip (tabela 1). Tabela 1 Temporalni mediji i elementi koji se nalaze ispod njih Tip privremenog medija Tip elemenata medija Audio elementi Video elementi Animacija Animacioni elementi Muzika Muzički elementi
Podklase vremenskog medija o Instance klasa sa leve strane su tako složene da njihovi članovi pripadaju odgovarajućim klasama sa desne strane. Video Komprimovani video MPEG video Elementi videa Grubi video Komprimovani okvir MPEG okvir Slika 5 Primeri video klasa i njihovi elementi koji se slažu Okvir
Podklase vremenskog medija o o Audio i video elementi Po konceptu, elementarne vrednosti videa su: n okviri (to su likovi), dok su n elementarne vrednosti audia individualni uzorci. o U praksi su slaganja okvira i uzorka implementirani na nekoliko načina, primarna razlika je u tome kako su elemetni kodirani. o Klasa sa višestrukim implementacijama se može modelovati pomoću apstraktne klase, čije podklase omogućavaju izmenu implementacije. U tom slučaju audio i video su apstraktne klase, i njihove podklase o odgovaraju različitim formama kodiranja.
Podklase vremenskog medija o Slika 5. pokazuje odnos između video podklasa i video elemenata. Slična organizacija biće upotrebljena za audio (slika 6) Audio Komprimovani audio Audio element Grubi uzorak Adpcm audio Komprimovani uzorak Adpcm uzorak Slika 6 Uzorak
Podklase vremenskog medija o Video istovremeno ima dve podklase: o o o Raw. Video - konkretnu klasu korišćenu za ne složeno ili jednostavno slaganje, i Compressed. Video - apstraktnu klasu koja je roditelj sledećim video podklasama. Compressed. Video predstavlja virtuelne metode za kodiranje i dekodiranje video vrednosti; ovi metode se moraju implementirati od strane njihovih podklasa.
Podklase vremenskog medija o o Animacija i muzički elementi Dok: n n o forme elemenata medija za audio i video izgledaju slične, identifikovanje elemenata medija za muziku i animaciju je problematično. Slaganje 2 D ili 3 D geometrijskih scena za animaciju i slaganje animacijskih događaja su dva jednostavna predstavljanja. n U prvom slučaju animacijski elementi direklno odgovaraju scenama, dok u n drugom slučaju oni uvode određene promene u scene.
Podklase vremenskog medija o Ove forme animacije se mogu modelovati podklasama Animation, koje se nazivaju Scene. Based. Animation i Event. Based. Animation (sl. 7). Slika 7 Animacija Osnovni događaj animacije o. Na Osnovna scena animacije Elementi animacije Scena Događaj animacije slici 7. dat je uporedni prikaz hijerarhija u klasi animacijski elementi i klasi animacija. o. Sličan pristup je potreban i u muzici, gde je varijetet predstavljanja takođe moguć.
Podklase vremenskog medija o Familije predstavljanja kao što su: o o o Event. Based. Music (zasnovana na slaganju muzičkih dogadaja, na primer: note, promena tempa, promena instrumenta) i Score. Based. Music (zasnovana na stvaranju visokokvaliletnih struktura muzičkih aktivnosti), čine apstraktne podklase Muzika.
Podklase vremenskog medija o Određena predstavljanja kao što je, na primer, Midi. Music tada se javljaju kao konkretne podklase (Sl. 8). Elementi muzike Muzika Osnovni muzički događaj Midi muzika Osnovni muzički rezultat Slika 8 Muzički događaj Midi događaj Rezul. elementi
Ispitna pitanja 1. 2. 3. 4. 5. 6. 7. Šta čini specifičnu sredinu – okruženje multimedijalnog programiranja? Šta uključuju faktori koji sužavaju prenosivost aplikacije? Šta uključuju ostali zahtevi koji se više odnose na multimedijsko programiranje? U koje četiri grupe se svrstavaju klase medija? Koje su neposredne podklase medija? Kako se mogu modelovati klasa sa višestrukim implementacijama? Koje dve podklase ima video?
- Slides: 46