Parolin 0.7.9 6796
Console (soon DLLs) to do a tar like job
Loading...
Searching...
No Matches
lzma_lzma1_decoder Struct Reference

Public Types

enum  {
  SEQ_NORMALIZE , SEQ_IS_MATCH , seq_8 =(SEQ_LITERAL) , seq_8 =(SEQ_LITERAL) ,
  SEQ_LITERAL_WRITE , SEQ_IS_REP , seq_len =(SEQ_MATCH_LEN) , seq_6 =(SEQ_DIST_SLOT) ,
  SEQ_DIST_MODEL , SEQ_DIRECT , seq_4 =(SEQ_ALIGN) , SEQ_EOPM ,
  SEQ_IS_REP0 , SEQ_SHORTREP , SEQ_IS_REP0_LONG , SEQ_IS_REP1 ,
  SEQ_IS_REP2 , seq_len =(SEQ_MATCH_LEN) , SEQ_COPY
}
 Position where to continue the decoder loop. More...
 
enum  {
  SEQ_NORMALIZE , SEQ_IS_MATCH , seq_8 =(SEQ_LITERAL) , seq_8 =(SEQ_LITERAL) ,
  SEQ_LITERAL_WRITE , SEQ_IS_REP , seq_len =(SEQ_MATCH_LEN) , seq_6 =(SEQ_DIST_SLOT) ,
  SEQ_DIST_MODEL , SEQ_DIRECT , seq_4 =(SEQ_ALIGN) , SEQ_EOPM ,
  SEQ_IS_REP0 , SEQ_SHORTREP , SEQ_IS_REP0_LONG , SEQ_IS_REP1 ,
  SEQ_IS_REP2 , seq_len =(SEQ_MATCH_LEN) , SEQ_COPY
}
 Position where to continue the decoder loop. More...
 
enum  {
  SEQ_NORMALIZE , SEQ_IS_MATCH , SEQ_LITERAL , SEQ_LITERAL_MATCHED ,
  SEQ_LITERAL_WRITE , SEQ_IS_REP , SEQ_MATCH_LEN_CHOICE , SEQ_MATCH_LEN_CHOICE2 ,
  SEQ_MATCH_LEN_BITTREE , SEQ_DIST_SLOT , SEQ_DIST_MODEL , SEQ_DIRECT ,
  SEQ_ALIGN , SEQ_EOPM , SEQ_IS_REP0 , SEQ_SHORTREP ,
  SEQ_IS_REP0_LONG , SEQ_IS_REP1 , SEQ_IS_REP2 , SEQ_REP_LEN_CHOICE ,
  SEQ_REP_LEN_CHOICE2 , SEQ_REP_LEN_BITTREE , SEQ_COPY
}
 Position where to continue the decoder loop. More...
 

Data Fields

probability literal [LITERAL_CODERS_MAX][LITERAL_CODER_SIZE]
 Literals; see comments in lzma_common.h.
 
probability is_match [STATES][POS_STATES_MAX]
 If 1, it's a match. Otherwise it's a single 8-bit literal.
 
probability is_rep [STATES]
 If 1, it's a repeated match. The distance is one of rep0 .. rep3.
 
probability is_rep0 [STATES]
 
probability is_rep1 [STATES]
 
probability is_rep2 [STATES]
 If 0, distance of a repeated match is rep2. Otherwise it is rep3.
 
probability is_rep0_long [STATES][POS_STATES_MAX]
 
probability dist_slot [DIST_STATES][DIST_SLOTS]
 
probability pos_special [FULL_DISTANCES - DIST_MODEL_END]
 
probability pos_align [ALIGN_SIZE]
 
lzma_length_decoder match_len_decoder
 Length of a normal match.
 
lzma_length_decoder rep_len_decoder
 Length of a repeated match.
 
lzma_range_decoder rc
 
lzma_lzma_state state
 
uint32_t rep0
 Distance of the latest match.
 
uint32_t rep1
 Distance of second latest match.
 
uint32_t rep2
 Distance of third latest match.
 
uint32_t rep3
 Distance of fourth latest match.
 
uint32_t pos_mask
 
uint32_t literal_context_bits
 
uint32_t literal_pos_mask
 
lzma_vli uncompressed_size
 
bool allow_eopm
 
enum lzma_lzma1_decoder:: { ... }  sequence
 Position where to continue the decoder loop.
 
probabilityprobs
 Base of the current probability tree.
 
uint32_t symbol
 
uint32_t limit
 
uint32_t offset
 
uint32_t len
 
enum lzma_lzma1_decoder:: { ... }  sequence
 Position where to continue the decoder loop.
 
uint32_t literal_mask
 
enum lzma_lzma1_decoder:: { ... }  sequence
 Position where to continue the decoder loop.
 

Member Enumeration Documentation

◆ anonymous enum

anonymous enum

Position where to continue the decoder loop.

