aboutsummaryrefslogtreecommitdiff
path: root/evc/src/codec/encode.rs
diff options
context:
space:
mode:
Diffstat (limited to 'evc/src/codec/encode.rs')
-rw-r--r--evc/src/codec/encode.rs21
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,
}
}