From 23d6c2d3b56145999c14596733853bc6de49eff3 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Fri, 30 Dec 2022 19:25:28 +0100 Subject: fixed: linear transform, value scale and command line ars --- evc/src/codec/encode/advanced.rs | 30 ++++++++++++++++-------------- evc/src/codec/encode/mod.rs | 4 +++- 2 files changed, 19 insertions(+), 15 deletions(-) (limited to 'evc/src/codec/encode') diff --git a/evc/src/codec/encode/advanced.rs b/evc/src/codec/encode/advanced.rs index e15d8f2..0e45176 100644 --- a/evc/src/codec/encode/advanced.rs +++ b/evc/src/codec/encode/advanced.rs @@ -21,23 +21,25 @@ pub fn default( loop { let (mut d, mut p) = (diff, pm.clone()); - pk(&view, &prev, &mut d, &mut p, &pm, |p| p.translation.x += 4); - pk(&view, &prev, &mut d, &mut p, &pm, |p| p.translation.x -= 4); - pk(&view, &prev, &mut d, &mut p, &pm, |p| p.translation.y += 4); - pk(&view, &prev, &mut d, &mut p, &pm, |p| p.translation.y -= 4); - pk(&view, &prev, &mut d, &mut p, &pm, |p| p.translation.x += 2); - pk(&view, &prev, &mut d, &mut p, &pm, |p| p.translation.x -= 2); - pk(&view, &prev, &mut d, &mut p, &pm, |p| p.translation.y += 2); - pk(&view, &prev, &mut d, &mut p, &pm, |p| p.translation.y -= 2); - pk(&view, &prev, &mut d, &mut p, &pm, |p| p.translation.x += 1); - pk(&view, &prev, &mut d, &mut p, &pm, |p| p.translation.x -= 1); - pk(&view, &prev, &mut d, &mut p, &pm, |p| p.translation.y += 1); - pk(&view, &prev, &mut d, &mut p, &pm, |p| p.translation.y -= 1); + if config.do_translate { + pk(&view, &prev, &mut d, &mut p, &pm, |p| p.translation.x += 4); + pk(&view, &prev, &mut d, &mut p, &pm, |p| p.translation.x -= 4); + pk(&view, &prev, &mut d, &mut p, &pm, |p| p.translation.y += 4); + pk(&view, &prev, &mut d, &mut p, &pm, |p| p.translation.y -= 4); + pk(&view, &prev, &mut d, &mut p, &pm, |p| p.translation.x += 2); + pk(&view, &prev, &mut d, &mut p, &pm, |p| p.translation.x -= 2); + pk(&view, &prev, &mut d, &mut p, &pm, |p| p.translation.y += 2); + pk(&view, &prev, &mut d, &mut p, &pm, |p| p.translation.y -= 2); + pk(&view, &prev, &mut d, &mut p, &pm, |p| p.translation.x += 1); + pk(&view, &prev, &mut d, &mut p, &pm, |p| p.translation.x -= 1); + pk(&view, &prev, &mut d, &mut p, &pm, |p| p.translation.y += 1); + pk(&view, &prev, &mut d, &mut p, &pm, |p| p.translation.y -= 1); + } if config.do_value_scale { pk(&view, &prev, &mut d, &mut p, &pm, |p| p.value_scale += 1); pk(&view, &prev, &mut d, &mut p, &pm, |p| p.value_scale -= 1); } - if config.do_matrix_transform { + if config.do_linear_transform { pk(&view, &prev, &mut d, &mut p, &pm, |p| p.transform.a -= 1); pk(&view, &prev, &mut d, &mut p, &pm, |p| p.transform.a += 1); pk(&view, &prev, &mut d, &mut p, &pm, |p| p.transform.b -= 1); @@ -83,7 +85,7 @@ pub fn partial( pk(&view, &prev, &mut d, &mut p, &pm, |p| p.value_scale += 1); pk(&view, &prev, &mut d, &mut p, &pm, |p| p.value_scale -= 1); - + if d >= diff { break (diff, Block::AdvancedReference(pm)); } diff --git a/evc/src/codec/encode/mod.rs b/evc/src/codec/encode/mod.rs index 76fb481..8b7b342 100644 --- a/evc/src/codec/encode/mod.rs +++ b/evc/src/codec/encode/mod.rs @@ -17,8 +17,10 @@ pub struct EncodeConfig { pub min_block_size: isize, pub max_threads: usize, pub weight_factor: f64, + + pub do_translate: bool, pub do_value_scale: bool, - pub do_matrix_transform: bool, + pub do_linear_transform: bool, } #[derive(Debug, Clone, ValueEnum)] -- cgit v1.2.3-70-g09d2