Large 3D volumes need to be segmented into smaller size subvolumes both for ensuring efficient access to the data and for storing the data on multiple disks. This is especially useful for large medical 3D volume data sets such as CT, MRI, or cryosections.
We propose a striped file library which distributes the subvolumes onto multiple disks (multiple subfiles). The dataset is split into regular cubic subvolumes called extents, which are distributed onto the available subfiles.
To further improve data access speed, the data is stored at multiple resolutions in the subfiles, so that extents with a resolution near to the target display resolution can be read.
The data contained in the subfiles requires attached metadata, such as its physical resolution, image size, and component files. This metadata is stored in a standard XML file for optimal readability and ease of maintenance. Subfiles and associated metadata are denominated Extent Files.
The library is provided under the GPL. Currently, the source code is provided with project files for Windows platforms. This library is used for the data storage on our Visible Human Server. Library components
The library is composed of three parts:
The extent file library provides two class for using extent files:
The conversion program takes a descriptor file as well as a collection of planar bitmaps as input, and reorganizes them to an extent file as specified in the descriptor. Building the library
To build the library and sample application, you will require libxml2 (www.xmlsoft.org), zlib (www.gzip.org/zlib), and libjpeg (www.ijg.org). They are required for reading the XML file descriptors, creating compressed extent files, and reading jpeg source images respectively.