Difference between revisions of "2011 Winter Project Week: Slice View Performance"
Line 33: | Line 33: | ||
<h3>Progress</h3> | <h3>Progress</h3> | ||
Some prototyping has been done. | Some prototyping has been done. | ||
+ | |||
+ | In Python console, type: | ||
+ | <code> | ||
+ | import os | ||
+ | execfile(os.environ['Slicer_HOME'] + "/../../Slicer4/Base/Testing/Performance.py") | ||
+ | timeProbe() | ||
+ | </code> | ||
+ | Last command can be repeated to measure with different volumes loaded and different window sizes. | ||
+ | |||
+ | Significant variation in performance across platforms was noted and is being investigated. | ||
+ | |||
</div> | </div> |
Latest revision as of 19:32, 14 January 2011
Home < 2011 Winter Project Week: Slice View PerformanceKey Investigators
- Will, Jc, J2 - Kitware
- Luca - Orobix
- Steve - Isomics
- Jim - GE
Objective
Explore slice rendering pipeline to optimize amount of reslicing and compositing vs. opengl render time. Goal is to come up with a good vtk pipeline that can be implemented in both slicer3 and slicer4.
Currently, slices are extracted from volumes at the resolution of the slice view window. Typically these match fairly well, with, for example, a 640x480 slice image being extracted from a 512^3 volume, However in some cases one may wish to display a 256^3 volume on a 2kx2k monitor. In this case the trilinear interpolation and layer compositing operations are wasteful.
Approach, Plan
The goal it to consider introducing an intermediate resampling step at a resolution that is appropriate for the input volumes and then using the graphics hardware to do the final resample to screen space. A vtkImageActor is probably the correct class for this.
This will need to be incorporated into the ctkLightBoxManager class.
We should also look at the performance of the pipeline as separate filters and consider implementing a single filter for all the compositing and blending of layers.
Progress
Some prototyping has been done.
In Python console, type:
import os
execfile(os.environ['Slicer_HOME'] + "/../../Slicer4/Base/Testing/Performance.py")
timeProbe()
Last command can be repeated to measure with different volumes loaded and different window sizes.
Significant variation in performance across platforms was noted and is being investigated.