1. 03 Dec, 2012 1 commit
  2. 30 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. 01 Nov, 2012 2 commits
  6. 31 Oct, 2012 2 commits
  7. 29 Oct, 2012 1 commit
  8. 16 Oct, 2012 1 commit
  9. 02 Aug, 2012 1 commit
    • Scott LaVarnway's avatar
      Added row based loopfilter · 1746b2ad
      Scott LaVarnway authored
      Interleaved loopfiltering with decode.  For 1080p clips, up to 1%
      performance gain.  For 4k clips, up to 10% seen.  This patch is required
      for better "frame-based" multithreading.
      
      Change-Id: Ic834cf32297cc04f27e8205652fb9f70cbe290db
      1746b2ad
  10. 17 Jul, 2012 1 commit
  11. 23 May, 2012 2 commits
    • Attila Nagy's avatar
      Fix another multithreaded encoder loopfilter race condition · 48908530
      Attila Nagy authored
      After a key frame encoding, the frame type could change while
      filtering is still going on. Pass the frame type as parameter to the
      loopfilter function and don't read it from common storage.
      
      vp8cx_set_alt_lf_level has to be done before packing the stream.
      Currently alt_lf_level is not used so there hasn't been any visible
      problem here.
      
      Change-Id: Ia114162158cd833c2b16e3b89303cc9c91f19165
      48908530
    • Attila Nagy's avatar
      Fix another multithreaded encoder loopfilter race condition · ea392d47
      Attila Nagy authored
      After a key frame encoding, the frame type could change while
      filtering is still going on. Pass the frame type as parameter to the
      loopfilter function and don't read it from common storage.
      
      vp8cx_set_alt_lf_level has to be done before packing the stream.
      Currently alt_lf_level is not used so there hasn't been any visible
      problem here.
      
      Change-Id: Ia114162158cd833c2b16e3b89303cc9c91f19165
      ea392d47
  12. 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
  13. 30 Jan, 2012 2 commits
    • 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
    • John Koleszar's avatar
      RTCD: add loopfilter functions · 55f74c59
      John Koleszar authored
      This commit continues the process of converting to the new RTCD
      system.
      
      Change-Id: Ic8a4047d72ff3a54ec98977dd90e70c13213db71
      55f74c59
  14. 02 Dec, 2011 1 commit
    • Yaowu Xu's avatar
      enabled 8x8 intra prediction modes on inter frames · a8fbab86
      Yaowu Xu authored
      This commit enabled the usage of 8x8 intra prediction modes on inter
      frames. There are a few TODO items related to this: 1)baseline entropy
      need be calibrated; 2)cost of UV need to be done more properly rather
      than using decision only relying on Y; 3)Threshold for allowing picking
      8x8 intra prediction should be lowered to lower than the B_PRED.
      
      Even with all the TODOs, tests showed consistent gain on derf set ~0.1%
      (PSNR:0.08% and SSIM:0.14%). It is assumed that 8x8 intra prediction
      will help more on large resolution clips, especially with above TODOs
      addressed.
      
      Change-Id: I398ada49dfc32575cfab962a569c2885111ae3ba
      a8fbab86
  15. 26 Oct, 2011 1 commit
    • Attila Nagy's avatar
      Reduce partial frame copy in encoder's pick_filter_level_fast · de828094
      Attila Nagy authored
      The partial frame copy function used to copy an extra 8 lines above
      and  below. The partial frame filtering can only modify 3 pixel rows
      above the partial frame. Reduce copy to bare minimum needed, which is
      4 lines, so that partial filtering on copied frame is possible.
      
      Define the "magic" fraction number for partial filtering in
      loopfilter.h .
      
      Change-Id: I4791ffc541b6884b12759a0d0714a8faf16147ec
      de828094
  16. 22 Jul, 2011 1 commit
    • Johann's avatar
      fix sharpness bug and clean up · a04ed0e8
      Johann authored
      sharpness was not recalculated in vp8cx_pick_filter_level_fast
      
      remove last_filter_type. all values are calculated, don't need to update
      the lfi data when it changes.
      
      always use cm->sharpness_level. the extra indirection was annoying.
      
      don't track last frame_type or sharpness_level manually. frame type
      only matters for motion search and sharpness_level is taken care of in
      frame_init
      
      move function declarations to their proper header
      
      Change-Id: I7ef037bd4bf8cf5e37d2d36bd03b5e22a2ad91db
      a04ed0e8
  17. 08 Jul, 2011 1 commit
    • Attila Nagy's avatar
      New loop filter interface · 62295844
      Attila Nagy authored
      Separate simple filter with reduced no. of parameters.
      MB filter level picking based on precalculated table. Level table updated for
      each frame. Inside and edge limits precalculated and updated just when
      sharpness changes. HEV threshhold is constant.
      ARM targets use scalars and others vectors.
      
      Change works only with --target=generic-gnu
      All other targets have to be updated!
      
      Change-Id: I6b73aca6b525075b20129a371699b2561bd4d51c
      62295844
  18. 25 Apr, 2011 1 commit
    • Johann's avatar
      remove simpler_lpf · 01527e74
      Johann authored
      the decision to run the regular or simple loopfilter is made outside the
      function and managed with pointers
      
      stop tracking the option in two places. use filter_type exclusively
      
      Change-Id: I39d7b5d1352885efc632c0a94aaf56b72cc2fe15
      01527e74
  19. 04 Feb, 2011 1 commit
  20. 28 Oct, 2010 2 commits
    • Timothy B. Terriberry's avatar
      Eliminate more warnings. · 97b766a4
      Timothy B. Terriberry authored
      This eliminates a large set of warnings exposed by the Mozilla build
       system (Use of C++ comments in ISO C90 source, commas at the end of
       enum lists, a couple incomplete initializers, and signed/unsigned
       comparisons).
      It also eliminates many (but not all) of the warnings expose by newer
       GCC versions and _FORTIFY_SOURCE (e.g., calling fread and fwrite
       without checking the return values).
      There are a few spurious warnings left on my system:
      
      ../vp8/encoder/encodemb.c:274:9: warning: 'sz' may be used
       uninitialized in this function
      gcc seems to be unable to figure out that the value shortcut doesn't
       change between the two if blocks that test it here.
      
      ../vp8/encoder/onyx_if.c:5314:5: warning: comparison of unsigned
       expression >= 0 is always true
      ../vp8/encoder/onyx_if.c:5319:5: warning: comparison of unsigned
       expression >= 0 is always true
      This is true, so far as it goes, but it's comparing against an enum,
       and the C standard does not mandate that enums be unsigned, so the
       checks can't be removed.
      
      Change-Id: Iead6cd561a2afaa3d801fd63f1d8d58953da7426
      97b766a4
    • Timothy B. Terriberry's avatar
      Eliminate more warnings. · c4d7e5e6
      Timothy B. Terriberry authored
      This eliminates a large set of warnings exposed by the Mozilla build
       system (Use of C++ comments in ISO C90 source, commas at the end of
       enum lists, a couple incomplete initializers, and signed/unsigned
       comparisons).
      It also eliminates many (but not all) of the warnings expose by newer
       GCC versions and _FORTIFY_SOURCE (e.g., calling fread and fwrite
       without checking the return values).
      There are a few spurious warnings left on my system:
      
      ../vp8/encoder/encodemb.c:274:9: warning: 'sz' may be used
       uninitialized in this function
      gcc seems to be unable to figure out that the value shortcut doesn't
       change between the two if blocks that test it here.
      
      ../vp8/encoder/onyx_if.c:5314:5: warning: comparison of unsigned
       expression >= 0 is always true
      ../vp8/encoder/onyx_if.c:5319:5: warning: comparison of unsigned
       expression >= 0 is always true
      This is true, so far as it goes, but it's comparing against an enum, and the C
       standard does not mandate that enums be unsigned, so the checks can't be
       removed.
      
      Change-Id: Iaf689ae3e3d0ddc5ade00faa474debe73b8d3395
      c4d7e5e6
  21. 09 Sep, 2010 1 commit
  22. 29 Jun, 2010 1 commit
    • Yunqing Wang's avatar
      Improve SSE2 loopfilter functions · bead039d
      Yunqing Wang authored
      Restructured and rewrote SSE2 loopfilter functions. Combined u and
      v into one function to take advantage of SSE2 128-bit registers.
      Tests on test clips showed a 4% decoder performance improvement on
      Linux desktop.
      
      Change-Id: Iccc6669f09e17f2224da715f7547d6f93b0a4987
      bead039d
  23. 18 Jun, 2010 1 commit
    • John Koleszar's avatar
      cosmetics: trim trailing whitespace · 94c52e4d
      John Koleszar authored
      When the license headers were updated, they accidentally contained
      trailing whitespace, so unfortunately we have to touch all the files
      again.
      
      Change-Id: I236c05fade06589e417179c0444cb39b09e4200d
      94c52e4d
  24. 04 Jun, 2010 1 commit
  25. 18 May, 2010 1 commit