|
2 | 2 | //! |
3 | 3 | //! [Lossless spec](https://developers.google.com/speed/webp/docs/webp_lossless_bitstream_specification) |
4 | 4 |
|
| 5 | +mod huffman; |
| 6 | +mod reverse_transform; |
| 7 | + |
5 | 8 | use std::io::BufRead; |
6 | 9 | use std::mem; |
7 | 10 |
|
8 | | -use super::huffman::HuffmanTree; |
9 | | -use super::reverse_transform::{ |
| 11 | +use super::{CODE_LENGTH_CODES, CODE_LENGTH_CODE_ORDER, DISTANCE_MAP}; |
| 12 | +use crate::decoder::DecodingError; |
| 13 | +use huffman::HuffmanTree; |
| 14 | +use reverse_transform::{ |
10 | 15 | apply_color_indexing_transform, apply_color_transform, apply_predictor_transform, |
11 | 16 | apply_subtract_green_transform, TransformType, |
12 | 17 | }; |
13 | | -use crate::decoder::DecodingError; |
14 | | - |
15 | | -const CODE_LENGTH_CODES: usize = 19; |
16 | | -const CODE_LENGTH_CODE_ORDER: [usize; CODE_LENGTH_CODES] = [ |
17 | | - 17, 18, 0, 1, 2, 3, 4, 5, 16, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, |
18 | | -]; |
19 | | - |
20 | | -#[rustfmt::skip] |
21 | | -const DISTANCE_MAP: [(i8, i8); 120] = [ |
22 | | - (0, 1), (1, 0), (1, 1), (-1, 1), (0, 2), (2, 0), (1, 2), (-1, 2), |
23 | | - (2, 1), (-2, 1), (2, 2), (-2, 2), (0, 3), (3, 0), (1, 3), (-1, 3), |
24 | | - (3, 1), (-3, 1), (2, 3), (-2, 3), (3, 2), (-3, 2), (0, 4), (4, 0), |
25 | | - (1, 4), (-1, 4), (4, 1), (-4, 1), (3, 3), (-3, 3), (2, 4), (-2, 4), |
26 | | - (4, 2), (-4, 2), (0, 5), (3, 4), (-3, 4), (4, 3), (-4, 3), (5, 0), |
27 | | - (1, 5), (-1, 5), (5, 1), (-5, 1), (2, 5), (-2, 5), (5, 2), (-5, 2), |
28 | | - (4, 4), (-4, 4), (3, 5), (-3, 5), (5, 3), (-5, 3), (0, 6), (6, 0), |
29 | | - (1, 6), (-1, 6), (6, 1), (-6, 1), (2, 6), (-2, 6), (6, 2), (-6, 2), |
30 | | - (4, 5), (-4, 5), (5, 4), (-5, 4), (3, 6), (-3, 6), (6, 3), (-6, 3), |
31 | | - (0, 7), (7, 0), (1, 7), (-1, 7), (5, 5), (-5, 5), (7, 1), (-7, 1), |
32 | | - (4, 6), (-4, 6), (6, 4), (-6, 4), (2, 7), (-2, 7), (7, 2), (-7, 2), |
33 | | - (3, 7), (-3, 7), (7, 3), (-7, 3), (5, 6), (-5, 6), (6, 5), (-6, 5), |
34 | | - (8, 0), (4, 7), (-4, 7), (7, 4), (-7, 4), (8, 1), (8, 2), (6, 6), |
35 | | - (-6, 6), (8, 3), (5, 7), (-5, 7), (7, 5), (-7, 5), (8, 4), (6, 7), |
36 | | - (-6, 7), (7, 6), (-7, 6), (8, 5), (7, 7), (-7, 7), (8, 6), (8, 7) |
37 | | -]; |
38 | 18 |
|
39 | 19 | const GREEN: usize = 0; |
40 | 20 | const RED: usize = 1; |
|
0 commit comments