Why does DTS-HD have a lossy core stream?
Quote from: wswartzendruber on 25 February, 2013, 11:00:09 AMWhy does DTS-HD have a lossy core stream?To be backwards compatible with already deployed standard DTS decoders.
Your second paragraph, on the other hand, is mainly a matter of philosophy. You also appear to be a bit confused. "We" aren't going to be having any extension. "I" will be having an extension that others will be free to use. I do not require your blessing to continue, nor quite frankly, do I care if I have it. Especially not with that attitude.
Assume, for the sake of argument, that you somehow came up with a way to specify an Opus decoder which was bit-exact regardless of seeking etc, so you could actually transmit a delta. It is true that the deltas are more easily losslessly compressible than the original. But not by all that much; certainly not by anywhere near enough that each bit spent on the opus version is a bit you don't have to spend on the delta. (Opus optimizes for fidelity perceived by human listeners, not for bitwise similarity. >20kHz content, for instance, will all show up in the delta no matter how high the opus rate is.) So sending opus+losslessly compressed delta isn't much better than sending opus + losslessly compressed original.
A quick test with three quite different files (speech, classical, heavy metal) showed that jmv's estimate of 7% savings at Opus's default bitrate was on the money. For several different bitrates the savings is about half of what it would be if each bit spent on the Opus file were a bit you didn't have to spend on the delta.Maybe it's possible to just transmit the lossless version in the padding. Then you don't have to worry about bit-exact Opus decoding and seeking, and the bitrate is only a small proportion higher. But then you're just duplicating with a hack the muxing work the container is already able to do reliably and well. Why not just include two streams at the container level?You've said that the main reason you're considering this is video. Many videos already carry multiple audio streams.
I don't know all the details of why they did DTS-HD as an extension scheme rather than as another stream. Maybe there are compatibility reasons I don't know about. I do know DTS is frequently used at bitrates 4x higher per channel than Opus, so there's considerably more reason to be trying to look for savings in reducing redundancy. Because DTS is relatively primitive/ psychoacoustically naive, for a given audible quality level (for which DTS will need a much higher bitrate than Opus) the delta between DTS and the original is likely much more compressible than the delta between Opus and the original.
Quote from: saratoga on 24 February, 2013, 08:54:41 PMThere are no existing hybrid lossless decoders for Opus, so if your goal is to be compatible with an existing lossless implementation...Now I think I see the problem. There is a fundamental misunderstanding of what I am saying. Here is the principal of operation for the encoder:1. Take the current chunk of input PCM and use an Opus encoder to generate a compressed, lossy, Opus packet.2. Decode this packet (probably with the fixed-point decoder) and hang on to the PCM values it returns.3. Subtract these PCM values from the input PCM values and compress those with a lossless codec.4. Store this this new, losslessly-compressed chunk of data in the Opus padding area.
There are no existing hybrid lossless decoders for Opus, so if your goal is to be compatible with an existing lossless implementation...
If your goal is to be compatible only with an existing lossy format, then you can use any of the above mentioned formats, either extending it to your needs or simply using existing software and standards. In this case, I'd probably recommend just using MPEG-4 SLS, as it is backwards compatible with anything that supports AAC and is already standardized. You could also use MP3 and simply define your own correction format, but since you want 5.1 support, it would probably be easier to use AAC since there is already widespread support for 5.1 AAC.
I want something like this to exist in the royalty-free domain, and be compatible with a large number of devices.
If you want to play the “let's make this twist and maybe sooner or later it becomes so widespread that it will be retrofitted into the de facto format if not the formal standard” game, then go somewhere else.
the extra frequency response will be in the deltas.
Quote from: wswartzendruber on 26 February, 2013, 08:49:59 PMthe extra frequency response will be in the deltas.I'm curious how you intend to implement this.
It sounding more and more like you're going to end up with a file thats larger then just sending PCM
I am not trying to change how Opus works. My (maybe) future encoder covers a completely different use case: Lossless compression. It utilizes standardized Opus decoding for graceful fallback.
By the way, why bring up sample rates? If I do decide to support 96 kHz
OK, so you want a hybrid format which in principle is a lossless + an Opus, but zipped? A request for Opus will get you the Opus, and a request for lossless will make the hybrid residual file call up the Opus and transfer both?
But what if you decide to support 44.1 kHz?
Quote from: Porcus on 27 February, 2013, 01:55:00 PMOK, so you want a hybrid format which in principle is a lossless + an Opus, but zipped? A request for Opus will get you the Opus, and a request for lossless will make the hybrid residual file call up the Opus and transfer both?Correct. The stream should be playable through any Opus decoder, but a specialized decoder will know to also decode the lossless information.EDIT: Err, maybe not. I'm confused by your question. Both the Opus core and lossless differences will be stored in the same stream, but in such a way that is valid to Opus decoding specification. Those who designed the spec seem to have left two different ways for future extension.
Quote from: Porcus on 27 February, 2013, 01:55:00 PMBut what if you decide to support 44.1 kHz?Honestly, I can't say that I care. I mean I should, but every time I see the characters "44.1 kHz" the only thing that comes to mind is "Yuck."