1. 11 Oct, 2013 2 commits
    • Dmitry Kovalev's avatar
      Consistent names for inverse hybrid transforms (1 of 2). · 7ef57391
      Dmitry Kovalev authored
      Renames:
        vp9_short_iht4x4_add     -> vp9_iht4x4_16_add
        vp9_short_iht8x8_add     -> vp9_iht8x8_64_add
        vp9_short_iht16x16_add_c -> vp9_iht16x16_256_add
      
      Change-Id: Ibca7a188fd062b196787ac5efc1ea545e7f166c0
      7ef57391
    • Yaowu Xu's avatar
      Masking intra mode choice adaptively · 8b175679
      Yaowu Xu authored
      The commit changes to mask available intra prediction modes for test
      based on prediction block size.
      
      With this patch, encoding time of CpuUsed 2 reduces from 10% to 20% for
      HD clips with a compression drop of 0.2%
      
      Change-Id: I65f320f1237c0f5ae3a355bf7caf447f55625455
      8b175679
  2. 10 Oct, 2013 3 commits
    • Jingning Han's avatar
      Re-design rate-distortion cost tracking buffers · fc19243c
      Jingning Han authored
      This commit re-designs the per transformed block rate-distortion
      costs tracking buffers. It removes redundant buffer usage, makes
      the needed context memory allocation per VP9_COMP instance and
      reuses the same buffer sets inside the rate-distortion optimization
      search loop, thereby avoiding repeatedly requiring memory space.
      
      It reduces speed 0 runtime:
      
      bus at 2000 kbps from 166763ms to 158967ms,
      football at 600 kbps from 246614ms to 234257ms.
      
      Both about 5% speed-up. Local tests suggest about 2% to 5% speed-up
      for speed 1 and 2 settings. This does not change compression
      performance.
      
      Change-Id: I363514c5276b5cf9a38c7251088ffc6ab7f9a4c3
      fc19243c
    • Yaowu Xu's avatar
      change to avoid out-of-range computation · b47cef05
      Yaowu Xu authored
      Change-Id: Id5e31833a0ef40de9f64c2f5674af7083233bf14
      b47cef05
    • Deb Mukherjee's avatar
      Adjustment to mv cost parameters · e4b0fce4
      Deb Mukherjee authored
      Increases these parameters.
      There is a small efficiency gain.
      
      Change-Id: Ie5f0ddb39c907d335e0dafa5eb112365a81f4542
      derfraw300: +0.091%
      stdhdraw250: +0.238%
      e4b0fce4
  3. 09 Oct, 2013 3 commits
    • Jingning Han's avatar
      Fix intra dist model of skip_encode feature · 013db649
      Jingning Han authored
      The intra mode distortion adjustment for skip_encode feature was
      broken in the refactoring cc91851. This commit fixes it and tunes
      the distortion models used therein.
      
      Change-Id: I0d676e82f8e855536a90cf9b3e3fdefafcd886c6
      013db649
    • Deb Mukherjee's avatar
      Clean-ups in rdopt.c · eb8b1cd7
      Deb Mukherjee authored
      Some minor cleanups in preparation for experimentation with
      some encode parameters and thresholds
      
      Change-Id: I449d66da97eae0a7acdf4aae374e2f9111342056
      eb8b1cd7
    • Jingning Han's avatar
      Deprecate the use of PARTITION_INFO from encoder · 03fe08ca
      Jingning Han authored
      Use b_mode_info to store the inter prediction mode of sub8x8 block,
      in replacement of the use of partition_info. Remove redundant buffer
      update for partition_info. For bus_cif at 2000 kbps, this seem to make
      speed 0 about 1% faster.
      
      Change-Id: Id1b3be45e75a24fb4b42335ac480c23e440978f6
      03fe08ca
  4. 08 Oct, 2013 2 commits
  5. 07 Oct, 2013 3 commits
  6. 04 Oct, 2013 2 commits
  7. 03 Oct, 2013 7 commits
    • Jingning Han's avatar
      Remove redundant second_ref_frame check in sub8x8 · 2952b7d1
      Jingning Han authored
      This commit removes the redundant second reference frame check in
      the rate-distortion optimization loop for sub8x8 blocks.
      
      Change-Id: I13a57a6f624c4a9bcef02ff2a867fa30d8b44a93
      2952b7d1
    • Jingning Han's avatar
      Use vp9_zero in sub8x8 RD optimiazion loop · b9daef91
      Jingning Han authored
      Change-Id: Ic23a705e48cadaa7151f2bd8536d56636cb973e3
      b9daef91
    • Jingning Han's avatar
      Change b_mode_info definition from union to struct · 4093192e
      Jingning Han authored
      This commit defines b_mode_info as a struct type. This will allow
      us to further remove the use of PARTITION_INFO in the encoding process.
      
      Change-Id: I975b0f7d557b5e0f66545a61b472def76b671cce
      4093192e
    • Jingning Han's avatar
      Remove unused variables in inter_mode rd loops · 793c2d84
      Jingning Han authored
      Remove redundant variable definition/use in rate-distortion search
      loop for regular and sub8x8 blocks, respectively.
      
      Change-Id: Ic0eb3660bb6851ba2eb8d702ba9fd11595000d01
      793c2d84
    • Jingning Han's avatar
      Refactor inter mode rate-distortion search · 11abab35
      Jingning Han authored
      This commit separates the rate-distortion optimization loop of
      superblocks from that of sub8x8 blocks. This allows better design
      rate-distortion optimization search loop for each setting. It also
      removes the use of SPLITMV and I4X4_PRED therein.
      
      No performance change in speed 0 settings. For bus@CIF at 2000kbps,
      the speed 1 runtime goes from 48009ms to 43894ms (about 10% faster).
      The overall compression performance on derf changed by -0.021%.
      
      Speed 2 runtime goes from 27114ms to 28700ms (6% slower), while the
      overall coding efficiency goes up by 1.629% for derf, 1.236% for yt.
      
      Change-Id: Ie6bdfa0a370148dd60bd800961077f7e97e67dd4
      11abab35
    • Dmitry Kovalev's avatar
      Using vp9_zero instead of vpx_memset. · 9250d152
      Dmitry Kovalev authored
      Change-Id: I9a0d0e9c3459954aa7b9c68f92cc5d56385ebd18
      9250d152
    • Paul Wilkins's avatar
      Speed setting review. · 6253cc92
      Paul Wilkins authored
      Substantial reworking of the speed vs quality trade offs for
      speed 1 and 2.
      
      In this patch I am attempting to freeze the "quality" meaning of
      speeds 1 and 2 relative to speed 0 so that in future we can
      better evaluate progress.
      
      I am targeting :
      Speed 1 quality ~-5% vs speed 0.
      Speed 2 quality ~-10% vs speed 0
      
      It is inevitable that quality will still fluctuate a little as we adjust
      settings and add new features, but we will attempt to keep as
      close as possible to these values. Above speed 2 things will remain
      a bit more fluid for now.
      
      In this patch speed 1 is approximately 4-5x as fast as speed 0. This
      is similar to before but the quality hit is a lot less. Likewise speed 2
      is approximately 2x as fast as speed 1 but is similar in quality to the
      previous speed 1 configuration.
      
      Also slight change to behavior of FLAG_EARLY_TERMINATE to insure
      all reference frames get at least one rd test. Important for very low
      variance regions.
      
      WIP :- Added a new speed level with old speed 4 becoming speed 5.
      Speed 3 and 4 tradeoffs still WIP
      
      Change-Id: Ic7a38dd7b5b63ab1501f9352411972f480ac6264
      6253cc92
  8. 27 Sep, 2013 1 commit
  9. 26 Sep, 2013 2 commits
    • Guillaume Martres's avatar
      Simplify RDMULT and RDDIV derivation · 2b426969
      Guillaume Martres authored
      Don't divide RDMULT and RDDIV by 100 when RDMULT > 1000. This was
      probably done to avoid overflow when the rd cost was stored in a 32 bits
      integer but this is not the case anymore. This change will make it easier
      to support multiple quantizers per frame.
      
      derf compression gain at speed 0: 0.037%
      
      Change-Id: Ibeeb9b7cfa1a132a7af41bc90fc07a3bba0857f6
      2b426969
    • Dmitry Kovalev's avatar
      Using is_inter_block and has_second_ref functions. · eda4e24c
      Dmitry Kovalev authored
      Change-Id: I60dee58a4fd24d3c4f3c101a49d30e217309f43a
      eda4e24c
  10. 25 Sep, 2013 3 commits
  11. 24 Sep, 2013 3 commits
    • Dmitry Kovalev's avatar
      Moving from int_mv* to MV* (2). · b87696ac
      Dmitry Kovalev authored
      Updating fractional_mv_step_fp and fractional_mv_step_comp_fp function
      types.
      
      Change-Id: I601c4378bc39ac3ffd4e295d9cbd8e1f74829d46
      b87696ac
    • Yaowu Xu's avatar
      Replace memcpy with vpx_memcpy · 9be0bb19
      Yaowu Xu authored
      Also removed obselete comment
      
      Change-Id: Iae1664777d76383639c637ee786e0d50fc45819a
      9be0bb19
    • Yaowu Xu's avatar
      Prevent using uninitialized value in RD decision · ff1ae7f7
      Yaowu Xu authored
      INT64_MAX may be assigned as RDCOST when RDCSOST computation is skipped
      for speed, this commit to prevent INT64_MAX from being used as real
      RDCOST in transform size decision.
      
      Change-Id: I89a945134191bbdea1f1431ade70424ac079eaac
      ff1ae7f7
  12. 23 Sep, 2013 1 commit
    • Jingning Han's avatar
      Enable per transformed block zero coeffs forcing · a517343c
      Jingning Han authored
      This commit enables forcing all coefficients zero per transformed
      block, when its rate-distortion cost is lower than regular coeff
      quantization.
      
      The overall performance improvement (including its parent patch on
      calculating rd cost per transformed block) at speed 1:
      derf:  0.298%
      yt:    0.452%
      hd:    0.741%
      stdhd: 0.006%
      
      Change-Id: I66005fe0fd7af192c3eba32e02fd6d77952accb5
      a517343c
  13. 20 Sep, 2013 2 commits
    • Jingning Han's avatar
      Calculate rd cost per transformed block · 78fbb106
      Jingning Han authored
      This commit makes the rate-distortion optimization loop evaluate
      the rd costs of regular quantization and all zero coeffs, per
      transformed block. It improves speed 1 compression performance:
      
      derf: 0.245%
      yt:   0.515%
      
      For a large partition that consists multiple transformed blocks,
      this allows more flexibility to selectively force a portion of
      them coded as all zero coeffs, as well be continued in the next
      patches.
      
      Change-Id: I211518be4179747b57375696f017d1160cc91851
      78fbb106
    • Dmitry Kovalev's avatar
      Moving from int_mv to MV. · e51e7a0e
      Dmitry Kovalev authored
      Converting vp9_mv_bit_cost, mv_err_cost, and mvsad_err_cost
      functions for now.
      
      Change-Id: I60e3cc20daef773c2adf9a18e30bc85b1c2eb211
      e51e7a0e
  14. 19 Sep, 2013 2 commits
    • Jingning Han's avatar
      Remove redundant mv_pred use for sub8x8 blocks · 44b708b4
      Jingning Han authored
      The sub8x8 blocks has its own motion vector reference scheme. The
      mv_pred is only used blocks of sizes 8x8 and above, to find the
      starting point for motion search.
      
      This change does not change any coding behavior. It makes the
      encoding process slightly faster. (0.5% speed-up for local test on
      speed 1.)
      
      Change-Id: I746ee6ef0eac19aa3621be014afa12be8d82cbb9
      44b708b4
    • Yaowu Xu's avatar
      fix integer overflow errors · 014acfa2
      Yaowu Xu authored
      Change-Id: I76f440a917832c02d7a727697b225bac66b99f56
      014acfa2
  15. 18 Sep, 2013 2 commits
  16. 17 Sep, 2013 2 commits