aboutsummaryrefslogtreecommitdiff
path: root/flowy/src/motion/enc.wgsl
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2023-11-18 14:49:17 +0100
committermetamuffin <metamuffin@disroot.org>2023-11-18 14:49:17 +0100
commitcdb9a3afabe7a239a08c640b19242ff9b1e3b051 (patch)
tree4903a248c588ce350feb74640ded3335e1721915 /flowy/src/motion/enc.wgsl
parent14051d7470d7662430694f0752d00483b52e1278 (diff)
downloadvideo-codec-experiments-cdb9a3afabe7a239a08c640b19242ff9b1e3b051.tar
video-codec-experiments-cdb9a3afabe7a239a08c640b19242ff9b1e3b051.tar.bz2
video-codec-experiments-cdb9a3afabe7a239a08c640b19242ff9b1e3b051.tar.zst
debug view
Diffstat (limited to 'flowy/src/motion/enc.wgsl')
-rw-r--r--flowy/src/motion/enc.wgsl41
1 files changed, 12 insertions, 29 deletions
diff --git a/flowy/src/motion/enc.wgsl b/flowy/src/motion/enc.wgsl
index 46fe363..6ba3081 100644
--- a/flowy/src/motion/enc.wgsl
+++ b/flowy/src/motion/enc.wgsl
@@ -66,31 +66,19 @@ fn apply_tint(uv: vec2<i32>) {
let tint = (average_ncol - average_pcol) / f32(params.block_size.x * params.block_size.y);
- // var err = 0.;
- // for (var x = 0; x < params.block_size.x; x++) {
- // for (var y = 0; y < params.block_size.y; y++) {
- // let base = uv + vec2(x, y);
- // let pcol = textureLoad(prev, base + best_offset, 0).rgb + tint;
- // let ncol = textureLoad(next, base, 0).rgb;
- // err += distance(pcol, ncol);
- // }
- // }
- // if err < best_error {
- best_tint = tint;
- // }
+ var err = 0.;
+ for (var x = 0; x < params.block_size.x; x++) {
+ for (var y = 0; y < params.block_size.y; y++) {
+ let base = uv + vec2(x, y);
+ let pcol = textureLoad(prev, base + best_offset, 0).rgb + tint;
+ let ncol = textureLoad(next, base, 0).rgb;
+ err += distance(pcol, ncol);
+ }
+ }
+ if err < best_error {
+ best_tint = tint;
+ }
}
-// fn search_offset(uv: vec2<i32>) -> SearchRes {
-// var best_err = 100000000.;
-// var best_offset = vec2(0);
-// // TODO: better ordering
-// for (var ox = -params.search_radius; ox <= params.search_radius; ox++) {
-// for (var oy = -params.search_radius; oy <= params.search_radius; oy++) {
-// let offset = vec2(ox, oy);
-// }
-// }
-// return SearchRes(best_offset, best_err);
-// }
-
fn test_offset(uv: vec2<i32>, offset: vec2<i32>) {
var err = 0.;
@@ -108,8 +96,3 @@ fn test_offset(uv: vec2<i32>, offset: vec2<i32>) {
}
}
-
-// fn colormap_vec(v: vec2<f32>) -> vec3<f32> {
-// return vec3(v.y, v.x - 0.5 * v.y, -v.x - 0.5 * v.y);
-// }
-