IPB

Welcome Guest ( Log In | Register )

4 Pages V  < 1 2 3 4 >  
Reply to this topicStart new topic
Lossless Extensions for Opus (Backwards Compatible), How to embed lossless deltas inside an Opus stream
LithosZA
post Mar 15 2013, 08:37
Post #51





Group: Members
Posts: 182
Joined: 26-February 11
Member No.: 88525



Lossless extensions to Opus would be completely pointless IMO except maybe if the resulting (lossless extensions + lossy) file would be smaller than other widely supported lossless formats.
Go to the top of the page
+Quote Post
wswartzendruber
post Mar 16 2013, 23:53
Post #52





Group: Members
Posts: 85
Joined: 11-December 06
Member No.: 38563



Yeah, I hear you there. I've contacted the OptimFROG developer to see if he's interested, but haven't heard anything back.
Go to the top of the page
+Quote Post
wswartzendruber
post Mar 19 2013, 04:42
Post #53





Group: Members
Posts: 85
Joined: 11-December 06
Member No.: 38563



I have heard back from the OptimFROG developer. He has expressed great interest in the idea and we are corresponding.
Go to the top of the page
+Quote Post
C.R.Helmrich
post Mar 19 2013, 21:45
Post #54





Group: Developer
Posts: 682
Joined: 6-December 08
From: Erlangen Germany
Member No.: 64012



QUOTE (wswartzendruber @ Feb 24 2013, 21:36) *
When I came up with this idea, my primary use case was movies.

I still don't get this. Sorry, I haven't followed this thread much and might have missed something, but: How do movies benefit from lossless and backward compatibility to Opus at the same time? Only Blu-Ray does lossless audio beside video, I think, and if you're going for Hi-res video, why not use FLAC from the start? It's much more widely supported than Opus on mobile and media-Center devices right now (and probably also in the next few months or even years, industry can be quite slow).

Second question for clarification: so now you're trying to get Florin to develop a coding scheme for the lossless Opus-extension layer based on OptimFrog?

Chris


--------------------
If I don't reply to your reply, it means I agree with you.
Go to the top of the page
+Quote Post
wswartzendruber
post Mar 20 2013, 01:12
Post #55





Group: Members
Posts: 85
Joined: 11-December 06
Member No.: 38563



I solicited Florin for interest in the project and pointed him to this thread. He has responded with a very positive attitude and some ideas of his own. We have different approaches on the details (API, where certain information is stored, etc...), so I am probably going to be making a lot of concessions. I look forward to his valuable input on my ideas, and most importantly, his expertise with lossless compression. If this project becomes successful, it will be because of him.

EDIT: The initial use case was for movies. He and I are talking about other sample rates and need to work that out before I make anymore statements.

This post has been edited by wswartzendruber: Mar 20 2013, 01:15
Go to the top of the page
+Quote Post
NullC
post Mar 25 2013, 22:28
Post #56





Group: Developer
Posts: 200
Joined: 8-July 03
Member No.: 7653



QUOTE (wswartzendruber @ Mar 18 2013, 20:42) *
I have heard back from the OptimFROG developer. He has expressed great interest in the idea and we are corresponding.
Is he aware that the developers of Opus consider this to be a bad idea and do not intend to support it and will not be maintaining a bit exact decoder at this time? Or that the resulting streams are not losslessly seekable?

This post has been edited by NullC: Mar 25 2013, 22:29
Go to the top of the page
+Quote Post
wswartzendruber
post Mar 25 2013, 23:23
Post #57





Group: Members
Posts: 85
Joined: 11-December 06
Member No.: 38563



QUOTE (NullC @ Mar 25 2013, 16:28) *
QUOTE (wswartzendruber @ Mar 18 2013, 20:42) *
I have heard back from the OptimFROG developer. He has expressed great interest in the idea and we are corresponding.
Is he aware that the developers of Opus consider this to be a bad idea and do not intend to support it and will not be maintaining a bit exact decoder at this time? Or that the resulting streams are not losslessly seekable?

He struck me as very unimpressed with the criticisms provided in this thread. With that said, I suspect he doesn't have a lot of interest in whether or not the Opus developers agree. What fundamentally matters is that Opus is properly specified and those specifics allow for extension packets. I don't see how our use of those extension packets is really any of their concern, given that we make our extension formatting readily identifiable (so as not to throw off future decoders that use other extensions).

As far as bit-exact decoding goes, he and I currently agree that using an existing fixed point implementation is the way to go. This would likely be used to generate the deltas and later to decode the Opus core stream.

He has not mentioned lossless seeking, but we may be able to use the extension packets to help the decoder out.

I'm still waiting to hear back from him. It's possible he has lost interest in the project. If this is the case, I will continue alone.

