Hi, I'm looking a porting the Opus encoder (encoder only) to a Cypress PSoC 4 (a 32-bit ARM Cortex-M0 with very limited resources), and would like to know the feasibility of stripping down the encoder to fit. I've been playing with the encoder configured with "--enable-fixed-point --disable-intrinsics". The end result I'm trying to get to is encoding a single 16kHz 16-bit LPCM channel to fit into ~60kbps, and I'd like to encode in real-time or better. The opus_demo compression with default setting is fantastic on my test audio - more than 12x, where I only need about 4x. Hopefully that means I have plenty of room to tweak so I can fit it in my limited resources. My resources: - 48MHz 32-bit ARM Cortex-M0 - 32k RAM (of which I probably on have 16-24k available) - 256k ROM (of which I probably only have 128-196k available) I have no doubt that I can fit the design in ROM - I've already tried ripping out the decoder, and a stripped build can fit in 160k. But, on speed and RAM, any thoughts on the feasibility, or what I'd have to do to make this work? P.S. I sent this to the mailing list before, but I never saw it appear. Sorry if this is a duplicate. -- Brian Silverman Ready Set STEM bri at readysetstem.com -- -- Brian Silverman Ready Set STEM bri at readysetstem.com 443-850-5351 -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.xiph.org/pipermail/opus/attachments/20170309/240db568/attachment.html>
Seems like everyone but you got the answer. See the archive: http://lists.xiph.org/pipermail/opus/2017-February/003764.html You might want to check why your SMTP gateway rejected my original email. On Thu, Mar 9, 2017 at 9:27 AM, Brian Silverman <bri at readysetstem.com> wrote:> Hi, > > I'm looking a porting the Opus encoder (encoder only) to a Cypress PSoC 4 > (a 32-bit ARM Cortex-M0 with very limited resources), and would like to > know the feasibility of stripping down the encoder to fit. I've been > playing with the encoder configured with "--enable-fixed-point > --disable-intrinsics". > > The end result I'm trying to get to is encoding a single 16kHz 16-bit LPCM > channel to fit into ~60kbps, and I'd like to encode in real-time or > better. The opus_demo compression with default setting is fantastic on my > test audio - more than 12x, where I only need about 4x. Hopefully that > means I have plenty of room to tweak so I can fit it in my limited > resources. > > My resources: > > - 48MHz 32-bit ARM Cortex-M0 > - 32k RAM (of which I probably on have 16-24k available) > - 256k ROM (of which I probably only have 128-196k available) > > I have no doubt that I can fit the design in ROM - I've already tried > ripping out the decoder, and a stripped build can fit in 160k. > > But, on speed and RAM, any thoughts on the feasibility, or what I'd have > to do to make this work? > > > P.S. I sent this to the mailing list before, but I never saw it appear. > Sorry if this is a duplicate. > > -- > > Brian Silverman > > Ready Set STEM > > bri at readysetstem.com > -- > -- > > Brian Silverman > > Ready Set STEM > > bri at readysetstem.com > > 443-850-5351 <(443)%20850-5351> > > _______________________________________________ > opus mailing list > opus at xiph.org > http://lists.xiph.org/mailman/listinfo/opus > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.xiph.org/pipermail/opus/attachments/20170309/ee6e10c9/attachment.html>
Thanks for your response (from weeks ago!). You said real-time performance will hinge on the MULS instruction. I've just looked this up, and although the ARM Cortex-M0 has a configurable 1-cycle or 32-cycle MULS, the PSoC developers chose the faster one. Phew!>From the PSoC docs:"32-bit Cortex-M0 CPU with single-cycle multiply delivering up to 43 DMIPS at 48 MHz" Thanks for the other pointers, and I'll let you know my results in the coming weeks when I get back on this. -- Brian Silverman Ready Set STEM bri at readysetstem.com 443-850-5351 On Thu, Mar 9, 2017 at 9:44 AM Jean-Marc Valin <jmvalin at jmvalin.ca> wrote:> Seems like everyone but you got the answer. See the archive: > http://lists.xiph.org/pipermail/opus/2017-February/003764.html > You might want to check why your SMTP gateway rejected my original email. > > -- > > Brian Silverman > > Ready Set STEM > > bri at readysetstem.com > > 443-850-5351 > > On Thu, Mar 9, 2017 at 9:27 AM, Brian Silverman <bri at readysetstem.com> > wrote: > > Hi, > > I'm looking a porting the Opus encoder (encoder only) to a Cypress PSoC 4 > (a 32-bit ARM Cortex-M0 with very limited resources), and would like to > know the feasibility of stripping down the encoder to fit. I've been > playing with the encoder configured with "--enable-fixed-point > --disable-intrinsics". > > The end result I'm trying to get to is encoding a single 16kHz 16-bit LPCM > channel to fit into ~60kbps, and I'd like to encode in real-time or > better. The opus_demo compression with default setting is fantastic on my > test audio - more than 12x, where I only need about 4x. Hopefully that > means I have plenty of room to tweak so I can fit it in my limited > resources. > > My resources: > > - 48MHz 32-bit ARM Cortex-M0 > - 32k RAM (of which I probably on have 16-24k available) > - 256k ROM (of which I probably only have 128-196k available) > > I have no doubt that I can fit the design in ROM - I've already tried > ripping out the decoder, and a stripped build can fit in 160k. > > But, on speed and RAM, any thoughts on the feasibility, or what I'd have > to do to make this work? > > > P.S. I sent this to the mailing list before, but I never saw it appear. > Sorry if this is a duplicate. > > -- > > Brian Silverman > > Ready Set STEM > > bri at readysetstem.com > -- > -- > > Brian Silverman > > Ready Set STEM > > bri at readysetstem.com > > 443-850-5351 <(443)%20850-5351> > > _______________________________________________ > opus mailing list > opus at xiph.org > http://lists.xiph.org/mailman/listinfo/opus > > > ---- Brian Silverman Ready Set STEM bri at readysetstem.com 443-850-5351 -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.xiph.org/pipermail/opus/attachments/20170309/8cd49a1f/attachment-0001.html>