1 use nihav_core::formats::*;
3 pub const RGB555_FORMAT: NAPixelFormaton = NAPixelFormaton { model: ColorModel::RGB(RGBSubmodel::RGB), components: 3,
5 Some(NAPixelChromaton{ h_ss: 0, v_ss: 0, packed: true, depth: 5, shift: 10, comp_offs: 0, next_elem: 2 }),
6 Some(NAPixelChromaton{ h_ss: 0, v_ss: 0, packed: true, depth: 5, shift: 5, comp_offs: 0, next_elem: 2 }),
7 Some(NAPixelChromaton{ h_ss: 0, v_ss: 0, packed: true, depth: 5, shift: 0, comp_offs: 0, next_elem: 2 }),
9 elem_size: 2, be: false, alpha: false, palette: false };
10 pub const BGR0_FORMAT: NAPixelFormaton = NAPixelFormaton { model: ColorModel::RGB(RGBSubmodel::RGB), components: 3,
12 Some(NAPixelChromaton{ h_ss: 0, v_ss: 0, packed: true, depth: 8, shift: 0, comp_offs: 2, next_elem: 4 }),
13 Some(NAPixelChromaton{ h_ss: 0, v_ss: 0, packed: true, depth: 8, shift: 0, comp_offs: 1, next_elem: 4 }),
14 Some(NAPixelChromaton{ h_ss: 0, v_ss: 0, packed: true, depth: 8, shift: 0, comp_offs: 0, next_elem: 4 }),
16 elem_size: 4, be: false, alpha: false, palette: false };
19 pub struct TM1ComprInfo {
25 pub const TM1_COMPR_TYPES: [Option<TM1ComprInfo>; 17] = [
27 Some(TM1ComprInfo { is_24bit: false, block_w: 4, block_h: 4 }),
28 Some(TM1ComprInfo { is_24bit: false, block_w: 4, block_h: 4 }),
29 Some(TM1ComprInfo { is_24bit: false, block_w: 4, block_h: 2 }),
30 Some(TM1ComprInfo { is_24bit: false, block_w: 4, block_h: 2 }),
31 Some(TM1ComprInfo { is_24bit: false, block_w: 2, block_h: 4 }),
32 Some(TM1ComprInfo { is_24bit: false, block_w: 2, block_h: 4 }),
33 Some(TM1ComprInfo { is_24bit: false, block_w: 2, block_h: 2 }),
34 Some(TM1ComprInfo { is_24bit: false, block_w: 2, block_h: 2 }),
36 Some(TM1ComprInfo { is_24bit: true, block_w: 4, block_h: 4 }),
38 Some(TM1ComprInfo { is_24bit: true, block_w: 4, block_h: 2 }),
40 Some(TM1ComprInfo { is_24bit: true, block_w: 2, block_h: 4 }),
42 Some(TM1ComprInfo { is_24bit: true, block_w: 2, block_h: 2 }),
45 pub const DUCK_Y_DELTAS: [[i32; 8]; 4] = [
46 [ 0, -1, 1, -3, 3, -6, 6, -6 ],
47 [ 0, -1, 2, -3, 4, -6, 6, -6 ],
48 [ 2, -3, 10, -10, 23, -23, 47, -47 ],
49 [ 0, -2, 2, -8, 8, -18, 18, -40 ]
51 const DUCK_Y_FAT_DELTA3: [i32; 8] = [ 0, -15, 50, -50, 115, -115, 235, -235 ];
52 const DUCK_Y_FAT_DELTA4: [i32; 8] = [ 0, 40, 80, -76, 160, -154, 236, -236 ];
53 pub const DUCK_Y_FAT_DELTAS: [&[i32; 8]; 4] = [
54 &DUCK_Y_FAT_DELTA3, &DUCK_Y_FAT_DELTA3, &DUCK_Y_FAT_DELTA3, &DUCK_Y_FAT_DELTA4
57 pub const DUCK_C_DELTAS: [[i32; 8]; 4] = [
58 [ 0, -1, 1, -2, 3, -4, 5, -4 ],
59 [ 0, -1, 1, -2, 3, -4, 5, -4 ],
60 [ 0, -4, 3, -16, 20, -32, 36, -32 ],
61 [ 0, -2, 2, -8, 8, -18, 18, -40 ]
63 const DUCK_C_FAT_DELTA3: [i32; 8] = [ 0, -20, 15, -80, 100, -160, 180, -160 ];
64 pub const DUCK_C_FAT_DELTAS: [&[i32; 8]; 4] = [
65 &DUCK_C_FAT_DELTA3, &DUCK_C_FAT_DELTA3, &DUCK_C_FAT_DELTA3, &DUCK_Y_FAT_DELTA4
68 const DUCK_VECTBL2: &[u8] = &[
69 0x8,0x00,0x00,0x00,0x00,
70 0x8,0x00,0x00,0x00,0x00,
71 0x8,0x10,0x00,0x00,0x00,
72 0x8,0x01,0x00,0x00,0x00,
73 0x8,0x00,0x10,0x00,0x00,
74 0x8,0x00,0x01,0x00,0x00,
75 0x8,0x00,0x00,0x10,0x00,
76 0x8,0x00,0x00,0x01,0x00,
77 0x8,0x00,0x00,0x00,0x10,
78 0x8,0x00,0x00,0x00,0x01,
327 const DUCK_VECTBL3: &[u8] = &[
586 const DUCK_VECTBL4: &[u8] = &[
587 0x8,0x00,0x00,0x00,0x00,
588 0x8,0x00,0x00,0x00,0x00,
589 0x8,0x20,0x00,0x00,0x00,
590 0x8,0x00,0x00,0x00,0x01,
591 0x8,0x10,0x00,0x00,0x00,
592 0x8,0x00,0x00,0x00,0x02,
593 0x8,0x01,0x00,0x00,0x00,
594 0x8,0x00,0x00,0x00,0x10,
595 0x8,0x02,0x00,0x00,0x00,
845 pub const DUCK_VECTABLES: [&[u8]; 3] = [ DUCK_VECTBL2, DUCK_VECTBL3, DUCK_VECTBL4 ];