diff --git a/src/deblock.rs b/src/deblock.rs
index 536d913b55ec58f6fd8411f462b66a8cd8005369..e045327a2dcb79ba39885075a72546ee24835aaf 100644
--- a/src/deblock.rs
+++ b/src/deblock.rs
@@ -122,10 +122,17 @@ fn hev4(thresh: i32, p1: i32, p0: i32, q0: i32, q1: i32) -> bool {
 
 // four taps, 4 outputs (two are trivial)
 fn filter_narrow2(p1: i32, p0: i32, q0: i32, q1: i32, shift: usize) -> [i32; 4] {
-    let outer_filter = clamp(p1 - q1, -128 << shift, (128 << shift) - 1);
-    let base_filter = clamp(outer_filter + 3 * (q0 - p0), -128 << shift, (128 << shift) - 1);
-    let filter1 = clamp(base_filter + 4, -128 << shift, (128 << shift)-1) >> 3;
-    let filter2 = clamp(base_filter + 3, -128 << shift, (128 << shift)-1) >> 3;
+    let filter0 = clamp(p1 - q1, -128 << shift, (128 << shift) - 1);
+    let filter1 = clamp(filter0 + 3*(q0 - p0) + 4, -128 << shift, (128 << shift)-1) >> 3;
+    // be certain our optimization removing a clamp is sound
+    debug_assert!( { let base = clamp(filter0 + 3 * (q0 - p0), -128 << shift, (128 << shift) - 1);
+                     let test = clamp(base + 4, -128 << shift, (128 << shift)-1) >> 3;
+                     filter1 == test } );
+    let filter2 = clamp(filter0 + 3*(q0 - p0) + 3, -128 << shift, (128 << shift)-1) >> 3;
+    // be certain our optimization removing a clamp is sound
+    debug_assert!( { let base = clamp(filter0 + 3 * (q0 - p0), -128 << shift, (128 << shift) - 1);
+                     let test = clamp(base + 3, -128 << shift, (128 << shift)-1) >> 3;
+                     filter2 == test } );
     [p1,
      clamp(p0 + filter2, 0, (256 << shift)-1),
      clamp(q0 - filter1, 0, (256 << shift)-1),
@@ -134,9 +141,16 @@ fn filter_narrow2(p1: i32, p0: i32, q0: i32, q1: i32, shift: usize) -> [i32; 4]
 
 // four taps, 4 outputs
 fn filter_narrow4(p1: i32, p0: i32, q0: i32, q1: i32, shift: usize) -> [i32; 4] {
-    let base_filter = clamp(3 * (q0 - p0), -128 << shift, (128 << shift) - 1);
-    let filter1 = clamp(base_filter + 4, -128 << shift, (128 << shift)-1) >> 3;
-    let filter2 = clamp(base_filter + 3, -128 << shift, (128 << shift)-1) >> 3;
+    let filter1 = clamp(3 * (q0 - p0) + 4, -128 << shift, (128 << shift)-1) >> 3;
+    // be certain our optimization removing a clamp is sound
+    debug_assert!( { let base = clamp(3 * (q0 - p0), -128 << shift, (128 << shift) - 1);
+                     let test = clamp(base + 4, -128 << shift, (128 << shift)-1) >> 3;
+                     filter1 == test } );
+    let filter2 = clamp(3 * (q0 - p0) + 3, -128 << shift, (128 << shift)-1) >> 3;
+    // be certain our optimization removing a clamp is sound
+    debug_assert!( { let base = clamp(3 * (q0 - p0), -128 << shift, (128 << shift) - 1);
+                     let test = clamp(base + 3, -128 << shift, (128 << shift)-1) >> 3;
+                     filter2 == test } );
     let filter3 = filter1 + 1 >> 1;
     [clamp(p1 + filter3, 0, (256 << shift)-1),
      clamp(p0 + filter2, 0, (256 << shift)-1),