ca6b85aa4e
Patch 1 to Patch 3 is an initial implementation of 8x8 intra prediction modes, here are with the following assumptions: a. 8x8 has 4 prediction modes DC, H, V and TM b. UV 4x4 block use the same mode as corresponding 8x8 area c. i8x8 modes are enabled for key frame only for now Patch 4: d. removed debug code from previous patches Patch 5: e. added stats code to collect entropy stats and further cleaned up Patch 6: f. changed mode stats code to collect finer stats of modes Patch 7: g. normalized i8x8 modes distribution to total at 256 (8bits). Patch 8: h. fixed a bug in decoder and removed debug printf output. Patch 9: i. more cleanups to address paul's comment Patch 10: j. messy rebase/merges to bring the commit up to date. Tests on HD clips encoded with all key frame showing consistent gain on all clips and all metrics:~0.5%(psnr) and 0.6%(ssim): http://www.corp.google.com/~yaowu/no_crawl/i8x8hd_allkey_fixedq.html To build and test, configure with: --enable-experimental --enable-i8x8 Change-Id: I9813fe07ae48cab5fdb5d904bca022514ad01e7f
190 lines
8.8 KiB
C
190 lines
8.8 KiB
C
/*
|
|
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*/
|
|
|
|
/* Generated file, included by entropy.c */
|
|
|
|
#if CONFIG_T8X8
|
|
static const unsigned int vp8_default_coef_counts_8x8[BLOCK_TYPES]
|
|
[COEF_BANDS]
|
|
[PREV_COEF_CONTEXTS]
|
|
[MAX_ENTROPY_TOKENS] =
|
|
{
|
|
|
|
{ /* block Type 0 */
|
|
{ /* Coeff Band 0 */
|
|
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
|
|
},
|
|
{ /* Coeff Band 1 */
|
|
{ 21041, 13314, 3420, 592, 117, 0, 0, 0, 0, 0, 0, 11783},
|
|
{ 48236, 6918, 586, 153, 0, 0, 0, 0, 0, 0, 0, 23137},
|
|
{ 676112, 106685, 24701, 6003, 1426, 429, 165, 0, 0, 0, 0, 28910}
|
|
},
|
|
{ /* Coeff Band 2 */
|
|
{ 660107, 75227, 8451, 1345, 259, 0, 0, 0, 0, 0, 0, 0},
|
|
{ 79164, 36835, 6865, 1185, 246, 47, 0, 0, 0, 0, 0, 2575},
|
|
{ 19469, 14330, 3070, 579, 94, 6, 0, 0, 0, 0, 0, 44}
|
|
},
|
|
{ /* Coeff Band 3 */
|
|
{ 1978004, 235343, 28485, 3242, 271, 0, 0, 0, 0, 0, 0, 0},
|
|
{ 228684, 106736, 21431, 2842, 272, 46, 0, 0, 0, 0, 0, 9266},
|
|
{ 32470, 27496, 6852, 1386, 45, 93, 0, 0, 0, 0, 0, 0}
|
|
},
|
|
{ /* Coeff Band 4 */
|
|
{ 1911212, 224613, 49653, 13748, 2541, 568, 48, 0, 0, 0, 0, 0},
|
|
{ 196670, 103472, 44473, 11490, 2432, 977, 72, 0, 0, 0, 0, 9447},
|
|
{ 37876, 40417, 19142, 6069, 1799, 727, 51, 0, 0, 0, 0, 0}
|
|
},
|
|
{ /* Coeff Band 5 */
|
|
{ 3813399, 437714, 64387, 11312, 695, 219, 0, 0, 0, 0, 0, 0},
|
|
{ 438288, 215917, 61905, 10194, 674, 107, 0, 0, 0, 0, 0, 17808},
|
|
{ 99139, 93643, 30054, 5758, 802, 171, 0, 0, 0, 0, 0, 0}
|
|
},
|
|
{ /* Coeff Band 6 */
|
|
{ 12259383, 1625505, 234927, 46306, 8417, 1456, 151, 0, 0, 0, 0, 0},
|
|
{ 1518161, 734287, 204240, 44228, 9462, 2240, 65, 0, 0, 0, 0, 107630},
|
|
{ 292470, 258894, 94925, 25864, 6662, 2055, 170, 0, 0, 0, 0, 0}
|
|
},
|
|
{ /* Coeff Band 7 */
|
|
{ 9791308, 2118949, 169439, 16735, 1122, 0, 0, 0, 0, 0, 0, 0},
|
|
{ 1500281, 752410, 123259, 13065, 1168, 47, 0, 0, 0, 0, 0, 707182},
|
|
{ 193067, 142638, 31018, 4719, 516, 138, 0, 0, 0, 0, 0, 12439}
|
|
}
|
|
},
|
|
{ /* block Type 1 */
|
|
{ /* Coeff Band 0 */
|
|
{ 16925, 10553, 852, 16, 63, 87, 47, 0, 0, 0, 0, 31232},
|
|
{ 39777, 26839, 6822, 1908, 678, 456, 227, 168, 35, 0, 0, 46825},
|
|
{ 17300, 16666, 4168, 1209, 492, 154, 118, 207, 0, 0, 0, 19608}
|
|
},
|
|
{ /* Coeff Band 1 */
|
|
{ 35882, 31722, 4625, 1270, 266, 237, 0, 0, 0, 0, 0, 0},
|
|
{ 15426, 13894, 4482, 1305, 281, 43, 0, 0, 0, 0, 0, 18627},
|
|
{ 3900, 6552, 3472, 1723, 746, 366, 115, 35, 0, 0, 0, 798}
|
|
},
|
|
{ /* Coeff Band 2 */
|
|
{ 21998, 29132, 3353, 679, 46, 0, 0, 0, 0, 0, 0, 0},
|
|
{ 9098, 15767, 3794, 792, 268, 47, 0, 0, 0, 0, 0, 22402},
|
|
{ 4007, 8472, 2844, 687, 217, 0, 0, 0, 0, 0, 0, 2739}
|
|
},
|
|
{ /* Coeff Band 3 */
|
|
{ 0, 31414, 2911, 682, 96, 0, 0, 0, 0, 0, 0, 0},
|
|
{ 0, 16515, 4425, 938, 124, 0, 0, 0, 0, 0, 0, 31369},
|
|
{ 0, 4833, 2787, 1213, 150, 0, 0, 0, 0, 0, 0, 3744}
|
|
},
|
|
{ /* Coeff Band 4 */
|
|
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
|
|
},
|
|
{ /* Coeff Band 5 */
|
|
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
|
|
},
|
|
{ /* Coeff Band 6 */
|
|
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52762},
|
|
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13326}
|
|
},
|
|
{ /* Coeff Band 7 */
|
|
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
|
|
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
|
|
}
|
|
},
|
|
{ /* block Type 2 */
|
|
{ /* Coeff Band 0 */
|
|
{ 4444, 1614, 120, 48, 0, 48, 0, 0, 0, 0, 0, 278},
|
|
{ 192436, 103730, 24494, 9845, 4122, 1193, 102, 0, 0, 0, 0, 2577},
|
|
{ 3473446, 2308716, 815510, 370374, 167797, 92152, 12073, 86, 0, 0, 0, 6801}
|
|
},
|
|
{ /* Coeff Band 1 */
|
|
{ 2150616, 1136388, 250011, 86888, 31434, 13746, 1243, 0, 0, 0, 0, 0},
|
|
{ 1179945, 799802, 266012, 106787, 40809, 16486, 1546, 0, 0, 0, 0, 2673},
|
|
{ 465128, 504130, 286989, 146259, 62380, 30192, 2866, 20, 0, 0, 0, 0}
|
|
},
|
|
{ /* Coeff Band 2 */
|
|
{ 2157762, 1177519, 282665, 108499, 43389, 23224, 2597, 34, 0, 0, 0, 0},
|
|
{ 1135685, 813705, 278079, 123255, 53935, 29492, 3152, 39, 0, 0, 0, 2978},
|
|
{ 391894, 428037, 264216, 144306, 69326, 40281, 5541, 29, 0, 0, 0, 38}
|
|
},
|
|
{ /* Coeff Band 3 */
|
|
{ 6669109, 3468471, 782161, 288484, 115500, 51083, 4943, 41, 0, 0, 0, 0},
|
|
{ 3454493, 2361636, 809524, 337663, 141343, 65036, 6361, 0, 0, 0, 0, 8730},
|
|
{ 1231825, 1359522, 824686, 420784, 185517, 98731, 10973, 72, 0, 0, 0, 20}
|
|
},
|
|
{ /* Coeff Band 4 */
|
|
{ 7606203, 3452846, 659856, 191703, 49335, 14336, 450, 0, 0, 0, 0, 0},
|
|
{ 3806506, 2379332, 691697, 224938, 61966, 18324, 766, 0, 0, 0, 0, 8193},
|
|
{ 1270110, 1283728, 628775, 243378, 72617, 24897, 1087, 0, 0, 0, 0, 0}
|
|
},
|
|
{ /* Coeff Band 5 */
|
|
{ 15314169, 7436809, 1579928, 515790, 167453, 58305, 3502, 19, 0, 0, 0, 0},
|
|
{ 7021286, 4667922, 1545706, 574463, 191793, 68748, 4048, 1, 0, 0, 0, 17222},
|
|
{ 2011989, 2145878, 1185336, 534879, 195719, 79103, 5343, 4, 0, 0, 0, 37}
|
|
},
|
|
{ /* Coeff Band 6 */
|
|
{ 63458382, 25384462, 4208045, 1091050, 299011, 95242, 5238, 33, 0, 0, 0, 0},
|
|
{ 25638401, 14694085, 3945978, 1195420, 344813, 117355, 6703, 0, 0, 0, 0, 216811},
|
|
{ 5988177, 5824044, 2754413, 1077350, 370739, 139710, 9693, 38, 0, 0, 0, 1835}
|
|
},
|
|
{ /* Coeff Band 7 */
|
|
{ 74998348, 29342158, 2955001, 452912, 69631, 9516, 37, 0, 0, 0, 0, 0},
|
|
{ 24762356, 13281085, 2409883, 436787, 68948, 10658, 36, 0, 0, 0, 0, 6614989},
|
|
{ 3882867, 3224489, 1052289, 252890, 46967, 8548, 154, 0, 0, 0, 0, 194354}
|
|
}
|
|
},
|
|
{ /* block Type 3 */
|
|
{ /* Coeff Band 0 */
|
|
{ 10583, 12059, 3155, 1041, 248, 175, 24, 2, 0, 0, 0, 5717},
|
|
{ 42461, 41782, 13553, 4966, 1352, 855, 89, 0, 0, 0, 0, 15000},
|
|
{ 4691125, 5045589, 2673566, 1089317, 378161, 160268, 18252, 813, 69, 13, 0, 49}
|
|
},
|
|
{ /* Coeff Band 1 */
|
|
{ 1535203, 1685686, 924565, 390329, 141709, 60523, 5983, 171, 0, 0, 0, 0},
|
|
{ 1594021, 1793276, 1016078, 441332, 164159, 70843, 8098, 311, 0, 0, 0, 11312},
|
|
{ 1225223, 1430184, 888492, 460713, 203286, 115149, 22061, 804, 7, 0, 0, 0}
|
|
},
|
|
{ /* Coeff Band 2 */
|
|
{ 1522386, 1590366, 799910, 303691, 96625, 37608, 3637, 180, 33, 11, 0, 0},
|
|
{ 1682184, 1793869, 913649, 353520, 113674, 46309, 4736, 221, 18, 3, 0, 963},
|
|
{ 1574580, 1740474, 954392, 417994, 151400, 67091, 8000, 536, 73, 10, 0, 63}
|
|
},
|
|
{ /* Coeff Band 3 */
|
|
{ 4963672, 5197790, 2585383, 982161, 313333, 118498, 16014, 536, 62, 0, 0, 0},
|
|
{ 5223913, 5569803, 2845858, 1107384, 364949, 147841, 18296, 658, 11, 11, 0, 1866},
|
|
{ 4042207, 4548894, 2608767, 1154993, 446290, 221295, 41054, 2438, 124, 20, 0, 0}
|
|
},
|
|
{ /* Coeff Band 4 */
|
|
{ 3857216, 4431325, 2670447, 1330169, 553301, 286825, 46763, 1917, 0, 0, 0, 0},
|
|
{ 4226215, 4963701, 3046198, 1523923, 644670, 355519, 58792, 2525, 0, 0, 0, 1298},
|
|
{ 3831873, 4580350, 3018580, 1660048, 797298, 502983, 123906, 7172, 16, 0, 0, 0}
|
|
},
|
|
{ /* Coeff Band 5 */
|
|
{ 8524543, 9285149, 4979435, 2039330, 683458, 266032, 22628, 270, 0, 0, 0, 0},
|
|
{ 9432163, 10428088, 5715661, 2385738, 838389, 326264, 29981, 361, 0, 0, 0, 884},
|
|
{ 9039066, 10368964, 6136765, 2862030, 1098269, 511668, 63105, 945, 14, 0, 0, 0}
|
|
},
|
|
{ /* Coeff Band 6 */
|
|
{ 33222872, 34748297, 17701695, 7214933, 2602336, 1191859, 187873, 12667, 390, 3, 0, 0},
|
|
{ 34765051, 37140719, 19525578, 8268934, 3085012, 1473864, 246743, 15258, 736, 3, 0, 8403},
|
|
{ 28591289, 32252393, 19037068, 9213729, 4020653, 2372354, 586420, 67428, 3920, 92, 7, 3}
|
|
},
|
|
{ /* Coeff Band 7 */
|
|
{ 68604786, 60777665, 19712887, 5656955, 1520443, 507166, 51829, 2466, 10, 0, 0, 0},
|
|
{ 55447403, 51682540, 19008774, 5928582, 1706884, 595531, 65998, 3661, 101, 0, 0, 8468343},
|
|
{ 28321970, 29149398, 13565882, 5258675, 1868588, 898041, 192023, 21497, 672, 17, 0, 1884921}
|
|
}
|
|
}
|
|
};
|
|
#endif
|