1. 10 Mar, 2011 1 commit
    • 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
  2. 09 Mar, 2011 8 commits
  3. 08 Mar, 2011 13 commits
  4. 07 Mar, 2011 4 commits
    • John Koleszar's avatar
      Merge "Fix format-string warning" · 1016b856
      John Koleszar authored
      1016b856
    • Ralph Giles's avatar
      Fix format-string warning · fe9a604b
      Ralph Giles authored
      Cast size_t to (unsigned long) and print it with the %lu format
      string, which is more portable than C99's explict %zu for size_t.
      
      This truncates on Windows x64 but otherwise works on 32 and 64 bit
      platforms. In practice the stats file is unlikely to be so large.
      
      Change-Id: I0432b3acf85fc6ba4ad50640942e1ca4614b21cb
      fe9a604b
    • 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
  5. 04 Mar, 2011 11 commits
  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