IPB

Welcome Guest ( Log In | Register )

lossyWAV 1.3.0 Delphi to C++ Translation Thread, Added noise linear PCM bitdepth reduction method.
Nick.C
post Aug 22 2012, 19:27
Post #1


lossyWAV Developer


Group: Developer
Posts: 1721
Joined: 11-April 07
From: Wherever here is
Member No.: 42400



And he's off!

Tycho has kindly started the translation of lossyWAV from Delphi to C++.

I'll need to learn it to be able to contribute meaningfully....

Changelog:

lossyWAV beta 1.3.0m 25/03/2013
  • experimental parameter --feedback introduced to modify bit removal process to include an added noise check. Seems to work well in conjunction with "--maxclips 0" or "--maxclips 1" at lower quality settings.
lossyWAV beta 1.3.0m 25/03/2013
  • Removed experimental new parameter --noisebtr.
  • --interp-curve reinstated.
  • experimental parameter --altfilter introduced to modify adaptive noise shaping method.
lossyWAV beta 1.3.0k3 08/03/2013
  • Introduction of experimental new parameter --noisebtr which applies a new method of detemining bits to remove. Well, I say new - SebastianG did point me in this direction *quite* some time ago. Basically, the creation of the noise shaping filter for each channel outputs a numerical value that I have finally used to determine the number of bits to remove from that codec-block channel. It even works on (non-clipping) tonal samples. It should be noted that this is a complete departure from the original method - no searching for the lowest signal in the FFT output bins. Limited tuning so far - however the presets should give approximately the same resultant FLAC output bitrate from --portable up to --insane. Below --portable, I have made the quality settings more aggressive and --extraportable results in a FLAC output bitrate of approximately 283kbit/s. This is quite a drop from the 308 to 311kbit/s previously. If anyone is prepared to spend the time on some testing, that would be very much appreciated. I think that --extraportable is a bit *too* aggressive at the moment, but that is more of a feeling than anything else.
  • --interp-curve removed at this time.
  • beta 1.3.0k2 issued due to omission of --noisebtr from text output parameter list (used in FACT chunk and log file).
  • beta 1.3.0k3 issued due to last minute fix for bits-per-sample not equal to 16.
lossyWAV beta 1.3.0j 08/02/2013
  • Further experimental modification to the adaptive noise shaping routine, backed off a little but now works well with >96kHz samplerate
lossyWAV beta 1.3.0i 30/01/2013
  • Further experimental modification to the adaptive noise shaping routine. NB: Testing has shown that this does not work well with >96kHz samplerate!!.
  • Bug-fix: now processes >16-bit properly - unexpected integer overflow discovered where floating point was thought to be used.
lossyWAV beta 1.3.0h 23/01/2013
  • Further experimental modification to the adaptive noise shaping routine. FLAC encode (-5 -b 512) from "-q X -i" results in 302kbit/s (compared to 309 kbit/s for vanilla --extraportable).
lossyWAV beta 1.3.0g 18/01/2013
  • Experimental modification to the adaptive noise shaping routine, new parameter -i, --interp-curve; adds optional cubic curve interpolation in lieu of linear interpolation when determining target spectral shape for each noise shaping filter. When encoded in FLAC (-5 -b 512) using the --extraportable preset, my 10 album test set results in 304kbit/s (compared to 309 kbit/s for vanilla --extraportable).
lossyWAV beta 1.3.0f 26/10/2012
  • First attempt at FFMPEG compatibility;
lossyWAV beta 1.3.0e 24/09/2012
  • More rounding issues found and amended;
  • Output is hopefully bit identical with reference output (2nd attempt....);
lossyWAV beta 1.3.0d 18/09/2012
  • Bit removal chain error identified: C++ inherently rounds 0.5 differently from Delphi, Delphi uses Banker's rounding (round to even);
  • Banker's rounding implemented;
  • Output is now bit identical with reference output (caveat: from testing so far). [edit] Found not to be at --portable. Bug hunting continues.... [/edit]
