• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
11 #ifndef VP9_ENCODER_VP9_RDOPT_H_
12 #define VP9_ENCODER_VP9_RDOPT_H_
13 
14 #include "vp9/common/vp9_blockd.h"
15 
16 #include "vp9/encoder/vp9_block.h"
17 #include "vp9/encoder/vp9_context_tree.h"
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 
23 struct TileInfo;
24 struct VP9_COMP;
25 struct macroblock;
26 struct RD_COST;
27 
28 void vp9_rd_pick_intra_mode_sb(struct VP9_COMP *cpi, struct macroblock *x,
29                                struct RD_COST *rd_cost, BLOCK_SIZE bsize,
30                                PICK_MODE_CONTEXT *ctx, int64_t best_rd);
31 
32 void vp9_rd_pick_inter_mode_sb(struct VP9_COMP *cpi,
33                                struct TileDataEnc *tile_data,
34                                struct macroblock *x, int mi_row, int mi_col,
35                                struct RD_COST *rd_cost, BLOCK_SIZE bsize,
36                                PICK_MODE_CONTEXT *ctx, int64_t best_rd_so_far);
37 
38 void vp9_rd_pick_inter_mode_sb_seg_skip(
39     struct VP9_COMP *cpi, struct TileDataEnc *tile_data, struct macroblock *x,
40     struct RD_COST *rd_cost, BLOCK_SIZE bsize, PICK_MODE_CONTEXT *ctx,
41     int64_t best_rd_so_far);
42 
43 int vp9_internal_image_edge(struct VP9_COMP *cpi);
44 int vp9_active_h_edge(struct VP9_COMP *cpi, int mi_row, int mi_step);
45 int vp9_active_v_edge(struct VP9_COMP *cpi, int mi_col, int mi_step);
46 int vp9_active_edge_sb(struct VP9_COMP *cpi, int mi_row, int mi_col);
47 
48 void vp9_rd_pick_inter_mode_sub8x8(struct VP9_COMP *cpi,
49                                    struct TileDataEnc *tile_data,
50                                    struct macroblock *x, int mi_row, int mi_col,
51                                    struct RD_COST *rd_cost, BLOCK_SIZE bsize,
52                                    PICK_MODE_CONTEXT *ctx,
53                                    int64_t best_rd_so_far);
54 
55 #ifdef __cplusplus
56 }  // extern "C"
57 #endif
58 
59 #endif  // VP9_ENCODER_VP9_RDOPT_H_
60