diff options
author | metamuffin <metamuffin@disroot.org> | 2025-05-05 15:09:54 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-05-05 15:09:54 +0200 |
commit | 306f96164784a8cbf405e72fa4364d6523366e95 (patch) | |
tree | 51717fc139871baa438aad806f4923669ae0896c /dhwt-codec/src/bin | |
parent | 9cc089e2d6e841879e430b01d2f3d92c8820523e (diff) | |
download | video-codec-experiments-306f96164784a8cbf405e72fa4364d6523366e95.tar video-codec-experiments-306f96164784a8cbf405e72fa4364d6523366e95.tar.bz2 video-codec-experiments-306f96164784a8cbf405e72fa4364d6523366e95.tar.zst |
old dir
Diffstat (limited to 'dhwt-codec/src/bin')
-rw-r--r-- | dhwt-codec/src/bin/decode.rs | 57 | ||||
-rw-r--r-- | dhwt-codec/src/bin/encode.rs | 57 | ||||
-rw-r--r-- | dhwt-codec/src/bin/export.rs | 42 | ||||
-rw-r--r-- | dhwt-codec/src/bin/import.rs | 51 |
4 files changed, 0 insertions, 207 deletions
diff --git a/dhwt-codec/src/bin/decode.rs b/dhwt-codec/src/bin/decode.rs deleted file mode 100644 index 1930dfb..0000000 --- a/dhwt-codec/src/bin/decode.rs +++ /dev/null @@ -1,57 +0,0 @@ -use clap::Parser; -use dhwt_codec::{ - io::{empty_videobuf, infile, outfile, read_videobuf_small, write_videobuf, VideoBuf}, - transform, trim, - view::{BufferView, IndexMode}, - CommonArgs, -}; -use rayon::prelude::{IntoParallelIterator, ParallelIterator}; - -fn main() { - let args = CommonArgs::parse(); - - let mut inf = infile(&args.infile); - let mut of = outfile(&args.outfile); - - for c in 0..args.channels { - eprintln!("encoding channel #{c}"); - let a = empty_videobuf(args.x, args.y, args.z); - let b = read_videobuf_small(&mut inf); - - eprintln!("\tdecoding Z"); - (0..args.x).into_par_iter().for_each(|x| { - for y in 0..args.y { - run_mode(make_mut(&b), make_mut(&a), IndexMode::XY(x, y), args.z) - } - }); - eprintln!("\tdecoding Y"); - (0..args.x).into_par_iter().for_each(|x| { - for z in 0..args.z { - run_mode(make_mut(&a), make_mut(&b), IndexMode::XZ(x, z), args.y) - } - }); - eprintln!("\tdecoding X"); - (0..args.y).into_par_iter().for_each(|y| { - for z in 0..args.z { - run_mode(make_mut(&b), make_mut(&a), IndexMode::YZ(y, z), args.x) - } - }); - write_videobuf(&mut of, a); - } -} - -fn run_mode(a: &mut VideoBuf, b: &mut VideoBuf, mode: IndexMode, size: usize) { - trim::untrim(size, &mut BufferView::new(b, mode)); - transform::decode( - size, - &mut BufferView::new(a, mode), - &mut BufferView::new(b, mode), - ); -} - -fn make_mut<T>(r: &T) -> &mut T { - #[allow(mutable_transmutes)] - unsafe { - std::mem::transmute::<&T, &mut T>(r) - } -} diff --git a/dhwt-codec/src/bin/encode.rs b/dhwt-codec/src/bin/encode.rs deleted file mode 100644 index db4c70e..0000000 --- a/dhwt-codec/src/bin/encode.rs +++ /dev/null @@ -1,57 +0,0 @@ -use clap::Parser; -use dhwt_codec::{ - io::{empty_videobuf, infile, outfile, read_videobuf, write_videobuf_small, VideoBuf}, - transform, trim, - view::{BufferView, IndexMode}, - CommonArgs, -}; -use rayon::prelude::{IntoParallelIterator, ParallelIterator}; - -fn main() { - let args = CommonArgs::parse(); - - let mut inf = infile(&args.infile); - let mut of = outfile(&args.outfile); - - for c in 0..args.channels { - eprintln!("encoding channel #{c}"); - let o = empty_videobuf(args.x, args.y, args.z); - let i = read_videobuf(&mut inf); - - eprintln!("\tencoding X"); - (0..args.y).into_par_iter().for_each(|y| { - for z in 0..args.z { - run_mode(make_mut(&i), make_mut(&o), IndexMode::YZ(y, z), args.x) - } - }); - eprintln!("\tencoding Y"); - (0..args.x).into_par_iter().for_each(|x| { - for z in 0..args.z { - run_mode(make_mut(&o), make_mut(&i), IndexMode::XZ(x, z), args.y) - } - }); - eprintln!("\tencoding Z"); - (0..args.x).into_par_iter().for_each(|x| { - for y in 0..args.y { - run_mode(make_mut(&i), make_mut(&o), IndexMode::XY(x, y), args.z) - } - }); - write_videobuf_small(&mut of, o); - } -} - -fn run_mode(a: &mut VideoBuf, b: &mut VideoBuf, mode: IndexMode, size: usize) { - transform::encode( - size, - &mut BufferView::new(a, mode), - &mut BufferView::new(b, mode), - ); - trim::trim(size, &mut BufferView::new(b, mode)); -} - -fn make_mut<T>(r: &T) -> &mut T { - #[allow(mutable_transmutes)] - unsafe { - std::mem::transmute::<&T, &mut T>(r) - } -} diff --git a/dhwt-codec/src/bin/export.rs b/dhwt-codec/src/bin/export.rs deleted file mode 100644 index 73f3067..0000000 --- a/dhwt-codec/src/bin/export.rs +++ /dev/null @@ -1,42 +0,0 @@ -use clap::Parser; -use dhwt_codec::io::{infile, read_videobuf}; -use std::io::{stdout, BufWriter, Write}; - -#[derive(Parser)] -#[clap(about)] -struct ExportArgs { - #[arg(short)] - x: usize, - #[arg(short)] - y: usize, - #[arg(short)] - z: usize, - - #[arg(short, long, default_value = "3")] - channels: usize, - - infile: String, -} - -fn main() { - let args = ExportArgs::parse(); - - let mut i = infile(&args.infile); - let mut writer = BufWriter::new(stdout()); - - let mut channels = vec![]; - for _ in 0..args.channels { - channels.push(read_videobuf(&mut i)) - } - - for z in 0..args.z { - for y in 0..args.y { - for x in 0..args.x { - for c in 0..args.channels { - writer.write_all(&[channels[c][x][y][z] as u8]).unwrap(); - } - } - } - } - writer.flush().unwrap(); -} diff --git a/dhwt-codec/src/bin/import.rs b/dhwt-codec/src/bin/import.rs deleted file mode 100644 index cd2a35e..0000000 --- a/dhwt-codec/src/bin/import.rs +++ /dev/null @@ -1,51 +0,0 @@ -use clap::Parser; -use dhwt_codec::io::{outfile, write_videobuf, Value}; -use std::io::{stdin, Read}; - -#[derive(Parser)] -#[clap(about)] -struct ImportArgs { - #[arg(short)] - x: usize, - #[arg(short)] - y: usize, - #[arg(short)] - z: usize, - - #[arg(short, long, default_value = "3")] - channels: usize, - - outfile: String, -} - -fn main() { - let args = ImportArgs::parse(); - - let mut rawbuf = (0..(args.x * args.y * args.z * args.channels)) - .map(|_| 0u8) - .collect::<Vec<_>>(); - stdin().read_exact(&mut rawbuf).unwrap(); - - let mut o = outfile(&args.outfile); - - for c in 0..args.channels { - let mut cols = vec![]; - for x in 0..args.x { - let mut col = vec![]; - for y in 0..args.y { - let mut span = vec![]; - for z in 0..args.z { - span.push( - rawbuf[c - + (x * args.channels) - + (y * args.channels * args.x) - + (z * args.channels * args.x * args.y)] as Value, - ); - } - col.push(span); - } - cols.push(col) - } - write_videobuf(&mut o, cols) - } -} |