summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_onyx_if.c
diff options
context:
space:
mode:
authorYaowu Xu <yaowu@google.com>2013-02-20 12:27:26 -0800
committerGerrit Code Review <gerrit@gerrit.golo.chromium.org>2013-02-20 12:27:26 -0800
commit441f24de3d632abdaae3b8982bfbc7346c16f2b5 (patch)
treec97c1fd18c0036d3c8eabfa76b398eae739b48d1 /vp9/encoder/vp9_onyx_if.c
parentef01b956d88e68a4cb66b94d6a99a46c6909fa1a (diff)
parentd262e26cc748ae99b18cd151f794c575b1c8fc71 (diff)
downloadlibvpx-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.c36
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;
}