Removing CONFIG_BALANCED_COEFTREE experiment.

Change-Id: I61a8b0101eac3ee2e0621d56151b90c269fd4db4
This commit is contained in:
Dmitry Kovalev 2013-07-24 15:53:42 -07:00
Родитель 1787b00214
Коммит fcc34796d2
7 изменённых файлов: 1 добавлений и 763 удалений

1
configure поставляемый
Просмотреть файл

@ -250,7 +250,6 @@ EXPERIMENT_LIST="
multiple_arf
non420
alpha
balanced_coeftree
"
CONFIG_LIST="
external_build

Просмотреть файл

@ -8,695 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
/*Generated file, included by vp9_entropy.c*/
#if CONFIG_BALANCED_COEFTREE
static const vp9_coeff_probs_model default_coef_probs_4x4[BLOCK_TYPES] = {
{ /* block Type 0 */
{ /* Intra */
{ /* Coeff Band 0 */
{ 6, 213, 178 },
{ 26, 113, 132 },
{ 34, 17, 68 }
}, { /* Coeff Band 1 */
{ 66, 96, 178 },
{ 63, 96, 174 },
{ 67, 54, 154 },
{ 62, 28, 126 },
{ 48, 9, 84 },
{ 20, 1, 32 }
}, { /* Coeff Band 2 */
{ 64, 144, 206 },
{ 70, 99, 191 },
{ 69, 36, 152 },
{ 55, 9, 106 },
{ 35, 1, 60 },
{ 14, 1, 22 }
}, { /* Coeff Band 3 */
{ 82, 154, 222 },
{ 83, 112, 205 },
{ 81, 31, 164 },
{ 62, 7, 118 },
{ 42, 1, 74 },
{ 18, 1, 30 }
}, { /* Coeff Band 4 */
{ 52, 179, 233 },
{ 64, 132, 214 },
{ 73, 36, 170 },
{ 59, 8, 116 },
{ 38, 1, 65 },
{ 15, 1, 26 }
}, { /* Coeff Band 5 */
{ 29, 175, 238 },
{ 26, 169, 223 },
{ 41, 80, 182 },
{ 39, 32, 127 },
{ 26, 10, 69 },
{ 11, 2, 28 }
}
}, { /* Inter */
{ /* Coeff Band 0 */
{ 21, 226, 234 },
{ 52, 182, 212 },
{ 80, 112, 177 }
}, { /* Coeff Band 1 */
{ 111, 164, 243 },
{ 88, 152, 231 },
{ 90, 43, 186 },
{ 70, 12, 132 },
{ 44, 2, 76 },
{ 19, 1, 33 }
}, { /* Coeff Band 2 */
{ 96, 185, 246 },
{ 99, 127, 231 },
{ 88, 21, 177 },
{ 64, 5, 122 },
{ 38, 1, 69 },
{ 18, 1, 30 }
}, { /* Coeff Band 3 */
{ 84, 206, 249 },
{ 94, 147, 237 },
{ 95, 33, 187 },
{ 71, 8, 131 },
{ 47, 1, 83 },
{ 26, 1, 44 }
}, { /* Coeff Band 4 */
{ 38, 221, 252 },
{ 58, 177, 241 },
{ 78, 46, 188 },
{ 59, 9, 122 },
{ 34, 1, 66 },
{ 18, 1, 34 }
}, { /* Coeff Band 5 */
{ 21, 216, 253 },
{ 21, 206, 244 },
{ 42, 93, 200 },
{ 43, 41, 146 },
{ 36, 13, 93 },
{ 31, 1, 55 }
}
}
}, { /* block Type 1 */
{ /* Intra */
{ /* Coeff Band 0 */
{ 7, 213, 219 },
{ 23, 139, 182 },
{ 38, 60, 125 }
}, { /* Coeff Band 1 */
{ 69, 156, 220 },
{ 52, 178, 213 },
{ 69, 111, 190 },
{ 69, 58, 155 },
{ 58, 21, 104 },
{ 39, 7, 60 }
}, { /* Coeff Band 2 */
{ 68, 189, 228 },
{ 70, 158, 221 },
{ 83, 64, 189 },
{ 73, 18, 141 },
{ 48, 4, 88 },
{ 23, 1, 41 }
}, { /* Coeff Band 3 */
{ 99, 194, 236 },
{ 91, 138, 224 },
{ 91, 53, 189 },
{ 74, 20, 142 },
{ 48, 6, 90 },
{ 22, 1, 41 }
}, { /* Coeff Band 4 */
{ 52, 203, 244 },
{ 60, 168, 231 },
{ 75, 62, 189 },
{ 61, 18, 132 },
{ 38, 4, 72 },
{ 17, 1, 39 }
}, { /* Coeff Band 5 */
{ 33, 192, 247 },
{ 31, 185, 234 },
{ 46, 85, 185 },
{ 39, 35, 132 },
{ 28, 15, 80 },
{ 13, 5, 38 }
}
}, { /* Inter */
{ /* Coeff Band 0 */
{ 5, 247, 246 },
{ 28, 209, 228 },
{ 65, 137, 203 }
}, { /* Coeff Band 1 */
{ 69, 208, 250 },
{ 54, 207, 242 },
{ 81, 92, 204 },
{ 70, 54, 153 },
{ 58, 40, 108 },
{ 58, 35, 71 }
}, { /* Coeff Band 2 */
{ 65, 215, 250 },
{ 72, 185, 239 },
{ 92, 50, 197 },
{ 75, 14, 147 },
{ 49, 2, 99 },
{ 26, 1, 53 }
}, { /* Coeff Band 3 */
{ 70, 220, 251 },
{ 76, 186, 241 },
{ 90, 65, 198 },
{ 75, 26, 151 },
{ 58, 12, 112 },
{ 34, 6, 49 }
}, { /* Coeff Band 4 */
{ 34, 224, 253 },
{ 44, 204, 245 },
{ 69, 85, 204 },
{ 64, 31, 150 },
{ 44, 2, 78 },
{ 1, 1, 128 }
}, { /* Coeff Band 5 */
{ 25, 216, 253 },
{ 21, 215, 248 },
{ 47, 108, 214 },
{ 47, 48, 160 },
{ 26, 20, 90 },
{ 64, 171, 128 }
}
}
}
};
static const vp9_coeff_probs_model default_coef_probs_8x8[BLOCK_TYPES] = {
{ /* block Type 0 */
{ /* Intra */
{ /* Coeff Band 0 */
{ 9, 203, 199 },
{ 26, 92, 128 },
{ 28, 11, 55 }
}, { /* Coeff Band 1 */
{ 99, 54, 160 },
{ 78, 99, 155 },
{ 80, 44, 138 },
{ 71, 17, 115 },
{ 51, 5, 80 },
{ 27, 1, 40 }
}, { /* Coeff Band 2 */
{ 135, 81, 190 },
{ 113, 61, 182 },
{ 93, 16, 153 },
{ 70, 4, 115 },
{ 41, 1, 68 },
{ 16, 1, 27 }
}, { /* Coeff Band 3 */
{ 155, 103, 214 },
{ 129, 48, 199 },
{ 95, 10, 159 },
{ 63, 1, 110 },
{ 32, 1, 58 },
{ 12, 1, 21 }
}, { /* Coeff Band 4 */
{ 163, 149, 231 },
{ 137, 69, 213 },
{ 95, 11, 164 },
{ 62, 3, 108 },
{ 32, 1, 57 },
{ 13, 1, 22 }
}, { /* Coeff Band 5 */
{ 136, 189, 239 },
{ 123, 102, 223 },
{ 97, 19, 170 },
{ 66, 4, 111 },
{ 38, 1, 60 },
{ 18, 1, 26 }
}
}, { /* Inter */
{ /* Coeff Band 0 */
{ 24, 226, 244 },
{ 54, 178, 211 },
{ 80, 74, 152 }
}, { /* Coeff Band 1 */
{ 145, 153, 236 },
{ 101, 163, 223 },
{ 108, 50, 187 },
{ 90, 22, 145 },
{ 66, 8, 97 },
{ 42, 4, 50 }
}, { /* Coeff Band 2 */
{ 150, 159, 238 },
{ 128, 90, 218 },
{ 94, 9, 163 },
{ 64, 3, 110 },
{ 34, 1, 61 },
{ 13, 1, 24 }
}, { /* Coeff Band 3 */
{ 151, 162, 242 },
{ 135, 80, 222 },
{ 93, 9, 166 },
{ 61, 3, 111 },
{ 31, 1, 59 },
{ 12, 1, 22 }
}, { /* Coeff Band 4 */
{ 161, 170, 245 },
{ 140, 84, 228 },
{ 99, 8, 174 },
{ 64, 1, 116 },
{ 34, 1, 63 },
{ 14, 1, 26 }
}, { /* Coeff Band 5 */
{ 138, 197, 246 },
{ 127, 109, 233 },
{ 100, 16, 179 },
{ 66, 3, 119 },
{ 37, 1, 66 },
{ 16, 1, 30 }
}
}
}, { /* block Type 1 */
{ /* Intra */
{ /* Coeff Band 0 */
{ 6, 216, 212 },
{ 25, 134, 171 },
{ 43, 48, 118 }
}, { /* Coeff Band 1 */
{ 93, 112, 209 },
{ 66, 159, 206 },
{ 82, 78, 184 },
{ 75, 28, 148 },
{ 46, 4, 82 },
{ 18, 1, 28 }
}, { /* Coeff Band 2 */
{ 108, 148, 220 },
{ 90, 130, 216 },
{ 92, 40, 186 },
{ 73, 10, 135 },
{ 46, 1, 79 },
{ 20, 1, 35 }
}, { /* Coeff Band 3 */
{ 125, 173, 232 },
{ 109, 117, 223 },
{ 97, 31, 183 },
{ 71, 7, 127 },
{ 44, 1, 76 },
{ 21, 1, 36 }
}, { /* Coeff Band 4 */
{ 133, 195, 236 },
{ 112, 121, 224 },
{ 97, 23, 178 },
{ 69, 3, 122 },
{ 42, 1, 72 },
{ 19, 1, 34 }
}, { /* Coeff Band 5 */
{ 132, 180, 238 },
{ 119, 102, 225 },
{ 101, 18, 179 },
{ 71, 3, 124 },
{ 42, 1, 70 },
{ 17, 1, 28 }
}
}, { /* Inter */
{ /* Coeff Band 0 */
{ 5, 242, 250 },
{ 26, 198, 226 },
{ 58, 98, 168 }
}, { /* Coeff Band 1 */
{ 82, 201, 246 },
{ 50, 219, 237 },
{ 94, 107, 205 },
{ 89, 61, 167 },
{ 77, 31, 131 },
{ 57, 14, 91 }
}, { /* Coeff Band 2 */
{ 99, 202, 247 },
{ 96, 165, 234 },
{ 100, 31, 190 },
{ 72, 8, 131 },
{ 41, 1, 72 },
{ 14, 1, 24 }
}, { /* Coeff Band 3 */
{ 108, 204, 248 },
{ 107, 156, 235 },
{ 103, 27, 186 },
{ 71, 4, 124 },
{ 39, 1, 66 },
{ 14, 1, 19 }
}, { /* Coeff Band 4 */
{ 120, 211, 248 },
{ 118, 149, 234 },
{ 107, 19, 182 },
{ 72, 3, 126 },
{ 40, 1, 69 },
{ 16, 1, 24 }
}, { /* Coeff Band 5 */
{ 127, 199, 245 },
{ 122, 125, 232 },
{ 112, 20, 186 },
{ 82, 3, 136 },
{ 55, 1, 88 },
{ 10, 1, 38 }
}
}
}
};
static const vp9_coeff_probs_model default_coef_probs_16x16[BLOCK_TYPES] = {
{ /* block Type 0 */
{ /* Intra */
{ /* Coeff Band 0 */
{ 25, 9, 101 },
{ 25, 2, 67 },
{ 15, 1, 28 }
}, { /* Coeff Band 1 */
{ 67, 30, 118 },
{ 61, 56, 116 },
{ 60, 31, 105 },
{ 52, 11, 85 },
{ 34, 2, 54 },
{ 14, 1, 22 }
}, { /* Coeff Band 2 */
{ 107, 58, 149 },
{ 92, 53, 147 },
{ 78, 14, 123 },
{ 56, 3, 87 },
{ 35, 1, 56 },
{ 17, 1, 27 }
}, { /* Coeff Band 3 */
{ 142, 61, 171 },
{ 111, 30, 162 },
{ 80, 4, 128 },
{ 53, 1, 87 },
{ 31, 1, 52 },
{ 14, 1, 24 }
}, { /* Coeff Band 4 */
{ 171, 73, 200 },
{ 129, 28, 184 },
{ 86, 3, 140 },
{ 54, 1, 90 },
{ 28, 1, 49 },
{ 12, 1, 21 }
}, { /* Coeff Band 5 */
{ 193, 129, 227 },
{ 148, 28, 200 },
{ 90, 2, 144 },
{ 53, 1, 90 },
{ 28, 1, 50 },
{ 13, 1, 22 }
}
}, { /* Inter */
{ /* Coeff Band 0 */
{ 60, 7, 234 },
{ 64, 4, 184 },
{ 56, 1, 104 }
}, { /* Coeff Band 1 */
{ 150, 111, 210 },
{ 87, 185, 202 },
{ 101, 81, 177 },
{ 90, 34, 142 },
{ 67, 11, 95 },
{ 38, 2, 51 }
}, { /* Coeff Band 2 */
{ 153, 139, 218 },
{ 120, 72, 195 },
{ 90, 11, 147 },
{ 63, 3, 101 },
{ 39, 1, 61 },
{ 20, 1, 33 }
}, { /* Coeff Band 3 */
{ 171, 132, 223 },
{ 131, 56, 200 },
{ 92, 6, 147 },
{ 58, 1, 95 },
{ 32, 1, 52 },
{ 14, 1, 23 }
}, { /* Coeff Band 4 */
{ 183, 137, 227 },
{ 139, 48, 204 },
{ 91, 3, 148 },
{ 55, 1, 91 },
{ 28, 1, 47 },
{ 13, 1, 21 }
}, { /* Coeff Band 5 */
{ 198, 149, 234 },
{ 153, 32, 208 },
{ 95, 2, 148 },
{ 55, 1, 90 },
{ 30, 1, 51 },
{ 16, 1, 25 }
}
}
}, { /* block Type 1 */
{ /* Intra */
{ /* Coeff Band 0 */
{ 7, 209, 217 },
{ 31, 106, 151 },
{ 40, 21, 86 }
}, { /* Coeff Band 1 */
{ 101, 71, 184 },
{ 74, 131, 177 },
{ 88, 50, 158 },
{ 78, 16, 129 },
{ 51, 2, 82 },
{ 18, 1, 29 }
}, { /* Coeff Band 2 */
{ 116, 115, 199 },
{ 102, 88, 191 },
{ 94, 22, 160 },
{ 74, 6, 122 },
{ 47, 1, 77 },
{ 18, 1, 30 }
}, { /* Coeff Band 3 */
{ 157, 124, 210 },
{ 130, 53, 201 },
{ 102, 10, 165 },
{ 73, 1, 120 },
{ 42, 1, 69 },
{ 16, 1, 27 }
}, { /* Coeff Band 4 */
{ 174, 147, 225 },
{ 134, 67, 212 },
{ 100, 10, 168 },
{ 66, 1, 111 },
{ 36, 1, 60 },
{ 16, 1, 27 }
}, { /* Coeff Band 5 */
{ 185, 165, 232 },
{ 147, 56, 214 },
{ 105, 5, 165 },
{ 66, 1, 108 },
{ 35, 1, 59 },
{ 16, 1, 27 }
}
}, { /* Inter */
{ /* Coeff Band 0 */
{ 3, 232, 245 },
{ 18, 162, 210 },
{ 38, 64, 131 }
}, { /* Coeff Band 1 */
{ 84, 187, 239 },
{ 35, 231, 231 },
{ 82, 150, 209 },
{ 87, 97, 181 },
{ 81, 64, 151 },
{ 67, 60, 119 }
}, { /* Coeff Band 2 */
{ 107, 185, 239 },
{ 100, 149, 224 },
{ 107, 34, 185 },
{ 83, 12, 141 },
{ 49, 4, 92 },
{ 21, 1, 40 }
}, { /* Coeff Band 3 */
{ 125, 184, 243 },
{ 121, 127, 228 },
{ 113, 25, 185 },
{ 82, 6, 134 },
{ 48, 1, 82 },
{ 26, 1, 38 }
}, { /* Coeff Band 4 */
{ 143, 185, 245 },
{ 133, 115, 231 },
{ 114, 14, 184 },
{ 77, 3, 126 },
{ 43, 1, 68 },
{ 34, 1, 40 }
}, { /* Coeff Band 5 */
{ 170, 194, 241 },
{ 151, 80, 226 },
{ 118, 9, 180 },
{ 81, 1, 130 },
{ 51, 1, 78 },
{ 18, 1, 49 }
}
}
}
};
static const vp9_coeff_probs_model default_coef_probs_32x32[BLOCK_TYPES] = {
{ /* block Type 0 */
{ /* Intra */
{ /* Coeff Band 0 */
{ 29, 42, 137 },
{ 26, 3, 60 },
{ 13, 1, 23 }
}, { /* Coeff Band 1 */
{ 69, 36, 122 },
{ 63, 57, 123 },
{ 60, 33, 112 },
{ 52, 11, 90 },
{ 32, 2, 52 },
{ 10, 1, 15 }
}, { /* Coeff Band 2 */
{ 107, 55, 143 },
{ 86, 69, 143 },
{ 74, 24, 116 },
{ 52, 5, 78 },
{ 29, 1, 44 },
{ 12, 1, 18 }
}, { /* Coeff Band 3 */
{ 137, 71, 160 },
{ 107, 34, 152 },
{ 73, 6, 114 },
{ 44, 1, 69 },
{ 25, 1, 40 },
{ 12, 1, 18 }
}, { /* Coeff Band 4 */
{ 165, 70, 174 },
{ 118, 24, 159 },
{ 74, 3, 117 },
{ 45, 1, 73 },
{ 26, 1, 43 },
{ 12, 1, 19 }
}, { /* Coeff Band 5 */
{ 220, 93, 223 },
{ 153, 10, 187 },
{ 86, 2, 131 },
{ 49, 1, 79 },
{ 26, 1, 43 },
{ 12, 1, 20 }
}
}, { /* Inter */
{ /* Coeff Band 0 */
{ 30, 58, 227 },
{ 35, 10, 172 },
{ 24, 23, 112 }
}, { /* Coeff Band 1 */
{ 117, 145, 219 },
{ 51, 221, 216 },
{ 75, 169, 196 },
{ 88, 96, 165 },
{ 77, 43, 117 },
{ 53, 18, 60 }
}, { /* Coeff Band 2 */
{ 128, 176, 225 },
{ 108, 114, 202 },
{ 92, 19, 152 },
{ 65, 4, 103 },
{ 38, 1, 61 },
{ 19, 1, 30 }
}, { /* Coeff Band 3 */
{ 146, 184, 228 },
{ 122, 95, 205 },
{ 92, 11, 149 },
{ 62, 1, 98 },
{ 35, 1, 57 },
{ 17, 1, 26 }
}, { /* Coeff Band 4 */
{ 165, 192, 230 },
{ 132, 81, 206 },
{ 93, 6, 147 },
{ 58, 1, 94 },
{ 32, 1, 52 },
{ 15, 1, 24 }
}, { /* Coeff Band 5 */
{ 204, 223, 234 },
{ 156, 49, 204 },
{ 97, 3, 145 },
{ 59, 1, 92 },
{ 33, 1, 52 },
{ 15, 1, 24 }
}
}
}, { /* block Type 1 */
{ /* Intra */
{ /* Coeff Band 0 */
{ 7, 184, 200 },
{ 25, 67, 113 },
{ 30, 9, 59 }
}, { /* Coeff Band 1 */
{ 92, 42, 158 },
{ 65, 121, 159 },
{ 77, 56, 146 },
{ 70, 22, 120 },
{ 47, 4, 76 },
{ 18, 1, 26 }
}, { /* Coeff Band 2 */
{ 113, 81, 177 },
{ 96, 75, 167 },
{ 84, 24, 136 },
{ 63, 8, 100 },
{ 37, 1, 58 },
{ 13, 1, 19 }
}, { /* Coeff Band 3 */
{ 147, 85, 194 },
{ 119, 36, 178 },
{ 88, 8, 139 },
{ 59, 1, 93 },
{ 31, 1, 49 },
{ 10, 1, 18 }
}, { /* Coeff Band 4 */
{ 169, 108, 210 },
{ 131, 41, 191 },
{ 92, 5, 144 },
{ 56, 1, 88 },
{ 29, 1, 47 },
{ 14, 1, 22 }
}, { /* Coeff Band 5 */
{ 210, 106, 223 },
{ 148, 14, 192 },
{ 89, 2, 138 },
{ 52, 1, 84 },
{ 29, 1, 47 },
{ 14, 1, 23 }
}
}, { /* Inter */
{ /* Coeff Band 0 */
{ 3, 207, 245 },
{ 12, 102, 213 },
{ 18, 33, 144 }
}, { /* Coeff Band 1 */
{ 85, 205, 245 },
{ 18, 249, 242 },
{ 59, 221, 229 },
{ 91, 166, 213 },
{ 88, 117, 183 },
{ 70, 95, 149 }
}, { /* Coeff Band 2 */
{ 114, 193, 241 },
{ 104, 155, 221 },
{ 100, 33, 181 },
{ 78, 10, 132 },
{ 43, 2, 75 },
{ 15, 1, 48 }
}, { /* Coeff Band 3 */
{ 118, 198, 244 },
{ 117, 142, 224 },
{ 111, 25, 179 },
{ 83, 4, 134 },
{ 57, 1, 84 },
{ 1, 1, 1 }
}, { /* Coeff Band 4 */
{ 144, 201, 248 },
{ 136, 130, 234 },
{ 124, 12, 188 },
{ 83, 1, 130 },
{ 61, 1, 66 },
{ 64, 171, 128 }
}, { /* Coeff Band 5 */
{ 174, 227, 250 },
{ 165, 118, 242 },
{ 132, 21, 197 },
{ 84, 3, 134 },
{ 70, 1, 69 },
{ 1, 1, 1 }
}
}
}
};
#else
static const vp9_coeff_probs_model default_coef_probs_4x4[BLOCK_TYPES] = {
{ /* block Type 0 */
{ /* Intra */
@ -1381,4 +693,4 @@ static const vp9_coeff_probs_model default_coef_probs_32x32[BLOCK_TYPES] = {
}
}
};
#endif

Просмотреть файл

@ -202,13 +202,8 @@ DECLARE_ALIGNED(16, const int16_t, vp9_default_scan_32x32[1024]) = {
const vp9_tree_index vp9_coef_tree[ 22] = /* corresponding _CONTEXT_NODEs */
{
#if CONFIG_BALANCED_COEFTREE
-ZERO_TOKEN, 2, /* 0 = ZERO */
-DCT_EOB_TOKEN, 4, /* 1 = EOB */
#else
-DCT_EOB_TOKEN, 2, /* 0 = EOB */
-ZERO_TOKEN, 4, /* 1 = ZERO */
#endif
-ONE_TOKEN, 6, /* 2 = ONE */
8, 12, /* 3 = LOW_VAL */
-TWO_TOKEN, 10, /* 4 = TWO */
@ -235,13 +230,8 @@ static const vp9_prob Pcat6[] = {
};
const vp9_tree_index vp9_coefmodel_tree[6] = {
#if CONFIG_BALANCED_COEFTREE
-ZERO_TOKEN, 2,
-DCT_EOB_MODEL_TOKEN, 4,
#else
-DCT_EOB_MODEL_TOKEN, 2, /* 0 = EOB */
-ZERO_TOKEN, 4, /* 1 = ZERO */
#endif
-ONE_TOKEN, -TWO_TOKEN,
};
@ -648,13 +638,8 @@ static void adapt_coef_probs(VP9_COMMON *cm, TX_SIZE txfm_size,
vp9_coefmodel_tree,
coef_probs, branch_ct,
coef_counts[i][j][k][l], 0);
#if CONFIG_BALANCED_COEFTREE
branch_ct[1][1] = eob_branch_count[i][j][k][l] - branch_ct[1][0];
coef_probs[1] = get_binary_prob(branch_ct[1][0], branch_ct[1][1]);
#else
branch_ct[0][1] = eob_branch_count[i][j][k][l] - branch_ct[0][0];
coef_probs[0] = get_binary_prob(branch_ct[0][0], branch_ct[0][1]);
#endif
for (t = 0; t < entropy_nodes_adapt; ++t) {
count = branch_ct[t][0] + branch_ct[t][1];
count = count > count_sat ? count_sat : count;

Просмотреть файл

@ -18,14 +18,8 @@
#include "vp9/decoder/vp9_detokenize.h"
#include "vp9/decoder/vp9_onyxd_int.h"
#if CONFIG_BALANCED_COEFTREE
#define ZERO_CONTEXT_NODE 0
#define EOB_CONTEXT_NODE 1
#else
#define EOB_CONTEXT_NODE 0
#define ZERO_CONTEXT_NODE 1
#endif
#define ONE_CONTEXT_NODE 2
#define LOW_VAL_CONTEXT_NODE 3
#define TWO_CONTEXT_NODE 4
@ -118,10 +112,6 @@ static int decode_coefs(VP9_COMMON *cm, const MACROBLOCKD *xd,
const int16_t *scan, *nb;
uint8_t token_cache[1024];
const uint8_t * band_translate;
#if CONFIG_BALANCED_COEFTREE
int skip_eob_node = 0;
#endif
coef_probs = fc->coef_probs[txfm_size][type][ref];
coef_counts = counts->coef[txfm_size];
switch (txfm_size) {
@ -167,13 +157,11 @@ static int decode_coefs(VP9_COMMON *cm, const MACROBLOCKD *xd,
pt = get_coef_context(nb, token_cache, c);
band = get_coef_band(band_translate, c);
prob = coef_probs[band][pt];
#if !CONFIG_BALANCED_COEFTREE
counts->eob_branch[txfm_size][type][ref][band][pt]++;
if (!vp9_read(r, prob[EOB_CONTEXT_NODE]))
break;
SKIP_START:
#endif
if (c >= seg_eob)
break;
if (c)
@ -184,21 +172,8 @@ SKIP_START:
if (!vp9_read(r, prob[ZERO_CONTEXT_NODE])) {
INCREMENT_COUNT(ZERO_TOKEN);
++c;
#if CONFIG_BALANCED_COEFTREE
skip_eob_node = 1;
continue;
#else
goto SKIP_START;
#endif
}
#if CONFIG_BALANCED_COEFTREE
if (!skip_eob_node) {
fc->eob_branch_counts[txfm_size][type][ref][band][pt]++;
if (!vp9_read(r, prob[EOB_CONTEXT_NODE]))
break;
}
skip_eob_node = 0;
#endif
// ONE_CONTEXT_NODE_0_
if (!vp9_read(r, prob[ONE_CONTEXT_NODE])) {

Просмотреть файл

@ -302,22 +302,13 @@ static void pack_mb_tokens(vp9_writer* const bc,
assert(pp != 0);
/* skip one or two nodes */
#if !CONFIG_BALANCED_COEFTREE
if (p->skip_eob_node) {
n -= p->skip_eob_node;
i = 2 * p->skip_eob_node;
}
#endif
do {
const int bb = (v >> --n) & 1;
#if CONFIG_BALANCED_COEFTREE
if (i == 2 && p->skip_eob_node) {
i += 2;
assert(bb == 1);
continue;
}
#endif
vp9_write(bc, bb, pp[i >> 1]);
i = vp9_coef_tree[i + bb];
} while (n);
@ -757,19 +748,11 @@ static void build_tree_distribution(VP9_COMP *cpi, TX_SIZE txfm_size) {
coef_counts[i][j][k][l], 0);
vpx_memcpy(coef_probs[i][j][k][l], full_probs,
sizeof(vp9_prob) * UNCONSTRAINED_NODES);
#if CONFIG_BALANCED_COEFTREE
coef_branch_ct[i][j][k][l][1][1] = eob_branch_ct[i][j][k][l] -
coef_branch_ct[i][j][k][l][1][0];
coef_probs[i][j][k][l][1] =
get_binary_prob(coef_branch_ct[i][j][k][l][1][0],
coef_branch_ct[i][j][k][l][1][1]);
#else
coef_branch_ct[i][j][k][l][0][1] = eob_branch_ct[i][j][k][l] -
coef_branch_ct[i][j][k][l][0][0];
coef_probs[i][j][k][l][0] =
get_binary_prob(coef_branch_ct[i][j][k][l][0][0],
coef_branch_ct[i][j][k][l][0][1]);
#endif
#ifdef ENTROPY_STATS
if (!cpi->dummy_packing) {
int t;

Просмотреть файл

@ -122,17 +122,10 @@ static void fill_token_costs(vp9_coeff_count (*c)[BLOCK_TYPES][2],
vp9_model_to_full_probs(p[t][i][j][k][l], probs);
vp9_cost_tokens((int *)c[t][i][j][0][k][l], probs,
vp9_coef_tree);
#if CONFIG_BALANCED_COEFTREE
// Replace the eob node prob with a very small value so that the
// cost approximately equals the cost without the eob node
probs[1] = 1;
vp9_cost_tokens((int *)c[t][i][j][1][k][l], probs, vp9_coef_tree);
#else
vp9_cost_tokens_skip((int *)c[t][i][j][1][k][l], probs,
vp9_coef_tree);
assert(c[t][i][j][0][k][l][DCT_EOB_TOKEN] ==
c[t][i][j][1][k][l][DCT_EOB_TOKEN]);
#endif
}
}

Просмотреть файл

@ -196,20 +196,11 @@ static void tokenize_b(int plane, int block, BLOCK_SIZE_TYPE bsize,
t->context_tree = coef_probs[type][ref][band][pt];
t->skip_eob_node = (c > 0) && (token_cache[scan[c - 1]] == 0);
#if CONFIG_BALANCED_COEFTREE
assert(token <= ZERO_TOKEN ||
vp9_coef_encodings[t->token].len - t->skip_eob_node > 0);
#else
assert(vp9_coef_encodings[t->token].len - t->skip_eob_node > 0);
#endif
if (!dry_run) {
++counts[type][ref][band][pt][token];
#if CONFIG_BALANCED_COEFTREE
if (!t->skip_eob_node && token > ZERO_TOKEN)
#else
if (!t->skip_eob_node)
#endif
++cpi->common.counts.eob_branch[tx_size][type][ref][band][pt];
}
token_cache[scan[c]] = vp9_pt_energy_class[token];