1. 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
  2. 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
  3. 17 Jul, 2012 1 commit
  4. 21 Mar, 2012 1 commit
  5. 15 Mar, 2012 1 commit
    • Yaowu Xu's avatar
      WebM Experimental Codec Branch Snapshot · 6035da54
      Yaowu Xu authored
      This is a code snapshot of experimental work currently ongoing for a
      next-generation codec.
      
      The codebase has been cut down considerably from the libvpx baseline.
      For example, we are currently only supporting VBR 2-pass rate control
      and have removed most of the code relating to coding speed, threading,
      error resilience, partitions and various other features.  This is in
      part to make the codebase easier to work on and experiment with, but
      also because we want to have an open discussion about how the bitstream
      will be structured and partitioned and not have that conversation
      constrained by past work.
      
      Our basic working pattern has been to initially encapsulate experiments
      using configure options linked to #IF CONFIG_XXX statements in the
      code. Once experiments have matured and we are reasonably happy that
      they give benefit and can be merged without breaking other experiments,
      we remove the conditional compile statements and merge them in.
      
      Current changes include:
      * Temporal coding experiment for segments (though still only 4 max, it
        will likely be increased).
      * Segment feature experiment - to allow various bits of information to
        be coded at the segment level. Features tested so far include mode
        and reference frame information, limiting end of block offset and
        transform size, alongside Q and loop filter parameters, but this set
        is very fluid.
      * Support for 8x8 transform - 8x8 dct with 2nd order 2x2 haar is used
        in MBs using 16x16 prediction modes within inter frames.
      * Compound prediction (combination of signals from existing predictors
        to create a new predictor).
      * 8 tap interpolation filters and 1/8th pel motion vectors.
      * Loop filter modifications.
      * Various entropy modifications and changes to how entropy contexts and
        updates are handled.
      * Extended quantizer range matched to transform precision improvements.
      
      There are also ongoing further experiments that we hope to merge in the
      near future: For example, coding of motion and other aspects of the
      prediction signal to better support larger image formats, use of larger
      block sizes (e.g. 32x32 and up) and lossless non-transform based coding
      options (especially for key frames). It is our hope that we will be
      able to make regular updates and we will warmly welcome community
      contributions.
      
      Please be warned that, at this stage, the codebase is currently slower
      than VP8 stable branch as most new code has not been optimized, and
      even the 'C' has been deliberately written to be simple and obvious,
      not fast.
      
      The following graphs have the initial test results, numbers in the
      tables measure the compression improvement in terms of percentage. The
      build has  the following optional experiments configured:
      --enable-experimental --enable-enhanced_interp --enable-uvintra
      --enable-high_precision_mv --enable-sixteenth_subpel_uv
      
      CIF Size clips:
      http://getwebm.org/tmp/cif/
      HD size clips:
      http://getwebm.org/tmp/hd/
      (stable_20120309 represents encoding results of WebM master branch
      build as of commit#7a159071)
      
      They were encoded using the following encode parameters:
      --good --cpu-used=0 -t 0 --lag-in-frames=25 --min-q=0 --max-q=63
      --end-usage=0 --auto-alt-ref=1 -p 2 --pass=2 --kf-max-dist=9999
      --kf-min-dist=0 --drop-frame=0 --static-thresh=0 --bias-pct=50
      --minsection-pct=0 --maxsection-pct=800 --sharpness=0
      --arnr-maxframes=7 --arnr-strength=3(for HD,6 for CIF)
      --arnr-type=3
      
      Change-Id: I5c62ed09cfff5815a2bb34e7820d6a810c23183c
      6035da54
  6. 29 Feb, 2012 1 commit
  7. 09 Feb, 2012 1 commit
    • Paul Wilkins's avatar
      Merge COMPRED · cf8af867
      Paul Wilkins authored
      Merged in most of the current common prediction changes
      that were under the #if CONFIG_COMPRED option.
      
      Change-Id: If4e6f61dbe7b86dd449f6effbe93b5eb7e893885
      cf8af867
  8. 06 Feb, 2012 1 commit
    • Paul Wilkins's avatar
      Moved prob_dualpred to common. · c98e9d28
      Paul Wilkins authored
      Moved the prob_dualpred[] sturcture to common.
      Created common prediction entry for Dual flag.
      
      Change-Id: I9ac3d128bae6114f09e5c18216d4b95cf36453d5
      c98e9d28
  9. 03 Feb, 2012 1 commit
    • Paul Wilkins's avatar
      Reference frame prediction: · f0459549
      Paul Wilkins authored
      Extended prediction and coding of reference frame where
      a subset of options are flagged as available at the segment level.
      
      Updated copyright notices.
      
      Switch to SAD in mbgraph code as SATD problematic for the
      foreground and background separation as it can ignore large DC shifts.
      
      Change-Id: I661dbbb2f94f3ec0f96bb928c1655e5e415a7de1
      f0459549
  10. 31 Jan, 2012 1 commit
    • Paul Wilkins's avatar
      Added common prediction modules. · b2f64dff
      Paul Wilkins authored
      This function adds the common prediction modules,  some data structures
      and a config option but does not use them.
      
      It also corrects a bug in clearing down  the MODE_INFO border and introduces
      a new element that indicates if an entry corresponds to an "in image" macro block
      or is part of the border.
      
      Change-Id: Ib69eec0876173ebe9d1de9df9537d0b2447702e0
      b2f64dff