1. 30 Jan, 2012 6 commits
    • John Koleszar's avatar
      RTCD: add arnr functions · 109b69a7
      John Koleszar authored
      This commit continues the process of converting to the new RTCD
      system. It removes the last of the VP8_ENCODER_RTCD struct references.
      
      Change-Id: I2a44f52d7cccf5177e1ca98a028ead570d045395
      109b69a7
    • John Koleszar's avatar
      RTCD: add subpixel functions · f103dcef
      John Koleszar authored
      This commit continues the process of converting to the new RTCD
      system.
      
      Change-Id: I6c519ab61e4f4e0ebcc796f2df061f945c48cefe
      f103dcef
    • 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 remaining IDCT functions · ab77b4e8
      John Koleszar authored
      This commit continues the process of converting to the new RTCD
      system.
      
      Change-Id: I03c4dbf30dfd3558b0e256ff9d3ff4c012aadc80
      ab77b4e8
    • 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
    • John Koleszar's avatar
      New RTCD implementation · a910049a
      John Koleszar authored
      This is a proof of concept RTCD implementation to replace the current
      system of nested includes, prototypes, INVOKE macros, etc. Currently
      only the decoder specific functions are implemented in the new system.
      Additional functions will be added in subsequent commits.
      
      Overview:
        RTCD "functions" are implemented as either a global function pointer
        or a macro (when only one eligible specialization available).
        Functions which have RTCD specializations are listed using a simple
        DSL identifying the function's base name, its prototype, and the
        architecture extensions that specializations are available for.
      
      Advantages over the old system:
        - No INVOKE macros. A call to an RTCD function looks like an ordinary
          function call.
        - No need to pass vtables around.
        - If there is only one eligible function to call, the function is
          called directly, rather than indirecting through a function pointer.
        - Supports the notion of "required" extensions, so in combination with
          the above, on x86_64 if the best function available is sse2 or lower
          it will be called directly, since all x86_64 platforms implement
          sse2.
        - Elides all references to functions which will never be called, which
          could reduce binary size. For example if sse2 is required and there
          are both mmx and sse2 implementations of a certain function, the
          code will have no link time references to the mmx code.
        - Significantly easier to add a new function, just one file to edit.
      
      Disadvantages:
        - Requires global writable data (though this is not a new requirement)
        - 1 new generated source file.
      
      Change-Id: Iae6edab65315f79c168485c96872641c5aa09d55
      a910049a
  2. 27 Jan, 2012 1 commit
    • John Koleszar's avatar
      Hook up VP8D_GET_LAST_REF_USED · 8be41bba
      John Koleszar authored
      Commit 892e23a5 introduced support for the VP8D_GET_LAST_REF_USED,
      but missed the mapping of the control id to the underlying function,
      so it was unavailable to applications.
      
      In addition, the underlying function vp8_references_buffer() is
      moved from common/postproc.c to decoder/onyxd_if.c as postproc.c is
      not built in all configurations.
      
      Change-Id: I426dd254e7e6c4c061b70d729b69a6c384ebbe44
      8be41bba
  3. 20 Jan, 2012 1 commit
    • Fritz Koenig's avatar
      Disconnect ARM tgt_isa from dsp extensions · 89210284
      Fritz Koenig authored
      A processor with ARMv7 instructions does not
      necessarily have NEON dsp extensions.  This CL
      has the added side effect of allowing the ability
      to enable/disable the dsp extensions cleanly.
      
      Change-Id: Ie1e879b8fe131885bc3d4138a0acc9ffe73a36df
      89210284
  4. 06 Jan, 2012 1 commit
  5. 22 Dec, 2011 1 commit
    • John Koleszar's avatar
      Remove legacy integer types · f56918ba
      John Koleszar authored
      Remove BOOL, INTn, UINTn, etc, in favor of C99-style fixed width
      types.
      
      Change-Id: I396636212fb5edd6b347d43cc940186d8cd1e7b5
      f56918ba
  6. 21 Dec, 2011 3 commits
  7. 16 Dec, 2011 1 commit
    • Scott LaVarnway's avatar
      Fixed mb_skip_coeff bug · 0ccefd2c
      Scott LaVarnway authored
      When mb_skip_coeff is set, the idct is not necessary.  Prior
      to this patch, the code would call idcts based on leftover
      eob information.  This patch will now skip the idct for
      SPLIT_MV and clear out the eobs for B_PRED, forcing the idct
      to be skipped.
      
      Change-Id: If5b0d2ed3ebd07789d30ec5160df927485fcaa17
      0ccefd2c
  8. 15 Dec, 2011 1 commit
    • Scott LaVarnway's avatar
      Moved dequant idct into common · a53d5a4c
      Scott LaVarnway authored
      These functions are now used by the encoder.
      This is WIP with the goal of creating a common idct/add for
      the encoder and decoder.  A boost of 1.8% was seen for
      the HD rt test clip used.
      
      [Tero] Added needed changes to ARM side.
      
      Change-Id: Ibbb8000be09034203d7adffc457d3c3f8b06a5bf
      a53d5a4c
  9. 28 Nov, 2011 1 commit
  10. 25 Nov, 2011 1 commit
    • Scott LaVarnway's avatar
      Modified the inverse walsh to output directly · 4a91541c
      Scott LaVarnway authored
      to the dqcoeff or qcoeff buffer.  The encoder would
      populate the dc coeffs of the y blocks as a separate
      stage (recon_dcblock) and the decoder would use a special
      version of the idct.  This change eliminates the extra copy
      and reduces the code footprint.
      
      [Tero] Added needed changes to armv6 and NEON assembly.
      
      Change-Id: I83202ffdbaf83f6e5dd69f4ba2519fcf0b13b3ba
      4a91541c
  11. 21 Nov, 2011 1 commit
  12. 09 Nov, 2011 1 commit
    • Tero Rintaluoma's avatar
      ARMv6 optimized Intra4x4 prediction · 5a2fd63a
      Tero Rintaluoma authored
      Added ARM optimized intra 4x4 prediction
       - 2x faster on Profiler compared to C-code compiled with -O3
       - Function interface changed a little to improve BLOCKD structure
         access
      
      Change-Id: I9bc2b723155943fe0cf03dd9ca5f1760f7a81f54
      5a2fd63a
  13. 01 Nov, 2011 1 commit
    • Stefan Holmer's avatar
      Changing decoder input partition API to input fragments. · 14272052
      Stefan Holmer authored
      Adding support for several partitions within one input fragment.
      This is necessary to fully support all possible packetization
      combinations in the VP8 RTP profile. Several partitions can
      be transmitted in the same packet, and they can only be split
      by reading the partition lengths from the bitstream.
      
      Change-Id: If7d7ea331cc78cb7efd74c4a976b720c9a655463
      14272052
  14. 31 Oct, 2011 1 commit
  15. 27 Oct, 2011 1 commit
    • Scott LaVarnway's avatar
      Improved decode_split_mv() · 6064384d
      Scott LaVarnway authored
      Tests showed ~1.2% performance boost on the HD clip used.
      Performance will vary based on material.
      
      Change-Id: Icbcf1a828750d5b4ae5252bf596b3ef594042e8a
      6064384d
  16. 26 Oct, 2011 1 commit
    • Scott LaVarnway's avatar
      Improved read_mb_modes_mv() · ff1d170e
      Scott LaVarnway authored
      Interleaved vp8_find_near_mvs and vp8_mv_ref_probs.
      2.5% to 4% performance improvement for the HD clips used.
      
      Change-Id: Id888b667cf5ae2f0e19da18743140f055ff7de8d
      ff1d170e
  17. 25 Oct, 2011 1 commit
    • Johann's avatar
      remove uninitialized variable warning · 9409af20
      Johann authored
      Restructure if statement to clarify the error condition. Trigger the
      error before clobbering pc-> variables.
      
      Change-Id: Id01cab798a341ce9899078fdcec265a0e942a0b7
      9409af20
  18. 24 Oct, 2011 3 commits
  19. 21 Oct, 2011 1 commit
  20. 19 Oct, 2011 1 commit
    • Scott LaVarnway's avatar
      Improved token decoder · 5e540857
      Scott LaVarnway authored
      Tests showed over 2% improvement on various HD clips.
      
      Change-Id: I94a30d209c92cbd5fef285122f9fc570688635fe
      5e540857
  21. 18 Oct, 2011 1 commit
    • Scott LaVarnway's avatar
      Remove usage of predict buffer for decode · ed9c66f5
      Scott LaVarnway authored
      Instead of using the predict buffer, the decoder now writes
      the predictor into the recon buffer.  For blocks with eob=0,
      unnecessary idcts can be eliminated.  This gave a performance
      boost of ~1.8% for the HD clips used.
      
      Tero: Added needed changes to ARM side and scheduled some
            assembly code to prevent interlocks.
      
      Patch Set 6:  Merged (I1bcdca7a95aacc3a181b9faa6b10e3a71ee24df3)
      into this commit because of similarities in the idct
      functions.
      Patch Set 7: EC bug fix.
      
      Change-Id: Ie31d90b5d3522e1108163f2ac491e455e3f955e6
      ed9c66f5
  22. 22 Sep, 2011 1 commit
  23. 19 Sep, 2011 1 commit
    • Stefan Holmer's avatar
      Fix necessary for input partitions iface to match the RTP profile · e529a825
      Stefan Holmer authored
      These changes fixes a glitch between the RTP profile and the input
      partitions interface. Since there's no way for the user to know the
      actual number of partitions, the decoder have to read the
      multi_token_paritition bits also when input partitions mode is
      enabled.
      
      Included are also a couple of fixes for issues with independent
      partitions and uninitialized memory reads.
      
      Change-Id: I6f93b15287d291169ed681898ed3fbcc5dc81837
      e529a825
  24. 16 Sep, 2011 2 commits
  25. 24 Aug, 2011 2 commits
    • Scott LaVarnway's avatar
      Removed bmi copy to/from BLOCKD · b870947d
      Scott LaVarnway authored
      for SPLITMV and B_PRED modes.  Modified code to use the bmi
      found in mode_info_context instead of BLOCKD.  On the decode
      side, the uvmvs are calculated only when required, instead of
      every macroblock.  This is WIP. (bmi should eventually be
      removed from BLOCKD)
      Small performance gains noticed for RT encodes and decodes.(VGA)
      
      Change-Id: I2ed7f0fd5ca733655df684aa82da575c77a973e7
      b870947d
    • Fritz Koenig's avatar
      Fix naming of sse2 idct functions. · 112bd4e2
      Fritz Koenig authored
      Prepend idct function names with vp8_
      so that under profiling they show up
      associated with libvpx.
      
      Change-Id: I4fe357b50236cb7730a4cc00164c0a3487a1d8b4
      112bd4e2
  26. 15 Aug, 2011 2 commits
  27. 12 Aug, 2011 2 commits
    • John Koleszar's avatar
      Propagate macroblock MV to subblocks for error concealment · a4c2211e
      John Koleszar authored
      EC expects the subblock MVs to be populated, but
      f1d6cc79 removed this code. This
      commit restores it, protected by CONFIG_ERROR_CONCEALMENT. May move this
      to the EC code more directly in the future.
      
      Change-Id: I44f8f985720cb9a1bf222e59143f9e69abf56ad2
      a4c2211e
    • Stefan Holmer's avatar
      Disable error concealment until first key frame is decoded · a609be56
      Stefan Holmer authored
      When error concealment is enabled the first key frame must
      be successfully received before error concealment is activated.
      Error concealment will be activated when the delta following
      delta frame is received.
      
      Also fixed a couple of bugs related to error tracking in
      multi-threading. And avoiding decoding corrupt residual
      when we have multiple non-resilient partitions.
      
      Change-Id: I45c4bb296e2f05f57624aef500a874faf431a60d
      a609be56