Class: Omnizip::Filters::Bcj2Encoder
- Inherits:
-
Object
- Object
- Omnizip::Filters::Bcj2Encoder
- Includes:
- Bcj2Constants
- Defined in:
- lib/omnizip/filters/bcj2/encoder.rb
Overview
BCJ2 encoder - splits data into 4 streams.
NOTE: BCJ2 encoding is extremely complex and is not yet implemented. This is primarily needed for compression, while decoding (decompression) is the more common use case.
BCJ2 encoding requires:
- Range encoder implementation
- Proper probability model management
- Stream splitting logic
- Address conversion to absolute
This will be implemented in a future version.
Constant Summary
Constants included from Bcj2Constants
Omnizip::Filters::Bcj2Constants::ADDRESS_SIZE, Omnizip::Filters::Bcj2Constants::BIT_MODEL_TOTAL, Omnizip::Filters::Bcj2Constants::BIT_MODEL_TOTAL_BITS, Omnizip::Filters::Bcj2Constants::INITIAL_PROB, Omnizip::Filters::Bcj2Constants::MOVE_BITS, Omnizip::Filters::Bcj2Constants::NUM_PROBS, Omnizip::Filters::Bcj2Constants::NUM_STREAMS, Omnizip::Filters::Bcj2Constants::OPCODE_CALL, Omnizip::Filters::Bcj2Constants::OPCODE_JUMP, Omnizip::Filters::Bcj2Constants::STREAM_CALL, Omnizip::Filters::Bcj2Constants::STREAM_JUMP, Omnizip::Filters::Bcj2Constants::STREAM_MAIN, Omnizip::Filters::Bcj2Constants::STREAM_RC, Omnizip::Filters::Bcj2Constants::TOP_VALUE
Instance Method Summary collapse
-
#encode ⇒ Bcj2StreamData
Encode data into 4 streams.
-
#initialize(data, position = 0) ⇒ Bcj2Encoder
constructor
Initialize encoder.
Constructor Details
#initialize(data, position = 0) ⇒ Bcj2Encoder
Initialize encoder.
41 42 43 44 |
# File 'lib/omnizip/filters/bcj2/encoder.rb', line 41 def initialize(data, position = 0) @data = data @position = position end |
Instance Method Details
#encode ⇒ Bcj2StreamData
Encode data into 4 streams.
50 51 52 53 54 55 |
# File 'lib/omnizip/filters/bcj2/encoder.rb', line 50 def encode raise NotImplementedError, "BCJ2 encoding is not yet implemented. " \ "BCJ2 is primarily used for decompression. " \ "For compression, use the simpler BCJ-x86 filter." end |