Help - Search - Members - Calendar
Full Version: wavPack lossy anti-problem strategy
Hydrogenaudio Forums > Lossless Audio Compression > WavPack
halb27
After experiencing the keys samples given by shadowking it is clear one more time that the most crucial scenario to wavPack lossy is energy rich high frequency being shifted down in frequency by lossy mode's added noise. This noise can be audible in an ugly way that doesn't sound like noise but like a distortion or crude inaccuracy.

Positive noise shifting reduces this problem significantly but increases the chances for audible 'normal' hiss.
But the higher the bitrate/quality setting, the less is there the chance for 'normal' hiss and as for that the more extreme positive noise shifting can be.

With my 32 kHz sampling frequency 350 kbps means a considerably better accuracy per sample than when using 44.1 kHz. As for that I tried an extreme positive noise shift of s0.8 which delivered a very good quality with keys. I searched a lot for samples with audible added hiss for this setting but didn't find one. Anyway for increased security I use 380 kbps from now on.

Not many users like a resampling to 32 kHz like me. 44.1 kHz users can use a similar positive noise shift when allowing for a similar precision per sample (450...500 kbps).

@ Porcupine:
wavPack lossy 500 kbps s0.8 or similar may be a very good solution to those extreme samples you have fear of.

Anyway I think everybody who uses a sample accuracy higher than the usual one (that is 300...400 kbps for 44.1 kHz sampled tracks) can take profit from positive noise shifting.
bryant
Hi halb27,

At very high bitrates it may be that -s0.8 is a better choice than the default, but definitely not at lower rates where the high-frequency noise becomes more audible.

However, this discussion reminds me that I did a special version that automatically shifts the noise shaping up when there's lots of HF material in the sample. It was kind of a hack, and can't make correction files, but it still should work fine now and I believe it helped considerably on the HF problem samples. It won't help on the tonal samples, but I believe that those are pretty much all transparent by 400 kbps, right?

This was discussed here (and there's a link to the code):

http://www.hydrogenaudio.org/forums/index....st&p=326754

This could certainly be quickly ported into the current code if it has any use.
shadowking
QUOTE(halb27 @ Jun 22 2007, 18:27) *


Not many users like a resampling to 32 kHz like me. 44.1 kHz users can use a similar positive noise shift when allowing for a similar precision per sample (450...500 kbps).

@ Porcupine:
wavPack lossy 500 kbps s0.8 or similar may be a very good solution to those extreme samples you have fear of.



I doesn't quite compute with me. Wavpack + correction files I understand it from a useability point of view. Wavpack standalone is perfect with bitrates like 2bdecided's preprocessor - no hacks required at all. I assume one is after very high quality without mp3 limitations. At 300~400k range Nero AAC and AoTuv is probably a better quality controled solution. Assuming mp3 has unsolved pre echo amongs several flaws, hybrids need sometimes very high bitrate to overcome a limitation of noise then AAC and vorbis don't have either of these. A flaw will be pathalogical or a bug rather than a pattern of behaviour. I think it will be much harder to find abxable samples for nero AAC 320k (nearly impossible in real life) than wavpack / dualstream 320k. You will have high security for transcoding too.
shadowking
QUOTE(bryant @ Jun 24 2007, 09:03) *

Hi halb27,

At very high bitrates it may be that -s0.8 is a better choice than the default, but definitely not at lower rates where the high-frequency noise becomes more audible.



David I think you are right. Porcupine even gave me a sample where *manual* positive shifting worsens the problem.

I still think -ans is an advantage in these 'middle' bitrates vs drawbacks for wavpack and dualstream. In a previous thread I pointed out that there will be enough masking at 350k that one wouldn't normally hear -ans 'working' - at the same time extreme cases will benefit greatly.

Overall the auto noise shaping will bring added stability and robustness for the bitrates most people will use. If this auto shaping can be further tuned on demand without breaking the decoder each time, then i would incorporate it asap into a release.
halb27
QUOTE(bryant @ Jun 24 2007, 01:03) *

At very high bitrates it may be that -s0.8 is a better choice than the default, but definitely not at lower rates where the high-frequency noise becomes more audible.

Sure. Meanwhile I found a sample (Keith Jarrett's Köln Concert Part I) where I could spot added hiss also with my high per sample accuracy setting (however it's so subtle that it's negligible. Moreover now that I finally got my replacement battery for my DAP I'm reconsidering using -h, and 32kHz -hb320x5s0.8 is fine also with the Köln Concert spot).
QUOTE(bryant @ Jun 24 2007, 01:03) *

However, this discussion reminds me that I did a special version that automatically shifts the noise shaping up when there's lots of HF material in the sample....
This could certainly be quickly ported into the current code if it has any use.

Hm... I ran into some problems with your ANS version before and because of this it was buried in my mind. However when using high accuracy per sample as I do now it may be well worth considering again.
So I tried it, and I'm pretty happy with it using 32 kHz -fb380x6. It does overcome the keys problem. Moreovever it's fine with all the problematic samples I tried. Only exception is badvilbel - not bad but abxable, worse than 32 kHz -fb380x6s0.8. But I don't care about badvilbel. Trumpet is a bit on the edge too telling from my quick testing but requires more careful testing to be real sure (got at 7/10 and have the impression that also -fb380x6s0.8 isn't totally fine).

Anyway a more intelligent approach like your ANS is to be preferred over a dumb -s0.8.

So I'd be pleased if you could build a corresponding ANS version for your current encoder. I wouldn't care that it works only in lossy mode.
But can you provide for a user option for setting a lower (and maybe upper) limit for the noise shift? I have a feeling that your ANS improves from restricting noise shaping going too low. May be that's wrong, but we can try out.

Like shadowking does I'm looking forward to any progress of your ANS mode.
QUOTE(shadowking @ Jun 24 2007, 10:15) *

... At 300~400k range Nero AAC and AoTuv is probably a better quality controled solution. ... I think it will be much harder to find abxable samples for nero AAC 320k (nearly impossible in real life) than wavpack / dualstream 320k. You will have high security for transcoding too.

Sure there are good solutions with transform codecs as well. I was pretty happy even with my FhG mp3 CBR 192 encodings as a rule. But I have made up my mind for wavPack lossy. I like the idea of a simple signal path.
bryant
Alright, I'll try to grab that old code and get it into a new experimental release, perhaps with some adjustable parameters. As I remember that mode could interact funny with the -x modes, so I'll try to fix that also.

Just to be clear, this will not break any decoders, but will only be applicable to lossy mode. The difficult project is incorporating this into the existing correction file format, and that will have to wait until less busy days for me... smile.gif
Jimpin
Good, please update the Adobe Audition filter too.
halb27
QUOTE(bryant @ Jun 28 2007, 04:06) *

Alright, I'll try to grab that old code and get it into a new experimental release, perhaps with some adjustable parameters. As I remember that mode could interact funny with the -x modes, so I'll try to fix that also. ...

Thank you very much. I'm looking forward to it.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.