[MINC-development] [Fwd: data format]

Steve ROBBINS minc-development@bic.mni.mcgill.ca
Mon, 9 Dec 2002 08:53:26 -0500


Howdy,

Where'd all the discussion go?


On Fri, Nov 22, 2002 at 12:40:45PM -0500, John G. Sled wrote:
> 
> This is a message that Art Wetzel had sent describing the data layout
> they are using at the Pittsburgh Supercomputing Centre to serve up the
> visual human.  From what I understand, some of the details are still
> in flux, but it does give some insight into their approach.
> 
> cheers,
> 
> John
> 
> 
> ############################
> The basic element of data going to the client is a cube.  Since the
> client is in control of the entire interaction every cube is delivered
> by explicit client request.  For the Vis Female we currently provide
> 4 scales of cubes all composed of 8*8*8 = 512 voxels.  The scales are
> just multiples of 2 so we have full resolution, 1/2 res, 1/4 res and
> 1/8 res cubes.  The 1/8 res cubes for example enclose what was originally
> a full scale 64*64*64 voxel region.  Therefore, each of the 512 voxels
> in a 1/8 scale cube corresponds to the low pass filtering of an 8*8*8
> voxel region from the full scale data.  In going from a low res cube
> to the next higher res (by a factor of 2) there are 8 possible octant
> cubes to choose from.  These subcubes nestle into the corners of the
> larger cubes.

Pretty cool.  It strikes me, though, that they are paying a high price (a
complicated on-disk format) for using mmap().  If I were to implement this, my
first thought would be to put each resolution into a separate MINC file
(e.g. foo.mnc, foo_scale2.mnc, etc).  You'd be able to load the coarsest
resolution or two into memory as a whole, and seek around in the other files
as needed.

Thoughts?

-S