>> > and a lot of extra CPU cycles when all the high end applications use >> > non-interleaved data so that editing is easy. >> You can effectively process interleaved data with SIMD as you can >> parallelize operations for 2-4 channels. > >This leaves all the other CPU out in the cold. It's a bad solution to >require a specific CPU for your application.
its also nonsense. what's slow about using interleaved data is the issue of transfer to/from disk, not the issue of processing them, where SIMD can be used more effectively to handle parallelism on a single channel (since the processing on a single channel is the same for all samples; not guaranteed to be true for N channels, where 1 channel may be processed 1 way, and another channel processed another. lets take the simplest case: a stereo interleaved file. if i want to do a nonlinear edit on a chunk of the file for just one channel, i now have to read it in a very non-optimal way. one channel's data exists as a contiguous segment of the file, but the other exists as a (potentially large) series of sections of the file, possibly overlapping with the contiguous segment of the unedited channel. is it any wonder that no high end DAW uses anything other than mono files as its native file format? the workarounds for this issue all cost vastly more in program complexity than the simple solution of using a non-interleaved data format. --p
