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: WavPack 4.4 alpha 2 for Windows (Read 170301 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

WavPack 4.4 alpha 2 for Windows

First, I'd like to thank Guru and the Mods for the dedicated WavPack forum. Very cool! 

Despite the fact that it seems pretty quiet lately on WavPack development, there has actually been a lot going on. Today I'm posting another 4.4 alpha that has some major changes. I am also finishing up a reorganization of the source code and the creation of an official library and API, including a Windows dll.

The new alpha has a completely new high mode. Its decoding complexity falls just about halfway between the default mode and the old high mode, but its compression is closer to the high side. The old high mode is still available and is called very high (-hh).

This new mode is particularly suited for use on the iPod using Rockbox. The old high mode files play, but use so much CPU to decode that there isn't enough left over to perform audio effects (like EQ) or even allow a peakmeter on the display. There are plans to eventually use both CPU cores on Rockbox, but I think this new mode is a much better compromise between decoding demand and compression (even on the PC).

Also, the extra mode is completely redone. The old mode was useful for creating the smallest possible WavPack file for a given quality, but was so slow that it was useless for most applications (and the -x levels that were fast enough to be usable usually didn't do anything). The new extra mode has only three levels (1 to 3) and they are much faster than before, although they can't quite match the old mode's ultimate compression ratio. But, just using -x by itself (which is equivalent to -x1) makes such an improvement with so little extra processing that I am thinking of having it always on (once it's a little more optimized).

This version uses different decorrelation filter tuning in all modes, so don't be surprised if you see differences between this and the previous. For my corpus this results in a small average improvement, but there are certainly files that do worse (although with -x now usable all the time, this shouldn't be an issue).

I have not incorporated any of the MMX enhancements, and in fact have not done any optimization on this yet, so I expect some more speed gains (and the new -x mode is a good candidate for threading).

This is an alpha (and not well tested either), so please compress responsibly.

Any feedback or results are very much appreciated. 

http://www.wavpack.com/wavpack44a2.zip

WavPack 4.4 alpha 2 for Windows

Reply #1
Are you planing to add MMX optimizations in WavPack 4.4 final or some later version? These unofficial tests with 4.3 version and MMX optimizations where quite promising.

WavPack 4.4 alpha 2 for Windows

Reply #2
Thanks David, great news!

Is the old -x6 switch still somehow accessible?

Also, any progress towards a single file encoder/decoder yet?
WavPack 5.7.0 -b384hx6cmv / qaac64 2.80 -V 100

WavPack 4.4 alpha 2 for Windows

Reply #3
Wow, David this sounds good. I am going to play with this alpha during the week to test lossy and lossless modes.

WavPack 4.4 alpha 2 for Windows

Reply #4
Here's my results... (for a 40 min. album) (Original Size = 412,937 KBs)
Quote
Options - File Size - Encode Time

-hhmx3 - 284,519 KBs - 722.97 secs
-hhmx  - 284,673 KBs - 227.89 secs
-hhm  - 284,882 KBs - 132.14 secs

-hmx3  - 285,292 KBs - 478.22 secs
-hmx  - 285,473 KBs - 200.67 secs
-hm    - 285,677 KBs - 101.63 secs

-mx3  - 287,386 KBs - 315.95 secs
-mx    - 287,636 KBs - 110.19 secs
-m    - 288,851 KBs -  86.92 secs

-m is in there because I always use it.

-x does have a nice effect on the normal setting, but it's not good with either high settings.  I think it's better to have it off by default, unless using either high setting would automatically turn it off.  The new high setting does seem nice, but my PC handles the old high setting perfectly, so i'm probably gonna stick with that.  I can see how the new high setting would be a great option for some people though.

Instead of changing the old high setting to "very high", couldn't you name the new one something different such as "new high" or "high new" kinda like OptimFrog?  Then again, I really like how "very high" sounds.  Only thing is getting used to -hhm instead of -hm, but I wouldn't exactly call that a problem.

I'm looking forward to see how the newest version turns out in the end.  Thanks for all your work on WavPack.

WavPack 4.4 alpha 2 for Windows

Reply #5
i did a quick and dirty test of decoding speed with foobar

-h == 99.999x
-hh == 77.003x

CPU = AMD 64 3000+ @ 2.3

nice work
Who are you and how did you get in here ?
I'm a locksmith, I'm a locksmith.

WavPack 4.4 alpha 2 for Windows

Reply #6
From brief testing its good to see that -x2 is doing something as opposed to the old -x2, and its not that slow. -x or -x1 is doing only auto-joint stereo like v4.31 from what I can tell. This -x1 should be speed optimised as I find it very useful in lossy mode. Currently I use -hx1 in v4.31 MMX. The new high is also working better than normal mode -x so one can use it instead of -hh and still get comptitive compression and lossy quality and quick decoding for devices.

I wil do more tests, but this looks like a step in the right direction. David you are the man !

