IPB

Welcome Guest ( Log In | Register )

lossyWAV 1.3.0 released, Added noise WAV bitdepth reduction method.
Nick.C
post Aug 6 2011, 21:50
Post #1


lossyWAV Developer


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



lossyWAV 1.3.0 is released.

lossyWAV is a near lossless audio processor which dynamically reduces the bitdepth of the signal on a block-by-block basis. Bitdepth reduction adds noise to the processed output. The added noise is adaptively shaped by default and can alternatively be fixed noise shaped or white noise depending on command line parameters. When lossyWAV processed output is compressed with certain lossless codecs (FLAC, Wavpack, Tak, LPAC, MPEG-4 ALS and WMA-Lossless) the bitrate of the output file is significantly* reduced compared to the lossless original.

Changes from 1.2.0b:
  • Adaptive noise shaping method kindly provided by SebastianG introduced and enabled by default;
  • Fixed noise shaping reworked to allow effective shaping of samplerates other than 44.1kHz / 48kHz.
  • Revised quality presets;
  • Enhanced information output options;
  • Major code cleanup.
Download* on average, depending on content.

This post has been edited by Nick.C: Aug 10 2011, 21:12


--------------------
lossyWAV -q X -a 4 --feedback 4| FLAC -8 ~= 320kbps
Go to the top of the page
+Quote Post
 
Start new topic
Replies
Nick.C
post Aug 6 2011, 21:53
Post #2


lossyWAV Developer


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



CODE
lossyWAV 1.3.0, Copyright (C) 2007-2011 Nick Currie. Copyleft.

This program is free software: you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation, either version 3 of the License, or (at your option) any later
version.

This program is distributed in the hope that it will be useful,but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.  See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with
this program.  If not, see <http://www.gnu.org/licenses/>.

Process Description:

lossyWAV is a near lossless audio processor which dynamically reduces the
bitdepth of the signal on a block-by-block basis. Bitdepth reduction adds noise
to the processed output. The amount of permissible added noise is based on
analysis of the signal levels in the default frequency range 20Hz to 16kHz.

If signals above the upper limiting frequency are at an even lower level, they
can be swamped by the added noise. This is usually inaudible, but the behaviour
can be changed by specifying a different --limit (in the range 10kHz to 20kHz).

For many audio signals there is little content at very high frequencies and
forcing lossyWAV to keep the added noise level lower than the content at these
frequencies can increase the bitrate dramatically for no perceptible benefit.

The noise added by the process is shaped using an adaptive method provided by
Sebastian Gesemann. This method, as implemented in lossyWAV, aims to use the
signal itself as the basis of the filter used for noise shaping. Adaptive noise
shaping is enabled by default.

Usage   : lossyWAV <input wav file> <options>

Example : lossyWAV musicfile.wav

Quality Options:

-q, --quality <t>    where t is one of the following (default = standard):
    I, insane        highest quality output, suitable for transcoding;
    E, extreme       higher quality output, suitable for transcoding;
    H, high          high quality output, suitable for transcoding;
    S, standard      default quality output, considered to be transparent;
    C, economic      intermediate quality output, likely to be transparent;
    P, portable      good quality output for DAP use, may not be transparent;
    X, extraportable lowest quality output, not fully transparent.

Standard Options:

-C, --correction     write correction file for processed WAV file; default=off.
-f, --force          forcibly over-write output file if it exists; default=off.
-h, --help           display help.
-L, --longhelp       display extended help.
-M, --merge          merge existing lossy.wav and lwcdf.wav files.
-o, --outdir <t>     destination directory for the output file(s).
-v, --version        display the lossyWAV version number.
-w, --writetolog     create (or add to) lossyWAV.log in the output directory.

Advanced Options:

-                    take WAV input from STDIN.
-c, --check          check if WAV file has already been processed; default=off.
                     errorlevel=16 if already processed, 0 if not.
-q, --quality <n>    quality preset (-5.0<=n<=10.0); (-5=lowest, 10=highest;
                     default=2.5; I=10; E=7.5; H=5; S=2.5; C=0; P=-2.5; X=-5).
