aboutsummaryrefslogtreecommitdiff
path: root/lvc/src/diff.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2023-03-07 21:52:04 +0100
committermetamuffin <metamuffin@disroot.org>2023-03-07 21:52:04 +0100
commit755325d6c8faa897ee686452831cb544d6c72d75 (patch)
tree7682fe2f18889fe95674f3de7242c5c1601b266d /lvc/src/diff.rs
parentda39ed55e1440fba61122c5fa2262ab9b0a9dd21 (diff)
downloadvideo-codec-experiments-755325d6c8faa897ee686452831cb544d6c72d75.tar
video-codec-experiments-755325d6c8faa897ee686452831cb544d6c72d75.tar.bz2
video-codec-experiments-755325d6c8faa897ee686452831cb544d6c72d75.tar.zst
more magic
Diffstat (limited to 'lvc/src/diff.rs')
-rw-r--r--lvc/src/diff.rs11
1 files changed, 7 insertions, 4 deletions
diff --git a/lvc/src/diff.rs b/lvc/src/diff.rs
index 354f146..fbb6b0a 100644
--- a/lvc/src/diff.rs
+++ b/lvc/src/diff.rs
@@ -1,4 +1,4 @@
-use crate::{Frame, Ref, View, P2};
+use crate::{Frame, Pixel, Ref, View, P2};
// 4ms
pub fn diff([frame1, frame2]: [&Frame; 2], view: View, rp: Ref) -> u32 {
@@ -8,14 +8,17 @@ pub fn diff([frame1, frame2]: [&Frame; 2], view: View, rp: Ref) -> u32 {
let pos = P2 { x, y };
let p1 = frame1[pos + rp.pos_off] + rp.color_off;
let p2 = frame2[pos];
- k += p1.r.abs_diff(p2.r) as u32
- + p1.g.abs_diff(p2.g) as u32
- + p1.b.abs_diff(p2.b) as u32;
+ k += pixel_diff(p1, p2)
}
}
k
}
+#[inline(always)]
+pub fn pixel_diff(p1: Pixel, p2: Pixel) -> u32 {
+ p1.r.abs_diff(p2.r) as u32 + p1.g.abs_diff(p2.g) as u32 + p1.b.abs_diff(p2.b) as u32
+}
+
// pub fn fast_diff([frame1, frame2]: [&Frame; 2], view: View, rp: Ref) -> u32 {
// assert!(view.size().x % 5 == 0);