1. 10 May, 2013 1 commit
    • John Koleszar's avatar
      Subsampling aware allocs and bitstream · da58436f
      John Koleszar authored
      Make framebuffer allocations according to the chroma subsamping
      factors in use. A bit is placed in the raw part of the frame header for
      each of the two subsampling factors. This will be moved in a future
      commit to make them part of the TBD feature set bits, probably only set
      on keyframes, etc.
      
      Change-Id: I59ed38d3a3c0d4af3c7c277617de28d04a001853
      da58436f
  2. 12 Apr, 2013 1 commit
  3. 27 Mar, 2013 1 commit
    • Dmitry Kovalev's avatar
      General code cleanup. · 180cd5fa
      Dmitry Kovalev authored
      Removing redundant code, lower case variable names, better indentation,
      better parameter names, adding const to readonly parameters.
      
      Change-Id: Ibfdee00f60316fdc5b3f024028c7aaa76a627483
      180cd5fa
  4. 20 Mar, 2013 1 commit
  5. 26 Dec, 2012 1 commit
  6. 18 Dec, 2012 1 commit
  7. 06 Dec, 2012 1 commit
  8. 05 Dec, 2012 1 commit
    • Johann's avatar
      Begin to refactor vpx_scale usage in VP9 · 52d350fe
      Johann authored
      Only declare the functions in vpx_scale RTCD and include the relevant
      header.
      
      Remove unused files and functions in vpx_scale to avoid wasting time
      renaming. vpx_scale/win32/scaleopt.c contains functions which have not
      been called in a long time but are potentially optimized.
      
      The 'vp8' functions have not been renamed yet. That is for after the
      cleanup.
      
      Change-Id: I2c325a101d60fa9d27e7dfcd5b52a864b4a1e09c
      52d350fe
  9. 03 Dec, 2012 1 commit
    • Johann's avatar
      Begin to refactor vpx_scale usage in VP9 · c6bd29e2
      Johann authored
      Only declare the functions in vpx_scale RTCD and include the relevant
      header.
      
      Remove unused files and functions in vpx_scale to avoid wasting time
      renaming. vpx_scale/win32/scaleopt.c contains functions which have not
      been called in a long time but are potentially optimized.
      
      The 'vp8' functions have not been renamed yet. That is for after the
      cleanup.
      
      Change-Id: I2c325a101d60fa9d27e7dfcd5b52a864b4a1e09c
      c6bd29e2
  10. 28 Nov, 2012 2 commits
  11. 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
  12. 02 Nov, 2012 2 commits
  13. 01 Nov, 2012 3 commits
  14. 31 Oct, 2012 3 commits
  15. 26 Oct, 2012 1 commit
  16. 22 Oct, 2012 1 commit
  17. 11 Oct, 2012 1 commit
  18. 08 Oct, 2012 1 commit
    • Yunqing Wang's avatar
      post-proc: deblock filter optimization · 4c53bacc
      Yunqing Wang authored
      1. Algorithm modification:
      Instead of having same filter threshold for a whole frame, now we
      allow the thresholds to be adjusted for each macroblock. In current
      implementation, to avoid excessive blur on background as reported
      in issue480(http://code.google.com/p/webm/issues/detail?id=480), we
      reduce the thresholds for skipped macroblocks.
      
      2. SSE2 optimization:
      As started in issue479(http://code.google.com/p/webm/issues/detail?id=479),
      the filter calculation was adjusted for better performance. The c
      code was also modified accordingly. This made the deblock filter
      2x faster, and the decoder was 1.2x faster overall.
      
      Next, the demacroblock filter will be modified similarly.
      
      Change-Id: I05e54c3f580ccd427487d085096b3174f2ab7e86
      4c53bacc
  19. 04 Sep, 2012 1 commit
    • Deb Mukherjee's avatar
      Adjusting thresholds in mfqe post-processing · c6fd0a5d
      Deb Mukherjee authored
      Adjusts some of the qualification thresholds in mfqe to eliminate
      artifacts due to wrong decisions. Besides, a new qualification
      criteria is used to disable mfqe if the quality of the previous
      frame is itself not too good.
      
      Change-Id: I4097c20b7fd4fcc60cc3003c1e33e8faae2ff066
      c6fd0a5d
  20. 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
  21. 17 Jul, 2012 1 commit
  22. 19 Jun, 2012 1 commit
    • Adrian Grange's avatar
      Corrected usage of image strides · 5eaa9bcf
      Adrian Grange authored
      The function vp8_post_proc_down_and_across_c takes the
      stride of both the src and dst images as parameters, but
      assumes that they are the same.
      
      I modified the code to use the correct strides, as the
      assembler versions of these functions do.
      
      Change-Id: I222715b774cd071b21c15a4b0d2f4aef64a520de
      5eaa9bcf
  23. 11 Jun, 2012 1 commit
    • John Koleszar's avatar
      Fix pedantic compiler warnings · 0164a1cc
      John Koleszar authored
      Allows building the library with the gcc -pedantic option, for improved
      portabilty. In particular, this commit removes usage of C99/C++ style
      single-line comments and dynamic struct initializers. This is a
      continuation of the work done in commit 97b766a4, which removed most
      of these warnings for decode only builds.
      
      Change-Id: Id453d9c1d9f44cc0381b10c3869fabb0184d5966
      0164a1cc
  24. 04 Jun, 2012 1 commit
    • Johann's avatar
      Remove redundant assignment · 2b10528a
      Johann authored
      clang complains about self-assignment
      
      Change-Id: Iead70eed0a960e84a4b167f67f05b05e2965b3b6
      2b10528a
  25. 15 May, 2012 1 commit
  26. 04 May, 2012 1 commit
    • Attila Nagy's avatar
      Make global data const · f039a85f
      Attila Nagy authored
      Removes all runtime initialization of global data. This commit is a
      squashed version of the following series cherry-picked from master.
      This is necessary because of a change that was merged to the tester
      that depends on the scaler being moved to the RTCD framework, which
      is a worthwhile thing to include in Eider anyway.
      
        - a91b42f0 Makes all global data in entropy.c const
        - b35a0db0 Makes all global data in tokenize.c const
        - 441cac8e Makes all mode token tables const
        - 5948a021 Ports vpx_xcaler to new RTCD method
        - 317d4244 Makes all mode token tables const part 2
      
      Change-Id: Ifeaea24df2b731e7c509fa6c6ef6891a374afc26
      f039a85f
  27. 19 Apr, 2012 1 commit
    • Attila Nagy's avatar
      Ports vpx_xcaler to new RTCD method · 5948a021
      Attila Nagy authored
      We can get rid of all remaining global initializers now:
       vp8_scale_machine_specific_config()
       vp8_initialize()
       vp8dx_initialize()
      
      Change-Id: I2825cea5d1c01ad9f6c45df49a0f86d803bfeb69
      5948a021
  28. 23 Mar, 2012 1 commit
  29. 22 Mar, 2012 1 commit
    • Deb Mukherjee's avatar
      Miscellaneous changes in mfqe and postproc modules · 66ba79f5
      Deb Mukherjee authored
      Adds logic to disable mfqe for the first frame after a configuration
      change such as change in resolution. Also adds some missing
      if CONFIG_POSTPROC macro checks.
      
      Change-Id: If29053dad50b676bd29189ab7f9fe250eb5d30b3
      66ba79f5
  30. 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
  31. 13 Mar, 2012 1 commit
  32. 06 Mar, 2012 2 commits
    • Johann's avatar
      RFC: Reorganize MFQE loops · fd903902
      Johann authored
      Break MFQE code into it's own file.
      
      It is currently only valid for 16x16 and 8x8 Y blocks. It also filters
      4x4 U/V blocks.
      
      Refactor filtering and add associated assembly. Limited test cases show
      --mfqe introduces a penalty of ~20% with HD content. The assembly
      reduces the penalty to ~15%
      
      Change-Id: I4b8de6b5cdff5413037de5b6c42f437033ee55bf
      fd903902
    • Johann's avatar
      Move SAD and variance functions to common · e50f96a4
      Johann authored
      The MFQE function of the postprocessor depends on these
      
      Change-Id: I256a37c6de079fe92ce744b1f11e16526d06b50a
      e50f96a4
  33. 29 Feb, 2012 1 commit