Bad SILK performance in 5.1 and 7.1 surround, audio moved between channels during encoding
When I encoded a 7.1 surround test file with Opus I noticed some very weird behavior: surround71.zip
At 192-510 kbit/s target bitrate with no tuning the voice suddenly gets moved from the Side Right channel to the Center and LFE channels at the end. Very noticeable. Should not happen.
When tuning towards music, the actual bitrate tends to be about 1/6 to 1/4 of the target bitrate. When tuning towards speech the actual bitrate is much higher, around 1/4 to pretty much the same as the target bitrate, without any quality improvements that would justify such an increase in bitrate. At target bitrates of 128 kbit/s and lower the disparity is much higher than at 160+ kbit/s. This, together with a strong bias towards SILK at low bitrates leads to absurdly high bitrates when encoding to a target bitrate of 128 kbit/s and lower, and not tuning for music; and this without any clear quality improvement. SILK just seems to perform very poorly in multi-channel audio, at least in this special case. The bias towards SILK by the automatic detection can be explained by this unexpected (it's not a common scenario for 7 of 8 channels to be silent) huge disparity in bitrate savings between CELT and SILK. Anyway, when I reduce the target bitrate I expect a smaller file, not one that's three times as big. I also expect some correlation between bitrate and audio quality.
At 64 kbit/s target bitrate CELT can no longer be enforced, instead, SILK is chosen which results in a file that's bigger than an encoding to a target bitrate of 320 kbit/s, but sounds much, much worse.
With this sample it seems like tuning towards music is always preferable to letting the encoder decide.
I can somehow not repeat the weird issue where the voice suddenly moves to different channels at the end.