vpx/vp9/encoder
Jingning Han 1434f7695b Skip ref frame mode search conditioned on predicted mv residuals
This commit makes the RTC coding mode to conditionally skip the
reference frame mode search, when the predicted motion vector of
the current reference frame gives more than two times sum of
absolute difference compared to that of other reference frames.

It reduces the runtim by 1% - 4% for speed -5 and -6. The average
compression performance is improved by about 0.1% in both settings.

It is of particular benefit to light change scenarios. The
compression performance of test clip mmmovingvga.y4m is improved by
6.39% and 15.69% at high bit rates for speed -5 and -6, respectively.

Speed -5
vidyo1 16555 b/f, 40.818 dB, 12422 ms ->
       16552 b/f, 40.804 dB, 12100 ms

nik    33211 b/f, 39.138 dB, 11341 ms ->
       33228 b/f, 39.139 dB, 11023 ms

mmmoving 33263 b/f, 40.935 dB, 13508 ms ->
         33256 b/f, 41.068 dB, 12861 ms

Speed -6
vidyo1 16541 b/f, 40.227 dB, 8437 ms ->
       16540 b/f, 40.220 dB, 8216 ms

nik    33272 b/f, 38.399 dB, 7610 ms ->
       33267 b/f, 38.414 dB, 7490 ms

mmmoving 33255 b/f, 40.555 dB, 7523 ms ->
         33257 b/f, 40.975 dB, 7493 ms

