diff options
author | metamuffin <metamuffin@disroot.org> | 2023-03-07 21:52:04 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2023-03-07 21:52:04 +0100 |
commit | 755325d6c8faa897ee686452831cb544d6c72d75 (patch) | |
tree | 7682fe2f18889fe95674f3de7242c5c1601b266d /lvc/src/diff.rs | |
parent | da39ed55e1440fba61122c5fa2262ab9b0a9dd21 (diff) | |
download | video-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.rs | 11 |
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); |