changed the way that default probs for 8x8 is set.

The commit changed how baseline 8x8 coefficient probabilities are
initialized, to be consistent with the initialization of baseline
4x4 coefficient probabilities.

The commit does not have any effect on compression.

Change-Id: Ifb3902b5dc0b0c2e6dc3aa5d4a6589d528e58355
This commit is contained in:
Yaowu Xu 2012-05-16 12:07:46 -07:00
parent 6c8fb82c14
commit e9818bb697
6 changed files with 138 additions and 245 deletions

View File

@ -346,3 +346,137 @@ static const vp8_prob default_coef_probs [BLOCK_TYPES]
}
}
};
static const vp8_prob
vp8_default_coef_probs_8x8[BLOCK_TYPES_8X8]
[COEF_BANDS]
[PREV_COEF_CONTEXTS]
[ENTROPY_NODES] =
{
{ /* block Type 0 */
{ /* Coeff Band 0 */
{ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128},
{ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128},
{ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128}
},
{ /* Coeff Band 1 */
{ 60, 140, 195, 255, 212, 214, 128, 128, 128, 128, 128},
{ 75, 221, 231, 255, 203, 255, 128, 128, 128, 128, 128},
{ 9, 212, 196, 251, 197, 207, 255, 185, 128, 128, 128}
},
{ /* Coeff Band 2 */
{ 1, 227, 226, 255, 215, 215, 128, 128, 128, 128, 128},
{ 5, 163, 209, 255, 212, 212, 255, 255, 128, 128, 128},
{ 1, 133, 203, 255, 210, 220, 255, 255, 128, 128, 128}
},
{ /* Coeff Band 3 */
{ 1, 226, 225, 255, 228, 236, 128, 128, 128, 128, 128},
{ 6, 163, 208, 255, 224, 234, 255, 255, 128, 128, 128},
{ 1, 122, 196, 253, 212, 248, 255, 255, 128, 128, 128}
},
{ /* Coeff Band 4 */
{ 1, 222, 197, 254, 193, 216, 255, 236, 128, 128, 128},
{ 7, 140, 163, 251, 195, 211, 255, 238, 128, 128, 128},
{ 1, 91, 152, 249, 181, 197, 255, 239, 128, 128, 128}
},
{ /* Coeff Band 5 */
{ 1, 226, 218, 255, 216, 241, 255, 255, 128, 128, 128},
{ 6, 154, 191, 255, 218, 240, 255, 255, 128, 128, 128},
{ 1, 111, 184, 255, 210, 225, 255, 255, 128, 128, 128}
},
{ /* Coeff Band 6 */
{ 1, 221, 217, 255, 208, 217, 255, 232, 128, 128, 128},
{ 11, 155, 189, 254, 203, 211, 255, 249, 128, 128, 128},
{ 1, 110, 171, 252, 191, 204, 255, 236, 128, 128, 128}
},
{ /* Coeff Band 7 */
{ 1, 207, 235, 255, 232, 240, 128, 128, 128, 128, 128},
{ 58, 161, 216, 255, 229, 235, 255, 255, 128, 128, 128},
{ 8, 133, 204, 255, 219, 231, 255, 255, 128, 128, 128}
}
},
{ /* block Type 1 */
{ /* Coeff Band 0 */
{ 134, 152, 233, 224, 234, 52, 255, 166, 128, 128, 128},
{ 97, 132, 185, 234, 186, 189, 197, 171, 255, 212, 128},
{ 84, 110, 185, 237, 182, 182, 145, 145, 255, 255, 128}
},
{ /* Coeff Band 1 */
{ 1, 124, 213, 247, 192, 212, 255, 255, 128, 128, 128},
{ 88, 111, 178, 254, 189, 211, 255, 255, 128, 128, 128},
{ 12, 59, 129, 236, 150, 179, 239, 195, 255, 255, 128}
},
{ /* Coeff Band 2 */
{ 1, 102, 225, 255, 210, 240, 128, 128, 128, 128, 128},
{ 110, 78, 195, 254, 200, 191, 255, 255, 128, 128, 128},
{ 37, 63, 177, 255, 194, 195, 128, 128, 128, 128, 128}
},
{ /* Coeff Band 3 */
{ 1, 1, 229, 255, 202, 224, 128, 128, 128, 128, 128},
{ 150, 1, 192, 255, 206, 226, 128, 128, 128, 128, 128},
{ 75, 1, 138, 255, 172, 228, 128, 128, 128, 128, 128}
},
{ /* Coeff Band 4 */
{ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128},
{ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128},
{ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128}
},
{ /* Coeff Band 5 */
{ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128},
{ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128},
{ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128}
},
{ /* Coeff Band 6 */
{ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128},
{ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128},
{ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128}
},
{ /* Coeff Band 7 */
{ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128},
{ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128},
{ 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128}
}
},
{ /* block Type 2 */
{ /* Coeff Band 0 */
{ 11, 181, 226, 199, 183, 255, 255, 255, 128, 128, 128},
{ 2, 147, 185, 248, 163, 180, 255, 236, 128, 128, 128},
{ 1, 123, 157, 238, 154, 176, 255, 226, 255, 255, 128}
},
{ /* Coeff Band 1 */
{ 1, 150, 191, 246, 174, 188, 255, 235, 128, 128, 128},
{ 1, 125, 166, 245, 165, 185, 255, 234, 128, 128, 128},
{ 1, 79, 125, 240, 148, 179, 255, 234, 255, 255, 128}
},
{ /* Coeff Band 2 */
{ 1, 146, 184, 242, 167, 183, 255, 230, 255, 255, 128},
{ 1, 119, 160, 239, 156, 178, 255, 231, 255, 255, 128},
{ 1, 75, 115, 234, 142, 173, 255, 225, 255, 255, 128}
},
{ /* Coeff Band 3 */
{ 1, 150, 188, 244, 169, 183, 255, 233, 255, 255, 128},
{ 1, 123, 162, 243, 161, 180, 255, 233, 128, 128, 128},
{ 1, 76, 120, 238, 148, 178, 255, 230, 255, 255, 128}
},
{ /* Coeff Band 4 */
{ 1, 163, 202, 252, 188, 204, 255, 248, 128, 128, 128},
{ 1, 136, 180, 251, 181, 201, 255, 246, 128, 128, 128},
{ 1, 92, 146, 249, 170, 197, 255, 245, 128, 128, 128}
},
{ /* Coeff Band 5 */
{ 1, 156, 195, 249, 179, 193, 255, 241, 255, 255, 128},
{ 1, 128, 169, 248, 171, 192, 255, 242, 255, 255, 128},
{ 1, 84, 132, 245, 158, 187, 255, 240, 255, 255, 128}
},
{ /* Coeff Band 6 */
{ 1, 36, 71, 251, 192, 201, 255, 243, 255, 255, 128},
{ 1, 49, 185, 250, 184, 199, 255, 242, 128, 128, 128},
{ 1, 95, 147, 247, 168, 190, 255, 239, 255, 255, 128}
},
{ /* Coeff Band 7 */
{ 1, 19, 98, 255, 218, 222, 255, 255, 128, 128, 128},
{ 36, 50, 210, 255, 212, 221, 255, 255, 128, 128, 128},
{ 6, 117, 180, 254, 199, 216, 255, 251, 128, 128, 128}
}
}
};

