diff options
author | metamuffin <metamuffin@disroot.org> | 2022-12-20 08:57:35 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2022-12-20 08:57:35 +0100 |
commit | 4df7c1f1cbe0c3f79eec6be2474aead263f166c8 (patch) | |
tree | e9c46e76edf436464b31db4f339e6b2d294e95b1 /evc/src/bin | |
parent | a7335ae0f8c04c8042f47a56f3845d2e5fc5c452 (diff) | |
download | video-codec-experiments-4df7c1f1cbe0c3f79eec6be2474aead263f166c8.tar video-codec-experiments-4df7c1f1cbe0c3f79eec6be2474aead263f166c8.tar.bz2 video-codec-experiments-4df7c1f1cbe0c3f79eec6be2474aead263f166c8.tar.zst |
infra for compressed literal
Diffstat (limited to 'evc/src/bin')
-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(), |