Documentation/Labs/NrrdReading Writing Optimizations

From Slicer Wiki
Jump to: navigation, search
Home < Documentation < Labs < NrrdReading Writing Optimizations

Overview

Here we summarize some efforts to optimize the reading and writing of nrrd files (currently done by using the teem library).

Use Case

When reading or writing nrrd files currently Slicer uses a factor x2 of the dimension of the datasets in RAM. This can already be an issue when loading datasets rather large (~2-3 GB) on systems with limited ram (already 8 GB). The use of virtual memory can slow down (loading time increases up to 30 minutes instead of few seconds) or freeze completely Slicer (e.g., if using HDD).

Solution

The idea is to stream the data between the Teem library and Slicer:

Issue

Before merging the solution, we still need to address:

  • random access for compressed files to allow streaming with good performances in TEEM
  • temporal filter as new interface to read/write data in the nrrdReader in SLICER

See https://github.com/SlicerRt/Sequences/pull/59 for more info.

Current contributors

  • Davide Punzo (punzodavide@hotmail.it)
  • Andras Lasso (lasso@queensu.ca)

Anyone is welcome to contribute.