Class: Omnizip::Algorithms::LZMA::XzProbabilityModels
- Inherits:
-
Object
- Object
- Omnizip::Algorithms::LZMA::XzProbabilityModels
- Includes:
- Constants
- Defined in:
- lib/omnizip/algorithms/lzma/xz_probability_models.rb
Overview
XZ Utils-compatible probability models
Organizes all probability models used by LZMA encoder, matching XZ Utils structure exactly. All models start at probability 1024 (BIT_MODEL_TOTAL / 2 = 0.5 probability).
Uses XzBufferedRangeEncoder::Probability for mutable inline updates.
Based on: xz/src/liblzma/lzma/lzma_encoder_private.h
Constant Summary
Constants included from Constants
Constants::BIT_MODEL_TOTAL, Constants::COMPRESSION_LEVEL_DEFAULT, Constants::COMPRESSION_LEVEL_MAX, Constants::COMPRESSION_LEVEL_MIN, Constants::DICT_SIZE_MAX, Constants::DICT_SIZE_MIN, Constants::DIST_ALIGN_BITS, Constants::DIST_ALIGN_SIZE, Constants::DIST_SLOT_FAST_LIMIT, Constants::END_POS_MODEL_INDEX, Constants::EOS_MARKER, Constants::INIT_PROBS, Constants::LEN_HIGH_SYMBOLS, Constants::LEN_LOW_SYMBOLS, Constants::LEN_MID_SYMBOLS, Constants::LIT_SIZE_MAX, Constants::MATCH_LEN_MAX, Constants::MATCH_LEN_MIN, Constants::MOVE_BITS, Constants::NUM_DIRECT_BITS, Constants::NUM_DIST_SLOTS, Constants::NUM_DIST_SLOT_BITS, Constants::NUM_FULL_DISTANCES, Constants::NUM_LEN_HIGH_BITS, Constants::NUM_LEN_LOW_BITS, Constants::NUM_LEN_MID_BITS, Constants::NUM_LEN_TO_POS_STATES, Constants::NUM_LIT_CONTEXT_BITS_MAX, Constants::NUM_LIT_POS_BITS_MAX, Constants::NUM_POS_BITS_MAX, Constants::NUM_STATES, Constants::POS_STATES_MAX, Constants::START_POS_MODEL_INDEX, Constants::TOP
Instance Attribute Summary collapse
-
#dist_align ⇒ Object
readonly
Distance models.
-
#dist_slot ⇒ Object
readonly
Distance models.
-
#dist_special ⇒ Object
readonly
Distance models.
-
#is_match ⇒ Object
readonly
Match type models.
-
#is_rep ⇒ Object
readonly
Match type models.
-
#is_rep0 ⇒ Object
readonly
Match type models.
-
#is_rep0_long ⇒ Object
readonly
Returns the value of attribute is_rep0_long.
-
#is_rep1 ⇒ Object
readonly
Match type models.
-
#is_rep2 ⇒ Object
readonly
Match type models.
-
#literal ⇒ Object
readonly
Literal context models.
-
#match_len_encoder ⇒ Object
readonly
Length encoders.
-
#rep_len_encoder ⇒ Object
readonly
Length encoders.
Instance Method Summary collapse
-
#initialize(lc, lp, pb) ⇒ XzProbabilityModels
constructor
Initialize all probability models.
-
#reset ⇒ Object
Reset all probability models to initial state.
Constructor Details
#initialize(lc, lp, pb) ⇒ XzProbabilityModels
Initialize all probability models
36 37 38 39 40 41 42 43 44 45 |
# File 'lib/omnizip/algorithms/lzma/xz_probability_models.rb', line 36 def initialize(lc, lp, pb) @lc = lc @lp = lp @pb = pb init_literal_models(lc, lp) init_match_models(pb) init_distance_models init_length_encoders(pb) end |
Instance Attribute Details
#dist_align ⇒ Object (readonly)
Distance models
26 27 28 |
# File 'lib/omnizip/algorithms/lzma/xz_probability_models.rb', line 26 def dist_align @dist_align end |
#dist_slot ⇒ Object (readonly)
Distance models
26 27 28 |
# File 'lib/omnizip/algorithms/lzma/xz_probability_models.rb', line 26 def dist_slot @dist_slot end |
#dist_special ⇒ Object (readonly)
Distance models
26 27 28 |
# File 'lib/omnizip/algorithms/lzma/xz_probability_models.rb', line 26 def dist_special @dist_special end |
#is_match ⇒ Object (readonly)
Match type models
22 23 24 |
# File 'lib/omnizip/algorithms/lzma/xz_probability_models.rb', line 22 def is_match @is_match end |
#is_rep ⇒ Object (readonly)
Match type models
22 23 24 |
# File 'lib/omnizip/algorithms/lzma/xz_probability_models.rb', line 22 def is_rep @is_rep end |
#is_rep0 ⇒ Object (readonly)
Match type models
22 23 24 |
# File 'lib/omnizip/algorithms/lzma/xz_probability_models.rb', line 22 def is_rep0 @is_rep0 end |
#is_rep0_long ⇒ Object (readonly)
Returns the value of attribute is_rep0_long.
23 24 25 |
# File 'lib/omnizip/algorithms/lzma/xz_probability_models.rb', line 23 def is_rep0_long @is_rep0_long end |
#is_rep1 ⇒ Object (readonly)
Match type models
22 23 24 |
# File 'lib/omnizip/algorithms/lzma/xz_probability_models.rb', line 22 def is_rep1 @is_rep1 end |
#is_rep2 ⇒ Object (readonly)
Match type models
22 23 24 |
# File 'lib/omnizip/algorithms/lzma/xz_probability_models.rb', line 22 def is_rep2 @is_rep2 end |
#literal ⇒ Object (readonly)
Literal context models
19 20 21 |
# File 'lib/omnizip/algorithms/lzma/xz_probability_models.rb', line 19 def literal @literal end |
#match_len_encoder ⇒ Object (readonly)
Length encoders
29 30 31 |
# File 'lib/omnizip/algorithms/lzma/xz_probability_models.rb', line 29 def match_len_encoder @match_len_encoder end |
#rep_len_encoder ⇒ Object (readonly)
Length encoders
29 30 31 |
# File 'lib/omnizip/algorithms/lzma/xz_probability_models.rb', line 29 def rep_len_encoder @rep_len_encoder end |
Instance Method Details
#reset ⇒ Object
Reset all probability models to initial state
48 49 50 51 52 53 |
# File 'lib/omnizip/algorithms/lzma/xz_probability_models.rb', line 48 def reset reset_literal_models reset_match_models reset_distance_models reset_length_encoders end |