--, --stdout         write WAV output to STDOUT.
    --stdinname <t>  pseudo filename to use when input from STDIN.

Advanced Quality Options:

-A, --adaptive <n/t> modify settings for Sebastian Gesemann's adaptive noise
                     shaping method. takes a parameter to set the order of the
                     FIR filter, (32<=n<=96; default=64; multiple of 8 only);
                     "OFF" to disable adaptive shaping; "NOWARP" to disable
                     default frequency warping;
-a, --analyses <n>   set number of FFT analysis lengths, (2<=n<=6; default=3,
                     i.e. 32, 64 & 1024 samples. n=2, remove 32 sample FFT;
                     n>3 add 512; n>4, add 256; n>6, add 128) nb. FFT lengths.
                     stated are for 44.1/48kHz audio, higher sample rates will
                     automatically increase all FFT lengths as required.
-l, --limit <n>      set upper frequency limit to be used in analyses to n Hz;
                     (10000<=n<=20000; default=16000).
    --linkchannels   revert to original single bits-to-remove value for all
                     channels rather than channel dependent bits-to-remove.
    --maxclips <n>   set max. number of acceptable clips per channel per block;
                     (0<=n<=16; default=3,3,3,3,3,2,2,2,2,2,1,1,1,0,0,0).
-m, --midside        analyse 2 channel audio for mid/side content.
    --nodccorrect    disable DC correction of audio data prior to FFT analysis,
                     default=on; (DC offset calculated per FFT data set).
    --scale <n>      factor to scale audio by; (0.0625<n<=8.0; default=1).
-s, --shaping [n]    enable fixed noise shaping, takes optional parameter [n]
                     to allow user defined shaping proportion (0.0<=n<=1.0),
                     otherwise default to quality setting dependent value.
                     Disables adaptive noise shaping.
    --static <n>     set minimum-bits-to-keep-static to n bits (default=6;
                     7<=n<=28, limited to bits-per-sample - 4).
-U, --underlap <n>   enable underlap mode to increase number of FFT analyses
                     performed at each FFT length, (n = 2, 4 or 8, default=2).

Output Options:

    --bitdist        show distrubution of bits to remove.
    --blockdist      show distribution of lowest / highest significant bit of
                     input codec-blocks and bit-removed codec-blocks.
-d, --detail         enable per block per channel bits-to-remove data display.
-F, --freqdist       enable frequency analysis display of input data.
-H, --histogram      show sample value histogram (input, lossy and correction).
    --longdist       show long frequency distribution data (input/lossy/lwcdf).
    --perchannel     show selected distribution data per channel.
-p, --postanalyse    enable frequency analysis display of output and
                     correction data in addition to input data.
    --sampledist     show distribution of lowest / highest significant bit of
                     input samples and bit-removed samples.
    --spread [full]  show detailed [more detailed] results from the spreading/
                     averaging algorithm.
-W, --width <n>      select width of output options (79<=n<=255).

System Options:

-B, --below          set process priority to below normal.
    --low            set process priority to low.
-N, --nowarnings     suppress lossyWAV warnings.
-Q, --quiet          significantly reduce screen output.
-S, --silent         no screen output.

Special thanks go to:

David Robinson       for the publication of his lossyFLAC method, guidance, and
                     the motivation to implement his method as lossyWAV.

Horst Albrecht       for ABX testing, valuable support in tuning the internal
                     presets, constructive criticism and all the feedback.

Sebastian Gesemann   for the adaptive noise shaping method and the amount of
                     help received in implementing it and also for the basis of
                     the fixed noise shaping method.

Matteo Frigo and     for libfftw3-3.dll contained in the FFTW distribution
Steven G Johnson     (v3.2.1 or v3.2.2).

Mark G Beckett       for the Delphi unit that provides an interface to the
(Univ. of Edinburgh) relevant fftw routines in libfftw3-3.dll.

Don Cross            for the Complex-FFT algorithm originally used.

