PCL
pcl::ZLibCompression Class Reference

Implementation of the ZLib/Deflate compression algorithm. More...

#include <Compression.h>

+ Inheritance diagram for pcl::ZLibCompression:

Public Member Functions

String AlgorithmName () const override
 
int DefaultCompressionLevel () const override
 
int MaxCompressionLevel () const override
 
- Public Member Functions inherited from pcl::Compression
 Compression ()=default
 
 Compression (const Compression &)=default
 
 ~Compression () override
 
bool ByteShufflingEnabled () const
 
bool ChecksumsEnabled () const
 
template<class C >
subblock_list Compress (const C &data, Performance *perf=nullptr) const
 
subblock_list Compress (const void *data, size_type size, Performance *perf=nullptr) const
 
int CompressionLevel () const
 
void DisableByteShuffling (bool disable=true)
 
void DisableChecksums (bool disable=true)
 
void EnableByteShuffling (bool enable=true)
 
void EnableChecksums (bool enable=true)
 
size_type ItemSize () const
 
virtual int MinCompressionLevel () const
 
Compressionoperator= (const Compression &)=default
 
void SetCompressionLevel (int level)
 
void SetDefaultCompressionLevel ()
 
void SetItemSize (size_type itemSize)
 
void SetSubblockSize (size_type size)
 
size_type SubblockSize () const
 
ByteArray Uncompress (const ByteArray &compressedData, size_type uncompressedSize, Performance *perf=nullptr) const
 
ByteArray Uncompress (const subblock_list &subblocks, Performance *perf=nullptr) const
 
size_type Uncompress (void *data, size_type maxSize, const subblock_list &subblocks, Performance *perf=nullptr) const
 
- Public Member Functions inherited from pcl::ParallelProcess
 ParallelProcess ()=default
 
 ParallelProcess (const ParallelProcess &)=default
 
virtual ~ParallelProcess ()
 
void DisableParallelProcessing (bool disable=true) noexcept
 
void EnableParallelProcessing (bool enable=true, int maxProcessors=0) noexcept
 
bool IsParallelProcessingEnabled () const noexcept
 
int MaxProcessors () const noexcept
 
ParallelProcessoperator= (const ParallelProcess &)=default
 
void SetMaxProcessors (int maxProcessors) noexcept
 
void Swap (ParallelProcess &process) noexcept
 

Additional Inherited Members

- Public Types inherited from pcl::Compression
using subblock_list = Array< Subblock >
 
- Protected Member Functions inherited from pcl::Compression
void Throw (const String &errorMessage) const
 
- Static Protected Member Functions inherited from pcl::Compression
static void InPlaceUnshuffle (uint8 *data, size_type size, size_type itemSize)
 
static ByteArray Shuffle (const uint8 *data, size_type size, size_type itemSize)
 
static ByteArray Unshuffle (const uint8 *data, size_type size, size_type itemSize)
 

Detailed Description

This class implements the deflate lossless compression algorithm in the standard zlib format. This is the default PixInsight/XISF compression codec.

The underlying implementation in the PixInsight core application is the well-known zlib library written by Jean-Loup Gailly and Mark Adler.

References

  • Jean-Loup Gailly, L. Peter Deutsch (1996), RFC 1950: ZLIB Compressed Data Format Specification version 3.3
  • Jean-Loup Gailly, L. Peter Deutsch (1996), RFC 1951: DEFLATE Compressed Data Format Specification version 1.3
See also
Compression, LZ4Compression, LZ4HCCompression, ZstdCompression

Definition at line 624 of file Compression.h.

Member Function Documentation

◆ AlgorithmName()

String pcl::ZLibCompression::AlgorithmName ( ) const
inlineoverridevirtual

Returns the name of this data compression algorithm (ZLib).

Implements pcl::Compression.

Definition at line 631 of file Compression.h.

◆ DefaultCompressionLevel()

int pcl::ZLibCompression::DefaultCompressionLevel ( ) const
overridevirtual

Returns the default compression optimization level for this algorithm. The returned value represents a good compromise between execution speed and compression ratio.

Implements pcl::Compression.

◆ MaxCompressionLevel()

int pcl::ZLibCompression::MaxCompressionLevel ( ) const
overridevirtual

Returns the maximum compression optimization level supported by this algorithm. Higher levels tend to provide higher compression ratios at the cost of more computational work.

Implements pcl::Compression.


The documentation for this class was generated from the following file: