VolumePro 500 Velk  (Ÿervnov ) voxelov  revoluce! Zobrazen¡ objemu 256 x 256 x 256 vzork… v re ln‚m Ÿase, 30 sn¡mk… za sekundu! Objemov‚ zobrazov n¡ pýech z¡ z pracovn¡ch stanic na platformu osobn¡ch poŸ¡taŸ…! Prohl‚dnØte si sv…j mozek na PC doma Ÿi v kancel ýi! Tak nØjak vypadaj¡ - nebo by mohly vypadat - n pisy na reklamn¡ch let c¡ch a nadpisy recenz¡ v odbornìch Ÿasopisech. Pod¡vejme se spolu na zaý¡zen¡, kter‚ to vçe zp…sobilo. Jde o grafickì akceler tor pro osobn¡ poŸ¡taŸe nazvanì VolumePro 500, kterì v technick‚m vybaven¡ implementuje algoritmus starì t‚mØý 20 let - t‚mØý tak starì jako rastrov  grafika. Doposud se vçak pou§¡val velmi m lo, neboœ neexistovala optim ln¡ kombinace vstupn¡ch zaý¡zen¡ vytv ýej¡c¡ch objemov  data, program…, kter‚ je zpracov vaj¡, a technick‚ho vybaven¡, na nØm§ zpracov n¡ prob¡h . PýesnØji ýeŸeno: programy ji§ existovaly a prostorov  sn¡mac¡ zaý¡zen¡ tak‚ (geofyzik ln¡ Ÿi atmosf‚rick‚ mØýic¡ sondy, poŸ¡taŸov  tomografie - CT, magnetick  rezonance - MR, konfok ln¡ mikroskopie, ...). Co sch zelo, bylo zaý¡zen¡, kter‚ by zvl dlo v re ln‚m Ÿase zobrazovat objemov‚ sc‚ny a jeho§ cena by pýitom byla srovnateln  s cenami kvalitn¡ch klasickìch grafickìch akceler tor…, pou§¡vanìch v osobn¡ch poŸ¡taŸ¡ch. Jak se liç¡ objemov  a povrchov  data? A jak onen vìçe zm¡nØnì algoritmus pracuje? Povrchov‚ versus objemov‚ zobrazov n¡ V souŸasnosti bاnØ pou§¡vanì zp…sob zobrazov n¡ pracuje pýev §nØ s povrchy. Zobrazujeme-li napý¡klad kouli Ÿi kapotu automobilu, soustýeÔujeme se na vytvoýen¡ iluze, §e vid¡me takovì pýedmØt ve skuteŸnosti. Proto§e je vn¡m n¡ povrch… a zejm‚na hran pro lidsk‚ oko nejpodstatnØjç¡, napodobujeme p…soben¡ svØtla na povrchu tØles. Zp…sobu zobrazov n¡ odpov¡d  i v souŸasnosti nejrozç¡ýenØjç¡ reprezentace dat v zobrazovac¡ch akceler torech povrchovìmi elementy. Pokud je c¡lem zkoum n¡ vnitýn¡ch struktur tØles, jako napý¡klad nedestruktivn¡ zjiçœov n¡ kvality materi lu, l‚kaýsk‚ vyçetýen¡ mozku pacienta nebo objekt…, kter‚ § dn‚ povrchy nemaj¡ (jsou beztvar‚ jako mlha, mrak Ÿi plamen), zobrazov n¡ extrahovan‚ho povrchu jednoduçe nestaŸ¡. Vytvoýen¡m povrchu toti§ z roveå ztr c¡me informace o tom, co je uvnitý, jak  je vnitýn¡ struktura objektu. Je nutno pou§¡t kvalitativnØ odliçnì pý¡stup, uchov vat informace o cel‚m objemu a objemov  data t‚§ cel  zobrazovat. Metoda vrh n¡ paprsku (ray-casting) Jak n zev napov¡d , pracujeme s paprsky, kter‚ jsou vrh ny z oka pozorovatele a proch zej¡ plochou obrazovky a zkoumanìm objemem. A§ potud jde o princip vyu§¡vanì i pýi vys¡l n¡ prim rn¡ch paprsk… v metodØ sledov n¡ paprsku (ray-tracing), vŸetnØ mo§nosti paraleln¡ho a rovnobاn‚ho zp…sobu prom¡t n¡ a principu sŸ¡t n¡ pý¡spØvk… pýi vìpoŸtu vìsledn‚ho jasu pixelu. PodstatnØ se ale liç¡ chov n¡ paprsku ve "sc‚nØ" a zp…sob vìpoŸtu pý¡spØvk…. U metody sledov n¡ paprsku let¡ prim rn¡ paprsek prostorem tak dlouho, dokud nenaraz¡ na povrch nØkter‚ho z tØles, kter  dohromady tvoý¡ zobrazovanou sc‚nu. V m¡stØ pr…seŸ¡ku se vypoŸ¡t  svØtelnì pý¡spØvek okol¡ a pý¡spØvek svØtelnìch zdroj…, urŸenì sklonem plochy a pou§itìm osvØtlovac¡m modelem. Dalç¡ pý¡spØvek je od sekund rn¡ch paprsk…, kter‚ vznikly odrazem a lomem. Okoln¡ objekty mohou na dan‚ m¡sto vrhat st¡n, paprsek m…§e bìt v z vislosti na dr ze ura§en‚ volnìm prostorem utlumov n. VìpoŸty se tedy prov dØj¡ pouze v m¡stech, kde paprsek protnul povrch tØlesa. U metody vrh n¡ paprsku, jej¡§ varianta je pou§ita v pý¡padØ VolumePro, je sc‚na tvoýena objemem dat, obvykle pravo£hlou mý¡§kou hodnot reprezentuj¡c¡ch vzorky nØjak‚ fyzik ln¡ veliŸiny, napý¡klad pohltivosti rentgenov‚ho z ýen¡ r…znìmi typy tk n¡ lidsk‚ho tØla u poŸ¡taŸov‚ tomografie. Pro z kladn¡ element datov‚ mý¡§ky se v§il n zev voxel, jako obdoba dvojrozmØrn‚ho pixelu. Metoda se sna§¡ vçechny informace v mý¡§ce vyu§¡t, a proto pýi zobrazov n¡ zapoŸ¡t v  pý¡spØvky z cel‚ho objemu. Paprsek je bØhem pr…letu objemem vzorkov n v pravidelnìch kroc¡ch srovnatelnìch s velikost¡ voxel…. V ka§d‚m kroku se vypoŸ¡t  pý¡spØvek tohoto kousku objemu k vìsledn‚ barvØ pixelu na obrazovce. Z roveå se akumuluje hodnota nepr…hlednosti. Barva a nepr…hlednost voxelu se urŸuj¡ explicitnØ segmentac¡ nebo se odvozuj¡ z hodnoty vzorku a z hodnot v jeho nejbli§ç¡m okol¡. Dos hne-li nepr…hlednost hodnoty jedna nebo prol‚tne-li paprsek celìm objemem, je vìpoŸet ukonŸen a akumulovan  barva zobrazena. Pracuje se tedy pouze s prim rn¡mi paprsky a sŸ¡taj¡ se vçechny pý¡spØvky pod‚l jejich dr hy (zeslaben‚ pr…letem objemem). Podstatnìm zjednoduçen¡m, pou§¡vanìm nejen pro £sporu znaŸn‚ho mno§stv¡ vìpoŸt…, ale i k jednoduçç¡ interpretaci vìsledn‚ho obrazu, je zanedb v n¡ zakrìv n¡ svØtelnìch zdroj… ostatn¡mi voxely. SvØtlo ze svØtelnìch zdroj… se dost v  ke vçem voxel…m stejnØ a ka§dì paprsek se poŸ¡t  nez visle na ostatn¡ch. Proto lze metodu snadno paralelizovat. KromØ re§imu sŸ¡t n¡ vçech pý¡spØvk… lze s mezivìsledky nalo§it i jinak, napý¡klad zobrazit maxim ln¡ (MIP-Maximal Intensity Projection) Ÿi minim ln¡ hodnotu (MinIP) pý¡spØvku pod‚l dr hy paprsku, lze zapoŸ¡t vat jen vzorky, jejich§ souýadnice padnou do zadan‚ho intervalu souýadnic (oýez v n¡), lze zd…raznit m¡sta s prudkou zmØnou hodnoty vzork… (velkìm gradientem), kter  odpov¡daj¡ hranic¡m struktur objektu. Metoda vrh n¡ paprsku tedy "vid¡ dovnitý" tØles reprezentovanìch obvykle pravo£hlou mý¡§kou hodnot. Mezi aplikaŸn¡ oblasti patý¡ zejm‚na l‚kaýstv¡ (radiologie, radiaŸn¡ terapie), n hled (preview) 3D efekt… do film… (voda, mraky, oheå), vìzkum lo§isek ropy, modelov n¡ turbulence vzduchu, zobrazen¡ plamen… v tryskov‚m motoru, ale i inspekce bal¡k… na poçt ch a letiçt¡ch apod. O vrh n¡ paprsku podrobnØji Pýi vys¡l n¡ paprsk… objemem je jen velmi mal  pravdØpodobnost, §e se vzorek pod‚l paprsku pýesnØ kryje s nØkterìm voxelem. Mnohem ŸastØji padne do prostoru mezi voxely (voxel je ch p n jako bod v trojrozmØrn‚m prostoru, pýedpokl d  se, §e se hodnoty mezi voxely mØn¡ spojitØ, a jeçtØ k tomu line rnØ). Proto se pou§¡v  triline rn¡ interpolace z hodnot osmi nejbli§ç¡ch voxel…. Pýi vìpoŸtu jedin‚ho vzorku je tedy nutno n hodnØ vyb¡rat osm sousedn¡ch hodnot voxel… z cel‚ho zobrazovan‚ho objemu. Pro interpolovanou hodnotu vzorku je d le nutno stanovit barvu a nepr…hlednost. V nejjednoduçç¡m pý¡padØ by bylo mo§n‚ zjiçtØn‚ hodnotØ fyzik ln¡ veliŸiny jednoduçe pýiýadit barvu a nepr…hlednost z vyhled vac¡ tabulky. KvalitnØjç¡ho zobrazov n¡ pýechod… mezi vnitýn¡mi strukturami v objemu dos hneme, zahrneme-li vliv gradientu v ka§d‚m m¡stØ. Vektor gradientu pou§ijeme jako odhad norm ly myçlen‚ ploçky v objemu a pý¡spØvky barvy od jednotlivìch svØtelnìch zdroj… spoŸ¡t me dle Phongova osvØtlovac¡ho modelu. Rozhran¡ mezi vnitýn¡mi strukturami v objemu zd…razn¡me modulov n¡m nepr…hlednosti velikost¡ vektoru gradientu. K vìpoŸt…m gradient… je ale nutn‚ z¡skat jeçtØ çestici interpolovanìch hodnot v okol¡ pr vØ zpracov van‚ho vzorku. Na prvn¡ pohled je zýejm‚, jak je metoda n roŸn  na mno§stv¡ vìpoŸt… a na poŸet n hodnìch pý¡stup… do zobrazen‚ho objemu. Proto je vhodn‚ objem pýedzpracovat a voxely uspoý dat tak, abychom k nim mØli snadnØjç¡ pý¡stup, nebo pou§¡t specializovanì akceler tor. Algoritmus implementovanì ve VolumePro VolumePro vyu§¡v  tzv. shear warp faktorizaci (SWF). Pro zkoumanì objem je nalezena ta stØna, kter  je nejbl¡§e pozorovateli (ploçe obrazovky). Na tuto stØnu, d le oznaŸovanou jako z kladn¡ rovina (base plane), se prom¡tne celì objem. T¡m vznikne zkreslenì obraz, proto§e tato rovina je v…Ÿi obrazov‚ rovinØ natoŸena (viz obr zek). Zkreslenì obraz na z kladn¡ rovinØ je warpovac¡ transformac¡ pýeveden na obraz v obrazov‚ rovinØ. D¡ky SWF se voxely mohou zpracov vat v rovin ch (ýezech) rovnobاnìch se z kladn¡ rovinou, Ÿ¡m§ se znaŸnØ zjednoduçuje pý¡stup do pamØti. üezn‚ roviny jsou v…Ÿi sobØ posunuty tak, aby voxely, kterìmi paprsky proch zej¡, byly za sebou (shear). Vìslednì algoritmus zpracov v  jednotliv‚ voxely postupnØ tak, jak jsou v objemu ulo§eny (po ýeznìch rovin ch, v r mci rovin po ý dc¡ch nazìvanìch svazky - beams). Na z vØr se metodou warpingu uprav¡ vypoŸ¡tanì zkreslenì obraz. Pýi vìpoŸtu interpolovan‚ hodnoty n m staŸ¡ zpracov vat Ÿtyýi sousedn¡ voxely z aktu ln¡ roviny a Ÿtyýi z dý¡ve zpracovan‚ sousedn¡ roviny. Interpolovan‚ hodnoty opØt ukl d me do rovin. Pýi vìpoŸtu gradientu jsou zapotýeb¡ hodnoty tý¡ interpolovanìch rovin za sebou - aktu ln¡, pýedchoz¡ a n sleduj¡c¡. Pýi vìpoŸtu intenzity svØtla v dan‚m m¡stØ potýebujeme zn t interpolovanou hodnotu a vektor gradientu. Pro interpolovanou hodnotu nalezneme hodnotu barvy a nepr…hlednosti v pýedpoŸ¡tan‚ vyhled vac¡ tabulce. Pý¡spØvek intenzity od vçech svØtel je pro r…zn‚ norm ly pýedpoŸ¡t n ve druh‚ vyhled vac¡ tabulce, v n¡§ se hled  dle gradientu. Pý¡spØvky intenzity a nepr…hlednosti pod‚l paprsku vznikaj¡ postupnØ pýi zpracov v n¡ jednotlivìch rovin a o jejich sŸ¡t n¡ se star  sestavovac¡ jednotka. Transformac¡ vìsledn‚ho zkreslen‚ho obrazu do obrazov‚ roviny se karta nezabìv . Provedeme ji nejl‚pe v klasick‚m grafick‚m akceler toru jako transformaci textury. Na prvn¡ pohled je vidØt, §e to nejslo§itØjç¡ na cel‚ metodØ je kromØ nalezen¡ vhodn‚ho zp…sobu pý¡stupu do voxelov‚ pamØti t‚§ optim ln¡ rozvr§en¡ vyrovn vac¡ch pamØt¡ pro mezivìsledky jednotlivìch operac¡. ¦e nejde o jednoduchou vØc, to je zýejm‚ i z toho, §e od zakoupen¡ patentovìch pr v firmou Mitsubishi v roce 1996 trval vìvoj tohoto zaý¡zen¡ do uveden¡ na trh v Ÿervnu roku 1999 pln‚ týi roky!!! Za tu dobu vzniklo z p…vodn¡ho patentu 35 dalç¡ch patent…. Technick‚ parametry v kostce Grafickì akceler tor VolumePro je PCI karta do PC nebo stanice Sun, kter  implementuje objektovØ orientovan‚ vrh n¡ paprsku (ray-casting) v rovnobاn‚ projekci. Umo§åuje dos hnout zobrazov n¡ objemu 2563 dvan ctibitovìch voxel… v re ln‚m Ÿase s obnovovac¡ frekvenc¡ 30 sn¡mk… za sekundu, 500 milion… vzork… osvØtlenìch Phongovìm osvØtlovac¡m modelem za sekundu. Obsahuje 160 MB rychl‚ pamØti SDRAM, z toho 128 MB na ulo§en¡ a§ 512 x 512 x 256 datovìch voxel…, 16 MB na mezivìsledky a 16 MB na vìstupn¡ obr zek. Vçechny vzorky pod‚l paprsk… poŸ¡t  triline rn¡ interpolac¡ z nejbli§ç¡ch soused…, odhad gradientu symetrickou diferenc¡ v ka§d‚m bodØ pod‚l paprsku. Umo§åuje interaktivn¡ zmØnu parametr… zobrazen¡: jde o smØr pohledu, hardwarov‚ oýez v n¡ çesti rovinami rovnobاnìmi se stØnami objemu, ýez n¡ obecnou rovinou, selektivn¡ obnovov n¡ objemu, Ÿ rovì nebo rovinnì kurzor, neomezen‚ mno§stv¡ smØrovìch svØtelnìch zdroj…, HW supersampling ve smØru osy Z, SW v rovinØ XY atd... ¬ip vp500, pou§itì v kartØ VolumePro, zpracov v  proud voxel… paralelnØ ve Ÿtyýech zobrazovac¡ch proudech. Ka§dì proud se skl d  z interpolaŸn¡ jednotky, jednotky pro vìpoŸet gradient…, z klasifikaŸn¡ a osvØtlovac¡ jednotky, generuj¡c¡ barvu a nepr…hlednost vzorku a vyhodnocuj¡c¡ Phong…v osvØtlovac¡ model, a ze sestavovac¡ jednotky, akumuluj¡c¡ pý¡spØvky barvy a nepr…hlednosti na dr ze paprsk… do vìsledn‚ho obrazu v z kladn¡ rovinØ. Z roveå obsahuje mno§stv¡ vyrovn vac¡ch pamØt¡ (FIFO), slou§¡c¡ch k uchov v n¡ mezivìsledk…. ¬tveýice proud… pracuje v§dy na sousedn¡ch voxelech v ýezu a pýed v  si lok ln¡ informace pý¡mo mezi sebou. Pýi posunu na dalç¡ Ÿtveýici se propoj¡ vìsledek Ÿtvrt‚ho proudu se vstupem proudu prvn¡ho. Na kraj¡ch objemu se mezivìsledky Ÿtvrt‚ho proudu ukl daj¡ do vnØjç¡ pamØti mezivìsledk…. Z n¡ se bere vstup prvn¡ jednotky pýi zpracov n¡ dalç¡ho ýezu. ¬ip vp500 vyu§¡v  technologie 0,35 mikrometru a na ploçe 186 mm2 obsahuje 800 000 hradel a 2,2 megabitu vnitýn¡ pamØti typu SRAM.Taktovac¡ frekvence je 133 MHz, nap jen¡ 3,3V nebo 5V. Co VolumePro neum¡ VolumePro neum¡ perspektivn¡ prom¡t n¡. Vzhledem k uva§ovanìm aplikac¡m to vçak nepova§uji za podstatn‚, nav¡c by mØlo bìt implementov no v dalç¡ch verz¡ch zaý¡zen¡. Zobrazovat lze pouze pravo£hl‚ mý¡§ky a mý¡§ky zkosen‚ v ose Z, co§ je d no principem zpracov v n¡ voxel…. Nen¡ mo§nØ pou§¡vat segmentovan‚ objemy dat, tj. takov‚ objemy, u nich§ explicitnØ oznaŸ¡me pý¡sluçnost voxelu k nØjak‚ struktuýe (napý. mozek). Tento fakt je pro nØkter‚ aplikace znaŸnØ omezuj¡c¡. Karta neumo§åuje souŸasn‚ zobrazov n¡ objemovìch a polygon ln¡ch objekt…. To chyb¡ napý¡klad pýi simulaci operac¡ Ÿi pýi pl nov n¡ ozaýov n¡. Velikost objemu 512 x 512 x 256 m…§e bìt nedostateŸn  vzhledem k rozliçen¡m souŸasnìch zaý¡zen¡. Programov‚ vybaven¡ karty dok §e velk‚ objemy zobrazovat po Ÿ stech, t¡m se vçak £mØrnØ zpomaluje rychlost zobrazov n¡, kter  je hlavn¡ dev¡zou karty. Deska zpracov vaj¡c¡ 5123 voxel… by mØla bìt dod v na zaŸ tkem pý¡çt¡ho roku. Aplikace VolumePro Rychl‚ zobrazov n¡ objem… patrnØ nebude jeçtØ nØkolik let masovØ pou§¡v no - na to, ne§ se hardware zdokonal¡ a zaŸne se pou§¡vat u her, si mus¡me jeçtØ nØjakì Ÿas poŸkat. Pro vØtçinu souŸasnìch aplikac¡ trojrozmØrn‚ objekty tvoýen‚ povrchovou reprezentac¡ vyhovuj¡ nejen rychlost¡ zobrazov n¡, ale i prostorovìmi n roky na ulo§en¡. Oblast¡, kter‚ po objemov‚m zobrazov n¡ pý¡mo volaj¡, je dnes u§ cel  ýada. PýirozenØ sem patý¡ obory, kde trojrozmØrn  objemov  data vznikaj¡ - 3D seizmick‚ studie, vizualizace poŸas¡, nedestruktivn¡ testov n¡ vìrobk…, rychl‚ digit ln¡ prototypy v CAD a tak‚ zobrazov n¡ v medic¡nØ: konfok ln¡ mikroskopie, poŸ¡taŸov  tomografie, magnetick  rezonance. Uvedenìm oblastem odpov¡d  struktura firem, kter‚ zaŸlenily podporu pro kartu VolumePro do svìch vìrobk…. Napý. firma AVS (Advanced Visual Systems Inc.) do vizualizaŸn¡ho syst‚mu AVS/Express a do aplikac¡ v l‚kaýstv¡, seizmologii a §ivotn¡m prostýed¡, firma ISG Visual Data Processing do vìvojov‚ho prostýed¡ Imaging Application Platform (IAP) pro vytv ýen¡ l‚kaýskìch aplikac¡ a firma Kitware do produktu VTK (Visualization Toolkit). Petr Felkel