Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: OptimFROG DualStream (hybrid like) released! (Read 14697 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

OptimFROG DualStream (hybrid like) released!

Reply #25
Quote
not tech stuff but, .ape tagging support would be good


Supports Ape V2, and Speek's fantastic front end adds them for you. 

Den.

OptimFROG DualStream (hybrid like) released!

Reply #26
Quote
Quote
not tech stuff but, .ape tagging support would be good


Supports Ape V2, and Speek's fantastic front end adds them for you. 

Den.

Mhhh..but I can't add them with EAC as Ido when I use MPC.

OptimFROG DualStream (hybrid like) released!

Reply #27
Hi!

First, thank you all for the great feedback, testing and samples...

There are great news regarding the latest OptimFROG DualStream, version 4.507a2:
  - added advanced noise shaping at encoding (--ans) option, improving transparency, especially at lower bitrates
  - 210% faster encoding in quality mode at bit identical results
  - 220%-270% faster encoding in average bitrate mode at bit identical results

Get it from http://LosslessAudioCompression.com on the DualStream page

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

As opposed to WavPack which does implicit modeling by varying the quantization level to maintain the desired data rate, OptimFROG DualStream has an explicit advanced modeling stage. The model is not similar with a psychoacoustic one and it uses quite new techniques which try to minimize both objective and subjective (perceptual) information loss (which I do NOT intend to describe further for the moment). The output from the model (qantization level) is in some way written as side information in the compressed file, for the decoder to use it without further analysis. This has the great advantage of a very fast decoder, backward (implicitly) and forward (older decoder plays newer version streams) compatibility and permits enhancing encoding (modeling phase) without disrupting the users.

There had been relatively some confusion about using --quality with --mode extra (probably thinking that it produces slightly better "quality"  than using only --quality), the starting point of the idea that DualStream is implacably slow. I did an example test to clarify this situation (using DualStream 4.507a2 and WavPack 3.97 and taken from the ofs.txt readme file):

There it is a short, speed illustrative example (test file used was
Yes - The Ladder - New Language, duration 9m19.1s):

No.    Bitrate  Enc.  Dec.  Command line used for encoding
1.  341.0 kbps  26.9x  31.4x  wavpack -h -b340
2.  345.9 kbps  12.8x  23.7x  ofs --mode fast --quality 3
3.  341.0 kbps    9.7x  16.7x  ofs --quality 3
4.  338.3 kbps    5.2x    8.0x  ofs --mode extra --quality 3
5.  244.0 kbps                      ofs --mode fast --quality 0
6.  241.0 kbps                      ofs --quality 0
7.  239.2 kbps                      ofs --mode extra --quality 0

Note that for (2),(3), and (4) compressed files decode to the same
bit-identical file, so there is absolutely NO sacrifice in quality
by using either file. The only difference is that the fast mode file
has it this case 5 kbps greater bitrate than normal mode, and extra
mode file has 3 kbps smaller bitrate than normal mode.

When speed is of primary concern, you may use --mode fast along with
the desired quality

When you have a very high speed computer and speed does not matter
much, you may use --mode extra along with the desired quality, which
will save a few more kbps compared to normal mode, especially at very
high quality settings (quality>=5). Using --mode extra with
quality<=3.0 generally shows no significant kbps savings (<=3 kbps)
and generally does not worth using (see positions (5), (6), and (7))


As a conclusion, OptimFROG DualStream is not as slow at it may first seem (probably because of the horrible encoding speed of the first alpha 4.507a), just 30% slower decoding at its fastest mode than WavPack...

Quote
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 ...

As I stated in the readme, I did not want to mix this new alpha (experimental) files with the highly stable OptimFROG standard. Also, .ofr extension was thought as and I think it should always remain so, lossless.
Future plug-ins will play both of the files (if you rename .ofr extension to .ofs they will be played by the ofs plug-in right now)
Regarding OptimFROG (DualStream) having too many options, I recommend limiting to the --mode option for the standard version and to the --quality option (eventually with --ans) for the DualStream version.
The default values for the parameters generally give the best overall performance (time and compression). These recommended "presets" are given at the end of the corresponding readme file.

@Speek: Great job, thank you very much for adding the front-end for DualStream...

@Den: Thank you very much for your detailed ABX testing and samples. There is the new advanced noise shaping  --ans mode for you to test  B), which does adapt noise to stay in the "shadow" of the signal.
This is similar to the Wavpack X option (-s-1 ... -s0 ... -s1) but unlike it, is not limited to a straight line balanced attenuation, as it may take more complex forms following the signal, and it adapts continuously to the music encoded. Using a fixed shaping option like WavPack's -s may present the danger of lowering the quality of some portions of the encoded file without knowing, because ANY constant value will produce worse results on some portions of the same file than the no shaping option.

