summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_rdopt.h
diff options
context:
space:
mode:
authorJingning Han <jingning@google.com>2014-10-09 12:32:56 -0700
committerJingning Han <jingning@google.com>2014-10-13 14:27:16 -0700
commit811cef97c979d10d08a82c580cfbfb82484bc55d (patch)
treed0372c6b8e1a47701cd85e2a2707a57d4a5d74a9 /vp9/encoder/vp9_rdopt.h
parent29771770c1298fdd2b54c1ad6eb0af98aaf7c22a (diff)
downloadlibvpx-811cef97c979d10d08a82c580cfbfb82484bc55d.tar
libvpx-811cef97c979d10d08a82c580cfbfb82484bc55d.tar.gz
libvpx-811cef97c979d10d08a82c580cfbfb82484bc55d.tar.bz2
libvpx-811cef97c979d10d08a82c580cfbfb82484bc55d.zip
Refactor rate distortion cost structure
This commit makes a struct that contains rate value, distortion value, and the rate-distortion cost. The goal is to provide a better interface for rate-distortion related operation. It is first used in rd_pick_partition and saves a few RDCOST calculations. Change-Id: I1a6ab7b35282d3c80195af59b6810e577544691f
Diffstat (limited to 'vp9/encoder/vp9_rdopt.h')
-rw-r--r--vp9/encoder/vp9_rdopt.h18
1 files changed, 7 insertions, 11 deletions
diff --git a/vp9/encoder/vp9_rdopt.h b/vp9/encoder/vp9_rdopt.h
index 50cb108dd..535c03df6 100644
--- a/vp9/encoder/vp9_rdopt.h
+++ b/vp9/encoder/vp9_rdopt.h
@@ -23,24 +23,22 @@ extern "C" {
struct TileInfo;
struct VP9_COMP;
struct macroblock;
+struct RD_COST;
void vp9_rd_pick_intra_mode_sb(struct VP9_COMP *cpi, struct macroblock *x,
- int *r, int64_t *d, BLOCK_SIZE bsize,
+ struct RD_COST *rd_cost, BLOCK_SIZE bsize,
PICK_MODE_CONTEXT *ctx, int64_t best_rd);
int64_t vp9_rd_pick_inter_mode_sb(struct VP9_COMP *cpi, struct macroblock *x,
const struct TileInfo *const tile,
int mi_row, int mi_col,
- int *returnrate,
- int64_t *returndistortion,
- BLOCK_SIZE bsize,
- PICK_MODE_CONTEXT *ctx,
+ struct RD_COST *rd_cost,
+ BLOCK_SIZE bsize, PICK_MODE_CONTEXT *ctx,
int64_t best_rd_so_far);
int64_t vp9_rd_pick_inter_mode_sb_seg_skip(struct VP9_COMP *cpi,
struct macroblock *x,
- int *returnrate,
- int64_t *returndistortion,
+ struct RD_COST *rd_cost,
BLOCK_SIZE bsize,
PICK_MODE_CONTEXT *ctx,
int64_t best_rd_so_far);
@@ -49,10 +47,8 @@ int64_t vp9_rd_pick_inter_mode_sub8x8(struct VP9_COMP *cpi,
struct macroblock *x,
const struct TileInfo *const tile,
int mi_row, int mi_col,
- int *returnrate,
- int64_t *returndistortion,
- BLOCK_SIZE bsize,
- PICK_MODE_CONTEXT *ctx,
+ struct RD_COST *rd_cost,
+ BLOCK_SIZE bsize, PICK_MODE_CONTEXT *ctx,
int64_t best_rd_so_far);
#ifdef __cplusplus
} // extern "C"