IPB

Welcome Guest ( Log In | Register )

2 Pages V   1 2 >  
Reply to this topicStart new topic
OptimFROG DualStream (hybrid like) released!
ghido
post Jun 22 2003, 00:11
Post #1


OptimFROG developer


Group: Developer
Posts: 65
Joined: 24-April 03
Member No.: 6151



Hi!

OptimFROG Dual Stream is aimed at filling the big gap between
perceptual coding and lossless coding. The goal is to offer real
transparent audio coding (not only perceptually transparent) at
half or less the bitrate generally used by lossless coding, and
also to permit progressive consistent increase of the quality
level, until lossless coding is reached.

To eliminate the eternal problem of choosing between lossless and
near lossless, it has an option to create a correction file, which
may be eventually stored separately and used at a later time to
restore the original. The advantage is that the two files, OFS and
OFC have together approximately the size of the lossless coded
original file (slightly greater with up to 1%).

OptimFROG Dual Stream is in alpha stage. Although it was intensively
tested on 39 audio CDs, I am still searching for hidden problems.

It is a branch from the main OptimFROG version 4.506 project, with
modifications to allow the extended functionality and different
file extension (OFS - OptimFROG Small) in order not to mix lossless
and lossy files. I am not sure if it will remain a separate branch
or it will merge into the main project.

Feedback is greatly appreciated, especially problem reports with
the program crashing or worse, producing audio "garbage" (very
bad quality audio files).

I would like to thank to David Bryant, the Wavpack author
for the idea of the correction file (a file which, when used
combined with the lossy file, permits lossless restoring of
the original file).
Although the two programs have common user functionality, they
are based upon very different principles. There is almost no
similarity between their implementation.
Also, thanks for his great program which made me consider
finishing and opening to the public OptimFROG Dual Stream, of
which first working version I did more than a year earlier,
in April 2002.

Download it (Win32 console+foobar2000+Winamp2) from
http://losslessaudiocompression.com/Downlo...m_4507a_zip.php
You may check all the the details directly at
http://losslessaudiocompression.com/DualStream.php
or by visiting http://losslessaudiocompression.com

Florin Ghido
Go to the top of the page
+Quote Post
den
post Jun 22 2003, 00:52
Post #2





Group: Members
Posts: 315
Joined: 18-February 03
From: Perth, Western Australia
Member No.: 5050



Hmmmmmmmm. Looks interesting. I'm just downloading a copy now to check it out further. Might post an opinion or two once I've played with it for a while. wink.gif

Thanks,

Den.

This post has been edited by den: Jun 22 2003, 02:03


--------------------
Den
My blog - http://www.iinet.net.au/~den
Go to the top of the page
+Quote Post
AngelGR
post Jun 22 2003, 01:17
Post #3





Group: Members
Posts: 296
Joined: 9-June 02
From: Asturias - Spain
Member No.: 2252



Interesting, indeed. Congratulations, Ghido. smile.gif
It seems that Mr. Roberto Amorim was right and this is the way for the lossless codecs... wink.gif

This post has been edited by AngelGR: Jun 22 2003, 01:21
Go to the top of the page
+Quote Post
den
post Jun 22 2003, 06:08
Post #4





Group: Members
Posts: 315
Joined: 18-February 03
From: Perth, Western Australia
Member No.: 5050



Some early test results:

Took bryant's furious sample, which seems to be one of the few samples that Wavpack lossy actually screws up. Wavpack lossy has trouble with this up to and including 400 kbits, but it gets better (not transparent) with 400 kbits and joint stereo enabled.

ofs --quality 0 --mode extra furious.wav, yields a 181 kbit file, that I can not readily ABX... blink.gif (No obvious artifacts).

I now have a few other things I want to try. Only one complaint so far...it's very slow, and on my PC, seeking is worse than Wavpack.

wink.gif

Den.

This post has been edited by den: Jun 22 2003, 06:10


