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 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
94 | 94 |
95 typedef enum { | 95 typedef enum { |
96 USE_FULL_RD = 0, | 96 USE_FULL_RD = 0, |
97 USE_LARGESTALL, | 97 USE_LARGESTALL, |
98 USE_TX_8X8 | 98 USE_TX_8X8 |
99 } TX_SIZE_SEARCH_METHOD; | 99 } TX_SIZE_SEARCH_METHOD; |
100 | 100 |
101 typedef enum { | 101 typedef enum { |
102 NOT_IN_USE = 0, | 102 NOT_IN_USE = 0, |
103 RELAXED_NEIGHBORING_MIN_MAX = 1, | 103 RELAXED_NEIGHBORING_MIN_MAX = 1, |
104 CONSTRAIN_NEIGHBORING_MIN_MAX = 2, | 104 STRICT_NEIGHBORING_MIN_MAX = 2 |
105 STRICT_NEIGHBORING_MIN_MAX = 3 | |
106 } AUTO_MIN_MAX_MODE; | 105 } AUTO_MIN_MAX_MODE; |
107 | 106 |
108 typedef enum { | 107 typedef enum { |
109 // Try the full image with different values. | 108 // Try the full image with different values. |
110 LPF_PICK_FROM_FULL_IMAGE, | 109 LPF_PICK_FROM_FULL_IMAGE, |
111 // Try a small portion of the image with different values. | 110 // Try a small portion of the image with different values. |
112 LPF_PICK_FROM_SUBIMAGE, | 111 LPF_PICK_FROM_SUBIMAGE, |
113 // Estimate the level based on quantizer and frame type | 112 // Estimate the level based on quantizer and frame type |
114 LPF_PICK_FROM_Q, | 113 LPF_PICK_FROM_Q, |
115 // Pick 0 to disable LPF if LPF was enabled last frame | 114 // Pick 0 to disable LPF if LPF was enabled last frame |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
265 // Skip rectangular partition test when partition type none gives better | 264 // Skip rectangular partition test when partition type none gives better |
266 // rd than partition type split. | 265 // rd than partition type split. |
267 int less_rectangular_check; | 266 int less_rectangular_check; |
268 | 267 |
269 // Disable testing non square partitions. (eg 16x32) | 268 // Disable testing non square partitions. (eg 16x32) |
270 int use_square_partition_only; | 269 int use_square_partition_only; |
271 | 270 |
272 // Sets min and max partition sizes for this 64x64 region based on the | 271 // Sets min and max partition sizes for this 64x64 region based on the |
273 // same 64x64 in last encoded frame, and the left and above neighbor. | 272 // same 64x64 in last encoded frame, and the left and above neighbor. |
274 AUTO_MIN_MAX_MODE auto_min_max_partition_size; | 273 AUTO_MIN_MAX_MODE auto_min_max_partition_size; |
| 274 // Ensures the rd based auto partition search will always |
| 275 // go down at least to the specified level. |
| 276 BLOCK_SIZE rd_auto_partition_min_limit; |
275 | 277 |
276 // Min and max partition size we enable (block_size) as per auto | 278 // Min and max partition size we enable (block_size) as per auto |
277 // min max, but also used by adjust partitioning, and pick_partitioning. | 279 // min max, but also used by adjust partitioning, and pick_partitioning. |
278 BLOCK_SIZE default_min_partition_size; | 280 BLOCK_SIZE default_min_partition_size; |
279 BLOCK_SIZE default_max_partition_size; | 281 BLOCK_SIZE default_max_partition_size; |
280 | 282 |
281 // Whether or not we allow partitions one smaller or one greater than the last | 283 // Whether or not we allow partitions one smaller or one greater than the last |
282 // frame's partitioning. Only used if use_lastframe_partitioning is set. | 284 // frame's partitioning. Only used if use_lastframe_partitioning is set. |
283 int adjust_partitioning_from_last_frame; | 285 int adjust_partitioning_from_last_frame; |
284 | 286 |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
333 | 335 |
334 // A source variance threshold below which filter search is disabled | 336 // A source variance threshold below which filter search is disabled |
335 // Choose a very large value (UINT_MAX) to use 8-tap always | 337 // Choose a very large value (UINT_MAX) to use 8-tap always |
336 unsigned int disable_filter_search_var_thresh; | 338 unsigned int disable_filter_search_var_thresh; |
337 | 339 |
338 // These bit masks allow you to enable or disable intra modes for each | 340 // These bit masks allow you to enable or disable intra modes for each |
339 // transform size separately. | 341 // transform size separately. |
340 int intra_y_mode_mask[TX_SIZES]; | 342 int intra_y_mode_mask[TX_SIZES]; |
341 int intra_uv_mode_mask[TX_SIZES]; | 343 int intra_uv_mode_mask[TX_SIZES]; |
342 | 344 |
| 345 // These bit masks allow you to enable or disable intra modes for each |
| 346 // prediction block size separately. |
| 347 int intra_y_mode_bsize_mask[BLOCK_SIZES]; |
| 348 |
343 // This variable enables an early break out of mode testing if the model for | 349 // This variable enables an early break out of mode testing if the model for |
344 // rd built from the prediction signal indicates a value that's much | 350 // rd built from the prediction signal indicates a value that's much |
345 // higher than the best rd we've seen so far. | 351 // higher than the best rd we've seen so far. |
346 int use_rd_breakout; | 352 int use_rd_breakout; |
347 | 353 |
348 // This enables us to use an estimate for intra rd based on dc mode rather | 354 // This enables us to use an estimate for intra rd based on dc mode rather |
349 // than choosing an actual uv mode in the stage of encoding before the actual | 355 // than choosing an actual uv mode in the stage of encoding before the actual |
350 // final encode. | 356 // final encode. |
351 int use_uv_intra_rd_estimate; | 357 int use_uv_intra_rd_estimate; |
352 | 358 |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
414 struct VP9_COMP; | 420 struct VP9_COMP; |
415 | 421 |
416 void vp9_set_speed_features_framesize_independent(struct VP9_COMP *cpi); | 422 void vp9_set_speed_features_framesize_independent(struct VP9_COMP *cpi); |
417 void vp9_set_speed_features_framesize_dependent(struct VP9_COMP *cpi); | 423 void vp9_set_speed_features_framesize_dependent(struct VP9_COMP *cpi); |
418 | 424 |
419 #ifdef __cplusplus | 425 #ifdef __cplusplus |
420 } // extern "C" | 426 } // extern "C" |
421 #endif | 427 #endif |
422 | 428 |
423 #endif // VP9_ENCODER_VP9_SPEED_FEATURES_H_ | 429 #endif // VP9_ENCODER_VP9_SPEED_FEATURES_H_ |
OLD | NEW |