1. 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
  2. 15 Jun, 2010 - 1 commit
  3. 14 Jun, 2010 - 3 commits
  4. 12 Jun, 2010 - 1 commit
    • John Koleszar's avatar
      Make this/next iiratio unsigned. · cd475da8
      John Koleszar authored
      This patch addresses issue #79, which is a regression since commit
      28de670c "Fix RD bug." If the coded error value is zero, the iiratio
      calculation effectively multiplies by 1000000 by the
      DOUBLE_DIVIDE_CHECK macro. This can result in a value larger than
      INT_MAX, giving a negative ratio. Since the error values are
      conceptually unsigned (though they're stored in a double) this patch
      makes the iiratio values unsigned, which allows the clamping to work
      as expected.
      cd475da8
  5. 11 Jun, 2010 - 7 commits
  6. 10 Jun, 2010 - 4 commits
    • Timothy B. Terriberry's avatar
      Fix new MV clamping scheme for chroma MVs. · 05c6eca4
      Timothy B. Terriberry authored
      The new scheme introduced in I68d35a2f did not clamp chroma MVs in the SPLITMV
       case, and clamped them incorrectly (to the luma plane bounds) in every other
       case.
      Because chroma MVs are computed from the luma MVs before clamping occurs, they
       could still point outside of the frame buffer and cause crashes.
      This clamping happens outside of the MV prediction loop, and so should not
       affect bitstream decoding.
      05c6eca4
    • John Koleszar's avatar
      Remove reference to 'vpx Technologies' · 317a6669
      John Koleszar authored
      Vestigial.
      
      Change-Id: Iffa9e6d5ba5199b136d7549890101da17c11e3c3
      317a6669
    • 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
    • Paul Wilkins's avatar
      Adjust to avoid long line · a04ed23f
      Paul Wilkins authored
      a04ed23f
  7. 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
  8. 08 Jun, 2010 - 3 commits
  9. 07 Jun, 2010 - 3 commits
  10. 05 Jun, 2010 - 1 commit
    • John Koleszar's avatar
      shared library support (.so) · 7aa97a35
      John Koleszar authored
      This patch adds support for building shared libraries when configured
      with the --enable-shared switch.
      
      Building DLLs would require more invasive changes to the sample
      utilities than I want to make in this patch, since on Windows you can't
      use the address of an imported symbol in a static initializer. The best
      way to work around this is proably to build the codec interface mapping
      table with an init() function, but dll support is of questionable value
      anyway, since most windows users will probably use a media framework
      lib like webmdshow, which links this library in staticly.
      
      Change-Id: Iafb48900549b0c6b67f4a05d3b790b2643d026f4
      7aa97a35
  11. 04 Jun, 2010 - 1 commit
  12. 01 Jun, 2010 - 1 commit
  13. 30 May, 2010 - 1 commit
  14. 28 May, 2010 - 3 commits
    • Luca Barbato's avatar
      expose vp8_deblock · e7876abb
      Luca Barbato authored
      it is used by vp8/encoder/onyx_if.c
      
      fixes:
      vp8/encoder/onyx_if.c:5189: warning: implicit declaration of function
      ‘vp8_deblock’
      e7876abb
    • Yaowu Xu's avatar
      Fix stats format and correct data size and bit rate output · a7bb3360
      Yaowu Xu authored
      Change-ID: I093abe6094589a0d73f6ca85b825678a19e68285
      a7bb3360
    • Yaowu Xu's avatar
      Increase the size of output packet list · 8caa5c2d
      Yaowu Xu authored
      This is to accommodate output packets for both compressed
      data and psnr stats. For each frame, there are at least
      one packet for compressed data and one for psnr stats. For
      a max lag of 25, 64 is large enough to cover all lagged
      frames at the end of encoding.
      
      Change-Id: If20787fbc86f96e1aa16a3ccf2adc93e6c1e3d5f
      8caa5c2d
  15. 25 May, 2010 - 4 commits
  16. 24 May, 2010 - 1 commit
  17. 21 May, 2010 - 2 commits
    • James Zern's avatar
      Put img_fmt in the vpx namespace · 6cd4a10e
      James Zern authored
      Avoid an potential name clashes and match other external types.
      s/IMG_FMT/VPX_$&/g
      s/img_fmt/vpx_$&/g
      
      Change-Id: Ia7ad5bbb6424416b37e71e5f5eb1eca31c3c707f
      6cd4a10e
    • John Koleszar's avatar
      configure: remove HAVE_CONFIG_H · 1df0314e
      John Koleszar authored
      This doesn't play well with autotools, and the preprocessor magic is
      confusing and unhelpful in the vp8-only context.
      
      Change-Id: I2fcb57e6eb7876ecb58509da608dc21f26077ff1
      1df0314e
  18. 20 May, 2010 - 1 commit
  19. 19 May, 2010 - 1 commit
    • Yaowu Xu's avatar
      Fixed an encoder debug/relese mismatch in x86_64-win64-vs8 · c15652bc
      Yaowu Xu authored
      Visual c++ compiler uses xmm registers for floating point
      operations for 64 bit architecture, therefore its calling
      convention requires the preservation of xmm6-xmm15 in any
      function that have used these registers. However, the sse2
      functions, that were originally written for 32 bit windows,
      may have used xmm6 and xmm7 without preserving the content.
      In this particular case, the compiler used xmm6 to save
      the variable "two_pass_min_rate", the value of the variable
      is mucked up by our sse2 optimized loop filter functions,
      hence the results of release/debug mismatching.
      c15652bc