Link to the hydrogenaudio wiki article

Suggested foobar2000 converter setup:

lossyFLAC:
CODE
Encoder: c:\windows\system32\cmd.exe
Extension: lossy.flac
Parameters: /d /c c:\"program files"\bin\lossywav - --quality standard --silent --stdout|c:\"program files"\bin\flac - -b 512 -5 -f -o%d --ignore-chunk-sizes
Format is: lossless or hybrid
Highest BPS mode supported: 24
lossyTAK:
CODE
Encoder: c:\windows\system32\cmd.exe
Extension: lossy.tak
Parameters: /d /c c:\"program files"\bin\lossywav - --quality standard --silent --stdout|c:\"program files"\bin\takc -e -p2m -fsl512 -ihs - %d
Format is: lossless or hybrid
Highest BPS mode supported: 24
lossyWV:
CODE
Encoder: c:\windows\system32\cmd.exe
Extension: lossy.wv
Parameters: /d /c c:\"program files"\bin\lossywav - --quality standard --silent --stdout|c:\"program files"\bin\wavpack -hm --blocksize=512 --merge-blocks -i - %d
Format is: lossless or hybrid
Highest BPS mode supported: 24
lossyWMALSL*:
CODE
Encoder: c:\windows\system32\cmd.exe
Extension: lossy.wma
Parameters: /d /c c:\"program files"\bin\lossywav - --quality standard --silent --stdout|c:\"program files"\bin\wmaencode.exe - %d --codec lsl --ignorelength
Format is: lossless or hybrid
Highest BPS mode supported: 24

