SoJp3dDataCompressor Class |
JP3D data compression.
Namespace: OIV.LDM.Compressors
The SoJp3dDataCompressor type exposes the following members.
Name | Description | |
---|---|---|
SoJp3dDataCompressor | Constructor. |
Name | Description | |
---|---|---|
AllocateCompressedBuffer | Allocates the internal buffer to hold the compressed data. | |
Compress | Compresses the given buffer into the internal buffer. | |
Equals | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) | |
GetCompressedBuffer | Returns the compressed data. | |
GetCompressionFormatName | Returns the name of the compression algorithm used by this class. | |
GetCompressionLevel | Returns the compression level. | |
GetHashCode |
Overrides GetHashCode().
(Inherited from SoNetBase.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
IsLossless | Returns true if the compression algorithm is lossless. | |
SetCompressionLevel | Sets the compression level. | |
ToString | Returns a string that represents the current object. (Inherited from Object.) | |
Uncompress | Uncompresses data from the internal buffer to the given buffer. |
This class implements a wavelet compression scheme based on JP3D compression, an extension of the standard JPEG2000 algorithms specifically designed for volume data. It supports lossless and lossy compression. This is controlled by setCompressionLevel (see OIV.LDM.Compressors.SoDataCompressor or SoConvertedParameters). A compression level of 0 specifies the lossless mode. Any other value specifies the target PSNR (Peak Signal to Noise Ratio).
Typical values for compression level (PSNR):
0 specifies lossless mode.
70 stands for "near lossless" mode (~0.03% error). Most of the volume will be encoded losslessly, but some parts will be encoded with a little error.
40 is the "visually lossless" mode (~1% error). Some error will be introduced, but visually the volume will appear the same.
Limitations:
The maximum precision supported is 16 bits. Data values larger than 16 bits, for example float or 32 bit integer, will be converted to 16 bit integers, potentially making the compression lossy.