WavPack 4.4 alpha 2 for Windows

Reply #7
What is the function of -x1 in 4.4 ? Looks like its doing some extra compression as well as auto-M/S ?

I compressed a file with 4.31 and 4.4

4.31 -h = 971 k

4.31 -hx1 = 971 k

4.4a -hh = 974 k

4.4a -hhx1 = 969 k

Ok, I get it: now -x1 is also doing extra compression and its quicker than the old -x1. I also think that defaulting an optimized -x1 would be a good idea.

WavPack 4.4 alpha 2 for Windows

Reply #8
Are the source code available for download?
That would be helpful for us non-Windows users!


WavPack 4.4 alpha 2 for Windows

Reply #10
I think he meant the sources for 4.4.
I'm on a horse.

WavPack 4.4 alpha 2 for Windows

Reply #11
I could have thought a bit before posting.... but the sources do not seem to be online.

WavPack 4.4 alpha 2 for Windows

Reply #12
Always good to see that lossless codecs are still improving. Keep up the good work bryant, and I might give up ape in favor of wavpack

WavPack 4.4 alpha 2 for Windows

Reply #13
I just tried 4.4 hx3b288s0 and hx3b352s0 on my standard problem samples trumpet, herding_calls and harp40_1 in comparison to 4.31 hx6bxxxs0.

4.4 is great. With 4.31 I could abx trumpet with hx6b288s0 at 9/10 and with hx6b352s0 at 8/10.
With 4.4 hx3s0 and same nominal bitrates I could not reliably abx.

4.4 hx3 better than 4.31 hx6? Will try again tomorrow, I'm pretty tired now.

Great work, David. Thanks a lot .
lame3995o -Q1.7 --lowpass 17

WavPack 4.4 alpha 2 for Windows

Reply #14
I wonder how the existing decoders are working when fed with this new high mode. Decompression must be different to the old high mode cause otherwise decompression performance couldn't be better.

But I guess I don't have to worry about compatibility.
lame3995o -Q1.7 --lowpass 17

WavPack 4.4 alpha 2 for Windows

Reply #15
4.4 hx3 better than 4.31 hx6? Will try again tomorrow, I'm pretty tired now.

Great work, David. Thanks a lot .


You can get a rough idea by the lossless compression ratios - the one with the better compression should have the best s/n ratio. A small difference of say +- 5 kbit won't make much difference and you can also use -n switch to get the average noise report.

WavPack 4.4 alpha 2 for Windows

Reply #16
4.4 is great. With 4.31 I could abx trumpet with hx6b288s0 at 9/10 and with hx6b352s0 at 8/10.
With 4.4 hx3s0 and same nominal bitrates I could not reliably abx.

You perform an ABX test on a lossless audio codec? 

WavPack 4.4 alpha 2 for Windows

Reply #17
4.4 is great. With 4.31 I could abx trumpet with hx6b288s0 at 9/10 and with hx6b352s0 at 8/10.
With 4.4 hx3s0 and same nominal bitrates I could not reliably abx.

You perform an ABX test on a lossless audio codec? 
remember that WavPack has a hybrid 'recoverable-lossy' mode. I think halb27 meant he ABX-ed the lossy WavPack stream/fork/whatever

WavPack 4.4 alpha 2 for Windows

Reply #18
Thanks everybody for your feedback; looks like no serious blow-ups yet... 

askoff:
I am definitely interested in the MMX enhancements! I really want to get 4.4 out quickly, so it won't be before then, but I want to get it into SVN right after that. I haven't looked into that code for a while, but the last time I looked there wasn't anything for decoding, which I'd also like.

DARcode:
The old -x mode is no longer available. However, I do plan on merging some of the features of the old -x mode into the new one for those weird (mostly artificial) samples that really benefit from generating filters from scratch (which is what the old version did). This will probably end up being -x4, or something. Sorry, the combined program is still rather low on the list...

DrazardX:
I thought about calling the new mode "new high", but I never liked names like that because they don't tell you where the mode fits with the other modes (e.g. is "new high" higher or lower than "high"?). And, fact is, I'd rather have people who don't any better simply use the new mode so I don't see them post that their WavPack files sometimes skip on the iPod! I haven't decided about the default, and even if I make some modes use "extra" by default you'll always be able to turn it off with -x0. BTW, welcome to HA! 

halb27:
I would be surprised if 4.4 hx3 is better than 4.31 hx6 on lossy mode! However, in the process of doing this I did discover a bug that would cause unbalanced noise when lossy mode switches on and off joint stereo (which the -x mode does). Perhaps you are hearing that. Oh, and I guess I forgot to mention that all this stuff is all backward compatible. I haven't used up all the WavPack 4.0 format functionality yet...

