Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wishlist #8

Open
commarmi76 opened this issue Jan 12, 2018 · 3 comments
Open

Wishlist #8

commarmi76 opened this issue Jan 12, 2018 · 3 comments

Comments

@commarmi76
Copy link

Hello,

I'm using libopusenc with an ARM cortex-m4 device and there are some feature that could be useful:

  • Avoid resampling with rates supported by opus (8000, 12000, 16000, 24000, and 48000). Resampling in a powerfull CPU isn't a problem, but in a small MCU is a heavy proces.

  • Support use 16 and 32 integers as input and don't use float API all the time.

I tried to do this changes in the libopusenc by myself, but granule position is a mess. Finally I have created a version of opusenc.c (from opus-tools) to test my system, but I think it would be fantastic if libopusenc could be used for small systems.

br.

@commarmi76 commarmi76 changed the title Whishlist Wishlist Feb 2, 2018
@Flix01
Copy link

Flix01 commented Aug 29, 2018

  • Avoid resampling with rates supported by opus (8000, 12000, 16000, 24000, and 48000). Resampling in a powerfull CPU isn't a problem, but in a small MCU is a heavy proces.

I tried to do this changes in the libopusenc by myself, but granule position is a mess. Finally I have created a version of opusenc.c (from opus-tools) to test my system, but I think it would be fantastic if libopusenc could be used for small systems.

@commarmi76: Could you please elaborate a bit more on the difference between the program opusenc from opus-tools and libopusenc/examples/opusenc_example.c ?

I'm not using ARM devices, I just ask because I think the opus audio quality I'm getting from opusenc in opus-tools is better than the quality I'm getting from using bare libopusenc, and I'm trying to understand if it's just some option I'm missing or if opusenc is a better encoder...

@jmvalin
Copy link
Member

jmvalin commented Aug 29, 2018

The opusenc_example.c is just a minimalist opusenc-like tool that demonstrates how libopusenc works. It assumes the audio is raw (no header) PCM at 44.1 kHz and that you're using the default options.

@Flix01
Copy link

Flix01 commented Aug 29, 2018

The opusenc_example.c is just a minimalist opusenc-like tool that demonstrates how libopusenc works. It assumes the audio is raw (no header) PCM at 44.1 kHz and that you're using the default options.

@jmvalin: yes, I know. I've modified it to encode a mono raw PCM IStream "text to speech" output from the MS Speech Platform SDK (I can choose different sample rates to feed the opus encoder).

But I noticed that if I just output a .wav file and use opusenc manually (at the same bitrate), I get an .opus file that sounds better. That's why I was thinking it was caused by the unnecessary resampling that was mentioned by @commarmi76.

[UPDATE:] If I set the signal type to OPUS_SIGNAL_MUSIC with libopusenc I get better results (when using opusenc I'm not setting it... maybe I was using an older version). I'm still not sure if now it's really the same quality, but I think it's more acceptable now (before the voice sound was too 'metallic' and less natural).

P.S. Thank you for your quick answer.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants