From a006d4d1b6fd6d5136a96437048682063d3bd5c7 Mon Sep 17 00:00:00 2001 From: Helmut Januschka Date: Fri, 20 Mar 2026 08:56:09 +0100 Subject: [PATCH] perf: use direct gradient decode path in SingleGradientOnly --- jxl/src/frame/modular/decode/specialized_trees.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/jxl/src/frame/modular/decode/specialized_trees.rs b/jxl/src/frame/modular/decode/specialized_trees.rs index dfe3bde37..e22bf427a 100644 --- a/jxl/src/frame/modular/decode/specialized_trees.rs +++ b/jxl/src/frame/modular/decode/specialized_trees.rs @@ -348,9 +348,13 @@ impl ModularChannelDecoder for SingleGradientOnly { br: &mut BitReader, histograms: &Histograms, ) -> i32 { - let pred = Predictor::Gradient.predict_one(prediction_data, 0); + let pred = clamped_gradient( + prediction_data.left as i64, + prediction_data.top as i64, + prediction_data.topleft as i64, + ); let dec = reader.read_signed_clustered_inline(histograms, br, self.clustered_ctx); - make_pixel(dec, 1, pred) + dec.wrapping_add(pred as i32) } }