diff options
author | metamuffin <metamuffin@disroot.org> | 2023-11-18 14:49:17 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2023-11-18 14:49:17 +0100 |
commit | cdb9a3afabe7a239a08c640b19242ff9b1e3b051 (patch) | |
tree | 4903a248c588ce350feb74640ded3335e1721915 /flowy/src/motion/enc.wgsl | |
parent | 14051d7470d7662430694f0752d00483b52e1278 (diff) | |
download | video-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.wgsl | 41 |
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); -// } - |