View File

@ -1,217 +0,0 @@
/*
* 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 */
static const unsigned int vp8_default_coef_counts_8x8[BLOCK_TYPES_8X8]
[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},
#if CONFIG_EXPANDED_COEF_CONTEXT
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
#endif
{ 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},
#if CONFIG_EXPANDED_COEF_CONTEXT
{ 676112, 106685, 24701, 6003, 1426, 429, 165, 0, 0, 0, 0, 28910},
#endif
{ 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},
#if CONFIG_EXPANDED_COEF_CONTEXT
{ 19469, 14330, 3070, 579, 94, 6, 0, 0, 0, 0, 0, 44},
#endif
{ 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},
#if CONFIG_EXPANDED_COEF_CONTEXT
{ 32470, 27496, 6852, 1386, 45, 93, 0, 0, 0, 0, 0, 0},
#endif
{ 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},
#if CONFIG_EXPANDED_COEF_CONTEXT
{ 37876, 40417, 19142, 6069, 1799, 727, 51, 0, 0, 0, 0, 0},
#endif
{ 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},
#if CONFIG_EXPANDED_COEF_CONTEXT
{ 99139, 93643, 30054, 5758, 802, 171, 0, 0, 0, 0, 0, 0},
#endif
{ 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},
#if CONFIG_EXPANDED_COEF_CONTEXT
{ 292470, 258894, 94925, 25864, 6662, 2055, 170, 0, 0, 0, 0, 0},
#endif
{ 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},
#if CONFIG_EXPANDED_COEF_CONTEXT
{ 193067, 142638, 31018, 4719, 516, 138, 0, 0, 0, 0, 0, 12439},
#endif
{ 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},
#if CONFIG_EXPANDED_COEF_CONTEXT
{ 17300, 16666, 4168, 1209, 492, 154, 118, 207, 0, 0, 0, 19608},
#endif
{ 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},
#if CONFIG_EXPANDED_COEF_CONTEXT
{ 3900, 6552, 3472, 1723, 746, 366, 115, 35, 0, 0, 0, 798},
#endif
{ 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},
#if CONFIG_EXPANDED_COEF_CONTEXT
{ 4007, 8472, 2844, 687, 217, 0, 0, 0, 0, 0, 0, 2739},
#endif
{ 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},
#if CONFIG_EXPANDED_COEF_CONTEXT
{ 0, 4833, 2787, 1213, 150, 0, 0, 0, 0, 0, 0, 3744},
#endif
{ 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},
#if CONFIG_EXPANDED_COEF_CONTEXT
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
#endif
{ 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},
#if CONFIG_EXPANDED_COEF_CONTEXT
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
#endif
{ 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},
#if CONFIG_EXPANDED_COEF_CONTEXT
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13326},
#endif
{ 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},
#if CONFIG_EXPANDED_COEF_CONTEXT
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
#endif
{ 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},
#if CONFIG_EXPANDED_COEF_CONTEXT
{ 3473446, 2308716, 815510, 370374, 167797, 92152, 12073, 86, 0, 0, 0, 6801},
#endif
{ 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},
#if CONFIG_EXPANDED_COEF_CONTEXT
{ 465128, 504130, 286989, 146259, 62380, 30192, 2866, 20, 0, 0, 0, 0},
#endif
{ 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},
#if CONFIG_EXPANDED_COEF_CONTEXT
{ 391894, 428037, 264216, 144306, 69326, 40281, 5541, 29, 0, 0, 0, 38},
#endif
{ 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},
#if CONFIG_EXPANDED_COEF_CONTEXT
{ 1231825, 1359522, 824686, 420784, 185517, 98731, 10973, 72, 0, 0, 0, 20},
#endif
{ 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},
#if CONFIG_EXPANDED_COEF_CONTEXT
{ 1270110, 1283728, 628775, 243378, 72617, 24897, 1087, 0, 0, 0, 0, 0},
#endif
{ 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},
#if CONFIG_EXPANDED_COEF_CONTEXT
{ 2011989, 2145878, 1185336, 534879, 195719, 79103, 5343, 4, 0, 0, 0, 37},
#endif
{ 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},
#if CONFIG_EXPANDED_COEF_CONTEXT
{ 5988177, 5824044, 2754413, 1077350, 370739, 139710, 9693, 38, 0, 0, 0, 1835},
#endif
{ 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},
#if CONFIG_EXPANDED_COEF_CONTEXT
{ 3882867, 3224489, 1052289, 252890, 46967, 8548, 154, 0, 0, 0, 0, 194354},
#endif
{ 3882867, 3224489, 1052289, 252890, 46967, 8548, 154, 0, 0, 0, 0, 194354},
}
},
};

