2 * Duck Truemotion v1 Decoding Tables
4 * Data in this file was originally part of VpVision from On2 which is
5 * distributed under the GNU GPL. It is redistributed with ffmpeg under the
6 * GNU LGPL using the common understanding that data tables necessary for
7 * decoding algorithms are not necessarily licensable.
9 #ifndef TRUEMOTION1DATA_H
10 #define TRUEMOTION1DATA_H
12 /* Y delta tables, skinny and fat */
13 static const int16_t ydt1
[8] = { 0, -2, 2, -6, 6, -12, 12, -12 };
14 static const int16_t ydt2
[8] = { 0, -2, 2, -6, 6, -12, 12, -12 };
15 static const int16_t ydt3
[8] = { 4, -6, 20, -20, 46, -46, 94, -94 };
16 static const int16_t fat_ydt3
[8] = { 0, -15, 50, -50, 115, -115, 235, -235 };
17 static const int16_t ydt4
[8] = { 0, -4, 4, -16, 16, -36, 36, -80 };
18 static const int16_t fat_ydt4
[8] = { 0, 40, 80, -76, 160, -154, 236, -236 };
20 /* C delta tables, skinny and fat */
21 static const int16_t cdt1
[8] = { 0, -1, 1, -2, 3, -4, 5, -4 };
22 static const int16_t cdt2
[8] = { 0, -4, 3, -16, 20, -32, 36, -32 };
23 static const int16_t fat_cdt2
[8] = { 0, -20, 15, -80, 100, -160, 180, -160 };
24 static const int16_t cdt3
[8] = { 0, -2, 2, -8, 8, -18, 18, -40 };
25 /* NOTE: This table breaks the [+,-] pattern that the rest of the
26 * tables maintain. Is this intentional? */
27 static const int16_t fat_cdt3
[8] = { 0, 40, 80, -76, 160, -154, 236, -236 };
29 /* all the delta tables to choose from, at all 4 delta levels */
30 static const int16_t *ydts
[] = { ydt1
, ydt2
, ydt3
, ydt4
, NULL
};
31 static const int16_t *fat_ydts
[] = { fat_ydt3
, fat_ydt3
, fat_ydt3
, fat_ydt4
, NULL
};
32 static const int16_t *cdts
[] = { cdt1
, cdt2
, cdt3
, cdt3
, NULL
};
33 static const int16_t *fat_cdts
[] = { fat_cdt2
, fat_cdt2
, fat_cdt2
, fat_cdt3
, NULL
};
35 static const uint8_t pc_tbl2
[] = {
36 0x8,0x00,0x00,0x00,0x00,
37 0x8,0x00,0x00,0x00,0x00,
38 0x8,0x10,0x00,0x00,0x00,
39 0x8,0x01,0x00,0x00,0x00,
40 0x8,0x00,0x10,0x00,0x00,
41 0x8,0x00,0x01,0x00,0x00,
42 0x8,0x00,0x00,0x10,0x00,
43 0x8,0x00,0x00,0x01,0x00,
44 0x8,0x00,0x00,0x00,0x10,
45 0x8,0x00,0x00,0x00,0x01,
294 static const uint8_t pc_tbl3
[] = {
553 static const uint8_t pc_tbl4
[] = {
554 0x8,0x00,0x00,0x00,0x00,
555 0x8,0x00,0x00,0x00,0x00,
556 0x8,0x20,0x00,0x00,0x00,
557 0x8,0x00,0x00,0x00,0x01,
558 0x8,0x10,0x00,0x00,0x00,
559 0x8,0x00,0x00,0x00,0x02,
560 0x8,0x01,0x00,0x00,0x00,
561 0x8,0x00,0x00,0x00,0x10,
562 0x8,0x02,0x00,0x00,0x00,
812 static const uint8_t *tables
[] = { pc_tbl2
, pc_tbl3
, pc_tbl4
};