From 8d0f7a01e6727253df0d3c8625568bc39e83b6f4 Mon Sep 17 00:00:00 2001 From: "Timothy B. Terriberry" Date: Mon, 11 Oct 2010 14:37:27 -0700 Subject: Add simple version of activity masking. This uses MB variance to change the RDO weight for mode decision and quantization. Activity is normalized against the average for the frame, which is currently tracked using feed-forward statistics. This could also be used to adjust the quantizer for the entire frame, but that requires more extensive rate control changes. This does not yet attempt to adapt the quantizer within the frame, but the signaling cost means that will likely only be useful at very high rates. Change-Id: I26cd7c755cac3ff33cfe0688b1da50b2b87b9c93 --- vp8/encoder/onyx_int.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'vp8/encoder/onyx_int.h') diff --git a/vp8/encoder/onyx_int.h b/vp8/encoder/onyx_int.h index cb768c018..3f2d920c9 100644 --- a/vp8/encoder/onyx_int.h +++ b/vp8/encoder/onyx_int.h @@ -308,6 +308,7 @@ typedef struct int mvcostmultiplier; int subseqblockweight; int errthresh; + unsigned int activity_avg; int RDMULT; int RDDIV ; @@ -659,6 +660,8 @@ void vp8_encode_frame(VP8_COMP *cpi); void vp8_pack_bitstream(VP8_COMP *cpi, unsigned char *dest, unsigned long *size); +unsigned int vp8_activity_masking(VP8_COMP *cpi, MACROBLOCK *x); + int rd_cost_intra_mb(MACROBLOCKD *x); void vp8_tokenize_mb(VP8_COMP *, MACROBLOCKD *, TOKENEXTRA **); -- cgit v1.2.3