ORC: no way to accumulate 64 bit (8 bytes)?
Sebastian Dröge
sebastian at centricular.com
Thu Jul 7 06:19:45 UTC 2016
On Mi, 2016-07-06 at 16:18 +0200, Peter Maersk-Moller wrote:
> Hi Sebastian.
>
> Thanks for answering.
>
> On Wed, Jul 6, 2016 at 8:13 AM, Sebastian Dröge <sebastian at centricula
> r.com> wrote:
> > On Di, 2016-07-05 at 15:43 +0200, Peter Maersk-Moller wrote:
> > > But to no avail. So I can declare an 8 byte accumulator, I just
> > can't
> > > accumulate in it? Is that the case?
> > There's no 64 bit accumulator opcode, correct:
> > https://gstreamer.freedesktop.org/data/doc/orc/orc-opcodes.html
> >
> > accw, accl and accsadubl are the only ones currently. Adding new
> > ones
> > shouldn't be that much effort though, as long as it can be
> > implemented
> > at least for SSE and NEON.
> It ought to be trivial, however it might not provide any speedup. The
> devil is in the details.
>
> That said, it it possible to emulate the 8 byte accumulator.
When emulating the accumulator, you will automatically get much slower
code as it ends up being a lot more instructions :)
> Anyway, does GStreamer implement Orc code for audio manipulation and
> if yes, have you measured that it is actually worth it? I tried to
> see if GStreamer has an RMS module, but it appear that it does not
> (or I just haven't looked close enough).
audioconvert and volume, and various other audio elements, are using
ORC and there it makes a speed difference. The main problem happens if
you need to work around ORC (like emulating the accumulator), as in
those cases the resulting code ends up bigger than what the C compiler
would do with the C code.
--
Sebastian Dröge, Centricular Ltd · http://www.centricular.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 949 bytes
Desc: This is a digitally signed message part
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20160707/d1606fba/attachment.sig>
More information about the gstreamer-devel
mailing list