diff --git a/src/rdo.rs b/src/rdo.rs index 27fef29b5092512265881513fae6adc41493fa84..b5fbb9fbd32d63d997be88bc0d8f008ffbd21a73 100755 --- a/src/rdo.rs +++ b/src/rdo.rs @@ -292,26 +292,25 @@ pub fn rdo_mode_decision( cw.find_mvrefs(bo, LAST_FRAME, &mut mv_stack, bsize, false); for &luma_mode in &mode_set { - assert!(fi.frame_type == FrameType::INTER || luma_mode.is_intra()); + let luma_mode_is_intra = luma_mode.is_intra(); + assert!(fi.frame_type == FrameType::INTER || luma_mode_is_intra); if luma_mode == PredictionMode::NEAR1MV && mv_stack.len() < 3 { continue; } if luma_mode == PredictionMode::NEAR2MV && mv_stack.len() < 4 { continue; } let mut mode_set_chroma = vec![luma_mode]; - if is_chroma_block - && luma_mode.is_intra() - && luma_mode != PredictionMode::DC_PRED - { - mode_set_chroma.push(PredictionMode::DC_PRED); - } - - if is_chroma_block && luma_mode.is_intra() && bsize.cfl_allowed() { - mode_set_chroma.push(PredictionMode::UV_CFL_PRED); + if luma_mode_is_intra && is_chroma_block { + if luma_mode != PredictionMode::DC_PRED { + mode_set_chroma.push(PredictionMode::DC_PRED); + } + if bsize.cfl_allowed() { + mode_set_chroma.push(PredictionMode::UV_CFL_PRED); + } } let ref_frame = - if luma_mode.is_intra() { INTRA_FRAME } else { LAST_FRAME }; + if luma_mode_is_intra { INTRA_FRAME } else { LAST_FRAME }; let mv = match luma_mode { PredictionMode::NEWMV => motion_estimation(fi, fs, bsize, bo, ref_frame), PredictionMode::NEARESTMV => if mv_stack.len() > 0 { @@ -369,7 +368,7 @@ pub fn rdo_mode_decision( for &skip in &[false, true] { // Don't skip when using intra modes - if skip && luma_mode.is_intra() { + if skip && luma_mode_is_intra { continue; }