PocketLzma  1.0.0
A cross-platform singleheader LZMA compression/decompression library for C++11
Public Member Functions | Public Attributes | List of all members
plz::Settings Class Reference

#include <Settings.hpp>

Public Member Functions

 Settings ()=default
 
 Settings (Preset preset)
 
void validate ()
 
void usePreset (Preset preset)
 

Public Attributes

uint8_t level {5}
 
uint32_t dictionarySize {1 << 24}
 
uint8_t literalContextBits {3}
 
uint8_t literalPositionBits {0}
 
uint8_t positionBits {2}
 
uint16_t fastBytes {32}
 

Constructor & Destructor Documentation

◆ Settings() [1/2]

plz::Settings::Settings ( )
default

◆ Settings() [2/2]

plz::Settings::Settings ( Preset  preset)
inlineexplicit

Member Function Documentation

◆ usePreset()

void plz::Settings::usePreset ( Preset  preset)
inline

◆ validate()

void plz::Settings::validate ( )
inline

Makes sure no values are out of valid range

Member Data Documentation

◆ dictionarySize

uint32_t plz::Settings::dictionarySize {1 << 24}

The dictionary size in bytes. The maximum value is 128 MB = (1 << 27) bytes for 32-bit version 1 GB = (1 << 30) bytes for 64-bit version The default value is 16 MB = (1 << 24) bytes. It's recommended to use the dictionary that is larger than 4 KB and that can be calculated as (1 << N) or (3 << N) sizes.

pocketlzma has a lower limit of (1 << 8) (256 bytes)

◆ fastBytes

uint16_t plz::Settings::fastBytes {32}

fb - Word size (the number of fast bytes). It can be in the range from 5 to 273. The default value is 32. Usually, a big number gives a little bit better compression ratio and slower compression process.

◆ level

uint8_t plz::Settings::level {5}

level - compression level: 0 <= level <= 9;

level dictSize algo fb 0: 16 KB 0 32 1: 64 KB 0 32 2: 256 KB 0 32 3: 1 MB 0 32 4: 4 MB 0 32 5: 16 MB 1 32 6: 32 MB 1 32 7+: 64 MB 1 64

The default value for "level" is 5.

algo = 0 means fast method algo = 1 means normal method

◆ literalContextBits

uint8_t plz::Settings::literalContextBits {3}

lc - The number of literal context bits (high bits of previous literal). It can be in the range from 0 to 8. The default value is 3. Sometimes lc=4 gives the gain for big files.

◆ literalPositionBits

uint8_t plz::Settings::literalPositionBits {0}

lp - The number of literal pos bits (low bits of current position for literals). It can be in the range from 0 to 4. The default value is 0. The lp switch is intended for periodical data when the period is equal to 2^lp. For example, for 32-bit (4 bytes) periodical data you can use lp=2. Often it's better to set lc=0, if you change lp switch.

◆ positionBits

uint8_t plz::Settings::positionBits {2}

pb - The number of pos bits (low bits of current position). It can be in the range from 0 to 4. The default value is 2. The pb switch is intended for periodical data when the period is equal 2^pb.


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