1. 11 Mar, 2011 1 commit
  2. 10 Mar, 2011 2 commits
    • Adrian Grange's avatar
      Added missing format specifier in print statement · 6daacdb7
      Adrian Grange authored
      Printout of firstpass stats for frame had one fewer
      format specifiers than arguments.
      Change-Id: I5a42c85aa79c471e1a70afd75e24a91546b7a1cd
    • Adrian Grange's avatar
      Removed firstpass motion map · ed40ff9e
      Adrian Grange authored
      The firstpass motion map consists of an 8-bit flag for
      each MB indicating how strongly the firstpass code
      believes it should be filtered during the second pass
      ARNR filtering.
      For long or large format material the motion map can
      become extremely large and hamper the operation of
      the encoding process.
      This change removes the motion map altogether, leaving
      the second pass to rely on the magnitude of the motion
      compensated error to determine the filter weight to
      use for the MB during ARNR filtering.
      Tests on the derf set indicate that the effect of this
      change is neutral, with some small wins and losses. The
      motion map has therefore been removed based on
      a cost/benefit evaluation.
      Change-Id: I53e07d236f5ce09a6f0c54e7c4ffbb490fb870f6
  3. 09 Mar, 2011 2 commits
  4. 08 Mar, 2011 6 commits
    • Yunqing Wang's avatar
      Improve SSE2 half-pixel filter funtions · 419f6389
      Yunqing Wang authored
      Rewrote these functions to process 16 pixels once instead of 8.
      Change-Id: Ic67e80124467a446a3df4cfecfb76a4248602adb
    • Yunqing Wang's avatar
      Add zero offset checking in SSE2 sub-pixel filter function · 8432a172
      Yunqing Wang authored
      Skip filter at zero offset.
      Change-Id: I95fc7e211869bc0ab5bcfb7ab2e3259d1c0ccf38
    • Yunqing Wang's avatar
      Write SSSE3 sub-pixel filter function · 244e2e14
      Yunqing Wang authored
      1. Process 16 pixels at one time instead of 8.
      2. Add check for both xoffset =0 and yoffset=0, which happens
         during motion search.
      This change gave encoder 1%~3% performance gain.
      Change-Id: Idaa39506b48f4f8b2fbbeb45aae8226fa32afb3e
    • Ralph Giles's avatar
      Fix a multi-line format-string warning. · e6948bf0
      Ralph Giles authored
      GCC 4.5 and 4.6 both issue a warning about the multi-line format
      string introduced in bc9c30a0, which also changed the whitespace
      in the associated stt file by line-wrapping the long format string.
      Instead, use multiple string constants, which the compiler will
      concatenate. This maintains the original formatting, but remains
      legible within the standard line length.
      Change-Id: I27c9f92d46be82d408105a3a4091f145f677e00e
    • Paul Wilkins's avatar
      Corrected minor typos. · de87c420
      Paul Wilkins authored
      Change-Id: Icc9f12bd1e1bdaf51256dc8a90d08aa9be89ef34
    • John Koleszar's avatar
      correct zbin boost for splitmv mode · 5d1d9911
      John Koleszar authored
      Disable zbin boost in SPLITMV mode as intended. Was incorrectly looking
      at vp8_ref_frame_order instead of vp8_mode_order when comparing against
      SPLITMV. This condition should have always been false, as SPLITMV is
      not in the range of valid reference frames.
      Change-Id: I0408cc7595eff68f00efef6d008e79f5b60d14bf
  5. 07 Mar, 2011 2 commits
    • Paul Wilkins's avatar
      Improved key frame detection. · bc9c30a0
      Paul Wilkins authored
      In some cases where clips have been encoded with
      borders (eg. some wide-screen content where there is a
      border top and bottom and slide shows containing portrait
      format photographs (border left and right)) key frames were
      not being correctly detected.
      The new code looks to measure cases where a portion of
      the image can be coded equally easily using intra or inter
      modes and where the resulting error score is also very low.
      These "neutral" areas are then discounted in the key frame
      detection code.
      Change-Id: I00c3e8230772b8213cdc08020e1990cf83b780d8
    • Paul Wilkins's avatar
      Improved KF insertion after fades to still. · 9fc8cb39
      Paul Wilkins authored
      This code extends what was previously done for GFs, to pick
      cases where insertion of a key frame after a fade (or other
      transition or complex motion)  followed by a still section, will
      be beneficial and will reduce the number of forced key frames.
      Change-Id: If8bca00457f0d5f83dc3318a587f61c17d90f135
  6. 03 Mar, 2011 3 commits
    • Mikhal Shemer's avatar
      Configuration updates:Making a clear distinction between Init and Change · 84f7f209
      Mikhal Shemer authored
      Change-Id: I7b2fb326e1aabc08b032177a7b914a5b8bb7376f
    • Mikhal Shemer's avatar
      Fixing divide by zero · 1de99a2a
      Mikhal Shemer authored
      Change-Id: I9d8a98a2f7ed1e3116d0bae35164618c41998bac
    • John Koleszar's avatar
      Fix drastic undershoot in long form content · 36be4f7f
      John Koleszar authored
      When the modified_error_left accumulator exceeds INT_MAX, an incorrect
      cast to int resulted in a negative value, causing the rate control to
      allocate no bits to that keyframe group, leading to severe undershoot
      and subsequent poor quality.
      This error was exposed by the recent change to the rolling target and
      actual spend accumulators in commit 305be4e4 which fixed them to
      actually calculate the average value rather than be re-initialized
      on every frame to the average per-frame bitrate. When this bug was
      triggered, the target bitrate could be 0, so the rolling target
      becomes small, which causes the undershoot. The code prior to 305be4e4
      did not exhibit this behavior because the rolling target was always
      set to a reasonable value and was independent of the actual target
      bitrate. With this patch, the actual target bitrate is calculated
      correctly, and the rate control tracks as expected.
      This cast was likely added to silence a compiler warning on a comparison
      between a double (modified_error_left) and an int (0). Instead, this
      patch removes the cast and changes the comparison to be against 0.0,
      which should prevent the warning from reoccuring.
      This fixes issue #289. Special thanks to gnafu for his efforts in
      reporting and debugging this fix.
      Change-Id: Ie5cc1a7b516c578a76c3a50c892a6f04a11621fe
  7. 28 Feb, 2011 1 commit
  8. 25 Feb, 2011 2 commits
  9. 24 Feb, 2011 3 commits
    • Scott LaVarnway's avatar
      Removed vp8_block2type · 861175ef
      Scott LaVarnway authored
      and used defines instead.
      Change-Id: Idb56e0295d004793f406dfd2d8d8c546aad62e03
    • Scott LaVarnway's avatar
      Revisited rd_pick_intra4x4block · 658454a0
      Scott LaVarnway authored
      Removed unnecessary copies.  No noticeable speed gains.
      Change-Id: I996c50c23fedd06d54ee7a3e762cbf559cc4a9d1
    • Paul Wilkins's avatar
      Overflow of frame error accumulators. · b862c108
      Paul Wilkins authored
      This fixes an overflow problem in the frame error accumulators.
      The overflow condition is extreme but did trigger when Frank B.
      coded some high motion interlaced HD content.
      The observed effect was a catastrophic  breakdown of the rate
      control leading to massive undershoot and poor bit allocation.
      All the error values should really be unsigned but I will look at this
      Change-Id: I9745f5c5ca2783620426b66b568b2088b579151f
  10. 23 Feb, 2011 1 commit
    • Tero Rintaluoma's avatar
      ARMv6 optimized half pixel variance calculations · 8ae92aef
      Tero Rintaluoma authored
      Adds following ARMv6 optimized functions to the encoder:
       - vp8_variance_halfpixvar16x16_h_armv6
       - vp8_variance_halfpixvar16x16_v_armv6
       - vp8_variance_halfpixvar16x16_hv_armv6
      Change-Id: I1e9c2af7acd2a51b72b3845beecd990db4bebd29
  11. 22 Feb, 2011 1 commit
  12. 18 Feb, 2011 6 commits
  13. 17 Feb, 2011 1 commit
  14. 16 Feb, 2011 1 commit
    • Yunqing Wang's avatar
      Allocate source buffers to be multiples of 16 · da227b90
      Yunqing Wang authored
      Currently, when the video frame width is not multiples of 16, the
      source buffer has a stride of non-multiples of 16, which forces
      an unaligned load in SAD function and hurts the performance. To
      avoid that, this change allocates source buffers to be multiples
      of 16.
      Change-Id: Ib7506e3eb2cea06657d56be5a899f38dfe3eeb39
  15. 15 Feb, 2011 1 commit
  16. 14 Feb, 2011 4 commits
    • Scott LaVarnway's avatar
      Improved vp8_rd_pick_intra_mbuv_mode · 94d4fee0
      Scott LaVarnway authored
      Eliminated unnecessary calculations. Very small change
      to performance.
      Change-Id: Ib7213d43c64e36955177c4d47950ff472266f822
    • Yunqing Wang's avatar
      Improve vp8_sad16x16_sse3 function · 2debd5b5
      Yunqing Wang authored
      In real-time mode, vp8_sad16x16 function is called heavily in
      motion search part. Improvement of this function gives 1.2%
      encoding performance gain (real-time mode, tulip clip).
      Change-Id: I23c401fc40c061f732a9767e8d383737a179bd58
    • James Berry's avatar
      mem leak fix for cpi->tplist · d3dfcde0
      James Berry authored
      checks added to make sure that cpi->tplist
      is freed correctly in vp8_dealloc_compressor_data
      and vp8_alloc_compressor_data.
      Change-Id: I66149dbbd25c958800ad94f4379d723191d9680d
    • Scott LaVarnway's avatar
      Improved rd_pick_intra4x4block · d419b93e
      Scott LaVarnway authored
      Eliminated unnecessary calculations.  Improved performance
      by 10% on keyframes and 1.6% overall for the test clip used.
      Change-Id: I87671b26af5e2cc439e81d0fee3b15c7cd2a3309
  17. 11 Feb, 2011 2 commits
    • Yunqing Wang's avatar
      Add improved_mv_pred flag in real-time mode · 9d0b2cbb
      Yunqing Wang authored
      As mentioned in check-in "Improve motion search in real-time mode",
      MV prediction calculation causes speed loss for speed 7 and above.
      This change added a flag to turn off this calculation for speed>6
      in real-time mode.
      Change-Id: I9f4ae5a8bf449222d1784b54e7d315fc8347b2d1
    • Tero Rintaluoma's avatar
      ARMv6 optimized sad16x16 · 1ef86980
      Tero Rintaluoma authored
      Adds a new ARMv6 optimized function vp8_sad16x16_armv6 to encoder.
      Change-Id: Ibbd7edb8b25cb7a5b522d391b1e9a690fe150e57
  18. 10 Feb, 2011 1 commit
    • John Koleszar's avatar
      Fix relative include paths · 02321de0
      John Koleszar authored
      Allow compiling without adding vp8/{common,encoder,decoder} to the
      include paths.
      Change-Id: Ifeb5dac351cdfadcd659736f5158b315a0030b6c