aboutsummaryrefslogtreecommitdiff
path: root/evc/src/bin
diff options
context:
space:
mode:
Diffstat (limited to 'evc/src/bin')
-rw-r--r--evc/src/bin/encode.rs19
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(),