1. 06 Dec, 2012 1 commit
    • Scott LaVarnway's avatar
      added work buffer for denoiser · ef2248a2
      Scott LaVarnway authored
      The denoiser was writing to LAST_FRAME buffer.   If LAST_FRAME isn't being
      updated,  the reference frame buffers were out of sync between the encoder and the
      denoised raw buffers. This patch resolves the discrepancy by always writing to a work
      buffer (INTRA_FRAME) and then copying from that buffer to any buffers that needs to
      be updated.
      
      Change-Id: I6dd855b9749978b542bc3d515914d5f16faf25df
      ef2248a2
  2. 31 Aug, 2012 1 commit
    • Yunqing Wang's avatar
      Encoder denoiser performance improvement · 64075c9b
      Yunqing Wang authored
      The denoiser function was modified to reduce the computational
      complexity.
      
      1. The denoiser c function modification:
      The original implementation calculated pixel's filter_coefficient
      based on the pixel value difference between current raw frame and last
      denoised raw frame, and stored them in lookup tables. For each pixel c,
      find its coefficient using
          filter_coefficient[c] = LUT[abs_diff[c]];
      and then apply filtering operation for the pixel.
      
      The denoising filter costed about 12% of encoding time when it was
      turned on, and half of the time was spent on finding coefficients in
      lookup tables. In order to simplify the process, a short cut was taken.
      The pixel adjustments vs. pixel diff value were calculated ahead of time.
          adjustment = filtered_value - current_raw
                     = (filter_coefficient * diff + 128) >> 8
      
      The adjustment vs. diff curve becomes flat very quick when diff increases.
      This allowed us to use only several levels to get a close approximation
      of the curve. Following the denoiser algorithm, the adjustments are
      further modified according to how big the motion magnitude is.
      
      2. The sse2 function was rewritten.
      
      This change made denoiser filter function 3x faster, and improved the
      encoder performance by 7% ~ 10% with the denoiser on.
      
      Change-Id: I93a4308963b8e80c7307f96ffa8b8c667425bf50
      64075c9b
  3. 20 Aug, 2012 1 commit
  4. 11 Jun, 2012 1 commit
    • John Koleszar's avatar
      Fix pedantic compiler warnings · 0164a1cc
      John Koleszar authored
      Allows building the library with the gcc -pedantic option, for improved
      portabilty. In particular, this commit removes usage of C99/C++ style
      single-line comments and dynamic struct initializers. This is a
      continuation of the work done in commit 97b766a4, which removed most
      of these warnings for decode only builds.
      
      Change-Id: Id453d9c1d9f44cc0381b10c3869fabb0184d5966
      0164a1cc
  5. 30 May, 2012 4 commits
  6. 24 May, 2012 1 commit
    • Jim Bankoski's avatar
      fix denoiser for temporal patterns and rd · 57faddb7
      Jim Bankoski authored
      This extends the denoiser to work for temporally scalable
      coding.
      
      I believe this also fixes a very rare but really bad bug in the original
      implementation.
      
      
      Change-Id: I8b3593a8c54b86eb76f785af1970935f7d56262a
      57faddb7
  7. 21 May, 2012 1 commit
  8. 04 May, 2012 1 commit
    • John Koleszar's avatar
      fix vp8_ namespace issues · 14d827f4
      John Koleszar authored
      Make functions only referenced from one translation unit static. Other
      symbols with extern linkage get a vp8/vpx prefix.
      
      Change-Id: I928c7e0d0d36e89ac78cb54ff8bb28748727834f
      14d827f4
  9. 21 Mar, 2012 1 commit
  10. 13 Mar, 2012 1 commit