ref: e42909a5aa28aaca1e29eaabd8200f2cc6975ae2
parent: 59540801e6fe0b770908e2450eb3d110671d1f31
parent: 0239b200d36cef7d68e5c316412b451d68a39651
author: Johann Koenig <johannkoenig@google.com>
date: Wed Nov 7 10:41:22 EST 2018
Merge "vp8: remove VP8_ENTROPY_STATS code"
--- a/vp8/encoder/bitstream.c
+++ b/vp8/encoder/bitstream.c
@@ -41,13 +41,6 @@
unsigned __int64 Sectionbits[500];
#endif
-#ifdef VP8_ENTROPY_STATS
-int intra_mode_stats[10][10][10];
-static unsigned int tree_update_hist[BLOCK_TYPES][COEF_BANDS]
- [PREV_COEF_CONTEXTS][ENTROPY_NODES][2];
-extern unsigned int active_section;
-#endif
-
#ifdef MODE_STATS
int count_mb_seg[4] = { 0, 0, 0, 0 };
#endif
@@ -428,10 +421,6 @@
vp8_convert_rfct_to_prob(cpi);
-#ifdef VP8_ENTROPY_STATS
- active_section = 1;
-#endif
-
if (pc->mb_no_coeff_skip) {
int total_mbs = pc->mb_rows * pc->mb_cols;
@@ -472,10 +461,6 @@
xd->mb_to_top_edge = -((mb_row * 16) << 3);
xd->mb_to_bottom_edge = ((pc->mb_rows - 1 - mb_row) * 16) << 3;
-#ifdef VP8_ENTROPY_STATS
- active_section = 9;
-#endif
-
if (cpi->mb.e_mbd.update_mb_segmentation_map) {
write_mb_features(w, mi, &cpi->mb.e_mbd);
}
@@ -486,9 +471,6 @@
if (rf == INTRA_FRAME) {
vp8_write(w, 0, cpi->prob_intra_coded);
-#ifdef VP8_ENTROPY_STATS
- active_section = 6;
-#endif
write_ymode(w, mode, pc->fc.ymode_prob);
if (mode == B_PRED) {
@@ -522,29 +504,14 @@
vp8_clamp_mv2(&best_mv, xd);
vp8_mv_ref_probs(mv_ref_p, ct);
-
-#ifdef VP8_ENTROPY_STATS
- accum_mv_refs(mode, ct);
-#endif
}
-#ifdef VP8_ENTROPY_STATS
- active_section = 3;
-#endif
-
write_mv_ref(w, mode, mv_ref_p);
switch (mode) /* new, split require MVs */
{
- case NEWMV:
+ case NEWMV: write_mv(w, &mi->mv.as_mv, &best_mv, mvc); break;
-#ifdef VP8_ENTROPY_STATS
- active_section = 5;
-#endif
-
- write_mv(w, &mi->mv.as_mv, &best_mv, mvc);
- break;
-
case SPLITMV: {
int j = 0;
@@ -574,9 +541,6 @@
write_sub_mv_ref(w, blockmode, vp8_sub_mv_ref_prob2[mv_contz]);
if (blockmode == NEW4X4) {
-#ifdef VP8_ENTROPY_STATS
- active_section = 11;
-#endif
write_mv(w, &blockmv.as_mv, &best_mv, (const MV_CONTEXT *)mvc);
}
} while (++j < cpi->mb.partition_info->count);
@@ -642,10 +606,6 @@
const B_PREDICTION_MODE L = left_block_mode(m, i);
const int bm = m->bmi[i].as_mode;
-#ifdef VP8_ENTROPY_STATS
- ++intra_mode_stats[A][L][bm];
-#endif
-
write_bmode(bc, bm, vp8_kf_bmode_prob[A][L]);
} while (++i < 16);
}
@@ -973,10 +933,6 @@
vp8_write(w, u, upd);
#endif
-#ifdef VP8_ENTROPY_STATS
- ++tree_update_hist[i][j][k][t][u];
-#endif
-
if (u) {
/* send/use new probability */
@@ -990,16 +946,6 @@
} while (++t < ENTROPY_NODES);
-/* Accum token counts for generation of default statistics */
-#ifdef VP8_ENTROPY_STATS
- t = 0;
-
- do {
- context_counters[i][j][k][t] += cpi->coef_counts[i][j][k][t];
- } while (++t < MAX_ENTROPY_TOKENS);
-
-#endif
-
} while (++k < PREV_COEF_CONTEXTS);
} while (++j < COEF_BANDS);
} while (++i < BLOCK_TYPES);
@@ -1286,15 +1232,6 @@
if (pc->frame_type != KEY_FRAME) vp8_write_bit(bc, pc->refresh_last_frame);
-#ifdef VP8_ENTROPY_STATS
-
- if (pc->frame_type == INTER_FRAME)
- active_section = 0;
- else
- active_section = 7;
-
-#endif
-
vpx_clear_system_state();
#if CONFIG_REALTIME_ONLY & CONFIG_ONTHEFLY_BITPACKING
@@ -1308,25 +1245,13 @@
vp8_update_coef_probs(cpi);
#endif
-#ifdef VP8_ENTROPY_STATS
- active_section = 2;
-#endif
-
/* Write out the mb_no_coeff_skip flag */
vp8_write_bit(bc, pc->mb_no_coeff_skip);
if (pc->frame_type == KEY_FRAME) {
write_kfmodes(cpi);
-
-#ifdef VP8_ENTROPY_STATS
- active_section = 8;
-#endif
} else {
pack_inter_mode_mvs(cpi);
-
-#ifdef VP8_ENTROPY_STATS
- active_section = 1;
-#endif
}
vp8_stop_encode(bc);
@@ -1431,50 +1356,3 @@
}
#endif
}
-
-#ifdef VP8_ENTROPY_STATS
-void print_tree_update_probs() {
- int i, j, k, l;
- FILE *f = fopen("context.c", "a");
- int Sum;
- fprintf(f, "\n/* Update probabilities for token entropy tree. */\n\n");
- fprintf(f,
- "const vp8_prob tree_update_probs[BLOCK_TYPES] [COEF_BANDS] "
- "[PREV_COEF_CONTEXTS] [ENTROPY_NODES] = {\n");
-
- for (i = 0; i < BLOCK_TYPES; ++i) {
- fprintf(f, " { \n");
-
- for (j = 0; j < COEF_BANDS; ++j) {
- fprintf(f, " {\n");
-
- for (k = 0; k < PREV_COEF_CONTEXTS; ++k) {
- fprintf(f, " {");
-
- for (l = 0; l < ENTROPY_NODES; ++l) {
- Sum =
- tree_update_hist[i][j][k][l][0] + tree_update_hist[i][j][k][l][1];
-
- if (Sum > 0) {
- if (((tree_update_hist[i][j][k][l][0] * 255) / Sum) > 0)
- fprintf(f, "%3ld, ",
- (tree_update_hist[i][j][k][l][0] * 255) / Sum);
- else
- fprintf(f, "%3ld, ", 1);
- } else
- fprintf(f, "%3ld, ", 128);
- }
-
- fprintf(f, "},\n");
- }
-
- fprintf(f, " },\n");
- }
-
- fprintf(f, " },\n");
- }
-
- fprintf(f, "};\n");
- fclose(f);
-}
-#endif
--- a/vp8/encoder/boolhuff.c
+++ b/vp8/encoder/boolhuff.c
@@ -15,10 +15,6 @@
#endif
-#ifdef VP8_ENTROPY_STATS
-unsigned int active_section = 0;
-#endif
-
const unsigned int vp8_prob_cost[256] = {
2047, 2047, 1791, 1641, 1535, 1452, 1385, 1328, 1279, 1235, 1196, 1161, 1129,
1099, 1072, 1046, 1023, 1000, 979, 959, 940, 922, 905, 889, 873, 858,
--- a/vp8/encoder/boolhuff.h
+++ b/vp8/encoder/boolhuff.h
@@ -63,17 +63,6 @@
unsigned int lowvalue = bc->lowvalue;
int shift;
-#ifdef VP8_ENTROPY_STATS
-#if defined(SECTIONBITS_OUTPUT)
-
- if (bit)
- Sectionbits[active_section] += vp8_prob_cost[255 - probability];
- else
- Sectionbits[active_section] += vp8_prob_cost[probability];
-
-#endif
-#endif
-
split = 1 + (((range - 1) * probability) >> 8);
range = split;
--- a/vp8/encoder/encodemv.c
+++ b/vp8/encoder/encodemv.c
@@ -16,10 +16,6 @@
#include <math.h>
-#ifdef VP8_ENTROPY_STATS
-extern unsigned int active_section;
-#endif
-
static void encode_mvcomponent(vp8_writer *const w, const int v,
const struct mv_context *mvc) {
const vp8_prob *p = mvc->prob;
@@ -309,9 +305,6 @@
vp8_writer *const w = cpi->bc;
MV_CONTEXT *mvc = cpi->common.fc.mvc;
int flags[2] = { 0, 0 };
-#ifdef VP8_ENTROPY_STATS
- active_section = 4;
-#endif
write_component_probs(w, &mvc[0], &vp8_default_mv_context[0],
&vp8_mv_update_probs[0], cpi->mb.MVcount[0], 0,
&flags[0]);
@@ -323,8 +316,4 @@
vp8_build_component_cost_table(
cpi->mb.mvcost, (const MV_CONTEXT *)cpi->common.fc.mvc, flags);
}
-
-#ifdef VP8_ENTROPY_STATS
- active_section = 5;
-#endif
}
--- a/vp8/encoder/mcomp.c
+++ b/vp8/encoder/mcomp.c
@@ -21,11 +21,6 @@
#include "vp8/common/common.h"
#include "vpx_dsp/vpx_dsp_common.h"
-#ifdef VP8_ENTROPY_STATS
-static int mv_ref_ct[31][4][2];
-static int mv_mode_cts[4][2];
-#endif
-
int vp8_mv_bit_cost(int_mv *mv, int_mv *ref, int *mvcost[2], int Weight) {
/* MV costing is based on the distribution of vectors in the previous
* frame and as such will tend to over state the cost of vectors. In
@@ -1821,96 +1816,3 @@
return fn_ptr->vf(what, what_stride, best_address, in_what_stride, &thissad) +
mv_err_cost(&this_mv, center_mv, mvcost, x->errorperbit);
}
-
-#ifdef VP8_ENTROPY_STATS
-void print_mode_context(void) {
- FILE *f = fopen("modecont.c", "w");
- int i, j;
-
- fprintf(f, "#include \"entropy.h\"\n");
- fprintf(f, "const int vp8_mode_contexts[6][4] =\n");
- fprintf(f, "{\n");
-
- for (j = 0; j < 6; ++j) {
- fprintf(f, " { /* %d */\n", j);
- fprintf(f, " ");
-
- for (i = 0; i < 4; ++i) {
- int overal_prob;
- int this_prob;
- int count;
-
- /* Overall probs */
- count = mv_mode_cts[i][0] + mv_mode_cts[i][1];
-
- if (count)
- overal_prob = 256 * mv_mode_cts[i][0] / count;
- else
- overal_prob = 128;
-
- if (overal_prob == 0) overal_prob = 1;
-
- /* context probs */
- count = mv_ref_ct[j][i][0] + mv_ref_ct[j][i][1];
-
- if (count)
- this_prob = 256 * mv_ref_ct[j][i][0] / count;
- else
- this_prob = 128;
-
- if (this_prob == 0) this_prob = 1;
-
- fprintf(f, "%5d, ", this_prob);
- }
-
- fprintf(f, " },\n");
- }
-
- fprintf(f, "};\n");
- fclose(f);
-}
-
-/* MV ref count VP8_ENTROPY_STATS stats code */
-#ifdef VP8_ENTROPY_STATS
-void init_mv_ref_counts() {
- memset(mv_ref_ct, 0, sizeof(mv_ref_ct));
- memset(mv_mode_cts, 0, sizeof(mv_mode_cts));
-}
-
-void accum_mv_refs(MB_PREDICTION_MODE m, const int ct[4]) {
- if (m == ZEROMV) {
- ++mv_ref_ct[ct[0]][0][0];
- ++mv_mode_cts[0][0];
- } else {
- ++mv_ref_ct[ct[0]][0][1];
- ++mv_mode_cts[0][1];
-
- if (m == NEARESTMV) {
- ++mv_ref_ct[ct[1]][1][0];
- ++mv_mode_cts[1][0];
- } else {
- ++mv_ref_ct[ct[1]][1][1];
- ++mv_mode_cts[1][1];
-
- if (m == NEARMV) {
- ++mv_ref_ct[ct[2]][2][0];
- ++mv_mode_cts[2][0];
- } else {
- ++mv_ref_ct[ct[2]][2][1];
- ++mv_mode_cts[2][1];
-
- if (m == NEWMV) {
- ++mv_ref_ct[ct[3]][3][0];
- ++mv_mode_cts[3][0];
- } else {
- ++mv_ref_ct[ct[3]][3][1];
- ++mv_mode_cts[3][1];
- }
- }
- }
- }
-}
-
-#endif /* END MV ref count VP8_ENTROPY_STATS stats code */
-
-#endif
--- a/vp8/encoder/mcomp.h
+++ b/vp8/encoder/mcomp.h
@@ -18,11 +18,6 @@
extern "C" {
#endif
-#ifdef VP8_ENTROPY_STATS
-void init_mv_ref_counts();
-void accum_mv_refs(MB_PREDICTION_MODE, const int near_mv_ref_cts[4]);
-#endif
-
/* The maximum number of steps in a step search given the largest allowed
* initial step
*/
@@ -34,7 +29,6 @@
/* Maximum size of the first step in full pel units */
#define MAX_FIRST_STEP (1 << (MAX_MVSEARCH_STEPS - 1))
-void print_mode_context(void);
int vp8_mv_bit_cost(int_mv *mv, int_mv *ref, int *mvcost[2], int Weight);
void vp8_init_dsmotion_compensation(MACROBLOCK *x, int stride);
void vp8_init3smotion_compensation(MACROBLOCK *x, int stride);
--- a/vp8/encoder/onyx_if.c
+++ b/vp8/encoder/onyx_if.c
@@ -65,9 +65,7 @@
extern void vp8_deblock_frame(YV12_BUFFER_CONFIG *source,
YV12_BUFFER_CONFIG *post, int filt_lvl,
int low_var_thresh, int flag);
-extern void print_parms(VP8_CONFIG *ocf, char *filenam);
extern unsigned int vp8_get_processor_freq();
-extern void print_tree_update_probs();
int vp8_calc_ss_err(YV12_BUFFER_CONFIG *source, YV12_BUFFER_CONFIG *dest);
@@ -101,10 +99,6 @@
extern int skip_false_count;
#endif
-#ifdef VP8_ENTROPY_STATS
-extern int intra_mode_stats[10][10][10];
-#endif
-
#ifdef SPEEDSTATS
unsigned int frames_at_speed[16] = { 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0 };
@@ -1893,10 +1887,6 @@
CHECK_MEM_ERROR(cpi->consec_zero_last_mvbias,
vpx_calloc((cpi->common.mb_rows * cpi->common.mb_cols), 1));
-#ifdef VP8_ENTROPY_STATS
- init_context_counters();
-#endif
-
/*Initialize the feed-forward activity masking.*/
cpi->activity_avg = 90 << 12;
@@ -2005,10 +1995,6 @@
cpi->mb.rd_thresh_mult[i] = 128;
}
-#ifdef VP8_ENTROPY_STATS
- init_mv_ref_counts();
-#endif
-
#if CONFIG_MULTITHREAD
if (vp8cx_create_encoder_threads(cpi)) {
vp8_remove_compressor(&cpi);
@@ -2120,12 +2106,6 @@
#endif
-#ifdef VP8_ENTROPY_STATS
- print_context_counters();
- print_tree_update_probs();
- print_mode_context();
-#endif
-
#if CONFIG_INTERNAL_STATS
if (cpi->pass != 1) {
@@ -2249,40 +2229,6 @@
inter_b_modes[NEW4X4]);
fclose(f);
- }
-#endif
-
-#ifdef VP8_ENTROPY_STATS
- {
- int i, j, k;
- FILE *fmode = fopen("modecontext.c", "w");
-
- fprintf(fmode, "\n#include \"entropymode.h\"\n\n");
- fprintf(fmode, "const unsigned int vp8_kf_default_bmode_counts ");
- fprintf(fmode,
- "[VP8_BINTRAMODES] [VP8_BINTRAMODES] [VP8_BINTRAMODES] =\n{\n");
-
- for (i = 0; i < 10; ++i) {
- fprintf(fmode, " { /* Above Mode : %d */\n", i);
-
- for (j = 0; j < 10; ++j) {
- fprintf(fmode, " {");
-
- for (k = 0; k < 10; ++k) {
- if (!intra_mode_stats[i][j][k])
- fprintf(fmode, " %5d, ", 1);
- else
- fprintf(fmode, " %5d, ", intra_mode_stats[i][j][k]);
- }
-
- fprintf(fmode, "}, /* left_mode %d */\n", j);
- }
-
- fprintf(fmode, " },\n");
- }
-
- fprintf(fmode, "};\n");
- fclose(fmode);
}
#endif
--- a/vp8/encoder/tokenize.c
+++ b/vp8/encoder/tokenize.c
@@ -19,10 +19,6 @@
/* Global event counters used for accumulating statistics across several
compressions, then generating context.c = initial stats. */
-#ifdef VP8_ENTROPY_STATS
-_int64 context_counters[BLOCK_TYPES][COEF_BANDS][PREV_COEF_CONTEXTS]
- [MAX_ENTROPY_TOKENS];
-#endif
void vp8_stuff_mb(VP8_COMP *cpi, MACROBLOCK *x, TOKENEXTRA **t);
void vp8_fix_contexts(MACROBLOCKD *x);
@@ -382,72 +378,6 @@
tokenize1st_order_b(x, t, plane_type, cpi);
}
-
-#ifdef VP8_ENTROPY_STATS
-
-void init_context_counters(void) {
- memset(context_counters, 0, sizeof(context_counters));
-}
-
-void print_context_counters() {
- int type, band, pt, t;
-
- FILE *const f = fopen("context.c", "w");
-
- fprintf(f, "#include \"entropy.h\"\n");
-
- fprintf(f, "\n/* *** GENERATED FILE: DO NOT EDIT *** */\n\n");
-
- fprintf(f,
- "int Contexts[BLOCK_TYPES] [COEF_BANDS] [PREV_COEF_CONTEXTS] "
- "[MAX_ENTROPY_TOKENS];\n\n");
-
- fprintf(f,
- "const int default_contexts[BLOCK_TYPES] [COEF_BANDS] "
- "[PREV_COEF_CONTEXTS] [MAX_ENTROPY_TOKENS] = {");
-
-#define Comma(X) (X ? "," : "")
-
- type = 0;
-
- do {
- fprintf(f, "%s\n { /* block Type %d */", Comma(type), type);
-
- band = 0;
-
- do {
- fprintf(f, "%s\n { /* Coeff Band %d */", Comma(band), band);
-
- pt = 0;
-
- do {
- fprintf(f, "%s\n {", Comma(pt));
-
- t = 0;
-
- do {
- const _int64 x = context_counters[type][band][pt][t];
- const int y = (int)x;
-
- assert(x == (_int64)y); /* no overflow handling yet */
- fprintf(f, "%s %d", Comma(t), y);
-
- } while (++t < MAX_ENTROPY_TOKENS);
-
- fprintf(f, "}");
- } while (++pt < PREV_COEF_CONTEXTS);
-
- fprintf(f, "\n }");
-
- } while (++band < COEF_BANDS);
-
- fprintf(f, "\n }");
- } while (++type < BLOCK_TYPES);
-
- fprintf(f, "\n};\n");
- fclose(f);
-}
-#endif
static void stuff2nd_order_b(TOKENEXTRA **tp, ENTROPY_CONTEXT *a,
ENTROPY_CONTEXT *l, VP8_COMP *cpi, MACROBLOCK *x) {
--- a/vp8/encoder/tokenize.h
+++ b/vp8/encoder/tokenize.h
@@ -34,14 +34,6 @@
int rd_cost_mby(MACROBLOCKD *);
-#ifdef VP8_ENTROPY_STATS
-void init_context_counters();
-void print_context_counters();
-
-extern _int64 context_counters[BLOCK_TYPES][COEF_BANDS][PREV_COEF_CONTEXTS]
- [MAX_ENTROPY_TOKENS];
-#endif
-
extern const short *const vp8_dct_value_cost_ptr;
/* TODO: The Token field should be broken out into a separate char array to
* improve cache locality, since it's needed for costing when the rest of the