ref: cbcfbe1b2987386ff21075d32f12633458556708
parent: 87c40b35eb6e10aca53421da45a890039ac94e92
parent: 888699091def8d7dbe53de87826b62d4df8ac051
author: Jim Bankoski <jimbankoski@google.com>
date: Mon Mar 5 09:14:58 EST 2012
Merge "vp8e - fix coefficient costing"
--- a/vp8/encoder/rdopt.c
+++ b/vp8/encoder/rdopt.c
@@ -137,9 +137,11 @@
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 @@
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;
--- a/vp8/encoder/treewriter.c
+++ b/vp8/encoder/treewriter.c
@@ -37,3 +37,7 @@
{
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);
+}
--- a/vp8/encoder/treewriter.h
+++ b/vp8/encoder/treewriter.h
@@ -119,4 +119,8 @@
int *Costs, const vp8_prob *, vp8_tree
);
+void vp8_cost_tokens2(
+ int *Costs, const vp8_prob *, vp8_tree, int
+);
+
#endif
--
⑨