cdef_{neon,sse4}: rm unneeded clamp for 2ndary damping
in 8-bit the range for secondary_strength is [0, 4] which results in a
log2 range of [0, 2]. the range for damping is [3, 6] for luma and [2,
5] for chroma. damping - log2(secondary_strength) will always be >= 0.
PiperOrigin-RevId: 311054299
Change-Id: Ib95b111c671a9520d34ef4096b82f4fa44b05047
diff --git a/src/dsp/arm/cdef_neon.cc b/src/dsp/arm/cdef_neon.cc
index 7ef662e..c005f08 100644
--- a/src/dsp/arm/cdef_neon.cc
+++ b/src/dsp/arm/cdef_neon.cc
@@ -334,13 +334,19 @@
int16x8_t primary_damping_shift, secondary_damping_shift;
// FloorLog2() requires input to be > 0.
+ // 8-bit damping range: Y: [3, 6], UV: [2, 5].
if (enable_primary) {
+ // primary_strength: [0, 15] -> FloorLog2: [0, 3] so a clamp is necessary
+ // for UV filtering.
primary_damping_shift =
vdupq_n_s16(-std::max(0, damping - FloorLog2(primary_strength)));
}
if (enable_secondary) {
+ // secondary_strength: [0, 4] -> FloorLog2: [0, 2] so no clamp to 0 is
+ // necessary.
+ assert(damping - FloorLog2(secondary_strength) >= 0);
secondary_damping_shift =
- vdupq_n_s16(-std::max(0, damping - FloorLog2(secondary_strength)));
+ vdupq_n_s16(-(damping - FloorLog2(secondary_strength)));
}
const int primary_tap_0 = kCdefPrimaryTaps[primary_strength & 1][0];
diff --git a/src/dsp/x86/cdef_sse4.cc b/src/dsp/x86/cdef_sse4.cc
index 513e8fd..9b283b3 100644
--- a/src/dsp/x86/cdef_sse4.cc
+++ b/src/dsp/x86/cdef_sse4.cc
@@ -339,13 +339,19 @@
__m128i primary_damping_shift, secondary_damping_shift;
// FloorLog2() requires input to be > 0.
+ // 8-bit damping range: Y: [3, 6], UV: [2, 5].
if (enable_primary) {
+ // primary_strength: [0, 15] -> FloorLog2: [0, 3] so a clamp is necessary
+ // for UV filtering.
primary_damping_shift =
_mm_cvtsi32_si128(std::max(0, damping - FloorLog2(primary_strength)));
}
if (enable_secondary) {
+ // secondary_strength: [0, 4] -> FloorLog2: [0, 2] so no clamp to 0 is
+ // necessary.
+ assert(damping - FloorLog2(secondary_strength) >= 0);
secondary_damping_shift =
- _mm_cvtsi32_si128(std::max(0, damping - FloorLog2(secondary_strength)));
+ _mm_cvtsi32_si128(damping - FloorLog2(secondary_strength));
}
const __m128i primary_tap_0 =