Jump to content

Disable phase inversion in opus codec when mono is activated


MetaPixel_

Recommended Posts

I've been using this great player for years, bur recently I've got to exploring the opus codec. It is great to have support for such great codec that can do low bit rates(1 GB available on my old phone, gotta make the most of it ?). Sadly this turned out to be a big problem to me when I tried to use my phone's speaker instead of headphones, but as it isn't a bug I'll be posting it in feature requests.

The opus codec uses phase inverted frames on high frequency stereo content to save on bits depending on the bit rate (intensity stereo, bands specified on table 66, link to image showing the bands). This is one of many reasons why it can achieve such good audio quality at low bit rates, but it comes with a drawback: when the decoded signal is down mixed to mono, the phase inverted bands cancel themselves and the audio sounds really bad! To circumvent this, the opus update specifies that a decoder may choose to not apply the phase inversion. An example is ffmpeg, where using the command "-apply_phase_inv false" disables the phase inversion and makes mono sound much better.

My suggestion/request: when the opus codec is in use and the mono option is activated, disable phase inversion on the decoder so that mono sounds good. If this isn't possible, an option to disable phase inversion inside advanced audio settings would do the trick as well. 

 

Demo file used as example: 64k stereo encode - opus phase invert demo.opus

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...