1. 18 Jul, 2014 - 2 commits
  2. 17 Jul, 2014 - 2 commits
    • Pengchong Jin's avatar
      Fixed a bug of setting wrong first pass mb stats pointer · e358ab5f
      Pengchong Jin authored
      The bug sets the wrong pointer to the first pass mb stats
      if the encoder does the re-coding in the second pass.
      
      Change-Id: I8a11f45dd7dceb38de814adec24cecccae370d00
      e358ab5f
    • Adrian Grange's avatar
      Modified frame buffer handling · f68aaa38
      Adrian Grange authored
      This patch is the first step toward simplifying the
      frame buffer handling.
      
      The final goal is to have a common frame buffer handling
      framework for both encoder and decoder that incorporates
      the existing ability to use externally allocated memory.
      
      Change-Id: I2c378a4f54a39908915f46c4260e17a080db7ff1
      f68aaa38
  3. 16 Jul, 2014 - 3 commits
    • Yaowu Xu's avatar
      make default_interp_filter choice a speed feature · 51c60a89
      Yaowu Xu authored
      This commit changed the hard-coded DEFAULT_INTERP_FILTER to a speed
      feature with the same default value: SWITCHABLE.
      
      Change-Id: I7f54f40f1bd3f5277841d04b85db7a84e47313f1
      51c60a89
    • Scott LaVarnway's avatar
      Added vp9_sad64x64_neon(), vp9_sad32x32_neon() · 696fa52e
      Scott LaVarnway authored
      and vp9_sad16x16_neon()
      
      On a Nexus 7, vpxenc (in realtime mode, speed -6)
      reported a performance improvement of ~17%.
      
      Change-Id: I91e070cde2973451083d3f3d63b49b7886de9a85
      696fa52e
    • Paul Wilkins's avatar
      Changes to rd balance and multi-arf bug fix. · b691230d
      Paul Wilkins authored
      2 pass only change to calculation of rd mult based on Q.
      Make a small adjustment based on frame type and also
      replace adjustment based on iifactor with an one based
      on the ambient GF/ARF boost level.
      
      Also fix multi arf bug / issue.
      
      Overall these change give an slight improvement in ssim
      but hurt psnr a little.
      
      Change-Id: I5e1751e3ff5390a26f543d7855059e6fbcce105e
      b691230d
  4. 15 Jul, 2014 - 4 commits
  5. 14 Jul, 2014 - 1 commit
    • Minghai Shang's avatar
      [spatial svc]Implement alt reference frames · e899859c
      Minghai Shang authored
      All changes are for spatial svc only.
      1. Enable encoding hidden frames in each layer and use alt reference idex to reference the hidden frame in each layer
      2. Use golden reference idx for spatial reference
      3. For those layers that don't have hidden frames (caused by lack of frame buffers), reference a hidden frame in lower layers
      4. Add "auto-alt-refs" in svc options
      Change-Id: Idf27d1fd2fb5f3ffd9e86d2119235e3dad36c178
      e899859c
  6. 11 Jul, 2014 - 6 commits
    • Jingning Han's avatar
      Fix a potential invalid memory access in non-RD coding flow · b957439c
      Jingning Han authored
      This commit fixes a potential out-of-boundary memory access due to
      the use of reuse_inter_pred_sby in the non-RD coding flow. It
      resolves the corresponding asan error.
      
      Change-Id: Iff605f5921230966990013541cd855d698810922
      b957439c
    • Jingning Han's avatar
      Fix chrome valgrind warning due to the use of mismatched bsize · 3cddd81c
      Jingning Han authored
      This commit fixes a mismatched use case of block size in non-RD
      intra prediction check. The residual SSE and variance should be
      calculated per transform block size, instead of operating block
      size, which caused chrome valgrind warning on conditional jump
      based on uninitialized value (webm issue 823). This commit
      resolves this issue.
      
      Change-Id: I595c06599c7e0fd0e4a08736519ba68fc14bc79a
      3cddd81c
    • Deb Mukherjee's avatar
      Some extra bit probability cleanups · 6957e7a0
      Deb Mukherjee authored
      Refactoring to remove some duplication of probability
      tables between tokenization and detokenization.
      
      Change-Id: I2fc6a6497f9c0410021a9b41f828bc58a864e466
      6957e7a0
    • Yaowu Xu's avatar
      Remove an unused parameter in vp9_init_search_range() · 6673d2f3
      Yaowu Xu authored
      Change-Id: I3d9130e726a1299fd258f6dfe93315e2d12f76da
      6673d2f3
    • Yunqing Wang's avatar
      Code refactoring: use defined inline functions · 1b5e9871
      Yunqing Wang authored
      Changed to use defined inline functions consistently through
      the code.
      
      Change-Id: I7644d24fa7a837378564a6e0790416d3725dd200
      1b5e9871
    • Paul Wilkins's avatar
      Re-factor and simplify arnr filter. · e3e6e061
      Paul Wilkins authored
      Use a weaker filter for second level arf frames.
      Average gain across all sets and metrics ~0.3%
      
      Remove code for arnr_type which is no longer
      supported in VP9 which always uses a centered blur.
      
      Re-factor and some cleanup.
      
      Change-Id: Ieb4b8940e99e4e02b3fcc9fca6f2d4109e6ed639
      e3e6e061
  7. 10 Jul, 2014 - 1 commit
    • Yunqing Wang's avatar
      Refactor vp9_diamond_search_sad function · 75cd5750
      Yunqing Wang authored
      Currently, vp9_diamond_search_sadx4() is only called when sse3 is
      enabled, which is improper since sse2 optimization of sdx4df
      functions are available. Changed to always use
      vp9_diamond_search_sadx4().
      
      Change-Id: I4b95d6b7a3c6c645783c373f0ba8d645ece24717
      75cd5750
  8. 09 Jul, 2014 - 5 commits
    • Yunqing Wang's avatar
      Refactor refining_search_sad code · 30117a57
      Yunqing Wang authored
      There are sse2 optimization of sdx4df functions. Instead of calling
      vp9_refining_search_sadx4 only when sse3 is enabled, call it always.
      
      Change-Id: I24f93818f7d4209d1425039e0eb099ff9ff08fe9
      30117a57
    • Yaowu Xu's avatar
      Minor cleanup · 87cf002e
      Yaowu Xu authored
      Change-Id: I3a3ceeeed489f8b1ccd7199ff97f3fb991bbf5a4
      87cf002e
    • Yunqing Wang's avatar
      Remove repetitive code in mcomp.c · a581da21
      Yunqing Wang authored
      Deleted vp9_find_best_sub_pixel_comp_tree(), and combined it in
      vp9_find_best_sub_pixel_tree().
      
      Change-Id: Ifb25763c8b19822df5537cc1daa76ce88dc3b056
      a581da21
    • Yunqing Wang's avatar
      Adjust full-pixel search method in real-time mode · 9bd3be69
      Yunqing Wang authored
      Use FAST_HEX in speed 5 and 6, which covers more points than
      FAST_DIAMOND and improves motion search quality.
      
      At speed 6, RTC set borg tests showed slight quality gain (psnr
      gain: 0.143%, ssim gain: 0.226%). No noticeable encoding speed
      change.
      
      Change-Id: Ifa62875d9a52ee382ec494f271382bb77d8c67bf
      9bd3be69
    • Yaowu Xu's avatar
      Combined non-rd motion searchs into a single function · c788bceb
      Yaowu Xu authored
      This commit combined the full pel and sub pel motion search into a
      single function to avoid code duplication. The commit does not change
      encoder outputs.
      
      Change-Id: Ibe18342c4f64073bef20f9cf6c6ca0a20d01bf0d
      c788bceb
  9. 08 Jul, 2014 - 2 commits
    • Jingning Han's avatar
      Re-design quantization process for 32x32 transform block · 9ad1b9fc
      Jingning Han authored
      This commit enables a new quantization process for 32x32 2D-DCT
      transform coefficient blocks. It improves the compression
      performance of speed 5 by 1.4%. The overall compression gains of
      speed 5 due to the new quantization scheme is 4.7%. It also includes
      the SSSE3 implementation of the 32x32 quantization process.
      
      Change-Id: I0855b124fd6462418683f783f5bcb44255c9993b
      9ad1b9fc
    • Tim Kopp's avatar
      Vp9 denoiser MC bugfix · 3c86228c
      Tim Kopp authored
      In the previous version, only certain buffers in the macroblockd were saved and
      the restored. In this version, all of the buffers are saved and restored. The
      code was then rolled into a loop for readability.
      
      Also contains a tiny fix for when the -DOUTPUT_YUV_DENOISED flag is used.
      
      Change-Id: Id925ef8b3fa122ae88acfa1d9a1e4df45df83518
      3c86228c
  10. 07 Jul, 2014 - 3 commits
    • Jingning Han's avatar
      Tune SSSE3 implementation of fast path quantization · 00fc0e3f
      Jingning Han authored
      This commit further simplifies the SSSE3 implementation of the fast
      path quantization process.
      
      Change-Id: I5be3286ec0f1bd81d1cf5be3168fece6384fb9ca
      00fc0e3f
    • Jingning Han's avatar
      Remove an empty line · 3316918b
      Jingning Han authored
      Change-Id: Id6eedc502c86433df1456dd994aee6bc9a1359a2
      3316918b
    • Alex Converse's avatar
      Cleanup motion search speed features. · f60a1178
      Alex Converse authored
      * Replace max_step_search_steps with constant MAX_MVSEARCH_STEPS
      * Fold (reduce_first_step_size + speed > 5) into reduce_first_step_size
        replacing uses of reduce_first_step_size that don't add the speed
        check with zero.
      
      Change-Id: Iae46395dbf3eaca138bf4d18b838a9e364b5a198
      f60a1178
  11. 06 Jul, 2014 - 1 commit
  12. 02 Jul, 2014 - 10 commits
    • Alex Converse's avatar
      Cleanup vp9_rd. · 15123db7
      Alex Converse authored
      Change-Id: I39a37335ba5b3a969d328afb1f425ddb2cf7ddda
      15123db7
    • Alex Converse's avatar
      Split vp9_rdopt into vp9_rdopt and vp9_rd. · 03c276ea
      Alex Converse authored
      vp9_rdopt is for making rd optimal mode decisions. vp9_rd is for all
      other rd related routines. Anything used outside of making an rd optimal
      decision belongs in rd.
      
      Change-Id: I772a3073f7588bdf139f551fb9810b6864d8e64b
      03c276ea
    • Dmitry Kovalev's avatar
      Cleaning up and simplifying read_frame_stats(). · 4635a2ba
      Dmitry Kovalev authored
      Change-Id: I262ecac02d376de83097bb40f744f5584e987603
      4635a2ba
    • Yunqing Wang's avatar
      Fix rd threshold overflow issue · 3bc11932
      Yunqing Wang authored
      Moved the threshold adjustment before reference flag checking,
      which could set the threshold to INT_MAX for disabled reference
      frame, and cause overflow if the adjustment is done after that.
      
      Change-Id: I85e94f8726d5e3ae93f65965aa978721dddc9957
      3bc11932
    • Tim Kopp's avatar
      VP9 denoiser implemented FILTER_BLOCK case · 03a3ba4a
      Tim Kopp authored
      Renamed updating_running_avg() to filter(). Extended function with the rest of
      the filter procedure. Made all of the empirically-determined constants used in
      VP8 into functions so they can be tweaked more easily.
      
      Change-Id: I41730c8c92370c76885950a43742347477ca4e7e
      03a3ba4a
    • Tim Kopp's avatar
      VP9 denoising enabled by noise_sensitivity param · 9c9922df
      Tim Kopp authored
      As in VP8.
      
      Currently, this parameter is set with the VP8E_SET_NOISE_SENSITIVITY flag.
      The flag was not renamed so that we don't break the interface for webrtc. This
      should probably be changed at some point in the future.
      
      Change-Id: Ic73fcb0dde9d1d019e9d042050b617333ac65472
      9c9922df
    • Tim Kopp's avatar
      Replaced loops with vpx_memcpy() · 49741fee
      Tim Kopp authored
      Change-Id: Icbe05657f0e92c3838e6a5a975f4f82d21328a2e
      49741fee
    • Paul Wilkins's avatar
      Multi-arf: Add code to turn it on and off. · 88307723
      Paul Wilkins authored
      Add test code to turn multi-arf on and off depending
      on group length and zero motion.
      
      Changes to active max group length for mult-arf.
      
      Fund second arf only from normal frame bits.
      
      Change-Id: I920287fac1c886428c15a39f731a25d07c2b796c
      88307723
    • Yaowu Xu's avatar
      Added a speed feature controlling a motion search parameter · 92a6db79
      Yaowu Xu authored
      This commit added a speed feature to control the step_param used in
      full pixel motion search. The intention is to reduced the search
      steps for high speed real time coding.
      
      Change-Id: I21d2f0105c2b647783a6688615da7fcf2b6d670b
      92a6db79
    • Paul Wilkins's avatar
      Adapt strength of AQ2. · adf4293e
      Paul Wilkins authored
      Adapt the use of segmentation in AQ mode 2 based on
      the ambient kf/arf/gf Q.
      
      Disable segmentation where the rate per SB is very
      low and overheads are likely to outweigh the benefits.
      
      This patch reduces the -ve average metrics impact
      of AQ mode 2 while allowing stronger 3 segment AQ
      in some cases. Average improvement ~0.5-1.0%.
      
      Change-Id: I5892dfcc7507c5cc6444531cc7fe17554cf8d0c7
      adf4293e