1. 17 Oct, 2013 1 commit
  2. 16 Oct, 2013 3 commits
  3. 15 Oct, 2013 2 commits
    • Alexander Voronov's avatar
      Updated encoder to handle intra-only frames · d6a59fb1
      Alexander Voronov authored
      Updated the encoder to handle frames that are coded
      intra-only. Intra-only frames must be non-showable,
      that is, the "show frame" flag must be set to 0 in
      the frame header.
      
      Tested by forcing the ARF frames to be coded intra-
      only.
      
      Note: The rate control code will need to be modified
      to account for intra-only frames better than they
      are currently handled.
      
      Change-Id: I6a9dd5337deddcecc599d3a44a7431909ed21079
      d6a59fb1
    • Jingning Han's avatar
      Re-design all-zero-coeff block index buffer use · 8e3ce1a9
      Jingning Han authored
      Use the zcoeff_blk buffer of PICK_MODE_CONTEXT to store the indexes
      of all-zero-coeff block of the current best mode. Remove the temporary
      buffer best_zcoeff_blk defined in the rate-distortion optimization
      loop. This improves the speed performance by about 0.5% in all speed
      settings.
      
      Change-Id: Ie3e15988ddfa581eafa2e19a8228d3fe4a46095c
      8e3ce1a9
  4. 14 Oct, 2013 1 commit
    • Jingning Han's avatar
      Move token_cache from cost_coeffs to MACROBLOCK · f60a3910
      Jingning Han authored
      This commit moves token_cache buffer into macroblock struct, instead
      of defining as a local variable in cost_coeffs. This avoids repeatedly
      re-allocating memory space in the rate-distortion optimization loop.
      
      The runtime at speed 0 reduces:
      bus 2000kbps, 161692ms to 159951ms
      football 600kbps, 229505ms to 225821ms
      
      Change-Id: If7da6b0b6d8c5138a16271a33c4548fba33d8840
      f60a3910
  5. 11 Oct, 2013 3 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
    • Deb Mukherjee's avatar
      Change in rddiv parameter to make it a power of 2 · d9655e42
      Deb Mukherjee authored
      Converts the constant rddiv parameter to 128 (from 100) and
      implements RDCOST with bit-shift rather than multiplication.
      Other parameters are also adjusted to roughly keep the same
      balance between Rate and Distortion.
      
      There is a slight speed-up of about 0.5-1% (at speed 0) as
      testted on football_cif.
      
      There is a slight change in performance due to small change
      in the parameters.
      derfraw300: +0.033%
      stdhdraw250; +0.102%
      
      Change-Id: I70ac69f58fa71c83108f68fe41796cd19d1fc760
      d9655e42
    • 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
  6. 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
  7. 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
  8. 08 Oct, 2013 2 commits
  9. 07 Oct, 2013 3 commits
  10. 04 Oct, 2013 2 commits
  11. 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
  12. 27 Sep, 2013 1 commit
  13. 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
  14. 25 Sep, 2013 3 commits
  15. 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
  16. 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