ref: dea6f5217ef405cfd1f11f48edf43c4e2ca95e3d
parent: dcc0c894c4594d66a58ec5f05a6b44e43f504cb5
author: Alex Converse <[email protected]>
date: Fri Jan 15 08:55:29 EST 2016
Deduplicate sign cost for ONE/TWO/THREE/FOUR tokens Change-Id: I9c383d604dfd240e38b198ac5bf86ddd3456f442
--- a/vp10/encoder/tokenize.c
+++ b/vp10/encoder/tokenize.c
@@ -75,10 +75,7 @@
14, 14, 16, 16, 18, 18, 20, 20, 22, 22, 24, 24, 26, 26, 0, 0};
static const int16_t zero_cost[] = {0};
-static const int16_t one_cost[] = {255, 257};
-static const int16_t two_cost[] = {255, 257};
-static const int16_t three_cost[] = {255, 257};
-static const int16_t four_cost[] = {255, 257};
+static const int16_t sign_cost[] = {255, 257};
static const int16_t cat1_cost[] = {429, 431, 616, 618};
static const int16_t cat2_cost[] = {624, 626, 727, 729, 848, 850, 951, 953};
static const int16_t cat3_cost[] = {
@@ -386,11 +383,11 @@
#endif
const vp10_extra_bit vp10_extra_bits[ENTROPY_TOKENS] = {
- {0, 0, 0, 0, zero_cost}, // ZERO_TOKEN
- {0, 0, 0, 1, one_cost}, // ONE_TOKEN
- {0, 0, 0, 2, two_cost}, // TWO_TOKEN
- {0, 0, 0, 3, three_cost}, // THREE_TOKEN
- {0, 0, 0, 4, four_cost}, // FOUR_TOKEN
+ {0, 0, 0, 0, zero_cost}, // ZERO_TOKEN
+ {0, 0, 0, 1, sign_cost}, // ONE_TOKEN
+ {0, 0, 0, 2, sign_cost}, // TWO_TOKEN
+ {0, 0, 0, 3, sign_cost}, // THREE_TOKEN
+ {0, 0, 0, 4, sign_cost}, // FOUR_TOKEN
{cat1, vp10_cat1_prob, 1, CAT1_MIN_VAL, cat1_cost}, // CATEGORY1_TOKEN
{cat2, vp10_cat2_prob, 2, CAT2_MIN_VAL, cat2_cost}, // CATEGORY2_TOKEN
{cat3, vp10_cat3_prob, 3, CAT3_MIN_VAL, cat3_cost}, // CATEGORY3_TOKEN
@@ -397,16 +394,16 @@
{cat4, vp10_cat4_prob, 4, CAT4_MIN_VAL, cat4_cost}, // CATEGORY4_TOKEN
{cat5, vp10_cat5_prob, 5, CAT5_MIN_VAL, cat5_cost}, // CATEGORY5_TOKEN
{cat6, vp10_cat6_prob, 14, CAT6_MIN_VAL, 0}, // CATEGORY6_TOKEN
- {0, 0, 0, 0, zero_cost} // EOB_TOKEN
+ {0, 0, 0, 0, zero_cost} // EOB_TOKEN
};
#if CONFIG_VP9_HIGHBITDEPTH
const vp10_extra_bit vp10_extra_bits_high10[ENTROPY_TOKENS] = {
- {0, 0, 0, 0, zero_cost}, // ZERO
- {0, 0, 0, 1, one_cost}, // ONE
- {0, 0, 0, 2, two_cost}, // TWO
- {0, 0, 0, 3, three_cost}, // THREE
- {0, 0, 0, 4, four_cost}, // FOUR
+ {0, 0, 0, 0, zero_cost}, // ZERO
+ {0, 0, 0, 1, sign_cost}, // ONE
+ {0, 0, 0, 2, sign_cost}, // TWO
+ {0, 0, 0, 3, sign_cost}, // THREE
+ {0, 0, 0, 4, sign_cost}, // FOUR
{cat1_high10, vp10_cat1_prob_high10, 1, CAT1_MIN_VAL, cat1_cost}, // CAT1
{cat2_high10, vp10_cat2_prob_high10, 2, CAT2_MIN_VAL, cat2_cost}, // CAT2
{cat3_high10, vp10_cat3_prob_high10, 3, CAT3_MIN_VAL, cat3_cost}, // CAT3
@@ -413,14 +410,14 @@
{cat4_high10, vp10_cat4_prob_high10, 4, CAT4_MIN_VAL, cat4_cost}, // CAT4
{cat5_high10, vp10_cat5_prob_high10, 5, CAT5_MIN_VAL, cat5_cost}, // CAT5
{cat6_high10, vp10_cat6_prob_high10, 16, CAT6_MIN_VAL, 0}, // CAT6
- {0, 0, 0, 0, zero_cost} // EOB
+ {0, 0, 0, 0, zero_cost} // EOB
};
const vp10_extra_bit vp10_extra_bits_high12[ENTROPY_TOKENS] = {
- {0, 0, 0, 0, zero_cost}, // ZERO
- {0, 0, 0, 1, one_cost}, // ONE
- {0, 0, 0, 2, two_cost}, // TWO
- {0, 0, 0, 3, three_cost}, // THREE
- {0, 0, 0, 4, four_cost}, // FOUR
+ {0, 0, 0, 0, zero_cost}, // ZERO
+ {0, 0, 0, 1, sign_cost}, // ONE
+ {0, 0, 0, 2, sign_cost}, // TWO
+ {0, 0, 0, 3, sign_cost}, // THREE
+ {0, 0, 0, 4, sign_cost}, // FOUR
{cat1_high12, vp10_cat1_prob_high12, 1, CAT1_MIN_VAL, cat1_cost}, // CAT1
{cat2_high12, vp10_cat2_prob_high12, 2, CAT2_MIN_VAL, cat2_cost}, // CAT2
{cat3_high12, vp10_cat3_prob_high12, 3, CAT3_MIN_VAL, cat3_cost}, // CAT3
@@ -427,7 +424,7 @@
{cat4_high12, vp10_cat4_prob_high12, 4, CAT4_MIN_VAL, cat4_cost}, // CAT4
{cat5_high12, vp10_cat5_prob_high12, 5, CAT5_MIN_VAL, cat5_cost}, // CAT5
{cat6_high12, vp10_cat6_prob_high12, 18, CAT6_MIN_VAL, 0}, // CAT6
- {0, 0, 0, 0, zero_cost} // EOB
+ {0, 0, 0, 0, zero_cost} // EOB
};
#endif
--- a/vp9/encoder/vp9_tokenize.c
+++ b/vp9/encoder/vp9_tokenize.c
@@ -67,10 +67,7 @@
};
static const int16_t zero_cost[] = {0};
-static const int16_t one_cost[] = {255, 257};
-static const int16_t two_cost[] = {255, 257};
-static const int16_t three_cost[] = {255, 257};
-static const int16_t four_cost[] = {255, 257};
+static const int16_t sign_cost[] = {255, 257};
static const int16_t cat1_cost[] = {429, 431, 616, 618};
static const int16_t cat2_cost[] = {624, 626, 727, 729, 848, 850, 951, 953};
static const int16_t cat3_cost[] = {
@@ -360,10 +357,10 @@
const vp9_extra_bit vp9_extra_bits[ENTROPY_TOKENS] = {
{0, 0, 0, zero_cost}, // ZERO_TOKEN
- {0, 0, 1, one_cost}, // ONE_TOKEN
- {0, 0, 2, two_cost}, // TWO_TOKEN
- {0, 0, 3, three_cost}, // THREE_TOKEN
- {0, 0, 4, four_cost}, // FOUR_TOKEN
+ {0, 0, 1, sign_cost}, // ONE_TOKEN
+ {0, 0, 2, sign_cost}, // TWO_TOKEN
+ {0, 0, 3, sign_cost}, // THREE_TOKEN
+ {0, 0, 4, sign_cost}, // FOUR_TOKEN
{vp9_cat1_prob, 1, CAT1_MIN_VAL, cat1_cost}, // CATEGORY1_TOKEN
{vp9_cat2_prob, 2, CAT2_MIN_VAL, cat2_cost}, // CATEGORY2_TOKEN
{vp9_cat3_prob, 3, CAT3_MIN_VAL, cat3_cost}, // CATEGORY3_TOKEN
@@ -376,10 +373,10 @@
#if CONFIG_VP9_HIGHBITDEPTH
const vp9_extra_bit vp9_extra_bits_high10[ENTROPY_TOKENS] = {
{0, 0, 0, zero_cost}, // ZERO
- {0, 0, 1, one_cost}, // ONE
- {0, 0, 2, two_cost}, // TWO
- {0, 0, 3, three_cost}, // THREE
- {0, 0, 4, four_cost}, // FOUR
+ {0, 0, 1, sign_cost}, // ONE
+ {0, 0, 2, sign_cost}, // TWO
+ {0, 0, 3, sign_cost}, // THREE
+ {0, 0, 4, sign_cost}, // FOUR
{vp9_cat1_prob, 1, CAT1_MIN_VAL, cat1_cost}, // CAT1
{vp9_cat2_prob, 2, CAT2_MIN_VAL, cat2_cost}, // CAT2
{vp9_cat3_prob, 3, CAT3_MIN_VAL, cat3_cost}, // CAT3
@@ -390,10 +387,10 @@
};
const vp9_extra_bit vp9_extra_bits_high12[ENTROPY_TOKENS] = {
{0, 0, 0, zero_cost}, // ZERO
- {0, 0, 1, one_cost}, // ONE
- {0, 0, 2, two_cost}, // TWO
- {0, 0, 3, three_cost}, // THREE
- {0, 0, 4, four_cost}, // FOUR
+ {0, 0, 1, sign_cost}, // ONE
+ {0, 0, 2, sign_cost}, // TWO
+ {0, 0, 3, sign_cost}, // THREE
+ {0, 0, 4, sign_cost}, // FOUR
{vp9_cat1_prob, 1, CAT1_MIN_VAL, cat1_cost}, // CAT1
{vp9_cat2_prob, 2, CAT2_MIN_VAL, cat2_cost}, // CAT2
{vp9_cat3_prob, 3, CAT3_MIN_VAL, cat3_cost}, // CAT3