Projekt C2C Zpráva o stavu projektu V úvodní části projektu dochází k úvahám na základě nichž je nutné nejprve značně upřesnit zadání, cíle a předpokládané aplikace výsledků. Původní představa vychází z myšlenky propojení dvou zařízení typu CAVE. Tato úloha se obvykle řeší za pomoci knihoven zajišťujících synchronizaci výpočtů na výpočetních klastrech obou zařízení typu CAVE. Každý klastr má vlastní data s informacemi o stavu scény a provádí výpočet na své straně. Informace, které se po síti přenášejí pak obsahují popis změn, ke kterým ve sdílené scéně dochází. Tato data nemusí nutně představovat vysoké nároky na přenos dat. To ale z pohledu projektu C2C, tedy otestovat možnosti technologií v aplikacích s vysokými nároky na přenos dat se nezdá být zajímavým problémem. Přesto má však myšlenka spojení jednoho nebo více zařízení typu CAVE několik smysluplných aplikací. V následujícím textu je popsáno několik variant aplikace včetně původního záměru přenosu renderovaných dat ve formě videa a návrh následného postupu v rámci projektu. Spojení a komunikace dvou a více zařízení typu CAVE má opodstatnění v několika případech: 1. Sdílení a kolaborace v rámci jednoho virtuálního prostředí (vizualizace, design, architektura) 2. Sdílení vícekanálového videozáznamu (pasivní prezentace) 3. Sdílení a kolaborace v rámci vícekanálového videozáznamu (interaktivní video) 4. Sdílení vícekanálového streamu (pasivní sledování, lékařství, podmořský výzkum) 5. Sdílení a kolaborace v rámci vícekanálového streamu (řízené sledování)
Sdílení a kolaborace v rámci jednoho virtuálního prostředí Tato varianta je založena na výše zmíněném oddělování dat renderovaných v reálném čase a jejich kódování a odesílání v podobě streamu. Tuto konfiguraci znázorňuje obrázek 1 a detail obrázek 2.
Aplikace této varianty předpokládá využití v oblasti vzdálené prezentace 3D scén. Konfigurace celého řetězce pak předpokládá, že CAVE1 zobrazuje 3D scénu a pohyb uživatele v ní. Během zobrazování je vysílán 6(8) kanálový stream. Ten je přijímán na CAVE2 a zobrazován. Uživatel v
CAVE2 pak může procházku svého kolegy v CAVE1 pasivně sledovat. Kromě CAVE2 mohou být na stream připojena další zařízení typu CAVE a sledovat prezentaci současně. Další případ vychází ze stejné situace, ale liší se ve způsobu využití. CAVE1, který počítá scénu a vysílá vyrenderované video, pracuje jako vzdálená služba pro uživatele v ostatních zařízeních tohoto typu. V takovém případě je KLASTR1 vybaven výkonným výpočetním systémem a uživatel zařízení CAVE2 je k němu přihlášen vzdáleně. KLASTR1 odesílá vypočtené video a uživatel v CAVE2 vidí výsledek ve formě vícekanálového videa na svém zařízení. Pro variantu sdílení a kolaborace v rámci jednoho virtuálního prostředí byly uvažovány 2 způsoby oddělení proudu dat ze zobrazovací jednotky: 1. oddělení přímo z bufferu grafické karty zvláštním procesem 2. odebrání proudu dat z grafického výstupu karty První varianta má výhodu větší kontroly nad daty a nevýhodu v poměrně značné zátěži zobrazovací jednotky. Druhá varianta prakticky zobrazovací jednotku nezatěžuje naopak možnost ovlivnění kvality výstupních dat a kontrola nad nimi je nulová. Vzhledem k těmto argumentům (které jsou ve shodě s poznámkami ing. Hulínského viz citace níže) bylo přikročeno k experimentu založeném na první variantě (obr 2). Zde se však ukazuje, že slabým kritickým místem je proces odebírání snímků ze zobrazovací
jednotky, který zatěžuje zobrazovací počítač a navíc se ukazuje být problematickým i požadavek na rendering videa ve vysokém rozlišení v reálném čase. Důsledkem je, že maximální datový tok nedosáhne se stávajícím technickým vybavením dostatečně vysokých hodnot. Problém je však řešitelný s použitím dostatečně silného vybavení s dobrou komunikací mezi GPU a CPU. Citace Ing. Hulínský Musím předeslat, že zachytávání /digitalizace/ analogového signálu ve vysokém rozlišení je velmi nákladná a problematická záležitost a je výrazně jednodušší replikovat data již u zdroje, než ho nechat vyrendrovat a pak odebírat z analogového výstupu. O real-time kódování např. MPEG-4 ani nemluvím. Pokud tedy chcete zobrazovat na jiném CAVE to co se spočítá na tom primárním, pak je podle mne nejvhodnější varianta rozdělit funkci pro počítání a pro zobrazování do dvou nezávislých entit a vypočítaná data posílat přes reflektor/duplikátor na více zobrazovacích míst. .... Rozdíl v praktické složitosti řešení pro rozlišení PAL a 1024x768 je velký. Pro PAL je nejjednodušší
převést jednotlivé kanály do DV (ať již u zdroje, nebo odbočením analogového signálu před zobrazením) a doprava pomocí UDP s využitím RTP pro synchronizaci (knihoven pro RTP je mraky a synchronizační modely jsou dobře popsány v literatuře). V tomto případě lze použít RUM zrdcadlo pro samotnou synchronizace L/R (pro další perimetry lze asi dopsat). Popis řešení je např. zde: http://apps.internet2.edu/dvtsrsrcs/dvts-3d.pdf Pro vyšší rozlišení (ať již diskrétní RGB nebo komponentní HD) je třeba řešení vymyslet. Zajímavé práce v této oblasti jsou datovány teprve rokem 2006/2007 (i když jsem viděl věci i z 1995), tedy se jedná o poměrně novou věc. Osobně bych volil nějakou formu multiplexovaných streamu, např. zapouzdřené do MPEG-TS karuselu a síť nastavenou pro isochronní doručování. .... Osobne si myslim, ze streamovat 3D L/R data z nejakeho zdroje na n ruznych mist je systemovejsi, nez zachytavat zobrazovana data a posilat je jako video na dalsi mista. Takove reseni neumoznuje jednoduse dalsi kroky, jako je interaktivita, prenos haptiky, vicebodove zdroje (avatar se renderuje v jednom CAVE/bodu, inteligenci mu dava cluster na jinem miste, prostor ve kterem se pohybuje generuje zase jiny. Na to je treba sofistikovane synchronne predavat data, ne proste video
Sdílení vícekanálového videozáznamu Tato varianta je jakýmsi zobecněním předchozího případu. Zde se neuvažuje, že by zdrojem vícekanálového videa bylo nutně zařízení typu CAVE. Pouze se předpokládá, že v síti existuje zdroj takového signálu (obr. 3) a že několik zařízení typu CAVE tento signál mohou přijímat a zobrazovat. Aplikace této varianty bude spočívat spíše v pasivním sledování dění uvnitř CAVE a stupeň interakce bude spočívat v možnosti ovlivňovat toto dění asi tak jako je to možné u DVD aplikací.
Sdílení a kolaborace v rámci vícekanálového videozáznamu Tato varianta předpokládá existenci speciálního enkodéru, který umožňuje ukládat více kanálů videa do jednoho proudu společně s metadaty popisujícími okamžiky, kde je možné přepínat z jednoho kanálu na jiný. Dále se předpokládá dekodér s přehrávačem, který takto připravená data v reálném čase zobrazí a bude schopen měnit rychlost a směr přehrávání videa na základě událostí od uživatele. Zároveň při požadavku na změnu směru pohybu v předem definovaných okamžicích popsaných metadaty. V situaci, kdy uživatel vydá povel ke změně směru a bude to v okamžiku popsaném metadaty, provede přehrávač automatický střih a přejde k přehrávání jiného požadovaného kanálu. Obr. 4 zobrazuje strukturu proudu pro jednokanálovou (nikoliv stereo) verzi. Zde je schematicky zobrazen fragment streamu MPEG4 obsahující 5 video kanálů, který nese navíc informaci o tom, kde je možné z jednoho právě přehrávaného kanálu přejít na jiný.
V rámci výuky se na půdě Institutu intermédií na této variantě pracuje. V současné době je k dispozici kodér i dekodér umožňující ukládat více kanálů do jednoho proudu MPEG4 a pracuje se na způsobu ukládání metadat a prezentaci takového signálu v interaktivní podobě. Využití této varianty spadá mezi aplikace, kde je možné interaktivně procházet scénou (nikoliv vymodelovanou ale předtočenou). To umožní provádět podrobné studium již hotových záznamů, stereoskopické interaktivní prezentace nebo realizovat interaktivní výukové aplikace.
Sdílení vícekanálového streamu Tato varianta je obdobou sdílení vícekanálového videozáznamu v reálném čase. Je zde uvedena pro úplnost a její využití spadá do oblasti sledování dějů probíhajících v reálném čase. Příkladem může být přenos vícekanálového streamu z upravené laparoskopické (nebo endoskopické) kamery ve zdravotnictví v zařízení CAVE případně dalších dějů sledovaných v reálném čase v uzavřených (často nepřístupných) prostorách, zobrazovaných stereoskopicky.
Sdílení a kolaborace v rámci vícekanálového streamu Tato varianta rozšiřuje předchozí o možnost interakce, kde má uživatel nástroje pro komunikaci se zdrojem signálu. Aplikace této varianty spadá do oblasti, kdy uživatel vzdáleně ovládá zdroj signálu (např. pohyb robota na souši nebo pod vodou nesoucího kamery). Taková varianta je však realizovatelná v případech, kdy je možné zajistit přenos vícekanálového videa ve vysokém rozlišení i z takto mobilního zařízení. Panoramatický stereoskopický obraz těžko přístupného prostředí ve vysokém rozlišení (tedy např v zřízení typu CAVE) by mohl být pravděpodobně přínosem právě v aplikacích jako je laparoskopie nebo např. oblast podmořského výzkumu.
Závěr V tomto textu byly postupně uvedeny aplikace, které mohou představovat postupně jednotlivé cíle výzkumu v oblasti přenosu a prezentace vícekanálového videa v zařízení typu CAVE. V první fázi projektu C2C je potřeba získat implementaci alespoň základní funkční verze řetězce realizujícího přenos renderovaného videa z jednoho systému CAVE na jiný (varianta 1). Se zařízením, které je v současné době dostupné bude možné dosáhnout zřejmě pouze omezených datových toků. To by však mělo dát základní představu o dalších potřebných krocích směrem k zdokonalování technického vybavení případně výpočetních metod. V současné době je realizace základní varianty řetězce odpovídající obr. 1 a 2 ve fázi dokončování. Další postup bude spočívat v testování datových toků, které lze s dosavadní konfigurací dosáhnout. Dalším krokem pak bude návrh a vývoj vlastní aplikace reprezentující model varianty 1, který umožní interakci se vzdáleným uživatelem a bude možné jej škálovat zvyšováním počtu přenášených kanálů, rozlišení a počtu snímků. Lze předpokládat, že tato část bude provedena v průběhu léta 2008.
30.3.2008 Roman Berka, Ph.D. Institut intermédií FEL ČVUT v Praze