* mans/dnxhd:
dnxhddec: cache luma/chroma_weight*qscale tables for last qscale
dnxhddec: merge ac_{index,run}_flags
dnxhddec: store 2*level+1 in ac_level tables
dnxhddec: rearrange decode_dct_block loop
Merged-by: Michael Niedermayer <michaelni@gmx.at>
| ... | ... |
@@ -284,63 +284,43 @@ static const uint8_t dnxhd_1237_ac_bits[257] = {
|
| 284 | 284 |
}; |
| 285 | 285 |
|
| 286 | 286 |
static const uint8_t dnxhd_1237_ac_level[257] = {
|
| 287 |
- 1, 1, 2, 0, 3, 4, 2, 5, 6, 7, 3, 8, 9, 10, 11, 12, |
|
| 288 |
- 4, 5, 13, 14, 15, 16, 6, 17, 18, 19, 20, 21, 7, 22, 23, 24, |
|
| 289 |
- 25, 26, 27, 8, 9, 28, 29, 30, 31, 32, 33, 34, 10, 11, 12, 35, |
|
| 290 |
- 36, 37, 38, 39, 40, 41, 13, 14, 15, 16, 42, 43, 44, 45, 46, 47, |
|
| 291 |
- 48, 49, 50, 51, 52, 17, 18, 19, 20, 21, 53, 54, 55, 56, 57, 58, |
|
| 292 |
- 59, 60, 61, 64, 1, 22, 23, 24, 25, 26, 27, 62, 63, 2, 3, 4, |
|
| 293 |
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, |
|
| 294 |
- 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, |
|
| 295 |
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, |
|
| 296 |
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 28, 29, 30, 31, |
|
| 297 |
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, |
|
| 298 |
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, |
|
| 299 |
- 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, |
|
| 300 |
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, |
|
| 301 |
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, |
|
| 302 |
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, |
|
| 303 |
- 64, |
|
| 304 |
-}; |
|
| 305 |
- |
|
| 306 |
-static const uint8_t dnxhd_1237_ac_run_flag[257] = {
|
|
| 307 |
- 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, |
|
| 308 |
- 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, |
|
| 309 |
- 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, |
|
| 310 |
- 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, |
|
| 311 |
- 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, |
|
| 312 |
- 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, |
|
| 313 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 314 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 315 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 316 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, |
|
| 317 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 318 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 319 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 320 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 321 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 322 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 323 |
- 1, |
|
| 324 |
-}; |
|
| 325 |
- |
|
| 326 |
-static const uint8_t dnxhd_1237_ac_index_flag[257] = {
|
|
| 327 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 328 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 329 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 330 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 331 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 332 |
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, |
|
| 333 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 334 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 287 |
+ 3, 3, 5, 0, 7, 9, 5, 11, 13, 15, 7, 17, 19, 21, 23, 25, |
|
| 288 |
+ 9, 11, 27, 29, 31, 33, 13, 35, 37, 39, 41, 43, 15, 45, 47, 49, |
|
| 289 |
+ 51, 53, 55, 17, 19, 57, 59, 61, 63, 65, 67, 69, 21, 23, 25, 71, |
|
| 290 |
+ 73, 75, 77, 79, 81, 83, 27, 29, 31, 33, 85, 87, 89, 91, 93, 95, |
|
| 291 |
+ 97, 99,101,103,105, 35, 37, 39, 41, 43,107,109,111,113,115,117, |
|
| 292 |
+ 119,121,123,129, 3, 45, 47, 49, 51, 53, 55,125,127, 5, 7, 9, |
|
| 293 |
+ 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, |
|
| 294 |
+ 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, |
|
| 295 |
+ 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99,101,103,105, |
|
| 296 |
+ 107,109,111,113,115,117,119,121,123,125,127,129, 57, 59, 61, 63, |
|
| 297 |
+ 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, |
|
| 298 |
+ 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127, |
|
| 299 |
+ 129, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, |
|
| 300 |
+ 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, |
|
| 301 |
+ 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, |
|
| 302 |
+ 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127, |
|
| 303 |
+ 129, |
|
| 304 |
+}; |
|
| 305 |
+ |
|
| 306 |
+static const uint8_t dnxhd_1237_ac_flags[257] = {
|
|
| 307 |
+ 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, |
|
| 308 |
+ 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, |
|
| 309 |
+ 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, |
|
| 310 |
+ 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, |
|
| 311 |
+ 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, |
|
| 312 |
+ 0, 0, 0, 0, 1, 2, 2, 2, 2, 2, 2, 0, 0, 1, 1, 1, |
|
| 335 | 313 |
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
| 336 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, |
|
| 337 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 338 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 339 |
- 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 340 | 314 |
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
| 341 | 315 |
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
| 342 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 343 |
- 1, |
|
| 316 |
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, |
|
| 317 |
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
|
| 318 |
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
|
| 319 |
+ 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
|
| 320 |
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
|
| 321 |
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
|
| 322 |
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
|
| 323 |
+ 3, |
|
| 344 | 324 |
}; |
| 345 | 325 |
|
| 346 | 326 |
static const uint16_t dnxhd_1237_run_codes[62] = {
|
| ... | ... |
@@ -433,63 +413,46 @@ static const uint8_t dnxhd_1238_ac_bits[257] = {
|
| 433 | 433 |
}; |
| 434 | 434 |
|
| 435 | 435 |
static const uint8_t dnxhd_1238_ac_level[257] = {
|
| 436 |
- 1, 1, 2, 3, 0, 4, 5, 2, 6, 7, 8, 3, 9, 10, 11, 4, |
|
| 437 |
- 12, 13, 14, 15, 16, 5, 17, 18, 19, 20, 21, 22, 6, 7, 23, 24, |
|
| 438 |
- 25, 26, 27, 28, 29, 8, 9, 30, 31, 32, 33, 34, 35, 36, 37, 10, |
|
| 439 |
- 11, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 12, 13, 14, 49, |
|
| 440 |
- 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 15, 16, 17, 18, |
|
| 441 |
- 62, 63, 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, |
|
| 442 |
- 14, 15, 16, 19, 20, 21, 22, 23, 24, 17, 18, 19, 20, 21, 22, 23, |
|
| 443 |
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 25, |
|
| 444 |
- 26, 27, 28, 29, 30, 38, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49, |
|
| 445 |
- 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 31, |
|
| 446 |
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, |
|
| 447 |
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, |
|
| 448 |
- 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, |
|
| 449 |
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, |
|
| 450 |
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, |
|
| 451 |
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, |
|
| 452 |
- 64, |
|
| 436 |
+ 3, 3, 5, 7, 0, 9, 11, 5, 13, 15, 17, 7, 19, 21, 23, 9, |
|
| 437 |
+ 25, 27, 29, 31, 33, 11, 35, 37, 39, 41, 43, 45, 13, 15, 47, 49, |
|
| 438 |
+ 51, 53, 55, 57, 59, 17, 19, 61, 63, 65, 67, 69, 71, 73, 75, 21, |
|
| 439 |
+ 23, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 25, 27, 29, 99, |
|
| 440 |
+ 101,103,105,107,109,111,113,115,117,119,121,123, 31, 33, 35, 37, |
|
| 441 |
+ 125,127,129, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, |
|
| 442 |
+ 29, 31, 33, 39, 41, 43, 45, 47, 49, 35, 37, 39, 41, 43, 45, 47, |
|
| 443 |
+ 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 81, 51, |
|
| 444 |
+ 53, 55, 57, 59, 61, 77, 79, 83, 85, 87, 89, 91, 93, 95, 97, 99, |
|
| 445 |
+ 101,103,105,107,109,111,113,115,117,119,121,123,125,127,129, 63, |
|
| 446 |
+ 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, |
|
| 447 |
+ 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127, |
|
| 448 |
+ 129, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, |
|
| 449 |
+ 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, |
|
| 450 |
+ 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, |
|
| 451 |
+ 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127, |
|
| 452 |
+ 129, |
|
| 453 | 453 |
}; /* 0 is EOB */ |
| 454 | 454 |
|
| 455 |
-static const uint8_t dnxhd_1238_ac_run_flag[257] = {
|
|
| 456 |
- 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, |
|
| 457 |
- 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, |
|
| 458 |
- 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, |
|
| 459 |
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, |
|
| 460 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, |
|
| 461 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 462 |
- 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, |
|
| 463 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, |
|
| 464 |
- 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 465 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, |
|
| 466 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 467 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 468 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 469 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 470 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 471 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 472 |
- 1, |
|
| 455 |
+static const uint8_t dnxhd_1238_ac_flags[257] = {
|
|
| 456 |
+ 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, |
|
| 457 |
+ 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, |
|
| 458 |
+ 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, |
|
| 459 |
+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, |
|
| 460 |
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, |
|
| 461 |
+ 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 462 |
+ 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, |
|
| 463 |
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, |
|
| 464 |
+ 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 465 |
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, |
|
| 466 |
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
|
| 467 |
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
|
| 468 |
+ 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
|
| 469 |
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
|
| 470 |
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
|
| 471 |
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
|
| 472 |
+ 3, |
|
| 473 | 473 |
}; |
| 474 | 474 |
|
| 475 | 475 |
static const uint8_t dnxhd_1238_ac_index_flag[257] = {
|
| 476 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 477 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 478 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 479 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 480 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 481 |
- 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 482 |
- 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, |
|
| 483 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, |
|
| 484 |
- 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 485 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, |
|
| 486 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 487 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 488 |
- 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 489 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 490 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 491 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 492 |
- 1, |
|
| 493 | 476 |
}; |
| 494 | 477 |
|
| 495 | 478 |
static const uint16_t dnxhd_1235_1238_1241_run_codes[62] = {
|
| ... | ... |
@@ -582,63 +545,43 @@ static const uint8_t dnxhd_1235_1241_ac_bits[257] = {
|
| 582 | 582 |
}; |
| 583 | 583 |
|
| 584 | 584 |
static const uint8_t dnxhd_1235_1241_ac_level[257] = {
|
| 585 |
- 1, 1, 2, 3, 0, 4, 5, 2, 6, 7, 8, 3, 9, 10, 11, 4, |
|
| 586 |
- 12, 13, 14, 15, 16, 5, 17, 18, 19, 20, 21, 6, 7, 22, 23, 24, |
|
| 587 |
- 25, 26, 27, 28, 29, 8, 9, 30, 31, 32, 33, 34, 35, 36, 37, 38, |
|
| 588 |
- 10, 11, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 12, 13, |
|
| 589 |
- 14, 15, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 1, |
|
| 590 |
- 16, 17, 18, 19, 64, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, |
|
| 591 |
- 13, 14, 15, 16, 17, 20, 21, 22, 23, 24, 18, 19, 20, 21, 22, 23, |
|
| 592 |
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, |
|
| 593 |
- 40, 41, 42, 25, 26, 27, 28, 29, 30, 31, 32, 43, 44, 45, 46, 47, |
|
| 594 |
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, |
|
| 595 |
- 64, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, |
|
| 596 |
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, |
|
| 597 |
- 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, |
|
| 598 |
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, |
|
| 599 |
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, |
|
| 600 |
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, |
|
| 601 |
- 64, |
|
| 602 |
-}; |
|
| 603 |
- |
|
| 604 |
-static const uint8_t dnxhd_1235_1241_ac_run_flag[257] = {
|
|
| 605 |
- 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, |
|
| 606 |
- 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, |
|
| 607 |
- 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 608 |
- 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, |
|
| 609 |
- 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 610 |
- 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 611 |
- 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, |
|
| 612 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 613 |
- 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, |
|
| 614 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 615 |
- 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 616 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 617 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 618 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 619 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 620 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 621 |
- 1, |
|
| 622 |
-}; |
|
| 623 |
- |
|
| 624 |
-static const uint8_t dnxhd_1235_1241_ac_index_flag[257] = {
|
|
| 625 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 626 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 627 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 628 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 629 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, |
|
| 630 |
- 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 631 |
- 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, |
|
| 632 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 633 |
- 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, |
|
| 634 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 635 |
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 636 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 637 |
- 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 638 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 585 |
+ 3, 3, 5, 7, 0, 9, 11, 5, 13, 15, 17, 7, 19, 21, 23, 9, |
|
| 586 |
+ 25, 27, 29, 31, 33, 11, 35, 37, 39, 41, 43, 13, 15, 45, 47, 49, |
|
| 587 |
+ 51, 53, 55, 57, 59, 17, 19, 61, 63, 65, 67, 69, 71, 73, 75, 77, |
|
| 588 |
+ 21, 23, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99,101, 25, 27, |
|
| 589 |
+ 29, 31,103,105,107,109,111,113,115,117,119,121,123,125,127, 3, |
|
| 590 |
+ 33, 35, 37, 39,129, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, |
|
| 591 |
+ 27, 29, 31, 33, 35, 41, 43, 45, 47, 49, 37, 39, 41, 43, 45, 47, |
|
| 592 |
+ 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, |
|
| 593 |
+ 81, 83, 85, 51, 53, 55, 57, 59, 61, 63, 65, 87, 89, 91, 93, 95, |
|
| 594 |
+ 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127, |
|
| 595 |
+ 129, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, |
|
| 596 |
+ 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127, |
|
| 597 |
+ 129, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, |
|
| 598 |
+ 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, |
|
| 599 |
+ 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, |
|
| 600 |
+ 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127, |
|
| 601 |
+ 129, |
|
| 602 |
+}; |
|
| 603 |
+ |
|
| 604 |
+static const uint8_t dnxhd_1235_1241_ac_flags[257] = {
|
|
| 605 |
+ 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, |
|
| 606 |
+ 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, |
|
| 607 |
+ 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 608 |
+ 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, |
|
| 609 |
+ 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, |
|
| 610 |
+ 2, 2, 2, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 611 |
+ 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, |
|
| 639 | 612 |
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
| 613 |
+ 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, |
|
| 640 | 614 |
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
| 641 |
- 1, |
|
| 615 |
+ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
|
| 616 |
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
|
| 617 |
+ 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
|
| 618 |
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
|
| 619 |
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
|
| 620 |
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
|
| 621 |
+ 3, |
|
| 642 | 622 |
}; |
| 643 | 623 |
|
| 644 | 624 |
static const uint8_t dnxhd_1235_1241_run[62] = {
|
| ... | ... |
@@ -709,61 +652,42 @@ static const uint8_t dnxhd_1250_ac_bits[257] = {
|
| 709 | 709 |
16 |
| 710 | 710 |
}; |
| 711 | 711 |
static const uint8_t dnxhd_1250_ac_level[257] = {
|
| 712 |
- 1, 1, 2, 3, 0, 4, 5, 2, 6, 7, 8, 3, 9, 10, 11, 4, |
|
| 713 |
- 12, 13, 14, 15, 16, 5, 17, 18, 19, 20, 21, 22, 6, 23, 24, 25, |
|
| 714 |
- 26, 27, 28, 29, 7, 8, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, |
|
| 715 |
- 9, 10, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 11, |
|
| 716 |
- 12, 13, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 1, 2, |
|
| 717 |
- 3, 4, 5, 14, 15, 16, 17, 6, 7, 8, 9, 10, 11, 12, 13, 14, |
|
| 718 |
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 18, 19, 20, 21, |
|
| 719 |
- 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, |
|
| 720 |
- 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 55, 56, 22, 23, 24, |
|
| 721 |
- 25, 26, 27, 54, 57, 58, 59, 60, 61, 62, 63, 64, 28, 29, 30, 31, |
|
| 722 |
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, |
|
| 723 |
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, |
|
| 724 |
- 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, |
|
| 725 |
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, |
|
| 726 |
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, |
|
| 727 |
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, |
|
| 728 |
- 64 |
|
| 729 |
-}; |
|
| 730 |
-static const uint8_t dnxhd_1250_ac_run_flag[257] = {
|
|
| 731 |
- 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, |
|
| 732 |
- 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, |
|
| 733 |
- 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 734 |
- 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, |
|
| 735 |
- 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 736 |
- 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 737 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, |
|
| 738 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 739 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, |
|
| 740 |
- 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, |
|
| 712 |
+ 3, 3, 5, 7, 0, 9, 11, 5, 13, 15, 17, 7, 19, 21, 23, 9, |
|
| 713 |
+ 25, 27, 29, 31, 33, 11, 35, 37, 39, 41, 43, 45, 13, 47, 49, 51, |
|
| 714 |
+ 53, 55, 57, 59, 15, 17, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, |
|
| 715 |
+ 19, 21, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99,101,103,105, 23, |
|
| 716 |
+ 25, 27,107,109,111,113,115,117,119,121,123,125,127,129, 3, 5, |
|
| 717 |
+ 7, 9, 11, 29, 31, 33, 35, 13, 15, 17, 19, 21, 23, 25, 27, 29, |
|
| 718 |
+ 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 37, 39, 41, 43, |
|
| 719 |
+ 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, |
|
| 720 |
+ 87, 89, 91, 93, 95, 97, 99,101,103,105,107,111,113, 45, 47, 49, |
|
| 721 |
+ 51, 53, 55,109,115,117,119,121,123,125,127,129, 57, 59, 61, 63, |
|
| 722 |
+ 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, |
|
| 723 |
+ 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127, |
|
| 724 |
+ 129, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, |
|
| 725 |
+ 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, |
|
| 726 |
+ 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, |
|
| 727 |
+ 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127, |
|
| 728 |
+ 129 |
|
| 729 |
+}; |
|
| 730 |
+static const uint8_t dnxhd_1250_ac_flags[257] = {
|
|
| 731 |
+ 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, |
|
| 732 |
+ 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, |
|
| 733 |
+ 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 734 |
+ 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, |
|
| 735 |
+ 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, |
|
| 736 |
+ 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 737 |
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, |
|
| 741 | 738 |
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
| 742 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 743 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 744 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 745 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 746 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 747 |
- 1 |
|
| 748 |
-}; |
|
| 749 |
-static const uint8_t dnxhd_1250_ac_index_flag[257] = {
|
|
| 750 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 751 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 752 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 753 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 754 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, |
|
| 755 |
- 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 756 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, |
|
| 757 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 758 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, |
|
| 759 |
- 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, |
|
| 760 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 761 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 762 |
- 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 763 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 764 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 765 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 766 |
- 1 |
|
| 739 |
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, |
|
| 740 |
+ 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, |
|
| 741 |
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
|
| 742 |
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
|
| 743 |
+ 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
|
| 744 |
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
|
| 745 |
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
|
| 746 |
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
|
| 747 |
+ 3, |
|
| 767 | 748 |
}; |
| 768 | 749 |
static const uint16_t dnxhd_1250_run_codes[62] = {
|
| 769 | 750 |
0, 4, 5, 12, 26, 27, 28, 58, |
| ... | ... |
@@ -853,63 +777,43 @@ static const uint8_t dnxhd_1251_ac_bits[257] = {
|
| 853 | 853 |
}; |
| 854 | 854 |
|
| 855 | 855 |
static const uint8_t dnxhd_1251_ac_level[257] = {
|
| 856 |
- 1, 1, 2, 3, 0, 4, 5, 2, 6, 7, 8, 3, 9, 10, 11, 4, |
|
| 857 |
- 12, 13, 14, 15, 16, 5, 17, 18, 19, 20, 21, 6, 22, 23, 24, 25, |
|
| 858 |
- 26, 27, 28, 29, 7, 8, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, |
|
| 859 |
- 40, 9, 10, 11, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, |
|
| 860 |
- 12, 13, 14, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 1, |
|
| 861 |
- 2, 3, 4, 5, 6, 7, 8, 15, 16, 17, 9, 10, 11, 12, 13, 14, |
|
| 862 |
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 18, |
|
| 863 |
- 19, 20, 21, 22, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, |
|
| 864 |
- 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, |
|
| 865 |
- 58, 23, 24, 25, 26, 27, 28, 59, 60, 61, 62, 63, 64, 29, 30, 31, |
|
| 866 |
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, |
|
| 867 |
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, |
|
| 868 |
- 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, |
|
| 869 |
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, |
|
| 870 |
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, |
|
| 871 |
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, |
|
| 872 |
- 64, |
|
| 873 |
-}; |
|
| 874 |
- |
|
| 875 |
-static const uint8_t dnxhd_1251_ac_run_flag[257] = {
|
|
| 876 |
- 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, |
|
| 877 |
- 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, |
|
| 878 |
- 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 879 |
- 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 880 |
- 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 881 |
- 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, |
|
| 882 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, |
|
| 883 |
- 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 884 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 885 |
- 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, |
|
| 886 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 887 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 888 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 856 |
+ 3, 3, 5, 7, 0, 9, 11, 5, 13, 15, 17, 7, 19, 21, 23, 9, |
|
| 857 |
+ 25, 27, 29, 31, 33, 11, 35, 37, 39, 41, 43, 13, 45, 47, 49, 51, |
|
| 858 |
+ 53, 55, 57, 59, 15, 17, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, |
|
| 859 |
+ 81, 19, 21, 23, 83, 85, 87, 89, 91, 93, 95, 97, 99,101,103,105, |
|
| 860 |
+ 25, 27, 29,107,109,111,113,115,117,119,121,123,125,127,129, 3, |
|
| 861 |
+ 5, 7, 9, 11, 13, 15, 17, 31, 33, 35, 19, 21, 23, 25, 27, 29, |
|
| 862 |
+ 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 37, |
|
| 863 |
+ 39, 41, 43, 45, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, |
|
| 864 |
+ 85, 87, 89, 91, 93, 95, 97, 99,101,103,105,107,109,111,113,115, |
|
| 865 |
+ 117, 47, 49, 51, 53, 55, 57,119,121,123,125,127,129, 59, 61, 63, |
|
| 866 |
+ 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, |
|
| 867 |
+ 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127, |
|
| 868 |
+ 129, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, |
|
| 869 |
+ 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, |
|
| 870 |
+ 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, |
|
| 871 |
+ 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127, |
|
| 872 |
+ 129, |
|
| 873 |
+}; |
|
| 874 |
+ |
|
| 875 |
+static const uint8_t dnxhd_1251_ac_flags[257] = {
|
|
| 876 |
+ 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 2, |
|
| 877 |
+ 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, |
|
| 878 |
+ 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 879 |
+ 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 880 |
+ 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, |
|
| 881 |
+ 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, |
|
| 882 |
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, |
|
| 883 |
+ 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 889 | 884 |
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
| 890 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 891 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 892 |
- 1, |
|
| 893 |
-}; |
|
| 894 |
- |
|
| 895 |
-static const uint8_t dnxhd_1251_ac_index_flag[257] = {
|
|
| 896 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 897 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 898 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 899 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 900 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, |
|
| 901 |
- 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, |
|
| 902 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, |
|
| 903 |
- 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 904 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 905 |
- 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, |
|
| 906 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 907 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 908 |
- 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 909 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 910 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 911 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 912 |
- 1, |
|
| 885 |
+ 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, |
|
| 886 |
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
|
| 887 |
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
|
| 888 |
+ 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
|
| 889 |
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
|
| 890 |
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
|
| 891 |
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
|
| 892 |
+ 3, |
|
| 913 | 893 |
}; |
| 914 | 894 |
|
| 915 | 895 |
static const uint16_t dnxhd_1251_run_codes[62] = {
|
| ... | ... |
@@ -1002,134 +906,114 @@ static const uint8_t dnxhd_1252_ac_bits[257] = {
|
| 1002 | 1002 |
}; |
| 1003 | 1003 |
|
| 1004 | 1004 |
static const uint8_t dnxhd_1252_ac_level[257] = {
|
| 1005 |
- 1, 1, 2, 3, 2, 0, 4, 5, 6, 7, 3, 8, 9, 10, 11, 12, |
|
| 1006 |
- 13, 14, 4, 5, 15, 16, 17, 18, 6, 19, 20, 21, 22, 23, 24, 7, |
|
| 1007 |
- 8, 25, 26, 27, 28, 29, 30, 31, 32, 9, 10, 33, 34, 35, 36, 37, |
|
| 1008 |
- 38, 39, 40, 41, 11, 12, 13, 42, 43, 44, 45, 46, 47, 48, 49, 50, |
|
| 1009 |
- 51, 52, 53, 14, 15, 16, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, |
|
| 1010 |
- 64, 1, 2, 3, 17, 18, 19, 20, 4, 5, 6, 7, 8, 9, 10, 11, |
|
| 1011 |
- 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 21, 22, 23, 24, 25, 22, |
|
| 1012 |
- 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, |
|
| 1013 |
- 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, |
|
| 1014 |
- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 26, 27, 28, 29, 30, 31, |
|
| 1015 |
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, |
|
| 1016 |
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, |
|
| 1017 |
- 64, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, |
|
| 1018 |
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, |
|
| 1019 |
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, |
|
| 1020 |
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, |
|
| 1021 |
- 64, |
|
| 1022 |
-}; |
|
| 1023 |
- |
|
| 1024 |
-static const uint8_t dnxhd_1252_ac_run_flag[257] = {
|
|
| 1025 |
- 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, |
|
| 1026 |
- 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, |
|
| 1027 |
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, |
|
| 1028 |
- 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 1029 |
- 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 1030 |
- 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 1031 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, |
|
| 1032 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 1033 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 1034 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, |
|
| 1035 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 1036 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 1037 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 1038 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 1039 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 1040 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 1041 |
- 1, |
|
| 1042 |
-}; |
|
| 1043 |
- |
|
| 1044 |
-static const uint8_t dnxhd_1252_ac_index_flag[257] = {
|
|
| 1045 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 1046 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 1047 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 1048 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 1049 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 1050 |
- 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 1051 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, |
|
| 1052 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 1053 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 1054 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, |
|
| 1055 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 1056 |
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 1057 |
- 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 1058 |
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 1005 |
+ 3, 3, 5, 7, 5, 0, 9, 11, 13, 15, 7, 17, 19, 21, 23, 25, |
|
| 1006 |
+ 27, 29, 9, 11, 31, 33, 35, 37, 13, 39, 41, 43, 45, 47, 49, 15, |
|
| 1007 |
+ 17, 51, 53, 55, 57, 59, 61, 63, 65, 19, 21, 67, 69, 71, 73, 75, |
|
| 1008 |
+ 77, 79, 81, 83, 23, 25, 27, 85, 87, 89, 91, 93, 95, 97, 99,101, |
|
| 1009 |
+ 103,105,107, 29, 31, 33,109,111,113,115,117,119,121,123,125,127, |
|
| 1010 |
+ 129, 3, 5, 7, 35, 37, 39, 41, 9, 11, 13, 15, 17, 19, 21, 23, |
|
| 1011 |
+ 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 43, 45, 47, 49, 51, 45, |
|
| 1012 |
+ 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, |
|
| 1013 |
+ 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99,101,103,105,107,109, |
|
| 1014 |
+ 111,113,115,117,119,121,123,125,127,129, 53, 55, 57, 59, 61, 63, |
|
| 1015 |
+ 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, |
|
| 1016 |
+ 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127, |
|
| 1017 |
+ 129, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, |
|
| 1018 |
+ 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, |
|
| 1019 |
+ 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, |
|
| 1020 |
+ 97, 99,101,103,105,107,109,111,113,115,117,119,121,123,125,127, |
|
| 1021 |
+ 129, |
|
| 1022 |
+}; |
|
| 1023 |
+ |
|
| 1024 |
+static const uint8_t dnxhd_1252_ac_flags[257] = {
|
|
| 1025 |
+ 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, |
|
| 1026 |
+ 0, 0, 2, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, |
|
| 1027 |
+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, |
|
| 1028 |
+ 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 1029 |
+ 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
|
| 1030 |
+ 0, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, |
|
| 1031 |
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, |
|
| 1059 | 1032 |
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
| 1060 | 1033 |
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
| 1061 |
- 1, |
|
| 1034 |
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, |
|
| 1035 |
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
|
| 1036 |
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, |
|
| 1037 |
+ 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
|
| 1038 |
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
|
| 1039 |
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
|
| 1040 |
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, |
|
| 1041 |
+ 3, |
|
| 1062 | 1042 |
}; |
| 1063 | 1043 |
|
| 1064 | 1044 |
const CIDEntry ff_dnxhd_cid_table[] = {
|
| 1065 |
- { 1235, 1920, 1080, 0, 917504, 917504, 6, 10,
|
|
| 1045 |
+ { 1235, 1920, 1080, 0, 917504, 917504, 6, 10, 4,
|
|
| 1066 | 1046 |
dnxhd_1235_luma_weight, dnxhd_1235_chroma_weight, |
| 1067 | 1047 |
dnxhd_1235_1241_dc_codes, dnxhd_1235_1241_dc_bits, |
| 1068 | 1048 |
dnxhd_1235_1241_ac_codes, dnxhd_1235_1241_ac_bits, dnxhd_1235_1241_ac_level, |
| 1069 |
- dnxhd_1235_1241_ac_run_flag, dnxhd_1235_1241_ac_index_flag, |
|
| 1049 |
+ dnxhd_1235_1241_ac_flags, |
|
| 1070 | 1050 |
dnxhd_1235_1238_1241_run_codes, dnxhd_1235_1238_1241_run_bits, dnxhd_1235_1241_run, |
| 1071 | 1051 |
{ 175, 185, 365, 440 } },
|
| 1072 |
- { 1237, 1920, 1080, 0, 606208, 606208, 4, 8,
|
|
| 1052 |
+ { 1237, 1920, 1080, 0, 606208, 606208, 4, 8, 3,
|
|
| 1073 | 1053 |
dnxhd_1237_luma_weight, dnxhd_1237_chroma_weight, |
| 1074 | 1054 |
dnxhd_1237_dc_codes, dnxhd_1237_dc_bits, |
| 1075 | 1055 |
dnxhd_1237_ac_codes, dnxhd_1237_ac_bits, dnxhd_1237_ac_level, |
| 1076 |
- dnxhd_1237_ac_run_flag, dnxhd_1237_ac_index_flag, |
|
| 1056 |
+ dnxhd_1237_ac_flags, |
|
| 1077 | 1057 |
dnxhd_1237_run_codes, dnxhd_1237_run_bits, dnxhd_1237_run, |
| 1078 | 1058 |
{ 115, 120, 145, 240, 290 } },
|
| 1079 |
- { 1238, 1920, 1080, 0, 917504, 917504, 4, 8,
|
|
| 1059 |
+ { 1238, 1920, 1080, 0, 917504, 917504, 4, 8, 4,
|
|
| 1080 | 1060 |
dnxhd_1238_luma_weight, dnxhd_1238_chroma_weight, |
| 1081 | 1061 |
dnxhd_1238_dc_codes, dnxhd_1238_dc_bits, |
| 1082 | 1062 |
dnxhd_1238_ac_codes, dnxhd_1238_ac_bits, dnxhd_1238_ac_level, |
| 1083 |
- dnxhd_1238_ac_run_flag, dnxhd_1238_ac_index_flag, |
|
| 1063 |
+ dnxhd_1238_ac_flags, |
|
| 1084 | 1064 |
dnxhd_1235_1238_1241_run_codes, dnxhd_1235_1238_1241_run_bits, dnxhd_1238_run, |
| 1085 | 1065 |
{ 175, 185, 220, 365, 440 } },
|
| 1086 |
- { 1241, 1920, 1080, 1, 917504, 458752, 6, 10,
|
|
| 1066 |
+ { 1241, 1920, 1080, 1, 917504, 458752, 6, 10, 4,
|
|
| 1087 | 1067 |
dnxhd_1241_luma_weight, dnxhd_1241_chroma_weight, |
| 1088 | 1068 |
dnxhd_1235_1241_dc_codes, dnxhd_1235_1241_dc_bits, |
| 1089 | 1069 |
dnxhd_1235_1241_ac_codes, dnxhd_1235_1241_ac_bits, dnxhd_1235_1241_ac_level, |
| 1090 |
- dnxhd_1235_1241_ac_run_flag, dnxhd_1235_1241_ac_index_flag, |
|
| 1070 |
+ dnxhd_1235_1241_ac_flags, |
|
| 1091 | 1071 |
dnxhd_1235_1238_1241_run_codes, dnxhd_1235_1238_1241_run_bits, dnxhd_1235_1241_run, |
| 1092 | 1072 |
{ 185, 220 } },
|
| 1093 |
- { 1242, 1920, 1080, 1, 606208, 303104, 4, 8,
|
|
| 1073 |
+ { 1242, 1920, 1080, 1, 606208, 303104, 4, 8, 3,
|
|
| 1094 | 1074 |
dnxhd_1242_luma_weight, dnxhd_1242_chroma_weight, |
| 1095 | 1075 |
dnxhd_1237_dc_codes, dnxhd_1237_dc_bits, |
| 1096 | 1076 |
dnxhd_1237_ac_codes, dnxhd_1237_ac_bits, dnxhd_1237_ac_level, |
| 1097 |
- dnxhd_1237_ac_run_flag, dnxhd_1237_ac_index_flag, |
|
| 1077 |
+ dnxhd_1237_ac_flags, |
|
| 1098 | 1078 |
dnxhd_1237_run_codes, dnxhd_1237_run_bits, dnxhd_1237_run, |
| 1099 | 1079 |
{ 120, 145 } },
|
| 1100 |
- { 1243, 1920, 1080, 1, 917504, 458752, 4, 8,
|
|
| 1080 |
+ { 1243, 1920, 1080, 1, 917504, 458752, 4, 8, 4,
|
|
| 1101 | 1081 |
dnxhd_1243_luma_weight, dnxhd_1243_chroma_weight, |
| 1102 | 1082 |
dnxhd_1238_dc_codes, dnxhd_1238_dc_bits, |
| 1103 | 1083 |
dnxhd_1238_ac_codes, dnxhd_1238_ac_bits, dnxhd_1238_ac_level, |
| 1104 |
- dnxhd_1238_ac_run_flag, dnxhd_1238_ac_index_flag, |
|
| 1084 |
+ dnxhd_1238_ac_flags, |
|
| 1105 | 1085 |
dnxhd_1235_1238_1241_run_codes, dnxhd_1235_1238_1241_run_bits, dnxhd_1238_run, |
| 1106 | 1086 |
{ 185, 220 } },
|
| 1107 |
- { 1250, 1280, 720, 0, 458752, 458752, 6, 10,
|
|
| 1087 |
+ { 1250, 1280, 720, 0, 458752, 458752, 6, 10, 4,
|
|
| 1108 | 1088 |
dnxhd_1250_luma_weight, dnxhd_1250_chroma_weight, |
| 1109 | 1089 |
dnxhd_1250_dc_codes, dnxhd_1250_dc_bits, |
| 1110 | 1090 |
dnxhd_1250_ac_codes, dnxhd_1250_ac_bits, dnxhd_1250_ac_level, |
| 1111 |
- dnxhd_1250_ac_run_flag, dnxhd_1250_ac_index_flag, |
|
| 1091 |
+ dnxhd_1250_ac_flags, |
|
| 1112 | 1092 |
dnxhd_1250_run_codes, dnxhd_1250_run_bits, dnxhd_1250_run, |
| 1113 | 1093 |
{ 90, 180, 220 } },
|
| 1114 |
- { 1251, 1280, 720, 0, 458752, 458752, 4, 8,
|
|
| 1094 |
+ { 1251, 1280, 720, 0, 458752, 458752, 4, 8, 4,
|
|
| 1115 | 1095 |
dnxhd_1251_luma_weight, dnxhd_1251_chroma_weight, |
| 1116 | 1096 |
dnxhd_1251_dc_codes, dnxhd_1251_dc_bits, |
| 1117 | 1097 |
dnxhd_1251_ac_codes, dnxhd_1251_ac_bits, dnxhd_1251_ac_level, |
| 1118 |
- dnxhd_1251_ac_run_flag, dnxhd_1251_ac_index_flag, |
|
| 1098 |
+ dnxhd_1251_ac_flags, |
|
| 1119 | 1099 |
dnxhd_1251_run_codes, dnxhd_1251_run_bits, dnxhd_1251_run, |
| 1120 | 1100 |
{ 90, 110, 175, 220 } },
|
| 1121 |
- { 1252, 1280, 720, 0, 303104, 303104, 4, 8,
|
|
| 1101 |
+ { 1252, 1280, 720, 0, 303104, 303104, 4, 8, 5,
|
|
| 1122 | 1102 |
dnxhd_1252_luma_weight, dnxhd_1252_chroma_weight, |
| 1123 | 1103 |
dnxhd_1252_dc_codes, dnxhd_1252_dc_bits, |
| 1124 | 1104 |
dnxhd_1252_ac_codes, dnxhd_1252_ac_bits, dnxhd_1252_ac_level, |
| 1125 |
- dnxhd_1252_ac_run_flag, dnxhd_1252_ac_index_flag, |
|
| 1105 |
+ dnxhd_1252_ac_flags, |
|
| 1126 | 1106 |
dnxhd_1251_run_codes, dnxhd_1251_run_bits, dnxhd_1251_run, |
| 1127 | 1107 |
{ 60, 75, 115, 145 } },
|
| 1128 |
- { 1253, 1920, 1080, 0, 188416, 188416, 4, 8,
|
|
| 1108 |
+ { 1253, 1920, 1080, 0, 188416, 188416, 4, 8, 3,
|
|
| 1129 | 1109 |
dnxhd_1237_luma_weight, dnxhd_1237_chroma_weight, |
| 1130 | 1110 |
dnxhd_1237_dc_codes, dnxhd_1237_dc_bits, |
| 1131 | 1111 |
dnxhd_1237_ac_codes, dnxhd_1237_ac_bits, dnxhd_1237_ac_level, |
| 1132 |
- dnxhd_1237_ac_run_flag, dnxhd_1237_ac_index_flag, |
|
| 1112 |
+ dnxhd_1237_ac_flags, |
|
| 1133 | 1113 |
dnxhd_1237_run_codes, dnxhd_1237_run_bits, dnxhd_1237_run, |
| 1134 | 1114 |
{ 36, 45, 75, 90 } },
|
| 1135 | 1115 |
}; |
| ... | ... |
@@ -33,11 +33,12 @@ typedef struct {
|
| 33 | 33 |
unsigned int coding_unit_size; |
| 34 | 34 |
int index_bits; |
| 35 | 35 |
int bit_depth; |
| 36 |
+ int eob_index; |
|
| 36 | 37 |
const uint8_t *luma_weight, *chroma_weight; |
| 37 | 38 |
const uint8_t *dc_codes, *dc_bits; |
| 38 | 39 |
const uint16_t *ac_codes; |
| 39 | 40 |
const uint8_t *ac_bits, *ac_level; |
| 40 |
- const uint8_t *ac_run_flag, *ac_index_flag; |
|
| 41 |
+ const uint8_t *ac_flags; |
|
| 41 | 42 |
const uint16_t *run_codes; |
| 42 | 43 |
const uint8_t *run_bits, *run; |
| 43 | 44 |
int bit_rates[5]; ///< Helpher to choose variants, rounded to nearest 5Mb/s |
| ... | ... |
@@ -49,6 +49,9 @@ typedef struct DNXHDContext {
|
| 49 | 49 |
int bit_depth; // 8, 10 or 0 if not initialized at all. |
| 50 | 50 |
void (*decode_dct_block)(struct DNXHDContext *ctx, DCTELEM *block, |
| 51 | 51 |
int n, int qscale); |
| 52 |
+ int last_qscale; |
|
| 53 |
+ int luma_scale[64]; |
|
| 54 |
+ int chroma_scale[64]; |
|
| 52 | 55 |
} DNXHDContext; |
| 53 | 56 |
|
| 54 | 57 |
#define DNXHD_VLC_BITS 9 |
| ... | ... |
@@ -186,16 +189,22 @@ static av_always_inline void dnxhd_decode_dct_block(DNXHDContext *ctx, |
| 186 | 186 |
int level_bias, |
| 187 | 187 |
int level_shift) |
| 188 | 188 |
{
|
| 189 |
- int i, j, index1, index2, len; |
|
| 189 |
+ int i, j, index1, index2, len, flags; |
|
| 190 | 190 |
int level, component, sign; |
| 191 |
+ const int *scale; |
|
| 191 | 192 |
const uint8_t *weight_matrix; |
| 193 |
+ const uint8_t *ac_level = ctx->cid_table->ac_level; |
|
| 194 |
+ const uint8_t *ac_flags = ctx->cid_table->ac_flags; |
|
| 195 |
+ const int eob_index = ctx->cid_table->eob_index; |
|
| 192 | 196 |
OPEN_READER(bs, &ctx->gb); |
| 193 | 197 |
|
| 194 | 198 |
if (n&2) {
|
| 195 | 199 |
component = 1 + (n&1); |
| 200 |
+ scale = ctx->chroma_scale; |
|
| 196 | 201 |
weight_matrix = ctx->cid_table->chroma_weight; |
| 197 | 202 |
} else {
|
| 198 | 203 |
component = 0; |
| 204 |
+ scale = ctx->luma_scale; |
|
| 199 | 205 |
weight_matrix = ctx->cid_table->luma_weight; |
| 200 | 206 |
} |
| 201 | 207 |
|
| ... | ... |
@@ -211,33 +220,32 @@ static av_always_inline void dnxhd_decode_dct_block(DNXHDContext *ctx, |
| 211 | 211 |
block[0] = ctx->last_dc[component]; |
| 212 | 212 |
//av_log(ctx->avctx, AV_LOG_DEBUG, "dc %d\n", block[0]); |
| 213 | 213 |
|
| 214 |
- for (i = 1; ; i++) {
|
|
| 215 |
- UPDATE_CACHE(bs, &ctx->gb); |
|
| 216 |
- GET_VLC(index1, bs, &ctx->gb, ctx->ac_vlc.table, |
|
| 217 |
- DNXHD_VLC_BITS, 2); |
|
| 218 |
- //av_log(ctx->avctx, AV_LOG_DEBUG, "index %d\n", index1); |
|
| 219 |
- level = ctx->cid_table->ac_level[index1]; |
|
| 220 |
- if (!level) { /* EOB */
|
|
| 221 |
- //av_log(ctx->avctx, AV_LOG_DEBUG, "EOB\n"); |
|
| 222 |
- break; |
|
| 223 |
- } |
|
| 214 |
+ i = 0; |
|
| 215 |
+ |
|
| 216 |
+ UPDATE_CACHE(bs, &ctx->gb); |
|
| 217 |
+ GET_VLC(index1, bs, &ctx->gb, ctx->ac_vlc.table, |
|
| 218 |
+ DNXHD_VLC_BITS, 2); |
|
| 219 |
+ |
|
| 220 |
+ while (index1 != eob_index) {
|
|
| 221 |
+ level = ac_level[index1]; |
|
| 222 |
+ flags = ac_flags[index1]; |
|
| 224 | 223 |
|
| 225 | 224 |
sign = SHOW_SBITS(bs, &ctx->gb, 1); |
| 226 | 225 |
SKIP_BITS(bs, &ctx->gb, 1); |
| 227 | 226 |
|
| 228 |
- if (ctx->cid_table->ac_index_flag[index1]) {
|
|
| 229 |
- level += SHOW_UBITS(bs, &ctx->gb, index_bits) << 6; |
|
| 227 |
+ if (flags & 1) {
|
|
| 228 |
+ level += SHOW_UBITS(bs, &ctx->gb, index_bits) << 7; |
|
| 230 | 229 |
SKIP_BITS(bs, &ctx->gb, index_bits); |
| 231 | 230 |
} |
| 232 | 231 |
|
| 233 |
- if (ctx->cid_table->ac_run_flag[index1]) {
|
|
| 232 |
+ if (flags & 2) {
|
|
| 234 | 233 |
UPDATE_CACHE(bs, &ctx->gb); |
| 235 | 234 |
GET_VLC(index2, bs, &ctx->gb, ctx->run_vlc.table, |
| 236 | 235 |
DNXHD_VLC_BITS, 2); |
| 237 | 236 |
i += ctx->cid_table->run[index2]; |
| 238 | 237 |
} |
| 239 | 238 |
|
| 240 |
- if (i > 63) {
|
|
| 239 |
+ if (++i > 63) {
|
|
| 241 | 240 |
av_log(ctx->avctx, AV_LOG_ERROR, "ac tex damaged %d, %d\n", n, i); |
| 242 | 241 |
break; |
| 243 | 242 |
} |
| ... | ... |
@@ -245,13 +253,17 @@ static av_always_inline void dnxhd_decode_dct_block(DNXHDContext *ctx, |
| 245 | 245 |
j = ctx->scantable.permutated[i]; |
| 246 | 246 |
//av_log(ctx->avctx, AV_LOG_DEBUG, "j %d\n", j); |
| 247 | 247 |
//av_log(ctx->avctx, AV_LOG_DEBUG, "level %d, weight %d\n", level, weight_matrix[i]); |
| 248 |
- level = (2*level+1) * qscale * weight_matrix[i]; |
|
| 248 |
+ level *= scale[i]; |
|
| 249 | 249 |
if (level_bias < 32 || weight_matrix[i] != level_bias) |
| 250 | 250 |
level += level_bias; |
| 251 | 251 |
level >>= level_shift; |
| 252 | 252 |
|
| 253 | 253 |
//av_log(NULL, AV_LOG_DEBUG, "i %d, j %d, end level %d\n", i, j, level); |
| 254 | 254 |
block[j] = (level^sign) - sign; |
| 255 |
+ |
|
| 256 |
+ UPDATE_CACHE(bs, &ctx->gb); |
|
| 257 |
+ GET_VLC(index1, bs, &ctx->gb, ctx->ac_vlc.table, |
|
| 258 |
+ DNXHD_VLC_BITS, 2); |
|
| 255 | 259 |
} |
| 256 | 260 |
|
| 257 | 261 |
CLOSE_READER(bs, &ctx->gb); |
| ... | ... |
@@ -282,6 +294,14 @@ static int dnxhd_decode_macroblock(DNXHDContext *ctx, int x, int y) |
| 282 | 282 |
skip_bits1(&ctx->gb); |
| 283 | 283 |
//av_log(ctx->avctx, AV_LOG_DEBUG, "qscale %d\n", qscale); |
| 284 | 284 |
|
| 285 |
+ if (qscale != ctx->last_qscale) {
|
|
| 286 |
+ for (i = 0; i < 64; i++) {
|
|
| 287 |
+ ctx->luma_scale[i] = qscale * ctx->cid_table->luma_weight[i]; |
|
| 288 |
+ ctx->chroma_scale[i] = qscale * ctx->cid_table->chroma_weight[i]; |
|
| 289 |
+ } |
|
| 290 |
+ ctx->last_qscale = qscale; |
|
| 291 |
+ } |
|
| 292 |
+ |
|
| 285 | 293 |
for (i = 0; i < 8; i++) {
|
| 286 | 294 |
ctx->dsp.clear_block(ctx->blocks[i]); |
| 287 | 295 |
ctx->decode_dct_block(ctx, ctx->blocks[i], i, qscale); |
| ... | ... |
@@ -122,9 +122,9 @@ static int dnxhd_init_vlc(DNXHDEncContext *ctx) |
| 122 | 122 |
alevel -= offset<<6; |
| 123 | 123 |
} |
| 124 | 124 |
for (j = 0; j < 257; j++) {
|
| 125 |
- if (ctx->cid_table->ac_level[j] == alevel && |
|
| 126 |
- (!offset || (ctx->cid_table->ac_index_flag[j] && offset)) && |
|
| 127 |
- (!run || (ctx->cid_table->ac_run_flag [j] && run))) {
|
|
| 125 |
+ if (ctx->cid_table->ac_level[j] >> 1 == alevel && |
|
| 126 |
+ (!offset || (ctx->cid_table->ac_flags[j] & 1) && offset) && |
|
| 127 |
+ (!run || (ctx->cid_table->ac_flags[j] & 2) && run)) {
|
|
| 128 | 128 |
assert(!ctx->vlc_codes[index]); |
| 129 | 129 |
if (alevel) {
|
| 130 | 130 |
ctx->vlc_codes[index] = (ctx->cid_table->ac_codes[j]<<1)|(sign&1); |