aboutsummaryrefslogtreecommitdiff
path: root/evc
diff options
context:
space:
mode:
Diffstat (limited to 'evc')
-rwxr-xr-xevc/scripts/gen7
-rwxr-xr-xevc/scripts/stream2
-rw-r--r--evc/src/bin/decode.rs1
-rw-r--r--evc/src/bin/encode.rs6
-rw-r--r--evc/src/codec/encode.rs8
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);