Change-Id: Id2aef76ef74a3cba5e9a82a83b792144948c6a91
2014-11-04 09:10:19 -08:00
..
arm/neon Improved vp9_quantize_fp_neon() 2014-08-08 13:57:25 -07:00
x86 vp9_denoiser_sse2: refactor the code. 2014-10-28 09:36:58 -07:00
vp9_aq_complexity.c Adds high bitdepth quantization functions 2014-09-16 14:55:37 -07:00
vp9_aq_complexity.h Move aq_mode=2 (complexity_aq) to separate file. 2014-03-26 18:01:59 -07:00
vp9_aq_cyclicrefresh.c Adds high bitdepth quantization functions 2014-09-16 14:55:37 -07:00
vp9_aq_cyclicrefresh.h Encapsulating CYCLIC_REFRESH struct into .c file. 2014-03-26 11:00:35 -07:00
vp9_aq_variance.c Rename highbitdepth functions to use highbd prefix 2014-10-09 14:40:40 -07:00
vp9_aq_variance.h Renaming "onyx" to "encoder". 2014-04-22 14:57:05 -07:00
vp9_avg.c Add highbitdepth function for vp9_avg_8x8 2014-10-17 17:04:37 -07:00
vp9_bitstream.c Refactor encoder tile data structure 2014-10-27 19:37:13 -07:00
vp9_bitstream.h Extend --auto-alt-ref so it can enable multi-alt ref. 2014-10-20 16:09:37 +01:00
vp9_block.h Rename highbitdepth functions to use highbd prefix 2014-10-09 14:40:40 -07:00
vp9_context_tree.c Adds high bitdepth transform functions and tests 2014-09-11 19:56:33 -07:00
vp9_context_tree.h Hybrid partition search for rtc coding mode 2014-10-20 13:02:12 -07: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 Rename highbitdepth functions to use highbd prefix 2014-10-09 14:40:40 -07:00
vp9_denoiser.c Add SSE2 code and unit test for VP9 denoiser. 2014-10-06 15:27:40 -07:00
vp9_denoiser.h Add SSE2 code and unit test for VP9 denoiser. 2014-10-06 15:27:40 -07:00
vp9_encodeframe.c Merge "Rework pred pixel buffer system in non-RD coding mode" 2014-10-31 08:55:24 -07:00
vp9_encodeframe.h Decide the partitioning threshold from the variance histogram 2014-06-30 09:36:23 -07:00
vp9_encodemb.c Combine vp9_encode_block_intra and encode_block_intra 2014-10-28 18:57:01 -07: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: allocate frame contexts outside VP9_COMMON struct 2014-10-22 15:03:12 -07:00
vp9_encodemv.h Renaming "onyx" to "encoder". 2014-04-22 14:57:05 -07:00
vp9_encoder.c Merge "Tile based adaptive mode search in RD loop" 2014-10-24 18:44:52 -07:00
vp9_encoder.h Merge "Add a new control of golden frame boost in CBR mode" 2014-10-28 09:32:58 -07:00
vp9_extend.c Fix src frame buffer copy and extend 2014-10-08 11:07:04 -07:00
vp9_extend.h vp9/encoder: add extern "C" to headers 2014-01-23 16:21:24 -08:00
vp9_firstpass.c Relax maximum Q for extreme overshoot. 2014-10-28 13:03:06 +00:00
vp9_firstpass.h Add adaptation option for VBR. 2014-10-13 10:16:44 +01:00
vp9_lookahead.c Adds config opt for highbitdepth + misc. vpx 2014-09-02 14:37:10 -07:00
vp9_lookahead.h [spatial svc] Remove vpx_svc_parameters_t and the loop that sets it for each layer 2014-09-18 18:05:07 -07:00
vp9_mbgraph.c Subpel search cleanups and enhancements 2014-10-08 23:59:43 -07:00
vp9_mbgraph.h Renaming MB_PREDICTION_MODE to PREDICTION_MODE. 2014-04-22 17:48:31 -07:00
vp9_mcomp.c Merge "Rename highbitdepth functions to use highbd prefix" 2014-10-09 15:39:56 -07:00
vp9_mcomp.h Subpel search cleanups and enhancements 2014-10-08 23:59:43 -07:00
vp9_picklpf.c Adds various high bit-depth encode functions 2014-09-25 01:50:36 -07:00
vp9_picklpf.h Renaming "onyx" to "encoder". 2014-04-22 14:57:05 -07:00
vp9_pickmode.c Skip ref frame mode search conditioned on predicted mv residuals 2014-11-04 09:10:19 -08:00
vp9_pickmode.h Refactor encoder tile data structure 2014-10-27 19:37:13 -07:00
vp9_quantize.c Rename highbitdepth functions to use highbd prefix 2014-10-09 14:40:40 -07:00
vp9_quantize.h Rename highbitdepth functions to use highbd prefix 2014-10-09 14:40:40 -07:00
vp9_ratectrl.c Merge "Allow update of golden refernce buffer in CBR mode" 2014-10-28 10:48:02 -07:00
vp9_ratectrl.h Add adaptation option for VBR. 2014-10-13 10:16:44 +01:00
vp9_rd.c Merge "Refactor vp9_update_rd_thresh_fact" 2014-10-31 08:55:28 -07:00
vp9_rd.h Refactor vp9_update_rd_thresh_fact 2014-10-30 11:09:40 -07:00
vp9_rdopt.c Merge "Refactor vp9_update_rd_thresh_fact" 2014-10-31 08:55:28 -07:00
vp9_rdopt.h Refactor encoder tile data structure 2014-10-27 19:37:13 -07:00
vp9_resize.c Incorporate WRAPLOW macro into non-highbitdepth tx 2014-10-03 11:38:05 -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 Remove mi_grid_* structures. 2014-09-19 21:27:11 -07:00
vp9_segmentation.h Removing direct references to VP9_COMP. 2014-08-06 12:59:02 -07:00
vp9_speed_features.c Remove unused speed feature 2014-10-29 17:05:04 -07:00
vp9_speed_features.h Remove unused speed feature 2014-10-29 17:05:04 -07: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 vp9_subexp: remove vp9_compute_update_table() 2014-08-05 14:34:15 -07:00
vp9_subexp.h vp9_subexp: remove vp9_compute_update_table() 2014-08-05 14:34:15 -07:00
vp9_svc_layercontext.c Extend --auto-alt-ref so it can enable multi-alt ref. 2014-10-20 16:09:37 +01: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 [spatial svc]Another workaround to avoid using prev_mi 2014-10-16 16:09:40 +01:00
vp9_temporal_filter.h Re-factor and simplify arnr filter. 2014-07-11 17:45:40 +01:00
vp9_tokenize.c vp9_ethread: allocate frame contexts outside VP9_COMMON struct 2014-10-22 15:03:12 -07:00
vp9_tokenize.h Rework partition search skip scheme 2014-10-03 11:54:30 -07: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 Rename highbitdepth functions to use highbd prefix 2014-10-09 14:40:40 -07: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