Forego phone-sized floats for now
This commit is contained in:
parent
89cb8eead7
commit
bab78aa61a
BIN
inputs/avatar2_small.png
Normal file
BIN
inputs/avatar2_small.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 47 KiB |
@ -11,7 +11,7 @@ pub fn decode_tile<R: Read>(
|
||||
|
||||
for _ in 0..quality {
|
||||
let ix = reader.read_u8()?;
|
||||
let val = decode_value(reader.read_u8()?);
|
||||
let val = decode_value(reader.read_u16()?);
|
||||
coefs[ix as usize] = val;
|
||||
}
|
||||
|
||||
@ -48,7 +48,9 @@ pub fn decode_tile<R: Read>(
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn decode_value(enc: u8) -> i32 {
|
||||
pub fn decode_value(enc: u16) -> i32 {
|
||||
return (enc as i16) as i32 * 16;
|
||||
/*
|
||||
// mu law
|
||||
let sign = enc & 0x80 != 0;
|
||||
let exponent = (enc >> 4) & 0x7;
|
||||
@ -59,4 +61,5 @@ pub fn decode_value(enc: u8) -> i32 {
|
||||
|
||||
// unquantize
|
||||
return value * 32;
|
||||
*/
|
||||
}
|
@ -57,12 +57,14 @@ pub fn encode_tile<W: Write>(
|
||||
for i in 0..quality {
|
||||
let ix = indices[i as usize];
|
||||
writer.write_u8(ix as u8)?;
|
||||
writer.write_u8(encode_value(coefs[ix]))?;
|
||||
writer.write_u16(encode_value(coefs[ix]))?;
|
||||
};
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn encode_value(value: i32) -> u8 {
|
||||
pub fn encode_value(value: i32) -> u16 {
|
||||
return ((value / 16) as i16) as u16;
|
||||
/*
|
||||
// quantize
|
||||
let value = value / 32;
|
||||
|
||||
@ -101,4 +103,5 @@ mod test {
|
||||
|
||||
canon == decode_value(encode_value(canon as i32))
|
||||
}
|
||||
*/
|
||||
}
|
@ -15,6 +15,7 @@ fn main() {
|
||||
run_for("lohikar".to_string());
|
||||
run_for("zonked".to_string());
|
||||
run_for("avatar2".to_string());
|
||||
run_for("avatar2_small".to_string());
|
||||
}
|
||||
fn run_for(name: String) {
|
||||
let image = png_utils::load_image(
|
||||
|
Loading…
Reference in New Issue
Block a user