Click or drag to resize
SoJp3dDataCompressor Class

JP3D data compression.

Inheritance Hierarchy
SystemObject
  OIV.InventorSoNetBase
    OIV.LDM.CompressorsSoDataCompressor
      OIV.LDM.CompressorsSoJp3dDataCompressor

Namespace: OIV.LDM.Compressors
Assembly: OIV.LDM (in OIV.LDM.dll) Version: 2023.1.3.0 (2023.1.3)
Syntax
public class SoJp3dDataCompressor : SoDataCompressor

The SoJp3dDataCompressor type exposes the following members.

Constructors
  NameDescription
Public methodSoJp3dDataCompressor

Constructor.

Top
Methods
  NameDescription
Public methodAllocateCompressedBuffer

Allocates the internal buffer to hold the compressed data.

(Inherited from SoDataCompressor.)
Public methodCompress

Compresses the given buffer into the internal buffer.

(Inherited from SoDataCompressor.)
Public methodEquals
Determines whether the specified Object is equal to the current Object.
(Inherited from Object.)
Public methodGetCompressedBuffer

Returns the compressed data.

(Inherited from SoDataCompressor.)
Public methodGetCompressionFormatName

Returns the name of the compression algorithm used by this class.

(Inherited from SoDataCompressor.)
Public methodGetCompressionLevel

Returns the compression level.

(Inherited from SoDataCompressor.)
Public methodGetHashCode
Overrides GetHashCode().
(Inherited from SoNetBase.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodIsLossless

Returns true if the compression algorithm is lossless.

(Inherited from SoDataCompressor.)
Public methodSetCompressionLevel

Sets the compression level.

(Inherited from SoDataCompressor.)
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Public methodUncompress

Uncompresses data from the internal buffer to the given buffer.

(Inherited from SoDataCompressor.)
Top
Remarks

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.

See Also