Hardware based nonlinear filtering and segmentation using high level shading languages
Download
1 / 23

Hardware-Based Nonlinear Filtering and Segmentation using High-Level Shading Languages - PowerPoint PPT Presentation


  • 129 Views
  • Uploaded on

Hardware-Based Nonlinear Filtering and Segmentation using High-Level Shading Languages. I. Viola, A. Kanitsar, M. E. Gr öller. Institute of Computer Graphics and Algorithms Vienna University of Technology Vienna, Austria. CPU. CPU. DATA ACQUISITION. GPU. DATA ENHANCEMENT. GPU.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Hardware-Based Nonlinear Filtering and Segmentation using High-Level Shading Languages' - eulalie


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Hardware based nonlinear filtering and segmentation using high level shading languages l.jpg

Hardware-Based Nonlinear Filtering and Segmentation using High-Level Shading Languages

I. Viola, A. Kanitsar, M.E. Gröller

Institute of Computer Graphics and Algorithms

Vienna University of Technology

Vienna, Austria


Volume visualization pipeline l.jpg

CPU High-Level Shading Languages

CPU

DATA ACQUISITION

GPU

DATA ENHANCEMENT

GPU

VISUALIZATION MAPPING

VISUALIZATION MAPPING

RENDERING

RENDERING

Volume Visualization Pipeline

CPU

DATA ENHANCEMENT


Gpu based algorithms l.jpg

DATA High-Level Shading Languages

ENHANCEMENT

liver dataset

segmented vessels

GPU-based Algorithms

  • high performance

  • high flexibility

  • easy implementation: HLSL

  • necessary features:

    • floating point precision

    • long shader programs latest commodity graphics hardware


Talk outline l.jpg
Talk Outline High-Level Shading Languages

  • processing pipeline

  • GPU-based filtering

    • per-vertex stage

    • per-fragment stage

      • median filter

      • bilateral filter

      • rotated mask filter

  • GPU-based segmentation


Liver vessel tree visualization l.jpg
Liver Vessel Tree Visualization High-Level Shading Languages

  • pre-filtering

    • improving thresholding segmentation

    • edge-preserving filters

  • interactive threshold adjustment

  • mask generation

  • volumetric clipping

  • volume rendering

GPU

CPU

GPU


Processing pipeline l.jpg
Processing Pipeline High-Level Shading Languages


Talk outline7 l.jpg
Talk Outline High-Level Shading Languages

  • processing pipeline

  • GPU-based filtering

    • per-vertex stage

    • per-fragment stage

      • median filter

      • bilateral filter

      • rotated mask filter

  • GPU-based segmentation


Filtering in graphics hardware issues l.jpg
Filtering in Graphics Hardware High-Level Shading LanguagesIssues

  • data representation: textures

    • 3D texture

    • stack of 2D textures

  • access to value: texture fetch

  • neighborhood addressing: texture offset we use 5×5×5 neighborhood

  • filter implementation: per-fragment stage

  • results: rendered into off-screen buffer


Data representation l.jpg

TEXTURE STACK High-Level Shading Languages

OFF-SCREEN BUFFER STACK

Data Representation

TEXTURE STACK

OFF-SCREEN BUFFER STACK


Neighborhood addressing l.jpg
Neighborhood Addressing High-Level Shading Languages

Two alternatives:

  • directly in fragment program requires additional computation

  • pre-compute in per-vertex stage

  • store in vertex attributes

  • interpolation “for-free”

  • swizzle operator


Address pre computation l.jpg
Address Pre-computation High-Level Shading Languages

IN.TEXCOORD0.xy

PER-VERTEX STAGE

X-2

Y+2

XY

XW

X-1

Y+1

TEXCOORD0.xy

ZY

ZW

TEXCOORD0.zw

TEXCOORD0.xw

XY

TEXCOORD0.zy

FILTER KERNEL

OUT.TEXCOORD0.xy =

OUT.TEXCOORD0.xyzw=

IN.TEXCOORD0.xyxy

+ float4(-2, 2

+ float4(-2, 2, -1,1)


Per fragment stage l.jpg
Per-fragment Stage High-Level Shading Languages

  • medical data - 12 bit precision

     fixed point 12-bit arithmetics

  • use cache coherence

  • exploit 4D instructions

  • reduce conditionals

  • reduce number of registers

  • push computation to per-vertex stage


Median filter l.jpg
Median Filter High-Level Shading Languages

  • central value of ordered set

  • implementation

    • CPU-based  sorting

    • GPU-based  similar to quickselect()


Gpu based median filter l.jpg
GPU-based Median Filter High-Level Shading Languages

  • input data 12 bit [0..4095]

  • multi-pass approach

  • not efficient on CPU

  • exploiting GPU 4D arithmetics

0

1

2

3

4

5

6

7


Bilateral filter l.jpg
Bilateral Filter High-Level Shading Languages

  • edge preservation: anisotropic filter kernel

  • product of two weights:

    • geometric:

    • photometric:

high geometric weight

low photometric weight

f(x)

high geometric weight

low geometric weight

x


Gpu based bilateral filter l.jpg
GPU-based Bilateral Filter High-Level Shading Languages

  • weights are precomputed

  • geometric weight stored in unused vertex attributes (COLOR0)

  • photometric weight stored in 1D mirror LUT

  • weight product

  • sum-up contributions & weights

  • normalize


Rotated mask filter l.jpg
Rotated Mask Filter High-Level Shading Languages

  • anisotropic noise removal with edge preservation

  • splits filter mask into sub-regions

  • mean and variance value for each sub-region

  • result – mean value of sub-region with minimal variance

  • GPU implementation

    • single pass - slow

    • multiple passes - reduce temp. registers


Talk outline18 l.jpg
Talk Outline High-Level Shading Languages

  • processing pipeline

  • GPU-based filtering

    • per-vertex stage

    • per-fragment stage

      • median filter

      • bilateral filter

      • rotated mask filter

  • GPU-based segmentation


Segmentation l.jpg
Segmentation High-Level Shading Languages

  • input: pre-filtered data after noise removal

  • thresholding segmentation

    • 0 outside interval

    • 1 within interval

  • interactive threshold adjustment

  • output: compressed form 32 slices in one 32 bit slice


Results l.jpg
Results High-Level Shading Languages

  • GPU: NVIDIA GeForceFX 5900 Ultra

  • CPU: AMD AthlonXP 2.4 GHz, 1GB DDR RAM

  • liver dataset: 512×512×72


Results21 l.jpg
Results High-Level Shading Languages


Conclusions l.jpg
Conclusions High-Level Shading Languages

  • data enhancement step on GPU!

  • simple tasks  better speedup

  • optimization HW specific

  • high-level programming

    • friendly

    • many implementation possibilities

    • compiler efficiency


Thank you for your attention l.jpg
Thank you for your attention! High-Level Shading Languages


ad