This post has been edited by wswartzendruber: Mar 25 2013, 23:25
Go to the top of the page
+Quote Post
jmvalin
post Mar 25 2013, 23:53
Post #58


Xiph.org Speex developer


Group: Developer
Posts: 473
Joined: 21-August 02
Member No.: 3134



QUOTE (wswartzendruber @ Mar 25 2013, 18:23) *
He struck me as very unimpressed with the criticisms provided in this thread. With that said, I suspect he doesn't have a lot of interest in whether or not the Opus developers agree. What fundamentally matters is that Opus is properly specified and those specifics allow for extension packets. I don't see how our use of those extension packets is really any of their concern, given that we make our extension formatting readily identifiable (so as not to throw off future decoders that use other extensions).


Readily identifiable assuming people actually know about your stuff -- which they won't. The current spec specifically says that the padding *MUST* be set to zero. This is done intentionally, so that any future extension has to be agreed on in the IETF WG to avoid any issue. What you're suggesting is essentially a rogue, incompatible extension that disregards the standard process.

QUOTE (wswartzendruber @ Mar 25 2013, 18:23) *
As far as bit-exact decoding goes, he and I currently agree that using an existing fixed point implementation is the way to go. This would likely be used to generate the deltas and later to decode the Opus core stream.


You're aware that the output of the fided-point decoder *will* change in the future, right?

QUOTE (wswartzendruber @ Mar 25 2013, 18:23) *
I'm still waiting to hear back from him. It's possible he has lost interest in the project. If this is the case, I will continue alone.


Fortunately, that is indeed likely.
Go to the top of the page
+Quote Post
Soap
post Mar 25 2013, 23:54
Post #59





Group: Members
Posts: 1001
Joined: 19-November 06
Member No.: 37767



QUOTE (wswartzendruber @ Mar 25 2013, 17:23) *
As far as bit-exact decoding goes, he and I currently agree that using an existing fixed point implementation is the way to go. This would likely be used to generate the deltas and later to decode the Opus core stream.


Ok, help me out here.

The whole idea of doing this hack (and don't get me wrong, "hack" isn't a bad word), IIRC, was so that it was a playable OPUS stream with padding which would allow you to make it lossless if you wanted. OPUS was chosen over existing solutions because it was "not proprietary".

Yet you've sought out the help of a coder who has not released the code to his proprietary codec. A codec you're going to put in the padding in violation of the OPUS spec. A codec which likely is patent encumbered just not tested because its ripple in the pond is so small.

And not just any OPUS decoder will work with this stream. We'll need to use a specific OPUS decoder which isn't even the official code.

I'm not sure we agree on what "proprietary" means.

This post has been edited by Soap: Mar 25 2013, 23:56


--------------------
Creature of habit.
Go to the top of the page
+Quote Post
wswartzendruber
post Mar 26 2013, 00:44
Post #60





Group: Members
Posts: 85
Joined: 11-December 06
Member No.: 38563



I am no longer seeking to use Opus padding. I now intend to have these extension packets violate constraint R5. Per the RFC, doing so triggers the standardized decoder to ignore them because they are reserved for future extensions.

Florin's recent communication with me indicated that he's going to be far more open with his new stuff. The issue of his work possibly being patented concerns me, though. I had not thought of that.

And who says I have to update the fixed point decoder I choose to use?

This post has been edited by wswartzendruber: Mar 26 2013, 00:50
Go to the top of the page
+Quote Post
jmvalin
post Mar 26 2013, 00:55
Post #61


Xiph.org Speex developer


Group: Developer
Posts: 473
Joined: 21-August 02
Member No.: 3134



QUOTE (wswartzendruber @ Mar 25 2013, 19:44) *
I am no longer seeking to use Opus padding. I now intend to have these extension packets violate constraint R5. Per the RFC, doing so triggers the standardized decoder to ignore them because they are reserved for future extensions.


Well, I wouldn't bet on that rule actually being widely followed.

QUOTE (wswartzendruber @ Mar 25 2013, 19:44) *
And who says I have to update the fixed point decoder I choose to use?


Congratulations, you are now the proud maintainer of a fork of the entire Opus codebase. Best of luck in your new responsabilities.
Go to the top of the page
+Quote Post
Soap
post Mar 26 2013, 01:15
Post #62





Group: Members
Posts: 1001
Joined: 19-November 06
Member No.: 37767



QUOTE (wswartzendruber @ Mar 25 2013, 18:44) *
Florin's recent communication with me indicated that he's going to be far more open with his new stuff.


Those are oft-said words, less frequently acted upon.
QUOTE (wswartzendruber @ Mar 25 2013, 18:44) *
The issue of his work possibly being patented concerns me, though. I had not thought of that.