--------------------
Den
My blog - http://www.iinet.net.au/~den
Go to the top of the page
+Quote Post
rjamorim
post Jun 22 2003, 06:12
Post #5


Rarewares admin


Group: Members
Posts: 7515
Joined: 30-September 01
From: Brazil
Member No.: 81



What algorithms are you using in lossy mode? Quantization only, like WV? Some sort of psychoacoustic model? DCT?

@AngelGR: Thanks. smile.gif


--------------------
Get up-to-date binaries of Lame, AAC, Vorbis and much more at RareWares:
http://www.rarewares.org
Go to the top of the page
+Quote Post
den
post Jun 22 2003, 06:29
Post #6





Group: Members
Posts: 315
Joined: 18-February 03
From: Perth, Western Australia
Member No.: 5050



@Ghido

Looks like Roberto beat me to it, regarding asking you what techniques are used. I can't easily hear additional noise/hiss, like I often do with Wavpack lossy. I haven't extensively tested it yet though... huh.gif

Den.


--------------------
Den
My blog - http://www.iinet.net.au/~den
Go to the top of the page
+Quote Post
floyd
post Jun 22 2003, 07:38
Post #7





Group: Members
Posts: 630
Joined: 18-June 02
Member No.: 2332



This sounds awesome. Great idea, expanding on the wavpack-hybrid theme! smile.gif

I don't have time to test for a few days, hopefully i can check it out asap.
Go to the top of the page
+Quote Post
westgroveg
post Jun 22 2003, 08:03
Post #8





Group: Members
Posts: 1235
Joined: 5-October 01
Member No.: 220



Wow this new lossless+lossy is like a revolution! Very exciting stuff indeed
Go to the top of the page
+Quote Post
HansHeijden
post Jun 22 2003, 11:35
Post #9





Group: Members
Posts: 159
Joined: 30-September 01
Member No.: 75



Sounds very good even with --quality 0. And the udial sample (with the strong high-pitched tones) doesn't fool this new lossy mode at all!
Go to the top of the page
+Quote Post
westgroveg
post Jun 22 2003, 21:54
Post #10





Group: Members
Posts: 1235
Joined: 5-October 01
Member No.: 220



What about trying some of MPC's problem samples?
Go to the top of the page
+Quote Post
HansHeijden
post Jun 22 2003, 22:29
Post #11





Group: Members
Posts: 159
Joined: 30-September 01
Member No.: 75



Well, instead I found another problem sample for both optimfrog and wavpack lossy. It's not quite music but maybe interesting anyway: keys from the pcabx site. Both lossy encoders add a lot of audible noise to the key-jangling.
Go to the top of the page
+Quote Post
superdumprob
post Jun 22 2003, 22:43
Post #12





Group: Members
Posts: 212
Joined: 30-March 03
Member No.: 5752



Den: I look forward to hearing your results. smile.gif


--------------------
superdumprob
____________________________________________

"If we knew what it was we were doing, it would not be called research, would it?" - Albert Einstein
Go to the top of the page
+Quote Post
Skymmer
post Jun 22 2003, 23:20
Post #13





Group: Members
Posts: 114
Joined: 11-June 03
Member No.: 7132



Yeah ... sounds good ... Idea is good ... BUT after some tests I realize that --seek, --optimize and --mode
keys effect lossy compression time and ratio. These keys work good for lossless but I think it's too much for
lossy because it's hard to determine which combination will give best results. I think Ghido you must simplify
not only lossy but lossless options too. But anyway good job !

PS: does it mean that extension .ofr changed to .ofs ?
Why in_ofs doesn't play .ofr ?

PSS: Oh Shit, looks like it's needed to use both in_ofs and in_ofr. I think Ghido you must restructure your
project ...


--------------------
Gabber, Jazz and IDM
Go to the top of the page
+Quote Post
bryant
post Jun 22 2003, 23:33
Post #14


WavPack Developer