Enclose the element of the path containing spaces within double quotation marks ("), e.g. C:\"Program Files"\directory_where_executable_is\executable_name. This is a Windows limitation.

*: Uses the wmaencoder executable written by lvqcl. Found here.

This post has been edited by Nick.C: Sep 4 2011, 21:20


--------------------
lossyWAV -q X -a 4 --feedback 4| FLAC -8 ~= 320kbps
Go to the top of the page
+Quote Post

Posts in this topic
- Nick.C   lossyWAV 1.3.0 released   Aug 6 2011, 21:50
- - Nick.C   CODElossyWAV 1.3.0, Copyright (C) 2007-201...   Aug 6 2011, 21:53
- - Steve Forte Rio   BRAVO!   Aug 7 2011, 08:35
- - halb27   Great work! Thank you, Nick.   Aug 7 2011, 09:37
- - TBeck   Really cool! Thank you!   Aug 11 2011, 01:11
- - punkrockdude   Nick.C: Do you play FLAC/LossyWAV with your Androi...   Aug 11 2011, 16:11
- - vvneagleone   Nice work! For what purposes do you think this...   Aug 11 2011, 16:20
|- - Nick.C   QUOTE (punkrockdude @ Aug 11 2011, 16:11)...   Aug 11 2011, 17:44
|- - punkrockdude   QUOTE (Nick.C @ Aug 11 2011, 18:44) QUOTE...   Aug 11 2011, 20:21
- - larryfine   Great! Thank you very much!   Aug 11 2011, 22:35
- - Nick.C   I've just completed a full music collection tr...   Aug 14 2011, 11:44
- - zerowalker   Is this a Almost Lossless compression? As that is ...   Aug 17 2011, 04:16
|- - bryant   QUOTE (zerowalker @ Aug 16 2011, 20:16) I...   Aug 17 2011, 06:40
|- - zerowalker   QUOTE (bryant @ Aug 17 2011, 07:40) QUOTE...   Aug 17 2011, 19:29
- - Nick.C   The settings for foobar2000 conversion to lossyFLA...   Aug 17 2011, 19:38
|- - punkrockdude   QUOTE (Nick.C @ Aug 17 2011, 20:38) The s...   Aug 18 2011, 00:37
- - Nowings69   Congratulations   Aug 18 2011, 08:29
- - punkrockdude   As an intrigued fan of LossyWAV may I ask what you...   Aug 21 2011, 21:15
- - Anakunda   HI! I'm curious what listening configurati...   Aug 21 2011, 21:17
- - drumliner   just tried lossywav to create some lossy.flac file...   Aug 21 2011, 23:41
- - Nick.C   @punkrockdude: I'm not active developing at th...   Aug 22 2011, 07:48
- - drumliner   thanks Nick. working properly now   Aug 22 2011, 13:05
- - Nick.C   Added: foobar2000 settings for producing lossyWMAL...   Sep 4 2011, 21:22
- - chrizoo   I updated from 1.1.0c (which the wiki currently po...   Sep 19 2011, 14:43
|- - Northpack   QUOTE (chrizoo @ Sep 19 2011, 14:43) I up...   Sep 19 2011, 15:13
- - chrizoo   thank you Northpack. This increases speed to 9x, b...   Sep 19 2011, 16:53
|- - lvqcl   QUOTE (chrizoo @ Sep 19 2011, 19:53) than...   Sep 19 2011, 18:38
|- - chrizoo   QUOTE (lvqcl @ Sep 19 2011, 17:38) Make s...   Sep 19 2011, 20:30
- - chrizoo   another issue I came across: I always thought tha...   Sep 19 2011, 17:50
- - Northpack   QUOTE (chrizoo @ Sep 19 2011, 15:53) than...   Sep 19 2011, 18:30
|- - DonP   QUOTE (Northpack @ Sep 19 2011, 12:30) No...   Dec 16 2012, 17:40
|- - Nick.C   QUOTE (DonP @ Dec 16 2012, 16:40) Maybe t...   Dec 16 2012, 20:15
- - b66pak   indeed is faster with libfftw3-3.dll in lossyWAV f...   Sep 19 2011, 20:09
- - chrizoo   edit: QUOTE I always thought that there is NO unsu...   Sep 19 2011, 20:11
- - Nick.C   Regarding processing speed, there are three things...   Sep 19 2011, 20:40
- - chrizoo   QUOTE (Nick.C @ Sep 19 2011, 19:40) Regar...   Sep 19 2011, 20:43
- - Nick.C   @ chrizoo: Please post a 30 second clip to allow c...   Sep 19 2011, 20:47
- - Nick.C   Chris, Thanks for taking the time to provide me w...   Sep 21 2011, 20:23
|- - chrizoo   sorry for the late reply, I was gone. Thank you fo...   Oct 5 2011, 19:55
- - Nick.C   From lossyWAV long help: "Process Description...   Oct 5 2011, 21:40
|- - chrizoo   first of all I'm sorry that I raised the issue...   Oct 5 2011, 22:32
|- - botface   QUOTE (chrizoo @ Oct 5 2011, 22:32) What ...   Oct 6 2011, 09:49
- - 2Bdecided   You'll also get zero bits removed if there are...   Oct 6 2011, 12:54
- - uncajesse   I fully updated this to work with v1.3, if anyone ...   Nov 19 2011, 11:55
- - FreaqyFrequency   Hey Nick/all involved parties, This is an absolut...   Feb 17 2012, 02:01
- - Nick.C   Hi Sean, You could try using scaling to reduce th...   Feb 17 2012, 21:23
- - softrunner   Is it possible to get lower quaity (and bitrate) t...   Jul 27 2012, 02:12
|- - halb27   IMO the 'not fully transparent' statement ...   Jul 28 2012, 09:15
- - Nick.C   As Horst has said, the aim during lossyWAV develop...   Jul 29 2012, 19:30
|- - Dynamic   QUOTE (Nick.C @ Jul 29 2012, 19:30) Probl...   Jul 30 2012, 10:03
- - Dynamic   I had a read of the original thread on the lossyFL...   Aug 19 2012, 16:35
- - tycho   FYI. I've started translating the lossyWAV 1.3...   Aug 21 2012, 22:53
- - Nick.C   Hi Tycho, Many thanks for tackling the conversion...   Aug 22 2012, 19:15
- - LoRd_MuldeR   What about Unicode support for lossyWAV? http://w...   Aug 29 2012, 22:37
|- - tycho   QUOTE (LoRd_MuldeR @ Aug 29 2012, 13:37) ...   Aug 30 2012, 09:07
|- - LoRd_MuldeR   QUOTE (tycho @ Aug 30 2012, 09:07) Thanks...   Aug 30 2012, 14:29
- - tycho   QUOTE (LoRd_MuldeR @ Aug 30 2012, 05:29) ...   Aug 30 2012, 15:16
- - LoRd_MuldeR   I have hacked a Unicode support into a large numbe...   Aug 30 2012, 15:39
- - Adagio   A question more related to the foobar2000 converte...   Feb 23 2013, 00:48
- - Nick.C   When creating correction files, --stdout cannot be...   Feb 23 2013, 13:53
- - ozok   I've been trying to add lossyWAV support to TA...   Jun 19 2013, 12:49
|- - Nick.C   Hi ozok, I'm not sure. From memory, the Delph...   Jun 19 2013, 20:52
- - ozok   Thanks for the quick reply Nick.C. I don't us...   Jun 19 2013, 22:01
- - Mardel   What's wrong with this? (Foobar2000 v1.2.9) ...   Sep 10 2013, 23:37
- - db1989   Just the first thing I saw, but try adding the mis...   Sep 11 2013, 01:08
|- - Mardel   QUOTE (db1989 @ Sep 11 2013, 02:08) Just ...   Sep 11 2013, 20:35
- - Nick.C   Hi Mardel, Could Drive C: be full? foobar2000 som...   Sep 11 2013, 20:57
|- - Mardel   QUOTE (Nick.C @ Sep 11 2013, 21:57) Hi Ma...   Sep 11 2013, 22:47
- - Nick.C   If you are using a beta version, please download t...   Sep 12 2013, 13:20
- - Mardel   I used this 1.3.0 stable version.   Sep 12 2013, 18:58
- - Nick.C   Hmmm.... Could you please try removing the FLAC po...   Sep 13 2013, 18:54
|- - Mardel   QUOTE (Nick.C @ Sep 13 2013, 19:54) Hmmm....   Sep 13 2013, 21:18
- - Nick.C   Thanks Mardel, glad to hear that you have solved t...   Sep 13 2013, 21:49
- - darkbyte   I wonder if anyone thought about doing an ~320kbps...   Sep 14 2013, 14:57
- - sundance   Hello Nick, seems I've got a similar issue lik...   Sep 14 2013, 18:51
|- - lvqcl   QUOTE (sundance @ Sep 14 2013, 21:51) Any...   Sep 14 2013, 18:56
|- - Mardel   QUOTE (sundance @ Sep 14 2013, 19:51) ......   Sep 14 2013, 19:05
- - sundance   @lvqcl: Tried that, but fb2k complains about inval...   Sep 14 2013, 19:04
|- - lvqcl   QUOTE (sundance @ Sep 14 2013, 22:04) Tri...   Sep 14 2013, 19:15
- - Nick.C   There is.... Try "--stdinname %d". Th...   Sep 14 2013, 19:31
|- - sundance   QUOTE (Nick.C @ Sep 14 2013, 20:31) Also,...   Sep 15 2013, 07:31
|- - sidewalking   QUOTE (sundance @ Sep 15 2013, 00:31) QUO...   Mar 18 2014, 20:58
|- - akin0780   This should work: Place lossyWAV.exe and wavpack....   Mar 18 2014, 21:20
|- - Nick.C   QUOTE (sidewalking @ Mar 18 2014, 19:58) ...   Mar 18 2014, 21:58
|- - sidewalking   QUOTE (Nick.C @ Mar 18 2014, 14:58) QUOTE...   Mar 20 2014, 02:11
- - weepy   Hi there - wonderful project, I was wondering if ...   Jan 8 2014, 11:24
- - halb27   I did a personal listening test a while ago with v...   Jun 22 2014, 22:08


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: 23rd July 2014 - 08:03