1. 04 Oct, 2013 5 commits
    • Dmitry Kovalev's avatar
      Giving consistent names to IDCT/IWHT functions. · 3a060257
      Dmitry Kovalev authored
      The idea is to have the following names for each transform size:
      etc for 16x16, 32x32
      The actual list of renames in this patch:
      vp9_idct_add_lossless     -> vp9_iwht4x4_add
      vp9_short_iwalsh4x4_add   -> vp9_iwht4x4_16_add
      vp9_short_iwalsh4x4_1_add -> vp9_iwht4x4_1_add
      vp9_idct_add            -> vp9_idct4x4_add
      vp9_short_idct4x4_add   -> vp9_idct4x4_16_add
      vp9_short_idct4x4_1_add -> vp9_idct4x4_1_add
      Change-Id: I6f43f7437c68dd30cdd05d72e213765578ed30b1
    • Paul Wilkins's avatar
      Remove mode_skip_start and mask code for sub 8x8 · 8abd92f1
      Paul Wilkins authored
      This code serves no purpose in the re-factored sub 8x8 code.
      Change-Id: I5364986224d1a28b71bcb046ec8557a3d14aaa47
    • Paul Wilkins's avatar
      Selective masking of split modes. · de6ecc5a
      Paul Wilkins authored
      Allow selective masking of individual split modes rather than
      just a single on / off flag.
      For speed 2 recovers the large speed loss seen for some derf
      clips  in change Ie6bdfa0a370148dd60bd800961077f7e97e67dd4
      and a small quality gain.
      For speed 1 10 % speed increase observed locally on some derf clips
      for minimal quality change.
      Change-Id: If86191087b93cbc05351c26c60c7933e2149e485
    • Paul Wilkins's avatar
      Missing threshold case for disable split. · 03dd2818
      Paul Wilkins authored
      In relation to change:
      Refactor inter mode rate-distortion search
      sf->thresh_mult_sub8x8[THR_INTRA] = INT_MAX missing;
      Change-Id: Ia86b68a5073368a3e2ca124a27b632243b525c8b
    • Dmitry Kovalev's avatar
      Replacing duplicated code with get_scan_and_band call. · 8b344375
      Dmitry Kovalev authored
      Change-Id: I2cc3684f416a63dc99b9303109f9850f34a470d5
  2. 03 Oct, 2013 12 commits
    • Dmitry Kovalev's avatar
      BITSTREAM - "update_map" SEMANTICS BROKEN IN 398ddafb · 0e230483
      Dmitry Kovalev authored
      This patch reverts old commit 398ddafb
      "New way of updating last frame segmentation map.".
      Change-Id: Iba730f433c30ed7f5e5449d6768049cbf9a2b2c5
    • 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
    • Dmitry Kovalev's avatar
      Reading diff update flag inside vp9_diff_update_prob. · 6f1bb224
      Dmitry Kovalev authored
      Change-Id: I5ae659c1bfb132428a7272d094b5287d144ec7c8
    • Yunqing Wang's avatar
      Rewrite HORIZx4 and HORIZx8 in subpixel filter functions · ed22179a
      Yunqing Wang authored
      In subpixel filters, prefetched source data, unrolled loops,
      and interleaved instructions.
      In HORIZx4, integrated the idea in Scott's CL (commit:
      d22a504d), which was suggested by
      Erik/Tamar from Intel. Further tweaking was done to combine row 0,
      2, and row 1, 3 in registers to do more 2-row-in-1 operations until
      the last add.
      Test showed a ~2% decoder speedup.
      Change-Id: Ib53d04ede8166c38c3dc744da8c6f737ce26a0e3
    • 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
    • Jim Bankoski's avatar
      make use last partition consider motion · f1d3e5e4
      Jim Bankoski authored
      This commit causes use last partition to consider whether a 64x64 has
      motion that might make a new partitioning worth while.
      Change-Id: I3a57bedef4f3cd961fadbfa96651c206fa36da4a
    • Dmitry Kovalev's avatar
      Dmitry Kovalev authored
      Adding appropriate test vector vp90-2-06-bilinear.webm.
      Change-Id: Ia3bbf57318e0cc61a1b724fe751e3f9c7e11b337
  3. 02 Oct, 2013 7 commits
  4. 01 Oct, 2013 8 commits
  5. 30 Sep, 2013 8 commits
    • Dmitry Kovalev's avatar
      Removing unused vp9_coeff_stats_model typedef. · c982a73b
      Dmitry Kovalev authored
      Change-Id: I6973e7121b6393379b5759f288632e8eab763d3e
    • Dmitry Kovalev's avatar
      Adding const to function arguments. · c64e2383
      Dmitry Kovalev authored
      Function list:
      Change-Id: I120d8945a34378cf285d6bd415e23de1d522cf2f
    • Jingning Han's avatar
      Fix rectangular partition check in speed 1 · 195061fe
      Jingning Han authored
      Make encoder skip rectangular partition check in speed 1 and above,
      when early termination was triggered in partition split.
      Thanks Guillaume (gmartres@) for catching this issue.
      This change makes bus_cif at 2000kbps speed 1 runtime goes down from
      25612ms to 23438ms (about 9% speed-up), at the expense of -0.235%
      performance down.
      Change-Id: I98613fad081a261d30d5fa206f934ca70601c180
    • Dmitry Kovalev's avatar
      Using array of motion vectors instead of separate variables. · c151bdd4
      Dmitry Kovalev authored
      Change-Id: I7380a089105f658257bbb3e30a525da168e76952
    • Dmitry Kovalev's avatar
      Removing vp9_add_constant_residual_{8x8, 16x16, 32x32} functions. · 548671dd
      Dmitry Kovalev authored
      We don't need these functions anymore. The only one which was actually
      used is vp9_add_constant_residual_32x32. Addition of
      vp9_short_idct32x32_1_add eliminates this single usage. SSE2 optimized
      version of vp9_short_idct32x32_1_add will be added in the next patch set,
      right now it is only C implementation. Now we have all idct functions
      implemented in a consistent manner.
      Change-Id: I63df79a13cf62aa2c9360a7a26933c100f9ebda3
    • Paul Wilkins's avatar
      Improved auto_partition_range. · 65b93c7e
      Paul Wilkins authored
      The code now takes into account temporal and spatial
      information to determine the partition size range, but the
      frequency counts have been removed.
      The net effect is similar in quality but about 10% faster.
      Change-Id: I39a513fb79cec9177b73b2a7218f0da70963ae95
    • Paul Wilkins's avatar
      Alter Speed 3. · a76caa7f
      Paul Wilkins authored
      This patch deletes the variance based speed three partitioning.
      Speed 3 now uses the same partitioning method as speed 2
      but with some stricter conditions.
      The speed and quality are now somewhere between speeds 2 and 4
      whereas before it was worse in both than speed 4.
      Change-Id: Ia142e7007299d79db3ceee6ca8670540db6f7a41
    • Jim Bankoski's avatar
      vp9_entropy.c lint issues · 77746032
      Jim Bankoski authored
      Change-Id: I4e163cc4ce9ec2f3a5a8b9da478049c71b08d71f