Commit 88869909 authored by Jim Bankoski's avatar Jim Bankoski

vp8e - fix coefficient costing

Coefficient costing failed to take account of the first branch
being skipped ( 0 vs eob) if the previous token is 0.

Fixed rd to account for slightly increased token cost & cleaned up
warning message

Change-Id: I56140635d9f48a28dded5a816964e973a53975ef
parent a60461a3
......@@ -137,9 +137,11 @@ static void fill_token_costs(
for (i = 0; i < BLOCK_TYPES; i++)
for (j = 0; j < COEF_BANDS; j++)
for (k = 0; k < PREV_COEF_CONTEXTS; k++)
vp8_cost_tokens((int *)(c [i][j][k]), p [i][j][k], vp8_coef_tree);
// check for pt=0 and band > 1 if block type 0 and 0 if blocktype 1
if(k==0 && j>(i==0) )
vp8_cost_tokens2((int *)(c [i][j][k]), p [i][j][k], vp8_coef_tree,2);
else
vp8_cost_tokens((int *)(c [i][j][k]), p [i][j][k], vp8_coef_tree);
}
static int rd_iifactor [ 32 ] = { 4, 4, 3, 2, 1, 0, 0, 0,
......@@ -199,7 +201,7 @@ void vp8_initialize_rd_consts(VP8_COMP *cpi, int Qvalue)
int q;
int i;
double capped_q = (Qvalue < 160) ? (double)Qvalue : 160.0;
double rdconst = 2.70;
double rdconst = 2.60;
vp8_clear_system_state(); //__asm emms;
......
......@@ -37,3 +37,7 @@ void vp8_cost_tokens(int *c, const vp8_prob *p, vp8_tree t)
{
cost(c, t, p, 0, 0);
}
void vp8_cost_tokens2(int *c, const vp8_prob *p, vp8_tree t,int start)
{
cost(c, t, p, start, 0);
}
......@@ -119,4 +119,8 @@ void vp8_cost_tokens(
int *Costs, const vp8_prob *, vp8_tree
);
void vp8_cost_tokens2(
int *Costs, const vp8_prob *, vp8_tree, int
);
#endif
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment