|
virtual const char * | GetClassName () |
|
virtual int | IsA (const char *type) |
|
void | PrintSelf (ostream &os, vtkIndent indent) |
|
virtual const char * | SaveConfiguration () |
| Serialize compressor configuration (but not the data) into the stream. More...
|
|
virtual const char * | RestoreConfiguration (const char *stream) |
| Restore state from the stream, The stream format for all image compressor is: [ClassName, LossLessMode, [Derived Class Stream]]. More...
|
|
|
virtual void | SetSquirtLevel (int) |
| Set Squirt compression level. More...
|
|
virtual int | GetSquirtLevel () |
| Set Squirt compression level. More...
|
|
|
virtual int | Compress () |
| Compress/Decompress data array on the objects input with results in the objects output. More...
|
|
virtual int | Decompress () |
| Compress/Decompress data array on the objects input with results in the objects output. More...
|
|
|
virtual void | SaveConfiguration (vtkMultiProcessStream *stream) |
| Serialize/Restore compressor configuration (but not the data) into the stream. More...
|
|
virtual bool | RestoreConfiguration (vtkMultiProcessStream *stream) |
| Serialize/Restore compressor configuration (but not the data) into the stream. More...
|
|
void | PrintSelf (ostream &os, vtkIndent indent) |
|
void | SetInput (vtkUnsignedCharArray *input) |
| Get/Set the input to this compressor. More...
|
|
virtual vtkUnsignedCharArray * | GetInput () |
| Get/Set the input to this compressor. More...
|
|
virtual vtkUnsignedCharArray * | GetOutput () |
| Get/Set the output of the compressor. More...
|
|
void | SetOutput (vtkUnsignedCharArray *) |
| Get/Set the output of the compressor. More...
|
|
virtual void | SetLossLessMode (int) |
| When set the implementation must use loss-less compression, otherwise implemnetation should user provided settings. More...
|
|
virtual int | GetLossLessMode () |
| When set the implementation must use loss-less compression, otherwise implemnetation should user provided settings. More...
|
|
Image compressor/decompressor using SQUIRT.
This class compresses Image data using SQUIRT a Run-Length-Encoded compression scheme. The Squirt Level controls the compression. 0 is lossless compression, 1 through 5 are lossy compression levels with 5 being maximum compression.
Squirt produces smaller compression ratio than some other popular compression algorithm. However, Squirt has a relatively high throughput compared to some other compression algorithm. Squirt's performance is optimized for RGBa images, however the class can also work with RGB images. There is no performance hit when applying the lossy comrpession levels.
Levels 1 through 5 apply a color reducing mask to the run computation, not to the pixel directly. This is clever in that no new colors are introduced to the image, and as a result one doesn't see drastic changes between the reduced color image and the original. However, when using the higher levels one may get runs that produce visual artifiacts. For example when a run starts in one actor whose reduced color matches the background the background is colored with the actor color.
The compressor uses a modified SQUIRT implementation where encode 4-bit opacity information as well. This is needed to improve background color blending for translucent renderings in ParaView.
- Thanks:
- Thanks to Sandia National Laboratories for this compression technique
Definition at line 59 of file vtkSquirtCompressor.h.