1. 11 Jul, 2014 2 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
  2. 09 Jul, 2014 2 commits
    • 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
    • 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
  3. 02 Jul, 2014 3 commits
    • 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
    • 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
    • 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
  4. 30 Jun, 2014 2 commits
  5. 27 Jun, 2014 1 commit
  6. 26 Jun, 2014 5 commits
    • Jingning Han's avatar
      Adaptive txfm size selection depending on residual sse/variance · 5a3e3c6d
      Jingning Han authored
      This commit enables an adaptive transform size selection method
      for speed -6. It uses largest transform size when the sse is more
      than 4 times of variance, i.e., most energy is compacted in the
      DC coefficient. Otherwise, use the default TX_8X8. It improves
      the compression efficiency for rtc set of speed -6 by 0.8%, no
      speed change observed.
      
      Change-Id: Ie6ed1e728ff7bf88ebe940a60811361cdd19969c
      5a3e3c6d
    • Alex Converse's avatar
      Use UV prediction when deciding to skip in for lossless. · aed52718
      Alex Converse authored
      Change-Id: Ic149749157d762039446d14472d40d9211c6451a
      aed52718
    • Jingning Han's avatar
      Enable real-time version reference motion vector search · 46ea9ec7
      Jingning Han authored
      This commit enables a fast reference motion vector search scheme.
      It checks the nearest top and left neighboring blocks to decide the
      most probable predicted motion vector. If it finds the two have
      the same motion vectors, it then skip finding exterior range for
      the second most probable motion vector, and correspondingly skips
      the check for NEARMV.
      
      The runtime of speed -5 goes down
      pedestrian at 1080p 29377 ms -> 27783 ms
      vidyo at 720p       11830 ms -> 10990 ms
      i.e., 6%-8% speed-up.
      
      For rtc set, the compression performance
      goes down by about -1.3% for both speed -5 and -6.
      
      Change-Id: I2a7794fa99734f739f8b30519ad4dfd511ab91a5
      46ea9ec7
    • Jingning Han's avatar
      Add const mark to const values in non-RD coding mode · 99e25ec4
      Jingning Han authored
      Change-Id: I65209fd1e06fc06833f6647cb028b414391a7017
      99e25ec4
    • Jingning Han's avatar
      Make non-RD intra mode search txfm size dependent · 2aa50eaf
      Jingning Han authored
      This commit fixes the potential issue in the non-RD mode decision
      flow that only checks part of the block to estimate the cost. It
      was due to the use of fixed transform size, in replacing the
      largest transform block size. This commit enables per transform
      block cost estimation of the intra prediction mode in the non-RD
      mode decision.
      
      Change-Id: I14ff92065e193e3e731c2bbf7ec89db676f1e132
      2aa50eaf
  7. 24 Jun, 2014 3 commits
    • Alex Converse's avatar
      Allow lossless breakout in non-rd mode decision. · 1409d1e1
      Alex Converse authored
      This is very helpful for large moving windows in screencasts.
      
      Change-Id: I91b5f9acb133281ee85ccd8f843e6bae5cadefca
      1409d1e1
    • Jingning Han's avatar
      Replace cpi->common with preset variable cm · 9e558344
      Jingning Han authored
      This commit replaces a few use cases of cpi->common with preset
      variable cm, to avoid unnecessary pointer fetch in the non-RD
      coding mode.
      
      Change-Id: I4038f1c1a47373b8fd7bc5d69af61346103702f6
      9e558344
    • Yunqing Wang's avatar
      Reuse inter prediction result in real-time speed 6 · 0aae1000
      Yunqing Wang authored
      In real-time speed 6, no partition search is done. The inter
      prediction results got from picking mode can be reused in the
      following encoding process. A speed feature reuse_inter_pred_sby
      is added to only enable the resue in speed 6.
      
      This patch doesn't change encoding result. RTC set tests showed
      that the encoding speed gain is 2% - 5%.
      
      Change-Id: I3884780f64ef95dd8be10562926542528713b92c
      0aae1000
  8. 20 Jun, 2014 1 commit
  9. 19 Jun, 2014 1 commit
  10. 18 Jun, 2014 2 commits
    • Yunqing Wang's avatar
      Modify non-rd intra mode checking · 55834d42
      Yunqing Wang authored
      Speed 6 uses small tx size, namely 8x8. max_intra_bsize needs to
      be modified accordingly to ensure valid intra mode checking.
      Borg test on RTC set showed an overall PSNR gain of 0.335% in speed
      -6.
      
      This also changes speed -5 encoding by allowing DC_PRED checking
      for block32x32. Borg test on RTC set showed a slight PSNR gain of
      0.145%, and no noticeable speed change.
      
      Change-Id: I1502978d8fbe265b3bb235db0f9c35ba0703cd45
      55834d42
    • Jingning Han's avatar
      Separate rate-distortion modeling for DC and AC coefficients · 7c45dc98
      Jingning Han authored
      This is the first step to rework the rate-distortion modeling used
      in rtc coding mode. The overall goal is to make the modeling
      customized for the statistics encountered in the rtc coding.
      
      This commit makes encoder to perform rate-distortion modeling for
      DC and AC coefficients separately. No speed changes observed.
      The coding performance for pedestrian_area_1080p is largely
      improved:
      
      speed -5, from 79558 b/f, 37.871 dB -> 79598 b/f, 38.600 dB
      speed -6, from 79515 b/f, 37.822 dB -> 79544 b/f, 38.130 dB
      
      Overall performance for rtc set at speed -6 is improved by 0.67%.
      
      Change-Id: I9153444567e5f75ccdcaac043c2365992c005c0c
      7c45dc98
  11. 15 Jun, 2014 1 commit
  12. 12 Jun, 2014 4 commits
    • Tim Kopp's avatar
      Added skeleton for VP9 denoiser · ab8bfb07
      Tim Kopp authored
      Change-Id: Iccf6ede4c4f85646b0f8daec47050ce93e267c90
      ab8bfb07
    • Dmitry Kovalev's avatar
      Adding MV_SPEED_FEATURES struct. · 4ff1a614
      Dmitry Kovalev authored
      Moving all motion vector related speed parameters from SPEED_FEATURES to
      MV_SPEED_FEATURES.
      
      Change-Id: I3e9af0039c7162f8671878c5920bce3cb256a84e
      4ff1a614
    • Dmitry Kovalev's avatar
      Moving full_pixel_search() to vp9_mcomp.c. · 442cbf56
      Dmitry Kovalev authored
      Change-Id: I12389f801ebd3bd2ae3bf31e125433bfb429ee65
      442cbf56
    • Jingning Han's avatar
      Fast computation path for forward transform and quantization · ccba289f
      Jingning Han authored
      This commit enables a fast path computational flow for forward
      transformation. It checks the sse and variance of prediction
      residuals and decides if the quantized coefficients are all
      zero, dc only, or more. It then selects the corresponding coding
      path in the forward transformation and quantization stage.
      
      It is currently enabled in rtc coding mode. Will do it for rd
      coding mode next.
      
      In speed -6, the runtime for pedestrian_area 1080p at 1000 kbps
      goes down from 14234 ms to 13704 ms, i.e., about 4% speed-up.
      Overall coding performance for rtc set is changed by -0.18%.
      
      Change-Id: I0452da1786d59bc8bcbe0a35fdae9f623d1d44e1
      ccba289f
  13. 06 Jun, 2014 1 commit
  14. 29 May, 2014 1 commit
  15. 21 May, 2014 1 commit
  16. 19 May, 2014 2 commits
    • Yunqing Wang's avatar
      Add static-threshold skipping in non-rd mode · b91b146d
      Yunqing Wang authored
      Added a skipping test in non-rd inter-mode. After interpolation
      prediction step, the residuals are tested to see if they will be
      quantized to 0 based on modeling between spatial domain and
      frequency domain.
      
      Set static-thresh to 800 for >=720p and 300 for <720p, rtc set
      tests showed
      1. Speed 5, psnr: -0.514%; ssim: -1.748%;
         speedup on related clips: 5% -11%
      2. Speed 6, psbr: -0.628%; ssim: -1.637%;
         speedup on related clips: 4% - 9%
      
      Change-Id: I62fbf26bc043ecd2b584f255f1a4ee5ab52bfcf3
      b91b146d
    • Dmitry Kovalev's avatar
      Replacing int_mv with MV. · 81e03394
      Dmitry Kovalev authored
      Change-Id: Icd7eea20e944e3e28e5eb20cdc088866a54d53b4
      81e03394
  17. 15 May, 2014 2 commits
  18. 12 May, 2014 1 commit
  19. 08 May, 2014 1 commit
  20. 06 May, 2014 2 commits
    • Jingning Han's avatar
      Tune rate-distortion modeling to account for frame light change · 74f98e6f
      Jingning Han authored
      When the variance is far less than sse, the block is considered to
      be under light change. All the energy is compacted into DC coeff
      and can be coded at low cost. In such situation, switch the rate-
      distortion modeling from sse+var based back to variance based.
      
      Note that this is a temporary solution to handle the rare situations
      where the scene light changes.
      
      Change-Id: I1ee0fe2b9eda6b5fac40152e1841bf23f4d229fd
      74f98e6f
    • Yunqing Wang's avatar
      Clean up full-pixel search calling code · a3c5a794
      Yunqing Wang authored
      Removed repetitive code.
      
      Change-Id: Ib6adb6eaf7d4e3feeabb71651f4cc447974a925d
      a3c5a794
  21. 01 May, 2014 1 commit
  22. 24 Apr, 2014 1 commit