Group: Developer (Donating)
Posts: 1287
Joined: 3-January 02
From: San Francisco CA
Member No.: 900



QUOTE (HansHeijden @ Jun 22 2003 - 01:29 PM)
Well, instead I found another problem sample for both optimfrog and wavpack lossy. It's not quite music but maybe interesting anyway: keys from the pcabx site. Both lossy encoders add a lot of audible noise to the key-jangling.

Good sample! It's actually a little like the "furious" sample, but more noise and less tone in the high frequencies.

Using noise shaping in WavPack (-s1) makes this almost perfect, but I don't approve of using custom command lines to generate good results. sad.gif
Go to the top of the page
+Quote Post
den
post Jun 23 2003, 05:20
Post #15





Group: Members
Posts: 315
Joined: 18-February 03
From: Perth, Western Australia
Member No.: 5050



QUOTE
Good sample! It's actually a little like the "furious" sample, but more noise and less tone in the high frequencies.

Using noise shaping in WavPack (-s1) makes this almost perfect, but I don't approve of using custom command lines to generate good results.


I agree with regards to custom command lines. I know it's a big ask when I have zero experience in programming a codec, but it's best when an encoder can detect special cases and adjust to suit automatically, unless this is deliberately overridden by the user. dry.gif

QUOTE
Den: I look forward to hearing your results.


OK, some initial findings. My initial interest in this was to see whether it transcodes into ATRAC (for Minidisc) as well as Wavpack lossy does. I ripped/encoded/transcoded Blue Monday - New Order and listened to it all the way through, plus conducted some blind ABX tests on the final transcoded ATRAC3 track against that encoded direct from the wavs, ie

1. wav -> DualStream --quality 3 (350 kbits) -> ATRAC3 and
2. wav -> DualStream --quality 2 (318 kbits) -> ATRAC3 and
3. wav -> DualStream --quality 1 (287 kbits) -> ATRAC3 and
3. wav -> DualStream --quality 0 (259 kbits) -> ATRAC3 and
4. wav -> ATRAC3.

I could not ABX with --quality 2 and 3 against the directly ATRAC encoded wav, which is the same for Wavpack lossy @320 handled the same way. At --quality 0 and 1, I think I was occasionally picking up some background noise around some notes, but I was not consistently getting it correct. huh.gif So DualStream compares very well against Wavpack lossy for transcoding purposes, and both of them leave Vorbis q10, mpc q10 and LAME insane behind in terms of introduced transcoding artifacts. wink.gif

Repeated above with Relax - Frankie goes to Hollywood using quality 2 and 0 (346 - 247 kbits). They all sounded fine on Minidisc and could not be readily discerned from the same direct encoded from wav.

I then encoded and transcoded 3 CDs across to ATRAC3 via DualSteam quality 2, which generated ofs files between 261 - 324 kbits. (The 3 CDs were Stan Ridgeway - Songs That Made This Country Great, New Order - Substance CD1 and Moby - Play) These were then listened to all the way through, and the quality was excellent, with no noticeable artifacts through relaxed, but attentive listening. B)

DualStream certainly transcodes very well (like Wavpack lossy) at similar, and sometimes lower bitrates. What doesn't help though is the slow encoding/decoding speed, but this will hopefully improve in newer versions. I can normally decode and replaygain 2 hours 40 minutes of music for MD in about 5-10 minutes with Wavpack lossy. This takes nearly an hour with DualStream on my aging Duron 750 MHz. rolleyes.gif

Now for some ABX tests with DualStream directly against the original wavs. Watch this space.
>_<
Den.


--------------------
Den
My blog - http://www.iinet.net.au/~den
Go to the top of the page
+Quote Post
den
post Jun 23 2003, 06:43
Post #16





Group: Members
Posts: 315
Joined: 18-February 03
From: Perth, Western Australia
Member No.: 5050



