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: lossyWAV 1.4.2 Development (was 1.5.0) (Read 107904 times) previous topic - next topic
0 Members and 2 Guests are viewing this topic.

lossyWAV 1.4.2 Development (was 1.5.0)

Following the completion of the transcode from Delphi/ASM to C++ (thanks again to Tycho for initiating that process!!), a couple of bugs have required a small patch, so I'm using that as an excuse to start a new development thread....



Changelog:

lossyWAV v1.4.2 15/09/2016
Spoiler (click to show/hide)
lossyWAV -q X -a 4 -s h -A --feedback 2 --limit 15848 --scale 0.5 | FLAC -5 -e -p -b 512 -P=4096 -S- (having set foobar to output 24-bit PCM; scaling by 0.5 gives the ANS headroom to work)

lossyWAV 1.5.0 Development

Reply #1
Following the completion of the transcode from Delphi/ASM to C++ (thanks again to Tycho for initiating that process!!), a couple of bugs have required a small patch, so I'm using that as an excuse to start a new development thread....

Changelog:

lossyWAV v1.4.1a 19/05/2015
  • Cosmetic issue regarding display of time corrected (thanks Atak_Snajpera for bringing this to my attention);
  • Bug in input scaling corrected (not an issue if scaling was not used previously while processing).


"Added noise linear PCM bitdepth reduction method"

The changlog doesn't mention this...

Could you explain what has changes since 1.4.0 ? How exactly does 'noise linear PCM bitdepth reduction' work?

When I have some time left I will test and see the differences.

Happy to see there is still development going on.

lossyWAV 1.5.0 Development

Reply #2
"Added noise linear PCM bitdepth reduction method"

The changlog doesn't mention this...


A sub-title has been in place for every version of lossyWAV development - previously it has been "Added noise WAV bitdepth reduction method" in 1.3.0, 1.2.0 and 1.1.0.

Basically, rounding off LSBs introduces noise (shaped or otherwise) and lossyWAV only processes linear PCM audio in WAV / WAV64 or RF64 files - nothing has changed, except the description, slightly.
lossyWAV -q X -a 4 -s h -A --feedback 2 --limit 15848 --scale 0.5 | FLAC -5 -e -p -b 512 -P=4096 -S- (having set foobar to output 24-bit PCM; scaling by 0.5 gives the ANS headroom to work)

lossyWAV 1.5.0 Development

Reply #3
Oops, indeed...

PS. now I'm still interested in the extreme modes I mentioned earlier. Is there a way you could add an "over the top" mode so the artifacts become very clear?
I would like to see where the artifacts become clear and tune it unit I cannot hear any diffirence and then compare the size of that file to the xtraportable mode.

I hope something like that is easy to implement and you are willing to do that some time

I will use it in my car again. Had some issues (flac in general) but I have flashed a new version to it so maybe I can enjoy lossyflac there (in xxxxxtra portable mode  )

lossyWAV 1.5.0 Development

Reply #4
PS. now I'm still interested in the extreme modes I mentioned earlier. Is there a way you could add an "over the top" mode so the artifacts become very clear?
I would like to see where the artifacts become clear and tune it unit I cannot hear any diffirence and then compare the size of that file to the xtraportable mode.

I hope something like that is easy to implement and you are willing to do that some time


Anything is possible - if I do create such a beta version with more aggressive preset(s) then it will be time limited (as previous development versions have been).

It should be noted that Beta 1.4.1a is not time limited as the patches are considered to be final in and of themselves.
lossyWAV -q X -a 4 -s h -A --feedback 2 --limit 15848 --scale 0.5 | FLAC -5 -e -p -b 512 -P=4096 -S- (having set foobar to output 24-bit PCM; scaling by 0.5 gives the ANS headroom to work)

lossyWAV 1.5.0 Development

Reply #5
PS. now I'm still interested in the extreme modes I mentioned earlier. Is there a way you could add an "over the top" mode so the artifacts become very clear?
I would like to see where the artifacts become clear and tune it unit I cannot hear any difference and then compare the size of that file to the xtraportable mode.

I hope something like that is easy to implement and you are willing to do that some time


Anything is possible - if I do create such a beta version with more aggressive preset(s) then it will be time limited (as previous development versions have been).

It should be noted that Beta 1.4.1a is not time limited as the patches are considered to be final in and of themselves.


Is such a version will be made available, please let me know
I'd love to play with these settings/options !

PS. Maybe an extra setting for noisy environments like a car. Extra small files... I wonder how 192kbit/s lossyflac files sound like.

lossyWAV 1.5.0 Development

