1. 16 May, 2014 1 commit
  2. 03 Mar, 2014 1 commit
  3. 10 Feb, 2014 1 commit
  4. 04 Feb, 2014 1 commit
    • James Zern's avatar
      vp9_filter.h: rename interp_kernel type · cca4276d
      James Zern authored
      -> InterpKernel
      avoids conflicts in variable names, fixing the build with various
      toolchains.
      
      broken since:
      86915654 Removing subpix_fn_table struct.
      
      Change-Id: Ib5f6fdbcb494a97b62c75b99d4d826ff25d4c981
      cca4276d
  5. 28 Jan, 2014 1 commit
  6. 25 Jan, 2014 1 commit
    • Dmitry Kovalev's avatar
      Removing subpix_fn_table struct. · 86915654
      Dmitry Kovalev authored
      We don't use different filter kernels for x and y, it is always one kernel
      for both directions.
      
      Change-Id: Iefcbb02ec74bf46ea20d9dca672a3efd5d631517
      86915654
  7. 24 Jan, 2014 1 commit
  8. 22 Jan, 2014 1 commit
  9. 03 Jan, 2014 1 commit
    • Dmitry Kovalev's avatar
      Adding RefBuffer struct. · ba41e9d4
      Dmitry Kovalev authored
      Adding RefBuffer to simplify reference buffer management. The struct has a
      pointer to image data and scale factors relative to the current frame.
      
      Change-Id: If38eb1491ff687cc11428aee339f3e052e2c5d9e
      ba41e9d4
  10. 26 Dec, 2013 1 commit
  11. 20 Dec, 2013 1 commit
    • Dmitry Kovalev's avatar
      Using single struct to represent scale factors. · a3fbcc88
      Dmitry Kovalev authored
      Moving back to scale_factors struct. We don't need anymore x_offset_q4 and
      y_offset_q4 because both values are calculated locally inside vp9_scale_mv
      function.
      
      Change-Id: I78a2122ba253c428a14558bda0e78ece738d2b5b
      a3fbcc88
  12. 19 Dec, 2013 1 commit
    • Dmitry Kovalev's avatar
      Call set_scaled_offsets() just before scale_mv() call. · c872d2be
      Dmitry Kovalev authored
      Before mv scaling it is required to calculate x_offset_q4/y_offset_q4
      by calling set_scaled_offsets(). Now offset configuration can not be
      missed because it happens just before scale_mv().
      
      Change-Id: I7dd1a85b85811a6cc67c46c9b01e6ccbbb06ce3a
      c872d2be
  13. 25 Nov, 2013 1 commit
    • Jingning Han's avatar
      Use separate inter predictors for enc/dec · ba8b5e8d
      Jingning Han authored
      The decoder will construct inter predictor using lazy border extension,
      while the encoder, going with multiple runs of motion search in the rate-
      distortion optimization loop for each block, does border extension at
      frame level. This commit makes separate the inter predictors for encoder
      and decoder, respectively.
      
      Change-Id: Ieca2fecba3a7201a6d64ef9f219e5d91e50559c3
      ba8b5e8d
  14. 19 Nov, 2013 1 commit
  15. 24 Oct, 2013 1 commit
  16. 22 Oct, 2013 1 commit
    • Yunqing Wang's avatar
      Improve scale_factors struct · 175c313a
      Yunqing Wang authored
      The ref's scale_factors are set at frame level, and then copied for
      each partition block. Since the struct members are mostly constant,
      this patch separated the constant and non-constant members, and
      reduced struct copying. This gave 0.5% ~ 1.4% decoder speed gain.
      
      Change-Id: I94043bf5a6995c8042da52e5c661818dfa6f6d4c
      175c313a
  17. 26 Aug, 2013 1 commit
  18. 09 Aug, 2013 1 commit
  19. 02 Aug, 2013 1 commit
  20. 18 Jul, 2013 1 commit
    • Ronald S. Bultje's avatar
      Merge scale_factors and scale_factors_uv. · 5ebe503f
      Ronald S. Bultje authored
      This prevents a duplicate memcpy of a 128-byte struct every time
      set_scale_factors() is called (which is a lot), thus leading to a
      decrease from 3.7 MB to 1.85 MB of struct copying per 64x64 block
      RD/partition loop.
      
      Overall, this decreases encoding time of the first 50 frames of bus
      @ 1500kbps (speed 0) from 1min5.9 to 1min4.9, i.e. about a 1.5%
      overall speedup. We can likely get more gains by removing the copy
      of the other struct (and replacing it with an indexing) as well.
      
      Change-Id: I3dceb7e79f71e6fe911b11cc994cf89a869dde7a
      5ebe503f
  21. 04 Jul, 2013 1 commit
  22. 27 Jun, 2013 1 commit
    • Dmitry Kovalev's avatar
      Decoder's code cleanup. · 3231da0a
      Dmitry Kovalev authored
      Using vp9_set_pred_flag function instead of custom code, adding
      decode_tokens function which is now called from decode_atom,
      decode_sb_intra, and decode_sb.
      
      Change-Id: Ie163a7106c0241099da9c5fe03069bd71f9d9ff8
      3231da0a
  23. 21 Jun, 2013 1 commit
  24. 22 May, 2013 1 commit
  25. 17 May, 2013 1 commit
    • John Koleszar's avatar
      Initial version of alpha channel support · 679e4abd
      John Koleszar authored
      This is a mostly-working implementation of an extra channel in the
      bitstream. Configure with --enable-alpha to test. Notable TODOs:
      
       - Add extra channel to all mismatch tests, PSNR, SSIM, etc
       - Configurable subsampling
       - Variable number of planes (currently always uses all 4)
       - Loop filtering
       - Per-plane lossless quantizer
       - ARNR support
      
      This implementation just uses the same contents as the Y channel
      for the A channel, due to lack of content and general pain in
      playing back 4 channel content. A later patch will use the actual
      alpha channel passed in from outside the codec.
      
      Change-Id: Ibf81f023b1c570bd84b3064e9b4b8ae52e087592
      679e4abd
  26. 15 May, 2013 2 commits
  27. 08 May, 2013 2 commits
  28. 07 May, 2013 1 commit
  29. 26 Apr, 2013 1 commit
  30. 22 Apr, 2013 2 commits
  31. 19 Apr, 2013 5 commits
    • John Koleszar's avatar
      Move dst to per-plane MACROBLOCKD data · d12376aa
      John Koleszar authored
      First in a series of commits moving the framebuffers pointers to
      per-plane data, so that they can be indexed numerically rather than
      by name.
      
      Change-Id: I6e0d60fd4d51e6375c384eb7321776564df21775
      d12376aa
    • John Koleszar's avatar
      make build_inter_predictors block size agnostic (split) · 0053b46d
      John Koleszar authored
      All build_inter_predictors can now be serviced by the same inner
      function.
      
      Change-Id: I40b08bee8f047286db4b1aad9dcae37b879c3f2a
      0053b46d
    • John Koleszar's avatar
      make buid_inter_predictors block size agnostic (chroma) · fc49a377
      John Koleszar authored
      Updates to make non-SPLITMV inter predictors work for all
      plane types.
      
      Change-Id: I25dbef40b7ffcac30254b43eed1e22fc732378ae
      fc49a377
    • John Koleszar's avatar
      Removing rounding from UV MV calculation · 2987fa1d
      John Koleszar authored
      Consider the previous behavior for the MV 1 3/8 (11/8 pel). In the
      existing code, the fractional part of the MV is considered separately,
      and rounded is applied, giving a result of 6/8. Rounding is not required
      in this case, as we're increasing the precision from a q3 to a q4, and
      the correct value 11/16 can be represented exactly.
      
      Slight gain observed (+.033 average on derf)
      
      Change-Id: I320e160e8b12f1dd66aa0ce7966b5088870fe9f8
      2987fa1d
    • John Koleszar's avatar
      make buid_inter_predictors block size agnostic (luma) · 4924934d
      John Koleszar authored
      This commit converts the luma versions of vp9_build_inter_predictors_sb
      to use a common function. Update the convolution functions to support
      block sizes larger than 16x16, and add a foreach_predicted_block walker.
      
      Next step will be to calculate the UV motion vector and implement SBUV,
      then fold in vp9_build_inter16x16_predictors_mb and SPLITMV.
      
      At the 16x16, 32x32, and 64x64 levels implemented in this commit, each
      plane is predicted with only a single call to vp9_build_inter_predictor.
      This is not yet called for SPLITMV. If the notion of SPLITMV/I8X8/I4X4
      goes away, then the prediction block walker can go away, since we'll
      always predict the whole bsize in a single step. Implemented using a
      block walker at this stage for SPLITMV, as a 4x4 "prediction block size"
      within the BLOCK_SIZE_MB16X16 macroblock. It would also support other
      rectangular sizes too, if the blocks smaller than 16x16 remain
      implemented as a SPLITMV-like thing. Just using 4x4 for now.
      
      There's also a potential to combine with the foreach_transformed_block
      walker if the logic for calculating the size of the subsampled
      transform is made more straightforward, perhaps as a consequence of
      supporing smaller macroblocks than 16x16. Will watch what happens there.
      
      Change-Id: Iddd9973398542216601b630c628b9b7fdee33fe2
      4924934d
  32. 18 Apr, 2013 1 commit
    • Jingning Han's avatar
      Make the use of pred buffers consistent in MB/SB · 6f43ff58
      Jingning Han authored
      Use in-place buffers (dst of MACROBLOCKD) for  macroblock prediction.
      This makes the macroblock buffer handling consistent with those of
      superblock. Remove predictor buffer MACROBLOCKD.
      
      Change-Id: Id1bcd898961097b1e6230c10f0130753a59fc6df
      6f43ff58
  33. 16 Apr, 2013 1 commit
    • Yunqing Wang's avatar
      Optimize the scaling calculation · 148eb803
      Yunqing Wang authored
      In decoder, the scaling calculation, such as (mv * x_num / x_den),
      is fairly time-consuming. In this patch, we check if the scaling
      happens or not at frame level, and then decide which function to
      call to skip scaling calculation when no scaling is needed. Tests
      showed a 3% decoder performance gain.
      
      Change-Id: I270901dd0331048e50368cfd51ce273dd82b8733
      148eb803