lossyWAV beta 1.3.0c 15/09/2012
  • Piped I/O implemented - please report problems;
  • Most bugs in bit-removal chain removed - output not yet bit identical;
  • Internal FFT routines optimised.


This post has been edited by Nick.C: Mar 30 2013, 15:37
Attached File(s)
Attached File  lossyWAV_beta_1.3.0n.zip ( 337K ) Number of downloads: 62
 


--------------------
lossyWAV -q X -i | FLAC -8 ~= 295kbps
SGS III (Rooted) + 64GB
Go to the top of the page
+Quote Post
 
Start new topic
Replies
Nick.C
post Jan 20 2013, 22:44
Post #2


lossyWAV Developer


Group: Developer
Posts: 1721
Joined: 11-April 07
From: Wherever here is
Member No.: 42400



I did a bit of testing with my 55 problem sample set (12:43.933 of audio) processed using "-q X" and got the following results:

CODE
+------------------+---------------------+
| FLAC | Relative |
| Encoder +----------+----------+
| Setting | Size | Time |
+------------------+----------+----------+
| -8 -m -r 8 -p | 97.66% | 2187% |
| -8 -r 8 -p | 97.66% | 2089% |
| -8 -e -r 8 -p | 97.66% | 2094% |
| -8 -e -m -r 8 -p | 97.66% | 2105% |
| -8 -e -p | 97.66% | 1599% |
| -8 -p | 97.66% | 1615% |
| -8 -m -p | 97.66% | 1616% |
| -8 -e -m -p | 97.66% | 1634% |
| -6 -e -m -r 8 -p | 98.06% | 1689% |
| -7 -e -r 8 -p | 98.06% | 1694% |
| -6 -e -r 8 -p | 98.06% | 1695% |
| -7 -e -m -r 8 -p | 98.06% | 1697% |
| -4 -e -m -r 8 -p | 98.06% | 1701% |
| -7 -r 8 -p | 98.06% | 1705% |
| -7 -m -r 8 -p | 98.06% | 1710% |
| -5 -e -m -r 8 -p | 98.06% | 1723% |
| -5 -e -r 8 -p | 98.06% | 1799% |
| -7 -e -p | 98.06% | 1215% |
| -6 -e -p | 98.06% | 1220% |
| -6 -e -m -p | 98.06% | 1222% |
| -7 -m -p | 98.06% | 1222% |
| -7 -e -m -p | 98.06% | 1224% |
| -7 -p | 98.06% | 1225% |
| -5 -e -p | 98.10% | 983% |
| -5 -e -m -p | 98.10% | 1020% |
| -4 -e -m -p | 98.18% | 825% |
| -8 -r 8 | 98.36% | 368% |
| -8 -m -r 8 | 98.36% | 370% |
| -8 -e -m -r 8 | 98.36% | 374% |
| -8 -e -r 8 | 98.36% | 379% |
| -8 -e -m | 98.36% | 249% |
| -8 -m | 98.36% | 249% |
| -8 | 98.36% | 250% |
| -8 -e | 98.36% | 250% |
| -3 -e -m -r 8 -p | 98.69% | 1449% |
| -6 -e -m -r 8 | 98.80% | 294% |
| -7 -e -r 8 | 98.80% | 295% |
| -7 -r 8 | 98.80% | 295% |
| -5 -e -r 8 | 98.80% | 296% |
| -7 -e -m -r 8 | 98.80% | 296% |
| -6 -e -r 8 | 98.80% | 296% |
| -4 -e -m -r 8 | 98.80% | 298% |
| -7 -m -r 8 | 98.80% | 298% |
| -5 -e -m -r 8 | 98.80% | 318% |
| -6 -e -m | 98.81% | 174% |
| -7 -e -m | 98.81% | 175% |
| -6 -e | 98.81% | 176% |
| -7 -m | 98.81% | 177% |
| -7 -e | 98.81% | 183% |
| -7 | 98.81% | 189% |
| -3 -e -m -p | 98.82% | 605% |
| -5 -e | 98.86% | 127% |
| -5 -e -m | 98.86% | 138% |
| -4 -e -m | 98.95% | 105% |
| -3 -e -m -r 8 | 99.40% | 261% |
| -6 -m -r 8 -p | 99.42% | 201% |
| -6 -r 8 -p | 99.42% | 205% |
| -5 -r 8 -p | 99.42% | 206% |
| -5 -m -r 8 -p | 99.42% | 209% |
| -4 -m -r 8 -p | 99.42% | 215% |
| -6 -m -p | 99.42% | 137% |
| -6 -p | 99.42% | 138% |
| -5 -m -p | 99.45% | 106% |
| -5 -p | 99.45% | 108% |
| -4 -m -p | 99.51% | 87% |
| -3 -e -m | 99.55% | 71% |
| -3 -m -r 8 -p | 99.86% | 209% |
| -3 -m -p | 99.95% | 88% |
| -6 -m -r 8 | 99.97% | 28% |
| -6 -r 8 | 99.97% | 31% |
| -5 -m -r 8 | 99.97% | 32% |
| -4 -m -r 8 | 99.97% | 33% |
| -5 -r 8 | 99.97% | 33% |
| -6 -m | 99.97% | 6% |
| -6 | 99.97% | 7% |
| -5 -m | 100.00% | -1% |
+------------------+----------+----------+
| -5 | 100.00% | 0% |
+------------------+----------+----------+
| -4 -m | 100.06% | -5% |
| -3 -m -r 8 | 100.44% | 27% |
| -3 -m | 100.52% | -9% |
| -3 -e -r 8 -p | 100.54% | 678% |
| -3 -e -p | 100.69% | 279% |
| -3 -e -r 8 | 101.28% | 102% |
| -3 -e | 101.45% | 9% |
| -3 -r 8 -p | 101.76% | 78% |
| -3 -p | 101.87% | 20% |
| -3 -r 8 | 102.37% | -15% |
| -3 | 102.48% | -30% |
| -4 -e -r 8 -p | 102.59% | 846% |
| -4 -e -p | 102.74% | 403% |
| -4 -e -r 8 | 103.33% | 130% |
| -4 -e | 103.50% | 28% |
| -4 -r 8 -p | 104.08% | 85% |
| -4 -p | 104.19% | 22% |
| -4 -r 8 | 104.64% | -8% |
| -4 | 104.76% | -28% |
| -2 -e -m -r 8 -p | 108.34% | 113% |
| 0 -e -m -r 8 -p | 108.34% | 114% |
| 0 -e -m -r 8 | 108.34% | 114% |
| -2 -e -m -r 8 | 108.34% | 115% |
| -1 -e -m -r 8 | 108.34% | 115% |
| -1 -e -m -r 8 -p | 108.34% | 117% |
| -2 -e -r 8 -p | 108.34% | 118% |
| -2 -e -r 8 | 108.34% | 119% |
| -2 -r 8 | 108.50% | -4% |
| 0 -m -r 8 -p | 108.50% | -3% |
| 0 -m -r 8 | 108.50% | -3% |
| -1 -m -r 8 -p | 108.50% | -2% |
| -2 -r 8 -p | 108.50% | -1% |
| -2 -m -r 8 | 108.50% | -1% |
| -1 -m -r 8 | 108.50% | 0% |
| -2 -m -r 8 -p | 108.50% | 5% |
| -2 -e -m -p | 108.65% | -2% |
| -2 -e -m | 108.65% | -1% |
| -1 -e -m -p | 108.65% | -1% |
| 0 -e -m -p | 108.65% | -1% |
| 0 -e -m | 108.65% | -1% |
| -1 -e -m | 108.65% | 2% |
| -2 -e -p | 108.65% | 5% |
| -2 -e | 108.65% | 7% |
| 0 -m | 108.71% | -28% |
| 0 -m -p | 108.71% | -28% |
| -1 -m | 108.71% | -27% |
| -2 -m -p | 108.71% | -27% |
| -2 | 108.71% | -27% |
| -2 -m | 108.71% | -25% |
| -2 -p | 108.71% | -23% |
| -1 -m -p | 108.71% | -21% |
| 0 -e -r 8 -p | 110.94% | 30% |
| 0 -e -r 8 | 110.94% | 35% |
| 0 -r 8 -p | 111.12% | -31% |
| 0 -r 8 | 111.12% | -28% |
| 0 -e | 111.29% | -29% |
| 0 -e -p | 111.29% | -25% |
| 0 -p | 111.37% | -41% |
| 0 | 111.37% | -34% |
| -1 -e -r 8 -p | 113.83% | 34% |
| -1 -e -r 8 | 113.83% | 44% |
| -1 -r 8 -p | 114.06% | -27% |
| -1 -r 8 | 114.06% | -24% |
| -1 -e -p | 114.18% | -20% |
| -1 -e | 114.18% | -19% |
| -1 -p | 114.31% | -39% |
| -1 | 114.31% | -38% |
+------------------+----------+----------+