Reply #6
Is such a version will be made available, please let me know
I'd love to play with these settings/options !

PS. Maybe an extra setting for noisy environments like a car. Extra small files... I wonder how 192kbit/s lossyflac files sound like.


The "problem" with assuming that cars are noisy is that they are not permanently so - stop by the roadside and, even with the engine running, the noise is significantly reduced when compared to motorway speeds. Shut the engine off and there's even less noise. That said, even eXtraportable is probably a bit on the cautious side with respect to internal settings (at least it was meant to be).

I'll give it a go and revert, as and when I have something to offer in that regard.
lossyWAV -q X -a 4 -s h -A --feedback 2 --limit 15848 --scale 0.5 | FLAC -5 -e -p -b 512 -P=4096 -S- (having set foobar to output 24-bit PCM; scaling by 0.5 gives the ANS headroom to work)

lossyWAV 1.5.0 Development

Reply #7
Is such a version will be made available, please let me know
I'd love to play with these settings/options !

PS. Maybe an extra setting for noisy environments like a car. Extra small files... I wonder how 192kbit/s lossyflac files sound like.


The "problem" with assuming that cars are noisy is that they are not permanently so - stop by the roadside and, even with the engine running, the noise is significantly reduced when compared to motorway speeds. Shut the engine off and there's even less noise. That said, even eXtraportable is probably a bit on the cautious side with respect to internal settings (at least it was meant to be).

I'll give it a go and revert, as and when I have something to offer in that regard.


I'll keep an eye on this topic

Of course, in the car there can be quiet moments, but using an ultraportable flac conversion is choice, and when doing that you're aware of certain artifacts. Lots of people drive around with 64kbit/s music in their cars and enjoying them. These people rather have a thousand 64kbit songs on a stick than a hundred flac's. This could be something in between.

Overall, I cannot image it sounds thát bad

lossyWAV 1.5.0 Development

Reply #8
You can try the following with any lossyWAV quality setting you wish.

1. Run lossyWAV with the -C switch to generate a "correction" file (as well as a lossy processed file).
2. Load the original file and the correction file into a multitrack audio editor like Audacity so they play back at the same time.
3. Invert the correction file (optional, but best practice).
4. Increase the volume of the correction file until you can hear it above the original audio file.

There you have it: audible lossyWAV artefacts. Enjoy!

5. Decrease the volume of the correction file until you can no longer hear the artefacts.
If the gain is less than 0dB (i.e. negative; the correction file is now quieter than it was to start with) then the lossy encoding was probably not transparent to you.
If the gain is more than 0dB, then the lossy encoding was probably transparent to you, or you need to concentrate more carefully to hear and/or learn the artefacts.


It's not exactly what lossyWAV will do if you force the quality down, but it's close enough in terms of what it sounds like, and this is an easy way of learning the sound of lossyWAV artefacts.

This way you can also discover the sound and level of the artefacts at the various quality settings, by making them far louder (and hence audible). Unless you listen to the correction file on its own, or increase its level significantly in the above method, you aren't likely to hear what's done in standard or insane quality.

Cheers,
David.

lossyWAV 1.5.0 Development

Reply #9
You can try the following with any lossyWAV quality setting you wish.

1. Run lossyWAV with the -C switch to generate a "correction" file (as well as a lossy processed file).
2. Load the original file and the correction file into a multitrack audio editor like Audacity so they play back at the same time.
3. Invert the correction file (optional, but best practice).
4. Increase the volume of the correction file until you can hear it above the original audio file.

There you have it: audible lossyWAV artefacts. Enjoy!

5. Decrease the volume of the correction file until you can no longer hear the artefacts.
If the gain is less than 0dB (i.e. negative; the correction file is now quieter than it was to start with) then the lossy encoding was probably not transparent to you.
If the gain is more than 0dB, then the lossy encoding was probably transparent to you, or you need to concentrate more carefully to hear and/or learn the artefacts.


It's not exactly what lossyWAV will do if you force the quality down, but it's close enough in terms of what it sounds like, and this is an easy way of learning the sound of lossyWAV artefacts.

This way you can also discover the sound and level of the artefacts at the various quality settings, by making them far louder (and hence audible). Unless you listen to the correction file on its own, or increase its level significantly in the above method, you aren't likely to hear what's done in standard or insane quality.

Cheers,
David.


Thanks, but partially been there and have done that already. Not the amplification, but extracting the difference between the files. I used another way in audiacity bij subtracting the original vs the lossywav version. I only doubt the artifacts will be the same. I have done the same for ogg and mp3 compression. With ogg you can easily prove the difference files tells nothing about the sound quality. Even at very low bitrates the difference file sounds very quiet, but the compressed file sound awful. That means that listening to a separate difference file tells nothing about sound quality of the other file.

