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
    • Dmitry Kovalev's avatar
      Removing unneeded intermediate entropy_nodes_adapt var. · ac008f00
      Dmitry Kovalev authored
      Change-Id: I541a178d997b4541e0e2d4d5b854e2ed6b113c3a
    • 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.
      derf: +0.012% psnr
      stdhd: +0.09% psnr
      Speedup of about 2-3%
      Change-Id: Iedde4866f5475586dea0f0ba4cb7428fba24eee9
    • 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
    • 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
      I simplified the variables used to track the rate,
      distortion and RD values throughout the function.
      Change-Id: Ifa7085ee80d824e86791432a5bc6d8fea5a3e313
    • Dmitry Kovalev's avatar
      Removing plane_block_{width, height}_log2by4 functions. · 61c33d0a
      Dmitry Kovalev authored
      Change-Id: I040b82b8e32aee272d10cbb021c7ba1c76343d7a
    • 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
  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
    • 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
    • Christian Duvivier's avatar
      Neon version of vp9_short_idct4x4_add. · 78182538
      Christian Duvivier authored
      Change-Id: Idec4cae0cb9b3a29835fd2750d354c1393d47aa4
    • 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.
      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
  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
    • Jim Bankoski's avatar
      variance x86inc guards · 5b307886
      Jim Bankoski authored
      also fixed bug in sad calcs
      Change-Id: I6571fcbe37556c16ae32be66dc0fd879852aac1d
    • Jim Bankoski's avatar
      sse3 intrapred x86inc protected · 6eb1254b
      Jim Bankoski authored
      Change-Id: I4a3c83119cdf8a205920034c8019d855d5504605
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • Jim Bankoski's avatar
      intrapred x86inc guards · 25ec1375
      Jim Bankoski authored
      Change-Id: If0399d8e11f4ebe75a5c91abb8d6a52a7709065b
    • Jim Bankoski's avatar
      block error / x86inc mods · 62c6aa88
      Jim Bankoski authored
      Change-Id: Icb607745634e10b9bac5019d06661ece09fcdb40
    • 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
  6. 05 Aug, 2013 5 commits
    • Dmitry Kovalev's avatar
      Finally removing all old block size constants. · b9c7d04e
      Dmitry Kovalev authored
      Change-Id: I3aae21e88b876d53ecc955260479980ffe04ad8d
    • Jim Bankoski's avatar
      fixed script problem with config_force_x86_inc · f4837579
      Jim Bankoski authored
      Change-Id: I226e5094d216b09dc47fa5511a66e2d314608000
    • 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
    • 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
    • James Zern's avatar
      vp9/decoder: add thread worker · 183b77d5
      James Zern authored
      Original source:
       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