Jingning Han | 3ee6db6 | 2015-08-05 19:00:31 -0700 | [diff] [blame] | 1 | /* |
| 2 | * Copyright (c) 2010 The WebM project authors. All Rights Reserved. |
| 3 | * |
| 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 |
| 6 | * tree. An additional intellectual property rights grant can be found |
| 7 | * in the file PATENTS. All contributing project authors may |
| 8 | * be found in the AUTHORS file in the root of the source tree. |
| 9 | */ |
| 10 | |
Yaowu Xu | 2dcefd9 | 2015-08-13 09:25:39 -0700 | [diff] [blame] | 11 | #ifndef VP10_ENCODER_RDOPT_H_ |
| 12 | #define VP10_ENCODER_RDOPT_H_ |
Jingning Han | 3ee6db6 | 2015-08-05 19:00:31 -0700 | [diff] [blame] | 13 | |
Jingning Han | 54d66ef | 2015-08-06 21:14:07 -0700 | [diff] [blame] | 14 | #include "vp10/common/blockd.h" |
Jingning Han | 3ee6db6 | 2015-08-05 19:00:31 -0700 | [diff] [blame] | 15 | |
Jingning Han | 54d66ef | 2015-08-06 21:14:07 -0700 | [diff] [blame] | 16 | #include "vp10/encoder/block.h" |
| 17 | #include "vp10/encoder/context_tree.h" |
Jingning Han | 3ee6db6 | 2015-08-05 19:00:31 -0700 | [diff] [blame] | 18 | |
| 19 | #ifdef __cplusplus |
| 20 | extern "C" { |
| 21 | #endif |
| 22 | |
| 23 | struct TileInfo; |
Yaowu Xu | 26a9afc | 2015-08-13 09:42:27 -0700 | [diff] [blame] | 24 | struct VP10_COMP; |
Jingning Han | 3ee6db6 | 2015-08-05 19:00:31 -0700 | [diff] [blame] | 25 | struct macroblock; |
| 26 | struct RD_COST; |
| 27 | |
Yaowu Xu | 26a9afc | 2015-08-13 09:42:27 -0700 | [diff] [blame] | 28 | void vp10_rd_pick_intra_mode_sb(struct VP10_COMP *cpi, struct macroblock *x, |
Jingning Han | 3ee6db6 | 2015-08-05 19:00:31 -0700 | [diff] [blame] | 29 | struct RD_COST *rd_cost, BLOCK_SIZE bsize, |
| 30 | PICK_MODE_CONTEXT *ctx, int64_t best_rd); |
| 31 | |
Yaowu Xu | 26a9afc | 2015-08-13 09:42:27 -0700 | [diff] [blame] | 32 | unsigned int vp10_get_sby_perpixel_variance(VP10_COMP *cpi, |
Jingning Han | 3ee6db6 | 2015-08-05 19:00:31 -0700 | [diff] [blame] | 33 | const struct buf_2d *ref, |
| 34 | BLOCK_SIZE bs); |
Yaowu Xu | 3246fc0 | 2016-01-20 16:13:04 -0800 | [diff] [blame^] | 35 | #if CONFIG_VPX_HIGHBITDEPTH |
Yaowu Xu | 26a9afc | 2015-08-13 09:42:27 -0700 | [diff] [blame] | 36 | unsigned int vp10_high_get_sby_perpixel_variance(VP10_COMP *cpi, |
Jingning Han | 3ee6db6 | 2015-08-05 19:00:31 -0700 | [diff] [blame] | 37 | const struct buf_2d *ref, |
| 38 | BLOCK_SIZE bs, int bd); |
| 39 | #endif |
| 40 | |
Yaowu Xu | 26a9afc | 2015-08-13 09:42:27 -0700 | [diff] [blame] | 41 | void vp10_rd_pick_inter_mode_sb(struct VP10_COMP *cpi, |
Jingning Han | 3ee6db6 | 2015-08-05 19:00:31 -0700 | [diff] [blame] | 42 | struct TileDataEnc *tile_data, |
| 43 | struct macroblock *x, |
| 44 | int mi_row, int mi_col, |
| 45 | struct RD_COST *rd_cost, |
| 46 | BLOCK_SIZE bsize, PICK_MODE_CONTEXT *ctx, |
| 47 | int64_t best_rd_so_far); |
| 48 | |
Yaowu Xu | 26a9afc | 2015-08-13 09:42:27 -0700 | [diff] [blame] | 49 | void vp10_rd_pick_inter_mode_sb_seg_skip(struct VP10_COMP *cpi, |
Jingning Han | 3ee6db6 | 2015-08-05 19:00:31 -0700 | [diff] [blame] | 50 | struct TileDataEnc *tile_data, |
| 51 | struct macroblock *x, |
| 52 | struct RD_COST *rd_cost, |
| 53 | BLOCK_SIZE bsize, |
| 54 | PICK_MODE_CONTEXT *ctx, |
| 55 | int64_t best_rd_so_far); |
| 56 | |
Yaowu Xu | 26a9afc | 2015-08-13 09:42:27 -0700 | [diff] [blame] | 57 | int vp10_internal_image_edge(struct VP10_COMP *cpi); |
| 58 | int vp10_active_h_edge(struct VP10_COMP *cpi, int mi_row, int mi_step); |
| 59 | int vp10_active_v_edge(struct VP10_COMP *cpi, int mi_col, int mi_step); |
| 60 | int vp10_active_edge_sb(struct VP10_COMP *cpi, int mi_row, int mi_col); |
Jingning Han | 3ee6db6 | 2015-08-05 19:00:31 -0700 | [diff] [blame] | 61 | |
Yaowu Xu | 26a9afc | 2015-08-13 09:42:27 -0700 | [diff] [blame] | 62 | void vp10_rd_pick_inter_mode_sub8x8(struct VP10_COMP *cpi, |
Jingning Han | 3ee6db6 | 2015-08-05 19:00:31 -0700 | [diff] [blame] | 63 | struct TileDataEnc *tile_data, |
| 64 | struct macroblock *x, |
| 65 | int mi_row, int mi_col, |
| 66 | struct RD_COST *rd_cost, |
| 67 | BLOCK_SIZE bsize, PICK_MODE_CONTEXT *ctx, |
| 68 | int64_t best_rd_so_far); |
| 69 | |
| 70 | #ifdef __cplusplus |
| 71 | } // extern "C" |
| 72 | #endif |
| 73 | |
Yaowu Xu | 2dcefd9 | 2015-08-13 09:25:39 -0700 | [diff] [blame] | 74 | #endif // VP10_ENCODER_RDOPT_H_ |