vpx/vp9/encoder
Paul Wilkins 97da8b8c33 Minor rate control refactoring and experiments.
Some minor refactoring code relating to estimates of
bits per MB at a given Q and estimating the allowed Q range.

Most of the changes here were included in a previous commit.
This commit seeks to separate out the refactoring from more
the material changes.

Two #define control flags have been added for experimentation.

ONE_SHOT_Q_ESTIMATE force the two pass encoder to
use its initial Q range estimate for the whole clip even if this results
in a miss on the target data rate. In effect this tightens the Q range
seen at the expense of rate control accuracy.

DISABLE_RC_LONG_TERM_MEM is a related flag that disables the
long term memory in the rate control. Local adjustments are still
made to try and better hit the rate target on a per frame basis but
the impact of rate control misses is not propagated to the remainder
of the clip. This means that for example an overshoot early on will not
cause frames later in the clip to be starved of bits. Again the result
of this relaxation amy be less rate control accuracy especially on short
clips.

The flags are disabled by default for now.

Change-Id: I7482f980146d8ea033b5d50cc689f772e4bd119e
2013-02-25 17:07:45 +00:00
..
ppc Add vp9_ prefix to all vp9 files 2012-11-27 14:12:30 -08:00
x86 Remove some Y2-related code. 2013-02-15 14:06:25 -08:00
vp9_asm_enc_offsets.c Remove unused symbols from vp9 asm offsets C files. 2012-12-07 15:38:40 -08:00
vp9_bitstream.c Split coefficient token tables intra vs. inter. 2013-02-23 07:33:46 -08:00
vp9_bitstream.h Use standard integer types for pixel values and coefficients. 2012-12-18 15:31:19 -08:00
vp9_block.h Split coefficient token tables intra vs. inter. 2013-02-23 07:33:46 -08:00
vp9_boolhuff.c Code cleanup. 2013-02-21 13:50:15 -08:00
vp9_boolhuff.h Use standard integer types for pixel values and coefficients. 2012-12-18 15:31:19 -08:00
vp9_dct.c optimize forward 16x16 DCT for accuracy 2013-02-25 07:47:27 -08:00
vp9_encodeframe.c Split coefficient token tables intra vs. inter. 2013-02-23 07:33:46 -08:00
vp9_encodeframe.h Code cleanup. 2013-02-21 13:50:15 -08:00
vp9_encodeintra.c Forward butterfly hybrid transform 2013-02-21 18:24:28 -08:00
vp9_encodeintra.h Use standard integer types for pixel values and coefficients. 2012-12-18 15:31:19 -08:00
vp9_encodemb.c Split coefficient token tables intra vs. inter. 2013-02-23 07:33:46 -08:00
vp9_encodemb.h Merge tx32x32 experiment. 2013-01-10 08:23:59 -08:00
vp9_encodemv.c more unused variables. 2012-11-29 08:54:59 -08:00
vp9_encodemv.h Use standard integer types for pixel values and coefficients. 2012-12-18 15:31:19 -08:00
vp9_firstpass.c Minor rate control refactoring and experiments. 2013-02-25 17:07:45 +00:00
vp9_firstpass.h Code cleanup. 2013-02-21 13:50:15 -08:00
vp9_lookahead.c fixed includes to be fully specified 2012-11-28 10:53:17 -08:00
vp9_lookahead.h Use standard integer types for pixel values and coefficients. 2012-12-18 15:31:19 -08:00
vp9_mbgraph.c Start to anonymize reference frames 2013-01-16 14:06:23 -08:00
vp9_mbgraph.h Use standard integer types for pixel values and coefficients. 2012-12-18 15:31:19 -08:00
vp9_mcomp.c Entropy stats output code. 2013-02-20 14:33:19 +00:00
vp9_mcomp.h Entropy stats output code. 2013-02-20 14:33:19 +00:00
vp9_modecosts.c fixed includes to be fully specified 2012-11-28 10:53:17 -08:00
vp9_modecosts.h Use standard integer types for pixel values and coefficients. 2012-12-18 15:31:19 -08:00
vp9_onyx_if.c Minor rate control refactoring and experiments. 2013-02-25 17:07:45 +00:00
vp9_onyx_int.h Minor rate control refactoring and experiments. 2013-02-25 17:07:45 +00:00
vp9_picklpf.c Avoid allocating memory when resizing frames 2013-02-08 12:20:30 -08:00
vp9_picklpf.h Use standard integer types for pixel values and coefficients. 2012-12-18 15:31:19 -08:00
vp9_psnr.c Code cleanup. 2013-02-21 10:34:33 -08:00
vp9_psnr.h Code cleanup. 2013-02-21 10:34:33 -08:00
vp9_quantize.c Experimental removal of over quant code 2013-02-22 14:00:51 +00:00
vp9_quantize.h Remove some Y2-related code. 2013-02-15 14:06:25 -08:00
vp9_ratectrl.c Minor rate control refactoring and experiments. 2013-02-25 17:07:45 +00:00
vp9_ratectrl.h Minor rate control refactoring and experiments. 2013-02-25 17:07:45 +00:00
vp9_rdopt.c Split coefficient token tables intra vs. inter. 2013-02-23 07:33:46 -08:00
vp9_rdopt.h Pass macroblock index to pick inter functions 2013-02-08 14:25:40 -08:00
vp9_sad_c.c Merge vp9-preview changes into experimental branch 2013-01-08 10:19:59 -08:00
vp9_segmentation.c Code cleanup. 2013-02-21 10:34:33 -08:00
vp9_segmentation.h Code cleanup. 2013-02-21 10:34:33 -08:00
vp9_ssim.c Use standard integer types for pixel values and coefficients. 2012-12-18 15:31:19 -08:00
vp9_temporal_filter.c Code cleanup. 2013-02-22 11:03:14 -08:00
vp9_temporal_filter.h Code cleanup. 2013-02-22 11:03:14 -08:00
vp9_tokenize.c Split coefficient token tables intra vs. inter. 2013-02-23 07:33:46 -08:00
vp9_tokenize.h Split coefficient token tables intra vs. inter. 2013-02-23 07:33:46 -08:00
vp9_treewriter.c fixed includes to be fully specified 2012-11-28 10:53:17 -08:00
vp9_treewriter.h Code cleanup. 2013-02-22 11:03:14 -08:00
vp9_variance_c.c Convert subpixel filters to use convolve framework 2013-02-05 14:23:17 -08:00
vp9_variance.h Use standard integer types for pixel values and coefficients. 2012-12-18 15:31:19 -08:00