1. 23 Feb, 2016 1 commit
  2. 18 Feb, 2016 1 commit
    • hui su's avatar
      Speed-up for ext-intra · c4b69eb0
      hui su authored
      -Avoid unnecessary calculations
      -Use SIMD when possible
      
      Encoder is about 5% faster with the extra intra prediction angles
      enabled.
      
      Change-Id: I131056befe327cedab217ad4a40d5f2a11318acc
      c4b69eb0
  3. 06 Feb, 2016 2 commits
  4. 03 Feb, 2016 1 commit
    • hui su's avatar
      Add 8-tap interpolation filter options for intra prediction · 3b1c7668
      hui su authored
      BD-rate performance improvement (on top of ext-intra):
      derflr  0.22%
      hevclr  0.36%
      hevcmr  0.48%
      hevchr  0.37%
      stdhd   0.19%
      
      Average speed impact on some derf clips is about 40% slower (on
      top of ext-intra). Speed improvment is a to-do.
      
      Change-Id: I8fe3fe8c5e4f60d0462778adbcc15c84dfbe7a25
      3b1c7668
  5. 09 Nov, 2015 1 commit
    • Johann's avatar
      Release v1.5.0 · cbecf57f
      Johann authored
      Javan Whistling Duck release.
      
      Change-Id: If44c9ca16a8188b68759325fbacc771365cb4af8
      cbecf57f
  6. 06 Nov, 2015 1 commit
    • Debargha Mukherjee's avatar
      New interpolation experiment · 85514c40
      Debargha Mukherjee authored
      Adds a new interpolation experiment.
      
      Improves entropy coding to send the filter type only if
      the motion vectors have subpel components.
      Adds one new 8-tap smooth filter, and tweaks the others.
      
      derflr: +0.695%
      hevcmr: +0.305%
      
      About 5% encode slowdown. No visible impact for decoding.
      
      Also makes the interpolation framework flexible to support both
      strictly interpolating filters as well as non-interpolating
      filters that filter integer offsets. This is mainly for
      further experimentation and if not found useful the code will
      be removed.
      
      Change-Id: I8db9cde56ca916be771fe54a130d608bf10786e6
      85514c40
  7. 12 Aug, 2015 2 commits
  8. 06 Jul, 2015 1 commit
  9. 11 Jun, 2015 2 commits
  10. 14 May, 2014 1 commit
  11. 15 Feb, 2014 1 commit
  12. 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
  13. 29 Jan, 2014 1 commit
  14. 24 Jan, 2014 1 commit
    • Dmitry Kovalev's avatar
      Renaming INTERPOLATION_TYPE to INTERP_FILTER. · 4264c938
      Dmitry Kovalev authored
      Corresponding renames:
        subpel_kernel              => interp_kernel
        vp9_get_filter_kernel()    => vp9_get_interp_kernel()
        pred_filter_type           => pred_interp_filter
        adaptive_pred_filter_type  => adaptive_pred_interp_filter
        mcomp_filter_type          => interp_filter
        read_interp_filter_type()  => read_interp_filter()
        write_interp_filter_type() => write_interp_filter()
        fix_mcomp_filter_type()    => fix_interp_filter()
      
      Change-Id: I1fa61fa1dc81ebbf043457c3ee2d8d4515bee6d3
      4264c938
  15. 01 Nov, 2013 1 commit
  16. 24 Oct, 2013 1 commit
  17. 04 Oct, 2013 1 commit
    • Dmitry Kovalev's avatar
      Adding vp9_get_filter_kernel() function. · 9ec09700
      Dmitry Kovalev authored
      Moving INTERPOLATIONFILTERTYPE enum and subpix_fn_table struct to
      vp9_filter.h. Adding convenient typedef for subpel kernels.
      
      Function vp9_setup_interp_filters() besides setting xd->subpix.filter_x &
      xd->subpix.filter_y has a side effect of also setting scale factors. This
      is not required inside decode_modes_b() because scale factors have been
      already set by set_ref() calls. That's why replacing
      vp9_setup_interp_filters() call with newly created vp9_get_filter_kernel()
      call. The behavior of vp9_setup_interp_filters() is unchanged (it
      is used from the encoder).
      
      Change-Id: I3f36d3f7cd8d15195a6e2fafd1777cdaf9ecb847
      9ec09700
  18. 20 Aug, 2013 1 commit
  19. 10 Jun, 2013 1 commit
    • Deb Mukherjee's avatar
      Cosmetic cleanups of filters · 995ce523
      Deb Mukherjee authored
      No bitstream change.
      
      Removes unused filters and the code for the case of 2 switchable filters;
      also changes the 8tap-smooth filter coefficients for integer shifts to be
      interpolating to be consistent with the way it is implemented currently.
      
      Change-Id: I96c542fd8c06f4e0df507a645976f58e6de92aae
      995ce523
  20. 26 Mar, 2013 1 commit
    • Deb Mukherjee's avatar
      Reoptimizing the interpolation filters · 57c97e2a
      Deb Mukherjee authored
      Reoptimizes the 8-tap smooth filter.
      
      Results:
      derf: +0.101%
      yt: +0.157%
      hd: +0.791%
      stdhd: +0.264%
      
      The next step will be to reoptimize the other two filters.
      
      Change-Id: I3d256a510ad9c7c30c33fae4a70fb43dfc708ed0
      57c97e2a
  21. 27 Feb, 2013 2 commits
    • John Koleszar's avatar
      Use 256-byte aligned filter tables · 6fd7dd1a
      John Koleszar authored
      This avoids duplicating all the filters twice. Includes fixups to the
      convolve routines and associated tests to make this work.
      
      Change-Id: I922f86021594e55072ddb63b42b2313605db6e00
      6fd7dd1a
    • John Koleszar's avatar
      Spatial resamping of ZEROMV predictors · eb939f45
      John Koleszar authored
      This patch allows coding frames using references of different
      resolution, in ZEROMV mode. For compound prediction, either
      reference may be scaled.
      
      To test, I use the resize_test and enable WRITE_RECON_BUFFER
      in vp9_onyxd_if.c. It's also useful to apply this patch to
      test/i420_video_source.h:
      
        --- a/test/i420_video_source.h
        +++ b/test/i420_video_source.h
        @@ -93,6 +93,7 @@ class I420VideoSource : public VideoSource {
      
           virtual void FillFrame() {
             // Read a frame from input_file.
        +    if (frame_ != 3)
             if (fread(img_->img_data, raw_sz_, 1, input_file_) == 0) {
               limit_ = frame_;
             }
      
      This forces the frame that the resolution changes on to be coded
      with no motion, only scaling, and improves the quality of the
      result.
      
      Change-Id: I1ee75d19a437ff801192f767fd02a36bcbd1d496
      eb939f45
  22. 05 Feb, 2013 1 commit
    • John Koleszar's avatar
      Convert subpixel filters to use convolve framework · 7a07eea1
      John Koleszar authored
      Update the code to call the new convolution functions to do subpixel
      prediction rather than the existing functions. Remove the old C and
      assembly code, since it is unused. This causes a 50% performance
      reduction on the decoder, but that will be resolved when the asm for
      the new functions is available.
      
      There is no consensus for whether 6-tap or 2-tap predictors will be
      supported in the final codec, so these filters are implemented in
      terms of the 8-tap code, so that quality testing of these modes
      can continue. Implementing the lower complexity algorithms is a
      simple exercise, should it be necessary.
      
      This code produces slightly better results in the EIGHTTAP_SMOOTH
      case, since the filter is now applied in only one direction when
      the subpel motion is only in one direction. Like the previous code,
      the filtering is skipped entirely on full-pel MVs. This combination
      seems to give the best quality gains, but this may be indicative of a
      bug in the encoder's filter selection, since the encoder could
      achieve the result of skipping the filtering on full-pel by selecting
      one of the other filters. This should be revisited.
      
      Quality gains on derf positive on almost all clips. The only clip
      that seemed to be hurt at all datarates was football
      (-0.115% PSNR average, -0.587% min). Overall averages 0.375% PSNR,
      0.347% SSIM.
      
      Change-Id: I7d469716091b1d89b4b08adde5863999319d69ff
      7a07eea1
  23. 09 Jan, 2013 1 commit
    • Adrian Grange's avatar
      New prediction filter · 7d6b5425
      Adrian Grange authored
      This patch removes the old pred-filter experiment and replaces it
      with one that is implemented using the switchable filter framework.
      
      If the pred-filter experiment is enabled, three interopolation
      filters are tested during mode selection; the standard 8-tap
      interpolation filter, a sharp 8-tap filter and a (new) 8-tap
      smoothing filter.
      
      The 6-tap filter code has been preserved for now and if the
      enable-6tap experiment is enabled (in addition to the pred-filter
      experiment) the original 6-tap filter replaces the new 8-tap smooth
      filter in the switchable mode.
      
      The new experiment applies the prediction filter in cases of a
      fractional-pel motion vector. Future patches will apply the filter
      where the mv is pel-aligned and also to intra predicted blocks.
      
      Change-Id: I08e8cba978f2bbf3019f8413f376b8e2cd85eba4
      7d6b5425
  24. 21 Dec, 2012 1 commit
    • Yunqing Wang's avatar
      Fix a warning · 6ee08f3c
      Yunqing Wang authored
      Fixed the warning: the size of array ‘intermediate_buffer’ can’t
      be evaluated [-Wvla].
      
      Change-Id: Ibcffd6969bd71cee0c10f7cf18960e58cd0bd915
      6ee08f3c
  25. 18 Dec, 2012 2 commits
    • Ronald S. Bultje's avatar
      Use standard integer types for pixel values and coefficients. · 4cca47b5
      Ronald S. Bultje authored
      For coefficients, use int16_t (instead of short); for pixel values in
      16-bit intermediates, use uint16_t (instead of unsigned short); for all
      others, use uint8_t (instead of unsigned char).
      
      Change-Id: I3619cd9abf106c3742eccc2e2f5e89a62774f7da
      4cca47b5
    • Yunqing Wang's avatar
      Fix a warning · e8d610dd
      Yunqing Wang authored
      Fixed the warning: the size of array ‘intermediate_buffer’ can’t
      be evaluated [-Wvla].
      
      Change-Id: Ibcffd6969bd71cee0c10f7cf18960e58cd0bd915
      e8d610dd
  26. 17 Dec, 2012 1 commit
  27. 12 Dec, 2012 1 commit
    • Ronald S. Bultje's avatar
      Consistently use get_prob(), clip_prob() and newly added clip_pixel(). · 4d0ec7aa
      Ronald S. Bultje authored
      Add a function clip_pixel() to clip a pixel value to the [0,255] range
      of allowed values, and use this where-ever appropriate (e.g. prediction,
      reconstruction). Likewise, consistently use the recently added function
      clip_prob(), which calculates a binary probability in the [1,255] range.
      If possible, try to use get_prob() or its sister get_binary_prob() to
      calculate binary probabilities, for consistency.
      
      Since in some places, this means that binary probability calculations
      are changed (we use {255,256}*count0/(total) in a range of places,
      and all of these are now changed to use 256*count0+(total>>1)/total),
      this changes the encoding result, so this patch warrants some extensive
      testing.
      
      Change-Id: Ibeeff8d886496839b8e0c0ace9ccc552351f7628
      4d0ec7aa
  28. 28 Nov, 2012 1 commit
  29. 27 Nov, 2012 1 commit
    • John Koleszar's avatar
      Add vp9_ prefix to all vp9 files · fcccbcbb
      John Koleszar authored
      Support for gyp which doesn't support multiple objects in the same
      static library having the same basename.
      
      Change-Id: Ib947eefbaf68f8b177a796d23f875ccdfa6bc9dc
      fcccbcbb
  30. 15 Nov, 2012 1 commit
  31. 01 Nov, 2012 3 commits
  32. 31 Oct, 2012 2 commits