From 1e9598975bacb209bac4a4e71d502012edc001b6 Mon Sep 17 00:00:00 2001 From: Hui Su <huisu@google.com> Date: Mon, 22 Jan 2018 12:14:43 -0800 Subject: [PATCH] lv-map: remove probability model Change-Id: Iadaa189717787dbb82e485ff92125ee1ef591496 --- av1/common/entropymode.c | 476 ++++++++++++++++++++------------------- av1/common/entropymode.h | 17 +- av1/common/txb_common.c | 93 -------- av1/common/txb_common.h | 2 - av1/decoder/decodetxb.c | 9 +- av1/encoder/encodetxb.c | 10 +- av1/encoder/encodetxb.h | 10 - av1/encoder/tokenize.h | 1 - 8 files changed, 256 insertions(+), 362 deletions(-) diff --git a/av1/common/entropymode.c b/av1/common/entropymode.c index abee8f8269..6e0d4f61e7 100644 --- a/av1/common/entropymode.c +++ b/av1/common/entropymode.c @@ -21,18 +21,104 @@ #if CONFIG_LV_MAP #include "av1/common/txb_common.h" -const aom_prob default_txb_skip[TX_SIZES][TXB_SKIP_CONTEXTS] = { - { 255, 86, 115, 175, 148, 203, 249, 35, 126, 219, 14, 79, 185 }, - { 255, 76, 109, 162, 150, 201, 244, 26, 118, 218, 12, 72, 187 }, - { 253, 78, 124, 165, 170, 211, 245, 34, 135, 223, 15, 98, 212 }, - { 243, 46, 143, 173, 205, 226, 250, 52, 182, 240, 15, 100, 220 }, +static const aom_cdf_prob default_txb_skip_cdf[TX_SIZES][TXB_SKIP_CONTEXTS] + [CDF_SIZE(2)] = { + { + { AOM_CDF2(128 * 255) }, + { AOM_CDF2(128 * 86) }, + { AOM_CDF2(128 * 115) }, + { AOM_CDF2(128 * 175) }, + { AOM_CDF2(128 * 148) }, + { AOM_CDF2(128 * 203) }, + { AOM_CDF2(128 * 249) }, + { AOM_CDF2(128 * 35) }, + { AOM_CDF2(128 * 126) }, + { AOM_CDF2(128 * 219) }, + { AOM_CDF2(128 * 14) }, + { AOM_CDF2(128 * 79) }, + { AOM_CDF2(128 * 185) }, + }, + + { + { AOM_CDF2(128 * 255) }, + { AOM_CDF2(128 * 76) }, + { AOM_CDF2(128 * 109) }, + { AOM_CDF2(128 * 162) }, + { AOM_CDF2(128 * 150) }, + { AOM_CDF2(128 * 201) }, + { AOM_CDF2(128 * 244) }, + { AOM_CDF2(128 * 26) }, + { AOM_CDF2(128 * 118) }, + { AOM_CDF2(128 * 218) }, + { AOM_CDF2(128 * 12) }, + { AOM_CDF2(128 * 72) }, + { AOM_CDF2(128 * 187) }, + }, + + { + { AOM_CDF2(128 * 253) }, + { AOM_CDF2(128 * 78) }, + { AOM_CDF2(128 * 124) }, + { AOM_CDF2(128 * 165) }, + { AOM_CDF2(128 * 170) }, + { AOM_CDF2(128 * 211) }, + { AOM_CDF2(128 * 245) }, + { AOM_CDF2(128 * 34) }, + { AOM_CDF2(128 * 135) }, + { AOM_CDF2(128 * 223) }, + { AOM_CDF2(128 * 15) }, + { AOM_CDF2(128 * 98) }, + { AOM_CDF2(128 * 212) }, + }, + + { + { AOM_CDF2(128 * 243) }, + { AOM_CDF2(128 * 46) }, + { AOM_CDF2(128 * 143) }, + { AOM_CDF2(128 * 173) }, + { AOM_CDF2(128 * 205) }, + { AOM_CDF2(128 * 226) }, + { AOM_CDF2(128 * 250) }, + { AOM_CDF2(128 * 52) }, + { AOM_CDF2(128 * 182) }, + { AOM_CDF2(128 * 240) }, + { AOM_CDF2(128 * 15) }, + { AOM_CDF2(128 * 100) }, + { AOM_CDF2(128 * 220) }, + }, + #if CONFIG_TX64X64 - { 243, 46, 143, 173, 205, 226, 250, 52, 182, 240, 15, 100, 220 }, + { + { AOM_CDF2(128 * 243) }, + { AOM_CDF2(128 * 46) }, + { AOM_CDF2(128 * 143) }, + { AOM_CDF2(128 * 173) }, + { AOM_CDF2(128 * 205) }, + { AOM_CDF2(128 * 226) }, + { AOM_CDF2(128 * 250) }, + { AOM_CDF2(128 * 52) }, + { AOM_CDF2(128 * 182) }, + { AOM_CDF2(128 * 240) }, + { AOM_CDF2(128 * 15) }, + { AOM_CDF2(128 * 100) }, + { AOM_CDF2(128 * 220) }, + }, #endif -}; -const aom_prob default_dc_sign[PLANE_TYPES][DC_SIGN_CONTEXTS] = { - { 125, 102, 147 }, { 119, 101, 135 }, -}; + }; + +static const aom_cdf_prob default_dc_sign_cdf[PLANE_TYPES][DC_SIGN_CONTEXTS] + [CDF_SIZE(2)] = { + { + { AOM_CDF2(128 * 125) }, + { AOM_CDF2(128 * 102) }, + { AOM_CDF2(128 * 147) }, + }, + { + { AOM_CDF2(128 * 119) }, + { AOM_CDF2(128 * 101) }, + { AOM_CDF2(128 * 135) }, + }, + }; static const aom_cdf_prob default_eob_multi16[PLANE_TYPES][2][CDF_SIZE(5)] = { { { AOM_CDF5(11070, 14028, 19190, 25681) }, @@ -561,232 +647,156 @@ static const aom_cdf_prob #endif }; -#if 0 -const aom_prob default_coeff_base - [TX_SIZES][PLANE_TYPES][NUM_BASE_LEVELS][COEFF_BASE_CONTEXTS] = { - { { { 109, 233, 200, 134, 86, 51, 240, 211, 142, 91, 60, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 233, 208, 116, - 74, 58, 227, 200, 121, 58, 28, 241, 203, 122, 68, 41, - 238, 204, 116, 56, 128, 128, 207, 247, 248, 248 }, - { 108, 226, 198, 145, 100, 58, 224, 205, 153, 107, 69, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 205, 196, 130, - 93, 66, 199, 183, 126, 76, 35, 216, 186, 129, 81, 53, - 202, 185, 124, 79, 128, 128, 205, 234, 229, 216 } }, - { { 162, 242, 224, 173, 108, 56, 248, 237, 200, 130, 75, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 249, 244, 214, - 125, 64, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 229, 249, 253, 254 }, - { 153, 231, 212, 164, 112, 66, 233, 221, 179, 125, 88, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 241, 235, 200, - 110, 192, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 213, 240, 244, 248 } } }, - { { { 87, 227, 194, 132, 87, 47, 242, 213, 156, 106, 61, 240, - 201, 138, 90, 52, 237, 200, 136, 89, 51, 248, 228, 173, - 118, 73, 232, 202, 139, 78, 35, 245, 220, 166, 108, 58, - 247, 220, 150, 95, 58, 128, 200, 251, 253, 252 }, - { 82, 196, 182, 137, 97, 53, 229, 208, 164, 119, 70, 219, - 194, 144, 101, 58, 220, 194, 143, 99, 57, 233, 218, 183, - 140, 88, 214, 190, 138, 91, 43, 223, 200, 157, 112, 64, - 217, 199, 149, 105, 67, 128, 197, 237, 239, 233 } }, - { { 138, 234, 211, 157, 108, 66, 247, 231, 185, 129, 77, 246, - 227, 173, 108, 56, 237, 213, 162, 118, 76, 253, 246, 216, - 159, 87, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 228, 250, 253, 255 }, - { 128, 192, 200, 161, 121, 75, 236, 222, 184, 137, 85, 221, - 211, 164, 103, 63, 221, 206, 167, 132, 84, 244, 232, 205, - 159, 104, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 204, 230, 245, 247 } } }, - { { { 75, 226, 186, 123, 79, 38, 241, 206, 146, 97, 53, 244, - 209, 146, 96, 51, 242, 208, 145, 92, 43, 252, 236, 190, - 135, 82, 228, 193, 125, 70, 30, 243, 219, 169, 110, 49, - 251, 234, 180, 114, 61, 128, 191, 252, 255, 255 }, - { 69, 201, 172, 126, 86, 41, 222, 195, 151, 107, 57, 213, - 196, 149, 105, 56, 218, 195, 147, 100, 46, 235, 222, 189, - 148, 92, 206, 183, 126, 79, 35, 209, 194, 158, 110, 53, - 231, 209, 167, 120, 68, 128, 194, 233, 240, 240 } }, - { { 114, 226, 196, 145, 107, 66, 246, 225, 176, 128, 80, 245, - 217, 161, 105, 61, 247, 225, 179, 130, 83, 253, 241, 202, - 150, 96, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 221, 252, 255, 255 }, - { 102, 185, 164, 140, 112, 69, 229, 218, 183, 142, 86, 197, - 194, 154, 114, 73, 229, 213, 180, 144, 90, 243, 229, 203, - 164, 111, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 184, 222, 224, 246 } } }, - { { { 69, 212, 170, 112, 74, 32, 238, 199, 137, 90, 43, 241, - 208, 145, 97, 51, 244, 213, 156, 106, 50, 252, 233, 183, - 132, 74, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 209, 251, 254, 255 }, - { 65, 187, 151, 114, 78, 33, 217, 186, 140, 99, 46, 203, - 185, 147, 105, 53, 215, 200, 162, 116, 54, 234, 215, 181, - 140, 79, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 207, 222, 245, 244 } }, - { { 79, 216, 181, 139, 106, 60, 236, 208, 166, 127, 91, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 253, 240, 205, - 158, 111, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 205, 250, 255, 254 }, - { 66, 175, 129, 103, 89, 57, 204, 189, 164, 133, 106, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 238, 228, 202, - 166, 124, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 154, 207, 128, 226 } } }, -#if CONFIG_TX64X64 - { { { 72, 212, 172, 113, 74, 33, 238, 200, 139, 91, 44, 240, - 208, 147, 98, 51, 244, 214, 157, 107, 51, 253, 233, 184, - 132, 74, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 201, 250, 254, 255 }, - { 68, 187, 154, 116, 80, 34, 217, 186, 142, 101, 47, 205, - 187, 148, 106, 56, 218, 201, 163, 118, 55, 236, 215, 181, - 141, 79, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 192, 219, 246, 244 } }, - { { 80, 217, 179, 140, 106, 60, 237, 208, 165, 129, 94, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 253, 240, 205, - 158, 111, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 205, 250, 255, 254 }, - { 66, 175, 129, 103, 89, 57, 204, 189, 164, 133, 106, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 238, 228, 202, - 166, 124, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 154, 207, 128, 226 } } }, -#endif - }; +static const aom_cdf_prob + default_eob_extra_cdf[TX_SIZES][PLANE_TYPES][EOB_COEF_CONTEXTS][CDF_SIZE( + 2)] = { + { + { + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 138) }, + { AOM_CDF2(128 * 138) }, { AOM_CDF2(128 * 148) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + }, + { + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 156) }, + { AOM_CDF2(128 * 156) }, { AOM_CDF2(128 * 152) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + }, + }, -const aom_prob default_nz_map[TX_SIZES][PLANE_TYPES][SIG_COEF_CONTEXTS] = { - { { 59, 183, 130, 75, 46, 27, 203, 154, 83, 52, 34, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 202, 165, 81, - 67, 39, 184, 132, 70, 27, 12, 213, 158, 76, 32, 21, - 222, 171, 73, 28, 128, 128, 1, 1, 1, 1 }, - { 97, 210, 172, 111, 60, 28, 223, 188, 130, 74, 32, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 214, 191, 139, - 56, 64, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 1, 1, 1, 1 } }, - { { 49, 193, 128, 72, 45, 24, 207, 149, 88, 54, 31, 206, - 141, 79, 49, 27, 191, 136, 78, 47, 26, 223, 179, 108, - 65, 37, 206, 137, 81, 39, 17, 228, 169, 106, 56, 29, - 232, 178, 95, 47, 28, 128, 1, 1, 1, 1 }, - { 85, 209, 158, 90, 56, 32, 223, 182, 115, 67, 37, 228, - 181, 112, 58, 26, 218, 162, 97, 62, 40, 237, 208, 147, - 88, 47, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 1, 1, 1, 1 } }, - { { 42, 189, 120, 65, 40, 19, 212, 143, 80, 49, 26, 226, - 150, 82, 48, 25, 213, 146, 82, 46, 22, 237, 191, 117, - 68, 39, 204, 126, 69, 35, 15, 227, 168, 105, 58, 25, - 236, 195, 117, 59, 30, 128, 1, 1, 1, 1 }, - { 69, 207, 145, 81, 54, 33, 225, 166, 99, 62, 38, 237, - 173, 94, 54, 34, 228, 169, 103, 67, 41, 243, 201, 124, - 77, 48, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 1, 1, 1, 1 } }, - { { 38, 174, 105, 57, 37, 16, 213, 134, 72, 44, 21, 235, - 144, 79, 48, 25, 227, 148, 83, 52, 24, 247, 195, 107, - 65, 35, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 1, 1, 1, 1 }, - { 44, 206, 151, 90, 60, 30, 214, 148, 92, 62, 40, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 248, 197, 125, - 80, 52, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 1, 1, 1, 1 } }, -#if CONFIG_TX64X64 - { { 39, 175, 107, 58, 38, 16, 214, 135, 73, 44, 21, 235, - 145, 80, 48, 26, 227, 149, 84, 52, 25, 247, 195, 108, - 65, 35, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 1, 1, 1, 1 }, - { 44, 206, 151, 90, 60, 30, 214, 148, 92, 62, 40, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 248, 197, 125, - 80, 52, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 1, 1, 1, 1 } }, -#endif -}; + { + { + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 134) }, + { AOM_CDF2(128 * 148) }, { AOM_CDF2(128 * 143) }, + { AOM_CDF2(128 * 144) }, { AOM_CDF2(128 * 140) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + }, + { + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 165) }, + { AOM_CDF2(128 * 164) }, { AOM_CDF2(128 * 160) }, + { AOM_CDF2(128 * 161) }, { AOM_CDF2(128 * 157) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + }, + }, -#endif + { + { + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 142) }, + { AOM_CDF2(128 * 145) }, { AOM_CDF2(128 * 146) }, + { AOM_CDF2(128 * 153) }, { AOM_CDF2(128 * 144) }, + { AOM_CDF2(128 * 139) }, { AOM_CDF2(128 * 136) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + }, + { + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 175) }, + { AOM_CDF2(128 * 168) }, { AOM_CDF2(128 * 162) }, + { AOM_CDF2(128 * 162) }, { AOM_CDF2(128 * 156) }, + { AOM_CDF2(128 * 157) }, { AOM_CDF2(128 * 163) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + }, + }, -static const aom_prob - default_eob_extra[TX_SIZES][PLANE_TYPES][EOB_COEF_CONTEXTS] = { - { { 128, 128, 128, 138, 138, 148, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 }, - { 128, 128, 128, 156, 156, 152, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 } }, - { { 128, 128, 128, 134, 148, 143, 144, 140, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 }, - { 128, 128, 128, 165, 164, 160, 161, 157, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 } }, - { { 128, 128, 128, 142, 145, 146, 153, 144, 139, 136, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 }, - { 128, 128, 128, 175, 168, 162, 162, 156, 157, 163, 128, - 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 } }, - { { 128, 128, 128, 180, 161, 149, 151, 158, 153, 142, 141, - 141, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 }, - { 128, 128, 128, 204, 172, 156, 139, 170, 170, 154, 166, - 157, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 } }, + { + { + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 180) }, + { AOM_CDF2(128 * 161) }, { AOM_CDF2(128 * 149) }, + { AOM_CDF2(128 * 151) }, { AOM_CDF2(128 * 158) }, + { AOM_CDF2(128 * 153) }, { AOM_CDF2(128 * 142) }, + { AOM_CDF2(128 * 141) }, { AOM_CDF2(128 * 141) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + }, + { + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 204) }, + { AOM_CDF2(128 * 172) }, { AOM_CDF2(128 * 156) }, + { AOM_CDF2(128 * 139) }, { AOM_CDF2(128 * 170) }, + { AOM_CDF2(128 * 170) }, { AOM_CDF2(128 * 154) }, + { AOM_CDF2(128 * 166) }, { AOM_CDF2(128 * 157) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + }, + }, #if CONFIG_TX64X64 - { { 128, 128, 128, 177, 160, 150, 147, 157, 151, 142, 139, - 133, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 }, - { 128, 128, 128, 200, 173, 159, 135, 158, 174, 160, 172, - 163, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 } } + { + { + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 177) }, + { AOM_CDF2(128 * 160) }, { AOM_CDF2(128 * 150) }, + { AOM_CDF2(128 * 147) }, { AOM_CDF2(128 * 157) }, + { AOM_CDF2(128 * 151) }, { AOM_CDF2(128 * 142) }, + { AOM_CDF2(128 * 139) }, { AOM_CDF2(128 * 133) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + }, + { + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 200) }, + { AOM_CDF2(128 * 173) }, { AOM_CDF2(128 * 159) }, + { AOM_CDF2(128 * 135) }, { AOM_CDF2(128 * 158) }, + { AOM_CDF2(128 * 174) }, { AOM_CDF2(128 * 160) }, + { AOM_CDF2(128 * 172) }, { AOM_CDF2(128 * 163) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, + }, + }, #endif }; -const aom_prob default_coeff_lps[TX_SIZES][PLANE_TYPES][BR_CDF_SIZE - - 1][LEVEL_CONTEXTS] = { - { { { 88, 128, 170, 198, 212, 221, 233, 74, 90, 129, 162, - 184, 196, 214, 63, 80, 114, 150, 174, 181, 206 }, - { 106, 132, 168, 194, 209, 219, 233, 95, 101, 129, 160, - 180, 194, 210, 76, 92, 118, 146, 167, 181, 198 }, - { 120, 137, 168, 191, 206, 216, 231, 119, 113, 132, 157, - 177, 188, 207, 97, 104, 123, 145, 164, 176, 196 } }, - { { 69, 107, 160, 197, 215, 223, 234, 48, 69, 117, 157, - 184, 191, 204, 36, 56, 101, 139, 164, 181, 160 }, - { 91, 118, 162, 196, 211, 219, 230, 63, 84, 122, 158, - 174, 190, 216, 60, 77, 105, 133, 152, 195, 187 }, - { 111, 129, 165, 196, 210, 220, 234, 76, 104, 128, 153, - 175, 192, 204, 85, 85, 108, 135, 157, 144, 179 } } }, - { { { 100, 144, 184, 206, 218, 225, 237, 109, 111, 142, 170, - 187, 200, 218, 61, 81, 115, 148, 169, 184, 205 }, - { 118, 148, 183, 204, 216, 224, 237, 135, 122, 144, 168, - 185, 196, 216, 82, 93, 118, 146, 167, 180, 204 }, - { 134, 154, 183, 202, 214, 222, 235, 154, 134, 148, 167, - 183, 195, 215, 99, 107, 124, 147, 164, 179, 201 } }, - { { 93, 124, 162, 189, 207, 219, 235, 70, 81, 115, 152, - 177, 197, 215, 41, 60, 99, 141, 165, 178, 207 }, - { 106, 130, 161, 187, 204, 215, 234, 88, 95, 120, 152, - 172, 193, 212, 52, 73, 102, 137, 166, 183, 195 }, - { 117, 136, 162, 186, 202, 214, 232, 90, 110, 130, 153, - 165, 185, 212, 71, 84, 114, 141, 154, 178, 200 } } }, - { { { 107, 152, 190, 211, 222, 229, 242, 138, 140, 164, 186, - 201, 210, 229, 68, 89, 122, 153, 175, 189, 212 }, - { 128, 157, 190, 210, 221, 229, 242, 171, 161, 170, 186, - 200, 209, 228, 90, 105, 129, 154, 173, 187, 211 }, - { 147, 163, 191, 209, 220, 227, 241, 188, 178, 177, 188, - 199, 208, 227, 108, 118, 136, 156, 173, 186, 210 } }, - { { 120, 153, 186, 207, 215, 223, 239, 138, 131, 142, 156, - 175, 197, 213, 49, 63, 95, 123, 154, 172, 191 }, - { 136, 160, 185, 205, 216, 223, 237, 167, 156, 153, 161, - 177, 193, 213, 83, 81, 97, 128, 152, 172, 189 }, - { 147, 165, 184, 201, 212, 218, 236, 178, 177, 171, 162, - 182, 186, 215, 101, 85, 111, 134, 153, 168, 194 } } }, - { { { 122, 135, 175, 198, 209, 216, 240, 146, 155, 174, 191, - 203, 210, 231, 83, 98, 126, 155, 176, 189, 216 }, - { 153, 141, 173, 195, 209, 215, 241, 166, 176, 184, 195, - 204, 213, 231, 110, 116, 135, 157, 176, 188, 216 }, - { 180, 149, 172, 195, 209, 214, 241, 181, 191, 195, 201, - 208, 214, 231, 126, 131, 143, 160, 176, 189, 216 } }, - { { 168, 138, 178, 200, 210, 221, 245, 140, 179, 213, 222, - 234, 241, 246, 94, 116, 133, 133, 130, 159, 159 }, - { 193, 154, 172, 188, 199, 229, 244, 166, 189, 209, 224, - 235, 234, 242, 128, 137, 130, 133, 156, 134, 124 }, - { 212, 182, 173, 187, 212, 220, 242, 178, 183, 204, 226, - 230, 229, 241, 149, 155, 144, 170, 117, 145, 205 } } }, -#if CONFIG_TX64X64 - { { { 122, 135, 175, 198, 209, 216, 240, 146, 155, 174, 191, - 203, 210, 231, 83, 98, 126, 155, 176, 189, 216 }, - { 153, 141, 173, 195, 209, 215, 241, 166, 176, 184, 195, - 204, 213, 231, 110, 116, 135, 157, 176, 188, 216 }, - { 180, 149, 172, 195, 209, 214, 241, 181, 191, 195, 201, - 208, 214, 231, 126, 131, 143, 160, 176, 189, 216 } }, - { { 168, 138, 178, 200, 210, 221, 245, 140, 179, 213, 222, - 234, 241, 246, 94, 116, 133, 133, 130, 159, 159 }, - { 193, 154, 172, 188, 199, 229, 244, 166, 189, 209, 224, - 235, 234, 242, 128, 137, 130, 133, 156, 134, 124 }, - { 212, 182, 173, 187, 212, 220, 242, 178, 183, 204, 226, - 230, 229, 241, 149, 155, 144, 170, 117, 145, 205 } } } -#endif -}; - static const aom_cdf_prob default_coeff_lps_multi[TX_SIZES][PLANE_TYPES][LEVEL_CONTEXTS][CDF_SIZE( BR_CDF_SIZE)] = { @@ -2945,9 +2955,9 @@ static void init_mode_probs(FRAME_CONTEXT *fc) { av1_copy(fc->palette_uv_mode_cdf, default_palette_uv_mode_cdf); av1_copy(fc->comp_ref_cdf, default_comp_ref_cdf); #if CONFIG_LV_MAP - av1_copy(fc->txb_skip, default_txb_skip); - av1_copy(fc->eob_extra, default_eob_extra); - av1_copy(fc->dc_sign, default_dc_sign); + av1_copy(fc->txb_skip_cdf, default_txb_skip_cdf); + av1_copy(fc->eob_extra_cdf, default_eob_extra_cdf); + av1_copy(fc->dc_sign_cdf, default_dc_sign_cdf); av1_copy(fc->coeff_br_cdf, default_coeff_lps_multi); av1_copy(fc->coeff_base_cdf, default_coeff_base_multi); av1_copy(fc->coeff_base_eob_cdf, default_coeff_base_eob_multi); @@ -2958,8 +2968,6 @@ static void init_mode_probs(FRAME_CONTEXT *fc) { av1_copy(fc->eob_flag_cdf256, default_eob_multi256); av1_copy(fc->eob_flag_cdf512, default_eob_multi512); av1_copy(fc->eob_flag_cdf1024, default_eob_multi1024); - - av1_init_txb_probs(fc); #endif av1_copy(fc->comp_bwdref_cdf, default_comp_bwdref_cdf); av1_copy(fc->single_ref_cdf, default_single_ref_cdf); diff --git a/av1/common/entropymode.h b/av1/common/entropymode.h index 0f18ba9010..cfb57dd690 100644 --- a/av1/common/entropymode.h +++ b/av1/common/entropymode.h @@ -79,12 +79,6 @@ typedef struct frame_contexts { coeff_cdf_model coef_head_cdfs[TX_SIZES][PLANE_TYPES]; #if CONFIG_LV_MAP - aom_prob txb_skip[TX_SIZES][TXB_SKIP_CONTEXTS]; - aom_prob eob_extra[TX_SIZES][PLANE_TYPES][EOB_COEF_CONTEXTS]; - aom_prob dc_sign[PLANE_TYPES][DC_SIGN_CONTEXTS]; - - aom_prob coeff_lps[TX_SIZES][PLANE_TYPES][BR_CDF_SIZE - 1][LEVEL_CONTEXTS]; - aom_cdf_prob txb_skip_cdf[TX_SIZES][TXB_SKIP_CONTEXTS][CDF_SIZE(2)]; aom_cdf_prob eob_extra_cdf[TX_SIZES][PLANE_TYPES][EOB_COEF_CONTEXTS] [CDF_SIZE(2)]; @@ -140,7 +134,6 @@ typedef struct frame_contexts { aom_cdf_prob uni_comp_ref_cdf[UNI_COMP_REF_CONTEXTS][UNIDIR_COMP_REFS - 1] [CDF_SIZE(2)]; #endif // CONFIG_EXT_COMP_REFS - aom_prob comp_ref_prob[REF_CONTEXTS][FWD_REFS - 1]; aom_cdf_prob comp_ref_cdf[REF_CONTEXTS][FWD_REFS - 1][CDF_SIZE(2)]; aom_cdf_prob comp_bwdref_cdf[COMP_BWDREF_CONTEXTS][BWD_REFS - 1][CDF_SIZE(2)]; aom_cdf_prob txfm_partition_cdf[TXFM_PARTITION_CONTEXTS][CDF_SIZE(2)]; @@ -244,11 +237,14 @@ typedef struct FRAME_COUNTS { [SWITCHABLE_FILTERS]; #if CONFIG_LV_MAP +#if CONFIG_ENTROPY_STATS unsigned int txb_skip[TX_SIZES][TXB_SKIP_CONTEXTS][2]; - unsigned int eob_flag[TX_SIZES][PLANE_TYPES][EOB_COEF_CONTEXTS][2]; unsigned int eob_extra[TX_SIZES][PLANE_TYPES][EOB_COEF_CONTEXTS][2]; unsigned int dc_sign[PLANE_TYPES][DC_SIGN_CONTEXTS][2]; - + unsigned int coeff_lps[TX_SIZES][PLANE_TYPES][BR_CDF_SIZE - 1][LEVEL_CONTEXTS] + [2]; +#endif // CONFIG_ENTROPY_STATS + unsigned int eob_flag[TX_SIZES][PLANE_TYPES][EOB_COEF_CONTEXTS][2]; unsigned int eob_multi16[PLANE_TYPES][2][5]; unsigned int eob_multi32[PLANE_TYPES][2][6]; unsigned int eob_multi64[PLANE_TYPES][2][7]; @@ -256,9 +252,6 @@ typedef struct FRAME_COUNTS { unsigned int eob_multi256[PLANE_TYPES][2][9]; unsigned int eob_multi512[PLANE_TYPES][2][10]; unsigned int eob_multi1024[PLANE_TYPES][2][11]; - - unsigned int coeff_lps[TX_SIZES][PLANE_TYPES][BR_CDF_SIZE - 1][LEVEL_CONTEXTS] - [2]; unsigned int coeff_lps_multi[TX_SIZES][PLANE_TYPES][LEVEL_CONTEXTS] [BR_CDF_SIZE]; unsigned int coeff_base_multi[TX_SIZES][PLANE_TYPES][SIG_COEF_CONTEXTS] diff --git a/av1/common/txb_common.c b/av1/common/txb_common.c index c9ca96989b..db989a29e9 100644 --- a/av1/common/txb_common.c +++ b/av1/common/txb_common.c @@ -221,99 +221,6 @@ const int8_t av1_nz_map_ctx_offset[TX_SIZES_ALL][5][5] = { #endif // CONFIG_TX64X64 }; -void av1_init_txb_probs(FRAME_CONTEXT *fc) { - TX_SIZE tx_size; - int plane, ctx; - - // Update probability models for transform block skip flag - for (tx_size = 0; tx_size < TX_SIZES; ++tx_size) { - for (ctx = 0; ctx < TXB_SKIP_CONTEXTS; ++ctx) { - fc->txb_skip_cdf[tx_size][ctx][0] = - AOM_ICDF(128 * (aom_cdf_prob)fc->txb_skip[tx_size][ctx]); - fc->txb_skip_cdf[tx_size][ctx][1] = AOM_ICDF(32768); - fc->txb_skip_cdf[tx_size][ctx][2] = 0; - } - } - - for (plane = 0; plane < PLANE_TYPES; ++plane) { - for (ctx = 0; ctx < DC_SIGN_CONTEXTS; ++ctx) { - fc->dc_sign_cdf[plane][ctx][0] = - AOM_ICDF(128 * (aom_cdf_prob)fc->dc_sign[plane][ctx]); - fc->dc_sign_cdf[plane][ctx][1] = AOM_ICDF(32768); - fc->dc_sign_cdf[plane][ctx][2] = 0; - } - } - - for (tx_size = 0; tx_size < TX_SIZES; ++tx_size) { - for (plane = 0; plane < PLANE_TYPES; ++plane) { -#if 0 - for (ctx = 0; ctx < SIG_COEF_CONTEXTS_EOB; ++ctx) { - int p = fc->coeff_base[tx_size][plane][0][SIG_COEF_CONTEXTS - - SIG_COEF_CONTEXTS_EOB + ctx] * - 128; - fc->coeff_base_eob_cdf[tx_size][plane][ctx][0] = AOM_ICDF(p); - p += ((32768 - p) * - fc->coeff_base[tx_size][plane][1][SIG_COEF_CONTEXTS - - SIG_COEF_CONTEXTS_EOB + ctx]) >> - 8; - fc->coeff_base_eob_cdf[tx_size][plane][ctx][1] = AOM_ICDF(p); - fc->coeff_base_eob_cdf[tx_size][plane][ctx][2] = AOM_ICDF(32768); - fc->coeff_base_eob_cdf[tx_size][plane][ctx][3] = 0; - } - for (ctx = 0; ctx < COEFF_BASE_CONTEXTS; ++ctx) { - int p = fc->nz_map[tx_size][plane][ctx] * 128; - fc->coeff_base_cdf[tx_size][plane][ctx][0] = AOM_ICDF(p); - p += ((32768 - p) * fc->coeff_base[tx_size][plane][0][ctx]) >> 8; - fc->coeff_base_cdf[tx_size][plane][ctx][1] = AOM_ICDF(p); - p += ((32768 - p) * fc->coeff_base[tx_size][plane][1][ctx]) >> 8; - fc->coeff_base_cdf[tx_size][plane][ctx][2] = AOM_ICDF(p); - fc->coeff_base_cdf[tx_size][plane][ctx][3] = AOM_ICDF(32768); - fc->coeff_base_cdf[tx_size][plane][ctx][4] = 0; - } -#else - (void)plane; -#endif - } - } - - for (tx_size = 0; tx_size < TX_SIZES; ++tx_size) { - for (plane = 0; plane < PLANE_TYPES; ++plane) { - for (ctx = 0; ctx < EOB_COEF_CONTEXTS; ++ctx) { - fc->eob_extra_cdf[tx_size][plane][ctx][0] = - AOM_ICDF(128 * (aom_cdf_prob)fc->eob_extra[tx_size][plane][ctx]); - fc->eob_extra_cdf[tx_size][plane][ctx][1] = AOM_ICDF(32768); - fc->eob_extra_cdf[tx_size][plane][ctx][2] = 0; - } - } - } - - for (tx_size = 0; tx_size < TX_SIZES; ++tx_size) { - for (plane = 0; plane < PLANE_TYPES; ++plane) { - for (ctx = 0; ctx < LEVEL_CONTEXTS; ++ctx) { -#if 0 - int p = 32768 - fc->coeff_lps[tx_size][plane][0][ctx] * 128; - int sum = p; - fc->coeff_br_cdf[tx_size][plane][ctx][0] = AOM_ICDF(sum); - p = 32768 - fc->coeff_lps[tx_size][plane][1][ctx] * 128; - sum += ((32768 - sum) * p) >> 15; - fc->coeff_br_cdf[tx_size][plane][ctx][1] = AOM_ICDF(sum); - p = 32768 - fc->coeff_lps[tx_size][plane][2][ctx] * 128; - sum += ((32768 - sum) * p) >> 15; - fc->coeff_br_cdf[tx_size][plane][ctx][2] = AOM_ICDF(sum); - fc->coeff_br_cdf[tx_size][plane][ctx][3] = AOM_ICDF(32768); - fc->coeff_br_cdf[tx_size][plane][ctx][4] = 0; - // printf("br_cdf: %d %d %2d : %3d %3d %3d\n", tx_size, plane, ctx, - // fc->coeff_br_cdf[tx_size][plane][ctx][0] >> 7, - // fc->coeff_br_cdf[tx_size][plane][ctx][1] >> 7, - // fc->coeff_br_cdf[tx_size][plane][ctx][2] >> 7); -#else - (void)ctx; // coeff_br_cdf is initialized in init_mode_probs -#endif - } - } - } -} - void av1_init_lv_map(AV1_COMMON *cm) { LV_MAP_CTX_TABLE *coeff_ctx_table = &cm->coeff_ctx_table; for (int row = 0; row < 2; ++row) { diff --git a/av1/common/txb_common.h b/av1/common/txb_common.h index 61c827c48b..0bd9998d4f 100644 --- a/av1/common/txb_common.h +++ b/av1/common/txb_common.h @@ -633,8 +633,6 @@ static INLINE void get_txb_ctx(const BLOCK_SIZE plane_bsize, #undef MAX_TX_SIZE_UNIT } -void av1_init_txb_probs(FRAME_CONTEXT *fc); - void av1_init_lv_map(AV1_COMMON *cm); void av1_get_base_level_counts(const uint8_t *const levels, diff --git a/av1/decoder/decodetxb.c b/av1/decoder/decodetxb.c index fe82b5a425..09e7e66cb8 100644 --- a/av1/decoder/decodetxb.c +++ b/av1/decoder/decodetxb.c @@ -110,8 +110,6 @@ uint8_t av1_read_coeffs_txb(const AV1_COMMON *const cm, MACROBLOCKD *const xd, counts, r, ec_ctx->txb_skip_cdf[txs_ctx][txb_ctx->txb_skip_ctx], 2, ACCT_STR); // printf("txb_skip: %d %2d\n", txs_ctx, txb_ctx->txb_skip_ctx); - if (xd->counts) - ++xd->counts->txb_skip[txs_ctx][txb_ctx->txb_skip_ctx][all_zero]; *eob = 0; if (all_zero) { *max_scan_line = 0; @@ -225,7 +223,6 @@ uint8_t av1_read_coeffs_txb(const AV1_COMMON *const cm, MACROBLOCKD *const xd, counts, r, ec_ctx->eob_extra_cdf[txs_ctx][plane_type][eob_pt], 2, ACCT_STR); // printf("eob_extra_cdf: %d %d %2d\n", txs_ctx, plane_type, eob_pt); - if (counts) ++counts->eob_extra[txs_ctx][plane_type][eob_pt][bit]; if (bit) { eob_extra += (1 << (k_eob_offset_bits[eob_pt] - 1)); } @@ -309,7 +306,6 @@ uint8_t av1_read_coeffs_txb(const AV1_COMMON *const cm, MACROBLOCKD *const xd, const int dc_sign_ctx = txb_ctx->dc_sign_ctx; *sign = av1_read_record_bin( counts, r, ec_ctx->dc_sign_cdf[plane_type][dc_sign_ctx], 2, ACCT_STR); - if (counts) ++counts->dc_sign[plane_type][dc_sign_ctx][*sign]; } else { *sign = av1_read_record_bit(counts, r, ACCT_STR); } @@ -337,11 +333,8 @@ uint8_t av1_read_coeffs_txb(const AV1_COMMON *const cm, MACROBLOCKD *const xd, BR_CDF_SIZE, ACCT_STR); *level += k; if (counts) { - for (int lps = 0; lps < BR_CDF_SIZE - 1; lps++) { - ++counts->coeff_lps[AOMMIN(txs_ctx, TX_32X32)][plane_type][lps][ctx] - [lps == k]; + for (int lps = 0; lps < BR_CDF_SIZE - 1; lps++) if (lps == k) break; - } ++counts->coeff_lps_multi[AOMMIN(txs_ctx, TX_32X32)][plane_type][ctx] [k]; } diff --git a/av1/encoder/encodetxb.c b/av1/encoder/encodetxb.c index 49802cd048..ef9fc0f52d 100644 --- a/av1/encoder/encodetxb.c +++ b/av1/encoder/encodetxb.c @@ -228,7 +228,9 @@ void av1_update_eob_context(int eob, int seg_eob, TX_SIZE tx_size, if (k_eob_offset_bits[eob_pt] > 0) { int eob_shift = k_eob_offset_bits[eob_pt] - 1; int bit = (eob_extra & (1 << eob_shift)) ? 1 : 0; +#if CONFIG_ENTROPY_STATS counts->eob_extra[txs_ctx][plane][eob_pt][bit]++; +#endif // CONFIG_ENTROPY_STATS if (allow_update_cdf) update_cdf(ec_ctx->eob_extra_cdf[txs_ctx][plane][eob_pt], bit, 2); } @@ -2206,8 +2208,9 @@ void av1_update_and_record_txb_context(int plane, int block, int blk_row, DECLARE_ALIGNED(16, int8_t, coeff_contexts[MAX_TX_SQUARE]); memcpy(tcoeff, qcoeff, sizeof(*tcoeff) * seg_eob); - +#if CONFIG_ENTROPY_STATS ++td->counts->txb_skip[txsize_ctx][txb_ctx.txb_skip_ctx][eob == 0]; +#endif // CONFIG_ENTROPY_STATS if (allow_update_cdf) update_bin(ec_ctx->txb_skip_cdf[txsize_ctx][txb_ctx.txb_skip_ctx], eob == 0, 2); @@ -2267,8 +2270,9 @@ void av1_update_and_record_txb_context(int plane, int block, int blk_row, const int sign = (tcoeff[0] < 0) ? 1 : 0; if (tcoeff[0] != 0) { int dc_sign_ctx = txb_ctx.dc_sign_ctx; - +#if CONFIG_ENTROPY_STATS ++td->counts->dc_sign[plane_type][dc_sign_ctx][sign]; +#endif // CONFIG_ENTROPY_STATS if (allow_update_cdf) update_bin(ec_ctx->dc_sign_cdf[plane_type][dc_sign_ctx], sign, 2); x->mbmi_ext->dc_sign_ctx[plane][block] = dc_sign_ctx; @@ -2304,6 +2308,7 @@ void av1_update_and_record_txb_context(int plane, int block, int blk_row, k, BR_CDF_SIZE); } for (int lps = 0; lps < BR_CDF_SIZE - 1; lps++) { +#if CONFIG_ENTROPY_STATS #if 0 ++td->counts->coeff_lps[AOMMIN(txsize_ctx, TX_16X16)][plane_type][lps] [ctx][lps == k]; @@ -2311,6 +2316,7 @@ void av1_update_and_record_txb_context(int plane, int block, int blk_row, ++td->counts->coeff_lps[AOMMIN(txsize_ctx, TX_32X32)][plane_type][lps] [ctx][lps == k]; #endif +#endif // CONFIG_ENTROPY_STATS if (lps == k) break; } ++td->counts->coeff_lps_multi[AOMMIN(txsize_ctx, TX_32X32)][plane_type] diff --git a/av1/encoder/encodetxb.h b/av1/encoder/encodetxb.h index d86c49c194..6ee9bd60ee 100644 --- a/av1/encoder/encodetxb.h +++ b/av1/encoder/encodetxb.h @@ -65,16 +65,6 @@ typedef struct TxbCache { int br_ctx_arr[MAX_TX_SQUARE]; } TxbCache; -typedef struct TxbProbs { - const aom_prob *dc_sign_prob; - const aom_prob *nz_map; - aom_prob (*coeff_base)[COEFF_BASE_CONTEXTS]; - const aom_prob *coeff_lps; - const aom_prob *eob_flag; - const aom_prob *txb_skip; - const aom_prob *coeff_br; -} TxbProbs; - void av1_alloc_txb_buf(AV1_COMP *cpi); void av1_free_txb_buf(AV1_COMP *cpi); int av1_cost_coeffs_txb(const AV1_COMMON *const cm, const MACROBLOCK *x, diff --git a/av1/encoder/tokenize.h b/av1/encoder/tokenize.h index cc650d9dec..3660f9972a 100644 --- a/av1/encoder/tokenize.h +++ b/av1/encoder/tokenize.h @@ -36,7 +36,6 @@ typedef struct { // TODO(yaowu: use packed enum type if appropriate) int8_t eob_val; int8_t first_val; - const aom_prob *context_tree; EXTRABIT extra; uint8_t token; } TOKENEXTRA; -- GitLab