Right. Just took the opening 20 seconds of Stan Ridgway - Lonely Town. This section features a bluesy intro with some sliding and picked electric guitar, and percussion instruments. It is well recorded and has plenty of space in between the notes that allows me to pick up noise or hiss.

ofs --quality 0, resulted in a 251 kbit file. ABX results - 11/15 first time, then 15/15 and 15/15. wink.gif
ofs --quality 1, resulted in a 284 kbit file, ABX results - 6/15 first time, then 13/15 and 14/15. tongue.gif
ofs --quality 2, resulted in a 319 kbit file, ABX results - 8/15, 9/15, 8/15. laugh.gif

Very nice. At quality 0, there was slight noise around the notes. It wasn't fuzzy, just background noise, and I had to listen very closely to pick it. It seemed to come in and out around each note, rather than as a blanket background hiss like I tend to detect in wavpack lossy. At quality 1, I thought the noise had gone at first, but after I tried harder, my ability to pick it improved.
At quality 2, forget it. It was completely transparent as far as I was concerned.

Just to confirm that my ears were not broken, I also repeated the above with Wavpack lossy.

wavpack @265 kbits (actual was 271 kbits), ABX results 15/15. Background hiss.
wavpack @320 kbits, ABX results 15/15. Background hiss.
wavpack (3.97 experimental) @271 kbits (actual was 271 kbits), ABX results 8/15, 10/15, 10/15. ph34r.gif

Nothing like a little healthy competition. Time for some more testing. B)

Den.


--------------------
Den
My blog - http://www.iinet.net.au/~den
Go to the top of the page
+Quote Post
den
post Jun 23 2003, 10:48
Post #17





Group: Members
Posts: 315
Joined: 18-February 03
From: Perth, Western Australia
Member No.: 5050



Another sample which causes a hiss problem with both DualStream and Wavpack lossy is the opening sequence of Ring Of Fire - Stan Ridgway. I will post it somewhere when I get to my other PC.

ofs --quality 2, 293 kbit file. ABX 15/15, no practice required. Distinct change in the background hiss. Very similar to that from wavpack lossy 3.97 at similar bitrate.

wavpack lossy @265, actual file was 272 kbit. ABX 15/15, again distinct hiss, no practice required to pick it. Same again with noise shaping enabled in the experimental version.

Of the two, preferred the ofs version, as hiss was slightly more subtle, but still very easy to pick.

Repeated with ofs --quality 3, 4 and 5.

ofs --quality 3, 310 kbit file. ABX 15/15 first attempt. Hiss.
ofs --quality 4, 348 kbit file. ABX 14/15 first attempt. Hiss. Getting more subtle now, but still clearly there.
ofs --quality 5, 388 kbit file. ABX 9/15 first attempt. Repeated 11/15, and then 12/15. Getting hard now. rolleyes.gif

wavpack @320. ABX 13/15, then 15/15. Hiss.
wavpack @388. ABX 15/15 Hiss.
wavpack (experimental with noise shaping). ABX 11/15. then 14/15. Much better than the other Wavpack attempts, but still there if you listen carefully. >_<

It would appear with this sample, (pulsing distorted guitars?) that the hiss is more prevalent with both, but if you throw more bits at it, DualStream comes out slightly better, sooner.

The noise shaping option in experimental Wavpack lossy certainly improves things over straight 3.97, but this is not probably an ideal sample to try the shaping option out on.

Den.


--------------------
Den
My blog - http://www.iinet.net.au/~den
Go to the top of the page
+Quote Post
Speek
post Jun 23 2003, 11:13
Post #18





Group: Members
Posts: 394
Joined: 31-October 01
Member No.: 386



Nice work Florin! I've made a front-end for this new encoder:
http://home.wanadoo.nl/~w.speek/download/F...ntendOFR-DS.zip
Go to the top of the page
+Quote Post
superdumprob
post Jun 23 2003, 19:19
Post #19





Group: Members
Posts: 212
Joined: 30-March 03
Member No.: 5752



