From 7282efd3720e992735840f9495cbb12ba6d880c3 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Mon, 5 Dec 2022 23:11:56 +0100 Subject: encoding --- evc/src/bin/encode.rs | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'evc/src/bin/encode.rs') diff --git a/evc/src/bin/encode.rs b/evc/src/bin/encode.rs index 8d37443..0edc3a1 100644 --- a/evc/src/bin/encode.rs +++ b/evc/src/bin/encode.rs @@ -1,7 +1,8 @@ use clap::Parser; use evc::{ block::{Block, BlockInner}, - frame::{Frame, View}, + frame::Frame, + view::View, }; use std::io::{self, BufReader}; @@ -40,12 +41,18 @@ fn main() -> io::Result<()> { fn encode_block(view: View, prev: View) -> Block { let diff = View::diff(&view, &prev); - let inner = if diff > 100_000.0 { - let [a, b] = view.split(); - let [ap, bp] = prev.split(); - BlockInner::Split(Box::new([encode_block(a, ap), encode_block(b, bp)])) + let inner = if diff < 10_000.0 { + BlockInner::Reference { + translation: (0, 0), + } } else { - todo!() + if view.size.0 < 32 { + BlockInner::Literal(view.pixels()) + } else { + let [a, b] = view.split(); + let [ap, bp] = prev.split(); + BlockInner::Split(Box::new([encode_block(a, ap), encode_block(b, bp)])) + } }; Block { -- cgit v1.2.3-70-g09d2