1. 28 Nov, 2012 5 commits
    • Jim Bankoski's avatar
      remove postproc invokes · 85cba19e
      Jim Bankoski authored
      and some miscellaneous invoke left overs
      
      Change-Id: I63191b1bfd3bea4ce30cceaeb686ec850570fc43
      85cba19e
    • Yaowu Xu's avatar
      Localize Y2 entropy coding context · 3e976bba
      Yaowu Xu authored
      This commit makes sure Y2 entropy coding context is always updated on
      every macroblock even there is no Y2 block.
      
      Change-Id: Ie307cfc46526efe55613be39f9f178d2531b56ba
      3e976bba
    • Yaowu Xu's avatar
      removed redundant mode_context data structures · 12da793d
      Yaowu Xu authored
      This commit removed a couple of redundant data structures in frame
      coding contextsm, mode_context and mode_context_a, and changed to
      use vp9_mode_contexts only. The switch of the context for different
      frame type now relies on the switch of frame coding context between
      lfc and lfc_a. This commit also removed a number of memcpy among
      these redundant data structure.
      
      Change-Id: I42e8174bd60f466b0860afc44c1263896471b0f3
      12da793d
    • John Koleszar's avatar
      Clamp decoded feature data · a1f15814
      John Koleszar authored
      Not all segment feature data elements are full-range powers of two, so
      there are values that can be encoded that are invalid. Add a new function
      to clamp values to the maximum allowed.
      
      Change-Id: Ie47cb80ef2d54292e6b8db9f699c57214a915bc4
      a1f15814
    • John Koleszar's avatar
      Revert "make: flatten object file directories" · 1760c39b
      John Koleszar authored
      This reverts commit b72373de.
      
      Change-Id: Ic1601160e11df1a018ef12da25967cfb5eebd5ba
      1760c39b
  2. 27 Nov, 2012 1 commit
    • John Koleszar's avatar
      Add vp9_ prefix to all vp9 files · fcccbcbb
      John Koleszar authored
      Support for gyp which doesn't support multiple objects in the same
      static library having the same basename.
      
      Change-Id: Ib947eefbaf68f8b177a796d23f875ccdfa6bc9dc
      fcccbcbb
  3. 26 Nov, 2012 3 commits
    • Paul Wilkins's avatar
      Modified mv prediction. · d22f3d9f
      Paul Wilkins authored
      Modified the  mv_pred() fuunction that chooses a centre
      point from which to start step searches to use the top
      candidate vectors chosen previously.
      
      Some gains (mainly on HD and tested with SB off).
      Std_hd 0.874%, YT-hd 0.174%, YT 0.05%, Derf 0.036%
      
      Change-Id: Ie232284f561838b8ecee0e28dcbb07a9cd46cf56
      d22f3d9f
    • Yunqing Wang's avatar
      Improve sad3x16 SSE2 function · e7cd8071
      Yunqing Wang authored
      Vp9_sad3x16_sse2() is heavily called in decoder, in which the
      unaligned reads consume lots of cpu cycles. When CONFIG_SUBPELREFMV
      is off, the unaligned offset is 1. In this situation,
      we can adjust the src_ptr to be 4-byte aligned, and then do the
      aligned reads. This reduced the reading time significantly. Tests
      on 1080p clip showed over 2% decoder performance gain with
      CONFIG_SUBPELREFM off.
      
      Change-Id: I953afe3ac5406107933ef49d0b695eafba9a6507
      e7cd8071
    • Yaowu Xu's avatar
      remove the dependency on idct.h · 89d62e3b
      Yaowu Xu authored
      Change-Id: Idcf827d8ae6429ee5b673c3398f838dbeacb4e74
      89d62e3b
  4. 25 Nov, 2012 3 commits
  5. 23 Nov, 2012 4 commits
    • Ronald S. Bultje's avatar
      Restructure vp9_decode_mb_tokens_8x8() a bit. · 9970d8b6
      Ronald S. Bultje authored
      Don't declare variables if they only ever have a single value and are
      used only as argument to another function call; instead, just hardcode
      the value in the function call directly. Split out UV and Y coefficient
      loops for clarity. Use xd->block[].qcoeff instead of xd->qcoeff + magic
      to remove use of magic offset variables.
      
      Change-Id: I5b17eda1bb666c69c2b7ea957d5525cd78192e33
      9970d8b6
    • Ronald S. Bultje's avatar
      Restructure vp9_decode_mb_tokens_16x16() a bit. · f090b6b4
      Ronald S. Bultje authored
      Don't declare variables if they only ever have a single value and are
      used only as argument to another function call; instead, just hardcode
      the value in the function call directly. Also remove unneeded brackets
      around a code block, and remove the magic offsets 64 and 256 for chroma
      values in the coefficient memory block.
      
      Change-Id: I14fc14120a81ea1d6fb862674e8bf8cf6ba3d114
      f090b6b4
    • Ronald S. Bultje's avatar
      Make get_eob() function static. · 0312c3d6
      Ronald S. Bultje authored
      Change-Id: Idde3ab97960eda7022367c1f91a873a479bc9d7b
      0312c3d6
    • Ronald S. Bultje's avatar
      Rename "block_type" function argument to "txfm_size". · 44228471
      Ronald S. Bultje authored
      Also fix the type (TX_SIZE instead of int).
      
      Change-Id: Ib9b3f33835e58a6e758ed5f37bb64543e62b6a86
      44228471
  6. 21 Nov, 2012 3 commits
  7. 20 Nov, 2012 1 commit
  8. 18 Nov, 2012 1 commit
    • Jim Bankoski's avatar
      clean out some of the rtcd code. · f4871b6a
      Jim Bankoski authored
      This removes functions that are no longer needed and cleans up some warnings.
      
      Change-Id: I292a4c3694e9c1d68ce99cea390905b198434719
      f4871b6a
  9. 17 Nov, 2012 8 commits
  10. 16 Nov, 2012 5 commits
    • Yunqing Wang's avatar
      Add const before the dequant(dq) · 47d9d48f
      Yunqing Wang authored
      Modified code to use const before dq.
      
      Change-Id: I6fa59c2ed9743ded33ad08df70e15c2fe1ae7b99
      47d9d48f
    • Ronald S. Bultje's avatar
      Support 32x32 intra modes in non-keyframe superblocks. · 5b11052a
      Ronald S. Bultje authored
      Change-Id: Icf8ad313c543462e523bff89690e5daa8d49bcc0
      5b11052a
    • Paul Wilkins's avatar
      Further experimentation with the mode context · a57dbd95
      Paul Wilkins authored
      Experiments with a larger set of contexts and some
      clean up to replace magic numbers regarding the
      number of contexts.
      
      The starting values and rate of backwards adaption
      are still suspect and based on a small set of tests.
      Added forwards adjustment of probabilities.
      
      The net result of adding the new context and forward
      update is small compared to the old context from the
      legacy find_near function.  (down a little on derf but
      up by a similar amount for HD)
      
      HOWEVER.... with the new context and forward update
      the impact of disabling the reverse update (which may be
      necessary in some use cases to facilitate parallel decoding)
      is hugely reduced.
      
      For the old context without forward update, the impact of
      turning off reverse update (Experiment was with SB off) was
      Derf - 0.9, Yt -1.89, ythd -2.75 and sthd -8.35. The impact was
      mainly at low data rates.
      
      With the new context and forward update enabled the impact
      for all the test sets was no more than 0.5-1% (again most at
      the low end).
      
      Change-Id: Ic751b414c8ce7f7f3ebc6f19a741d774d2b4b556
      a57dbd95
    • Yaowu Xu's avatar
      changed mv candidate search for superblocks · 415e6bff
      Yaowu Xu authored
      added additional motion vectors at close neighborhood of a superblock
      to the list of candiate motion vectors, and removed a couple that are
      further away.
      
      The change helped std-hd set about .8% (all metrics) and smaller gain
      for derf set.
      
      Change-Id: Iaa69b98614db43420ed3fd4738d0ca5587b90045
      415e6bff
    • Deb Mukherjee's avatar
      Compound inter-intra experiment · 0c917fc9
      Deb Mukherjee authored
      A patch on compound inter-intra prediction.
      
      In compound inter-intra prediction, a new predictor for
      16x16 inter coded MBs are obtained by combining a single
      inter predictor with a 16x16 intra predictor, in a manner
      that the weight varies with distance from the top/left
      boundary. The current search strategy is to combine the best
      inter mode with the best intra mode obtained independently.
      
      Results so far:
      
      derf +0.31%
      yt +0.32%
      std-hd +0.35%
      hd +0.42%
      
      It is conceivable that the results would improve somewhat
      with a more thorough search strategy where all intra modes
      are searched given the best mv, or even a joint search for
      the best mv and the best intra mode.
      
      Change-Id: I7951f1ed0d6eb31ca32ac24d120f1585bcd8d79b
      0c917fc9
  11. 15 Nov, 2012 5 commits
    • John Koleszar's avatar
      Pack invisible frames without lengths · 64bcffc1
      John Koleszar authored
      Modify the decoder to return the ending position of the bool decoder and
      use that as the starting position for the next frame.
      
      The constant-space algorithm for parsing the appended frame lengths is
      O(n^2), which is a potential DoS concern if n is unbounded. Revisit
      the appended lengths for use as partition lengths when multipartition
      support is added.
      
      In addition, this allows decoding of raw streams outside of a container
      without additional framing information, though it's insufficient to
      be able to remux said stream into a container.
      
      Change-Id: I71e801a9c3e37abe559a56a597635b0cbae1934b
      64bcffc1
    • Yaowu Xu's avatar
      subpelrefmv for superblocks · 61416aed
      Yaowu Xu authored
      duplicate code clean-up and variable name corrections
      
      Change-Id: Ibc4703228e652ec425125de5e7bc038fa46595c5
      61416aed
    • John Koleszar's avatar
      support building vp8 and vp9 into a single lib · a9c7597a
      John Koleszar authored
      Change-Id: Ib8f8a66c9fd31e508cdc9caa662192f38433aa3d
      a9c7597a
    • John Koleszar's avatar
      make: flatten object file directories · b72373de
      John Koleszar authored
      Rather than building an object file directory heirarchy matching the
      source tree's layout, rename the object files so that the object
      file name contains the path in the source file tree. The intent here
      is to allow two files in different parts of the source tree to have
      the same name and still not collide when put into an ar archive.
      
      Change-Id: Id627737dc95ffc65b738501215f34a995148c5a2
      b72373de
    • John Koleszar's avatar
      detokenize: use SEG_LVL_EOB feature consistently · 6becad42
      John Koleszar authored
      Update decode_coefs() to break when c >= eob, since it's possible that
      c starts the loop from 1 and eob is 0. The loop won't terminate in that
      case.
      
      Add new get_eob() function to consistently clamp the eob based on the
      segment level EOB and the block size. It's possible to code a segment
      level EOB that's greater than the block size, and that leads to an
      out of bounds access.
      
      Change-Id: I859563b30414615cf1b30dcc2aef8a1de358c42d
      6becad42
  12. 14 Nov, 2012 1 commit