Blimey Den, you have been busy! Thanks a lot. Interesting stuff.


--------------------
superdumprob
____________________________________________

"If we knew what it was we were doing, it would not be called research, would it?" - Albert Einstein
Go to the top of the page
+Quote Post
den
post Jun 23 2003, 23:26
Post #20





Group: Members
Posts: 315
Joined: 18-February 03
From: Perth, Western Australia
Member No.: 5050



Between DualStream and Wavpack lossy, plus 4.00 on it's way, there is plenty of interesting development going on. By the way, the sample I ABX'ed is here in Wavpack lossless format.. wink.gif

Den.

This post has been edited by den: Jun 23 2003, 23:28


--------------------
Den
My blog - http://www.iinet.net.au/~den
Go to the top of the page
+Quote Post
den
post Jun 24 2003, 05:42
Post #21





Group: Members
Posts: 315
Joined: 18-February 03
From: Perth, Western Australia
Member No.: 5050



QUOTE
Nice work Florin! I've made a front-end for this new encoder:
http://home.wanadoo.nl/~w.speek/download/F...ntendOFR-DS.zip


Nice work Speek! Makes playing with DualStream a whole lot easier... laugh.gif

QUOTE
What algorithms are you using in lossy mode? Quantization only, like WV? Some sort of psychoacoustic model? DCT?


Well Roberto, curiosity killed this cat (or dog actually) again and I conducted a little experiment with Wavpack lossy and DualStream. (Love that name...)

Take x.wav and encode with wavpack lossy. Decode resulting file into a wav file (#1), then reencode #1 with the same Wavpack lossy settings. Decode resulting file into a wav file (#2). Compare wavs #1 and #2 with EAC and you will find they are bit for bit indentical. laugh.gif (HA regulars already know this from atici's post in the MPC section.)

Repeat the above with Dualstream, and you get two identical sized wav files, but when you do a comparison with EAC, they are very different inside.

What does this mean? Buggered if I know, but I guess there is some modelling going on in there somewhere, compared with Wavpack's straight predictor based approach.

Just out of interest, I also repeated the Wavpack experiment with noise shaping enabled on an experimental version, and bingo, they still match.

Fascinating... B)

Den.


--------------------
Den
My blog - http://www.iinet.net.au/~den
Go to the top of the page
+Quote Post
den
post Jun 24 2003, 06:14
Post #22





Group: Members
Posts: 315
Joined: 18-February 03
From: Perth, Western Australia
Member No.: 5050



But wait, there's more.

I can't leave this and the experimental Wavpack lossy encoder alone at the moment.

It occurred to me that the test conducted before is not necessarily fair (apples vs oranges rolleyes.gif ), in that it was comparing CBR (Wavpack) against VBR (DualStream quality mode) so I repeated my tests.

Wavpack @270 kbits (actual 273 kbits) : ABX 15/15. Very distinct elevated background hiss. Annoying.
Wavpack @320 kbits (actual 315 kbits) : ABX 15/15. Same as above, but hiss was not as annoying, still obvious.
Wavpack @400 kbits (actual 400 kbits) : ABX 15/15. Hiss quite soft now, but still readily detected. wink.gif

All the above was conducted in high quality mode, no shaping, no joint stereo.

Wavpack X @270 kbits (actual 273 kbits) : ABX 15/15. Very distinct elevated background hiss. Better than Wavpack 3.97 but still annoying.
Wavpack X @320 kbits (actual 315 kbits) : ABX 15/15. Same as above, but hiss was not as annoying, still obvious. Again, better than 3.97.
Wavpack X @400 kbits (actual 400 kbits) : ABX 12/15, then 13/15. Need to concentrate now, but can still be detected if I listen carefully at high volumes. smile.gif

Each of these were better than the corresponding 3.97 version by varying degrees. The "relocatable" noise shaping option seems to offer some benefits during my early tests. If you decide to play with it, most music benefits with a -s0 to -s-1 type setting. -s1 has made every sample from my music collection much worse so far. :x