shadowking:
This new "extra" works very differently than the old version. For each mode I have 256 decorrelation filters which are organized into a binary search tree. So, I simply search the tree testing the current best filter against a new from the table. For -x1 I always compare against one other filter for each block, for -x2 I compare against 3 others and -x3 always searches through the whole tree (which takes 8 compares). So, unlike the old mode where different levels actually did different things, in this mode different levels simply so more of the same thing. Since joint stereo is one characteristic of the filter, that simply gets indirectly factored in. BTW, the -j[n] switch currently will not do anything in the new -x mode; haven't quite figured out what to do for that.

I am getting close to actually working on that smart noise shaping that we talked about a long time ago. In the meantime, do you think it would be worthwhile to include that prototype mode in a new release even considering that it can't work with correction files? Do you still use it when creating pure lossy files?

krmathis:
My next project is to merge all these changes into the new common source in SVN. As soon as I do that I will post so everyone can use it (I am actually becoming a pretty avid Ubuntu user myself).

BTW, if anyone is interested in reading a little more about how WavPack works internally, I finished up an article on it for an upcoming book. Here's the excerpt:

http://www.wavpack.com/WavPack.pdf

Thanks again everyone!

WavPack 4.4 alpha 2 for Windows

Reply #19
4.4 is great. With 4.31 I could abx trumpet with hx6b288s0 at 9/10 and with hx6b352s0 at 8/10.
With 4.4 hx3s0 and same nominal bitrates I could not reliably abx.

You perform an ABX test on a lossless audio codec? 

As you can see from the parameters I use wavPack as a very high quality lossy encoder.

halb27:
I would be surprised if 4.4 hx3 is better than 4.31 hx6 on lossy mode! However, in the process of doing this I did discover a bug that would cause unbalanced noise when lossy mode switches on and off joint stereo (which the -x mode does). Perhaps you are hearing that. ...

As from former tests I expected herding_calls to be the most critical among the samples I tested. And I was very surprised that I could abx trumpet at high bitrate with 4.31hx6. There's a little 'blip' (hard to describe) within the critical passages. It's very subtle, but it's there. With 4.4hx3 I couldn't hear it. Maybe it's caused by the bug you mentioned.

As I will not use 4.4 in alpha state for productive purposes: can you do a correction for 4.31 concerning this bug?
lame3995o -Q1.7 --lowpass 17

WavPack 4.4 alpha 2 for Windows

Reply #20
Thanks everybody for your feedback; looks like no serious blow-ups yet... 


shadowking:

I am getting close to actually working on that smart noise shaping that we talked about a long time ago. In the meantime, do you think it would be worthwhile to include that prototype mode in a new release even considering that it can't work with correction files? Do you still use it when creating pure lossy files?


I used correction files for dvd archiving to this point, so I didn't use it much. Now I think I'll only keep them only for certain albums. I reckon it won't hurt to put in a switch for it if the real thing won't make it into 4.4 final .. that way people who don't use correction files can still use it. If you think that it will be ready by 4.4x or 4.5 then that's fine too.

 

WavPack 4.4 alpha 2 for Windows

Reply #21
krmathis:
My next project is to merge all these changes into the new common source in SVN. As soon as I do that I will post so everyone can use it (I am actually becoming a pretty avid Ubuntu user myself).

Nice to see you becoming a GNU/Linux user.
This hopefully mean you will be able to share alpha source code as well, so non-Windows users can take part of the testing as well. Which mean even more testers and feedback! 

Are the WavPack SVN server a public one? If so, where can I find it?
I don't see it mentioned on the website, and the SourceForge project site only list an old CVS repository (18 months since last checkin). https://sourceforge.net/cvs/?group_id=74831

Thanks in advance!

As you can see from the parameters I use wavPack as a very high quality lossy encoder.
I understand.
"hx6b352s0" did (does) not look like a parameter to me, so I did not catch it.

WavPack 4.4 alpha 2 for Windows

Reply #22
I redid my test with -b352hx3s0 on trumpet, herding_calls, harp40_1, and added Atemlied (which I could easily abx at 288kbps) and badvilbel (which should be abxable up to the 4xx kbps range).

Except for badvilbel I could not abx these samples, and even badvilbel was acceptable.

I will use 4.4 b352hx3s0 in the future when it's final.

Thanks again, David.
lame3995o -Q1.7 --lowpass 17

WavPack 4.4 alpha 2 for Windows

Reply #23
Maybe it's a stupid question, but why the WavPack encoder is not able to add Replay Gain tag directly without using wvgain.exe (just like FLAC does) ?
Opus 96 kb/s (Android) / Vorbis -q5 (PC) / WavPack -hhx6m (Archive)

WavPack 4.4 alpha 2 for Windows

Reply #24
Maybe it's a stupid question, but why the WavPack encoder is not able to add Replay Gain tag directly without using wvgain.exe (just like FLAC does) ?

I have foobar engrave the replay gain info. No problems.
lame3995o -Q1.7 --lowpass 17