I find very interesting the WavPack property of reencoding the decoded lossy file identically. However, the problem is that if you modify even one single sample of the file, it does completely lose this property (after the respective sample)... 

Thanks again for the your enthusiasm and encouraging. I'm waiting for your feedback...

Florin

OptimFROG DualStream (hybrid like) released!

Reply #28
Quote
There are great news regarding the latest OptimFROG DualStream, version 4.507a2:
- added advanced noise shaping at encoding (--ans) option, improving transparency, especially at lower bitrates
- 210% faster encoding in quality mode at bit identical results
- 220%-270% faster encoding in average bitrate mode at bit identical results


Excellent. Am downloading it as I type.  B)

Quote
@Den: Thank you very much for your detailed ABX testing and samples. There is the new advanced noise shaping --ans mode for you to test , which does adapt noise to stay in the "shadow" of the signal.
This is similar to the Wavpack X option (-s-1 ... -s0 ... -s1) but unlike it, is not limited to a straight line balanced attenuation, as it may take more complex forms following the signal, and it adapts continuously to the music encoded. Using a fixed shaping option like WavPack's -s may present the danger of lowering the quality of some portions of the encoded file without knowing, because ANY constant value will produce worse results on some portions of the same file than the no shaping option.


You're welcome. I'm grateful for your and David's efforts with these encoders, their transparency for transcoding from into other lossy formats is very, very useful in my daily music routine.

I believe automatic noise shaping is very important for these types of encoders. There is plenty of opportunity to hide the noise within and around the signal with most music, which as you say should significantly improve transparency if it can move around to stay hidden.    Blanket noise shaping can help if the signal has the bulk of its frequencies within a certain band, but most music isn't like that. The noise shaping should also cut in and out as required. Some samples don't need it after all. 

Quote
I find very interesting the WavPack property of reencoding the decoded lossy file identically. However, the problem is that if you modify even one single sample of the file, it does completely lose this property (after the respective sample)... 


It's a pretty neat party trick, but it has no use in the real world. It just gives some hints as to how the encoder works. I wouldn't have even known about it if it wasn't for something someone raised in a MPC thread    and David was kind enough to explain it. I thought that seeing as Wavpack did it and yours didn't, there was clearly some different stuff in there. 

Will do some testing and revert.

Den.


OptimFROG DualStream (hybrid like) released!

Reply #30
Quote
Blanket noise shaping can help if the signal has the bulk of its frequencies within a certain band, but most music isn't like that. The noise shaping should also cut in and out as required.

No noise shaping can also be interesting for editing purposes, because, as widely known  , editing can break some assumtions made at encoding. (Oh, and I assume that OFS quality is high enough for editing  )

-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.

OptimFROG DualStream (hybrid like) released!

Reply #31
OK, just completed another round of ABX tests using the --ans option.

Conducted tests on three samples, Ring Of Fire (intro) - Stan Ridgway, Bad Man's Song (intro) - Tears for Fears and Bittersweet Symphony (intro) - The Verve. (See a pattern here? I always find it easier to pick these encoders with intro, or solo instrument sections in the music.)

First, let's go for Ring Of Fire:

ofs --quality 0: (216 kpbs) ABX 15/15. Distinct hiss. Quite clear, and annoying.
ofs --quality 0 --ans: (201 kpbs) ABX 15/15. Similar to the above sample. 
ofs --quality 2: (276 kpbs) ABX 15/15. Hiss still there but much softer than either quality 0 case.
ofs --quality 2 --ans : (265 kpbs) ABX 15/15. Hiss, slightly less agiain, but virtually same as --quality 2.   
ofs --quality 3: (310 kpbs) ABX 15/15. Very slight hiss. Very subtle, but it's there.
ofs --quality 3 --ans: (301 kpbs) ABX 15/15. Again virtually identical to straight quality 3 sample, but at a lower bitrate? 
ofs --quality 4: (348 kpbs) ABX 14/15. Very subtle change in background noise cf orignal wav.
ofs --quality 4 --ans: (344 kpbs) ABX 15/15. Also very subtle. Sounds same as straight quality 4.

