1. 17 Jul, 2014 1 commit
    • Adrian Grange's avatar
      Modified frame buffer handling · f68aaa38
      Adrian Grange authored
      This patch is the first step toward simplifying the
      frame buffer handling.
      
      The final goal is to have a common frame buffer handling
      framework for both encoder and decoder that incorporates
      the existing ability to use externally allocated memory.
      
      Change-Id: I2c378a4f54a39908915f46c4260e17a080db7ff1
      f68aaa38
  2. 11 Jul, 2014 4 commits
    • Jingning Han's avatar
      Fix chrome valgrind warning due to the use of mismatched bsize · 3cddd81c
      Jingning Han authored
      This commit fixes a mismatched use case of block size in non-RD
      intra prediction check. The residual SSE and variance should be
      calculated per transform block size, instead of operating block
      size, which caused chrome valgrind warning on conditional jump
      based on uninitialized value (webm issue 823). This commit
      resolves this issue.
      
      Change-Id: I595c06599c7e0fd0e4a08736519ba68fc14bc79a
      3cddd81c
    • Deb Mukherjee's avatar
      Some extra bit probability cleanups · 6957e7a0
      Deb Mukherjee authored
      Refactoring to remove some duplication of probability
      tables between tokenization and detokenization.
      
      Change-Id: I2fc6a6497f9c0410021a9b41f828bc58a864e466
      6957e7a0
    • Yunqing Wang's avatar
      Remove unnecessary assertions · 978642a4
      Yunqing Wang authored
      Removed 2 unnecessary assertions.
      
      Change-Id: I0f8877d0494bf3ecdb0d7931ccbcaa8289e01d8b
      978642a4
    • Yaowu Xu's avatar
      Remove an unused parameter · a75d55df
      Yaowu Xu authored
      Change-Id: I6ad6fd75dc3c9e6218d88148cf49e205398e2af5
      a75d55df
  3. 10 Jul, 2014 4 commits
    • James Zern's avatar
      update vp9_thread.c · 8701ed02
      James Zern authored
      pull the latest from libwebp.
      
      Original source:
       http://git.chromium.org/webm/libwebp.git
       100644 blob 264210ba2807e4da47eb5d18c04cf869d89b9784 src/utils/thread.c
      
      commit 46fd44c1042c9903b2f1ab87e9f200a13c7e702d
      Author: James Zern <jzern@google.com>
      Date:   Tue Jul 8 19:53:28 2014 -0700
      
          thread: remove harmless race on status_ in End()
      
          if a thread was still doing work when End() was called there'd be a race
          on worker->status_. in these cases, however, the specific value is
          meaningless as it would be >= OK and the thread would have been shut
          down properly, but we'll check 'impl_' instead to avoid any potential
          TSan/DRD reports.
      
          Change-Id: Ib93cbc226a099f07761f7bad765549dffb8054b1
      
      Change-Id: Ib0ef25737b3c6d017fa74822e21ed58508230b91
      8701ed02
    • hkuang's avatar
      Fix a bug in boundary checking. · 51e9788e
      hkuang authored
      Change-Id: Ifc741da9da6f61c8d3c1f675ec6b8a96570f877d
      51e9788e
    • Yunqing Wang's avatar
      Refactor vp9_diamond_search_sad function · 75cd5750
      Yunqing Wang authored
      Currently, vp9_diamond_search_sadx4() is only called when sse3 is
      enabled, which is improper since sse2 optimization of sdx4df
      functions are available. Changed to always use
      vp9_diamond_search_sadx4().
      
      Change-Id: I4b95d6b7a3c6c645783c373f0ba8d645ece24717
      75cd5750
    • James Zern's avatar
      vp9_loopfilter.c: cosmetics · 58609335
      James Zern authored
      - fix indent, spelling
      - drop some whitespace in some comments
      - add an assert in vp9_setup_mask, it shouldn't be called on decode
        error
      
      Change-Id: Ic312a815e977a6f9cb81ceb7b039eeada76c5aa0
      58609335
  4. 09 Jul, 2014 1 commit
    • Yunqing Wang's avatar
      Refactor refining_search_sad code · 30117a57
      Yunqing Wang authored
      There are sse2 optimization of sdx4df functions. Instead of calling
      vp9_refining_search_sadx4 only when sse3 is enabled, call it always.
      
      Change-Id: I24f93818f7d4209d1425039e0eb099ff9ff08fe9
      30117a57
  5. 08 Jul, 2014 2 commits
  6. 07 Jul, 2014 1 commit
    • hkuang's avatar
      Move vp9_thread.* to common. · 337e8015
      hkuang authored
      Prepare for frame parallel decoding, the reference count buffers
      need to be protected by mutex. Move vp9_thread.* to common
      folder so that those buffers could use cross-platform mutex
      from vp9_thread.*.
      
      Change-Id: I541277cf15eefed6641555944f67f4a0bcdc8154
      337e8015
  7. 02 Jul, 2014 1 commit
    • Jingning Han's avatar
      Re-design quantization process · 9ac2f663
      Jingning Han authored
      This commit re-designs the quantization process for transform
      coefficient blocks of size 4x4 to 16x16. It improves compression
      performance for speed 7 by 3.85%. The SSSE3 version for the
      new quantization process is included.
      
      The average runtime of the 8x8 block quantization is reduced
      from 285 cycles -> 255 cycles, i.e., over 10% faster.
      
      Change-Id: I61278aa02efc70599b962d3314671db5b0446a50
      9ac2f663
  8. 28 Jun, 2014 1 commit
    • James Zern's avatar
      vp9: disable postproc buffer alloc when unnecessary · 44472cde
      James Zern authored
      the buffer is only used in encoding and only when
      CONFIG_INTERNAL_STATS or CONFIG_VP9_POSTPROC is enabled.
      a future change should decouple this from the frame buffer allocation
      and make it conditional based on runtime flags when the above config
      options are enabled.
      reduces decode heap usage by at least 12%
      
      Change-Id: Id0b97620d4936afefa538d3aadf32106743d9caf
      44472cde
  9. 27 Jun, 2014 1 commit
    • Jim Bankoski's avatar
      Better validation of invalid files · 9f37d149
      Jim Bankoski authored
      This patch checks that a decoder never tries to reference frame that's
      outside the range of 2x to 1/16th the size of this frame.  Any attempt
      to do so causes a failure.
      
      Change-Id: I5c98fa7bb95ac4f29146f29dd92b62fe96164e4c
      9f37d149
  10. 26 Jun, 2014 1 commit
    • Jingning Han's avatar
      Enable real-time version reference motion vector search · 46ea9ec7
      Jingning Han authored
      This commit enables a fast reference motion vector search scheme.
      It checks the nearest top and left neighboring blocks to decide the
      most probable predicted motion vector. If it finds the two have
      the same motion vectors, it then skip finding exterior range for
      the second most probable motion vector, and correspondingly skips
      the check for NEARMV.
      
      The runtime of speed -5 goes down
      pedestrian at 1080p 29377 ms -> 27783 ms
      vidyo at 720p       11830 ms -> 10990 ms
      i.e., 6%-8% speed-up.
      
      For rtc set, the compression performance
      goes down by about -1.3% for both speed -5 and -6.
      
      Change-Id: I2a7794fa99734f739f8b30519ad4dfd511ab91a5
      46ea9ec7
  11. 24 Jun, 2014 1 commit
    • Adrian Grange's avatar
      Fix test on maximum downscaling limits · 8357292a
      Adrian Grange authored
      There is a normative scaling range of (x1/2, x16)
      for VP9. This patch fixes the maximum downscaling
      tests that are applied in the convolve function.
      
      The code used a maximum downscaling limit of x1/5
      for historic reasons related to the scalable
      coding work. Since the downsampling in this
      application is non-normative it will revert to
      using a separate non-normative scaler.
      
      Change-Id: Ide80ed712cee82fe5cb3c55076ac428295a6019f
      8357292a
  12. 23 Jun, 2014 1 commit
    • Adrian Grange's avatar
      Allocate buffers based on correct chroma format · 8c1f071f
      Adrian Grange authored
      The encoder currently allocates frame buffers before
      it establishes what the chroma sub-sampling factor is,
      always allocating based on the 4:4:4 format.
      
      This patch detects the chroma format as early as
      possible allowing the encoder to allocate buffers of
      the correct size.
      
      Future patches will change the encoder to allocate
      frame buffers on demand to further reduce the memory
      profile of the encoder and rationalize the buffer
      management in the encoder and decoder.
      
      Change-Id: Ifd41dd96e67d0011719ba40fada0bae74f3a0d57
      8c1f071f
  13. 20 Jun, 2014 2 commits
    • Johann's avatar
      Don't return value for void functions · d6582162
      Johann authored
      Clears "warning: 'return' with a value, in function returning void"
      
      Change-Id: I93972610d67e243ec772a1021d2fdfcfc689c8c2
      d6582162
    • Johann's avatar
      Include type defines · baef0b89
      Johann authored
      Clears error: unknown type name 'uint8_t'
      
      Change-Id: I9b6eff66a5c69bc24aeaeb5ade29255a164ef0e2
      baef0b89
  14. 18 Jun, 2014 2 commits
    • Alex Converse's avatar
      BITSTREAM: Handle transform size and motion vectors more logically for non-420. · 7557a65d
      Alex Converse authored
      This breaks the profile 1 bitstream.
      
      Don't force non420 uv transform size to 1/4 y size. In the 4:2:0 case the
      chroma corresponding to a luma block is 1/4 its size. In the 4:4:4 case
      chroma and luma planes are the same size. Disallowing larger transforms
      can result in a loss of compression efficiency and is inconsistent.
      
      For sub-8x8 blocks only average corresponding motion vectors.
      
      4:2:0 and profile 0 behavior remains unchanged.
      
      Change-Id: I560ae07183012c6734dd1860ea54ed6f62f3cae8
      7557a65d
    • Jingning Han's avatar
      Remove unused vp9_init_quant_tables function · 3b9c19aa
      Jingning Han authored
      This function is not effectively used, hence removed.
      
      Change-Id: I2e8e48fa07c7518931690f3b04bae920cb360e49
      3b9c19aa
  15. 13 Jun, 2014 1 commit
  16. 12 Jun, 2014 1 commit
    • Jingning Han's avatar
      Fast computation path for forward transform and quantization · ccba289f
      Jingning Han authored
      This commit enables a fast path computational flow for forward
      transformation. It checks the sse and variance of prediction
      residuals and decides if the quantized coefficients are all
      zero, dc only, or more. It then selects the corresponding coding
      path in the forward transformation and quantization stage.
      
      It is currently enabled in rtc coding mode. Will do it for rd
      coding mode next.
      
      In speed -6, the runtime for pedestrian_area 1080p at 1000 kbps
      goes down from 14234 ms to 13704 ms, i.e., about 4% speed-up.
      Overall coding performance for rtc set is changed by -0.18%.
      
      Change-Id: I0452da1786d59bc8bcbe0a35fdae9f623d1d44e1
      ccba289f
  17. 10 Jun, 2014 6 commits
    • James Zern's avatar
      vp9_rtcd: correct avx2 references · 9f3a0dbb
      James Zern authored
      s/"\$avx2_x86inc"/"avx2"/
      
      avx2 code is all intrinsics and as a result doesn't rely on x86inc.asm
      
      Change-Id: I76ad39474d8a00658f3e43131830ef0f4f34772a
      9f3a0dbb
    • James Zern's avatar
      vp9_sub_pixel_*variance*: disable avx2 variants · 520cb3f3
      James Zern authored
      tests failing under Win32/Win64
      
      + variance_test: add missing avx2 functions (partially disabled)
      
      Change-Id: I6abc0657ea076379ab9ca65c12678b9ea199849d
      520cb3f3
    • James Zern's avatar
      vp9_sad*x4d: disable avx2 variants · d3ff009d
      James Zern authored
      tests failing under Win32/Win64
      
      + sad_test: add missing avx2 functions (disabled)
      
      Change-Id: I8224fba2b270f6039ab1877d71e1e512f0081856
      d3ff009d
    • hkuang's avatar
      Add mode info arrays and mode info index. · cdffeaaa
      hkuang authored
      In non frame-parallel decoding, this works the same way as
      current decoding scheme. Every time after decoder finish
      decoding a frame, it will swap the current mode info pointer
      and  previous mode info pointer if the decoded frame needs
      to be shown. Both mode info pointer and previous mode info
      pointer are from mode info arrays.
      
      In frame-parallel decoding, this will become more complicated
      as current frame's mode info pointer will be shared with next
      frame as previous mode info pointer. But when one decoder
      thread finishes decoding one frame and starts to work on next
      available frame, it needs to retain the decoded frame's mode
      info pointers until next frame finishes decoding. The mode info
      index will serve this purpose. The decoder will use different
      buffer in the mode info arrays and use the other buffer to save
      previous decoded frame’s mode info.
      
      Change-Id: If11d57d8eb0ee38c8876158e5482177fcb229428
      cdffeaaa
    • James Zern's avatar
      vp9_f(dct|ht): disable avx2 variants · dd9f5029
      James Zern authored
      tests failing under Win32/Win64
      
      + dct16x16_test: add missing avx2 functions (partially disabled)
      
      exercises the forward transforms
      no idct/iht implementations, so the c-code is used
      
      Change-Id: I04f64a457fa0828a00f32b5c9fe4f55294f21f61
      dd9f5029
    • James Zern's avatar
      convolve: disable avx2 variants · 5704578f
      James Zern authored
      tests failing under Win32/Win64
      
      Change-Id: I5d49d11911bcda3a832b14efe5500d22597bedcf
      5704578f
  18. 02 Jun, 2014 1 commit
  19. 01 Jun, 2014 1 commit
  20. 29 May, 2014 2 commits
  21. 28 May, 2014 1 commit
    • Jingning Han's avatar
      Enable SSSE3 inverse 2D-DCT with 10 non-zero coeffs · 6d21cbd2
      Jingning Han authored
      This commit enables SSSE3 implementation of the inverse 2D-DCT
      with only first 10 coefficients non-zero. It reduces the runtime
      of SSE2 version from 745 cycles to 538 cycles, i.e., 27% speed-up.
      
      Change-Id: I18ba4128859b09c704a6ee361d69a86c09fe8dfe
      6d21cbd2
  22. 27 May, 2014 2 commits
  23. 23 May, 2014 2 commits