[gmpi] Re: Topic 7.1: Channel Formats

  • From: Mike Berry <mberry@xxxxxxxxx>
  • To: gmpi@xxxxxxxxxxxxx
  • Date: Wed, 04 Jun 2003 10:45:10 -0600



RonKuper@xxxxxxxxxxxx wrote:


(2) Need for interleaving: Surround applications are likely to have serial chains of effects processors that accept multichannel audio. Applying volume/pan to a multichannel stream is akin to a vector dot product, where one vector is the interleaved sample value and the other is the per-channel gain. Vector dot products can be performed more efficiently, with less cache pollution, using SIMD instructions. Therefore, if we don't allow interleaving, surround applications are going to suffer degraded performance because they won't be able to fully leverage parallelism -- they will be forced to do surround gain as uninterleaved SISD, whose performance has been deprecated on newer Pentium systems.



I believe that we have covered this ground before, but it is not true that you must use uninterleaved SISD on uninterleaved mono streams if you do two things in the host:

1.) Make the buffer lengths a multiple of 4.
2.) Make the control rate for the parameters a multiple of 4.

With both of these cases true (as well as memory alignment, of course), you can process the mono buffers in chunks of 4, using SIMD instructions. And in some cases it is actually faster this way, particularly when your surround channel type is something like 6.1 which you are going to have to pad out in some way to use SIMD, since the integral length of a sample frame is 7 floats!

--
Mike Berry
Adobe Systems


---------------------------------------------------------------------- Generalized Music Plugin Interface (GMPI) public discussion list Participation in this list is contingent upon your abiding by the following rules: Please stay on topic. You are responsible for your own words. Please respect your fellow subscribers. Please do not redistribute anyone else's words without their permission.

Archive: //www.freelists.org/archives/gmpi
Email gmpi-request@xxxxxxxxxxxxx w/ subject "unsubscribe" to unsubscribe

Other related posts: