Module: JXL::Headers::CustomTransform
- Defined in:
- lib/jxl/headers/custom_transform.rb
Defined Under Namespace
Classes: Opsin, TransformData
Constant Summary collapse
- WEIGHT_COUNTS =
[15, 55, 210].freeze
- DEFAULT_MATRIX =
[11.031566901960783, -9.866943921568629, -0.16462299647058826, -3.254147380392157, 4.418770392156863, -0.16462299647058826, -3.6588512862745097, 2.7129230470588235, 1.9459282392156863].freeze
- DEFAULT_BIASES =
Array.new(3, -0.0037930732552754493).freeze
- DEFAULT_QUANT_BIASES =
[0.945349926692846, 0.9299455010825141, 0.9500648966626564, 0.145].freeze
Class Method Summary collapse
Class Method Details
.read(reader, xyb_encoded:) ⇒ Object
17 18 19 20 21 22 23 24 25 26 |
# File 'lib/jxl/headers/custom_transform.rb', line 17 def read(reader, xyb_encoded:) return defaults if Bit::Field.read_bool(reader) opsin = xyb_encoded ? read_opsin(reader) : nil mask = reader.read(3) weights = WEIGHT_COUNTS.each_with_index.map do |count, index| mask[index].zero? ? nil : Array.new(count) { Bit::Field.f16(reader) } end TransformData.new(opsin:, weights:) end |