[opus] [OPUS] celt_inner_prod() and dual_inner_prod() NEON intrinsics

Linfeng Zhang linfengz at google.com
Thu Jun 1 22:33:37 UTC 2017


Hi,

Attached are 5 patches related to celt_inner_prod() and dual_inner_prod()
NEON intrinsics optimization.

In 0004-Optimize-floating-point-celt_inner_prod-and-dual_inn.patch, the
optimization changed the order of floating-point inner products, which will
change the results. I created celt_inner_prod_neon_float_c_simulation()
and dual_inner_prod_neon_float_c_simulation() to simulate the order
floating-point operations in NEON optimization and compare their results.
Sorry that I cannot bond the distance between original C function and NEON
function to any giving reasonable small number or ratio. It's easy to
create an input which 0 and 1,000 are both correct results by just
manipulating the inner product order.

The total speed gain is about 1.0% for fixed-point encoder, and 1.8% for
floating-point encoder, in Complexity 8, tested on my Chromebook.

Thanks,
Linfeng
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.xiph.org/pipermail/opus/attachments/20170601/92c39072/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0005-Clean-celt_pitch_xcorr_float_neon.patch
Type: text/x-patch
Size: 3960 bytes
Desc: not available
URL: <http://lists.xiph.org/pipermail/opus/attachments/20170601/92c39072/attachment-0005.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0004-Optimize-floating-point-celt_inner_prod-and-dual_inn.patch
Type: text/x-patch
Size: 8832 bytes
Desc: not available
URL: <http://lists.xiph.org/pipermail/opus/attachments/20170601/92c39072/attachment-0006.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0003-Optimize-fixed-point-celt_inner_prod-and-dual_inner_.patch
Type: text/x-patch
Size: 9812 bytes
Desc: not available
URL: <http://lists.xiph.org/pipermail/opus/attachments/20170601/92c39072/attachment-0007.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-Replace-call-of-celt_inner_prod_c-step-2.patch
Type: text/x-patch
Size: 7652 bytes
Desc: not available
URL: <http://lists.xiph.org/pipermail/opus/attachments/20170601/92c39072/attachment-0008.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Replace-call-of-celt_inner_prod_c-step-1.patch
Type: text/x-patch
Size: 5706 bytes
Desc: not available
URL: <http://lists.xiph.org/pipermail/opus/attachments/20170601/92c39072/attachment-0009.bin>


More information about the opus mailing list