1. 09 Sep, 2010 1 commit
  2. 03 Sep, 2010 1 commit
    • Scott LaVarnway's avatar
      Reduced the size of MB_MODE_INFO · 0de458f6
      Scott LaVarnway authored
      Moved partition_bmi and partition_count out of MB_MODE_INFO and
      placed into MACROBLOCK.  Also reduced the size of other members
      of the MB_MODE_INFO struct.  For 1080p, the memory was reduced
      by 1,209,516 bytes.  The decoder performance appeared to improve
      by 3% for the clip used.
      Note:  The main goal for this change is to improve the decoder
      performance.  The encoder will be revisited at a later date for
      further structure cleanup.
      
      Change-Id: I4733621292ee9cc3fffa4046cb3fd4d99bd14613
      0de458f6
  3. 02 Sep, 2010 1 commit
    • James Zern's avatar
      encoder: remove postproc dependency · 76640f85
      James Zern authored
      Remove the dependency on postproc.c for the encoder in general, the only
      unchecked need for it is when CONFIG_PSNR is enabled. All other cases
      are already wrapped in CONFIG_POSTPROC. In the CONFIG_PSNR case the file
      will still be included.
      
      Additionally, when VP8_SET_POSTPROC is used with the encoder when post
      processing has been disabled an error will be returned.
      
      This addresses issue #153.
      
      Change-Id: Ia6dfe20167f7077734a6058cbd1d794550346089
      76640f85
  4. 01 Sep, 2010 1 commit
  5. 31 Aug, 2010 2 commits
    • Johann's avatar
      followup arm patch · 0b94f5d6
      Johann authored
      make the arm asm detokenizer work with the new structures
      
      Change-Id: I7cd92c2a018ec24032bb1cfd1bb9739bc84b444a
      0b94f5d6
    • Scott LaVarnway's avatar
      Changed above and left context data layout · e85e6315
      Scott LaVarnway authored
      The main reason for the change was to reduce cycles in the token
      decoder. (~1.5% gain for 32 bit)  This layout should be more
      cache friendly.
      
      As a result of this change, the encoder had to be updated.
      
      Change-Id: Id5e804169d8889da0378b3a519ac04dabd28c837
      Note: dixie uses a similar layout
      e85e6315
  6. 27 Aug, 2010 1 commit
    • Timothy B. Terriberry's avatar
      Fix harmless off-by-1 error. · 7a8e0a29
      Timothy B. Terriberry authored
      The memory being zeroed in vp8_update_mode_info_border() was just
       allocated with calloc, and so the entire function is actually
       redundant, but it should be made correct in case someone expects
       it to actually work in the future.
      
      Change-Id: If7a84e489157ab34ab77ec6e2fe034fb71cf8c79
      7a8e0a29
  7. 23 Aug, 2010 1 commit
    • Fritz Koenig's avatar
      Rework idct calling structure. · 93c32a55
      Fritz Koenig authored
      Moving the eob structure allows for a non-struct based
      function to handle decoding an entire mb of
      idct/dequant/recon data.  This allows for SIMD functions
      to idct/dequant/recon multiple blocks at once.
      
      SSE2 implementation gives 3% gain on Atom.
      
      Change-Id: I8a8f3efd546ea4e0535f517d94f347cfb737c9c2
      93c32a55
  8. 19 Aug, 2010 3 commits
    • Jim Bankoski's avatar
      Revert "Removed ssse3 sixtap code" · b0660457
      Jim Bankoski authored
      This reverts commit 6ea5bb85.
      b0660457
    • Johann's avatar
      cleanup simple loop filter · 52852da7
      Johann authored
      move some things around, reorder some instructions
      
      constant 0 is used several times. load it once per call in horiz,
      once per loop in vert.
      
      separate saturating instructions to avoid stalls.
      
      just use one usub8 call to set GE flags, rather than uqsub8 followed by
      usub8 w/ 0
      
      document some stalls for further consideration
      
      Change-Id: Ic3877e0ddbe314bb8a17fd5db73501a7d64570ec
      52852da7
    • Johann's avatar
      fix armv6 simpleloop filter · 467a0b99
      Johann authored
      test cases were causing a crash because the count was being read
      incorrectly. after fixing that, noticed that the output was not
      matching. fixed that.
      
      Change-Id: Idb0edb887736bd566a3cf6d4aa1a03ea8d20eb27
      467a0b99
  9. 18 Aug, 2010 1 commit
  10. 16 Aug, 2010 1 commit
  11. 13 Aug, 2010 1 commit
    • John Koleszar's avatar
      move segmentation_common to encoder · 80d3923a
      John Koleszar authored
      vp8_update_gf_useage_maps() is only used by the encoder. This patch
      fixes the ability to build in decode-only or encode-only
      configurations.
      
      Change-Id: I3a5211428e539886ba998e09e8abd747ac55c9aa
      80d3923a
  12. 12 Aug, 2010 3 commits
    • Johann's avatar
      update structure · 633646b7
      Johann authored
      mode_info_context->mbmi no longer gets copied up a level
      
      Change-Id: Icd2d27d381909721326c34594a1ccdc26d48a995
      633646b7
    • Johann's avatar
      remove unused definition · 1ec7981c
      Johann authored
      asm_offsets contains some definitions which are no longer used. this
      was one of them. v6 build works now
      
      Change-Id: If370cfa8acd145de4fead2d9a11b048fccc090df
      1ec7981c
    • Scott LaVarnway's avatar
      Removed unnecessary MB_MODE_INFO copies · 9c7a0090
      Scott LaVarnway authored
      These copies occurred for each macroblock in the encoder and decoder.
      Thetemp MB_MODE_INFO mbmi was removed from MACROBLOCKD.  As a result,
      a large number compile errors had to be fixed.
      
      Change-Id: I4cf0ffae3ce244f6db04a4c217d52dd256382cf3
      9c7a0090
  13. 11 Aug, 2010 4 commits
    • John Koleszar's avatar
      avoid negative array subscript warnings · 392a9582
      John Koleszar authored
      The mv_ref and sub_mv_ref token encodings are indexed from NEARESTMV
      and LEFT4X4, respectively, rather than being zero-based like the
      other token encodings.
      
      Change-Id: I3699c3f84111209ecfb91097c4b900773e9a3ad5
      392a9582
    • Scott LaVarnway's avatar
      Finished vp8_sixtap_predict4x4_ssse3 function · b07e5b6f
      Scott LaVarnway authored
      Added vp8_filter_block1d4_h6_ssse3 and vp8_filter_block1d4_v6_ssse3
      assembly routines.  Also removed unused assembly.
      
      Change-Id: I01c1021835f2edda9da706822345f217087ca0d0
      b07e5b6f
    • Johann's avatar
      rename DETOK_[AL] · c0ba42d3
      Johann authored
      everything else uses lowercase detok
      
      Change-Id: I9671e2e90eb2961208dfa81c00b3accb5749ec04
      c0ba42d3
    • Scott LaVarnway's avatar
      Moved gf_active code to encoder only · 99f46d62
      Scott LaVarnway authored
      The gf_active code is only used by the encoder, so it was moved from
      common and decoder.
      
      Change-Id: Iada15acd5b2b33ff70c34668ca87d4cfd0d05025
      99f46d62
  14. 10 Aug, 2010 1 commit
  15. 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
  16. 02 Aug, 2010 1 commit
    • 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
  17. 28 Jul, 2010 1 commit
    • 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
  18. 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
  19. 23 Jul, 2010 4 commits
  20. 07 Jul, 2010 1 commit
  21. 30 Jun, 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. 21 Jun, 2010 1 commit
    • Timothy B. Terriberry's avatar
      Fix a linker error on x86-64 Linux when not using a version script. · 9f814634
      Timothy B. Terriberry authored
      If the version script produced by the libvpx build system is not
       used when linking a shared library on x86-64 Linux, the constant
       data in the subpel filters produces R_X86_64_32 relocation errors
       due to the use of wrt rip addressing instead of
       wrt rip wrt ..gotpcrel.
      Instead of adding a new macro for this addressing mode, this patch
       sets the ELF visibility of these symbols to "hidden", which
       allows wrt rip addressing to work without a text relocation.
      This allows building a shared library without using the provided
       build system or a separate version script.
      Fixes http://code.google.com/p/webm/issues/detail?id=46
      
      Change-Id: Ie108f9d9a4352e5af46938bf4750d2302c1b2dc2
      9f814634
  24. 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
  25. 16 Jun, 2010 1 commit
    • Timothy B. Terriberry's avatar
      Change bitreader to use a larger window. · c17b62e1
      Timothy B. Terriberry authored
      Change bitreading functions to use a larger window which is refilled less
       often.
      
      This makes it cheap enough to do bounds checking each time the window is
       refilled, which avoids the need to copy the input into a large circular
       buffer.
      This uses less memory and speeds up the total decode time by 1.6% on an ARM11,
       2.8% on a Cortex A8, and 2.2% on x86-32, but less than 1% on x86-64.
      
      Inlining vp8dx_bool_decoder_fill() has a big penalty on x86-32, as does moving
       the refill loop to the front of vp8dx_decode_bool().
      However, having the refill loop between computation of the split values and
       the branch in vp8_decode_mb_tokens() is a big win on ARM (presumably due to
       memory latency and code size: refilling after normalization duplicates the
       code in the DECODE_AND_BRANCH_IF_ZERO and DECODE_AND_LOOP_IF_ZERO cases.
      Unfortunately, refilling at the end of vp8dx_bool_decoder_fill() and at the
       beginning of each decode step in vp8_decode_mb_tokens() means the latter
       requires an extra refill at the end.
      Platform-specific versions could avoid the problem, but would require most of
       detokenize.c to be duplicated.
      
      Change-Id: I16c782a63376f2a15b78f8086d899b987204c1c7
      c17b62e1
  26. 15 Jun, 2010 1 commit
  27. 11 Jun, 2010 1 commit
  28. 10 Jun, 2010 1 commit
    • Yunqing Wang's avatar
      Improve vp8_sixtap_predict functions · 8873a938
      Yunqing Wang authored
      Restructure vp8_sixtap_predict functions to eliminate extra 5-line
      calculation while doing first-pass only. Also, combline functions
      to eliminate usage of intermediate buffer. This gives decoder a 3%
      performance gain on my test clips.
      
      Change-Id: I13de49638884d1a57d0855c63aea719316d08c1b
      8873a938
  29. 09 Jun, 2010 1 commit
    • John Koleszar's avatar
      Remove secondary mv clamping from decode stage · 3085025f
      John Koleszar authored
      This patch removes the secondary MV clamping from the MV decoder. This
      behavior was consistent with limits placed on non-split MVs by the
      reference encoder, but was inconsistent with the MVs generated in the
      split case.
      
      The purpose of this secondary clamping was only to prevent crashes on
      invalid data. It was not intended to be a behaviour an encoder could or
      should rely on. Instead of doing additional clamping in a way that
      changes the entropy context, the secondary clamp is removed and the
      border handling is made implmentation specific. With respect to the
      spec, the border is treated as essentially infinite, limited only by
      the clamping performed on the near/nearest reference and the maximum
      encodable magnitude of the residual MV.
      
      This does not affect any currently produced streams.
      
      Change-Id: I68d35a2fbb51570d6569eab4ad233961405230a3
      3085025f