Commit 62c73560 authored by Jingning Han's avatar Jingning Han Committed by Gerrit Code Review

Merge "Use hybrid RD and non-RD coding flow for key frame coding"

parents a3a4a34c 07711e9b
...@@ -2663,6 +2663,15 @@ static TX_MODE select_tx_mode(const VP9_COMP *cpi, MACROBLOCKD *const xd) { ...@@ -2663,6 +2663,15 @@ static TX_MODE select_tx_mode(const VP9_COMP *cpi, MACROBLOCKD *const xd) {
return cpi->common.tx_mode; return cpi->common.tx_mode;
} }
static void hybrid_intra_mode_search(VP9_COMP *cpi, MACROBLOCK *const x,
RD_COST *rd_cost, BLOCK_SIZE bsize,
PICK_MODE_CONTEXT *ctx) {
if (bsize < BLOCK_16X16)
vp9_rd_pick_intra_mode_sb(cpi, x, rd_cost, bsize, ctx, INT64_MAX);
else
vp9_pick_intra_mode(cpi, x, rd_cost, bsize, ctx);
}
static void nonrd_pick_sb_modes(VP9_COMP *cpi, static void nonrd_pick_sb_modes(VP9_COMP *cpi,
TileDataEnc *tile_data, MACROBLOCK *const x, TileDataEnc *tile_data, MACROBLOCK *const x,
int mi_row, int mi_col, RD_COST *rd_cost, int mi_row, int mi_col, RD_COST *rd_cost,
...@@ -2680,7 +2689,7 @@ static void nonrd_pick_sb_modes(VP9_COMP *cpi, ...@@ -2680,7 +2689,7 @@ static void nonrd_pick_sb_modes(VP9_COMP *cpi,
x->rdmult = vp9_cyclic_refresh_get_rdmult(cpi->cyclic_refresh); x->rdmult = vp9_cyclic_refresh_get_rdmult(cpi->cyclic_refresh);
if (cm->frame_type == KEY_FRAME) if (cm->frame_type == KEY_FRAME)
vp9_pick_intra_mode(cpi, x, rd_cost, bsize, ctx); hybrid_intra_mode_search(cpi, x, rd_cost, bsize, ctx);
else if (vp9_segfeature_active(&cm->seg, mbmi->segment_id, SEG_LVL_SKIP)) else if (vp9_segfeature_active(&cm->seg, mbmi->segment_id, SEG_LVL_SKIP))
set_mode_info_seg_skip(x, cm->tx_mode, rd_cost, bsize); set_mode_info_seg_skip(x, cm->tx_mode, rd_cost, bsize);
else else
...@@ -3609,6 +3618,7 @@ static void encode_frame_internal(VP9_COMP *cpi) { ...@@ -3609,6 +3618,7 @@ static void encode_frame_internal(VP9_COMP *cpi) {
cm->tx_mode = ALLOW_16X16; cm->tx_mode = ALLOW_16X16;
} }
#if CONFIG_VP9_HIGHBITDEPTH #if CONFIG_VP9_HIGHBITDEPTH
if (cm->use_highbitdepth) if (cm->use_highbitdepth)
x->fwd_txm4x4 = xd->lossless ? vp9_highbd_fwht4x4 : vp9_highbd_fdct4x4; x->fwd_txm4x4 = xd->lossless ? vp9_highbd_fwht4x4 : vp9_highbd_fdct4x4;
......
...@@ -321,7 +321,6 @@ static void set_rt_speed_feature(VP9_COMP *cpi, SPEED_FEATURES *sf, ...@@ -321,7 +321,6 @@ static void set_rt_speed_feature(VP9_COMP *cpi, SPEED_FEATURES *sf,
if (speed >= 6) { if (speed >= 6) {
// Adaptively switch between SOURCE_VAR_BASED_PARTITION and FIXED_PARTITION. // Adaptively switch between SOURCE_VAR_BASED_PARTITION and FIXED_PARTITION.
sf->partition_search_type = VAR_BASED_PARTITION; sf->partition_search_type = VAR_BASED_PARTITION;
// Turn on this to use non-RD key frame coding mode. // Turn on this to use non-RD key frame coding mode.
sf->use_nonrd_pick_mode = 1; sf->use_nonrd_pick_mode = 1;
sf->mv.search_method = NSTEP; sf->mv.search_method = NSTEP;
......
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