AV1 RT: Remove extra bias for NEWMV for bigger blocks
Gives extra 1.5% BDRate improvement without speed impact. Max BDRate
gain is 2.4%, Min is 0.22%
Change-Id: I328d1933b4aa4122dd8af64f9ee26cbd2287ebe8
diff --git a/av1/encoder/nonrd_pickmode.c b/av1/encoder/nonrd_pickmode.c
index ebffd3e..1f92b8e 100644
--- a/av1/encoder/nonrd_pickmode.c
+++ b/av1/encoder/nonrd_pickmode.c
@@ -921,7 +921,7 @@
static void newmv_diff_bias(MACROBLOCKD *xd, PREDICTION_MODE this_mode,
RD_STATS *this_rdc, BLOCK_SIZE bsize, int mv_row,
- int mv_col, int is_last_frame) {
+ int mv_col) {
// Bias against MVs associated with NEWMV mode that are very different from
// top/left neighbors.
if (this_mode == NEWMV) {
@@ -965,9 +965,6 @@
this_rdc->rdcost = 5 * this_rdc->rdcost >> 2;
}
}
- if (bsize >= BLOCK_16X16 && is_last_frame && mv_row < 16 && mv_row > -16 &&
- mv_col < 16 && mv_col > -16)
- this_rdc->rdcost = 7 * (this_rdc->rdcost >> 3);
}
struct estimate_block_intra_args {
@@ -1423,8 +1420,7 @@
if (cpi->oxcf.rc_mode == AOM_CBR && cpi->oxcf.speed >= 8) {
newmv_diff_bias(xd, this_mode, &this_rdc, bsize,
frame_mv[this_mode][ref_frame].as_mv.row,
- frame_mv[this_mode][ref_frame].as_mv.col,
- ref_frame == LAST_FRAME);
+ frame_mv[this_mode][ref_frame].as_mv.col);
}
mode_checked[this_mode][ref_frame] = 1;