[FFmpeg-devel] [PATCH 04/12] Add vector_fmul_matrix to dsputil

Michael Niedermayer michaelni
Mon Oct 19 00:10:18 CEST 2009


On Sun, Oct 18, 2009 at 10:13:20PM +0100, M?ns Rullg?rd wrote:
> Michael Niedermayer <michaelni at gmx.at> writes:
> 
> > On Sun, Oct 18, 2009 at 09:17:48PM +0100, M?ns Rullg?rd wrote:
> >> Michael Niedermayer <michaelni at gmx.at> writes:
> > [...]
> >> >> +        }
> >> >> +    } else {
> >> >> +        for (i = 0; i < len; i++) {
> >> >> +            const float *m = mtx;
> >> >> +            for (j = 0; j < w; j++) {
> >> >> +                float s = 0;
> >> >
> >> >> +                for (k = 0; k < w; k++)
> >> >> +                    s += v[k][i] * *m++;
> >> >
> >> > this is quite inefficient because for(k) v[k][i] needs 2 memory reads
> >> > a flat 2d array would be better
> >> 
> >> And how will the data magically transform itself into such a layout?
> >
> > What is the a reason that the data is not in that layout?
> > If the awnser is that some decoder is implemenetd that way then my next
> > question is, would there be a disadvanatge in changing it?
> 
> Many of the audio decoders allocate the channels separately.  I didn't
> write them, so I can't say how difficult it would be to change that.

for many channels it should even be faster to memcpy them instead of the
double dereferences
memcpy needs O(w*len)
the dereferences are O(w*w*len)

also, maybe mtx would be more convenient for SIMD if its transposed
before the function 

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

There will always be a question for which you do not know the correct awnser.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20091019/99d5f7bc/attachment.pgp>



More information about the ffmpeg-devel mailing list