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 20extern "C" { 21#endif 22 23struct TileInfo; 24struct VP9_COMP; 25struct macroblock; 26 27void vp9_rd_pick_intra_mode_sb(struct VP9_COMP *cpi, struct macroblock *x, 28 int *r, int64_t *d, BLOCK_SIZE bsize, 29 PICK_MODE_CONTEXT *ctx, int64_t best_rd); 30 31int64_t vp9_rd_pick_inter_mode_sb(struct VP9_COMP *cpi, struct macroblock *x, 32 const struct TileInfo *const tile, 33 int mi_row, int mi_col, 34 int *returnrate, 35 int64_t *returndistortion, 36 BLOCK_SIZE bsize, 37 PICK_MODE_CONTEXT *ctx, 38 int64_t best_rd_so_far); 39 40int64_t vp9_rd_pick_inter_mode_sb_seg_skip(struct VP9_COMP *cpi, 41 struct macroblock *x, 42 int *returnrate, 43 int64_t *returndistortion, 44 BLOCK_SIZE bsize, 45 PICK_MODE_CONTEXT *ctx, 46 int64_t best_rd_so_far); 47 48int64_t vp9_rd_pick_inter_mode_sub8x8(struct VP9_COMP *cpi, 49 struct macroblock *x, 50 const struct TileInfo *const tile, 51 int mi_row, int mi_col, 52 int *returnrate, 53 int64_t *returndistortion, 54 BLOCK_SIZE bsize, 55 PICK_MODE_CONTEXT *ctx, 56 int64_t best_rd_so_far); 57 58#ifdef __cplusplus 59} // extern "C" 60#endif 61 62#endif // VP9_ENCODER_VP9_RDOPT_H_ 63