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 22 matching lines...) Expand all Loading... |
33 // Allow recode for KF and exceeding maximum frame bandwidth. | 33 // Allow recode for KF and exceeding maximum frame bandwidth. |
34 ALLOW_RECODE_KFMAXBW = 1, | 34 ALLOW_RECODE_KFMAXBW = 1, |
35 // Allow recode only for KF/ARF/GF frames. | 35 // Allow recode only for KF/ARF/GF frames. |
36 ALLOW_RECODE_KFARFGF = 2, | 36 ALLOW_RECODE_KFARFGF = 2, |
37 // Allow recode for all frames based on bitrate constraints. | 37 // Allow recode for all frames based on bitrate constraints. |
38 ALLOW_RECODE = 3, | 38 ALLOW_RECODE = 3, |
39 } RECODE_LOOP_TYPE; | 39 } RECODE_LOOP_TYPE; |
40 | 40 |
41 typedef enum { | 41 typedef enum { |
42 SUBPEL_TREE = 0, | 42 SUBPEL_TREE = 0, |
| 43 SUBPEL_TREE_PRUNED = 1, |
43 // Other methods to come | 44 // Other methods to come |
44 } SUBPEL_SEARCH_METHODS; | 45 } SUBPEL_SEARCH_METHODS; |
45 | 46 |
46 typedef enum { | 47 typedef enum { |
47 NO_MOTION_THRESHOLD = 0, | 48 NO_MOTION_THRESHOLD = 0, |
48 LOW_MOTION_THRESHOLD = 7 | 49 LOW_MOTION_THRESHOLD = 7 |
49 } MOTION_THRESHOLD; | 50 } MOTION_THRESHOLD; |
50 | 51 |
51 typedef enum { | 52 typedef enum { |
52 LAST_FRAME_PARTITION_OFF = 0, | 53 LAST_FRAME_PARTITION_OFF = 0, |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
96 | 97 |
97 // Skips oblique intra modes at angles 27, 63, 117, 153 if the best | 98 // Skips oblique intra modes at angles 27, 63, 117, 153 if the best |
98 // intra so far is not one of the neighboring directions. | 99 // intra so far is not one of the neighboring directions. |
99 FLAG_SKIP_INTRA_DIRMISMATCH = 1 << 4, | 100 FLAG_SKIP_INTRA_DIRMISMATCH = 1 << 4, |
100 | 101 |
101 // Skips intra modes other than DC_PRED if the source variance is small | 102 // Skips intra modes other than DC_PRED if the source variance is small |
102 FLAG_SKIP_INTRA_LOWVAR = 1 << 5, | 103 FLAG_SKIP_INTRA_LOWVAR = 1 << 5, |
103 } MODE_SEARCH_SKIP_LOGIC; | 104 } MODE_SEARCH_SKIP_LOGIC; |
104 | 105 |
105 typedef enum { | 106 typedef enum { |
| 107 FLAG_SKIP_EIGHTTAP = 1 << EIGHTTAP, |
| 108 FLAG_SKIP_EIGHTTAP_SMOOTH = 1 << EIGHTTAP_SMOOTH, |
| 109 FLAG_SKIP_EIGHTTAP_SHARP = 1 << EIGHTTAP_SHARP, |
| 110 } INTERP_FILTER_MASK; |
| 111 |
| 112 typedef enum { |
106 // Search partitions using RD/NONRD criterion | 113 // Search partitions using RD/NONRD criterion |
107 SEARCH_PARTITION = 0, | 114 SEARCH_PARTITION = 0, |
108 | 115 |
109 // Always use a fixed size partition | 116 // Always use a fixed size partition |
110 FIXED_PARTITION = 1, | 117 FIXED_PARTITION = 1, |
111 | 118 |
112 // Use a fixed size partition in every 64X64 SB, where the size is | 119 // Use a fixed size partition in every 64X64 SB, where the size is |
113 // determined based on source variance | 120 // determined based on source variance |
114 VAR_BASED_FIXED_PARTITION = 2, | 121 VAR_BASED_FIXED_PARTITION = 2, |
115 | 122 |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
277 // This allows us to use motion search at other sizes as a starting | 284 // This allows us to use motion search at other sizes as a starting |
278 // point for this motion search and limits the search range around it. | 285 // point for this motion search and limits the search range around it. |
279 int adaptive_motion_search; | 286 int adaptive_motion_search; |
280 | 287 |
281 // Allows sub 8x8 modes to use the prediction filter that was determined | 288 // Allows sub 8x8 modes to use the prediction filter that was determined |
282 // best for 8x8 mode. If set to 0 we always re check all the filters for | 289 // best for 8x8 mode. If set to 0 we always re check all the filters for |
283 // sizes less than 8x8, 1 means we check all filter modes if no 8x8 filter | 290 // sizes less than 8x8, 1 means we check all filter modes if no 8x8 filter |
284 // was selected, and 2 means we use 8 tap if no 8x8 filter mode was selected. | 291 // was selected, and 2 means we use 8 tap if no 8x8 filter mode was selected. |
285 int adaptive_pred_interp_filter; | 292 int adaptive_pred_interp_filter; |
286 | 293 |
| 294 // Adaptive prediction mode search |
| 295 int adaptive_mode_search; |
| 296 |
287 // Chessboard pattern prediction filter type search | 297 // Chessboard pattern prediction filter type search |
288 int cb_pred_filter_search; | 298 int cb_pred_filter_search; |
289 | 299 |
290 int cb_partition_search; | 300 int cb_partition_search; |
291 | 301 |
292 int motion_field_mode_search; | 302 int motion_field_mode_search; |
293 | 303 |
294 int alt_ref_search_fp; | 304 int alt_ref_search_fp; |
295 | 305 |
296 // Fast quantization process path | 306 // Fast quantization process path |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
373 | 383 |
374 // In real time encoding, increase the threshold for NEWMV. | 384 // In real time encoding, increase the threshold for NEWMV. |
375 int elevate_newmv_thresh; | 385 int elevate_newmv_thresh; |
376 | 386 |
377 // default interp filter choice | 387 // default interp filter choice |
378 INTERP_FILTER default_interp_filter; | 388 INTERP_FILTER default_interp_filter; |
379 | 389 |
380 // Early termination in transform size search, which only applies while | 390 // Early termination in transform size search, which only applies while |
381 // tx_size_search_method is USE_FULL_RD. | 391 // tx_size_search_method is USE_FULL_RD. |
382 int tx_size_search_breakout; | 392 int tx_size_search_breakout; |
| 393 |
| 394 // adaptive interp_filter search to allow skip of certain filter types. |
| 395 int adaptive_interp_filter_search; |
| 396 |
| 397 // mask for skip evaluation of certain interp_filter type. |
| 398 INTERP_FILTER_MASK interp_filter_search_mask; |
| 399 |
| 400 // Partition search early breakout thresholds. |
| 401 int64_t partition_search_breakout_dist_thr; |
| 402 int partition_search_breakout_rate_thr; |
383 } SPEED_FEATURES; | 403 } SPEED_FEATURES; |
384 | 404 |
385 struct VP9_COMP; | 405 struct VP9_COMP; |
386 | 406 |
387 void vp9_set_speed_features(struct VP9_COMP *cpi); | 407 void vp9_set_speed_features(struct VP9_COMP *cpi); |
388 | 408 |
389 #ifdef __cplusplus | 409 #ifdef __cplusplus |
390 } // extern "C" | 410 } // extern "C" |
391 #endif | 411 #endif |
392 | 412 |
393 #endif // VP9_ENCODER_VP9_SPEED_FEATURES_H_ | 413 #endif // VP9_ENCODER_VP9_SPEED_FEATURES_H_ |
394 | 414 |
OLD | NEW |