ofs --bitrate 270 kbits (actual 270 kbits) : ABX 15/15. Distinct background hiss. Quite annoying. Comparable to Wavpack X with noise shaping enabled.
ofs --bitrate 320 kbits (actual 319 kbits) : ABX 15/15. Hiss is reduced, but clearly there. Not annoying, but clearly there.
ofs --bitrate 400 kbits (actual 399 kbits) : ABX 8/15, then 9/15. Pretty damn close! wink.gif

On a whim, I also conducted "ABX" tests within foobar with Wavpack X vs DualSteam equivalent.

@ 270, could ABX 15/15, Dualstream was slightly less annoying, hiss slightly softer.
@ 320, could ABX 15/15, Dualstream was slightly less annoying, hiss slightly softer.
@ 400, could ABX 15/15, Dualstream by a nose, because I could still barely detect hiss in Wavpack X, but not Dualstream. smile.gif

All of these tests were with Ring Of Fire intro. Same as before. Rather than post further test results here, I will probably start a new thread when I have something else to report.

For now, I am staying with Wavpack because of the speed benefits, but will split my encodes 1/3 Wavpack 3.97, 1/3 Wavpack X and 1/3 Optifrog DualStream in order to get a range of comparisons between the three.

Hope this is useful to someone out there.

Den.


--------------------
Den
My blog - http://www.iinet.net.au/~den
Go to the top of the page
+Quote Post
eltoder
post Jun 24 2003, 09:13
Post #23





Group: Members
Posts: 158
Joined: 16-May 03
From: nsk.su
Member No.: 6653



QUOTE (rjamorim @ Jun 21 2003 - 09:12 PM)
What algorithms are you using in lossy mode? Quantization only, like WV? Some sort of psychoacoustic model? DCT?

If I got this explanation right, no psychoacoustic or even noise shaping is performed (difference is pure white noise).

@den: could you perform this test with reencoding (for being bit-identical) with CBR OFS files? I think some chances are... wink.gif

-Eugene


--------------------
The greatest programming project of all took six days; on the seventh day the programmer rested. We've been trying to debug the !@#$%&* thing ever since. Moral: design before you implement.
Go to the top of the page
+Quote Post
westgroveg
post Jun 24 2003, 09:43
Post #24





Group: Members
Posts: 1235
Joined: 5-October 01
Member No.: 220



not tech stuff but, .ape tagging support would be good
Go to the top of the page
+Quote Post
den
post Jun 24 2003, 09:49
Post #25





Group: Members
Posts: 315
Joined: 18-February 03
From: Perth, Western Australia
Member No.: 5050



QUOTE
If I got this explanation right, no psychoacoustic or even noise shaping is performed (difference is pure white noise).


It may be just a difference as white noise, but it isn't using a straight predictor method like Wavpack lossy otherwise you would get identical files like you do from reencoding a decoded Wavpack encoded file, if you catch my drift. wink.gif

QUOTE
@den: could you perform this test with reencoding (for being bit-identical) with CBR OFS files? I think some chances are...


... that they are completely different. I did the test with CBR using the --bitrate 320 switch. I just repeated it then for my own peace of mind. Using the quality switch to do this, being VBR, did not make sense.

Just to clarify, I took my test wav, and encoded it using ofs --bitrate 320 test.wav.
Took resulting ofs file, and decoded it back into another wav. (Call this wav2).
Took wav2 and encoded again using ofs --bitrate 320 wav2.
Took resulting ofs file and decoded into another wav. (Call this wav3).

Compare wav2 and wav3 in EAC. Each is completely unique. ohmy.gif

As I said, fascinating. B)

I'd love to read some comments from ghido on this!

Den.


--------------------
Den
My blog - http://www.iinet.net.au/~den
Go to the top of the page
+Quote Post

2 Pages V   1 2 >
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: 20th April 2014 - 17:54