aboutsummaryrefslogtreecommitdiff
path: root/evc/src/bin
diff options
context:
space:
mode:
Diffstat (limited to 'evc/src/bin')
-rw-r--r--evc/src/bin/decode.rs11
-rw-r--r--evc/src/bin/encode.rs21
2 files changed, 24 insertions, 8 deletions
diff --git a/evc/src/bin/decode.rs b/evc/src/bin/decode.rs
index 5cbd29e..c2b3b4d 100644
--- a/evc/src/bin/decode.rs
+++ b/evc/src/bin/decode.rs
@@ -3,7 +3,7 @@ use anyhow::Context;
use clap::Parser;
use evc::{
block::Block,
- codec::decode::decode_block,
+ codec::decode::{decode_block, DecodeConfig},
debug::draw_debug,
format::{header::Header, ser::Source},
frame::Frame,
@@ -16,6 +16,9 @@ use std::io::{BufReader, BufWriter};
pub struct DecodeArgs {
#[arg(long)]
debug: bool,
+
+ #[arg(short, long, default_value = "8")]
+ jobs: usize,
}
fn main() -> anyhow::Result<()> {
@@ -29,6 +32,10 @@ fn main() -> anyhow::Result<()> {
info!("{header:?}");
let size = header.resolution;
+ let config = DecodeConfig {
+ max_threads: args.jobs,
+ };
+
let mut prev = Frame::new(size);
for i in 0.. {
info!("decode frame {i}");
@@ -36,7 +43,7 @@ fn main() -> anyhow::Result<()> {
let block = Block::read(&mut input, size).context("reading encoded frame")?;
let mut frame = Frame::new(size);
- decode_block(&block, frame.view_mut(), prev.view());
+ decode_block(&block, frame.view_mut(), prev.view(), &config);
if args.debug {
let mut f2 = frame.clone();
diff --git a/evc/src/bin/encode.rs b/evc/src/bin/encode.rs
index fe03023..d27074e 100644
--- a/evc/src/bin/encode.rs
+++ b/evc/src/bin/encode.rs
@@ -20,7 +20,7 @@ pub struct EncodeArgs {
#[arg(short = 'H', long)]
height: usize,
- #[arg(short, long, default_value = "advanced")]
+ #[arg(short, long, default_value = "default")]
mode: EncodeMode,
#[arg(short, long, default_value = "8")]
@@ -29,10 +29,8 @@ pub struct EncodeArgs {
#[arg(short, long, default_value = "8")]
min_block_size: isize,
- #[arg(short = 't', long, default_value = "100")]
+ #[arg(short = 't', long, default_value = "200")]
ref_thres: f64,
- #[arg(short = 'T', long)]
- no_translation: bool,
}
fn main() -> anyhow::Result<()> {
@@ -45,9 +43,12 @@ fn main() -> anyhow::Result<()> {
let config = EncodeConfig {
mode: args.mode,
ref_thres: args.ref_thres,
+ weight_factor: 50.0,
max_diff_area: 10_000,
min_block_size: args.min_block_size,
max_threads: args.jobs,
+ do_matrix_transform: false,
+ do_value_scale: false,
};
let size = Vec2 {
@@ -72,9 +73,17 @@ fn main() -> anyhow::Result<()> {
let v2 = prev_frame.view();
let root = encode_block(v1, v2, &config);
- root.write(&mut output).context("writing encoded frame")?;
+ root.write(&mut output, size)
+ .context("writing encoded frame")?;
- decode_block(&root, frame.view_mut(), prev_frame.view());
+ decode_block(
+ &root,
+ frame.view_mut(),
+ prev_frame.view(),
+ &evc::codec::decode::DecodeConfig {
+ max_threads: config.max_threads,
+ },
+ );
prev_frame = frame;
}