From 86eda32f9d8fed77136ffd3495e93c4c37e7671b Mon Sep 17 00:00:00 2001 From: metamuffin Date: Tue, 6 Dec 2022 09:06:30 +0100 Subject: debug draw --- evc/src/bin/encode.rs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'evc/src/bin/encode.rs') diff --git a/evc/src/bin/encode.rs b/evc/src/bin/encode.rs index 1934e26..3e34a3c 100644 --- a/evc/src/bin/encode.rs +++ b/evc/src/bin/encode.rs @@ -54,7 +54,7 @@ fn main() -> anyhow::Result<()> { fn encode_block(view: View<&Frame>, prev: View<&Frame>) -> Block { let diff = View::diff(&view, &prev) / view.area() as f64; // eprintln!("{:?} {diff}", view.size); - let inner = if diff < 0.5 { + let inner = if diff < 0.9 { BlockInner::Reference { translation: (0, 0), } @@ -62,9 +62,15 @@ fn encode_block(view: View<&Frame>, prev: View<&Frame>) -> Block { if view.size.0 < 32 { BlockInner::Literal(view.pixels()) } else { - let [a, b] = view.split(); + let [av, bv] = view.split(); let [ap, bp] = prev.split(); - BlockInner::Split(Box::new([encode_block(a, ap), encode_block(b, bp)])) + let a = encode_block(av, ap); + let b = encode_block(bv, bp); + if a.is_literal() && b.is_literal() { + BlockInner::Literal(view.pixels()) + } else { + BlockInner::Split(Box::new([a, b])) + } } }; -- cgit v1.2.3-70-g09d2