diff options
Diffstat (limited to 'evc/src/bin/encode.rs')
-rw-r--r-- | evc/src/bin/encode.rs | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/evc/src/bin/encode.rs b/evc/src/bin/encode.rs index 32af242..4b7e26c 100644 --- a/evc/src/bin/encode.rs +++ b/evc/src/bin/encode.rs @@ -2,6 +2,7 @@ use anyhow::Context; use clap::Parser; use evc::{ codec::{ + compress::compress_block, decode::decode_block, encode::{encode_block, EncodeConfig, EncodeMode}, }, @@ -26,7 +27,7 @@ pub struct EncodeArgs { #[arg(short, long, default_value = "8")] jobs: usize, - #[arg(short, long, default_value = "4")] + #[arg(short, long, default_value = "8")] min_block_size: isize, #[arg(short = 't', long, default_value = "200")] @@ -70,10 +71,24 @@ fn main() -> anyhow::Result<()> { let v1 = frame.view(); let v2 = prev_frame.view(); - let root = encode_block(v1, v2, &config); + let (error, mut root) = encode_block(v1, v2, &config); + + compress_block( + &mut root, + Vec2 { + x: size.x as usize, + y: size.y as usize, + }, + ); + root.write(&mut output, size) .context("writing encoded frame")?; + info!( + "cumulative error: {error} ({} per pixel)", + error / frame.view().area() as f64 + ); + decode_block( &root, frame.view_mut(), |