Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(101)

Side by Side Diff: source/libvpx/vp8/encoder/pickinter.c

Issue 1339513003: libvpx: Pull from upstream (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/libvpx.git@master
Patch Set: Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « source/libvpx/vp8/encoder/onyx_if.c ('k') | source/libvpx/vp8/vp8_cx_iface.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved. 2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
11 11
12 #include <limits.h> 12 #include <limits.h>
13 #include "vpx_config.h" 13 #include "vpx_config.h"
14 #include "./vpx_dsp_rtcd.h" 14 #include "./vpx_dsp_rtcd.h"
15 #include "onyx_int.h" 15 #include "onyx_int.h"
16 #include "modecosts.h" 16 #include "modecosts.h"
17 #include "encodeintra.h" 17 #include "encodeintra.h"
18 #include "vp8/common/common.h" 18 #include "vp8/common/common.h"
19 #include "vp8/common/entropymode.h" 19 #include "vp8/common/entropymode.h"
20 #include "pickinter.h" 20 #include "pickinter.h"
21 #include "vp8/common/findnearmv.h" 21 #include "vp8/common/findnearmv.h"
22 #include "encodemb.h" 22 #include "encodemb.h"
23 #include "vp8/common/reconinter.h" 23 #include "vp8/common/reconinter.h"
24 #include "vp8/common/reconintra4x4.h" 24 #include "vp8/common/reconintra4x4.h"
25 #include "vpx_dsp/variance.h" 25 #include "vpx_dsp/variance.h"
26 #include "mcomp.h" 26 #include "mcomp.h"
27 #include "rdopt.h" 27 #include "rdopt.h"
28 #include "vpx_dsp/vpx_dsp_common.h"
28 #include "vpx_mem/vpx_mem.h" 29 #include "vpx_mem/vpx_mem.h"
29 #if CONFIG_TEMPORAL_DENOISING 30 #if CONFIG_TEMPORAL_DENOISING
30 #include "denoising.h" 31 #include "denoising.h"
31 #endif 32 #endif
32 33
33 #ifdef SPEEDSTATS 34 #ifdef SPEEDSTATS
34 extern unsigned int cnt_pm; 35 extern unsigned int cnt_pm;
35 #endif 36 #endif
36 37
37 extern const int vp8_ref_frame_order[MAX_MODES]; 38 extern const int vp8_ref_frame_order[MAX_MODES];
(...skipping 788 matching lines...) Expand 10 before | Expand all | Expand 10 after
826 x->src.v_buffer[4 * x->src.uv_stride + 3] + 827 x->src.v_buffer[4 * x->src.uv_stride + 3] +
827 x->src.v_buffer[4 * x->src.uv_stride + 4]) >> 2; 828 x->src.v_buffer[4 * x->src.uv_stride + 4]) >> 2;
828 x->is_skin = 0; 829 x->is_skin = 0;
829 if (!cpi->oxcf.screen_content_mode) 830 if (!cpi->oxcf.screen_content_mode)
830 x->is_skin = is_skin_color(y, cb, cr); 831 x->is_skin = is_skin_color(y, cb, cr);
831 } 832 }
832 #if CONFIG_TEMPORAL_DENOISING 833 #if CONFIG_TEMPORAL_DENOISING
833 if (cpi->oxcf.noise_sensitivity) { 834 if (cpi->oxcf.noise_sensitivity) {
834 // Under aggressive denoising mode, should we use skin map to reduce denoi ser 835 // Under aggressive denoising mode, should we use skin map to reduce denoi ser
835 // and ZEROMV bias? Will need to revisit the accuracy of this detection fo r 836 // and ZEROMV bias? Will need to revisit the accuracy of this detection fo r
836 // very noisy input. For now keep this as is (i.e., don't turn it off). 837 // very noisy input. For now keep this as is (i.e., don't turn it off).
837 // if (cpi->denoiser.denoiser_mode == kDenoiserOnYUVAggressive) 838 // if (cpi->denoiser.denoiser_mode == kDenoiserOnYUVAggressive)
838 // x->is_skin = 0; 839 // x->is_skin = 0;
839 } 840 }
840 #endif 841 #endif
841 842
842 mode_mv = mode_mv_sb[sign_bias]; 843 mode_mv = mode_mv_sb[sign_bias];
843 best_ref_mv.as_int = 0; 844 best_ref_mv.as_int = 0;
844 memset(mode_mv_sb, 0, sizeof(mode_mv_sb)); 845 memset(mode_mv_sb, 0, sizeof(mode_mv_sb));
845 memset(&best_mbmode, 0, sizeof(best_mbmode)); 846 memset(&best_mbmode, 0, sizeof(best_mbmode));
846 847
(...skipping 29 matching lines...) Expand all
876 /* Count of the number of MBs tested so far this frame */ 877 /* Count of the number of MBs tested so far this frame */
877 x->mbs_tested_so_far++; 878 x->mbs_tested_so_far++;
878 879
879 *returnintra = INT_MAX; 880 *returnintra = INT_MAX;
880 x->skip = 0; 881 x->skip = 0;
881 882
882 x->e_mbd.mode_info_context->mbmi.ref_frame = INTRA_FRAME; 883 x->e_mbd.mode_info_context->mbmi.ref_frame = INTRA_FRAME;
883 884
884 /* If the frame has big static background and current MB is in low 885 /* If the frame has big static background and current MB is in low
885 * motion area, its mode decision is biased to ZEROMV mode. 886 * motion area, its mode decision is biased to ZEROMV mode.
886 * No adjustment if cpu_used is <= -12 (i.e., cpi->Speed >= 12). 887 * No adjustment if cpu_used is <= -12 (i.e., cpi->Speed >= 12).
887 * At such speed settings, ZEROMV is already heavily favored. 888 * At such speed settings, ZEROMV is already heavily favored.
888 */ 889 */
889 if (cpi->Speed < 12) { 890 if (cpi->Speed < 12) {
890 calculate_zeromv_rd_adjustment(cpi, x, &rd_adjustment); 891 calculate_zeromv_rd_adjustment(cpi, x, &rd_adjustment);
891 } 892 }
892 893
893 #if CONFIG_TEMPORAL_DENOISING 894 #if CONFIG_TEMPORAL_DENOISING
894 if (cpi->oxcf.noise_sensitivity) { 895 if (cpi->oxcf.noise_sensitivity) {
895 rd_adjustment = (int)(rd_adjustment * 896 rd_adjustment = (int)(rd_adjustment *
896 cpi->denoiser.denoise_pars.pickmode_mv_bias / 100); 897 cpi->denoiser.denoise_pars.pickmode_mv_bias / 100);
(...skipping 654 matching lines...) Expand 10 before | Expand all | Expand 10 after
1551 error4x4 = pick_intra4x4mby_modes(x, &rate, 1552 error4x4 = pick_intra4x4mby_modes(x, &rate,
1552 &best_sse); 1553 &best_sse);
1553 if (error4x4 < error16x16) 1554 if (error4x4 < error16x16)
1554 { 1555 {
1555 xd->mode_info_context->mbmi.mode = B_PRED; 1556 xd->mode_info_context->mbmi.mode = B_PRED;
1556 best_rate = rate; 1557 best_rate = rate;
1557 } 1558 }
1558 1559
1559 *rate_ = best_rate; 1560 *rate_ = best_rate;
1560 } 1561 }
OLDNEW
« no previous file with comments | « source/libvpx/vp8/encoder/onyx_if.c ('k') | source/libvpx/vp8/vp8_cx_iface.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698