Interesting to note the decrease in bitrate, especially at the lower quality settings. At quality 0, 1, the --ans option provides a bitrate benefit, but no obvious quality gain. I guess the encoder aims for a certain S/N or quality target, so switching --ans on with --quality tends to push the bitrate down but still yields a similar quality. 

Next sample, badman intro.

ofs --quality 0: (250pbs) ABX 15/15. Some hiss, but not as obvious as other samples at same bitrate.
ofs --quality 0 --ans: (242 kpbs) ABX 15/15. Similar to the above sample, but slightly lower bitrate. 
ofs --quality 2: (323 kpbs) ABX 15/15. Very close, closer than score suggests. Very, very slight hiss.
ofs --quality 2 --ans : (318 kpbs) ABX 15/15. Again sounds virtually indentical to above but less bits used.

Didn't bother with quality 3 test, was keen to move on to next sample.

Bittersweet intro.

ofs --quality 3: (335 kpbs) ABX 15/15. Slight noise hugging around the notes.
ofs --quality 3 --ans: (330 kpbs) ABX 15/15. Again virtually identical to straight quality 3 sample, but at a lower bitrate.

I'm going to stop and repeat these samples with fresh ears tomorrow and use CBR, so that the effect of --ans is more obvious, rather than the encoder hitting the same quality with less bits. 

I was surprised at first to not be getting any obvious quality gain from --ans, but it would appear that when used with the --quality switch, ans simply allows it to hit the same quality with less bits, resulting in a very similar encoded file quality, with or with out ans.

Oh well, that's one way to kill an evening... 

Den.

PS: Also, this newer version has significantly faster encoding/decoding, thank goodness.  B)

OptimFROG DualStream (hybrid like) released!

Reply #32
Is it me or is using "--correction --ans" broken?

when i use these 2 together no correction file is produced.

full command line

ofs --quality 0 --correction --ans *.wav

OptimFROG DualStream (hybrid like) released!

Reply #33
Quote
Is it me or is using "--correction --ans" broken?


Yep, broken here too.   

Also tried changing the order of the switches, same result.

Den.

OptimFROG DualStream (hybrid like) released!

Reply #34
Quote
To eliminate the eternal problem of choosing between lossless and
near lossless


hehe.... eternal? i can just picture some cavemen arguing over the merits of lossless and near lossless encoding over a meal.

OptimFROG DualStream (hybrid like) released!

Reply #35
Quote
Is it me or is using "--correction --ans" broken?
when i use these 2 together no correction file is produced.


It would be broken if it crashed or produced incorrect results. But it is only disabled (because I did not implemented it yet  , as it must be treated differently). Don't worry, there will be correction files for every mode. But remember, it's just an alpha...

@den: Just curious. Any news with ABX results at average bitrate?

However, watch out as there are more interesting things to come...

Quote
hehe.... eternal? i can just picture some cavemen arguing over the merits of lossless and near lossless encoding over a meal.

Or maybe even better, talking about the need of audio compression... 

Thanks,
Florin

OptimFROG DualStream (hybrid like) released!

Reply #36
OK, some results for ABX tests with --ans. Overall a bit of a mixed bag with --ans.

I used three samples: Badman's Song, Bittersweet Symphony and Ring Of Fire.

First Badman's Song.

ofs --bitrate 275  : ABX 15/15. General background hiss. Not annoying, but there.
ofs --bitrate 275 --ans : ABX 15/15. Hiss still quite obvious, but sounds slightly different than without --ans. Not really any better.
ofs --bitrate 320 : ABX 15/15. General background hiss, and some noise ducking in and out around the tom toms. Couldn't really pick this at 275 because of general hiss.
ofs --bitrate 320 --ans : ABX 15/15  Very similar to above, but noise around the notes was slightly different, and perhaps a little harder to pick?
ofs --bitrate 400 : ABX 15/15. Still very slight noise trailing and coming in and out around tom toms. Quite hard to pick, but it's there.
ofs --bitrate 400 --ans: ABX 7/15, 8/15 Transparent.  B)

