vpx/vp9/encoder
paulwilkins 3606b78108 Modified test for auto key frame detection.
The existing test was triggering a lot of false positives on some types
of animated material with very plain backgrounds. These were triggering
code designed to catch key frames in letter box format clips.

This patch tightens up the criteria and imposes a minimum requirement
on the % blocks coded intra in the first pass and the ratio between the
% coded intra and the modified inter % after discounting neutral (flat)
blocks that are coded equally well either way.

On a particular problem animation clip this change eliminated a large
number of false positives including some cases where the old code
selected kf several times in a row. Marginal false negatives are less
damaging typically to compression and in the problem clip there are now
a couple of cases where "visual" scene cuts are ignored because of well
correlated content across the scene cut.

Replaced some magic numbers related to this with #defines and added
explanatory comments.

Change-Id: Ia3d304ac60eb7e4323e3817eaf83b4752cd63ecf
2015-04-21 12:50:11 +01:00
..
arm/neon Add vp9_sad32x32x4d_neon Neon intrinsic function. 2015-01-27 08:54:00 -08:00
x86 Merge "SSSE3 assembly implementation of 8x8 Hadamard transform" 2015-04-09 11:16:11 -07:00
vp9_aq_complexity.c Substantial restructuring of AQ mode 2. 2014-12-09 15:10:52 +00:00
vp9_aq_complexity.h Substantial restructuring of AQ mode 2. 2014-12-09 15:10:52 +00:00
vp9_aq_cyclicrefresh.c Adjustments to aq-mode=3. 2015-03-18 12:06:16 -07:00
vp9_aq_cyclicrefresh.h Adjustments to aq-mode=3. 2015-03-18 12:06:16 -07:00
vp9_aq_variance.c Increase strength of AQ1. 2014-11-27 10:53:37 +00:00
vp9_aq_variance.h Add variance restriction to AQ2. 2014-11-20 16:23:35 -08:00
vp9_avg.c Enable 16x16 Hadamard transform in SATD based mode decision 2015-03-30 15:43:31 -07:00
vp9_bitstream.c Simplify skip check. 2015-03-23 10:53:31 -07:00
vp9_bitstream.h remove static initializers for partition tree 2014-12-17 11:41:06 -08:00
vp9_block.h Account for chroma component costs in RTC mode decision 2015-02-04 09:45:14 -08:00
vp9_context_tree.c vp9_ethread: modify VP9_COMP structure 2014-11-24 17:57:38 -08:00
vp9_context_tree.h vp9_ethread: modify VP9_COMP structure 2014-11-24 17:57:38 -08:00
vp9_cost.c Adding vp9_cost.{h, c} files. 2014-03-05 11:57:57 -08:00
vp9_cost.h Adding vp9_cost.{h, c} files. 2014-03-05 11:57:57 -08:00
vp9_dct.c Removed redundant local variables in the forward hybrid transforms. 2015-01-07 16:38:29 -08:00
vp9_dct.h Refactored idct routines and headers 2014-11-24 09:57:40 -08:00
vp9_denoiser.c Remove a few unneccessary multiplications in denoiser. 2015-02-20 11:55:11 -08:00
vp9_denoiser.h Skip duplicate denoiser frame buffer allocation 2015-01-07 08:49:04 -08:00
vp9_encodeframe.c Merge "Remove get_nonrd_var_based_fixed_partition function" 2015-04-09 14:45:19 -07:00
vp9_encodeframe.h Set vbp thresholds for aq3 boosted blocks 2015-04-02 15:48:32 -07:00
vp9_encodemb.c dc quantizer fix for 32x32 transforms 2015-03-03 15:58:27 -08:00
vp9_encodemb.h Combine vp9_encode_block_intra and encode_block_intra 2014-10-28 18:57:01 -07:00
vp9_encodemv.c vp9_ethread: modify VP9_COMP structure 2014-11-24 17:57:38 -08:00
vp9_encodemv.h vp9_ethread: modify VP9_COMP structure 2014-11-24 17:57:38 -08:00
vp9_encoder.c Set vbp thresholds for aq3 boosted blocks 2015-04-02 15:48:32 -07:00
vp9_encoder.h Set vbp thresholds for aq3 boosted blocks 2015-04-02 15:48:32 -07:00
vp9_ethread.c Fix misleading indentation. 2015-03-05 12:10:56 -08:00
vp9_ethread.h vp9_ethread: the tile-based multi-threaded encoder 2014-12-04 11:21:34 -08:00
vp9_extend.c Fix source frame border extension 2015-02-27 15:48:01 -08:00
vp9_extend.h
vp9_firstpass.c Modified test for auto key frame detection. 2015-04-21 12:50:11 +01:00
vp9_firstpass.h Auto-adaptive encoder frame resizing logic 2015-02-10 09:59:32 -08:00
vp9_lookahead.c Allow larger encoder configurations. 2015-01-29 15:07:40 -08:00
vp9_lookahead.h Allow larger encoder configurations. 2015-01-29 15:07:40 -08:00
vp9_mbgraph.c Make encoder buffer allocation dynamic 2015-03-04 07:58:32 -08:00
vp9_mbgraph.h Renaming MB_PREDICTION_MODE to PREDICTION_MODE. 2014-04-22 17:48:31 -07:00
vp9_mcomp.c vp9_full_search_sadx[38]: align sad arrays 2015-04-07 14:34:06 -07:00
vp9_mcomp.h Move integral projection motion search to vp9_mcomp.c 2015-03-04 10:30:15 -08:00
vp9_picklpf.c vp9_ethread: add parallel loopfilter 2015-01-16 17:19:27 -08:00
vp9_picklpf.h Renaming "onyx" to "encoder". 2014-04-22 14:57:05 -07:00
vp9_pickmode.c Merge "Compute prediction filter type cost only when needed" 2015-04-09 14:45:11 -07:00
vp9_pickmode.h Enable sub8x8 inter block search for RTC coding mode 2014-12-24 17:40:31 -08:00
vp9_quantize.c vp9_ethread: fix me consts initialization to support aq_mode=3 encoding 2015-03-06 16:31:46 -08:00
vp9_quantize.h dc quantizer fix for 32x32 transforms 2015-03-03 15:58:27 -08:00
vp9_ratectrl.c Limit arf interval for low fpf clips. 2015-04-16 11:50:37 +01:00
vp9_ratectrl.h Auto-adaptive encoder frame resizing logic 2015-02-10 09:59:32 -08:00
vp9_rd.c vp9_pred_mv(): misc fixes and optimizations 2015-03-20 17:17:04 -07:00
vp9_rd.h vp9_ethread: fix me consts initialization to support aq_mode=3 encoding 2015-03-06 16:31:46 -08:00
vp9_rdopt.c Refactor block_yrd function for RTC coding mode 2015-04-01 12:00:43 -07:00
vp9_rdopt.h Experimental rd bias based on source vs recon variance. 2015-03-20 11:57:36 +00:00
vp9_resize.c vp9_resize_plane: quiet some static analysis warnings 2015-03-18 14:34:30 -07:00
vp9_resize.h Adds high bit-depth frame resize functions 2014-09-23 22:55:33 -07:00
vp9_sad.c Rename highbitdepth functions to use highbd prefix 2014-10-09 14:40:40 -07:00
vp9_segmentation.c vp9_ethread: modify VP9_COMP structure 2014-11-24 17:57:38 -08:00
vp9_segmentation.h Removing direct references to VP9_COMP. 2014-08-06 12:59:02 -07:00
vp9_skin_detection.c Add skin detection. 2015-02-11 17:47:17 -08:00
vp9_skin_detection.h Add skin detection. 2015-02-11 17:47:17 -08:00
vp9_speed_features.c Speed 5: use non-rd mode for key frame coding. 2015-03-27 16:19:26 -07:00
vp9_speed_features.h Move computation up to frame level 2015-02-10 15:41:52 -08:00
vp9_ssim.c High-bitdepth bugfixes 2014-10-01 14:18:11 -07:00
vp9_ssim.h High-bitdepth bugfixes 2014-10-01 14:18:11 -07:00
vp9_subexp.c Rework coeff probability model update for rtc coding 2014-12-03 09:15:25 -08:00
vp9_subexp.h Rework coeff probability model update for rtc coding 2014-12-03 09:15:25 -08:00
vp9_svc_layercontext.c Make encoder buffer allocation dynamic 2015-03-04 07:58:32 -08:00
vp9_svc_layercontext.h [spatial svc]Another workaround to avoid using prev_mi 2014-10-16 16:09:40 +01:00
vp9_temporal_filter.c Revert "Revert "Add support for setting byte alignment."" 2014-12-15 12:20:37 -08:00
vp9_temporal_filter.h Re-factor and simplify arnr filter. 2014-07-11 17:45:40 +01:00
vp9_tokenize.c Move vp9_coef_con_tree to common/ 2015-03-31 09:20:46 -07:00
vp9_tokenize.h Fix compiler warnigns for msvc2013 2015-01-05 17:31:19 -08:00
vp9_treewriter.c Adding vp9_cost.{h, c} files. 2014-03-05 11:57:57 -08:00
vp9_treewriter.h Adding vp9_cost.{h, c} files. 2014-03-05 11:57:57 -08:00
vp9_variance.c Fix visual studio 2013 compiler warnings 2014-11-05 13:47:28 -08:00
vp9_variance.h Rename highbitdepth functions to use highbd prefix 2014-10-09 14:40:40 -07:00
vp9_write_bit_buffer.c vp9_write_bit_buffer: fix function name typo 2014-08-05 21:57:54 -07:00
vp9_write_bit_buffer.h vp9_write_bit_buffer: fix function name typo 2014-08-05 21:57:54 -07:00
vp9_writer.c remove unused fields from BOOL_CODER / vp9_writer 2014-08-05 21:58:03 -07:00
vp9_writer.h Merge "fixes several -Wunused-function warnings" 2014-08-12 20:15:14 -07:00