Removing old code.
Change-Id: Ie05cc5e2d8ce12eacdf482a8b75e5a6ce6f59f57
This commit is contained in:
parent
dde8069e57
commit
ac115a1f9a
@ -21,14 +21,6 @@
|
||||
#include "vp9/common/vp9_seg_common.h"
|
||||
#include "vp9/common/vp9_entropy.h"
|
||||
|
||||
/* Global event counters used for accumulating statistics across several
|
||||
compressions, then generating vp9_context.c = initial stats. */
|
||||
|
||||
#ifdef ENTROPY_STATS
|
||||
vp9_coeff_accum context_counters[TX_SIZES][BLOCK_TYPES];
|
||||
extern vp9_coeff_stats tree_update_hist[TX_SIZES][BLOCK_TYPES];
|
||||
#endif /* ENTROPY_STATS */
|
||||
|
||||
static TOKENVALUE dct_value_tokens[DCT_MAX_VALUE * 2];
|
||||
const TOKENVALUE *vp9_dct_value_tokens_ptr;
|
||||
static int dct_value_cost[DCT_MAX_VALUE * 2];
|
||||
@ -226,149 +218,6 @@ void vp9_tokenize_sb(VP9_COMP *cpi, TOKENEXTRA **t, int dry_run,
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef ENTROPY_STATS
|
||||
void init_context_counters(void) {
|
||||
FILE *f = fopen("context.bin", "rb");
|
||||
if (!f) {
|
||||
vp9_zero(context_counters);
|
||||
} else {
|
||||
fread(context_counters, sizeof(context_counters), 1, f);
|
||||
fclose(f);
|
||||
}
|
||||
|
||||
f = fopen("treeupdate.bin", "rb");
|
||||
if (!f) {
|
||||
vpx_memset(tree_update_hist, 0, sizeof(tree_update_hist));
|
||||
} else {
|
||||
fread(tree_update_hist, sizeof(tree_update_hist), 1, f);
|
||||
fclose(f);
|
||||
}
|
||||
}
|
||||
|
||||
static void print_counter(FILE *f, vp9_coeff_accum *context_counters,
|
||||
int block_types, const char *header) {
|
||||
int type, ref, band, pt, t;
|
||||
|
||||
fprintf(f, "static const vp9_coeff_count %s = {\n", header);
|
||||
|
||||
#define Comma(X) (X ? "," : "")
|
||||
type = 0;
|
||||
do {
|
||||
ref = 0;
|
||||
fprintf(f, "%s\n { /* block Type %d */", Comma(type), type);
|
||||
do {
|
||||
fprintf(f, "%s\n { /* %s */", Comma(type), ref ? "Inter" : "Intra");
|
||||
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_t x = context_counters[type][ref][band][pt][t];
|
||||
const int y = (int) x;
|
||||
|
||||
assert(x == (int64_t) y); /* no overflow handling yet */
|
||||
fprintf(f, "%s %d", Comma(t), y);
|
||||
} while (++t < 1 + MAX_ENTROPY_TOKENS);
|
||||
fprintf(f, "}");
|
||||
} while (++pt < PREV_COEF_CONTEXTS);
|
||||
fprintf(f, "\n }");
|
||||
} while (++band < COEF_BANDS);
|
||||
fprintf(f, "\n }");
|
||||
} while (++ref < REF_TYPES);
|
||||
fprintf(f, "\n }");
|
||||
} while (++type < block_types);
|
||||
fprintf(f, "\n};\n");
|
||||
}
|
||||
|
||||
static void print_probs(FILE *f, vp9_coeff_accum *context_counters,
|
||||
int block_types, const char *header) {
|
||||
int type, ref, band, pt, t;
|
||||
|
||||
fprintf(f, "static const vp9_coeff_probs %s = {", header);
|
||||
|
||||
type = 0;
|
||||
#define Newline(x, spaces) (x ? " " : "\n" spaces)
|
||||
do {
|
||||
fprintf(f, "%s%s{ /* block Type %d */",
|
||||
Comma(type), Newline(type, " "), type);
|
||||
ref = 0;
|
||||
do {
|
||||
fprintf(f, "%s%s{ /* %s */",
|
||||
Comma(band), Newline(band, " "), ref ? "Inter" : "Intra");
|
||||
band = 0;
|
||||
do {
|
||||
fprintf(f, "%s%s{ /* Coeff Band %d */",
|
||||
Comma(band), Newline(band, " "), band);
|
||||
pt = 0;
|
||||
do {
|
||||
unsigned int branch_ct[ENTROPY_NODES][2];
|
||||
unsigned int coef_counts[MAX_ENTROPY_TOKENS + 1];
|
||||
vp9_prob coef_probs[ENTROPY_NODES];
|
||||
|
||||
if (pt >= 3 && band == 0)
|
||||
break;
|
||||
for (t = 0; t < MAX_ENTROPY_TOKENS + 1; ++t)
|
||||
coef_counts[t] = context_counters[type][ref][band][pt][t];
|
||||
vp9_tree_probs_from_distribution(vp9_coef_tree, coef_probs,
|
||||
branch_ct, coef_counts, 0);
|
||||
branch_ct[0][1] = coef_counts[MAX_ENTROPY_TOKENS] - branch_ct[0][0];
|
||||
coef_probs[0] = get_binary_prob(branch_ct[0][0], branch_ct[0][1]);
|
||||
fprintf(f, "%s\n {", Comma(pt));
|
||||
|
||||
t = 0;
|
||||
do {
|
||||
fprintf(f, "%s %3d", Comma(t), coef_probs[t]);
|
||||
} while (++t < ENTROPY_NODES);
|
||||
|
||||
fprintf(f, " }");
|
||||
} while (++pt < PREV_COEF_CONTEXTS);
|
||||
fprintf(f, "\n }");
|
||||
} while (++band < COEF_BANDS);
|
||||
fprintf(f, "\n }");
|
||||
} while (++ref < REF_TYPES);
|
||||
fprintf(f, "\n }");
|
||||
} while (++type < block_types);
|
||||
fprintf(f, "\n};\n");
|
||||
}
|
||||
|
||||
void print_context_counters() {
|
||||
FILE *f = fopen("vp9_context.c", "w");
|
||||
|
||||
fprintf(f, "#include \"vp9_entropy.h\"\n");
|
||||
fprintf(f, "\n/* *** GENERATED FILE: DO NOT EDIT *** */\n\n");
|
||||
|
||||
/* print counts */
|
||||
print_counter(f, context_counters[TX_4X4], BLOCK_TYPES,
|
||||
"vp9_default_coef_counts_4x4[BLOCK_TYPES]");
|
||||
print_counter(f, context_counters[TX_8X8], BLOCK_TYPES,
|
||||
"vp9_default_coef_counts_8x8[BLOCK_TYPES]");
|
||||
print_counter(f, context_counters[TX_16X16], BLOCK_TYPES,
|
||||
"vp9_default_coef_counts_16x16[BLOCK_TYPES]");
|
||||
print_counter(f, context_counters[TX_32X32], BLOCK_TYPES,
|
||||
"vp9_default_coef_counts_32x32[BLOCK_TYPES]");
|
||||
|
||||
/* print coefficient probabilities */
|
||||
print_probs(f, context_counters[TX_4X4], BLOCK_TYPES,
|
||||
"default_coef_probs_4x4[BLOCK_TYPES]");
|
||||
print_probs(f, context_counters[TX_8X8], BLOCK_TYPES,
|
||||
"default_coef_probs_8x8[BLOCK_TYPES]");
|
||||
print_probs(f, context_counters[TX_16X16], BLOCK_TYPES,
|
||||
"default_coef_probs_16x16[BLOCK_TYPES]");
|
||||
print_probs(f, context_counters[TX_32X32], BLOCK_TYPES,
|
||||
"default_coef_probs_32x32[BLOCK_TYPES]");
|
||||
|
||||
fclose(f);
|
||||
|
||||
f = fopen("context.bin", "wb");
|
||||
fwrite(context_counters, sizeof(context_counters), 1, f);
|
||||
fclose(f);
|
||||
}
|
||||
#endif
|
||||
|
||||
void vp9_tokenize_initialize() {
|
||||
fill_value_tokens();
|
||||
}
|
||||
|
@ -28,9 +28,6 @@ typedef struct {
|
||||
uint8_t skip_eob_node;
|
||||
} TOKENEXTRA;
|
||||
|
||||
typedef int64_t vp9_coeff_accum[REF_TYPES][COEF_BANDS][PREV_COEF_CONTEXTS]
|
||||
[MAX_ENTROPY_TOKENS + 1];
|
||||
|
||||
int vp9_sb_is_skippable(MACROBLOCKD *xd, BLOCK_SIZE bsize);
|
||||
int vp9_is_skippable_in_plane(MACROBLOCKD *xd, BLOCK_SIZE bsize,
|
||||
int plane);
|
||||
@ -39,13 +36,6 @@ struct VP9_COMP;
|
||||
void vp9_tokenize_sb(struct VP9_COMP *cpi, TOKENEXTRA **t, int dry_run,
|
||||
BLOCK_SIZE bsize);
|
||||
|
||||
#ifdef ENTROPY_STATS
|
||||
void init_context_counters();
|
||||
void print_context_counters();
|
||||
|
||||
extern vp9_coeff_accum context_counters[TX_SIZES][BLOCK_TYPES];
|
||||
#endif
|
||||
|
||||
extern const int *vp9_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
|
||||
|
Loading…
x
Reference in New Issue
Block a user