In-Memory Compression and slice extraction

Feb 15, 2010 at 8:57 PM

I am looking for a compression technique that would allow me to compress a full 3D image volume and to extract 2D planes from it for display without having to hold the entire volume in uncompressed memory at all times.  I was interested in JPEG-LS and thus your SDK.  While it would be pretty easy to use your implementation to extract 2D planes out of a 3D volume when the slices are in the same byte order, it gets more difficult with arbitrary planes.  Do you think I would be able to modify the SDK to efficiently pull out individual pixels or would you pretty much always have to uncompress the full volume in order to find specific pixels?




Feb 17, 2010 at 9:17 PM


JPEG-LS is effectively a 2D algorithm. It could very well be applied in the way you describe. But if you make an MPR across all the slices, you will need to decode all of them. JPEG-LS is not really designed for random access to pixel data. You could decode of the order of 50 512x512 images a second with JPEG LS, which is quite good for lossless compression, but maybe not good enough for interactive volume rendering. I am curious what kind of volumes you want to fit in to how much memory, I am somewhat familiar with this problem....