OLD | NEW |
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 |
(...skipping 16 matching lines...) Expand all Loading... |
27 INTRA_DC = (1 << DC_PRED), | 27 INTRA_DC = (1 << DC_PRED), |
28 INTRA_DC_TM = (1 << DC_PRED) | (1 << TM_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), | 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) | | 30 INTRA_DC_TM_H_V = (1 << DC_PRED) | (1 << TM_PRED) | (1 << V_PRED) | |
31 (1 << H_PRED) | 31 (1 << H_PRED) |
32 }; | 32 }; |
33 | 33 |
34 enum { | 34 enum { |
35 INTER_ALL = (1 << NEARESTMV) | (1 << NEARMV) | (1 << ZEROMV) | (1 << NEWMV), | 35 INTER_ALL = (1 << NEARESTMV) | (1 << NEARMV) | (1 << ZEROMV) | (1 << NEWMV), |
36 INTER_NEAREST = (1 << NEARESTMV), | 36 INTER_NEAREST = (1 << NEARESTMV), |
| 37 INTER_NEAREST_NEW = (1 << NEARESTMV) | (1 << NEWMV), |
| 38 INTER_NEAREST_ZERO = (1 << NEARESTMV) | (1 << ZEROMV), |
| 39 INTER_NEAREST_NEW_ZERO = (1 << NEARESTMV) | (1 << ZEROMV) | (1 << NEWMV), |
37 INTER_NEAREST_NEAR_NEW = (1 << NEARESTMV) | (1 << NEARMV) | (1 << NEWMV), | 40 INTER_NEAREST_NEAR_NEW = (1 << NEARESTMV) | (1 << NEARMV) | (1 << NEWMV), |
38 INTER_NEAREST_NEAR_ZERO = (1 << NEARESTMV) | (1 << NEARMV) | (1 << ZEROMV), | 41 INTER_NEAREST_NEAR_ZERO = (1 << NEARESTMV) | (1 << NEARMV) | (1 << ZEROMV), |
39 }; | 42 }; |
40 | 43 |
41 enum { | 44 enum { |
42 DISABLE_ALL_INTER_SPLIT = (1 << THR_COMP_GA) | | 45 DISABLE_ALL_INTER_SPLIT = (1 << THR_COMP_GA) | |
43 (1 << THR_COMP_LA) | | 46 (1 << THR_COMP_LA) | |
44 (1 << THR_ALTR) | | 47 (1 << THR_ALTR) | |
45 (1 << THR_GOLD) | | 48 (1 << THR_GOLD) | |
46 (1 << THR_LAST), | 49 (1 << THR_LAST), |
(...skipping 24 matching lines...) Expand all Loading... |
71 // Allow recode for KF and exceeding maximum frame bandwidth. | 74 // Allow recode for KF and exceeding maximum frame bandwidth. |
72 ALLOW_RECODE_KFMAXBW = 1, | 75 ALLOW_RECODE_KFMAXBW = 1, |
73 // Allow recode only for KF/ARF/GF frames. | 76 // Allow recode only for KF/ARF/GF frames. |
74 ALLOW_RECODE_KFARFGF = 2, | 77 ALLOW_RECODE_KFARFGF = 2, |
75 // Allow recode for all frames based on bitrate constraints. | 78 // Allow recode for all frames based on bitrate constraints. |
76 ALLOW_RECODE = 3, | 79 ALLOW_RECODE = 3, |
77 } RECODE_LOOP_TYPE; | 80 } RECODE_LOOP_TYPE; |
78 | 81 |
79 typedef enum { | 82 typedef enum { |
80 SUBPEL_TREE = 0, | 83 SUBPEL_TREE = 0, |
81 SUBPEL_TREE_PRUNED = 1, | 84 SUBPEL_TREE_PRUNED = 1, // Prunes 1/2-pel searches |
| 85 SUBPEL_TREE_PRUNED_MORE = 2, // Prunes 1/2-pel searches more aggressively |
| 86 SUBPEL_TREE_PRUNED_EVENMORE = 3, // Prunes 1/2- and 1/4-pel searches |
82 // Other methods to come | 87 // Other methods to come |
83 } SUBPEL_SEARCH_METHODS; | 88 } SUBPEL_SEARCH_METHODS; |
84 | 89 |
85 typedef enum { | 90 typedef enum { |
86 NO_MOTION_THRESHOLD = 0, | 91 NO_MOTION_THRESHOLD = 0, |
87 LOW_MOTION_THRESHOLD = 7 | 92 LOW_MOTION_THRESHOLD = 7 |
88 } MOTION_THRESHOLD; | 93 } MOTION_THRESHOLD; |
89 | 94 |
90 typedef enum { | 95 typedef enum { |
91 LAST_FRAME_PARTITION_OFF = 0, | 96 LAST_FRAME_PARTITION_OFF = 0, |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
137 } MODE_SEARCH_SKIP_LOGIC; | 142 } MODE_SEARCH_SKIP_LOGIC; |
138 | 143 |
139 typedef enum { | 144 typedef enum { |
140 FLAG_SKIP_EIGHTTAP = 1 << EIGHTTAP, | 145 FLAG_SKIP_EIGHTTAP = 1 << EIGHTTAP, |
141 FLAG_SKIP_EIGHTTAP_SMOOTH = 1 << EIGHTTAP_SMOOTH, | 146 FLAG_SKIP_EIGHTTAP_SMOOTH = 1 << EIGHTTAP_SMOOTH, |
142 FLAG_SKIP_EIGHTTAP_SHARP = 1 << EIGHTTAP_SHARP, | 147 FLAG_SKIP_EIGHTTAP_SHARP = 1 << EIGHTTAP_SHARP, |
143 } INTERP_FILTER_MASK; | 148 } INTERP_FILTER_MASK; |
144 | 149 |
145 typedef enum { | 150 typedef enum { |
146 // Search partitions using RD/NONRD criterion | 151 // Search partitions using RD/NONRD criterion |
147 SEARCH_PARTITION = 0, | 152 SEARCH_PARTITION, |
148 | 153 |
149 // Always use a fixed size partition | 154 // Always use a fixed size partition |
150 FIXED_PARTITION = 1, | 155 FIXED_PARTITION, |
151 | 156 |
152 // Use a fixed size partition in every 64X64 SB, where the size is | 157 REFERENCE_PARTITION, |
153 // determined based on source variance | |
154 VAR_BASED_FIXED_PARTITION = 2, | |
155 | |
156 REFERENCE_PARTITION = 3, | |
157 | 158 |
158 // Use an arbitrary partitioning scheme based on source variance within | 159 // Use an arbitrary partitioning scheme based on source variance within |
159 // a 64X64 SB | 160 // a 64X64 SB |
160 VAR_BASED_PARTITION, | 161 VAR_BASED_PARTITION, |
161 | 162 |
162 // Use non-fixed partitions based on source variance | 163 // Use non-fixed partitions based on source variance |
163 SOURCE_VAR_BASED_PARTITION | 164 SOURCE_VAR_BASED_PARTITION |
164 } PARTITION_SEARCH_TYPE; | 165 } PARTITION_SEARCH_TYPE; |
165 | 166 |
166 typedef enum { | 167 typedef enum { |
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
428 | 429 |
429 // adaptive interp_filter search to allow skip of certain filter types. | 430 // adaptive interp_filter search to allow skip of certain filter types. |
430 int adaptive_interp_filter_search; | 431 int adaptive_interp_filter_search; |
431 | 432 |
432 // mask for skip evaluation of certain interp_filter type. | 433 // mask for skip evaluation of certain interp_filter type. |
433 INTERP_FILTER_MASK interp_filter_search_mask; | 434 INTERP_FILTER_MASK interp_filter_search_mask; |
434 | 435 |
435 // Partition search early breakout thresholds. | 436 // Partition search early breakout thresholds. |
436 int64_t partition_search_breakout_dist_thr; | 437 int64_t partition_search_breakout_dist_thr; |
437 int partition_search_breakout_rate_thr; | 438 int partition_search_breakout_rate_thr; |
| 439 |
| 440 // Allow skipping partition search for still image frame |
| 441 int allow_partition_search_skip; |
438 } SPEED_FEATURES; | 442 } SPEED_FEATURES; |
439 | 443 |
440 struct VP9_COMP; | 444 struct VP9_COMP; |
441 | 445 |
442 void vp9_set_speed_features(struct VP9_COMP *cpi); | 446 void vp9_set_speed_features(struct VP9_COMP *cpi); |
443 | 447 |
444 #ifdef __cplusplus | 448 #ifdef __cplusplus |
445 } // extern "C" | 449 } // extern "C" |
446 #endif | 450 #endif |
447 | 451 |
448 #endif // VP9_ENCODER_VP9_SPEED_FEATURES_H_ | 452 #endif // VP9_ENCODER_VP9_SPEED_FEATURES_H_ |
449 | 453 |
OLD | NEW |