aboutsummaryrefslogtreecommitdiff
path: root/evc/src/bin
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2022-12-20 08:57:35 +0100
committermetamuffin <metamuffin@disroot.org>2022-12-20 08:57:35 +0100
commit4df7c1f1cbe0c3f79eec6be2474aead263f166c8 (patch)
treee9c46e76edf436464b31db4f339e6b2d294e95b1 /evc/src/bin
parenta7335ae0f8c04c8042f47a56f3845d2e5fc5c452 (diff)
downloadvideo-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.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(),