diff options
author | Yaowu Xu <yaowu@google.com> | 2013-02-20 12:27:26 -0800 |
---|---|---|
committer | Gerrit Code Review <gerrit@gerrit.golo.chromium.org> | 2013-02-20 12:27:26 -0800 |
commit | 441f24de3d632abdaae3b8982bfbc7346c16f2b5 (patch) | |
tree | c97c1fd18c0036d3c8eabfa76b398eae739b48d1 /vp9/encoder/vp9_onyx_if.c | |
parent | ef01b956d88e68a4cb66b94d6a99a46c6909fa1a (diff) | |
parent | d262e26cc748ae99b18cd151f794c575b1c8fc71 (diff) | |
download | libvpx-441f24de3d632abdaae3b8982bfbc7346c16f2b5.tar libvpx-441f24de3d632abdaae3b8982bfbc7346c16f2b5.tar.gz libvpx-441f24de3d632abdaae3b8982bfbc7346c16f2b5.tar.bz2 libvpx-441f24de3d632abdaae3b8982bfbc7346c16f2b5.zip |
Merge "Merge lossless experiment" into experimental
Diffstat (limited to 'vp9/encoder/vp9_onyx_if.c')
-rw-r--r-- | vp9/encoder/vp9_onyx_if.c | 36 |
1 files changed, 13 insertions, 23 deletions
diff --git a/vp9/encoder/vp9_onyx_if.c b/vp9/encoder/vp9_onyx_if.c index 4c73cb5c8..c5874ebd6 100644 --- a/vp9/encoder/vp9_onyx_if.c +++ b/vp9/encoder/vp9_onyx_if.c @@ -753,12 +753,12 @@ void vp9_set_speed_features(VP9_COMP *cpi) { sf->quarter_pixel_search = 1; sf->half_pixel_search = 1; sf->iterative_sub_pixel = 1; - sf->optimize_coefficients = 1; -#if CONFIG_LOSSLESS + sf->no_skip_block4x4_search = 1; if (cpi->oxcf.lossless) sf->optimize_coefficients = 0; -#endif - sf->no_skip_block4x4_search = 1; + else + sf->optimize_coefficients = 1; + sf->first_step = 0; sf->max_step_search_steps = MAX_MVSEARCH_STEPS; sf->static_segmentation = 1; @@ -845,13 +845,10 @@ void vp9_set_speed_features(VP9_COMP *cpi) { cpi->mb.fwd_txm8x8 = vp9_short_fdct8x8; cpi->mb.fwd_txm8x4 = vp9_short_fdct8x4; cpi->mb.fwd_txm4x4 = vp9_short_fdct4x4; - -#if CONFIG_LOSSLESS if (cpi->oxcf.lossless || cpi->mb.e_mbd.lossless) { cpi->mb.fwd_txm8x4 = vp9_short_walsh8x4_x8; cpi->mb.fwd_txm4x4 = vp9_short_walsh4x4_x8; } -#endif cpi->mb.quantize_b_4x4 = vp9_regular_quantize_b_4x4; cpi->mb.quantize_b_4x4_pair = vp9_regular_quantize_b_4x4_pair; @@ -1216,16 +1213,14 @@ void vp9_change_config(VP9_PTR ptr, VP9_CONFIG *oxcf) { cpi->oxcf.best_allowed_q = q_trans[oxcf->best_allowed_q]; cpi->oxcf.cq_level = q_trans[cpi->oxcf.cq_level]; - cpi->mb.e_mbd.inv_txm4x4_1 = vp9_short_idct4x4llm_1; - cpi->mb.e_mbd.inv_txm4x4 = vp9_short_idct4x4llm; - -#if CONFIG_LOSSLESS cpi->oxcf.lossless = oxcf->lossless; if (cpi->oxcf.lossless) { cpi->mb.e_mbd.inv_txm4x4_1 = vp9_short_inv_walsh4x4_1_x8; cpi->mb.e_mbd.inv_txm4x4 = vp9_short_inv_walsh4x4_x8; + } else { + cpi->mb.e_mbd.inv_txm4x4_1 = vp9_short_idct4x4llm_1; + cpi->mb.e_mbd.inv_txm4x4 = vp9_short_idct4x4llm; } -#endif cpi->baseline_gf_interval = DEFAULT_GF_INTERVAL; @@ -2461,15 +2456,9 @@ static void update_reference_frames(VP9_COMP * const cpi) { } static void loopfilter_frame(VP9_COMP *cpi, VP9_COMMON *cm) { - if (cm->no_lpf) { + if (cm->no_lpf || cpi->mb.e_mbd.lossless) { cm->filter_level = 0; - } -#if CONFIG_LOSSLESS - else if (cpi->mb.e_mbd.lossless) { - cm->filter_level = 0; - } -#endif - else { + } else { struct vpx_usec_timer timer; vp9_clear_system_state(); @@ -2621,11 +2610,12 @@ static void encode_frame_to_data_rate(VP9_COMP *cpi, // For 2 Pass Only used where GF/ARF prediction quality // is above a threshold cpi->zbin_mode_boost = 0; - cpi->zbin_mode_boost_enabled = TRUE; -#if CONFIG_LOSSLESS + if (cpi->oxcf.lossless) cpi->zbin_mode_boost_enabled = FALSE; -#endif + else + cpi->zbin_mode_boost_enabled = TRUE; + if (cpi->gfu_boost <= 400) { cpi->zbin_mode_boost_enabled = FALSE; } |