1. 26 Oct, 2011 2 commits
    • 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
    • Attila Nagy's avatar
      Reduce partial frame copy in encoder's pick_filter_level_fast · de828094
      Attila Nagy authored
      The partial frame copy function used to copy an extra 8 lines above
      and  below. The partial frame filtering can only modify 3 pixel rows
      above the partial frame. Reduce copy to bare minimum needed, which is
      4 lines, so that partial filtering on copied frame is possible.
      
      Define the "magic" fraction number for partial filtering in
      loopfilter.h .
      
      Change-Id: I4791ffc541b6884b12759a0d0714a8faf16147ec
      de828094
  2. 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
  3. 24 Oct, 2011 4 commits
  4. 21 Oct, 2011 1 commit
  5. 20 Oct, 2011 2 commits
    • James Berry's avatar
      Fix: check cx_data buffer prior to write · bc715113
      James Berry authored
      check to make sure that cx_data buffer has enough room before
      writting to it, prior behavior did not which could result in a crash.
      
      Change-Id: I3fab6f2bc4a96d7c675ea81acd39ece121738b28
      bc715113
    • Johann's avatar
      Don't copy borders for loop_filter_pick · 7cdc986c
      Johann authored
      During the _pick only the Y plane is examined. In addition, data beyond
      the borders of the frame is not read.
      
      Change-Id: Ic549adfca70fc6e0b55f8aab0efe81f0afac89f9
      7cdc986c
  6. 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
  7. 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
  8. 14 Oct, 2011 1 commit
    • Attila Nagy's avatar
      Fix: vp8cx_pack_tokens_into_partitions_armv5 crash · a5cd42fe
      Attila Nagy authored
      It was crashing when number of partitions was bigger than the number
      of MB rows (ex. 128x96 with 8 partitions).
      Start point was not checked against mb_rows, plus extra
      "empty" partitions were not written out.
      
      Change-Id: I9c2f013b9ec022354b658fab4ef799ff8b1de93d
      a5cd42fe
  9. 11 Oct, 2011 1 commit
    • Adrian Grange's avatar
      Added rate-targeted temporal scalability · 217591fd
      Adrian Grange authored
      Added the ability to create rate-targeted, temporally
      scalable, VP8 compatible bitstreams.
      
      The application vp8_scalable_patterns.c demonstrates how
      to use this capability. Users can create output bitstreams
      containing upto 5 temporally separable streams encoded
      as a single VP8 bitstream.
      (previously abandoned as:
      I92d1483e887adb274d07ce9e567e4d0314881b0a)
      
      Change-Id: I156250a3fe930be57c069d508c41b6a7a4ea8d6a
      217591fd
  10. 10 Oct, 2011 2 commits
  11. 04 Oct, 2011 1 commit
  12. 30 Sep, 2011 4 commits
    • Scott LaVarnway's avatar
      Improved tokenize · ab00d209
      Scott LaVarnway authored
      For a realtime HD encodings, up to 1.6% gains seen.
      
      
      
      Change-Id: If45028e23db95124da63f9d38ffe06e05596cc6e
      ab00d209
    • Johann's avatar
      combine loopfilter data access · 3556deac
      Johann authored
      The data processed by the loopfilter overlaps. At the block level, this
      results in some redundant transforms. Grouping the filtering allows for
      a single 16x16 transpose (and inversion) instead of three 16x8 transposes
      (and three more inversions).
      
      This implementation is x86_64 only. We retain the previous
      implementation for x86.
      
      Improvements are obviously material dependant, but it seems to be ~%1 in
      tests here.
      
      Change-Id: I467b7ec3655be98fb5f1a94b5d145e5e5a660007
      3556deac
    • Alpha Lam's avatar
      Call vp8_find_near_mvs lazily · 7bce513a
      Alpha Lam authored
      vp8_find_near_mvs() is being called on all possible reference frames
      but the data computed may be used if the loop exits early, which can
      be due to x->skip beign set to 1.
      
      Optimize this by call vp8_find_near_mvs() laziy only if it is going
      to be used and not computed yet.
      
      Change-Id: Iccdbd4c962a670c9f2c99b8aca8096042ca5dc98
      7bce513a
    • Paul Wilkins's avatar
      CQ and two pass rate control. · b6e27d5f
      Paul Wilkins authored
      Changes to the selection of Q limits for two pass
      and two pass CQ mode.
      
      Allowance made for Mode and motion vector costs.
      Some refactoring of common code.
      
      For Derf and YT sets CQ mode average improvement
      circa 1% (SSIM and Global PSNR).
      
      Some increased tendency to undershoot even when
      user CQ not reached.
      
      Patch2: Removed some test code accidentally merged.
      
      Change-Id: Icf74d13af77437c08602571dc7a97e747cce5066
      b6e27d5f
  13. 29 Sep, 2011 2 commits
  14. 22 Sep, 2011 2 commits
  15. 20 Sep, 2011 3 commits
    • Fritz Koenig's avatar
      Move neon only arm functions under arm/neon. · bd0c3409
      Fritz Koenig authored
      These files don't contain generic arm code, so should
      only be compiled by neon.
      
      Change-Id: Ie712823aa04d4235e7cfe7a3b725e73ee4c3e564
      bd0c3409
    • Tero Rintaluoma's avatar
      NEON FDCT updated to match current C code · 0c2529a8
      Tero Rintaluoma authored
      - Removed fast_fdct4x4_neon and fast_fdct8x4_neon
      - Uses now short_fdct4x4 and short_fdct8x4
      - Gives ~1-2% speed-up on Cortex-A8/A9
      
      Change-Id: Ib62f2cb2080ae719f8fa1d518a3a5e71278a41ec
      0c2529a8
    • Tero Rintaluoma's avatar
      Fixed armv5te multiplications · 3c19bc3f
      Tero Rintaluoma authored
      Rd and Rm registers should be different in 'mul'. This register
      combination results in unpredictable behaviour. GCC will give
      a warning and RVCT an error in this case.
      
      Restriction applies only to armv5 targets and not for armv6 and above.
      
      Change-Id: I378d17c51e1f16a6820814fbed43e115aaabb03e
      3c19bc3f
  16. 19 Sep, 2011 3 commits
    • 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
    • Tero Rintaluoma's avatar
      Updated ARMv6 forward transforms to match C · 4c3ad66b
      Tero Rintaluoma authored
      - Updated walsh transform to match C
        (based on Change Id24f3392)
      - Changed fast_fdct4x4 and 8x4 to short_fdct4x4 and 8x4
        correspondingly
      
      Change-Id: I704e862f40e315b0a79997633c7bd9c347166a8e
      4c3ad66b
    • Tero Rintaluoma's avatar
      NEON walsh transform updated to match C · 2a4b2a00
      Tero Rintaluoma authored
      Modified original patch If2f07220885c4c3a0cae0dace34ea0e36124f001
      according to comments. Scheduled code a little bit to prevent some
      interlocks.
      
      Change-Id: I338f02b881098782f82af63d97f042b85e63e902
      2a4b2a00
  17. 16 Sep, 2011 2 commits
  18. 13 Sep, 2011 1 commit
    • Scott LaVarnway's avatar
      Fixed encoder crash · 5bc7b3a6
      Scott LaVarnway authored
      caused by the "Removed bmi copy to/from BLOCKD" commit.
      
      Change-Id: I9fae71bdc34c8ecc07bb81cd3ccf498b91ce3ec7
      5bc7b3a6
  19. 31 Aug, 2011 1 commit
  20. 30 Aug, 2011 1 commit
  21. 25 Aug, 2011 1 commit
    • Yunqing Wang's avatar
      Minor modification on key frame decision · 1f20202e
      Yunqing Wang authored
      This change makes sure that no key frame recoding in real-time mode
      even if CONFIG_REALTIME_ONLY is not configured.
      
      Change-Id: Ifc34141f3217a6bb63cc087d78b111fadb35eec2
      1f20202e
  22. 24 Aug, 2011 3 commits
    • Fritz Koenig's avatar
      Quiet warning by removing unused variable. · 4797a972
      Fritz Koenig authored
      fwd_boost_score was not being computed or
      referenced, so remove declaration.
      
      Change-Id: Iece36cde1ec113e3c6afaff1407d24cdf12bd0a8
      4797a972
    • 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