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