diff options
author | metamuffin <metamuffin@disroot.org> | 2022-12-07 22:31:20 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2022-12-07 22:31:20 +0100 |
commit | e4704f1ba3ff7d9c75714d432768ce12f630e745 (patch) | |
tree | 5736f8880c7105aeb458f808022bc8138dd84987 /evc | |
parent | 2ac18802b58d671c10538e78d50a620baad9a188 (diff) | |
download | video-codec-experiments-e4704f1ba3ff7d9c75714d432768ce12f630e745.tar video-codec-experiments-e4704f1ba3ff7d9c75714d432768ce12f630e745.tar.bz2 video-codec-experiments-e4704f1ba3ff7d9c75714d432768ce12f630e745.tar.zst |
small cleanup
Diffstat (limited to 'evc')
-rwxr-xr-x | evc/scripts/gen | 7 | ||||
-rwxr-xr-x | evc/scripts/stream | 2 | ||||
-rw-r--r-- | evc/src/bin/decode.rs | 1 | ||||
-rw-r--r-- | evc/src/bin/encode.rs | 6 | ||||
-rw-r--r-- | evc/src/codec/encode.rs | 8 |
5 files changed, 17 insertions, 7 deletions
diff --git a/evc/scripts/gen b/evc/scripts/gen index 620c69f..22448c5 100755 --- a/evc/scripts/gen +++ b/evc/scripts/gen @@ -3,8 +3,9 @@ set w $argv[1] set h $argv[2] set t $argv[3] ffmpeg -hide_banner -i $argv[4] -to {$t} -vf scale={$w}x{$h},fps=30,format=rgb24 -f rawvideo pipe:1 | - LOG=info cargo run --release --bin encode -- -W {$w} -H {$h} > samples/encoded -LOG=info cargo run --release --bin decode -- < samples/encoded | + LOG=info cargo run --release --bin encode -- -W {$w} -H {$h} $argv[5..] >samples/encoded +ffmpeg -hide_banner -y -i $argv[4] -to {$t} -vf scale={$w}x{$h},fps=30,format=rgb24 samples/reference.webm +LOG=info cargo run --release --bin decode -- <samples/encoded | ffmpeg -hide_banner -y -framerate 30 -video_size {$w}x{$h} -pixel_format rgb24 -f rawvideo -i pipe:0 samples/decoded.webm -LOG=info cargo run --release --bin decode -- --debug < samples/encoded | +LOG=info cargo run --release --bin decode -- --debug <samples/encoded | ffmpeg -hide_banner -y -framerate 30 -video_size {$w}x{$h} -pixel_format rgb24 -f rawvideo -i pipe:0 samples/decoded-debug.webm diff --git a/evc/scripts/stream b/evc/scripts/stream index 10098b6..cd7e159 100755 --- a/evc/scripts/stream +++ b/evc/scripts/stream @@ -2,6 +2,6 @@ set w $argv[1] set h $argv[2] ffmpeg -hide_banner -i $argv[3] -vf scale={$w}x{$h},fps=30,format=rgb24 -f rawvideo pipe:1 | - cargo run --release --bin encode -- -W {$w} -H {$h} | + cargo run --release --bin encode -- -W {$w} -H {$h} $argv[4..] | cargo run --release --bin decode -- --debug | ffplay -hide_banner -framerate 30 -video_size {$w}x{$h} -pixel_format rgb24 -f rawvideo pipe:0 diff --git a/evc/src/bin/decode.rs b/evc/src/bin/decode.rs index 7b44ede..5cbd29e 100644 --- a/evc/src/bin/decode.rs +++ b/evc/src/bin/decode.rs @@ -32,6 +32,7 @@ fn main() -> anyhow::Result<()> { let mut prev = Frame::new(size); for i in 0.. { info!("decode frame {i}"); + let block = Block::read(&mut input, size).context("reading encoded frame")?; let mut frame = Frame::new(size); diff --git a/evc/src/bin/encode.rs b/evc/src/bin/encode.rs index 20da7b6..6f3f0a7 100644 --- a/evc/src/bin/encode.rs +++ b/evc/src/bin/encode.rs @@ -26,7 +26,7 @@ pub struct EncodeArgs { #[arg(short, long, default_value = "8")] jobs: usize, - #[arg(short = 't', long, default_value = "1.5")] + #[arg(short = 't', long, default_value = "100")] ref_thres: f64, #[arg(short = 'T', long)] no_translation: bool, @@ -40,8 +40,8 @@ fn main() -> anyhow::Result<()> { let mut output = BufWriter::new(std::io::stdout()); let config = EncodeConfig { - mode: evc::codec::encode::EncodeMode::Advanced, - ref_thres: 500.0, + mode: args.mode, + ref_thres: args.ref_thres, max_diff_area: 10_000, min_block_size: 8, max_threads: args.jobs, diff --git a/evc/src/codec/encode.rs b/evc/src/codec/encode.rs index 484ae4b..c9a1172 100644 --- a/evc/src/codec/encode.rs +++ b/evc/src/codec/encode.rs @@ -86,10 +86,18 @@ pub fn encode_block(view: View<&Frame>, prev: View<&Frame>, config: &EncodeConfi } let (mut d, mut p) = (diff, params.clone()); + pk(&view, &prev, &mut d, &mut p, |p| p.translation.x += 4); + pk(&view, &prev, &mut d, &mut p, |p| p.translation.x -= 4); + pk(&view, &prev, &mut d, &mut p, |p| p.translation.y += 4); + pk(&view, &prev, &mut d, &mut p, |p| p.translation.y -= 4); pk(&view, &prev, &mut d, &mut p, |p| p.translation.x += 2); pk(&view, &prev, &mut d, &mut p, |p| p.translation.x -= 2); pk(&view, &prev, &mut d, &mut p, |p| p.translation.y += 2); pk(&view, &prev, &mut d, &mut p, |p| p.translation.y -= 2); + pk(&view, &prev, &mut d, &mut p, |p| p.translation.x += 1); + pk(&view, &prev, &mut d, &mut p, |p| p.translation.x -= 1); + pk(&view, &prev, &mut d, &mut p, |p| p.translation.y += 1); + pk(&view, &prev, &mut d, &mut p, |p| p.translation.y -= 1); pk(&view, &prev, &mut d, &mut p, |p| p.transform.a -= 1); pk(&view, &prev, &mut d, &mut p, |p| p.transform.a += 1); pk(&view, &prev, &mut d, &mut p, |p| p.transform.b -= 1); |