1. 01 Jul, 2014 1 commit
    • Yunqing Wang's avatar
      Elevate NEWMV mode checking threshold in real time · f31ff029
      Yunqing Wang authored
      The current threshold is knid of low, and in many cases NEWMV
      mode is checked but not picked as the best mode. This patch
      added a speed feature to increase NEWMV threshold, so that
      less partition mode checking goes to check NEWMV. This feature
      is enabled for speed 6 and 7.
      
      Rtc set borg tests showed:
      1. Speed 6, overall psnr: -0.088%, ssim: -1.339%;
         Average speedup on rtc set is 11.1%.
      2. Speed 7, overall psnr: -0.505%, ssim: -2.320%
         Average speedup on rtc set is 12.9%.
      
      Change-Id: I953b849eeb6e0d5a1f13eacba30c14204472c5be
      f31ff029
  2. 30 Jun, 2014 2 commits
    • Yunqing Wang's avatar
      Enable encode breakout in real time · dee5782f
      Yunqing Wang authored
      For real time speed 7, once encode breakout is on(i.e. encoding
      setting --static-thresh=1), a proper encode breakout threshold
      is set to speed up the encoder.
      
      Set --static-thresh=1, RTC set borg test showed a slight overall
      psnr loss of 0.162%, but ssim gain of 0.287%. The average speedup
      on RTC set is 6%, and for some clips, the speedup can be 10+%.
      
      Change-Id: Id522d9ce779ff7c699936d13d0c47083de4afb85
      dee5782f
    • Yunqing Wang's avatar
      Decide the partitioning threshold from the variance histogram · 9d41313e
      Yunqing Wang authored
      Before encoding a frame, calculate and store each 16x16 block's
      variance of source difference between last and current frame.
      Find partitioning threshold T for the frame from its variance
      histogram, and then use T to make partition decisions.
      
      Comparing with fixed 16x16 partitioning, rtc set test showed an
      overall psnr gain of 3.242%, and ssim gain of 3.751%. The best
      psnr gain is 8.653%.
      
      The overall encoding speed didn't change much. It got faster for
      some clips(for example, 12% speedup for vidyo1), and a little
      slower for others.
      
      Also, a minor modification was made in datarate unit test.
      
      Change-Id: Ie290743aa3814e83607b93831b667a2a49d0932c
      9d41313e
  3. 27 Jun, 2014 2 commits
  4. 26 Jun, 2014 2 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
    • 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
  5. 24 Jun, 2014 2 commits
    • 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
    • Paul Wilkins's avatar
      Fix some bugs in multi-arf · 8160a26f
      Paul Wilkins authored
      Fix some bugs relating to the use of buffers
      in the overlay frames.
      
      Fix bug where a mid sequence overlay was
      propagating large partition and transform sizes into
      the subsequent frame because of :-
        sf->last_partitioning_redo_frequency  > 1 and
        sf->tx_size_search_method == USE_LARGESTALL
      
      Change-Id: Ibf9ef39a5a5150f8cbdd2c9275abb0316c67873a
      8160a26f
  6. 19 Jun, 2014 1 commit
    • Jingning Han's avatar
      Allow key frame more flexibility in mode search · c99a8fd7
      Jingning Han authored
      This commit allows the key frame to search through more prediction
      modes and more flexible block sizes. No speed change observed. The
      coding performance for rtc set is improved by 1.7% for speed -5 and
      3.0% for speed -6.
      
      Change-Id: Ifd1bc28558017851b210b4004f2d80838938bcc5
      c99a8fd7
  7. 18 Jun, 2014 1 commit
    • 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
  8. 12 Jun, 2014 1 commit
    • 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
  9. 09 Jun, 2014 1 commit
    • Yunqing Wang's avatar
      Use small transform size in non-rd real-time mode · b04d7668
      Yunqing Wang authored
      In non-rd real-time mode, choosing smaller transform size in
      encoding gives better video quality and good speed gain than
      choosing larger transform size. This patch set tx size search
      method to ALLOW_8X8, which is better than using 4x4 or other
      larger sizes.
      
      Borg tests on rtc set at speed 6 showed significant gain on quality.
      PSNR gain: 11.034% and SSIM gain: 15.466%.
      
      The speed gain is 5% - 12% for <720p clips, and 2% - 7% for
      720p clips.
      
      Change-Id: If4dc74ed2df359346b059f47fb73b4a0193ec548
      b04d7668
  10. 06 Jun, 2014 1 commit
  11. 03 Jun, 2014 1 commit
  12. 29 May, 2014 3 commits
  13. 22 May, 2014 1 commit
  14. 21 May, 2014 1 commit
    • Yaowu Xu's avatar
      Enable various thresholds of motion detection · 3bda7ec1
      Yaowu Xu authored
      This commit changed to enable the encoder to adjust motion dection
      speed threshold based on picture size. In addition, cpu-used 1 now
      does a partition search every other frame instead of every third
      frame for low resolution inputs.
      
      The change has no quality/speed impact for 720p and above. Test
      showed the change increase encoding time by between 3% to 6% for
      cpu-used 2 encodiong of 360p sequences. It also has a compression
      gain about .3%.
      
      For cpu-used 2, the change resolved some very disturbing visual
      artifacts in certain sequences when large block partitionings and
      transforms are used as a result of copying the partition from a
      previous frame.
      
      Change-Id: Ic7fd22508cdb811d4ca935655adbf20109286cfa
      3bda7ec1
  15. 19 May, 2014 1 commit
    • 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
  16. 23 Apr, 2014 1 commit
    • Jingning Han's avatar
      Chessboard pattern prediction filter type search in non-RD coding · 8969f7c8
      Jingning Han authored
      This commit introduces a chessboard pattern search for the prediction
      filter type search. It runs extensive search in alternate blocks and
      allows the rest blocks to refer coding decisions of their nearby
      neighbors.
      
      For pedestrian 1080p at 4000 kbps, the runtime of speed -5 goes down
      from 43990 ms to 42200 ms. The overall compression performance for
      RTC set is changed by -1.37%.
      
      Change-Id: Icfe220c49451cda796f0ca91d935c9ed01e56c9d
      8969f7c8
  17. 22 Apr, 2014 1 commit
    • Dmitry Kovalev's avatar
      Renaming "onyx" to "encoder". · ef003078
      Dmitry Kovalev authored
      Actual renames:
        vp9_onyx_if.c -> vp9_encoder.c
        vp9_onyx_int.h -> vp9_encoder.h
      
      Change-Id: I80532a80b118d0060518e6c6a0d640e3f411783c
      ef003078
  18. 21 Apr, 2014 1 commit
    • Yaowu Xu's avatar
      Allow full RD TX size search for GF/ALT at speed 2 · d928b34e
      Yaowu Xu authored
      For speed 3 and above, such search is only allowed at speed 3.
      The change helped cif and stdhd set by 1.2% and .7% in compression,
      but increased the encoding time by around 5%.
      
      Change-Id: Ifa4832327f1c1bef3decb032ceb769cbf50e059f
      d928b34e
  19. 18 Apr, 2014 1 commit
  20. 17 Apr, 2014 1 commit
  21. 14 Apr, 2014 4 commits
    • Dmitry Kovalev's avatar
      Using anonymous enum instead of macros. · c1981bdd
      Dmitry Kovalev authored
      Change-Id: I5ed360585dae2c9fea6c32058dbfb8ec07700677
      c1981bdd
    • Dmitry Kovalev's avatar
      Consistent mode names. · f3739f90
      Dmitry Kovalev authored
      Change-Id: Icb4851d98c951506fe5d73d8d5a8ac7e53fecfd0
      f3739f90
    • Paul Wilkins's avatar
      Remove vp9_ prefix on static inline function. · 19536d69
      Paul Wilkins authored
      This prefix reserved for global scope functions etc.
      
      Change-Id: I671cda2a63e01a40aae3d7407dd1bb4d338d709c
      19536d69
    • Paul Wilkins's avatar
      Speed 2 alternative balance. · 0639b5cf
      Paul Wilkins authored
      A previous path improved speed 2 quality a little but
      more extensive testing showed that it slowed encode
      by a few %.
      
      The change will have a similar effect for speed 3 but
      should not impact speeds 4+;
      
      This experiment should reverse that and give a speed
      up at the cost of a small quality loss.
      
      Borg results pending.
      
      Change-Id: I4493fc1541aaf44587f1a41ff219f7088da9252c
      0639b5cf
  22. 09 Apr, 2014 2 commits
    • Yaowu Xu's avatar
      Remove duplicate code · 585e01bf
      Yaowu Xu authored
      Change-Id: Ie26b6ca8de733a527f820b16148e7a2231073f0f
      585e01bf
    • Yunqing Wang's avatar
      Use source frame difference to make partition decision · 4e66293f
      Yunqing Wang authored
      Calculate the difference variance between last source frame and
      current source frame. The variance is calculated at 16x16 block
      level. The variances are compared to several thresholds to decide
      final partition sizes.
      
      An adaptive strategy is implemented to decide using
      SOURCE_VAR_BASED_PARTITION or FIXED_PARTITION based on motions
      in the video. The switching test is done once every
      search_type_check_frequency frames.
      
      The selection of source_var_thresh needs to be investigated
      further later.
      
      RTC set Borg test showed 0.424% overall psnr gain, and 0.357%
      ssim gain. For clips with large enough static area, the
      encoding speedup is around 2% to 15%.
      
      Change-Id: Id7d268f1d8cbca7fb8026aa4a53b3c77459dc156
      4e66293f
  23. 07 Apr, 2014 2 commits
  24. 04 Apr, 2014 1 commit
  25. 03 Apr, 2014 2 commits
  26. 02 Apr, 2014 3 commits
    • Jingning Han's avatar
      Make frame level quantization change a parameter · d8b8d87e
      Jingning Han authored
      Parameterize the frame level quantization index used in non-RD
      coding flow with cbr.
      
      Change-Id: I79cfbd9c32c0d0fc33ad720d2180432e910baf7a
      d8b8d87e
    • Jingning Han's avatar
      Adjust rate allocation in non-RD coding mode · 751d002f
      Jingning Han authored
      This commit reduces the frequency of frames using finer quantizer
      in non-RD coding flow, and slightly tune up the quantizer resolution
      when used. It provides 1.7% compression gains in speed -5 at no speed
      difference.
      
      Change-Id: I430249a51260a841a0402666e5ec1566e4f7d5a6
      751d002f
    • Paul Wilkins's avatar
      Add speed feature for recode tolerance. · 769cd78f
      Paul Wilkins authored
      The new tolerance is a little higher than before (especially
      for kf/gf/arf) so this change gives an encode speed up
      for some clips up for speeds 0-2.
      
      Change-Id: I63f7d6c9cc11c7f58742f41e250dcd3eab1741eb
      769cd78f