[Webkit-unassigned] [Bug 101187] Reduce the memory usage of ConvolverNode

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Wed Nov 7 12:11:31 PST 2012


https://bugs.webkit.org/show_bug.cgi?id=101187


Chris Rogers <crogers at google.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #172275|review?                     |review-
               Flag|                            |




--- Comment #6 from Chris Rogers <crogers at google.com>  2012-11-07 12:13:05 PST ---
(From update of attachment 172275)
Xingnan, thanks for looking into reducing memory usage for ConvolverNode.  I think there's a potentially much better way to achieve even much higher memory savings and not impact performance.  Even if your tests show little performance hit with the interleaving/deinterleaving, there are a range of processor architectures and chip models that this runs on.  We'd have to test them all very carefully.  Plus we don't want to take *any* performance hit at all.

Here's my idea:
FFTConvolver has a "m_frame" member variable which could be shared among all similar FFTConvolver objects of the same size (and which are running on the same thread).  The process() method could be changed to take an additional argument which is the FFTFrame (shared).  It could even be made more fancy where this additional argument is optional, and the FFTConvolver would lazily create its own "m_frame" if one wasn't provided.

As an example, you can see where FFTConvolver is used in HRTFPanner which has four of them.  Not only could a single FFTFrame be shared for all four, but it could also be shared among other HRTFPanner objects running in that same thread.

Similarly, for ConvolverNode, all the ReverbConvolverStage's of the same size (and running on the same thread) can be given a shared FFTFrame.

The memory savings this way could be very significant and would help ALL the different FFT back-ends, instead of just the FFmpeg one.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list