1. 10 Aug, 2013 1 commit
  2. 09 Aug, 2013 11 commits
  3. 08 Aug, 2013 7 commits
    • Dmitry Kovalev's avatar
      Using MV struct instead of int[2] array. · 47fad4c2
      Dmitry Kovalev authored
      Change-Id: Iab951c555037e36b154f319f351c5e67f9abb931
      47fad4c2
    • Dmitry Kovalev's avatar
      Removing unneeded intermediate entropy_nodes_adapt var. · ac008f00
      Dmitry Kovalev authored
      Change-Id: I541a178d997b4541e0e2d4d5b854e2ed6b113c3a
      ac008f00
    • Deb Mukherjee's avatar
      Adds a new subpel motion function · 1ba91a84
      Deb Mukherjee authored
      Adds a new subpel motion estimation function that uses a 2-level
      tree-structured decision tree to eliminate redundant computations.
      It searches fewer points than iterative search (which can search
      the same point multiple times) but has the same quality roughly.
      
      This is made the default setting at speeds 0 and 1, while at
      speed 2 and above only a 1-level search is used.
      
      Also includes various cleanups for consistency and redundancy removal.
      
      Results:
      derf: +0.012% psnr
      stdhd: +0.09% psnr
      Speedup of about 2-3%
      
      Change-Id: Iedde4866f5475586dea0f0ba4cb7428fba24eee9
      1ba91a84
    • Adrian Grange's avatar
      Moved fast motion search level decision to function · 83ee80c0
      Adrian Grange authored
      Moving this block of code into a function makes the
      code easier to read and change.
      
      Change-Id: If4ede570cce1eab1982b188c4d3e4fd3d4db236e
      83ee80c0
    • Adrian Grange's avatar
      Simplify & fix potential bug in rd_pick_partition · aae6a4c8
      Adrian Grange authored
      Different partitionings were not being evaluated against
      best_rd and there were unnecessary calls to RDCOST. This
      could have resulted in a non-optimal partioning being
      selected.
      
      I simplified the variables used to track the rate,
      distortion and RD values throughout the function.
      
      Change-Id: Ifa7085ee80d824e86791432a5bc6d8fea5a3e313
      aae6a4c8
    • Dmitry Kovalev's avatar
      Removing plane_block_{width, height}_log2by4 functions. · 61c33d0a
      Dmitry Kovalev authored
      Change-Id: I040b82b8e32aee272d10cbb021c7ba1c76343d7a
      61c33d0a
    • Dmitry Kovalev's avatar
      Cleanup inside vp9_reconinter.c. · a766d891
      Dmitry Kovalev authored
      Using block width and block height instead of their logarithms. Using
      SUBPEL_BITS and SUBPEL_SHIFTS constants instead of magic numbers.
      
      Change-Id: I4e10e93c907c8a5e1cb27dfe74d1fcdcc4995448
      a766d891
  4. 07 Aug, 2013 4 commits
    • Jingning Han's avatar
      Use low precision 32x32fdct for encodemb in speed1 · debb9c68
      Jingning Han authored
      The low precision 32x32 fdct has all the intermediate steps within
      16-bit depth, hence allowing faster SSE2 implementation, at the
      expense of larger round-trip error. It was used in the rate-distortion
      optimization search loop only.
      
      Using the low precision version, in replace of the high precision one,
      affects the compression performance by about 0.7% (derf, stdhd) at
      speed 0. For speed 1, it makes derf set down by only 0.017%.
      
      Change-Id: I4e7d18fac5bea5317b91c8e7dabae143bc6b5c8b
      debb9c68
    • Dmitry Kovalev's avatar
      Adding ss_size_lookup table. · 8db2675b
      Dmitry Kovalev authored
      Removing the old one bsize_from_dim_lookup. Now we have a way to determine
      block size for plane using its subsampling values (ss_size_lookup). And
      then we can find the number of pixels in the block (num_pels_log2_lookup).
      
      Change-Id: I6fc981da2ae093de81741d3d78eaefed11015db9
      8db2675b
    • Christian Duvivier's avatar
      Neon version of vp9_short_idct4x4_add. · 78182538
      Christian Duvivier authored
      Change-Id: Idec4cae0cb9b3a29835fd2750d354c1393d47aa4
      78182538
    • Deb Mukherjee's avatar
      Clean ups of the subpel search functions · 71b43b0f
      Deb Mukherjee authored
      Removes some unused code and speed features, and organizes the
      interfaces for fractional mv step functions for use in new speed
      features to come.
      
      In the process a new speed feature - number of iterations per
      step during the subpel search - is exposed.
      
      No change when this parameter is set as the original value of 3.
      
      Results:
      subpel_iters_per_step = 3: baseline
      subpel_iters_per_step = 2: psnr -0.067%, 1% speedup
      subpel_iters_per_step = 1: psnr -0.331%, 3-4% speedup
      
      Change-Id: I2eba8a21f6461be8caf56af04a5337257a5693a8
      71b43b0f
  5. 06 Aug, 2013 12 commits
    • Dmitry Kovalev's avatar
      Using only one scale function in scale_factors struct. · 1c552e79
      Dmitry Kovalev authored
      Functions scale_mv_q4 and scale_mv_q3_to_q4 were almost identical except
      q3->q4 conversion in scale_mv_q3_to_q4. Now q3->q4 conversion happens
      directly in vp9_build_inter_predictor.
      
      Also adding useful constants: SUBPEL_BITS and SUBPEL_MASK.
      
      Change-Id: Ia0a6ad2ac07c45fdf95a5139ece6286c035e9639
      1c552e79
    • Jim Bankoski's avatar
      variance x86inc guards · 5b307886
      Jim Bankoski authored
      also fixed bug in sad calcs
      
      Change-Id: I6571fcbe37556c16ae32be66dc0fd879852aac1d
      5b307886
    • Jim Bankoski's avatar
      sse3 intrapred x86inc protected · 6eb1254b
      Jim Bankoski authored
      Change-Id: I4a3c83119cdf8a205920034c8019d855d5504605
      6eb1254b
    • Jim Bankoski's avatar
      sad + miscellaneous updates · c9126e0b
      Jim Bankoski authored
      Enable use_x86inc as a commandline option.  Fix Bug with sse2 when
      x86inc is disabled. Adds Sad asm protection to x86inc protection
      
      Change-Id: Iee0f9dd235ea10e8ace512eb362ba9bebe8c9df6
      c9126e0b
    • Deb Mukherjee's avatar
      Flexible support for various pattern searches · 15b5a6a2
      Deb Mukherjee authored
      Adds a few pattern searches to achieve various tradeoffs
      between motion estimation complexity and performance.
      The search framework is unified across these searches so that a
      common pattern search function is used for all. Besides it will
      be easier to experiment with various patterns or combinations
      thereof at different scales in the future.
      
      The new pattern search is multi-scale and is capable of using
      different patterns at different scales.
      
      The new hex search uses 8 points at the smallest scale
      and 6 points at other scales.
      Two other pattern searches - big-diamond and square are
      also added. Big diamond uses 4 points at the smallest scale and
      8 points in diamond shape at the larger scales.
      Square is very similar conceptually to the default n-step search
      but is somewhat faster since it keeps only one survivor across
      all scales.
      
      Psnr/speed-up results on derf300:
      
      hex: -1.6% psnr%, 6-8% speed-up
      big-diamond: -0.96% psnr, 4-5% speedup
      square: -0.93% psnr, 4-5% speedup
      
      Change-Id: I02a7ef5193f762601e0994e2c99399a3535a43d2
      15b5a6a2
    • Jingning Han's avatar
      Place holder for high-precision 32x32 fdct · 28566a6c
      Jingning Han authored
      Resolve compile warnings on re-define FDCT32x32_2D template.
      
      Change-Id: Idb3a54ef8d2710ce7245b726379a0e5c875f5cad
      28566a6c
    • Dmitry Kovalev's avatar
      Inlining vp9_get_pred_probs_switchable_interp function. · 0c800656
      Dmitry Kovalev authored
      There was no benefit having this function. For example, inside
      read_switchable_filter_type switchable filter context was calculated twice.
      
      Change-Id: I79cd5bf95cbc0f6d8bf91a2e32289e01b18dcff1
      0c800656
    • Dmitry Kovalev's avatar
      Motion vector code cleanup. · a39abe26
      Dmitry Kovalev authored
      Converting arguments of two functions (clamp_mv_ref, lower_mv_precision)
      from int_mv* to MV*. Rewriting is_inside function to make it much shorter.
      
      Change-Id: Ie4c4cf3eccd46707c7df099ec21fb1b61c72fc7a
      a39abe26
    • Christian Duvivier's avatar
      Move fdct32x32 SSE2 implementation in separate file. · 3d98205f
      Christian Duvivier authored
      This is in preparation for the SSE2 version of the high-precision
      32x32 forward DCT which will share a lot of code with the existing
      low precision version used for rate-distortion search.
      
      Change-Id: I7084b6bdfb480b1fabb8493fb14e3f7fcc7888c0
      3d98205f
    • Jim Bankoski's avatar
      intrapred x86inc guards · 25ec1375
      Jim Bankoski authored
      Change-Id: If0399d8e11f4ebe75a5c91abb8d6a52a7709065b
      25ec1375
    • Jim Bankoski's avatar
      block error / x86inc mods · 62c6aa88
      Jim Bankoski authored
      Change-Id: Icb607745634e10b9bac5019d06661ece09fcdb40
      62c6aa88
    • Jim Bankoski's avatar
      reworked config for use_x86_inc · a93b115c
      Jim Bankoski authored
      Support enabling it or disabling it.  Moved read out to configure.sh
      so that its done once instead of in make and in config.
      
      Change-Id: I73a9190cf31de9f03e8a577f478fa522f8c01c8b
      a93b115c
  6. 05 Aug, 2013 5 commits
    • Dmitry Kovalev's avatar
      Finally removing all old block size constants. · b9c7d04e
      Dmitry Kovalev authored
      Change-Id: I3aae21e88b876d53ecc955260479980ffe04ad8d
      b9c7d04e
    • Jim Bankoski's avatar
      fixed script problem with config_force_x86_inc · f4837579
      Jim Bankoski authored
      Change-Id: I226e5094d216b09dc47fa5511a66e2d314608000
      f4837579
    • Deb Mukherjee's avatar
      Add variance based mode/skipping · 8b3faccb
      Deb Mukherjee authored
      Adds a speed feature to skip all intra modes other than
      DC_PRED if the source variance is small. This feature is
      made part of speed 1 and up.
      
      Results on derf300: psnr -0.07%, speedup about 1-2%
      
      Also uses the source variance to fine-tune the early
      termination criteria when FLAG_EARLY_TERMINATE is on.
      This feature is made part of speed 2 and up.
      
      Results on derf300: psnr -0.52%, speedup about 5-7%
      
      Change-Id: I59e38aa836557cfa5405ae706fc64815cbfe4232
      8b3faccb
    • James Zern's avatar
      vp9/decoder: threaded row-based loop filter · a0ffa279
      James Zern authored
      Currently the only threaded option for vp9 decode. Enabled when the
      decoder config thread count is > 1.
      
      Change-Id: I082959abac9e31aa4a38ed9fd68b94680e57f4df
      a0ffa279
    • James Zern's avatar
      vp9/decoder: add thread worker · 183b77d5
      James Zern authored
      vp9/decoder/vp9_thread.[hc]
      Original source:
       http://git.chromium.org/webm/libwebp.git
       100644 blob b1615d0fb8d311666b2fa4561076c62d72c2e3ff  src/utils/thread.c
       100644 blob 13a61a4c84194c3374080cbf03d881d3cd6af40d  src/utils/thread.h
      
      Local modifications:
       - s/WebP/VP9/g
       - camelcase functions -> lower with _'s
      
      Change-Id: Ib6932640ee34f8b4782c6fbd15864a59d5d4c5fe
      183b77d5