[opus] Silence causing encoder slowdown on 32 bit architecture

D. B. dangerbot at gmx.com
Mon Aug 12 12:42:40 PDT 2013


Thanks for acting on this so quickly. Yes, the latest commit fixed the problem. I figured it would be a small patch but wasn't sure where to make the change.

Thanks again,

- DB


> ----- Original Message -----
> From: Jean-Marc Valin
> Sent: 08/12/13 11:50 AM
> To: D. B.
> Subject: Re: [opus] Silence causing encoder slowdown on 32 bit architecture
> 
> Indeed, the fix you referenced fixed the hp filter used in audio mode,
> but not the one used in voip mode. I just checked in a fix in git. See
> if it works for you. Thanks for reporting this.
> 
> Cheers,
> 
> Jean-Marc
> 
> On 08/12/2013 02:01 PM, D. B. wrote:
> > Hi all,
> > 
> > 
> > 
> > I noticed some odd behavior with the Opus encoder, and I was wondering
> > if this is a known issue.
> > 
> > 
> > 
> > First, note that this problem occurs when the Opus encoder is created
> > with OPUS_APPLICATION_VOIP, there is no issue if the encoder is created
> > with OPUS_APPLICATION_AUDIO.
> > 
> > 
> > 
> > If compiled for a 32 bit architecture (i386), the encoder experiences
> > significant slowdowns when regular audio is followed by digital silence.
> > The size of the encoded frames is also far too big: 128 byes for 20ms of
> > pure silence. The problem does not occur if the library was compiled for
> > a 64 bit architecture (amd64).
> > 
> > 
> > 
> > For example, if a single audio frame (20 ms, 48kHz, mono, 16 bit)
> > normally takes less than a millisecond to encode, after hitting the
> > digital silence opus_encode() can take up to 30ms to encode a single
> > frame. Note that this is longer than the actual frame! Resetting the
> > encoder state after each encoded frame can eliminate the slowdown.
> > 
> > 
> > 
> > I've tested this with versions 1.0.2, 1.0.3, and a couple of 1.1-beta
> > snapshots. The 1.0.x versions experience significant slowdowns. The
> > 1.1-beta is faster, but still not as fast as it probably should be. The
> > 1.0.x versions were tested on Linux and Windows (same problem on both),
> > 1.1-beta was tested only on Linux. Again, when compiled for 64 bit, all
> > versions are fine.
> > 
> > 
> > 
> > I noticed a recent commit that references something that might be
> > related:
> > http://git.xiph.org/?p=opus.git;a=commit;h=260474fb81463420adf6acbcfdcac892a4b7c912
> > 
> > However the changes made in the commit do not seem to affect VOIP. I
> > also tried earlier snapshots and the problem is still there (though not
> > as bad since it's the 1.1 branch).
> > 
> > 
> > 
> > Any ideas as to what is going on? I can provide more information if it
> > helps.
> > 
> > 
> > 
> > Thanks,
> > 
> > - DB
> > 
> > 
> > 
> > 
> > 
> > _______________________________________________
> > opus mailing list
> > opus at xiph.org
> > http://lists.xiph.org/mailman/listinfo/opus
> >



More information about the opus mailing list