Mercurial > libavcodec.hg
comparison h264data.h @ 2919:71ca5ed04789 libavcodec
decode custom quant matrices.
based on a patch by anonymous, with optimizations by me.
author | lorenm |
---|---|
date | Tue, 25 Oct 2005 01:17:20 +0000 |
parents | a1f71e17054c |
children | ef2149182f1c |
comparison
equal
deleted
inserted
replaced
2918:13dcd22f0816 | 2919:71ca5ed04789 |
---|---|
455 | 455 |
456 static const uint8_t div6[52]={ | 456 static const uint8_t div6[52]={ |
457 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, | 457 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, |
458 }; | 458 }; |
459 | 459 |
460 static const uint16_t dequant_coeff[52][16]={ | 460 static const uint8_t default_scaling4[2][16]={ |
461 { 10, 13, 10, 13, 13, 16, 13, 16, 10, 13, 10, 13, 13, 16, 13, 16, }, | 461 { 6,13,20,28, |
462 { 11, 14, 11, 14, 14, 18, 14, 18, 11, 14, 11, 14, 14, 18, 14, 18, }, | 462 13,20,28,32, |
463 { 13, 16, 13, 16, 16, 20, 16, 20, 13, 16, 13, 16, 16, 20, 16, 20, }, | 463 20,28,32,37, |
464 { 14, 18, 14, 18, 18, 23, 18, 23, 14, 18, 14, 18, 18, 23, 18, 23, }, | 464 28,32,37,42 |
465 { 16, 20, 16, 20, 20, 25, 20, 25, 16, 20, 16, 20, 20, 25, 20, 25, }, | 465 },{ |
466 { 18, 23, 18, 23, 23, 29, 23, 29, 18, 23, 18, 23, 23, 29, 23, 29, }, | 466 10,14,20,24, |
467 { 20, 26, 20, 26, 26, 32, 26, 32, 20, 26, 20, 26, 26, 32, 26, 32, }, | 467 14,20,24,27, |
468 { 22, 28, 22, 28, 28, 36, 28, 36, 22, 28, 22, 28, 28, 36, 28, 36, }, | 468 20,24,27,30, |
469 { 26, 32, 26, 32, 32, 40, 32, 40, 26, 32, 26, 32, 32, 40, 32, 40, }, | 469 24,27,30,34 |
470 { 28, 36, 28, 36, 36, 46, 36, 46, 28, 36, 28, 36, 36, 46, 36, 46, }, | 470 }}; |
471 { 32, 40, 32, 40, 40, 50, 40, 50, 32, 40, 32, 40, 40, 50, 40, 50, }, | 471 |
472 { 36, 46, 36, 46, 46, 58, 46, 58, 36, 46, 36, 46, 46, 58, 46, 58, }, | 472 static const uint8_t default_scaling8[2][64]={ |
473 { 40, 52, 40, 52, 52, 64, 52, 64, 40, 52, 40, 52, 52, 64, 52, 64, }, | 473 { 6,10,13,16,18,23,25,27, |
474 { 44, 56, 44, 56, 56, 72, 56, 72, 44, 56, 44, 56, 56, 72, 56, 72, }, | 474 10,11,16,18,23,25,27,29, |
475 { 52, 64, 52, 64, 64, 80, 64, 80, 52, 64, 52, 64, 64, 80, 64, 80, }, | 475 13,16,18,23,25,27,29,31, |
476 { 56, 72, 56, 72, 72, 92, 72, 92, 56, 72, 56, 72, 72, 92, 72, 92, }, | 476 16,18,23,25,27,29,31,33, |
477 { 64, 80, 64, 80, 80, 100, 80, 100, 64, 80, 64, 80, 80, 100, 80, 100, }, | 477 18,23,25,27,29,31,33,36, |
478 { 72, 92, 72, 92, 92, 116, 92, 116, 72, 92, 72, 92, 92, 116, 92, 116, }, | 478 23,25,27,29,31,33,36,38, |
479 { 80, 104, 80, 104, 104, 128, 104, 128, 80, 104, 80, 104, 104, 128, 104, 128, }, | 479 25,27,29,31,33,36,38,40, |
480 { 88, 112, 88, 112, 112, 144, 112, 144, 88, 112, 88, 112, 112, 144, 112, 144, }, | 480 27,29,31,33,36,38,40,42 |
481 { 104, 128, 104, 128, 128, 160, 128, 160, 104, 128, 104, 128, 128, 160, 128, 160, }, | 481 },{ |
482 { 112, 144, 112, 144, 144, 184, 144, 184, 112, 144, 112, 144, 144, 184, 144, 184, }, | 482 9,13,15,17,19,21,22,24, |
483 { 128, 160, 128, 160, 160, 200, 160, 200, 128, 160, 128, 160, 160, 200, 160, 200, }, | 483 13,13,17,19,21,22,24,25, |
484 { 144, 184, 144, 184, 184, 232, 184, 232, 144, 184, 144, 184, 184, 232, 184, 232, }, | 484 15,17,19,21,22,24,25,27, |
485 { 160, 208, 160, 208, 208, 256, 208, 256, 160, 208, 160, 208, 208, 256, 208, 256, }, | 485 17,19,21,22,24,25,27,28, |
486 { 176, 224, 176, 224, 224, 288, 224, 288, 176, 224, 176, 224, 224, 288, 224, 288, }, | 486 19,21,22,24,25,27,28,30, |
487 { 208, 256, 208, 256, 256, 320, 256, 320, 208, 256, 208, 256, 256, 320, 256, 320, }, | 487 21,22,24,25,27,28,30,32, |
488 { 224, 288, 224, 288, 288, 368, 288, 368, 224, 288, 224, 288, 288, 368, 288, 368, }, | 488 22,24,25,27,28,30,32,33, |
489 { 256, 320, 256, 320, 320, 400, 320, 400, 256, 320, 256, 320, 320, 400, 320, 400, }, | 489 24,25,27,28,30,32,33,35 |
490 { 288, 368, 288, 368, 368, 464, 368, 464, 288, 368, 288, 368, 368, 464, 368, 464, }, | 490 }}; |
491 { 320, 416, 320, 416, 416, 512, 416, 512, 320, 416, 320, 416, 416, 512, 416, 512, }, | 491 |
492 { 352, 448, 352, 448, 448, 576, 448, 576, 352, 448, 352, 448, 448, 576, 448, 576, }, | 492 static const int dequant4_coeff_init[6][3]={ |
493 { 416, 512, 416, 512, 512, 640, 512, 640, 416, 512, 416, 512, 512, 640, 512, 640, }, | 493 {10,13,16}, |
494 { 448, 576, 448, 576, 576, 736, 576, 736, 448, 576, 448, 576, 576, 736, 576, 736, }, | 494 {11,14,18}, |
495 { 512, 640, 512, 640, 640, 800, 640, 800, 512, 640, 512, 640, 640, 800, 640, 800, }, | 495 {13,16,20}, |
496 { 576, 736, 576, 736, 736, 928, 736, 928, 576, 736, 576, 736, 736, 928, 736, 928, }, | 496 {14,18,23}, |
497 { 640, 832, 640, 832, 832,1024, 832,1024, 640, 832, 640, 832, 832,1024, 832,1024, }, | 497 {16,20,25}, |
498 { 704, 896, 704, 896, 896,1152, 896,1152, 704, 896, 704, 896, 896,1152, 896,1152, }, | 498 {18,23,29}, |
499 { 832,1024, 832,1024, 1024,1280,1024,1280, 832,1024, 832,1024, 1024,1280,1024,1280, }, | |
500 { 896,1152, 896,1152, 1152,1472,1152,1472, 896,1152, 896,1152, 1152,1472,1152,1472, }, | |
501 {1024,1280,1024,1280, 1280,1600,1280,1600, 1024,1280,1024,1280, 1280,1600,1280,1600, }, | |
502 {1152,1472,1152,1472, 1472,1856,1472,1856, 1152,1472,1152,1472, 1472,1856,1472,1856, }, | |
503 {1280,1664,1280,1664, 1664,2048,1664,2048, 1280,1664,1280,1664, 1664,2048,1664,2048, }, | |
504 {1408,1792,1408,1792, 1792,2304,1792,2304, 1408,1792,1408,1792, 1792,2304,1792,2304, }, | |
505 {1664,2048,1664,2048, 2048,2560,2048,2560, 1664,2048,1664,2048, 2048,2560,2048,2560, }, | |
506 {1792,2304,1792,2304, 2304,2944,2304,2944, 1792,2304,1792,2304, 2304,2944,2304,2944, }, | |
507 {2048,2560,2048,2560, 2560,3200,2560,3200, 2048,2560,2048,2560, 2560,3200,2560,3200, }, | |
508 {2304,2944,2304,2944, 2944,3712,2944,3712, 2304,2944,2304,2944, 2944,3712,2944,3712, }, | |
509 {2560,3328,2560,3328, 3328,4096,3328,4096, 2560,3328,2560,3328, 3328,4096,3328,4096, }, | |
510 {2816,3584,2816,3584, 3584,4608,3584,4608, 2816,3584,2816,3584, 3584,4608,3584,4608, }, | |
511 {3328,4096,3328,4096, 4096,5120,4096,5120, 3328,4096,3328,4096, 4096,5120,4096,5120, }, | |
512 {3584,4608,3584,4608, 4608,5888,4608,5888, 3584,4608,3584,4608, 4608,5888,4608,5888, }, | |
513 //{4096,5120,4096,5120, 5120,6400,5120,6400, 4096,5120,4096,5120, 5120,6400,5120,6400, }, | |
514 //{4608,5888,4608,5888, 5888,7424,5888,7424, 4608,5888,4608,5888, 5888,7424,5888,7424, }, | |
515 }; | 499 }; |
516 | 500 |
517 static const int dequant8_coeff_init_scan[16] = { | 501 static const int dequant8_coeff_init_scan[16] = { |
518 0,3,4,3, 3,1,5,1, 4,5,2,5, 3,1,5,1 | 502 0,3,4,3, 3,1,5,1, 4,5,2,5, 3,1,5,1 |
519 }; | 503 }; |