I hope Nick.C will come with a version that has some more options te play with. Would be really cool 

lossyWAV 1.5.0 Development

Reply #10
I didn't suggest listening to the difference/correction file on its own. I suggested adding it back to the original file, but louder. It doesn't accurately simulate what a lower quality mode would do, but it usually makes the artefacts from the actual quality setting you chose easier to hear, which seems to be what you need.

Cheers,
David.

lossyWAV 1.5.0 Development

Reply #11
I didn't suggest listening to the difference/correction file on its own. I suggested adding it back to the original file, but louder. It doesn't accurately simulate what a lower quality mode would do, but it usually makes the artefacts from the actual quality setting you chose easier to hear, which seems to be what you need.

Cheers,
David.


I understand what you meant adding it back to the file. I just wanted to mention that a difference file (on it's own) doesn't tell anything about the sound quality. Even af very low bitrates the differences are quite minimal.

It's just funny that adding the difference file to a 64kbit low quality recording makes it sound like CD quality again while the difference file on it's own just sound like a bit of noise.

I'm going to try the suggested method asap.

lossyWAV 1.5.0 Development

Reply #12
Hi Nick, David,

Just stopping by to say that it's great to see you still work on this project. I love the concept of lossyWAV, which is obviously why I initiated the translation into a more accessible language (but it was fun too).

Cheers,
Tycho.

lossyWAV 1.5.0 Development

Reply #13
Just stopping by to say that it's great to see you still work on this project. I love the concept of lossyWAV, which is obviously why I initiated the translation into a more accessible language (but it was fun too).


Good to hear from you! Still enjoying working with the codebase - trying to identify new tweaks to make that may allow more bits to be removed (while not too adversely affecting output quality....). The best bit is that C++ seems to be faster than the Delphi / ASM version!
lossyWAV -q X -a 4 -s h -A --feedback 2 --limit 15848 --scale 0.5 | FLAC -5 -e -p -b 512 -P=4096 -S- (having set foobar to output 24-bit PCM; scaling by 0.5 gives the ANS headroom to work)

lossyWAV 1.5.0 Development

Reply #14
lossyWAV beta 1.4.1b attached to post #1 in this thread.

Processing my 10 album test set using "-q M" results in a bitrate (FLAC -8, -b 512) of 241 kbit/s.
lossyWAV -q X -a 4 -s h -A --feedback 2 --limit 15848 --scale 0.5 | FLAC -5 -e -p -b 512 -P=4096 -S- (having set foobar to output 24-bit PCM; scaling by 0.5 gives the ANS headroom to work)

lossyWAV 1.5.0 Development

Reply #15
lossyWAV beta 1.4.1b attached to post #1 in this thread.

Processing my 10 album test set using "-q M" results in a bitrate (FLAC -8, -b 512) of 241 kbit/s.


Thanks a lot!

I'm at work now so cannot yet test, but can't wait to do that

Just spotted the 'agressive' and 'maniacal' options. Will test asap in my car system to see if I can spot differences in a noisy environment.







lossyWAV 1.5.0 Development

Reply #16
Just tried the new version

The aggressive mode is quite usable, but off course with audible noise, so not for hifi enviroments. For testing it is perfect, to check for weak points in a recording so you can set the appropriate quality mode.

I found that the maniacal comes close to 8 bit sound, but also a very good option to teach yourself to recognise the artifacts that LossyWav introduces.
The difference in bitrate between maniacal and aggressive if very small, but the difference in soundquality is quite huge. The same goes for aggressive vs extraportable, the difference in bitrate between those two is also quite small, but extraportable is close to transparent to me.

With the help of the extra 2 modes I finally found a way to hear differences between extraportable and the original, now that i know the details I have to listen to.

Thanks again

lossyWAV 1.5.0 Development

Reply #17
The aggressive mode is quite usable, but off course with audible noise,

Next you should try if your chosen lossyWav(+Flac) quality does sound actually better, in your car, than a lossy codec with a perceptible model (like LAME or (ogg)Vorbis). The latter will save considerably more space.

BTW. It's a pity that this thread about lossyWAV 1.5.0. isn't about 1.5.0 at all. Could we start again please? 
In theory, there is no difference between theory and practice. In practice there is.

lossyWAV 1.5.0 Development

Reply #18
The aggressive mode is quite usable, but off course with audible noise,

Next you should try if your chosen lossyWav(+Flac) quality does sound actually better, in your car, than a lossy codec with a perceptible model (like LAME or (ogg)Vorbis). The latter will save considerably more space.

BTW. It's a pity that this thread about lossyWAV 1.5.0. isn't about 1.5.0 at all. Could we start again please? 


I am aware that overall quality of MP3 and Vorbis at these bitrates is a better choice, but to understand the technology of LossyWav and the audibility of the artifacts there has to be some extreme settings. From that there are possibilities to further optimize by people who know how to do that.

I do not see why this has nothing to do with the development. Your comment doesn't either, so please start.... You first?

lossyWAV 1.5.0 Development

Reply #19
What's the difference between LossyWAV and WAVPack lossy? Besides the portability, is there any difference in quality?

WAVPack claims to not use any psychoacoustic modelling.

Also great work on lossyWAV, saved me lots of space. Huge pain to use, shame there's no way to use in dBPoweramp.

lossyWAV 1.5.0 Development

Reply #20
What's the difference between LossyWAV and WAVPack lossy? Besides the portability, is there any difference in quality?

WavPack lossy and lossyWAV are similar in that they both save space by changing the quantization resolution. LossyWAV can only do this in increments of 1 bit (6 dB), but uses some sort of psychoacoustic analysis to determine the optimum number of integer bits to remove at each instant. WavPack lossy can vary the quantization in essentially infinite steps, but does not have psychoacoustic analysis to drive the reduction and instead just has a user-specified target bitrate that it holds (technically, this is only a limitation of the implementation; the format supports more complex scenarios).

Both WavPack lossy and lossyWAV have noise shaping to make the quantization noise less audible, but lossyWAV's is much more sophisticated. On the other hand, WavPack lossy can use joint stereo which helps mask the quantization noise by moving it spatially instead of spectrally.

Given all this, my understanding is that WavPack lossy achieves similar quality to lossyWAV at a somewhat lower bitrate. Of course, the genius of lossyWAV is that the resulting FLAC files are completely compatible with all existing FLAC players (I'm not sure I understand the point of using lossyWAV with anything besides FLAC). Unfortunately, this compatibility puts some hard restraints on some of the techniques that could be used to improve the quality.

lossyWAV 1.5.0 Development

Reply #21
I also see the usefulness only with FLAC. FLAC usage is the big plus.
But what quality restraint should come from FLAC usage? We have a blocksize restraint, but this is not about quality. It's also not about FLAC but about the fact that blocksize has to be small in order to have a significant bitdepth reduction for many blocks.
The intrinsic idea of bit depth reduction has this as a consequence, at least for any following procedure which makes use of a fixed blocksize.
lame3995o -Q1.7 --lowpass 17

lossyWAV 1.5.0 Development

Reply #22
But what quality restraint should come from FLAC usage? We have a blocksize restraint, but this is not about quality. It's also not about FLAC but about the fact that blocksize has to be small in order to have a significant bitdepth reduction for many blocks.

I didn't mean to imply that the restraints had anything to do with FLAC. The restraints (like no joint stereo) come from the fact that the lossyWAV PCM output must be playable as-is. But as you mention it, yeah, the fixed block size doesn't help either.


lossyWAV 1.5.0 Development

Reply #23
I'm not sure I understand the point of using lossyWAV with anything besides FLAC

I also see the usefulness only with FLAC. FLAC usage is the big plus.

The fact that FLAC is the most popular lossless project doesn't mean that there are no other lossless codecs to choose from.
Let me remind you gentlemans that at some point of TAK development there were two codecs inside the TAK - default and another one specially tuned for LossyWav processed files.
Here is the little test.

Code: [Select]
Coldcut - Let Us Play (1997)
Used as image, 786 235 874 bytes, LossyWav 1.4.0 -q S

                                              enc.size      enc.time     enc.mem
                                            -----------     ---------    --------
flac 1.3.1           -8 --blocksize=512     241 393 727     38.093s      13MB
takc 2.1.0 Beta3b    -e -p4m -tn4 -cLW      215 280 441     29.765s       5MB

So TAK gives 10.8% better compression, takes less memory and runs 21.9% faster. So I can't even imagine a hypothetical situation where I should stick with FLAC for LossyWav files.

lossyWAV 1.5.0 Development

Reply #24
TAK is an alternative,  yes.
But a lossy codec is used for portable devices usually, and for this FLAC is supposed to be the codec of choice for most users.
BTW,  is 10% better compression typical for compressing lossyWAV files? This would be a remarkable improvement over FLAC IMO.
lame3995o -Q1.7 --lowpass 17