diff options
author | metamuffin <metamuffin@disroot.org> | 2022-12-06 16:45:30 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2022-12-06 16:45:30 +0100 |
commit | 849c3769fbd38940c9bfa73bcea160848a38d9b6 (patch) | |
tree | ad7cfc70b4c121e94a46e89e7c95f260abbcd791 /evc/src/codec/encode.rs | |
parent | 624471a4b1f2e1656a2ba46070d8f127dcd0e364 (diff) | |
download | video-codec-experiments-849c3769fbd38940c9bfa73bcea160848a38d9b6.tar video-codec-experiments-849c3769fbd38940c9bfa73bcea160848a38d9b6.tar.bz2 video-codec-experiments-849c3769fbd38940c9bfa73bcea160848a38d9b6.tar.zst |
simplify block type
Diffstat (limited to 'evc/src/codec/encode.rs')
-rw-r--r-- | evc/src/codec/encode.rs | 21 |
1 files changed, 6 insertions, 15 deletions
diff --git a/evc/src/codec/encode.rs b/evc/src/codec/encode.rs index 1729e94..43a2783 100644 --- a/evc/src/codec/encode.rs +++ b/evc/src/codec/encode.rs @@ -1,34 +1,25 @@ -use crate::{ - block::{Block, BlockInner}, - frame::Frame, - view::View, -}; +use crate::{block::Block, frame::Frame, view::View}; pub fn encode_block(view: View<&Frame>, prev: View<&Frame>) -> Block { let diff = View::diff(&view, &prev) / view.area() as f64; // eprintln!("{:?} {diff}", view.size); - let inner = if diff < 0.9 { - BlockInner::Reference { + if diff < 0.9 { + Block::Reference { translation: (0, 0), } } else { if view.size.0 < 16 { - BlockInner::Literal(view.pixels()) + Block::Literal(view.pixels()) } else { let [av, bv] = view.split(); let [ap, bp] = prev.split(); let a = encode_block(av, ap); let b = encode_block(bv, bp); if a.is_literal() && b.is_literal() { - BlockInner::Literal(view.pixels()) + Block::Literal(view.pixels()) } else { - BlockInner::Split(Box::new([a, b])) + Block::Split(Box::new([a, b])) } } - }; - - Block { - size: view.size, - inner, } } |