xref: /rockchip-linux_mpp/mpp/codec/dec/vp8/vp8d_data.h (revision 437bfbeb9567cca9cd9080e3f6954aa9d6a94f18)
1 /*
2  *
3  * Copyright 2015 Rockchip Electronics Co. LTD
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 #include <stdint.h>
19 #include "rk_type.h"
20 
21 #ifndef __VP8D_DATA_H__
22 #define __VP8D_DATA_H__
23 
24 #define VP7_MV_PROBS_PER_COMPONENT      (17)
25 #define VP8_MV_PROBS_PER_COMPONENT      (19)
26 
27 
28 #define swap32bit(x) ((x>>24)|((x>>8)&0xff00)|((x<<8)&0xff0000)|(x<<24))
29 
30 static const RK_U8 MvUpdateProbs[2][VP8_MV_PROBS_PER_COMPONENT] = {
31     {
32         237, 246, 253, 253, 254, 254, 254, 254, 254,
33         254, 254, 254, 254, 254, 250, 250, 252, 254, 254
34     },
35     {
36         231, 243, 245, 253, 254, 254, 254, 254, 254,
37         254, 254, 254, 254, 254, 251, 251, 254, 254, 254
38     }
39 };
40 
41 static const RK_U8 Vp8DefaultMvProbs[2][VP8_MV_PROBS_PER_COMPONENT] = {
42     {
43         162, 128, 225, 146, 172, 147, 214, 39, 156,
44         128, 129, 132, 75, 145, 178, 206, 239, 254, 254
45     },
46     {
47         164, 128, 204, 170, 119, 235, 140, 230, 228,
48         128, 130, 130, 74, 148, 180, 203, 236, 254, 254
49     }
50 };
51 
52 static const RK_U8 Vp7DefaultMvProbs[2][VP7_MV_PROBS_PER_COMPONENT] = {
53     {
54         162, 128, 225, 146, 172, 147, 214, 39, 156,
55         247, 210, 135,  68, 138, 220, 239, 246
56     },
57     {
58         164, 128, 204, 170, 119, 235, 140, 230, 228,
59         244, 184, 201,  44, 173, 221, 239, 253
60     }
61 };
62 
63 static const RK_U8 CoeffUpdateProbs[4][8][3][11] = {
64     {
65         {
66             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
67             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
68             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
69         },
70         {
71             {176, 246, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
72             {223, 241, 252, 255, 255, 255, 255, 255, 255, 255, 255, },
73             {249, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255, },
74         },
75         {
76             {255, 244, 252, 255, 255, 255, 255, 255, 255, 255, 255, },
77             {234, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
78             {253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
79         },
80         {
81             {255, 246, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
82             {239, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
83             {254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
84         },
85         {
86             {255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
87             {251, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
88             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
89         },
90         {
91             {255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
92             {251, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
93             {254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
94         },
95         {
96             {255, 254, 253, 255, 254, 255, 255, 255, 255, 255, 255, },
97             {250, 255, 254, 255, 254, 255, 255, 255, 255, 255, 255, },
98             {254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
99         },
100         {
101             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
102             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
103             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
104         },
105     },
106     {
107         {
108             {217, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
109             {225, 252, 241, 253, 255, 255, 254, 255, 255, 255, 255, },
110             {234, 250, 241, 250, 253, 255, 253, 254, 255, 255, 255, },
111         },
112         {
113             {255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
114             {223, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
115             {238, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255, },
116         },
117         {
118             {255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
119             {249, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
120             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
121         },
122         {
123             {255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
124             {247, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
125             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
126         },
127         {
128             {255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
129             {252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
130             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
131         },
132         {
133             {255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
134             {253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
135             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
136         },
137         {
138             {255, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255, },
139             {250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
140             {254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
141         },
142         {
143             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
144             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
145             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
146         },
147     },
148     {
149         {
150             {186, 251, 250, 255, 255, 255, 255, 255, 255, 255, 255, },
151             {234, 251, 244, 254, 255, 255, 255, 255, 255, 255, 255, },
152             {251, 251, 243, 253, 254, 255, 254, 255, 255, 255, 255, },
153         },
154         {
155             {255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
156             {236, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
157             {251, 253, 253, 254, 254, 255, 255, 255, 255, 255, 255, },
158         },
159         {
160             {255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
161             {254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
162             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
163         },
164         {
165             {255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
166             {254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
167             {254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
168         },
169         {
170             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
171             {254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
172             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
173         },
174         {
175             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
176             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
177             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
178         },
179         {
180             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
181             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
182             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
183         },
184         {
185             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
186             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
187             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
188         },
189     },
190     {
191         {
192             {248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
193             {250, 254, 252, 254, 255, 255, 255, 255, 255, 255, 255, },
194             {248, 254, 249, 253, 255, 255, 255, 255, 255, 255, 255, },
195         },
196         {
197             {255, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255, },
198             {246, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255, },
199             {252, 254, 251, 254, 254, 255, 255, 255, 255, 255, 255, },
200         },
201         {
202             {255, 254, 252, 255, 255, 255, 255, 255, 255, 255, 255, },
203             {248, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255, },
204             {253, 255, 254, 254, 255, 255, 255, 255, 255, 255, 255, },
205         },
206         {
207             {255, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
208             {245, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
209             {253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
210         },
211         {
212             {255, 251, 253, 255, 255, 255, 255, 255, 255, 255, 255, },
213             {252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
214             {255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
215         },
216         {
217             {255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
218             {249, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
219             {255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
220         },
221         {
222             {255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255, },
223             {250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
224             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
225         },
226         {
227             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
228             {254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
229             {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
230         },
231     },
232 };
233 
234 
235 static const RK_U8 DefaultCoeffProbs [4][8][3][11] = {
236     {
237         {
238             { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128},
239             { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128},
240             { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128}
241         },
242         {
243             { 253, 136, 254, 255, 228, 219, 128, 128, 128, 128, 128},
244             { 189, 129, 242, 255, 227, 213, 255, 219, 128, 128, 128},
245             { 106, 126, 227, 252, 214, 209, 255, 255, 128, 128, 128}
246         },
247         {
248             { 1, 98, 248, 255, 236, 226, 255, 255, 128, 128, 128},
249             { 181, 133, 238, 254, 221, 234, 255, 154, 128, 128, 128},
250             { 78, 134, 202, 247, 198, 180, 255, 219, 128, 128, 128}
251         },
252         {
253             { 1, 185, 249, 255, 243, 255, 128, 128, 128, 128, 128},
254             { 184, 150, 247, 255, 236, 224, 128, 128, 128, 128, 128},
255             { 77, 110, 216, 255, 236, 230, 128, 128, 128, 128, 128}
256         },
257         {
258             { 1, 101, 251, 255, 241, 255, 128, 128, 128, 128, 128},
259             { 170, 139, 241, 252, 236, 209, 255, 255, 128, 128, 128},
260             { 37, 116, 196, 243, 228, 255, 255, 255, 128, 128, 128}
261         },
262         {
263             { 1, 204, 254, 255, 245, 255, 128, 128, 128, 128, 128},
264             { 207, 160, 250, 255, 238, 128, 128, 128, 128, 128, 128},
265             { 102, 103, 231, 255, 211, 171, 128, 128, 128, 128, 128}
266         },
267         {
268             { 1, 152, 252, 255, 240, 255, 128, 128, 128, 128, 128},
269             { 177, 135, 243, 255, 234, 225, 128, 128, 128, 128, 128},
270             { 80, 129, 211, 255, 194, 224, 128, 128, 128, 128, 128}
271         },
272         {
273             { 1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128},
274             { 246, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128},
275             { 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128}
276         }
277     },
278     {
279         {
280             { 198, 35, 237, 223, 193, 187, 162, 160, 145, 155, 62},
281             { 131, 45, 198, 221, 172, 176, 220, 157, 252, 221, 1},
282             { 68, 47, 146, 208, 149, 167, 221, 162, 255, 223, 128}
283         },
284         {
285             { 1, 149, 241, 255, 221, 224, 255, 255, 128, 128, 128},
286             { 184, 141, 234, 253, 222, 220, 255, 199, 128, 128, 128},
287             { 81, 99, 181, 242, 176, 190, 249, 202, 255, 255, 128}
288         },
289         {
290             { 1, 129, 232, 253, 214, 197, 242, 196, 255, 255, 128},
291             { 99, 121, 210, 250, 201, 198, 255, 202, 128, 128, 128},
292             { 23, 91, 163, 242, 170, 187, 247, 210, 255, 255, 128}
293         },
294         {
295             { 1, 200, 246, 255, 234, 255, 128, 128, 128, 128, 128},
296             { 109, 178, 241, 255, 231, 245, 255, 255, 128, 128, 128},
297             { 44, 130, 201, 253, 205, 192, 255, 255, 128, 128, 128}
298         },
299         {
300             { 1, 132, 239, 251, 219, 209, 255, 165, 128, 128, 128},
301             { 94, 136, 225, 251, 218, 190, 255, 255, 128, 128, 128},
302             { 22, 100, 174, 245, 186, 161, 255, 199, 128, 128, 128}
303         },
304         {
305             { 1, 182, 249, 255, 232, 235, 128, 128, 128, 128, 128},
306             { 124, 143, 241, 255, 227, 234, 128, 128, 128, 128, 128},
307             { 35, 77, 181, 251, 193, 211, 255, 205, 128, 128, 128}
308         },
309         {
310             { 1, 157, 247, 255, 236, 231, 255, 255, 128, 128, 128},
311             { 121, 141, 235, 255, 225, 227, 255, 255, 128, 128, 128},
312             { 45, 99, 188, 251, 195, 217, 255, 224, 128, 128, 128}
313         },
314         {
315             { 1, 1, 251, 255, 213, 255, 128, 128, 128, 128, 128},
316             { 203, 1, 248, 255, 255, 128, 128, 128, 128, 128, 128},
317             { 137, 1, 177, 255, 224, 255, 128, 128, 128, 128, 128}
318         }
319     },
320     {
321         {
322             { 253, 9, 248, 251, 207, 208, 255, 192, 128, 128, 128},
323             { 175, 13, 224, 243, 193, 185, 249, 198, 255, 255, 128},
324             { 73, 17, 171, 221, 161, 179, 236, 167, 255, 234, 128}
325         },
326         {
327             { 1, 95, 247, 253, 212, 183, 255, 255, 128, 128, 128},
328             { 239, 90, 244, 250, 211, 209, 255, 255, 128, 128, 128},
329             { 155, 77, 195, 248, 188, 195, 255, 255, 128, 128, 128}
330         },
331         {
332             { 1, 24, 239, 251, 218, 219, 255, 205, 128, 128, 128},
333             { 201, 51, 219, 255, 196, 186, 128, 128, 128, 128, 128},
334             { 69, 46, 190, 239, 201, 218, 255, 228, 128, 128, 128}
335         },
336         {
337             { 1, 191, 251, 255, 255, 128, 128, 128, 128, 128, 128},
338             { 223, 165, 249, 255, 213, 255, 128, 128, 128, 128, 128},
339             { 141, 124, 248, 255, 255, 128, 128, 128, 128, 128, 128}
340         },
341         {
342             { 1, 16, 248, 255, 255, 128, 128, 128, 128, 128, 128},
343             { 190, 36, 230, 255, 236, 255, 128, 128, 128, 128, 128},
344             { 149, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128}
345         },
346         {
347             { 1, 226, 255, 128, 128, 128, 128, 128, 128, 128, 128},
348             { 247, 192, 255, 128, 128, 128, 128, 128, 128, 128, 128},
349             { 240, 128, 255, 128, 128, 128, 128, 128, 128, 128, 128}
350         },
351         {
352             { 1, 134, 252, 255, 255, 128, 128, 128, 128, 128, 128},
353             { 213, 62, 250, 255, 255, 128, 128, 128, 128, 128, 128},
354             { 55, 93, 255, 128, 128, 128, 128, 128, 128, 128, 128}
355         },
356         {
357             { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128},
358             { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128},
359             { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128}
360         }
361     },
362     {
363         {
364             { 202, 24, 213, 235, 186, 191, 220, 160, 240, 175, 255},
365             { 126, 38, 182, 232, 169, 184, 228, 174, 255, 187, 128},
366             { 61, 46, 138, 219, 151, 178, 240, 170, 255, 216, 128}
367         },
368         {
369             { 1, 112, 230, 250, 199, 191, 247, 159, 255, 255, 128},
370             { 166, 109, 228, 252, 211, 215, 255, 174, 128, 128, 128},
371             { 39, 77, 162, 232, 172, 180, 245, 178, 255, 255, 128}
372         },
373         {
374             { 1, 52, 220, 246, 198, 199, 249, 220, 255, 255, 128},
375             { 124, 74, 191, 243, 183, 193, 250, 221, 255, 255, 128},
376             { 24, 71, 130, 219, 154, 170, 243, 182, 255, 255, 128}
377         },
378         {
379             { 1, 182, 225, 249, 219, 240, 255, 224, 128, 128, 128},
380             { 149, 150, 226, 252, 216, 205, 255, 171, 128, 128, 128},
381             { 28, 108, 170, 242, 183, 194, 254, 223, 255, 255, 128}
382         },
383         {
384             { 1, 81, 230, 252, 204, 203, 255, 192, 128, 128, 128},
385             { 123, 102, 209, 247, 188, 196, 255, 233, 128, 128, 128},
386             { 20, 95, 153, 243, 164, 173, 255, 203, 128, 128, 128}
387         },
388         {
389             { 1, 222, 248, 255, 216, 213, 128, 128, 128, 128, 128},
390             { 168, 175, 246, 252, 235, 205, 255, 255, 128, 128, 128},
391             { 47, 116, 215, 255, 211, 212, 255, 255, 128, 128, 128}
392         },
393         {
394             { 1, 121, 236, 253, 212, 214, 255, 255, 128, 128, 128},
395             { 141, 84, 213, 252, 201, 202, 255, 219, 128, 128, 128},
396             { 42, 80, 160, 240, 162, 185, 255, 205, 128, 128, 128}
397         },
398         {
399             { 1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128},
400             { 244, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128},
401             { 238, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128}
402         }
403     }
404 };
405 
406 
407 #endif
408