It doesn't really matter, you are unlikely to ever be a target of action.

Neither of those points of mine matter in the big picture. Except that I'm trying to get you to think about your apparently contradictory views on "proprietary".


--------------------
Creature of habit.
Go to the top of the page
+Quote Post
wswartzendruber
post Mar 26 2013, 03:53
Post #63





Group: Members
Posts: 85
Joined: 11-December 06
Member No.: 38563



QUOTE (jmvalin @ Mar 25 2013, 18:55) *
QUOTE (wswartzendruber @ Mar 25 2013, 19:44) *
I am no longer seeking to use Opus padding. I now intend to have these extension packets violate constraint R5. Per the RFC, doing so triggers the standardized decoder to ignore them because they are reserved for future extensions.


Well, I wouldn't bet on that rule actually being widely followed.

I've been thinking about that for a couple weeks. Right now my plan is to declare a packet with no frames (violate R5) and then have the deltas compressed in "padding" for that packet. So when I say I'm no longer using padding, I mean I'm not using padding in a packet with frames. The deltas will be in what is essentially a code 3 packet with zero frames and lots of padding. This increases my chances of a non-compliant decoder just going, "Durrrr, zero frames, now padding, uh...next..." I've also thought of violating another R5 rule by declaring a padding size inconsistent with the total frame length and packet size. I think that this second way is maybe not a good idea.

QUOTE (jmvalin @ Mar 25 2013, 18:55) *
QUOTE (wswartzendruber @ Mar 25 2013, 19:44) *
And who says I have to update the fixed point decoder I choose to use?


Congratulations, you are now the proud maintainer of a fork of the entire Opus codebase. Best of luck in your new responsabilities.

I need to retain the entire code base to keep the fixed-point decoder? blink.gif

This post has been edited by wswartzendruber: Mar 26 2013, 03:55
Go to the top of the page
+Quote Post
jmvalin
post Mar 26 2013, 04:47
Post #64


Xiph.org Speex developer


Group: Developer
Posts: 473
Joined: 21-August 02
Member No.: 3134



QUOTE (wswartzendruber @ Mar 25 2013, 22:53) *
QUOTE (jmvalin @ Mar 25 2013, 18:55) *
QUOTE (wswartzendruber @ Mar 25 2013, 19:44) *
And who says I have to update the fixed point decoder I choose to use?


Congratulations, you are now the proud maintainer of a fork of the entire Opus codebase. Best of luck in your new responsabilities.

I need to retain the entire code base to keep the fixed-point decoder? blink.gif


Well, I was assuming you also wanted to have tweaks in the encoder to make it not use the many features that improve the perceptual quality while making the residual larger... Not to mention the mess of taking the encoder and decoder from different codebases (many functions are shared). Lots of fun!
Go to the top of the page
+Quote Post
2Bdecided
post Mar 26 2013, 10:35
Post #65


ReplayGain developer


Group: Developer
Posts: 4957
Joined: 5-November 01
From: Yorkshire, UK
Member No.: 409



I wonder why you've chosen opus? Rather than a more widely implemented codec that supports 44.1kHz natively?

By the time you've finished, mp3's patents will probably have expired.

Not that mp3+FLAC in the way you're proposing it would be attractive.

Cheers,
David.
Go to the top of the page
+Quote Post
wswartzendruber
post Mar 26 2013, 20:59
Post #66





Group: Members
Posts: 85
Joined: 11-December 06
Member No.: 38563



MP3 stops at stereo. Besides that, there is already mp3HD. It works by storing the deltas as ID3v2 tags. sick.gif

QUOTE ("jmvalin")
Well, I was assuming you also wanted to have tweaks in the encoder to make it not use the many features that improve the perceptual quality while making the residual larger... Not to mention the mess of taking the encoder and decoder from different codebases (many functions are shared). Lots of fun!

That kind of thing might happen if I get a proof-of-concept working.

This post has been edited by wswartzendruber: Mar 26 2013, 21:02
Go to the top of the page
+Quote Post
db1989
post Mar 26 2013, 21:04
Post #67





Group: Super Moderator
Posts: 5173
Joined: 23-June 06
Member No.: 32180



QUOTE (wswartzendruber @ Mar 26 2013, 19:59) *
MP3 stops at stereo.
http://en.wikipedia.org/wiki/MP3_Surround

QUOTE
Besides that, there is already mp3HD. It works by storing the deltas as ID3v2 tags. sick.gif
I donít see how mp3HD being implemented in a way that you find distasteful (as many people will find your attempt to kludge lossless into Opus) rules out your ability to develop a scheme you like more, thus making this not a very informative reply as to the reasoning behind your dismissal of MP3 as a base.
Go to the top of the page
+Quote Post
wswartzendruber
post Mar 27 2013, 02:26
Post #68





