1. 16 Nov, 2012 1 commit
    • Deb Mukherjee's avatar
      Compound inter-intra experiment · 0c917fc9
      Deb Mukherjee authored
      A patch on compound inter-intra prediction.
      
      In compound inter-intra prediction, a new predictor for
      16x16 inter coded MBs are obtained by combining a single
      inter predictor with a 16x16 intra predictor, in a manner
      that the weight varies with distance from the top/left
      boundary. The current search strategy is to combine the best
      inter mode with the best intra mode obtained independently.
      
      Results so far:
      
      derf +0.31%
      yt +0.32%
      std-hd +0.35%
      hd +0.42%
      
      It is conceivable that the results would improve somewhat
      with a more thorough search strategy where all intra modes
      are searched given the best mv, or even a joint search for
      the best mv and the best intra mode.
      
      Change-Id: I7951f1ed0d6eb31ca32ac24d120f1585bcd8d79b
      0c917fc9
  2. 10 Nov, 2012 1 commit
    • Deb Mukherjee's avatar
      New b-intra mode where direction is contextual · d01357bb
      Deb Mukherjee authored
      Preliminary patch on a new 4x4 intra mode B_CONTEXT_PRED where the
      dominant direction from the context is used to encode. Various decoder
      changes are needed to support decoding of B_CONTEXT_PRED in conjunction
      with hybrid transforms since the scan order and tokenization depends on
      the actual direction of prediction obtained from the context. Currently
      the traditional directional modes are used in conjunction with the
      B_CONTEXT_PRED, which also seems to provide the best results.
      
      The gains are small - in the 0.1% range.
      
      Change-Id: I5a7ea80b5218f42a9c0dfb42d3f79a68c7f0cdc2
      d01357bb
  3. 07 Nov, 2012 1 commit
  4. 06 Nov, 2012 1 commit
    • Johann's avatar
      Add option to disable documentation · 8ca1ed23
      Johann authored
      Documentation is typically auto-detected by checking for php and
      doxygen. Add an option to explicitly disable it.
      
      Remove toggle keywords from libraries, examples, documentation and
      unit tests. They were not consistent with the default status.
      
      Change-Id: I21049675ccfd8e58ac612cd058641b197db5c0eb
      8ca1ed23
  5. 01 Nov, 2012 1 commit
  6. 30 Oct, 2012 4 commits
  7. 22 Oct, 2012 3 commits
  8. 11 Oct, 2012 1 commit
  9. 10 Oct, 2012 1 commit
    • Johann's avatar
      Add option to disable documentation · ec658125
      Johann authored
      Documentation is typically auto-detected by checking for php and
      doxygen. Add an option to explicitly disable it.
      
      Remove toggle keywords from libraries, examples, documentation and
      unit tests. They were not consistent with the default status.
      
      Change-Id: I21049675ccfd8e58ac612cd058641b197db5c0eb
      ec658125
  10. 09 Oct, 2012 1 commit
    • Ronald S. Bultje's avatar
      Selectable transform size try 2. · 9ca3c8b2
      Ronald S. Bultje authored
      Results: derf (vanilla or +hybridtx) +0.2% and (+hybrid16x16
      or +tx16x16) +0.7%-0.8%; HD (vanilla or +hybridtx) +0.1-0.2%
      and (+hybrid16x16 or +tx16x16) +1.4%, STD/HD (vanilla or +hybridtx)
      about even, and (+hybrid16x16 or +tx16x16) +0.8-1.0%.
      
      Change-Id: I03899e2f7a64e725a863f32e55366035ba77aa62
      9ca3c8b2
  11. 06 Sep, 2012 1 commit
    • Deb Mukherjee's avatar
      New motion vector entropy coding · 00f9eb65
      Deb Mukherjee authored
      Adds a new experiment with redesigned/refactored motion vector entropy
      coding. The patch also takes a first step towards separating the
      integer and fractional pel components of a MV. However the fractional
      pel encoding still depends on the integer pel part and so they are
      not fully independent. Further experiments are in progress to see
      how much they can be decoupled without affecting performance.
      All components including entropy coding/decoding, costing for MV
      search, forward updates and backward updates to probability tables,
      have been implemented.
      
      Results so far:
      derf: +0.19%
      std-hd: +0.28%
      yt: +0.80%
      hd: +1.15%
      
      Patch: Simplifies the fractional pel models:
      derf: +0.284%
      std-hd: +0.289%
      yt: +0.849%
      hd: +1.254%
      
      Patch: Some changes in the models, rebased.
      derf: +0.330%
      std-hd: +0.306%
      yt: +0.816%
      hd: +1.225%
      
      Change-Id: I646b3c48f3587f4cc909639b78c3798da6402678
      00f9eb65
  12. 30 Aug, 2012 1 commit
    • Jingning Han's avatar
      hybrid transform of 16x16 dimension · de6dfa6b
      Jingning Han authored
      Enable ADST/DCT of dimension 16x16 for I16X16 modes. This change provides
      benefits mostly for hd sequences.
      
      Set up the framework for selectable transform dimension.
      
      Also allowing quantization parameter threshold to control the use
      of hybrid transform (This is currently disabled by setting threshold
      always above the quantization parameter. Adaptive thresholding can
      be built upon this, which will further improve the coding performance.)
      
      The coding performance gains (with respect to the codec that has all
      other configuration settings turned on) are
      
      derf:   0.013
      yt:     0.086
      hd:     0.198
      std-hd: 0.501
      
      Change-Id: Ibb4263a61fc74e0b3c345f54d73e8c73552bf926
      de6dfa6b
  13. 24 Aug, 2012 1 commit
    • Paul Wilkins's avatar
      New Motion Reference Search · 2d60bee1
      Paul Wilkins authored
      Alternative strategy for finding a list of candidate motion
      vectors to use as reference values in mv coding and as
      nearest and near.
      
      Sort by sad in vp8_find_best_ref_mvs() rather than just
      pick the best. Allow 0,0 as a best ref option but not a
      nearest or near unless there are no alternatives.
      
      Encode/Decode verified on at least some clips.
      
      Some commented out experimental and stats code still in place.
      
      Gain over existing code averages about 1% on derf (alll metrics)
      with improvement on all clips. Other test results pending.
      
      The entropy coding of the mode (nearest/near etc) still
      depends upon and requires the old "findnear" code so
      this needs looking at and may provide room for further gains.
      
      Change-Id: I871d7cba1d1c379c4bad9bcccce1fb19c46b8247
      2d60bee1
  14. 21 Aug, 2012 1 commit
    • John Koleszar's avatar
      remove rotation experiment · 5055a161
      John Koleszar authored
      This is being reimplemented more generically in terms of affine
      transforms.
      
      Change-Id: I9300bfde5f8b93c708c64f59427087720f8ed782
      5055a161
  15. 14 Aug, 2012 2 commits
    • Christian Duvivier's avatar
      Fix warnings. · a1168155
      Christian Duvivier authored
      Change-Id: I4b911e4173da30c164bde7ea50bc80a70fbbb745
      a1168155
    • Mike Frysinger's avatar
      do not error out on generic-gnu + --enable-shared · b4ab43f1
      Mike Frysinger authored
      If you build with --enabled-shared on a Linux arch not explicitly
      listed, the configure script will abort because it didn't detect
      "linux" in the fallback generic-gnu tuple.
      
      Since this is the fallback tuple and people are passing
      --enable-shared, assume the user knows what they're in for.
      
      Change-Id: Ia35b657e7247c8855e3a94fca424c9884d4241e3
      b4ab43f1
  16. 13 Aug, 2012 1 commit
  17. 08 Aug, 2012 1 commit
    • Deb Mukherjee's avatar
      Merging in the sixteenth subpel uv experiment · 7d065653
      Deb Mukherjee authored
      Merges this experiment in to make it easier to run tests on
      filter precision, vectorized implementation etc.
      
      Also removes an experimental filter.
      
      Change-Id: I1e8706bb6d4fc469815123939e9c6e0b5ae945cd
      7d065653
  18. 07 Aug, 2012 1 commit
    • Yaowu Xu's avatar
      a new way of determining reference motion vector · 8b2f57d0
      Yaowu Xu authored
      Using surrounding reconstructed pixels from left and above to select
      best matching mv to use as reference motion vector for mv encoding.
      
      Test results:
             AVGPSNR  GLBPSNR VPXSSIM
      Derf:  1.107%   1.062%  0.992%
      Std-hd:1.209%   1.176%  1.029%
      
      Change-Id: I8f10e09ee6538c05df2fb9f069abcaf1edb3fca6
      8b2f57d0
  19. 06 Aug, 2012 1 commit
    • Christian Duvivier's avatar
      Add x86_64-darwin11-gcc target. · 82edabce
      Christian Duvivier authored
      This allows building on MountainLion as the 10.6 SDK has been
      removed from the latest Xcode version (4.4 4F250). Also fix
      all warnings for that build.
      
      Change-Id: Ib70bca4a25295f13595f0d10ea9f0229631de5a4
      82edabce
  20. 03 Aug, 2012 3 commits
    • Deb Mukherjee's avatar
      Merging in high_precision_mv experiment · 2af5473a
      Deb Mukherjee authored
      Merged in the high_precision_mv experiment to make it easier
      to work on new mv encoding strategies. Also removed
      coef_update_probs3().
      
      Change-Id: I82d3b0bb642419fe05dba82528bc9ba010e90924
      2af5473a
    • Jingning Han's avatar
      Replacing the 8x8 DCT with 8x8 ADST/DCT for I8x8 · fcbff9ee
      Jingning Han authored
      Fixed the code review comments.
      
      Under the htrans8x8 experiment the 8X8 DCT in the
      I8X8 mode is replaced with a combination of 8X8 ADST and
      DCT.
      
      Overall coding gains with the htrans8x8 experiment are:
      derf:   0.486
      std-hd: 1.040
      hd:     1.063
      yt:     0.506
      
      Note that part of the gain comes from bigger transforms
      (8x8 instead of 4x4) and part comes from replacing the DCT
      wth the ADST.
      
      Change-Id: I92ca6bbfce11b4165d612b81d9adfad4d010c775
      fcbff9ee
    • Daniel Kang's avatar
      16x16 DCT blocks. · fed8a183
      Daniel Kang authored
      Set on all 16x16 intra/inter modes
      
      Features:
      - Butterfly fDCT/iDCT
      - Loop filter does not filter internal edges with 16x16
      - Optimize coefficient function
      - Update coefficient probability function
      - RD
      - Entropy stats
      - 16x16 is a config option
      
      Have not tested with experiments.
      
      hd:     2.60%
      std-hd: 2.43%
      yt:     1.32%
      derf:   0.60%
      
      Change-Id: I96fb090517c30c5da84bad4fae602c3ec0c58b1c
      fed8a183
  21. 02 Aug, 2012 1 commit
    • Jingning Han's avatar
      Use 8x8 DCT transform for I8X8 prediction mode · c7846ebc
      Jingning Han authored
      Apply 2D-DCT transform of dimension 8x8 to encode prediction
      residuals of I8X8 mode.
      Brought back block type 3 probability context model for 8x8 tokens,
      which is used for the coefficients of Y blocks in I8x8 modes. The
      coefficient costs estimate of I8X8 mode in rate-distortion is also
      changed appropriately.
      Performance results:
      derf:   0.246
      yt:     0.114
      std-hd: 0.730
      hd:     0.670
      
      Change-Id: If1d970eeb4e1827c9f0d2c5b27d33089b347ea27
      c7846ebc
  22. 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
  23. 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
  24. 27 Jul, 2012 1 commit
    • Deb Mukherjee's avatar
      Merges several experiments · 9984a155
      Deb Mukherjee authored
      The following five experiments are merged:
      
      newentropy
      newupdate
      adaptive_entropy (also includes a couple of parameter changes
                        that improves results a little
                        in common/entropymode.c and encoder/modecosts.c
                        that were not merged from the internal branch)
      newintramodes
      expanded_coef_context
      
      Change-Id: I8a142a831786ee9dc936f22be1d42a8bced7d270
      9984a155
  25. 26 Jul, 2012 1 commit
  26. 23 Jul, 2012 1 commit
  27. 19 Jul, 2012 1 commit
    • Jingning Han's avatar
      Adds hybrid transform · 9824230f
      Jingning Han authored
      Adds ADST/DCT hybrid transform coding for Intra4x4 mode.
      The ADST is applied to directions in which the boundary
      pixels are used for prediction, while DCT applied to
      directions without corresponding boundary prediction.
      
      Adds enum TX_TYPE in b_mode_infor to indicate the transform
      type used.
      
      Make coding style consistent with google style.
      Fixed the commented issues.
      
      Experimental results in terms of bit-rate reduction:
      derf:   0.731%
      yt:     0.982%
      std-hd: 0.459%
      hd:     0.725%
      
      Will be looking at 8x8 transforms next.
      
      Change-Id: I46dbd7b80dbb3e8856e9c34fbc58cb3764a12fcf
      9824230f
  28. 18 Jul, 2012 2 commits
    • Yaowu Xu's avatar
      removed floating point version 8x8 fdct · d632bf8c
      Yaowu Xu authored
      the integer version has very good precision, the float version is no
      longer useful. this commit also removes the experiment option from
      configure script.
      
      Change-Id: Ibb92e63c9f5083357cdf89c559d584a7deb3353f
      d632bf8c
    • Yaowu Xu's avatar
      cleanup experiments in configure · 11e23e67
      Yaowu Xu authored
      this commit removes a number of experiment options from configure
      script. the associated experiments are already fully merged, the
      options in configure script have no effect at all.
      
      Change-Id: I8054ccaee0a04610162ed76ac9e59c4538217113
      11e23e67
  29. 10 Jul, 2012 1 commit
  30. 29 Jun, 2012 1 commit
    • Hui Su's avatar
      Add lossless compression mode. · e44ee38a
      Hui Su authored
      This commit adds lossless compression capability to the experimental
      branch. The lossless experiment can be enabled using --enable-lossless
      in configure. When the experiment is enabled, the encoder will use
      lossless compression mode by command line option --lossless, and the
      decoder automatically recognizes a losslessly encoded clip and decodes
      accordingly.
      
      To achieve the lossless coding, this commit has changed the following:
          1. To encode at lossless mode, encoder forces the use of unit
      quantizer, i.e, Q 0, where effective quantization is 1. Encoder also
      disables the usage of 8x8 transform and allows only 4x4 transform;
          2. At Q 0, the first order 4x4  DCT/IDCT have been switched over
      to a pair of forward and inverse Walsh-Hadamard Transform
      (http://goo.gl/EIsfy),  with proper scaling applied to match the range
      of the original 4x4 DCT/IDCT pair;
          3. At Q 0, the second order remains to use the previous
      walsh-hadamard transform pair. However, to maintain the reversibility
      in second order transform at Q 0, scaling down is applied to first
      order DC coefficients prior to forward transform, and scaling up is
      applied to the second order output prior to quantization. Symmetric
      upscaling and downscaling are added around inverse second order
      transform;
          4. At lossless mode, encoder also disables a number of minor
      features to ensure no loss is introduced, these features includes:
              a. Trellis quantization optimization
              b. Loop filtering
              c. Aggressive zero-binning, rounding and zero-bin boosting
              d. Mode based zero-bin boosting
      
      Lossless coding test was performed on all clips within the derf set,
      to verify that the commit has achieved lossless compression for all
      clips. The average compression ratio is around 2.57 to 1.
      (http://goo.gl/dEShs)
      
      Change-Id: Ia3aba7dd09df40dd590f93b9aba134defbc64e34
      e44ee38a
  31. 27 Jun, 2012 1 commit
    • Adrian Grange's avatar
      Added Prediction Filter to Mode Selection · bbc926dc
      Adrian Grange authored
      Added the ability to optionally filter the prediction data
      when inter modes are selected (excludes SPLITMV, for now).
      
      The mode selection loop considers both the filtered and
      non-filtered prediction data when choosing mode. The filter
      can be turned on/off at the frame-level, or signaled for
      each MB.
      
      Change-Id: I1b783c71d95a361ab36c761b07e8a6b06bc36822
      bbc926dc