ClearVolume / clearvolume

ClearVolume is a real-time live 3D visualization library designed for high-end volumetric microscopes such as SPIM and DLSM microscopes. With ClearVolume you can see live on your screen the stacks acquired by your microscope instead of waiting for offline post-processing to give you an intuitive and comprehensive view on your data.
http://clearvolume.github.io
GNU Lesser General Public License v3.0
44 stars 11 forks source link

Big image data handling #56

Open tischi opened 7 years ago

tischi commented 7 years ago

Hello,

This is not an issue report but a question:

How does ClearVolume handle time-lapse data, internally? Does it load only the currently active time-point into RAM and then onto the Graphics card?

I am asking because we are currently using ImageJ's virtual stack here for large data sets where

Thus, an internal logic in ClearVolume, where it only "requests", i.e. calls the imp.getProcessor() methods, for the currently active time-point would make it big data compatible in a very easy way.

skalarproduktraum commented 7 years ago

Hi @tischi,

the way this works at the moment is that only a single timepoint is submitted to the GPU at any given moment. You are right that a 2-4GiB image does not pose a large problem.

However, you also need to take transfer latency into consideration, which becomes an issue with larger volumes, as they are handled as textures, and are processed by the GPU on arrival. A while ago, @tpietzsch and me did some optimisations how the images are transferred from imglib2 to ClearVolume, which yielded quite a substantial improvement, but we did not have time yet to test this really in-depth. In case you'd like to have a look, the code is in the LoadOptimizationsAndProfiling branch of imglib2-clearvolume, which you can find here.