Module: JXL::VarDCT

Defined in:
lib/jxl/vardct/decoder.rb,
lib/jxl/vardct/dequant.rb,
lib/jxl/vardct/lf_group.rb,
lib/jxl/vardct/hf_global.rb,
lib/jxl/vardct/lf_global.rb,
lib/jxl/vardct/quantizer.rb,
lib/jxl/vardct/pass_group.rb,
lib/jxl/vardct/ac_strategy.rb,
lib/jxl/vardct/coeff_order.rb,
lib/jxl/vardct/reconstructor.rb,
lib/jxl/vardct/chroma_from_luma.rb,
lib/jxl/vardct/block_context_map.rb

Defined Under Namespace

Modules: CoeffOrder, Decoder, Reconstructor Classes: AcStrategy, BlockContextMap, ChromaFromLuma, Dequant, HFGlobal, HFPass, LFGlobal, LFGroup, PassGroup, QuantizedBlock, Quantizer

Constant Summary collapse

ORDER_DISTRIBUTION =
[Bit::Field.val(0x5F), Bit::Field.val(0x13),
Bit::Field.val(0), Bit::Field.bits(13)].freeze
QUANTIZER_SCALE_DENOMINATOR =
1 << 16
QUANTIZER_SCALE_DISTRIBUTION =
[Bit::Field.bits_offset(11, 1), Bit::Field.bits_offset(11, 2049),
Bit::Field.bits_offset(12, 4097), Bit::Field.bits_offset(16, 8193)].freeze
QUANTIZER_DC_DISTRIBUTION =
[Bit::Field.val(16), Bit::Field.bits_offset(5, 1),
Bit::Field.bits_offset(8, 1), Bit::Field.bits_offset(16, 1)].freeze
COEFFICIENT_FREQUENCY_CONTEXT =
[
  0xBAD, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
  15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,
  23, 23, 23, 23, 24, 24, 24, 24, 25, 25, 25, 25, 26, 26, 26, 26,
  27, 27, 27, 27, 28, 28, 28, 28, 29, 29, 29, 29, 30, 30, 30, 30
].freeze
COEFFICIENT_NONZERO_CONTEXT =
[
  0xBAD, 0, 31, 62, 62, 93, 93, 93, 93, 123, 123, 123, 123,
  152, 152, 152, 152, 152, 152, 152, 152, 180, 180, 180, 180, 180,
  180, 180, 180, 180, 180, 180, 180, 206, 206, 206, 206, 206, 206,
  206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206,
  206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206
].freeze
AC_STRATEGY_NAMES =
%i[
  dct8x8 identity dct2x2 dct4x4 dct16x16 dct32x32 dct16x8 dct8x16 dct32x8 dct8x32 dct32x16 dct16x32
  dct4x8 dct8x4 afv0 afv1 afv2 afv3 dct64x64 dct64x32 dct32x64 dct128x128 dct128x64 dct64x128
  dct256x256 dct256x128 dct128x256
].freeze
BLOCK_WIDTHS =
[1, 1, 1, 1, 2, 4, 1, 2, 1, 4, 2, 4, 1, 1, 1, 1, 1, 1, 8, 4, 8, 16, 8, 16, 32, 16, 32].freeze
BLOCK_HEIGHTS =
[1, 1, 1, 1, 2, 4, 2, 1, 4, 1, 4, 2, 1, 1, 1, 1, 1, 1, 8, 8, 4, 16, 16, 8, 32, 32, 16].freeze
STRATEGY_ORDERS =
[0, 1, 1, 1, 2, 3, 4, 4, 5, 5, 6, 6, 1, 1, 1, 1, 1, 1, 7, 8, 8, 9, 10, 10, 11, 12, 12].freeze
CFL_FACTOR_DISTRIBUTION =
[Bit::Field.val(84), Bit::Field.val(256),
Bit::Field.bits_offset(8, 2), Bit::Field.bits_offset(16, 258)].freeze
DEFAULT_BLOCK_CONTEXT_MAP =
[
  0, 1, 2, 2, 3, 3, 4, 5, 6, 6, 6, 6, 6,
  7, 8, 9, 9, 10, 11, 12, 13, 14, 14, 14, 14, 14,
  7, 8, 9, 9, 10, 11, 12, 13, 14, 14, 14, 14, 14
].freeze
BLOCK_DC_DISTRIBUTION =
[Bit::Field.bits(4), Bit::Field.bits_offset(8, 16),
Bit::Field.bits_offset(16, 272), Bit::Field.bits_offset(32, 65_808)].freeze
BLOCK_QF_DISTRIBUTION =
[Bit::Field.bits(2), Bit::Field.bits_offset(3, 4),
Bit::Field.bits_offset(5, 12), Bit::Field.bits_offset(8, 44)].freeze