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

Side by Side Diff: source/libvpx/vp9/encoder/vp9_speed_features.h

Issue 592203002: libvpx: Pull from upstream (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/libvpx/
Patch Set: Created 6 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 | Annotate | Revision Log
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 #ifndef VP9_ENCODER_VP9_SPEED_FEATURES_H_ 11 #ifndef VP9_ENCODER_VP9_SPEED_FEATURES_H_
12 #define VP9_ENCODER_VP9_SPEED_FEATURES_H_ 12 #define VP9_ENCODER_VP9_SPEED_FEATURES_H_
13 13
14 #include "vp9/common/vp9_enums.h" 14 #include "vp9/common/vp9_enums.h"
15 15
16 #ifdef __cplusplus 16 #ifdef __cplusplus
17 extern "C" { 17 extern "C" {
18 #endif 18 #endif
19 19
20 enum {
21 INTRA_ALL = (1 << DC_PRED) |
22 (1 << V_PRED) | (1 << H_PRED) |
23 (1 << D45_PRED) | (1 << D135_PRED) |
24 (1 << D117_PRED) | (1 << D153_PRED) |
25 (1 << D207_PRED) | (1 << D63_PRED) |
26 (1 << TM_PRED),
27 INTRA_DC = (1 << DC_PRED),
28 INTRA_DC_TM = (1 << DC_PRED) | (1 << TM_PRED),
29 INTRA_DC_H_V = (1 << DC_PRED) | (1 << V_PRED) | (1 << H_PRED),
30 INTRA_DC_TM_H_V = (1 << DC_PRED) | (1 << TM_PRED) | (1 << V_PRED) |
31 (1 << H_PRED)
32 };
33
34 enum {
35 INTER_ALL = (1 << NEARESTMV) | (1 << NEARMV) | (1 << ZEROMV) | (1 << NEWMV),
36 INTER_NEAREST = (1 << NEARESTMV),
37 INTER_NEAREST_NEAR_NEW = (1 << NEARESTMV) | (1 << NEARMV) | (1 << NEWMV),
38 INTER_NEAREST_NEAR_ZERO = (1 << NEARESTMV) | (1 << NEARMV) | (1 << ZEROMV),
39 };
40
41 enum {
42 DISABLE_ALL_INTER_SPLIT = (1 << THR_COMP_GA) |
43 (1 << THR_COMP_LA) |
44 (1 << THR_ALTR) |
45 (1 << THR_GOLD) |
46 (1 << THR_LAST),
47
48 DISABLE_ALL_SPLIT = (1 << THR_INTRA) | DISABLE_ALL_INTER_SPLIT,
49
50 DISABLE_COMPOUND_SPLIT = (1 << THR_COMP_GA) | (1 << THR_COMP_LA),
51
52 LAST_AND_INTRA_SPLIT_ONLY = (1 << THR_COMP_GA) |
53 (1 << THR_COMP_LA) |
54 (1 << THR_ALTR) |
55 (1 << THR_GOLD)
56 };
57
20 typedef enum { 58 typedef enum {
21 DIAMOND = 0, 59 DIAMOND = 0,
22 NSTEP = 1, 60 NSTEP = 1,
23 HEX = 2, 61 HEX = 2,
24 BIGDIA = 3, 62 BIGDIA = 3,
25 SQUARE = 4, 63 SQUARE = 4,
26 FAST_HEX = 5, 64 FAST_HEX = 5,
27 FAST_DIAMOND = 6 65 FAST_DIAMOND = 6
28 } SEARCH_METHODS; 66 } SEARCH_METHODS;
29 67
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 } LPF_PICK_METHOD; 118 } LPF_PICK_METHOD;
81 119
82 typedef enum { 120 typedef enum {
83 // Terminate search early based on distortion so far compared to 121 // Terminate search early based on distortion so far compared to
84 // qp step, distortion in the neighborhood of the frame, etc. 122 // qp step, distortion in the neighborhood of the frame, etc.
85 FLAG_EARLY_TERMINATE = 1 << 0, 123 FLAG_EARLY_TERMINATE = 1 << 0,
86 124
87 // Skips comp inter modes if the best so far is an intra mode. 125 // Skips comp inter modes if the best so far is an intra mode.
88 FLAG_SKIP_COMP_BESTINTRA = 1 << 1, 126 FLAG_SKIP_COMP_BESTINTRA = 1 << 1,
89 127
90 // Skips comp inter modes if the best single intermode so far does
91 // not have the same reference as one of the two references being
92 // tested.
93 FLAG_SKIP_COMP_REFMISMATCH = 1 << 2,
94
95 // Skips oblique intra modes if the best so far is an inter mode. 128 // Skips oblique intra modes if the best so far is an inter mode.
96 FLAG_SKIP_INTRA_BESTINTER = 1 << 3, 129 FLAG_SKIP_INTRA_BESTINTER = 1 << 3,
97 130
98 // Skips oblique intra modes at angles 27, 63, 117, 153 if the best 131 // Skips oblique intra modes at angles 27, 63, 117, 153 if the best
99 // intra so far is not one of the neighboring directions. 132 // intra so far is not one of the neighboring directions.
100 FLAG_SKIP_INTRA_DIRMISMATCH = 1 << 4, 133 FLAG_SKIP_INTRA_DIRMISMATCH = 1 << 4,
101 134
102 // Skips intra modes other than DC_PRED if the source variance is small 135 // Skips intra modes other than DC_PRED if the source variance is small
103 FLAG_SKIP_INTRA_LOWVAR = 1 << 5, 136 FLAG_SKIP_INTRA_LOWVAR = 1 << 5,
104 } MODE_SEARCH_SKIP_LOGIC; 137 } MODE_SEARCH_SKIP_LOGIC;
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
278 // Disables sub 8x8 blocksizes in different scenarios: Choices are to disable 311 // Disables sub 8x8 blocksizes in different scenarios: Choices are to disable
279 // it always, to allow it for only Last frame and Intra, disable it for all 312 // it always, to allow it for only Last frame and Intra, disable it for all
280 // inter modes or to enable it always. 313 // inter modes or to enable it always.
281 int disable_split_mask; 314 int disable_split_mask;
282 315
283 // TODO(jingning): combine the related motion search speed features 316 // TODO(jingning): combine the related motion search speed features
284 // This allows us to use motion search at other sizes as a starting 317 // This allows us to use motion search at other sizes as a starting
285 // point for this motion search and limits the search range around it. 318 // point for this motion search and limits the search range around it.
286 int adaptive_motion_search; 319 int adaptive_motion_search;
287 320
321 int schedule_mode_search;
322
288 // Allows sub 8x8 modes to use the prediction filter that was determined 323 // Allows sub 8x8 modes to use the prediction filter that was determined
289 // best for 8x8 mode. If set to 0 we always re check all the filters for 324 // best for 8x8 mode. If set to 0 we always re check all the filters for
290 // sizes less than 8x8, 1 means we check all filter modes if no 8x8 filter 325 // sizes less than 8x8, 1 means we check all filter modes if no 8x8 filter
291 // was selected, and 2 means we use 8 tap if no 8x8 filter mode was selected. 326 // was selected, and 2 means we use 8 tap if no 8x8 filter mode was selected.
292 int adaptive_pred_interp_filter; 327 int adaptive_pred_interp_filter;
293 328
294 // Adaptive prediction mode search 329 // Adaptive prediction mode search
295 int adaptive_mode_search; 330 int adaptive_mode_search;
296 331
297 // Chessboard pattern prediction filter type search 332 // Chessboard pattern prediction filter type search
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
405 struct VP9_COMP; 440 struct VP9_COMP;
406 441
407 void vp9_set_speed_features(struct VP9_COMP *cpi); 442 void vp9_set_speed_features(struct VP9_COMP *cpi);
408 443
409 #ifdef __cplusplus 444 #ifdef __cplusplus
410 } // extern "C" 445 } // extern "C"
411 #endif 446 #endif
412 447
413 #endif // VP9_ENCODER_VP9_SPEED_FEATURES_H_ 448 #endif // VP9_ENCODER_VP9_SPEED_FEATURES_H_
414 449
OLDNEW
« no previous file with comments | « source/libvpx/vp9/encoder/vp9_segmentation.c ('k') | source/libvpx/vp9/encoder/vp9_speed_features.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698