Add transform size rate for intra skip mode in rdopt
Change-Id: I81fedd99cd39c12b66b93b786cb43234c867b84b
This commit is contained in:
parent
9c685602d0
commit
c7d886d96a
@ -934,6 +934,13 @@ static void choose_tx_size_from_rd(VP9_COMP *cpi, MACROBLOCK *x,
|
||||
s1 = vp9_cost_bit(skip_prob, 1);
|
||||
|
||||
for (n = max_tx_size; n >= 0; n--) {
|
||||
int r_tx_size = 0;
|
||||
for (m = 0; m <= n - (n == (int) max_tx_size); m++) {
|
||||
if (m == n)
|
||||
r_tx_size += vp9_cost_zero(tx_probs[m]);
|
||||
else
|
||||
r_tx_size += vp9_cost_one(tx_probs[m]);
|
||||
}
|
||||
#if CONFIG_EXT_TX
|
||||
if (mbmi->ext_txfrm >= GET_EXT_TX_TYPES(n)) {
|
||||
r[n][0] = r[n][1] = INT_MAX;
|
||||
@ -954,17 +961,17 @@ static void choose_tx_size_from_rd(VP9_COMP *cpi, MACROBLOCK *x,
|
||||
#endif // CONFIG_EXT_TX
|
||||
r[n][1] = r[n][0];
|
||||
if (r[n][0] < INT_MAX) {
|
||||
for (m = 0; m <= n - (n == (int) max_tx_size); m++) {
|
||||
if (m == n)
|
||||
r[n][1] += vp9_cost_zero(tx_probs[m]);
|
||||
else
|
||||
r[n][1] += vp9_cost_one(tx_probs[m]);
|
||||
}
|
||||
r[n][1] += r_tx_size;
|
||||
}
|
||||
if (d[n] == INT64_MAX) {
|
||||
if (d[n] == INT64_MAX || r[n][0] == INT_MAX) {
|
||||
rd[n][0] = rd[n][1] = INT64_MAX;
|
||||
} else if (s[n]) {
|
||||
rd[n][0] = rd[n][1] = RDCOST(x->rdmult, x->rddiv, s1, d[n]);
|
||||
if (is_inter_block(mbmi)) {
|
||||
rd[n][0] = rd[n][1] = RDCOST(x->rdmult, x->rddiv, s1, sse[n]);
|
||||
} else {
|
||||
rd[n][0] = RDCOST(x->rdmult, x->rddiv, s1, sse[n]);
|
||||
rd[n][1] = RDCOST(x->rdmult, x->rddiv, s1 + r_tx_size, sse[n]);
|
||||
}
|
||||
} else {
|
||||
rd[n][0] = RDCOST(x->rdmult, x->rddiv, r[n][0] + s0, d[n]);
|
||||
rd[n][1] = RDCOST(x->rdmult, x->rddiv, r[n][1] + s0, d[n]);
|
||||
|
Loading…
x
Reference in New Issue
Block a user