1. 01 Apr, 2015 2 commits
    • James Zern's avatar
      vp9/neon: skip some files in high-bitdepth build · a98f6c02
      James Zern authored
      exclude files that only contain functions for non-high-bitdepth builds.
      this removes some warnings related to missing prototypes
      
      Change-Id: Ic6642998c46a7b808c6c53b2f9c34bcd4d037abe
      a98f6c02
    • James Zern's avatar
      vp9: fix high-bitdepth NEON build · 88453340
      James Zern authored
      remove incorrect specializations in rtcd and update a configuration
      check in partial_idct_test.cc
      
      Change-Id: I20f551f38ce502092b476fb16d3ca0969dba56f0
      88453340
  2. 31 Mar, 2015 5 commits
    • Yunqing Wang's avatar
      Rename vbp thresholds · c28ff1a9
      Yunqing Wang authored
      Code refactoring
      
      Change-Id: I410fcce1bc6d95c62c474445f4c97ea8469f1e79
      c28ff1a9
    • Jingning Han's avatar
      Tuning SATD rate calculation for speed · 531468a0
      Jingning Han authored
      This commit allows the encoder to check the eob per transform
      block to decide how to compute the SATD rate cost. If the entire
      block is quantized to zero, there is no need to add anything; if
      only the DC coefficient is non-zero, add its absolute value;
      otherwise, sum over the block. This reduces the CPU cycles spent
      on vp9_satd_sse2 to one third.
      
      Change-Id: I0d56044b793b286efc0875fafc0b8bf2d2047e32
      531468a0
    • Jingning Han's avatar
      Use aligned copy in 8x8 Hadamard transform SSE2 · 014fa452
      Jingning Han authored
      This reduces the 8x8 Hadamard transform cycles by 20%.
      
      Change-Id: If34c5e02f3afa42244c6efabe121f7cf5d2df41b
      014fa452
    • Jingning Han's avatar
      Allow block skip coding option in RTC mode · ebe1be91
      Jingning Han authored
      When the estimated rate-distortion cost of skip coding mode is
      lower than that of sending quantized coefficients, allow the
      encoder to drop these coefficients. This improves the compression
      performance of speed -6 by 0.268% and makes the encoding speed
      slightly faster.
      
      Change-Id: Idff2d7ba59f27ead33dd5a0e9f68746ed3c2ab68
      ebe1be91
    • hui su's avatar
      Move vp9_coef_con_tree to common/ · 302e24cb
      hui su authored
      This tree should be defined in common/, as it is needed for
      both encoder and decoder.
      
      Change-Id: I4f5cbc80025cf2ced14182c98f7c82dc7d0f87db
      302e24cb
  3. 30 Mar, 2015 6 commits
    • Marco's avatar
      Set postproc flags in decoder_get_frame. · 385ca8f7
      Marco authored
      The postproc settings were not set in decoder_get_frame().
      
      Change-Id: I20d23de3ea18f6df061a53d691d4095d5c62532a
      385ca8f7
    • Jingning Han's avatar
      Fix 8x8 Hadamard SSE2 implementation · 34a996ac
      Jingning Han authored
      This commit fixes the SSE2 version 8x8 Hadamard transform
      alignment and makes it consistent with the C version.
      
      Change-Id: I1304e5f97e0e5ef2d798fe38081609c39f5bfe74
      34a996ac
    • Jingning Han's avatar
      Enable 16x16 Hadamard transform in SATD based mode decision · 26d3d3af
      Jingning Han authored
      This commit replaces the 16x16 2D-DCT transform with Hadamard
      transform for RTC coding mode. It reduces the CPU cycles cost
      on 16x16 transform by 5X. Overall it makes the speed -6 encoding
      speed 1.5% faster without compromise on compression performance.
      
      Change-Id: If6c993831dc4c678d841edc804ff395ed37f2a1b
      26d3d3af
    • Jingning Han's avatar
      Use SATD based mode decision for block sizes below 16x16 · b4b5af6a
      Jingning Han authored
      This commit makes the encoder to select between SATD/variance as
      metric for mode decision. It also allows to account chroma
      component costs for mode decision as well. The overall encoding
      time increase as compared to variance based mode selection is about
      15% for speed -6. The compression performance is on average 2.2%
      better than variance based approach, with about 5% compression
      performance gains for hard clips (e.g., jimredvga, nikas720p, and
      mmmoving) at lower bit-rate range.
      
      Change-Id: I4d04a31d36f4fcb3f5f491dacd6e7fe44cb9d815
      b4b5af6a
    • Jingning Han's avatar
      Reuse inter prediction pixel block for Hadamard transform · 8a927a1b
      Jingning Han authored
      It saves one unnecessary motion compensated prediction constructed
      by using 8-tap filter.
      
      Change-Id: I101215131e6f38621d5935885f94cc74de6a5377
      8a927a1b
    • Jingning Han's avatar
      Hadamard transform based coding mode decision process · 8c411f74
      Jingning Han authored
      This commit uses Hadamard transform based rate-distortion cost
      estimate for rtc coding mode decision. It improves the compression
      performance of speed -6 for many hard clips at lower bit-rates.
      For example, 5.5% for jimredvga, 6.7% for mmmoving, 6.1% for
      niklas720p. This will introduce extra encoding cycle costs at
      this point.
      
      Change-Id: Iaf70634fa2417a705ee29f2456175b981db3d375
      8c411f74
  4. 28 Mar, 2015 1 commit
  5. 27 Mar, 2015 1 commit
  6. 25 Mar, 2015 3 commits
    • Adrian Grange's avatar
      Remove 8-bit array in HBD · ad18b2b6
      Adrian Grange authored
      Creating both 8- and 16-bit arrays and then only using one
      of them is wasteful.
      
      Change-Id: Ic5b397c283efaff7bcfff2d2413838ba3e065561
      ad18b2b6
    • Adrian Grange's avatar
      Replace heap with stack memory allocation · 65df3d13
      Adrian Grange authored
      Replaced the dynamic memory allocation of the
      second_pred buffer with an allocation on the stack.
      
      Change-Id: I2716c46b71e8587714ca5733a99eca2c68419b23
      65df3d13
    • Adrian Grange's avatar
      Fix use of scaling in joint motion search · 8d8d7bfd
      Adrian Grange authored
      To enable us to the scale-invariant motion estimation
      code during mode selection, each of the reference
      buffers is scaled to match the size of the frame
      being encoded.
      
      This fix ensures that a unit scaling factor is used in
      this case rather than the one calculated assuming that
      the reference frame is not scaled.
      
      Change-Id: Id9a5c85dad402f3a7cc7ea9f30f204edad080ebf
      8d8d7bfd
  7. 24 Mar, 2015 3 commits
  8. 23 Mar, 2015 3 commits
    • Alex Converse's avatar
      Simplify skip check. · b7605a9d
      Alex Converse authored
      SEG_LVL_SKIP implies skip. This is enforced by skip = write_skip().
      
      Change-Id: I61c79581c9c53deae36685c2bcf388cb4d8827d3
      b7605a9d
    • hkuang's avatar
      Optimize the intra frame decode to skip some unnecessary copy. · 85107641
      hkuang authored
      This speeds up a normal YT style 1080P clip decode by ~1% on nexus 7.
      
      Change-Id: Ied7fa0d8bc941b2adb4db9382f549ee4d5654f3a
      85107641
    • paulwilkins's avatar
      Enable group adaptive max q by default. · 691ec45b
      paulwilkins authored
      Set the GF group adaptive max Q compile flag to 1 by default.
      
      This change has a quite big visual impact in some clips and also
      contributes to tighter rate control.
      
      For short test clips that have consistent content the impact is
      quite small on metrics but for more varied long form clips there is
      a drop in overal psnr but a sharp rise in average psnr caused by
      greater expenditure on some easier sections and tighter rate clipping
      in hard sections.
      
      In chunck'ed encodes some of the effect will already be present due
      to the independent rate control in each chunk but this change takes
      the control down to a smaller scale.
      
      yt hd +10.67%, - 3.77%, -1.56%
      yt +9.654%, - 3.6%, - 1.82%
      std hd +0.25%, -0.85%, -0.42%
      derf +0.25%, - 1.1%. - 0.87%
      
      Change-Id: Ibbc39b800d99d053939f4c6712d715124082843e
      691ec45b
  9. 21 Mar, 2015 1 commit
    • Yaowu Xu's avatar
      vp9_pred_mv(): misc fixes and optimizations · 9fd8abc5
      Yaowu Xu authored
      1. skip near if it is same as nearest
      2. correct rounding for converting mv to fullpel position
      3. update pred_mv_sad after new mv search.
      
      Overall .1%~.25% compression gains on rtc set for speed 5, 6, 7, 8.
      
      Change-Id: Ic300ca53f7da18073771f1bb993c58cde9deee89
      9fd8abc5
  10. 20 Mar, 2015 5 commits
    • Alex Converse's avatar
      Don't apply active map on key frames. · 6d6ef8eb
      Alex Converse authored
      This allows applciations to be KF oblivious.
      
      Change-Id: Ic02712eae6ad8d6b3eaec26548299d24ca0d5cc0
      6d6ef8eb
    • James Zern's avatar
      vp[89]_cx_iface.c: remove obsolete ABI checks · fef91c90
      James Zern authored
      Change-Id: I49a7017e8adc18ff03d748cb328814a8a3e1bcf6
      fef91c90
    • Alex Converse's avatar
      Set loop filter level to zero on inactive segment. · e032fc7b
      Alex Converse authored
      Change-Id: I6022a79351882a72a219aee13563bf21bcd70383
      e032fc7b
    • paulwilkins's avatar
      Revised rd adjustment for variance. · 7e234b92
      paulwilkins authored
      Revised adjustment for rd based on source complexity.
      Two cases:
      
      1) Bias against low variance intra predictors
      when the actual source variance is higher.
      
      2) When the source variance is very low to give a slight
      bias against predictors that might introduce false texture
      or features.
      
      The impact on metrics of this change across the test sets is
      small and mixed.
      
      derf -0.073%, -0.049%, -0.291%
      std hd -0.093%, -0.1%, -0.557%
      yt  +0.186%, +0.04%, - 0.074%
      ythd +0.625%, + 0.563%, +0.584%
      
      Medium to strong psycho-visual improvements in some
      problem clips.
      
      This feature and intra weight on GF group length now
      turned on by default.
      
      Change-Id: Idefc8b633a7b7bc56c42dbe19f6b2f872d73851e
      7e234b92
    • paulwilkins's avatar
      Experimental rd bias based on source vs recon variance. · 9a1ce7be
      paulwilkins authored
      This experiment biases the rd decision based on the impact
      a mode decision has on the relative spatial complexity of the
      reconstruction vs the source.
      
      The aim is to better retain a semblance of texture even if it
      is slightly misaligned / wrong, rather than use a simple rd
      measure that tends to favor use of a flat predictor if a perfect
      match can't be found.
      
      This improves the appearance of texture and visual quality
      on specific test clips but is hidden under a flag and currently
      off by default pending visual quality testing on a wider Yt set.
      
      Change-Id: Idf6e754a8949bf39ed9d314c6f2daaa20c888aad
      9a1ce7be
  11. 19 Mar, 2015 4 commits
    • Adrian Grange's avatar
      Restore first ref frame pointer to the correct value · 12d946df
      Adrian Grange authored
      The joint_motion_search function alternates prediction
      between two reference frames. In order to reuse existing
      code, a pointer to the appropriate reference frame is
      written into xd->plane[0].pre[0], that the motion
      estimation code assumes points to the reference frame.
      
      If this first reference frame was scaled then the
      pointer was incorrectly being reset to point to the
      unscaled reference frame rather than the scaled
      version.
      
      Change-Id: I76f73a8d8f4f15c1f3a5e7e08a35140cdb7886ab
      12d946df
    • Adrian Grange's avatar
      Move joint_motion_search & delete function prototype · 53c9ebe6
      Adrian Grange authored
      Change-Id: I7fb3a78ed0e0bc940d8b4a57c470302f8369782f
      53c9ebe6
    • James Zern's avatar
      put spatial svc behind an ABI check · 18613408
      James Zern authored
      this removes the CONFIG_* checks from public headers, but means
      '--enable-experimental --enable-spatial-svc' builds will fail without a
      local change to the ABI in vpx_encoder.h. this should be all right for
      testing this experiment.
      
      Change-Id: Ief55e7b9d1e8332cfce990275e04c29b30af0c4a
      18613408
    • hkuang's avatar
      Safely free all the frame buffers after all the workers finish the work. · b88dac89
      hkuang authored
      Issue: 978
      
      Change-Id: Ia7aa809095008f6819a44d7ecb0329def79b1117
      b88dac89
  12. 18 Mar, 2015 6 commits
    • James Zern's avatar
      vp9_resize_plane: quiet some static analysis warnings · c4367b9b
      James Zern authored
      document resolution assumptions with a few asserts
      
      Change-Id: Ia4ab738fd3e0a1ba0ed30a57facd2658c2c1fd60
      c4367b9b
    • James Zern's avatar
      vp9_fdct8x8_quant_ssse3: quiet a static analysis warning · 388add96
      James Zern authored
      add an assert to validate 'in' array size
      
      Change-Id: Ie5a24275c066d9dd59714f6104510abbd4850dc5
      388add96
    • James Zern's avatar
      vp9_fdct8x8_quant_sse2: quiet a static analysis warning · 198b039e
      James Zern authored
      add an assert to validate 'in' array size
      
      Change-Id: Ib72946a86f34e1ce8a69954e8e3e4fe1a0f18a91
      198b039e
    • James Zern's avatar
      vp9_mv_pred: quiet a static analysis warning · 42836929
      James Zern authored
      add an assert to validate pred_mv array size
      
      Change-Id: I532b882b71e2baff3ac76e07ed133ec5a11bd0fc
      42836929
    • Marco's avatar
      Adjustments to aq-mode=3. · 71e6ed7b
      Marco authored
      Factor in segment#2 and skip blocks into the postencode estimated bits,
      and increase somewhat the aggressiveness of the refresh.
      
      PSNR/SSIM Metrics on RTC set go up by ~0.8/0.5%.
      
      Change-Id: I5d4e7cb00a3aefb25d18c88b6b24118b72dc5d51
      71e6ed7b
    • Jingning Han's avatar
      Speed up non-rd mode decision search · 83cbe226
      Jingning Han authored
      This commit makes the encoder to explicitly calculate the SAD
      associated with the LAST_FRAME motion vector and compare it to
      that of the GOLDEN_FRAME given by integral projection motion
      estimation. It skips the expensive sub-pixel motion search over
      GOLDEN_FRAME when the LAST_FRAME can provide fairly good motion
      compensated prediction quality.
      
      For dark720p speed -6 single thread goes from
      33304 b/f, 40.070 dB, 18156 ms ->
      33319 b/f, 40.061 dB, 17611 ms
      
      Change-Id: I01bc94b9b598075567a392111046b97a9bc30efe
      83cbe226