]> granicus.if.org Git - libvpx/blob - vp9/encoder/vp9_rdopt.h
Merge "[svc] Make size of empty frame to be 16x16 all the time"
[libvpx] / vp9 / encoder / vp9_rdopt.h
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 unsigned int vp9_get_sby_perpixel_variance(VP9_COMP *cpi,
33                                            const struct buf_2d *ref,
34                                            BLOCK_SIZE bs);
35 #if CONFIG_VP9_HIGHBITDEPTH
36 unsigned int vp9_high_get_sby_perpixel_variance(VP9_COMP *cpi,
37                                                 const struct buf_2d *ref,
38                                                 BLOCK_SIZE bs, int bd);
39 #endif
40
41 void vp9_rd_pick_inter_mode_sb(struct VP9_COMP *cpi,
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
49 void vp9_rd_pick_inter_mode_sb_seg_skip(struct VP9_COMP *cpi,
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
57 void vp9_rd_pick_inter_mode_sub8x8(struct VP9_COMP *cpi,
58                                    struct TileDataEnc *tile_data,
59                                    struct macroblock *x,
60                                    int mi_row, int mi_col,
61                                    struct RD_COST *rd_cost,
62                                    BLOCK_SIZE bsize, PICK_MODE_CONTEXT *ctx,
63                                    int64_t best_rd_so_far);
64 #ifdef __cplusplus
65 }  // extern "C"
66 #endif
67
68 #endif  // VP9_ENCODER_VP9_RDOPT_H_