Adjust rd calculation in choose_tx_size_from_rd
Coding gain: derflr 0.142% hevclr 0.153% hevcmr 0.124% Change-Id: I63b56ae3a9002c3a266e10e2964135ed43b0ba53
This commit is contained in:
Родитель
36c4e8b27a
Коммит
38cc168822
|
@ -653,6 +653,7 @@ static void choose_tx_size_from_rd(VP10_COMP *cpi, MACROBLOCK *x,
|
|||
} else if (s[n]) {
|
||||
if (is_inter_block(mbmi)) {
|
||||
rd[n][0] = rd[n][1] = RDCOST(x->rdmult, x->rddiv, s1, sse[n]);
|
||||
r[n][1] -= r_tx_size;
|
||||
} 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]);
|
||||
|
@ -662,6 +663,11 @@ static void choose_tx_size_from_rd(VP10_COMP *cpi, MACROBLOCK *x,
|
|||
rd[n][1] = RDCOST(x->rdmult, x->rddiv, r[n][1] + s0, d[n]);
|
||||
}
|
||||
|
||||
if (is_inter_block(mbmi) && !xd->lossless && !s[n] && sse[n] != INT64_MAX) {
|
||||
rd[n][0] = VPXMIN(rd[n][0], RDCOST(x->rdmult, x->rddiv, s1, sse[n]));
|
||||
rd[n][1] = VPXMIN(rd[n][1], RDCOST(x->rdmult, x->rddiv, s1, sse[n]));
|
||||
}
|
||||
|
||||
// Early termination in transform size search.
|
||||
if (cpi->sf.tx_size_search_breakout &&
|
||||
(rd[n][1] == INT64_MAX ||
|
||||
|
|
|
@ -664,6 +664,7 @@ static void choose_tx_size_from_rd(VP9_COMP *cpi, MACROBLOCK *x,
|
|||
} else if (s[n]) {
|
||||
if (is_inter_block(mbmi)) {
|
||||
rd[n][0] = rd[n][1] = RDCOST(x->rdmult, x->rddiv, s1, sse[n]);
|
||||
r[n][1] -= r_tx_size;
|
||||
} 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]);
|
||||
|
@ -673,6 +674,11 @@ static void choose_tx_size_from_rd(VP9_COMP *cpi, MACROBLOCK *x,
|
|||
rd[n][1] = RDCOST(x->rdmult, x->rddiv, r[n][1] + s0, d[n]);
|
||||
}
|
||||
|
||||
if (is_inter_block(mbmi) && !xd->lossless && !s[n] && sse[n] != INT64_MAX) {
|
||||
rd[n][0] = VPXMIN(rd[n][0], RDCOST(x->rdmult, x->rddiv, s1, sse[n]));
|
||||
rd[n][1] = VPXMIN(rd[n][1], RDCOST(x->rdmult, x->rddiv, s1, sse[n]));
|
||||
}
|
||||
|
||||
// Early termination in transform size search.
|
||||
if (cpi->sf.tx_size_search_breakout &&
|
||||
(rd[n][1] == INT64_MAX ||
|
||||
|
|
Загрузка…
Ссылка в новой задаче