Group: Members
Posts: 85
Joined: 11-December 06
Member No.: 38563



First off, mp3 Surround (which I would hypothetically build on) is not open and I have no desire to extend it. Second, if their best answer for mp3HD was to embed the deltas in freaking header metadata, that tells me the bitstream is fundamentally non-extendable. Opus was designed to be extended from the beginning, similar to DTS.

This post has been edited by wswartzendruber: Mar 27 2013, 02:26
Go to the top of the page
+Quote Post
saratoga
post Mar 27 2013, 02:52
Post #69





Group: Members
Posts: 4718
Joined: 2-September 02
Member No.: 3264



QUOTE (wswartzendruber @ Mar 26 2013, 20:26) *
First off, mp3 Surround (which I would hypothetically build on) is not open


OptimFROG, the proprietary format on which you have hypothetically decided to build on is not open either.

QUOTE (wswartzendruber @ Mar 26 2013, 20:26) *
Second, if their best answer for mp3HD was to embed the deltas in freaking header metadata, that tells me the bitstream is fundamentally non-extendable.


MP3 is a compression format, not a container. If you want an extensible container, use one of the many that supports MP3, such as MP4 or MKV.
Go to the top of the page
+Quote Post
Soap
post Mar 27 2013, 02:57
Post #70





Group: Members
Posts: 1001
Joined: 19-November 06
Member No.: 37767



QUOTE (saratoga @ Mar 26 2013, 20:52) *
MP3 is a compression format, not a container. If you want an extensible container, use one of the many that supports MP3, such as MP4 or MKV.


Now that's just silly, saratoga. If a container was an acceptable answer one could just put an OPUS stream and a FLAC stream in that!

/s


This post has been edited by Soap: Mar 27 2013, 02:58


--------------------
Creature of habit.
Go to the top of the page
+Quote Post
saratoga
post Mar 27 2013, 03:02
Post #71





Group: Members
Posts: 4718
Joined: 2-September 02
Member No.: 3264



Actually I suppose if the goal is to have this work on any old software device, the obvious format to use is AAC, since every AAC player in existence supports MP4 with >2 channels, and you can easily insert the lossless correction data into the MP4 file as a separate stream without breaking anything.
Go to the top of the page
+Quote Post
wswartzendruber
post Mar 27 2013, 04:08
Post #72





Group: Members
Posts: 85
Joined: 11-December 06
Member No.: 38563



I see that reiteration is necessary.

1. I have no desire to extend something that is not open and royalty-free.
2. Florin has stated his intention of having his new work be open.
3. AAC is not royalty free.
4. Packing Opus and FLAC together in the same container takes more space than I would like, and seems redundant.
5. I have lost contact with Florin, and an OptimFROG-derived codec for deltas may be out of the question.

This post has been edited by wswartzendruber: Mar 27 2013, 04:11
Go to the top of the page
+Quote Post
saratoga
post Mar 27 2013, 04:23
Post #73





Group: Members
Posts: 4718
Joined: 2-September 02
Member No.: 3264



QUOTE (wswartzendruber @ Mar 26 2013, 22:08) *
I see that reiteration is necessary.
1. I have no desire to extend something that is not open and royalty-free.


How do you reconcile this statement with all of the posts you made from Feb 28 onward detailing your plans to extend a format that was not open?

QUOTE (wswartzendruber @ Mar 26 2013, 22:08) *
2. Florin has stated his intention of having his new work be open.


He told you he planned to open OptimFROG?
Go to the top of the page
+Quote Post
wswartzendruber
post Mar 27 2013, 04:44
Post #74





Group: Members
Posts: 85
Joined: 11-December 06
Member No.: 38563



1. I am not out to extend OptimFROG, I'm out to extend Opus. If this succeeds, these streams will not be decodable by OptimFROG, but by Opus. OptimFROG may be a catalyst.

2. He seems to have greatly improved OptimFROG and plans to make that standardized and open. I don't know about royalties, though. I'm also much more concerned about possible patent "infringement."

EDIT: It would be neat if he would get back to me. Even if just to tell me I'm a total idiot.

This post has been edited by wswartzendruber: Mar 27 2013, 04:48
Go to the top of the page
+Quote Post
wswartzendruber
post Mar 29 2013, 04:37
Post #75





Group: Members
Posts: 85
Joined: 11-December 06
Member No.: 38563



I sent Florin one last email asking for input. If I don't get a response within a week, I'm going on without him.

I'm not going to stop until I see for myself that this will not work well.
Go to the top of the page
+Quote Post

4 Pages V  < 1 2 3 4 >
Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 23rd April 2014 - 19:44