Class: Omnizip::Algorithms::PPMd8

Inherits:
PPMdBase show all
Includes:
Constants
Defined in:
lib/omnizip/algorithms/ppmd8.rb,
lib/omnizip/algorithms/ppmd8/model.rb,
lib/omnizip/algorithms/ppmd8/context.rb,
lib/omnizip/algorithms/ppmd8/decoder.rb,
lib/omnizip/algorithms/ppmd8/encoder.rb,
lib/omnizip/algorithms/ppmd8/constants.rb,
lib/omnizip/algorithms/ppmd8/restoration_method.rb

Overview

PPMd8 (PPMdI) compression algorithm

PPMd8 is an improved variant of PPMd7 that adds:

  • Multiple restoration methods (RESTART, CUT_OFF)
  • Enhanced memory management with glue counting
  • Improved context update algorithms
  • Run-length encoding support for better repetition handling

This implementation follows the PPMd8 specification from 7-Zip.

Defined Under Namespace

Modules: Constants Classes: Context, Decoder, Encoder, Model, RestorationMethod

Constant Summary

Constants included from Constants

Constants::BIN_SCALE, Constants::DEFAULT_RESTORE_METHOD, Constants::GLUE_COUNT_THRESHOLD, Constants::INIT_ESCAPE_FREQ, Constants::INTERVAL, Constants::INT_BITS, Constants::MAX_FREQ, Constants::MAX_STATES, Constants::PERIOD_BITS, Constants::PROB_TOTAL, Constants::RESTORE_METHOD_CUT_OFF, Constants::RESTORE_METHOD_RESTART, Constants::SEE_CONTEXTS, Constants::SUFFIX_CONTEXTS, Constants::UNIT_ALLOC_SIZE, Constants::UNIT_SIZE

Constants included from Omnizip::Algorithms::PPMdBase::BaseConstants

Omnizip::Algorithms::PPMdBase::BaseConstants::ALPHABET_SIZE, Omnizip::Algorithms::PPMdBase::BaseConstants::BOT_VALUE, Omnizip::Algorithms::PPMdBase::BaseConstants::DEFAULT_MEM_SIZE, Omnizip::Algorithms::PPMdBase::BaseConstants::DEFAULT_ORDER, Omnizip::Algorithms::PPMdBase::BaseConstants::MAX_MEM_SIZE, Omnizip::Algorithms::PPMdBase::BaseConstants::MAX_ORDER, Omnizip::Algorithms::PPMdBase::BaseConstants::MIN_MEM_SIZE, Omnizip::Algorithms::PPMdBase::BaseConstants::MIN_ORDER, Omnizip::Algorithms::PPMdBase::BaseConstants::TOP_VALUE

Instance Attribute Summary

Attributes inherited from Omnizip::Algorithm

#filter, #options

Class Method Summary collapse

Methods inherited from PPMdBase

#compress, #decompress

Methods inherited from Omnizip::Algorithm

#compress, #decompress, inherited, #initialize, #with_filter

Constructor Details

This class inherits a constructor from Omnizip::Algorithm

Class Method Details

.metadataAlgorithmMetadata

Algorithm metadata

Returns:

  • (AlgorithmMetadata)

    Metadata describing this algorithm



52
53
54
55
56
57
58
59
60
# File 'lib/omnizip/algorithms/ppmd8.rb', line 52

def self.
  Models::AlgorithmMetadata.new.tap do |m|
    m.name = "ppmd8"
    m.description = "PPMd8 (PPMdI) - Enhanced Prediction by " \
                    "Partial Matching with improved restoration"
    m.version = "1.0.0"
    m.supports_streaming = true
  end
end