summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_encodemb.h
diff options
context:
space:
mode:
authorJingning Han <jingning@google.com>2013-07-01 16:50:58 -0700
committerJingning Han <jingning@google.com>2013-07-02 09:58:46 -0700
commitb91a1586a31886b96f06bc9bd82b3f62091cf1ef (patch)
treefcbe6dd5268cc068f75fcc39e5b815c867528142 /vp9/encoder/vp9_encodemb.h
parent9df24b41ca16353acb123acae7c70813cfffafdd (diff)
downloadlibvpx-b91a1586a31886b96f06bc9bd82b3f62091cf1ef.tar
libvpx-b91a1586a31886b96f06bc9bd82b3f62091cf1ef.tar.gz
libvpx-b91a1586a31886b96f06bc9bd82b3f62091cf1ef.tar.bz2
libvpx-b91a1586a31886b96f06bc9bd82b3f62091cf1ef.zip
Calculate rd cost per transformed block
Compute the rate-distortion cost per transformed block, and cumulate the cost through all blocks inside a partition. This allows encoder to detect if the cumulative rd cost is already above the best rd cost, thereby enabling early termination in the rate-distortion optimization search. Change-Id: I0a856367a9a7b6dd0b466e7b767f54d5018d09ac
Diffstat (limited to 'vp9/encoder/vp9_encodemb.h')
-rw-r--r--vp9/encoder/vp9_encodemb.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/vp9/encoder/vp9_encodemb.h b/vp9/encoder/vp9_encodemb.h
index 3042c9f7f..defaa48a3 100644
--- a/vp9/encoder/vp9_encodemb.h
+++ b/vp9/encoder/vp9_encodemb.h
@@ -27,6 +27,12 @@ struct optimize_ctx {
ENTROPY_CONTEXT tl[MAX_MB_PLANE][16];
};
+struct encode_b_args {
+ VP9_COMMON *cm;
+ MACROBLOCK *x;
+ struct optimize_ctx *ctx;
+};
+
void vp9_optimize_init(MACROBLOCKD *xd, BLOCK_SIZE_TYPE bsize,
struct optimize_ctx *ctx);
void vp9_optimize_b(int plane, int block, BLOCK_SIZE_TYPE bsize,
@@ -39,6 +45,8 @@ void vp9_encode_sb(VP9_COMMON *cm, MACROBLOCK *x, BLOCK_SIZE_TYPE bsize);
void vp9_encode_sby(VP9_COMMON *cm, MACROBLOCK *x, BLOCK_SIZE_TYPE bsize);
void vp9_encode_sbuv(VP9_COMMON *cm, MACROBLOCK *x, BLOCK_SIZE_TYPE bsize);
+void xform_quant(int plane, int block, BLOCK_SIZE_TYPE bsize,
+ int ss_txfrm_size, void *arg);
void vp9_xform_quant_sby(VP9_COMMON *cm, MACROBLOCK *x, BLOCK_SIZE_TYPE bsize);
void vp9_xform_quant_sbuv(VP9_COMMON *cm, MACROBLOCK *x, BLOCK_SIZE_TYPE bsize);