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).