So with this sample, --ans didn't really help, or hinder the encoder's ability to get transparency until 400. 

Next Bittersweet Symphony

ofs --bitrate 275 : ABX 15/15. Blanket hiss. Cello line does not quite sound the same. (See below)
ofs --bitrate 275 --ans : ABX 15/15. Blanket hiss, no real improvement over straight up. Cello sound still different.
ofs --bitrate 320 : ABX 15/15. Less hiss, but still there. Slight noise around the notes.
ofs --bitrate 320 --ans : ABX 8/15.  9/15  8/15 B)  Transparent.
ofs --bitrate 400 : ABX 9/15, 10/15, 7/15. Transparent  B)
ofs --bitrate 400 --ans : ABX 9/15, 8/15. Transparent  B)

Here, --ans kicked in and made 320 transparent. Certainly offers a benefit over straight encode.
At 275, apart from the blanket hiss, the cello line was not quite as rich. This is difficult to explain, but when I listen to the wav, I get goosebumps on my arms and a shiver down my spine with this sample. At 275 with Wavpack and Dualstream, I don't get the goosebumps. The cello sounds the same, but it does not seem as rich and enjoyable to listen to.

Finally Ring of fire

ofs --bitrate 275 : ABX 15/15. Blanket hiss. Almost annoying.
ofs --bitrate 275 --ans : ABX 15/15. Blanket hiss. Slightly less annoying than above, almost as if the hiss has less of an "edge" to it.
ofs --bitrate 320 : ABX 15/15. Blanket hiss. Quite noticeable but not annoying. A hint of noise moving around with the pulsing distorted guitar.
ofs --bitrate 320 --ans : ABX 15/15. Hiss is still there, but is now clearly moving with the pulsing distorted guitar, and is actually now more noticeable than without ans. 
ofs --bitrate 400 : ABX 15/15. Hiss is still there, and some slight noise still around the guitar.
ofs --bitrate 400 --ans : ABX 15/15. Similar to above. Again, the hiss and some other noise is now moving slightly with the pulsing, and is very slightly more annoying than without.

This sample is generally less transparent even at higher bitrates because of the blanket background hiss generated, and with --ans, it moves around with the signal and is almost more noticeable. 

So there you have it. My general opinion of Dualstream so far is as follows:
1. It generally hits transparency at a lower bitrate than Wavpack lossy. The margin varies depending on the samples and bitrate range you are working within, but I often find that Dualstream @ 275 is similar to Wavpack lossy @ 320 in many cases. As you get up towards 400 kbits, they converge.
2. The quality mode of Dualstream is very consistent, ie if you choose quality 3, you will get a similar resulting file quality, for most samples, just some will use more bits than others. If you want consistent quality encodes, it is the way to go over --bitrate, or Wavpack lossy with it's fixed bitrate.
3. The --ans switch will often save a few bits in quality mode for similar sounding files. If you use it with CBR/ABR, it's performance depends on the sample. For melodic music it seems to work quite well. For unusual, pulsing type tones, or music with space between sharp attacks you may here some movement in the hiss. My gut feeling is to use for most encodes, but check it for yourself.

I was expecting --ans to give the most benefit at the lowest rates, but I found it was most effective in the 320 - 400 bitrate range, and at 275, there was enough general background hiss to disguise any real benefit from --ans.

One other disclaimer. I could ABX Dualstream readily because of its background hiss, just like I can with Wavpack lossy. I seem to readily pick this, where as others don't. You may find it transparent at lower rates than me. Like Wavpack lossy, I am not finding artifacts as such, just subtle changes in the background noise/hiss.

Hope this helps.  B)

Den.

OptimFROG DualStream (hybrid like) released!

Reply #37
Quote
However, watch out as there are more interesting things to come...


No........ Not more tests! 

Bring it on!  B)

Den.

 

OptimFROG DualStream (hybrid like) released!

Reply #38
Thank you, Ghido for your efforts!

Maybe the lossy modes of Optimfrog and Wavpack could be especially attractive to people conserving their LP collection (or similar) who fear the effects of psychoaccoustic compression, but want to conserve space. Maybe they also allow more postprocessing. This should be evaluated.