Enumerator
SEQ_NORMALIZE 
SEQ_IS_MATCH 
seq_8 
seq_8 
SEQ_LITERAL_WRITE 
SEQ_IS_REP 
seq_len 
seq_6 
SEQ_DIST_MODEL 
SEQ_DIRECT 
seq_4 
SEQ_EOPM 
SEQ_IS_REP0 
SEQ_SHORTREP 
SEQ_IS_REP0_LONG 
SEQ_IS_REP1 
SEQ_IS_REP2 
seq_len 
SEQ_COPY 

◆ anonymous enum

anonymous enum

Position where to continue the decoder loop.

Enumerator
SEQ_NORMALIZE 
SEQ_IS_MATCH 
seq_8 
seq_8 
SEQ_LITERAL_WRITE 
SEQ_IS_REP 
seq_len 
seq_6 
SEQ_DIST_MODEL 
SEQ_DIRECT 
seq_4 
SEQ_EOPM 
SEQ_IS_REP0 
SEQ_SHORTREP 
SEQ_IS_REP0_LONG 
SEQ_IS_REP1 
SEQ_IS_REP2 
seq_len 
SEQ_COPY 

◆ anonymous enum

anonymous enum

Position where to continue the decoder loop.

Enumerator
SEQ_NORMALIZE 
SEQ_IS_MATCH 
SEQ_LITERAL 
SEQ_LITERAL_MATCHED 
SEQ_LITERAL_WRITE 
SEQ_IS_REP 
SEQ_MATCH_LEN_CHOICE 
SEQ_MATCH_LEN_CHOICE2 
SEQ_MATCH_LEN_BITTREE 
SEQ_DIST_SLOT 
SEQ_DIST_MODEL 
SEQ_DIRECT 
SEQ_ALIGN 
SEQ_EOPM 
SEQ_IS_REP0 
SEQ_SHORTREP 
SEQ_IS_REP0_LONG 
SEQ_IS_REP1 
SEQ_IS_REP2 
SEQ_REP_LEN_CHOICE 
SEQ_REP_LEN_CHOICE2 
SEQ_REP_LEN_BITTREE 
SEQ_COPY 

Field Documentation

◆ allow_eopm

bool allow_eopm

True if end of payload marker (EOPM) is allowed even when uncompressed_size is known; false if EOPM must not be present. This is ignored if uncompressed_size == LZMA_VLI_UNKNOWN.

◆ dist_slot

probability dist_slot

Probability tree for the highest two bits of the match distance. There is a separate probability tree for match lengths of 2 (i.e. MATCH_LEN_MIN), 3, 4, and [5, 273].

◆ is_match

probability is_match

If 1, it's a match. Otherwise it's a single 8-bit literal.

◆ is_rep

probability is_rep

If 1, it's a repeated match. The distance is one of rep0 .. rep3.

◆ is_rep0

probability is_rep0

If 0, distance of a repeated match is rep0. Otherwise check is_rep1.

◆ is_rep0_long

probability is_rep0_long

If 1, the repeated match has length of one byte. Otherwise the length is decoded from rep_len_decoder.

◆ is_rep1

probability is_rep1

If 0, distance of a repeated match is rep1. Otherwise check is_rep2.

◆ is_rep2

probability is_rep2

If 0, distance of a repeated match is rep2. Otherwise it is rep3.

◆ len

uint32_t len

If decoding a literal: match byte. If decoding a match: length of the match.

◆ limit

uint32_t limit

Used as a loop termination condition on bittree decoders and direct bits decoder.

◆ literal

probability literal

Literals; see comments in lzma_common.h.

◆ literal_context_bits

uint32_t literal_context_bits

◆ literal_mask

uint32_t literal_mask

◆ literal_pos_mask

uint32_t literal_pos_mask

◆ match_len_decoder

lzma_length_decoder match_len_decoder

Length of a normal match.

◆ offset

uint32_t offset

Matched literal decoder: 0x100 or 0 to help avoiding branches. Bittree reverse decoders: Offset of the next bit: 1 << offset

◆ pos_align

probability pos_align

Probability tree for the lowest four bits of a match distance that is equal to or greater than 128.

◆ pos_mask

uint32_t pos_mask

◆ pos_special

probability pos_special

Probability trees for additional bits for match distance when the distance is in the range [4, 127].

◆ probs

probability * probs

Base of the current probability tree.

◆ rc

◆ rep0

uint32_t rep0

Distance of the latest match.

◆ rep1

uint32_t rep1

Distance of second latest match.

◆ rep2

uint32_t rep2

Distance of third latest match.

◆ rep3

uint32_t rep3

Distance of fourth latest match.

◆ rep_len_decoder

lzma_length_decoder rep_len_decoder

Length of a repeated match.

◆ [] [1/3]

enum { ... } sequence

Position where to continue the decoder loop.

◆ [] [2/3]

enum { ... } sequence

Position where to continue the decoder loop.

◆ [] [3/3]

enum { ... } sequence

Position where to continue the decoder loop.

◆ state

◆ symbol

uint32_t symbol

Symbol being decoded. This is also used as an index variable in bittree decoders: probs[symbol]

◆ uncompressed_size

lzma_vli uncompressed_size

Uncompressed size as bytes, or LZMA_VLI_UNKNOWN if end of payload marker is expected.


The documentation for this struct was generated from the following files: