diff options
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, } } |