1. 08 Oct, 2013 1 commit
  2. 07 Oct, 2013 1 commit
  3. 04 Oct, 2013 2 commits
  4. 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
    • Jingning Han's avatar
      Use vp9_zero in sub8x8 RD optimiazion loop · b9daef91
      Jingning Han authored
      Change-Id: Ic23a705e48cadaa7151f2bd8536d56636cb973e3
    • 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
    • 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
    • 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
    • Dmitry Kovalev's avatar
      Using vp9_zero instead of vpx_memset. · 9250d152
      Dmitry Kovalev authored
      Change-Id: I9a0d0e9c3459954aa7b9c68f92cc5d56385ebd18
    • 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
  5. 27 Sep, 2013 1 commit
  6. 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
    • Dmitry Kovalev's avatar
      Using is_inter_block and has_second_ref functions. · eda4e24c
      Dmitry Kovalev authored
      Change-Id: I60dee58a4fd24d3c4f3c101a49d30e217309f43a
  7. 25 Sep, 2013 3 commits
  8. 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
      Change-Id: I601c4378bc39ac3ffd4e295d9cbd8e1f74829d46
    • Yaowu Xu's avatar
      Replace memcpy with vpx_memcpy · 9be0bb19
      Yaowu Xu authored
      Also removed obselete comment
      Change-Id: Iae1664777d76383639c637ee786e0d50fc45819a
    • 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
  9. 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
      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
  10. 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
      Change-Id: I211518be4179747b57375696f017d1160cc91851
    • 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
  11. 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
    • Yaowu Xu's avatar
      fix integer overflow errors · 014acfa2
      Yaowu Xu authored
      Change-Id: I76f440a917832c02d7a727697b225bac66b99f56
  12. 18 Sep, 2013 2 commits
  13. 17 Sep, 2013 2 commits
  14. 16 Sep, 2013 1 commit
    • Yaowu Xu's avatar
      fix a problem where an invalid mv used in search · eeae6f94
      Yaowu Xu authored
      The commit added reset of pred_mv at the beginning of each SB64x64
      partition mv search, also limited the usage of pred_mv only when
      search on the largest partition is already done. This is to fix
      a crash at speed 1/2 encoder where an invalid mv is used in mv
      Change-Id: I39010177da76d054e3c90b7899a44feb2e3a5b1b
  15. 13 Sep, 2013 2 commits
    • Jingning Han's avatar
      Adaptive motion search control · c4826c59
      Jingning Han authored
      This commit enables adaptive constraint on motion search range for
      smaller partitions, given the motion vectors of collocated larger
      partition as a candidate initial search point.
      It makes speed 0 runtime of bus at CIF and 2000 kbps goes from
      167s down to 162s (3% speed-up), at 0.01dB performance gains. In
      the settings of speed 1, this makes the runtime goes from 33687 ms
      to 32142 ms (4.5% speed-up), at 0.03dB performance gains.
      Compression performance wise, it gains at speed 1:
      derf  0.118%
      yt    0.237%
      hd    0.203%
      stdhd 0.438%
      Change-Id: Ic8b34c67810d9504a9579bef2825d3fa54b69454
    • Paul Wilkins's avatar
      Fix VP9_mode_order[] · 1407cf85
      Paul Wilkins authored
      Mis-merge of the following change managed to break mode order
      and delete two mode options (new alt ref and near alt ref)
      It also created a situation where we could test two undefined
      modes off the end of the VP9_mode_order[] data structure.
        "clang warnings : remove split and i4x4_pred fake modes"
        "Change Id: I8ef3c*"
      Initial testing on Akiyo at speed 2.
      101.35	 44.567	 44.447 improves to
      96.82	 44.915	 44.815
      Approx 0.3-0.4db gain and 2.5% size reduction
      Change-Id: Icff813e7c0778d140ad4f0eea18cf1ed203c4e34
  16. 12 Sep, 2013 1 commit
  17. 11 Sep, 2013 2 commits
  18. 10 Sep, 2013 2 commits
    • Yunqing Wang's avatar
      Modify encode breakout for static frames · 939791a1
      Yunqing Wang authored
      Thank Paul for the suggestions. While turning on static-thresh
      for static-image videos, a big jump on bitrate was seen. In this
      patch, we detected static frames in the video using first-pass
      stats. For different cases, disable encode breakout or reduce
      encode breakout threshold to limit the skipping.
      More modification need be done to break incorrect partition
      picking pattern for static frames while skipping happens.
      Change-Id: Ia25f47041af0f04e229c70a0185e12b0ffa6047f
    • Paul Wilkins's avatar
      Modified mode skip functionality. · 4f660cc0
      Paul Wilkins authored
      A previous speed feature skipped modes not used in earlier
      partitions but this not longer worked as intended following
      changes to the partition coding order and in conjunction
      with some other speed features (Especially speed 2 and above).
      This modified mode skip feature sets a mask after the first X
      modes have been tested in each partition depending on the
      reference frame of the current best case.
      This patch also makes some changes to the order modes are
      tested to fit better with this skip functionality.
      Initial testing suggests speed and rd hit count improvements
      of up to 20% at speed 1. Quality results. (derf -1.9%, std hd  +0.23%).
      Change-Id: Idd8efa656cbc0c28f06d09690984c1f18b1115e1
  19. 09 Sep, 2013 2 commits
    • Ivan Maltz's avatar
      API extensions and sample app for spacial scalable encoder · 01b35c3c
      Ivan Maltz authored
      Sample app: vp9_spatial_scalable_encoder
      vpx_codec_control extensions:
      expanded buffer size for vp9_convolve
      modified setting of initial width in vp9_onyx_if.c so that layer size
      can be set prior to initial encode
      Default number of layers set to 3 (VPX_SS_DEFAULT_LAYERS)
      Number of layers set explicitly in vpx_codec_enc_cfg.ss_number_layers
      Change-Id: I2c7a6fe6d665113671337032f7ad032430ac4197
    • James Zern's avatar
      Revert "New mode_info_context storage" · 54a03e20
      James Zern authored
      This reverts commit dae17734
      Encode crashes, leaks and increases integer overflow errors.
      Change-Id: I595aa2649bb8d0b6552ff91652837a74c103fda2
  20. 06 Sep, 2013 1 commit
    • Scott LaVarnway's avatar
      New mode_info_context storage · dae17734
      Scott LaVarnway authored
      mode_info_context was stored as a grid of MODE_INFO structs.
      The grid now constists of a pointer to a MODE_INFO struct and
      a "in the image" flag.  The MODE_INFO structs are now stored
      as a stream, eliminating unnecessary copies and is a little
      more cache friendly.
      For the test clips used, the decoder performance improved
      by ~4.3% (1080p) and ~9.7% (720p).
      Patch Set 2: Re-encoded clips with latest. Now ~1.7% (1080p)
      and 5.9% (720p).
      Change-Id: I846f29e88610fce2523ca697a9a9ef2a182e9256