vp9-svc: Non-rd pickmode, fix condition for testing zeromv for spatial ref.
Change-Id: I75bad321d5814a6df6735a8ead7700ab93b50763
This commit is contained in:
parent
9aa083d164
commit
2b5ab8095e
@ -1279,14 +1279,21 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x,
|
|||||||
usable_ref_frame = GOLDEN_FRAME;
|
usable_ref_frame = GOLDEN_FRAME;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the reference is temporally aligned with current superframe
|
// For svc mode, on spatial_layer_id > 0: if the reference has different scale
|
||||||
// (e.g., spatial reference within superframe), constrain the inter mode:
|
// constrain the inter mode to only test zero motion.
|
||||||
// for now only test zero motion.
|
if (cpi->use_svc &&
|
||||||
if (cpi->use_svc && svc ->force_zero_mode_spatial_ref) {
|
svc ->force_zero_mode_spatial_ref &&
|
||||||
if (svc->ref_frame_index[cpi->lst_fb_idx] == svc->current_superframe)
|
cpi->svc.spatial_layer_id > 0) {
|
||||||
svc_force_zero_mode[LAST_FRAME - 1] = 1;
|
if (cpi->ref_frame_flags & flag_list[LAST_FRAME]) {
|
||||||
if (svc->ref_frame_index[cpi->gld_fb_idx] == svc->current_superframe)
|
struct scale_factors *const sf = &cm->frame_refs[LAST_FRAME - 1].sf;
|
||||||
svc_force_zero_mode[GOLDEN_FRAME - 1] = 1;
|
if (vp9_is_scaled(sf))
|
||||||
|
svc_force_zero_mode[LAST_FRAME - 1] = 1;
|
||||||
|
}
|
||||||
|
if (cpi->ref_frame_flags & flag_list[GOLDEN_FRAME]) {
|
||||||
|
struct scale_factors *const sf = &cm->frame_refs[GOLDEN_FRAME - 1].sf;
|
||||||
|
if (vp9_is_scaled(sf))
|
||||||
|
svc_force_zero_mode[GOLDEN_FRAME - 1] = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (ref_frame = LAST_FRAME; ref_frame <= usable_ref_frame; ++ref_frame) {
|
for (ref_frame = LAST_FRAME; ref_frame <= usable_ref_frame; ++ref_frame) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user