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
      6daacdb7
    • 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
      ed40ff9e
  3. 09 Mar, 2011 3 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
      419f6389
    • 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
      8432a172
    • 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
      244e2e14
    • 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
      e6948bf0
    • Paul Wilkins's avatar
      Corrected minor typos. · de87c420
      Paul Wilkins authored
      Change-Id: Icc9f12bd1e1bdaf51256dc8a90d08aa9be89ef34
      de87c420
    • 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
      5d1d9911
  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
      bc9c30a0
    • 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
      9fc8cb39
  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
      84f7f209
    • Mikhal Shemer's avatar
      Fixing divide by zero · 1de99a2a
      Mikhal Shemer authored
      Change-Id: I9d8a98a2f7ed1e3116d0bae35164618c41998bac
      1de99a2a
    • 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
      36be4f7f
  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
      861175ef
    • Scott LaVarnway's avatar
      Revisited rd_pick_intra4x4block · 658454a0
      Scott LaVarnway authored
      Removed unnecessary copies.  No noticeable speed gains.
      
      
      Change-Id: I996c50c23fedd06d54ee7a3e762cbf559cc4a9d1
      658454a0
    • 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
      separately.
      
      Change-Id: I9745f5c5ca2783620426b66b568b2088b579151f
      b862c108
  10. 23 Feb, 2011 2 commits
  11. 22 Feb, 2011 1 commit
  12. 18 Feb, 2011 6 commits
  13. 17 Feb, 2011 2 commits
  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
      da227b90
  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
      94d4fee0
    • 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
      2debd5b5
    • 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
      d3dfcde0
    • 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
      d419b93e