1. 06 Dec, 2012 1 commit
  2. 29 Nov, 2012 1 commit
  3. 28 Nov, 2012 1 commit
  4. 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
  5. 17 Nov, 2012 1 commit
  6. 08 Nov, 2012 1 commit
  7. 02 Nov, 2012 1 commit
    • John Koleszar's avatar
      vpx_scale: sync from master · 06f3e51d
      John Koleszar authored
      Update vpx_scale from current code in master, run style transform, fix
      lint warnings.
      
      Change-Id: I47eadeb5b6881d448ea3728537f9b8a5b5aac78e
      06f3e51d
  8. 01 Nov, 2012 3 commits
  9. 31 Oct, 2012 3 commits
  10. 16 Oct, 2012 1 commit
  11. 14 Oct, 2012 2 commits
  12. 10 Oct, 2012 1 commit
    • Jim Bankoski's avatar
      convert copy16x16 to rtcd · 89f060e8
      Jim Bankoski authored
      Convert copy16x16 from invoke to rtcd.  The first in a long
      string of converts.
      
      Change-Id: I296b0aa32f40e9fb649f7a3cb914a4e5300cad63
      89f060e8
  13. 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
  14. 15 Aug, 2012 1 commit
    • Paul Wilkins's avatar
      Code clean up. · 77dc5c65
      Paul Wilkins authored
      Further cases of inconsistent naming convention.
      
      Change-Id: Id3411ecec6f01a4c889268a00f0c9fd5a92ea143
      77dc5c65
  15. 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
  16. 17 Jul, 2012 1 commit
  17. 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
  18. 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
  19. 02 May, 2012 1 commit
    • Attila Nagy's avatar
      Fix compiler warnings · 14c9fce8
      Attila Nagy authored
      Fix code for following warnings:
      -Wimplicit-function-declaration
      -Wuninitialized
      -Wunused-but-set-variable
      -Wunused-variable
      
      Change-Id: I2be434f22fdecb903198e8b0711255b4c1a2947a
      14c9fce8
  20. 27 Apr, 2012 3 commits
    • Adrian Grange's avatar
      Removed MV costing from ARNR filtering · 393440db
      Adrian Grange authored
      The ARNR filter uses a motion compensated temporal filter,
      but the motion estimation implementation accounts for the
      cost of the mv in its decision making process. The ARNR
      filter uses a dummy cost table initialized to 0 as a way
      to ignore the mv costs (which are irrelevant to the filter).
      
      This CL modifies the ARNR filter implementation to so that
      the mv costing is ignored without the requirement for
      dummy tables.
      
      Change-Id: I0dd9620c3b70682f938b2a70912c11d4d7c9284c
      393440db
    • Adrian Grange's avatar
      Modified ARNR MC-filter to ignore ARF frame · 3f252e30
      Adrian Grange authored
      The ARNR filter uses MC to find the best match between the
      ARF and other nearby frames in the filter-set. Since the
      ARF is a member of the filter-set, MC in that case is
      unnecesssary. This patch modifies the filter so it does
      not apply MC in this case.
      
      Change-Id: Ic0321199c08db2189a57f28d1700b745bc7ff66d
      3f252e30
    • Adrian Grange's avatar
      Removed MV costing from ARNR filtering · f0605f4b
      Adrian Grange authored
      The ARNR filter uses a motion compensated temporal filter,
      but the motion estimation implementation accounts for the
      cost of the mv in its decision making process. The ARNR
      filter uses a dummy cost table initialized to 0 as a way
      to ignore the mv costs (which are irrelevant to the filter).
      
      This CL modifies the ARNR filter implementation so that
      the mv costing is ignored without the requirement for
      dummy tables.
      
      Change-Id: I4196aa5c24da63f858ff54fbaa5fc85ae1f1957f
      f0605f4b
  21. 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
  22. 18 Apr, 2012 1 commit
  23. 16 Mar, 2012 1 commit
    • Yunqing Wang's avatar
      Add motion search skipping in first pass · 6a819ce4
      Yunqing Wang authored
      This change added a motion search skipping mechanism similar
      to what we did in second pass. For a macroblock that is very
      similar to the macroblock at same location on last frame,
      we can set its mv to be zero, and skip motion search. This
      improves first-pass performance for slide shows and video
      conferencing clips with a slight PSNR loss.
      
      Change-Id: Ic73f9ef5604270ddd6d433170091d20361dfe229
      6a819ce4
  24. 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
  25. 05 Mar, 2012 1 commit
    • Yaowu Xu's avatar
      Changed how UV r/d estimates are done for Intra Modes · 6898e8b7
      Yaowu Xu authored
      The commit changed to compute UV intra RD estimates for 4x4 and 8x8
      separately to be used in mode decision for MB modes associated with
      the appropriate transform size respectively. Now finally after many
      other changes related 8x8 quantizer zbin boost and zbin_mode_boost,
      this change overall helps the HD(with 8x8) by around ~.13%.
      (avg .13%  glb .13% ssim .17%)
      
      The commit also has a few changes for eliminating compiler warnings.
      
      Change-Id: Ibab35dad44820c87e6b44799c66f8d519cc37344
      6898e8b7
  26. 28 Feb, 2012 1 commit
    • Deb Mukherjee's avatar
      Initial refactoring of high_precision mv code. · 3e1cad9c
      Deb Mukherjee authored
      This is the first patch for refactoring of the code related to
      high-precision mv, so that 1/4 and 1/8 pel motion vectors can
      co-exist in the same bit-stream by use of a frame level flag.
      The current patch works fine for only use of 1/4th and
      only use of 1/8th pel mv, but there are some issues with the
      mode switching in between. Subsequent patches on this change Id
      will fix the remaining issues.
      
      Patch 2: Adds fixes to make sure that multiple mv precisions can
      co-exist in the bit-stream. Frame level switching has been tested
      to work correctly.
      
      Patch 3: Fixes lines exceeding 80 char
      
      Patch 4:
      http://www.corp.google.com/~debargha/vp8_results/enhinterp.html
      
      Results on derf after ssse3 bugfix, compared to everything
      enabled but the 8-tap, 1/8-subpel and 1/16-subpel uv. Overall the
      gains are about 3% now. Hopefully there are no more bugs lingering.
      Apparently the sse3 bug affected the quartel subpel results more than
      the eighth pel ones (which is understandabale because one bad predictor
      due to the bug, matters less if there are a lot more subpel options
      available as in the 1/8 subpel case).
      The results in the 4th column correspond to the current settings.
      The first two columns correspond to two settings of adaptive switching
      of the 1/4 or 1/8 subpel mode based on initial Q estimate. These
      do not work as good as just using 1/8 all the time yet.
      
      Change-Id: I3ef392ad338329f4d68a85257a49f2b14f3af472
      3e1cad9c
  27. 23 Feb, 2012 1 commit
    • Deb Mukherjee's avatar
      Supporting high precision 1/8-pel motion vectors · 18e90d74
      Deb Mukherjee authored
      This is the initial patch for supporting 1/8th pel
      motion. Currently if we configure with enable-high-precision-mv,
      all motion vectors would default to 1/8 pel. Encode and
      decode syncs fine with the current code. In the next phase
      the code will be refactored so that we can choose the 1/8
      pel mode adaptively at a frame/segment/mb level.
      
      Derf results:
      http://www.corp.google.com/~debargha/vp8_results/enhinterp_hpmv.html
      (about 0.83% better than 8-tap interpoaltion)
      
      Patch 3: Rebased. Also adding 1/16th pel interpolation for U and V
      
      Patch 4: HD results.
      http://www.corp.google.com/~debargha/vp8_results/enhinterp_hd_hpmv.html
      Seems impressive (unless I am doing something wrong).
      
      Patch 5: Added mmx/sse for bilateral filtering, as well as enforced
      use of c-versions of subpel filters with 8-taps and 1/16th pel;
      Also redesigned the 8-tap filters to reduce the cut-off in order to
      introduce a denoising effect. There is a new configure option
      sixteenth-subpel-uv which will use 1/16 th pel interpolation for
      uv, if the motion vectors have 1/8 pel accuracy.
      
      With the fixes the results are promising on the derf set. The enhanced
      interpolation option with 8-taps alone gives 3% improvement over thei
      derf set:
      http://www.corp.google.com/~debargha/vp8_results/enhinterpn.html
      
      Results on high precision mv and on the hd set are to follow.
      
      Patch 6: Adding a missing condition for CONFIG_SIXTEENTH_SUBPEL_UV in
      vp8/common/x86/x86_systemdependent.c
      
      Patch 7: Cleaning up various debug messages.
      
      Patch 8: Merge conflict
      
      Change-Id: I5b1d844457aefd7414a9e4e0e06c6ed38fd8cc04
      18e90d74
  28. 10 Feb, 2012 1 commit
    • Paul Wilkins's avatar
      Removal of threading code. · 2615ca5d
      Paul Wilkins authored
      For the experimental branch we are trying to slim the codebase
      down removing features such as threading for now which complicate
      the process of development and testing.
      
      Change-Id: I657c0246aef4d1fa8c8ffc6a1adfeee45bce8e24
      2615ca5d
  29. 31 Jan, 2012 1 commit
    • Scott LaVarnway's avatar
      BLOCKD structure cleanup · 749bc986
      Scott LaVarnway authored
      Removed redundancies.  All of the information can be
      found in the MACROBLOCKD structure.
      
      Change-Id: I7556392c6f67b43bef2a5e9932180a737466ef93
      749bc986
  30. 30 Jan, 2012 2 commits
    • John Koleszar's avatar
      RTCD: add arnr functions · 109b69a7
      John Koleszar authored
      This commit continues the process of converting to the new RTCD
      system. It removes the last of the VP8_ENCODER_RTCD struct references.
      
      Change-Id: I2a44f52d7cccf5177e1ca98a028ead570d045395
      109b69a7
    • John Koleszar's avatar
      RTCD: add recon functions · fdb61a45
      John Koleszar authored
      This commit continues the process of converting to the new RTCD
      system.
      
      Change-Id: I9bfcf9bef65c3d4ba0fb9a3e1532bad1463a10d6
      fdb61a45
  31. 22 Dec, 2011 1 commit
    • John Koleszar's avatar
      Remove unnecessary ternary constructs · 0c2b2c79
      John Koleszar authored
      The code had a number of constructs like (condition)?1:0,
      which is redundant with C's semantics. In the cases where a boolean
      operator was used in the condition, simply remove the ternary part.
      Otherwise adjust the surrounding expression to remove the condition
      (eg, for rounding up. See pickinter.c and rdopt.c)
      
      Change-Id: Icb2372defa3783cf31857d90b2630d06b2c7e1be
      0c2b2c79
  32. 21 Dec, 2011 1 commit
    • John Koleszar's avatar
      Remove useless g_common.h · 0c2f8e77
      John Koleszar authored
      This file declared a bunch of nonexistent, unreferenced global
      function pointers.
      
      Change-Id: Ic26bb8c7712deba754c49fc01f383b53afc9e728
      0c2f8e77