blob: 5f1d8f7c00d515f6d9b874faecef4ba6a66cdd9d
1 | /* |
2 | * This file is part of FFmpeg. |
3 | * |
4 | * FFmpeg is free software; you can redistribute it and/or |
5 | * modify it under the terms of the GNU Lesser General Public |
6 | * License as published by the Free Software Foundation; either |
7 | * version 2.1 of the License, or (at your option) any later version. |
8 | * |
9 | * FFmpeg is distributed in the hope that it will be useful, |
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
12 | * Lesser General Public License for more details. |
13 | * |
14 | * You should have received a copy of the GNU Lesser General Public |
15 | * License along with FFmpeg; if not, write to the Free Software |
16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
17 | */ |
18 | |
19 | #include <stdint.h> |
20 | |
21 | const uint8_t ff_default_chroma_qscale_table[32] = { |
22 | // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
23 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, |
24 | 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 |
25 | }; |
26 | |
27 | const uint8_t ff_mpeg2_non_linear_qscale[32] = { |
28 | 0, 1, 2, 3, 4, 5, 6, 7, |
29 | 8, 10, 12, 14, 16, 18, 20, 22, |
30 | 24, 28, 32, 36, 40, 44, 48, 52, |
31 | 56, 64, 72, 80, 88, 96, 104, 112, |
32 | }; |
33 | |
34 | const uint8_t ff_mpeg1_dc_scale_table[128] = { |
35 | // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
36 | 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
37 | 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
38 | 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
39 | 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
40 | 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
41 | 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
42 | 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
43 | 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, |
44 | }; |
45 | |
46 | static const uint8_t mpeg2_dc_scale_table1[128] = { |
47 | // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
48 | 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, |
49 | 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, |
50 | 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, |
51 | 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, |
52 | 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, |
53 | 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, |
54 | 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, |
55 | 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, |
56 | }; |
57 | |
58 | static const uint8_t mpeg2_dc_scale_table2[128] = { |
59 | // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
60 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
61 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
62 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
63 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
64 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
65 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
66 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
67 | 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
68 | }; |
69 | |
70 | static const uint8_t mpeg2_dc_scale_table3[128] = { |
71 | // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
72 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
73 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
74 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
75 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
76 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
77 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
78 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
79 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
80 | }; |
81 | |
82 | const uint8_t *const ff_mpeg2_dc_scale_table[4] = { |
83 | ff_mpeg1_dc_scale_table, |
84 | mpeg2_dc_scale_table1, |
85 | mpeg2_dc_scale_table2, |
86 | mpeg2_dc_scale_table3, |
87 | }; |
88 | |
89 | const uint8_t ff_alternate_horizontal_scan[64] = { |
90 | 0, 1, 2, 3, 8, 9, 16, 17, |
91 | 10, 11, 4, 5, 6, 7, 15, 14, |
92 | 13, 12, 19, 18, 24, 25, 32, 33, |
93 | 26, 27, 20, 21, 22, 23, 28, 29, |
94 | 30, 31, 34, 35, 40, 41, 48, 49, |
95 | 42, 43, 36, 37, 38, 39, 44, 45, |
96 | 46, 47, 50, 51, 56, 57, 58, 59, |
97 | 52, 53, 54, 55, 60, 61, 62, 63, |
98 | }; |
99 | |
100 | const uint8_t ff_alternate_vertical_scan[64] = { |
101 | 0, 8, 16, 24, 1, 9, 2, 10, |
102 | 17, 25, 32, 40, 48, 56, 57, 49, |
103 | 41, 33, 26, 18, 3, 11, 4, 12, |
104 | 19, 27, 34, 42, 50, 58, 35, 43, |
105 | 51, 59, 20, 28, 5, 13, 6, 14, |
106 | 21, 29, 36, 44, 52, 60, 37, 45, |
107 | 53, 61, 22, 30, 7, 15, 23, 31, |
108 | 38, 46, 54, 62, 39, 47, 55, 63, |
109 | }; |
110 |