annotate vp6data.h @ 12514:e6d711ba5760 libavcodec

rawdec: ensure that there is always a valid palette for formats that should have one like gray8 etc.
author reimar
date Sat, 25 Sep 2010 08:44:35 +0000
parents 7dd2a45249a9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3695
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
1 /**
11644
7dd2a45249a9 Remove explicit filename from Doxygen @file commands.
diego
parents: 8718
diff changeset
2 * @file
3695
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
3 * VP6 compatible video decoder
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
4 *
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
5 * Copyright (C) 2006 Aurelien Jacobs <aurel@gnuage.org>
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
6 *
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3695
diff changeset
7 * This file is part of FFmpeg.
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3695
diff changeset
8 *
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3695
diff changeset
9 * FFmpeg is free software; you can redistribute it and/or
3695
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
10 * modify it under the terms of the GNU Lesser General Public
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
11 * License as published by the Free Software Foundation; either
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
12 * version 2.1 of the License, or (at your option) any later version.
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
13 *
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3695
diff changeset
14 * FFmpeg is distributed in the hope that it will be useful,
3695
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
17 * Lesser General Public License for more details.
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
18 *
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
19 * You should have received a copy of the GNU Lesser General Public
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3695
diff changeset
20 * License along with FFmpeg; if not, write to the Free Software
5215
2b72f9bc4f06 license header consistency cosmetics
diego
parents: 4308
diff changeset
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
3695
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
22 */
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
23
7760
c4a4495715dd Globally rename the header inclusion guard names.
stefano
parents: 5830
diff changeset
24 #ifndef AVCODEC_VP6DATA_H
c4a4495715dd Globally rename the header inclusion guard names.
stefano
parents: 5830
diff changeset
25 #define AVCODEC_VP6DATA_H
3695
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
26
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
27 #include "vp56data.h"
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
28
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
29 static const uint8_t vp6_def_fdv_vector_model[2][8] = {
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
30 { 247, 210, 135, 68, 138, 220, 239, 246 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
31 { 244, 184, 201, 44, 173, 221, 239, 253 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
32 };
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
33
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
34 static const uint8_t vp6_def_pdv_vector_model[2][7] = {
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
35 { 225, 146, 172, 147, 214, 39, 156 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
36 { 204, 170, 119, 235, 140, 230, 228 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
37 };
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
38
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
39 static const uint8_t vp6_def_coeff_reorder[] = {
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
40 0, 0, 1, 1, 1, 2, 2, 2,
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
41 2, 2, 2, 3, 3, 4, 4, 4,
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
42 5, 5, 5, 5, 6, 6, 7, 7,
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
43 7, 7, 7, 8, 8, 9, 9, 9,
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
44 9, 9, 9, 10, 10, 11, 11, 11,
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
45 11, 11, 11, 12, 12, 12, 12, 12,
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
46 12, 13, 13, 13, 13, 13, 14, 14,
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
47 14, 14, 15, 15, 15, 15, 15, 15,
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
48 };
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
49
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
50 static const uint8_t vp6_def_runv_coeff_model[2][14] = {
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
51 { 198, 197, 196, 146, 198, 204, 169, 142, 130, 136, 149, 149, 191, 249 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
52 { 135, 201, 181, 154, 98, 117, 132, 126, 146, 169, 184, 240, 246, 254 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
53 };
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
54
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
55 static const uint8_t vp6_sig_dct_pct[2][2] = {
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
56 { 237, 246 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
57 { 231, 243 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
58 };
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
59
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
60 static const uint8_t vp6_pdv_pct[2][7] = {
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
61 { 253, 253, 254, 254, 254, 254, 254 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
62 { 245, 253, 254, 254, 254, 254, 254 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
63 };
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
64
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
65 static const uint8_t vp6_fdv_pct[2][8] = {
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
66 { 254, 254, 254, 254, 254, 250, 250, 252 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
67 { 254, 254, 254, 254, 254, 251, 251, 254 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
68 };
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
69
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
70 static const uint8_t vp6_dccv_pct[2][11] = {
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
71 { 146, 255, 181, 207, 232, 243, 238, 251, 244, 250, 249 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
72 { 179, 255, 214, 240, 250, 255, 244, 255, 255, 255, 255 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
73 };
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
74
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
75 static const uint8_t vp6_coeff_reorder_pct[] = {
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
76 255, 132, 132, 159, 153, 151, 161, 170,
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
77 164, 162, 136, 110, 103, 114, 129, 118,
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
78 124, 125, 132, 136, 114, 110, 142, 135,
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
79 134, 123, 143, 126, 153, 183, 166, 161,
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
80 171, 180, 179, 164, 203, 218, 225, 217,
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
81 215, 206, 203, 217, 229, 241, 248, 243,
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
82 253, 255, 253, 255, 255, 255, 255, 255,
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
83 255, 255, 255, 255, 255, 255, 255, 255,
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
84 };
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
85
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
86 static const uint8_t vp6_runv_pct[2][14] = {
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
87 { 219, 246, 238, 249, 232, 239, 249, 255, 248, 253, 239, 244, 241, 248 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
88 { 198, 232, 251, 253, 219, 241, 253, 255, 248, 249, 244, 238, 251, 255 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
89 };
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
90
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
91 static const uint8_t vp6_ract_pct[3][2][6][11] = {
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
92 { { { 227, 246, 230, 247, 244, 255, 255, 255, 255, 255, 255 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
93 { 255, 255, 209, 231, 231, 249, 249, 253, 255, 255, 255 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
94 { 255, 255, 225, 242, 241, 251, 253, 255, 255, 255, 255 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
95 { 255, 255, 241, 253, 252, 255, 255, 255, 255, 255, 255 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
96 { 255, 255, 248, 255, 255, 255, 255, 255, 255, 255, 255 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
97 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 } },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
98 { { 240, 255, 248, 255, 255, 255, 255, 255, 255, 255, 255 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
99 { 255, 255, 240, 253, 255, 255, 255, 255, 255, 255, 255 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
100 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
101 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
102 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
103 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 } } },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
104 { { { 206, 203, 227, 239, 247, 255, 253, 255, 255, 255, 255 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
105 { 207, 199, 220, 236, 243, 252, 252, 255, 255, 255, 255 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
106 { 212, 219, 230, 243, 244, 253, 252, 255, 255, 255, 255 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
107 { 236, 237, 247, 252, 253, 255, 255, 255, 255, 255, 255 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
108 { 240, 240, 248, 255, 255, 255, 255, 255, 255, 255, 255 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
109 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 } },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
110 { { 230, 233, 249, 255, 255, 255, 255, 255, 255, 255, 255 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
111 { 238, 238, 250, 255, 255, 255, 255, 255, 255, 255, 255 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
112 { 248, 251, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
113 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
114 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
115 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 } } },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
116 { { { 225, 239, 227, 231, 244, 253, 243, 255, 255, 253, 255 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
117 { 232, 234, 224, 228, 242, 249, 242, 252, 251, 251, 255 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
118 { 235, 249, 238, 240, 251, 255, 249, 255, 253, 253, 255 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
119 { 249, 253, 251, 250, 255, 255, 255, 255, 255, 255, 255 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
120 { 251, 250, 249, 255, 255, 255, 255, 255, 255, 255, 255 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
121 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 } },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
122 { { 243, 244, 250, 250, 255, 255, 255, 255, 255, 255, 255 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
123 { 249, 248, 250, 253, 255, 255, 255, 255, 255, 255, 255 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
124 { 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
125 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
126 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
127 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 } } }
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
128 };
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
129
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
130 static const int vp6_dccv_lc[3][5][2] = {
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
131 { { 122, 133 }, { 0, 1 }, { 78, 171 }, { 139, 117 }, { 168, 79 } },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
132 { { 133, 51 }, { 0, 1 }, { 169, 71 }, { 214, 44 }, { 210, 38 } },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
133 { { 142, -16 }, { 0, 1 }, { 221, -30 }, { 246, -3 }, { 203, 17 } },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
134 };
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
135
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
136 static const uint8_t vp6_coeff_groups[] = {
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
137 0, 0, 1, 1, 1, 2, 2, 2,
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
138 2, 2, 2, 3, 3, 3, 3, 3,
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
139 3, 3, 3, 3, 3, 3, 4, 4,
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
140 4, 4, 4, 4, 4, 4, 4, 4,
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
141 4, 4, 4, 4, 4, 5, 5, 5,
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
142 5, 5, 5, 5, 5, 5, 5, 5,
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
143 5, 5, 5, 5, 5, 5, 5, 5,
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
144 5, 5, 5, 5, 5, 5, 5, 5,
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
145 };
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
146
4308
74b476185cd1 Add support for VP60 and VP61.
aurel
parents: 4171
diff changeset
147 static const int16_t vp6_block_copy_filter[17][8][4] = {
3695
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
148 { { 0, 128, 0, 0 }, /* 0 */
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
149 { -3, 122, 9, 0 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
150 { -4, 109, 24, -1 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
151 { -5, 91, 45, -3 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
152 { -4, 68, 68, -4 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
153 { -3, 45, 91, -5 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
154 { -1, 24, 109, -4 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
155 { 0, 9, 122, -3 } },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
156 { { 0, 128, 0, 0 }, /* 1 */
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
157 { -4, 124, 9, -1 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
158 { -5, 110, 25, -2 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
159 { -6, 91, 46, -3 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
160 { -5, 69, 69, -5 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
161 { -3, 46, 91, -6 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
162 { -2, 25, 110, -5 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
163 { -1, 9, 124, -4 } },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
164 { { 0, 128, 0, 0 }, /* 2 */
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
165 { -4, 123, 10, -1 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
166 { -6, 110, 26, -2 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
167 { -7, 92, 47, -4 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
168 { -6, 70, 70, -6 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
169 { -4, 47, 92, -7 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
170 { -2, 26, 110, -6 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
171 { -1, 10, 123, -4 } },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
172 { { 0, 128, 0, 0 }, /* 3 */
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
173 { -5, 124, 10, -1 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
174 { -7, 110, 27, -2 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
175 { -7, 91, 48, -4 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
176 { -6, 70, 70, -6 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
177 { -4, 48, 92, -8 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
178 { -2, 27, 110, -7 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
179 { -1, 10, 124, -5 } },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
180 { { 0, 128, 0, 0 }, /* 4 */
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
181 { -6, 124, 11, -1 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
182 { -8, 111, 28, -3 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
183 { -8, 92, 49, -5 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
184 { -7, 71, 71, -7 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
185 { -5, 49, 92, -8 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
186 { -3, 28, 111, -8 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
187 { -1, 11, 124, -6 } },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
188 { { 0, 128, 0, 0 }, /* 5 */
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
189 { -6, 123, 12, -1 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
190 { -9, 111, 29, -3 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
191 { -9, 93, 50, -6 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
192 { -8, 72, 72, -8 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
193 { -6, 50, 93, -9 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
194 { -3, 29, 111, -9 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
195 { -1, 12, 123, -6 } },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
196 { { 0, 128, 0, 0 }, /* 6 */
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
197 { -7, 124, 12, -1 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
198 { -10, 111, 30, -3 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
199 { -10, 93, 51, -6 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
200 { -9, 73, 73, -9 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
201 { -6, 51, 93, -10 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
202 { -3, 30, 111, -10 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
203 { -1, 12, 124, -7 } },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
204 { { 0, 128, 0, 0 }, /* 7 */
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
205 { -7, 123, 13, -1 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
206 { -11, 112, 31, -4 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
207 { -11, 94, 52, -7 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
208 { -10, 74, 74, -10 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
209 { -7, 52, 94, -11 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
210 { -4, 31, 112, -11 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
211 { -1, 13, 123, -7 } },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
212 { { 0, 128, 0, 0 }, /* 8 */
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
213 { -8, 124, 13, -1 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
214 { -12, 112, 32, -4 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
215 { -12, 94, 53, -7 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
216 { -10, 74, 74, -10 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
217 { -7, 53, 94, -12 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
218 { -4, 32, 112, -12 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
219 { -1, 13, 124, -8 } },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
220 { { 0, 128, 0, 0 }, /* 9 */
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
221 { -9, 124, 14, -1 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
222 { -13, 112, 33, -4 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
223 { -13, 95, 54, -8 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
224 { -11, 75, 75, -11 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
225 { -8, 54, 95, -13 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
226 { -4, 33, 112, -13 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
227 { -1, 14, 124, -9 } },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
228 { { 0, 128, 0, 0 }, /* 10 */
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
229 { -9, 123, 15, -1 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
230 { -14, 113, 34, -5 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
231 { -14, 95, 55, -8 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
232 { -12, 76, 76, -12 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
233 { -8, 55, 95, -14 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
234 { -5, 34, 112, -13 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
235 { -1, 15, 123, -9 } },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
236 { { 0, 128, 0, 0 }, /* 11 */
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
237 { -10, 124, 15, -1 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
238 { -14, 113, 34, -5 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
239 { -15, 96, 56, -9 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
240 { -13, 77, 77, -13 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
241 { -9, 56, 96, -15 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
242 { -5, 34, 113, -14 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
243 { -1, 15, 124, -10 } },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
244 { { 0, 128, 0, 0 }, /* 12 */
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
245 { -10, 123, 16, -1 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
246 { -15, 113, 35, -5 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
247 { -16, 98, 56, -10 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
248 { -14, 78, 78, -14 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
249 { -10, 56, 98, -16 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
250 { -5, 35, 113, -15 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
251 { -1, 16, 123, -10 } },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
252 { { 0, 128, 0, 0 }, /* 13 */
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
253 { -11, 124, 17, -2 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
254 { -16, 113, 36, -5 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
255 { -17, 98, 57, -10 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
256 { -14, 78, 78, -14 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
257 { -10, 57, 98, -17 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
258 { -5, 36, 113, -16 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
259 { -2, 17, 124, -11 } },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
260 { { 0, 128, 0, 0 }, /* 14 */
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
261 { -12, 125, 17, -2 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
262 { -17, 114, 37, -6 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
263 { -18, 99, 58, -11 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
264 { -15, 79, 79, -15 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
265 { -11, 58, 99, -18 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
266 { -6, 37, 114, -17 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
267 { -2, 17, 125, -12 } },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
268 { { 0, 128, 0, 0 }, /* 15 */
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
269 { -12, 124, 18, -2 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
270 { -18, 114, 38, -6 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
271 { -19, 99, 59, -11 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
272 { -16, 80, 80, -16 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
273 { -11, 59, 99, -19 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
274 { -6, 38, 114, -18 },
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
275 { -2, 18, 124, -12 } },
4308
74b476185cd1 Add support for VP60 and VP61.
aurel
parents: 4171
diff changeset
276 { { 0, 128, 0, 0 }, /* 16 */
74b476185cd1 Add support for VP60 and VP61.
aurel
parents: 4171
diff changeset
277 { -4, 118, 16, -2 },
74b476185cd1 Add support for VP60 and VP61.
aurel
parents: 4171
diff changeset
278 { -7, 106, 34, -5 },
74b476185cd1 Add support for VP60 and VP61.
aurel
parents: 4171
diff changeset
279 { -8, 90, 53, -7 },
74b476185cd1 Add support for VP60 and VP61.
aurel
parents: 4171
diff changeset
280 { -8, 72, 72, -8 },
74b476185cd1 Add support for VP60 and VP61.
aurel
parents: 4171
diff changeset
281 { -7, 53, 90, -8 },
74b476185cd1 Add support for VP60 and VP61.
aurel
parents: 4171
diff changeset
282 { -5, 34, 106, -7 },
74b476185cd1 Add support for VP60 and VP61.
aurel
parents: 4171
diff changeset
283 { -2, 16, 118, -4 } },
3695
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
284 };
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
285
8299
524cb7f5ad2b avoid POSIX reserved _t suffix
aurel
parents: 7760
diff changeset
286 static const VP56Tree vp6_pcr_tree[] = {
3695
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
287 { 8, 0},
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
288 { 4, 1},
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
289 { 2, 2}, {-1}, {-2},
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
290 { 2, 3}, {-3}, {-4},
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
291 { 8, 4},
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
292 { 4, 5},
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
293 { 2, 6}, {-5}, {-6},
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
294 { 2, 7}, {-7}, {-8},
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
295 {-0},
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
296 };
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
297
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
298 static const uint8_t vp6_coord_div[] = { 4, 4, 4, 4, 8, 8 };
6795c9e5f983 VP5 and VP6 video decoder
aurel
parents:
diff changeset
299
5821
51918cb97f6f add support for VP6 with huffman encoded blocks
aurel
parents: 5215
diff changeset
300 static const uint8_t vp6_huff_coeff_map[] = {
51918cb97f6f add support for VP6 with huffman encoded blocks
aurel
parents: 5215
diff changeset
301 13, 14, 11, 0, 1, 15, 16, 18, 2, 17, 3, 4, 19, 20, 5, 6, 21, 22, 7, 8, 9, 10
51918cb97f6f add support for VP6 with huffman encoded blocks
aurel
parents: 5215
diff changeset
302 };
51918cb97f6f add support for VP6 with huffman encoded blocks
aurel
parents: 5215
diff changeset
303
51918cb97f6f add support for VP6 with huffman encoded blocks
aurel
parents: 5215
diff changeset
304 static const uint8_t vp6_huff_run_map[] = {
51918cb97f6f add support for VP6 with huffman encoded blocks
aurel
parents: 5215
diff changeset
305 10, 13, 11, 12, 0, 1, 2, 3, 14, 8, 15, 16, 4, 5, 6, 7
51918cb97f6f add support for VP6 with huffman encoded blocks
aurel
parents: 5215
diff changeset
306 };
51918cb97f6f add support for VP6 with huffman encoded blocks
aurel
parents: 5215
diff changeset
307
7760
c4a4495715dd Globally rename the header inclusion guard names.
stefano
parents: 5830
diff changeset
308 #endif /* AVCODEC_VP6DATA_H */