Documentation/Labs/NrrdReading Writing Optimizations

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


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


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


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 for more info.

Current contributors

  • Davide Punzo (
  • Andras Lasso (

Anyone is welcome to contribute.