1. 10 Aug, 2010 2 commits
    • Scott LaVarnway's avatar
      Added ssse3 version of sixtap filters · e4fe8669
      Scott LaVarnway authored
      Improved decoder performance by 9% for the clip used.
      
      Change-Id: I8fc5609213b7bef10248372595dc85b29f9895b9
      e4fe8669
    • Yunqing Wang's avatar
      First modification of multi-thread decoder · ba2e107d
      Yunqing Wang authored
      This is the first modification of VP8 multi-thread decoder, which uses
      same threads to decode macroblocks and then do loopfiltering for each
      frame.
      
      Inspired by Rob Clark, synchronization was done on every 8 macroblocks
      instead of every macroblock to reduce lock contention.
      
      Comparing with the original code, this implementation gave about 15%-
      20% performance gain while decoding my test clips on a Core2 Quad
      platform (Linux).
      
      The work is not done yet.
      
      Test on other platforms are needed.
      
      Change-Id: Ice9ddb0b511af1359b9f71e65066143c04fef3b5
      ba2e107d
  2. 09 Aug, 2010 1 commit
    • John Koleszar's avatar
      Mark loopfilter C functions as static · 618c7d27
      John Koleszar authored
      Clang defaults to C99 mode, and inline works differently in C99.
      (gcc, on the other hand, defaults to a special gnu-style inlining,
      which uses different syntax.)   Making the functions static makes sure
      clang doesn't decide to discard a function because it's too large to
      inline.
      
      Thanks to eli.friedman for the patch.
      
      Fixes http://code.google.com/p/webm/issues/detail?id=114
      
      Change-Id: If3c1c3c176eb855a584a60007237283b0cc631a4
      618c7d27
  3. 02 Aug, 2010 4 commits
    • Jan Kratochvil's avatar
      nasm: avoid space before the :data symbol type. · 0e8f108f
      Jan Kratochvil authored
      global label:data
                 ^^
      
      Provide nasm compatibility.  No binary change by this patch with yasm
      on {x86_64,i686}-fedora13-linux-gnu.  Few longer opcodes with nasm on
      {x86_64,i686}-fedora13-linux-gnu have been checked as safe.
      
      Change-Id:	I10f17eb1e4d4a718d4ebd1d0ccddc807c365e021
      0e8f108f
    • Jan Kratochvil's avatar
      nasm: end labels with colon (':') · 0327d3df
      Jan Kratochvil authored
      Labels should end by colon (':'), nasm requires it.
      
      Provide nasm compatibility.  No binary change by this patch with yasm
      on {x86_64,i686}-fedora13-linux-gnu.  Few longer opcodes with nasm on
      {x86_64,i686}-fedora13-linux-gnu have been checked as safe.
      
      Change-Id: I0b2ec6f01afb061d92841887affb5ca0084f936f
      0327d3df
    • Jan Kratochvil's avatar
      nasm: use OWORD vs DQWORD · c8134bc5
      Jan Kratochvil authored
      nasm knows only OWORD.  yasm knows both OWORD and DQWORD.
      
      Provide nasm compatibility.  No binary change by this patch with yasm on
      {x86_64,i686}-fedora13-linux-gnu.  Few longer opcodes with nasm on
      {x86_64,i686}-fedora13-linux-gnu have been checked as safe.
      
      Change-Id: I62151390089e90df9a7667822fa594ac20b00e78
      c8134bc5
    • Philip Jägenstedt's avatar
      Replace pinsrw (SSE) with MMX instructions · 7d243701
      Philip Jägenstedt authored
      Fixes http://code.google.com/p/webm/issues/detail?id=136
      
      Change-Id:	I5a3e294061644a1a9718e8ba4a39548ede25cc42
      7d243701
  4. 29 Jul, 2010 1 commit
  5. 28 Jul, 2010 2 commits
    • Frank Galligan's avatar
      Removed two unused global variables. · 062e6c18
      Frank Galligan authored
      Removed the global variables vp8_an and vp8_cd. vp8_an was causing problems
      because it was increasing the .bss by 1572864 bytes.
      
      Change-Id: I6c12e294133c7fb6e770c0e4536d8287a5720a87
      062e6c18
    • Yaowu Xu's avatar
      Enable the switch between two versions of quantizer · f95c80b6
      Yaowu Xu authored
      To facilitate more testing related to quantizer and rate
      control, the old version quantizer is added back. old and
      new quantizer can be switched back and forth by define or
      un-define the macro "EXACT_QUANT".
      
      Change-Id: Ia77e687622421550f10e9d65a9884128a79a65ff
      f95c80b6
  6. 27 Jul, 2010 3 commits
    • Johann's avatar
      x86/sse2: disable asm quantizer · a570bbd4
      Johann authored
      follow up to Change I0e51492d: neon: disable asm quantizer
      
      Now x86 doesn't segfault with --disable-runtime-cpu-detect and -p=2
      
      Change-Id: I8ca127bb299198efebbcbd5a661e81788361933f
      a570bbd4
    • Johann's avatar
      Fix build w/o RTCD · b9a038a5
      Johann authored
      So many places to update ...
      
      Change-Id: Ide957b40cc833f99c2d1849acade6850fbf7585d
      b9a038a5
    • John Koleszar's avatar
      neon: disable asm quantizer · d8009c07
      John Koleszar authored
      The assembly version of the quantizer has not been updated to match
      the new exact quantizer introduced in commit e04e2935. That commit tried
      to disable this code but missed the non-RTCD case.
      
      Thanks to David Baker <david.baker at openmarket.com> for isolating the
      issue and testing this fix.
      
      Change-Id: I0e51492dc6f8e44d2c10b587427448bf94135c65
      d8009c07
  7. 26 Jul, 2010 1 commit
    • Johann's avatar
      update arm idct functions · 56f5a9a0
      Johann authored
      Jeff Muizelaar posted some changes to the idct/reconstruction c code.
      This is the equivalent update for the arm assembly.
      
      This shows a good boost on v6, and a minor boost on neon.
      Here are some numbers for highway in qcif, 2641 frames:
      HEAD neon: ~161 fps
      new neon:  ~162 fps
      HEAD v6:   ~102 fps
      new v6:    ~106 fps
      
      The following functions have been updated for armv6 and neon:
      vp8_dc_only_idct_add
      vp8_dequant_idct_add
      vp8_dequant_dc_idct_add
      
      Conflicts:
      
      	vp8/decoder/arm/armv6/dequantdcidct_v6.asm
      	vp8/decoder/arm/armv6/dequantidct_v6.asm
      
      Resolved by removing these files. When I rewrote the functions, I also
      moved the files to dequant_dc_idct_v6.asm/dequant_idct_v6.asm
      
      Change-Id: Ie3300df824d52474eca1a5134cf22d8b7809a5d4
      56f5a9a0
  8. 23 Jul, 2010 9 commits
  9. 22 Jul, 2010 2 commits
    • Fritz Koenig's avatar
      Remove CONFIG_NEW_TOKENS files. · 08eed049
      Fritz Koenig authored
      These files were out of date and no longer maintained.
      Token decoding has implemented the no-crash code which
      is incompatible with this arm assembly code.
      
      Change-Id: Ibf729886c56fca48181af60b44bda896c30023fc
      08eed049
    • John Koleszar's avatar
      msvs: fix install of codec sources · 4d86ef35
      John Koleszar authored
      The libs.mk file must be installed for the vpx.vcproj file to be
      generated. It was being installed, but not in the src/ directory as
      expected.
      
      Also missed include files yasm.rules, quantize_x86.h
      
      Change-Id: Ic1a6f836e953bfc954d6e42a18c102a0114821eb
      4d86ef35
  10. 19 Jul, 2010 3 commits
    • Paul Wilkins's avatar
      ARNR Lookup Table. · 0ba32632
      Paul Wilkins authored
      Change submitted for Adrian Grange. Convert threshold
      calculation in ARNR filter to a lookup table.
      
      Change-Id: I12a4bbb96b9ce6231ce2a6ecc2d295610d49e7ec
      0ba32632
    • Paul Wilkins's avatar
      Parameter limit change. · 02277b8a
      Paul Wilkins authored
      Change maximum ARNR filter width to 15.
      
      Change-Id: I3b72450ea08e96287445ec18810630ee2292954c
      02277b8a
    • Paul Wilkins's avatar
      Rate control fix for ARNR filtered frames. · bf18069c
      Paul Wilkins authored
      Previously we had assumed that it was necessary to give a full frame's
      bit allocation to the alt ref frame if it has been created through temporal
      filtering. This is not the case. The active max quantizer control
      insures that sufficient bits are allocated if needed and allocating a
      full frame's worth of bits creates an excessive overhead for the ARF.
      
      Change-Id: I83c95ed7bc7ce0e53ccae6ff32db5a97f145937a
      bf18069c
  11. 16 Jul, 2010 1 commit
  12. 12 Jul, 2010 1 commit
  13. 07 Jul, 2010 2 commits
  14. 01 Jul, 2010 1 commit
    • Adrian Grange's avatar
      Fix bug in 1st pass motion compensation · 0618ff14
      Adrian Grange authored
      In the case where the best reference mv is not (0,0) a secondary
      search is carried out centered on (0,0). However, rather than
      sending tmp_err into the search function, motion_error was
      inadvertently passed.
      
      As a result tmp_err remains set at INT_MAX and the (0,0)-based
      search result will never be selected, even if it is better.
      
      Change-Id: I3c82b246c8c82ba887b9d3fb4c9e0a0f2fe5a76c
      0618ff14
  15. 30 Jun, 2010 2 commits
  16. 29 Jun, 2010 3 commits
    • 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
    • Paul Wilkins's avatar
      Further adjustment of RD behaviour with Q and Zbin. · 1ca39bf2
      Paul Wilkins authored
      Following conversations with Tim T (Derf) I ran a large number of
      tests comparing the existing polynomial expression with a simpler
      ^2 variant. Though the polynomial was sometimes a little better at
      the extremes of Q it was possible to get close for most clips and
      even a little better on some.
      
      This code also changes the way the RD multiplier is calculated
      when the ZBIN is extended to use a variant of the same ^2
      expression.
      
      I hope that this simpler expression will be easier to tune further
      as we expand our test set and consider adjustments based on content.
      
      Change-Id: I73b2564346e74d1332c33e2c1964ae093437456c
      1ca39bf2
    • Yaowu Xu's avatar
      Improve the accuracy of forward walsh-hadamard transform · b62d093e
      Yaowu Xu authored
      Besides the slight improvement in round trip error. This
      also fixes a sign bias in the forward transform, so the
      round trip errors are evenly distributed between +1s and
      -1s. The old bias seemed to work well with the dc sign bias
      in old fdct,  which no longer exist in the improved fdct.
      
      Change-Id: I8635e7be16c69e69a8669eca5438550d23089cef
      b62d093e
  17. 28 Jun, 2010 1 commit
    • Adrian Grange's avatar
      Fixed buffer selection for UV in AltRef filtering · aa8fe0d2
      Adrian Grange authored
      Corrected setting of "which_buffer" for U & V cases to match that
      used for Y, i.e. to refer to the temporally most recent frame of
      those to be filtered.
      
      Change-Id: Idf94b287ef47a05f060da3e61134a0b616adcb6b
      aa8fe0d2
  18. 24 Jun, 2010 1 commit