1. 11 Jun, 2015 1 commit
  2. 14 May, 2014 1 commit
  3. 15 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. 29 Jan, 2014 1 commit
  6. 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
  7. 01 Nov, 2013 1 commit
  8. 24 Oct, 2013 1 commit
  9. 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
  10. 20 Aug, 2013 1 commit
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 17 Dec, 2012 1 commit
  19. 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
  20. 28 Nov, 2012 1 commit
  21. 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
  22. 15 Nov, 2012 1 commit
  23. 01 Nov, 2012 3 commits
  24. 31 Oct, 2012 2 commits
  25. 26 Oct, 2012 1 commit
    • Scott LaVarnway's avatar
      Faster 8t filtering · ce811f87
      Scott LaVarnway authored
      Quickly modified the ssse3 sixtap filters to support eight taps.  For the test
      clip used, a 23+% boost in decoder performance was seen.  We can
      revisit later and improve further.
      
      Change-Id: I5f59860459e80d6fa23e6cc0fd91296a969f5240
      ce811f87
  26. 16 Aug, 2012 1 commit
  27. 08 Aug, 2012 3 commits
  28. 31 Jul, 2012 1 commit
    • Deb Mukherjee's avatar
      Merging and bug-fix in enhanced_interp experiment · 0ebf548c
      Deb Mukherjee authored
      Merged the enhanced_interp experiment.
      Found and fixed a bug in the include files framework, whereby
      certain encoder files were still using the old INTERP_EXTEND
      value of 3 instead of 4. The thresholds for mv range mcomp.c
      need a small adjustment to prevent crashes.
      
      The results are more or less unchanged.
      
      Change-Id: Iac5008390f1efc97ce1102fbb5f8989c847fb579
      0ebf548c
  29. 30 Jul, 2012 1 commit
    • Deb Mukherjee's avatar
      Adds support for switchable interpolation filters. · 52597441
      Deb Mukherjee authored
      Allows for swtiching/setting interpolation filters at the MB
      level. A frame level flag indicates whether to use a specifc
      filter for the entire frame or to signal the interpolation
      filter for each MB. When switchable filters are used, the
      encoder chooses between 8-tap and 8-tap sharp filters. The
      code currently has options to explore other variations as well,
      which will be cleaned up subsequently.
      
      One issue with the framework is that encoding is slow. I
      tried to do some tricks to speed things up but it is still slow.
      Decoding speed should not be affected since the number of
      filter taps remain unchanged.
      
      With the current version, we are up 0.5% on derf on average but
      some videos city/mobile improve by close to 4 and 2% respectively.
      If we did a full-search by turning the SEARCH_BEST_FILTER flag
      on, the results are somewhat better.
      
      The framework can be combined with filtered prediction, and I
      seek feedback regarding that.
      
      Rebased.
      
      Change-Id: I8f632cb2c111e76284140a2bd480945d6d42b77a
      52597441
  30. 17 Jul, 2012 1 commit
  31. 19 Apr, 2012 1 commit
  32. 18 Apr, 2012 1 commit
  33. 21 Mar, 2012 1 commit
    • Deb Mukherjee's avatar
      Making subpel filters switchable at frame level · 475d5d56
      Deb Mukherjee authored
      Various refactoring to make the subpel motion compensation
      filters switchable by a frame level field.
      Two types of 8-tap filters are supported in addition to the existing
      bilinar and sixtap filters. One is the default 8-tap and the
      other has a sharper cut-off for use with frames with substantial
      edge content.
      
      Patch 2: Added a preliminary strategy for filter selection based on
      edginess detecton. Also includes some filter changes.
      
      Change-Id: I866085bda5ae143cfdf2ec88157feaabdf7bd63a
      475d5d56