View File

@ -175,36 +175,15 @@ const vp8_prob updprobs[4] = {128, 136, 120, 112};
#endif
#include "default_coef_probs.h"
#include "defaultcoefcounts.h"
void vp8_default_coef_probs(VP8_COMMON *pc)
{
int h;
vpx_memcpy(pc->fc.coef_probs, default_coef_probs,
sizeof(default_coef_probs));
h = 0;
do
{
int i = 0;
do
{
int k = 0;
do
{
unsigned int branch_ct [ENTROPY_NODES] [2];
vp8_tree_probs_from_distribution(
MAX_ENTROPY_TOKENS, vp8_coef_encodings, vp8_coef_tree,
pc->fc.coef_probs_8x8 [h][i][k], branch_ct, vp8_default_coef_counts_8x8 [h][i][k],
256, 1);
}
while (++k < PREV_COEF_CONTEXTS);
}
while (++i < COEF_BANDS);
}
while (++h < BLOCK_TYPES_8X8);
vpx_memcpy(pc->fc.coef_probs_8x8, vp8_default_coef_probs_8x8,
sizeof(vp8_default_coef_probs_8x8));
}

View File

@ -56,8 +56,8 @@ typedef struct
INT16 *qcoeff_start_ptr;
BOOL_DECODER *current_bc;
vp8_prob const *coef_probs[4];
vp8_prob const *coef_probs_8x8[4];
vp8_prob const *coef_probs[BLOCK_TYPES];
vp8_prob const *coef_probs_8x8[BLOCK_TYPES_8X8];
UINT8 eob[25];

View File

@ -23,8 +23,6 @@
#include "vpx_mem/vpx_mem.h"
#include "bitstream.h"
#include "vp8/common/defaultcoefcounts.h"
#include "vp8/common/seg_common.h"
#include "vp8/common/pred_common.h"
#include "vp8/common/entropy.h"

View File

@ -32,7 +32,6 @@ VP8_COMMON_SRCS-yes += common/alloccommon.h
VP8_COMMON_SRCS-yes += common/blockd.h
VP8_COMMON_SRCS-yes += common/common.h
VP8_COMMON_SRCS-yes += common/common_types.h
VP8_COMMON_SRCS-yes += common/defaultcoefcounts.h
VP8_COMMON_SRCS-yes += common/entropy.h
VP8_COMMON_SRCS-yes += common/entropymode.h
VP8_COMMON_SRCS-yes += common/entropymv.h