This post has been edited by Nick.C: Jan 23 2013, 22:20


--------------------
lossyWAV -q X -i | FLAC -8 ~= 295kbps
SGS III (Rooted) + 64GB
Go to the top of the page
+Quote Post

Posts in this topic
- Nick.C   lossyWAV 1.3.0 Delphi to C++ Translation Thread   Aug 22 2012, 19:27
- - [JAZ]   Hi Tycho. That sounds nice. Remember that there a...   Aug 22 2012, 19:55
- - Kohlrabi   Is the port done publicly, like on github or simil...   Aug 22 2012, 20:48
- - tycho   JAZ, Thanks, I was aware of the C# translation of ...   Aug 22 2012, 23:11
- - Nick.C   Hi Tycho, How are you getting on? Impatient Inqui...   Aug 25 2012, 19:55
- - tycho   It's progressing quite well. Many of the file...   Aug 25 2012, 23:36
- - lvqcl   CODEfunction ArcTan_Complex(const X: tDCom...   Aug 25 2012, 23:46
- - Nick.C   Apologies - you've found some of the "dir...   Aug 26 2012, 21:40
- - Atak_Snajpera   Once we have C++ version can we expect nice speed ...   Aug 28 2012, 11:55
- - tycho   I haven't studied enough how the data is proce...   Aug 28 2012, 18:22
- - Nick.C   A simple parallelism would be to process each chan...   Aug 28 2012, 19:01
|- - Atak_Snajpera   QUOTE (Nick.C @ Aug 28 2012, 20:01) A sim...   Aug 28 2012, 20:35
- - Nick.C   Another would be to have the FFT analyses run in p...   Aug 28 2012, 20:49
- - Atak_Snajpera   I have noticed that original LossyWav 1.3 does not...   Aug 29 2012, 14:18
- - Nick.C   A specification compliant WAV file can be no large...   Aug 29 2012, 17:49
- - Atak_Snajpera   Without --ignorelength switch lossyWav is useless ...   Aug 29 2012, 18:40
|- - Nick.C   You could split the soundtrack into chapters, proc...   Aug 29 2012, 22:30
- - Nick.C   Tycho, Are there any specific compiler options th...   Aug 30 2012, 12:44
- - tycho   Nick, Good to hear you're progressing with c++...   Aug 30 2012, 23:31
- - Nick.C   Updated executable later tonight - huge thanks to ...   Sep 7 2012, 19:05
- - Atak_Snajpera   what is still missing in current c version vs orig...   Sep 7 2012, 20:36
- - Nick.C   A bit of accuracy - there's a bug somewhere in...   Sep 7 2012, 20:49
- - Nick.C   lossyWAV beta 1.3.0b attached. Superseded. Chan...   Sep 7 2012, 21:01
|- - Atak_Snajpera   QUOTE (Nick.C @ Sep 7 2012, 21:01) lossyW...   Sep 7 2012, 21:29
- - mudlord   Is there any reason for custom FFT? Why not someth...   Sep 8 2012, 01:37
|- - mezenga   QUOTE (mudlord @ Sep 7 2012, 16:37) Is th...   Sep 8 2012, 04:32
- - Nick.C   I'll have a look at KissFFT - it may be faster...   Sep 8 2012, 13:20
- - lvqcl   There's also PFFFT library: https://bitbucket....   Sep 8 2012, 13:23
- - Nick.C   I know that single precision would be faster but a...   Sep 8 2012, 13:28
- - lvqcl   SoX uses fft4g.c from Ooura 1D FFT   Sep 8 2012, 13:55
- - Destroid   Being unaware of KissFFT, I did a brief overview a...   Sep 9 2012, 10:50
|- - mezenga   QUOTE (Destroid @ Sep 9 2012, 01:50) - FF...   Sep 9 2012, 15:59
- - Nick.C   The C++ executable is *much* bigger than the Delph...   Sep 9 2012, 19:06
- - tycho   Even though much of the point of translating to C+...   Sep 9 2012, 22:24
- - Nick.C   Thanks for those Tycho. I've started on piped...   Sep 10 2012, 21:38
- - Nick.C   Piped I/O is now in testing phase - I processed my...   Sep 12 2012, 18:39
- - Atak_Snajpera   have you decided yet what multithreading method wi...   Sep 13 2012, 18:37
- - Nick.C   I have not started on multi-threading yet. I will ...   Sep 13 2012, 19:19
- - Atak_Snajpera   i keep asking about ignore chunk size switch becau...   Sep 13 2012, 20:03
- - Nick.C   Ah! Now it makes sense to me. In that case, I ...   Sep 13 2012, 21:07
- - Atak_Snajpera   great and thank you!   Sep 13 2012, 21:30
- - Nick.C   lossyWAV beta 1.3.0c attached to post #1 in this t...   Sep 15 2012, 12:00
- - Atak_Snajpera   Speed comparison Q6600@3Ghz All read/write done on...   Sep 15 2012, 18:36
- - Nick.C   That's certainly encouraging !   Sep 15 2012, 18:44
- - Atak_Snajpera   Ability to process channels independently each in ...   Sep 15 2012, 18:46
- - [JAZ]   I can confirm that higher speed will be possible: ...   Sep 15 2012, 19:28
- - Nick.C   lossyWAV beta 1.3.0d attached to post #1 in this t...   Sep 18 2012, 18:56
|- - mezenga   QUOTE (Nick.C @ Sep 18 2012, 09:56) lossy...   Sep 19 2012, 17:32
|- - Nick.C   QUOTE (mezenga @ Sep 19 2012, 17:32) - po...   Sep 20 2012, 19:57
- - Nick.C   .... ok. Thanks for the testing - I'll go bug ...   Sep 19 2012, 17:39
- - punkrockdude   I really look forward to try this out on Linux one...   Sep 19 2012, 23:16
- - bandpass   QUOTE (mezenga @ Sep 19 2012, 17:32) Test...   Sep 20 2012, 07:37
- - Nick.C   I have received samples that should allow me to de...   Sep 23 2012, 20:11
- - Nick.C   lossyWAV beta 1.3.0e attached to post #1 in this t...   Sep 24 2012, 20:27
|- - mezenga   QUOTE (Nick.C @ Sep 24 2012, 11:27) lossy...   Sep 24 2012, 23:14
|- - Nick.C   Thanks for the corroborative testing. I have been ...   Sep 26 2012, 19:57
- - Atak_Snajpera   why delphi version is faster than c version? on ...   Sep 26 2012, 20:54
- - Nick.C   The Delphi version (i.e. the Delphi version with s...   Sep 26 2012, 21:08
- - Atak_Snajpera   single integer unit in amd fx cpus is really slow ...   Sep 26 2012, 21:28
- - Atak_Snajpera   any news about current progress?   Oct 17 2012, 20:48
- - Nick.C   I've been working on speeding up the code most...   Oct 17 2012, 21:07
- - Atak_Snajpera   unfortunatelly ripbot264 is just a gui for other t...   Oct 18 2012, 09:35
- - Nick.C   I'll work on ffmpeg compatibility. Multi thre...   Oct 18 2012, 17:46
- - Nick.C   lossyWAV beta 1.3.0f attached to post #1 in this t...   Oct 26 2012, 20:25
- - Atak_Snajpera   have you figured out how to accept pipe output fro...   Nov 17 2012, 16:30
- - Nick.C   I will try it out and see where I get to. Sorry f...   Nov 17 2012, 19:08
|- - Atak_Snajpera   great! don't forget also about broken prog...   Nov 17 2012, 21:33
- - Jan7887   Hello everybody, I am very new at this forum but...   Nov 29 2012, 05:07
- - Dynamic   If you look back at the 1.0 thread (find it via th...   Nov 29 2012, 14:07
- - Nick.C   Hi Jan7887, You've firstly got to thank 2Bdec...   Nov 29 2012, 20:38
- - Jan7887   Thank you Dynamic and Nick.C for the fast response...   Nov 29 2012, 23:56
- - SebastianG   QUOTE (Nick.C @ Aug 22 2012, 20:27) Tycho...   Nov 30 2012, 14:27
- - Nick.C   Hi Sebastian, I was kick-started into learning C...   Nov 30 2012, 20:47
- - Jan7887   @SebastianG Thank you very much for all your wor...   Dec 1 2012, 01:42
- - Nick.C   Opus is very good indeed. If I was looking for ver...   Dec 1 2012, 10:38
- - Nick.C   Got sidetracked again - I'm going to add an op...   Dec 16 2012, 23:11
- - Atak_Snajpera   any progress on lossywav?   Jan 3 2013, 16:44
- - Nick.C   Still working on it, still distracted by the Elite...   Jan 3 2013, 23:28
- - FreaqyFrequency   I've been experimenting with various compressi...   Jan 7 2013, 18:17
- - Nick.C   lossyWAV beta 1.3.0g attached to post #1 in this t...   Jan 18 2013, 21:26
|- - FreaqyFrequency   QUOTE (Nick.C @ Jan 18 2013, 15:26) lossy...   Jan 20 2013, 08:25
|- - Nick.C   QUOTE (FreaqyFrequency @ Jan 20 2013, 07...   Jan 20 2013, 18:00
- - Nick.C   I did a bit of testing with my 55 problem sample s...   Jan 20 2013, 22:44
- - Nick.C   lossyWAV beta 1.3.0h attached to post #1 in this t...   Jan 23 2013, 22:19
- - Nick.C   lossyWAV beta 1.3.0i attached to post #1 in this t...   Jan 30 2013, 23:20
- - Nick.C   lossyWAV beta 1.3.0j attached to post #1 in this t...   Feb 8 2013, 22:31
- - Cynic   What is the penalty (if any) for using the -i swit...   Feb 19 2013, 23:31
- - Nick.C   Hi Cynic, The penalty is simply that the noise sh...   Feb 20 2013, 22:03
- - Banned   Out of curiousity, why does the distribution inclu...   Mar 2 2013, 21:20
- - Nick.C   When v1.40 is released, the source will be as well...   Mar 3 2013, 17:33
- - Nick.C   lossyWAV beta 1.3.0k attached to post #1 in this t...   Mar 8 2013, 21:27
- - Nick.C   lossyWAV beta 1.3.0m attached to post #1 in this t...   Mar 25 2013, 23:04
- - Nick.C   lossyWAV beta 1.3.0n attached to post #1 in this t...   Mar 30 2013, 15:14
- - skamp   Thanks for your work. I'm looking forward to 1...   Mar 30 2013, 15:31


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: 19th May 2013 - 13:42