GXLame - Low-bitrate MP3 encoder., Dedicated thread for discussion. |
GXLame - Low-bitrate MP3 encoder., Dedicated thread for discussion. |
Apr 23 2010, 20:06
Post
#1
|
|
![]() Group: Developer Posts: 174 Joined: 16-April 06 Member No.: 29596 |
This is a snapshot of my work on "GXLame." GXLame is an MP3 encoder based off of LAME v3.98.4 and v3.99b0 which has been heavily optimized for high-quality, low-bitrate VBR encoding. It is similar in concept to other popular encoders at these bitrates such as some AAC codecs, Vorbis mods, and so forth at bitrates down to 56kbps. This codec does not rely on aggressive lowpassing or resampling to acheive these low bitrates, and the quality aims to be acceptable at much lower bitrates than have come to be expected of the standard. Here's a rough idea of what to expect:
CODE On a continuous scale from V 0 (lowest bitrate) to V 100 (highest quality), with V20 as the default: V100: 256kbps V90: 224kbps V80: 185kbps V70: 162kbps V60: 146kbps V50: 128kbps V40: 112kbps V30: 96kbps V20: 85kbps V10: 74kbps V0: 64kbps (actually 56kbps @ 32KHz; auto resampling to 32Khz takes place at V5 and below) The range 0-35 is where the most tuning took place. The codec accepts input from stdin and can be used in foobar2000 (and many other audio rippers/managers/converters) by following any of the guides for LAME, but with a different commandline. For instance, one can easily import CD audio into foobar2000 and convert the tracks with the simple commandline: GXLame-t5.3 -S - %d For greatly increased encoding speed, add "-f". To target a different quality level, add "-Vx" ('x' here means a number like 30, which would produce average bitrates somewhat close to 96kbps according to the above table). CODE GXLame 32bits version GXLame-t5 (9 Aug 2011) This version contains debugging options. usage: GXLame [options] <infile> [outfile] <infile> and/or <outfile> can be "-", which means stdin/stdout. RECOMMENDED: GXLame input.wav output.mp3 OPTIONS: -b bitrate (Not recommended) set the bitrate, default 85 kbps -h highest quality, but slower (not recommended). -f fast mode, slightly lower quality (but still very good) -V n quality setting for VBR. default n = 20 (near 85 kbps) 100 = highest quality, biggest files. 0 = smallest files --preset type type must be "medium", "standard", "extreme", "insane", or a value for an average desired bitrate and depending on the value specified, appropriate quality settings will be used. "--preset help" gives more info on these --priority type sets the process priority 0,1 = Low priority 2 = normal priority 3,4 = High priority --longhelp full list of options --license print License information This is an early test release. Although some great progress is being made, it is not completely tuned, stable, or optimized. Then again, codecs never are and probably never will be. I want to gather user feedback, so use this puppy to compress whatever audio you will. Please note that lossy transcoding is an especially bad idea with GXLame. It relies so heavily on the psymodel and noise shaping that any artifacts present in the original--even inaudible ones in a transparent encode--may rebound here with a great vengeance. Particular culprits are transient smearing and additional high frequency distortion. If you must transcode, at least resample to a different frequency first (for instance, add "--resample 48" to the commandline when re-compressing/transcoding standard CD audio). Grab a look at the changelog and older versions in the uploads thread here. Be sure to provide your opinions, discussions, impressions, test results, and whatever other witty banter you might deem applicable in this thread! Right now, go forth and test it on your music, soundtracks, speech tracks (for speech, I recommend GXLame -V0 -mm --resample 16) -- I'm looking for tests for any regressions that might have been introduced in t5.3 since t5.2. This post has been edited by The Sheep of DEATH: Sep 1 2011, 03:41
Attached File(s)
-------------------- Copy Restriction, Annulment, & Protection = C.R.A.P. -Supacon
|
|
|
|
![]() |
Sep 1 2011, 05:50
Post
#2
|
|
|
Group: Members Posts: 1314 Joined: 3-January 05 From: Argentina, Bs As Member No.: 18803 |
Short test.
10 first samples from last public test. 100 kbps test. Codecs: GXLAME 5.3 V35 GXLAME 4.5 V35 Apple AAC Constrained VBR 96 kbps high quality. Both GXLAME 5.2 and 5.3 produce the same output for V35. CODE GXLAME 5.3 GXLAME 4.5 Apple AAC 3.00 2.50 4.50 1.50 1.50 3.00 3.70 3.00 3.50 2.50 1.70 4.50 1.70 1.60 3.30 1.90 2.00 5.00 2.00 2.20 4.00 1.60 1.50 4.60 1.30 1.40 4.50 2.40 2.20 4.60 % Codec averages: % 2.16 1.96 4.15 Scoring: GXLAME 5.3 - 2.16 GXLAME 4.5 - 1.96 Apple AAC - 4.15 Not sure about the difference in quality between 5.3 and 4.5. Final conclusion: GXLAME has low quality at 96 kpbs. It's not really news. The quality for MP3 begins from 128 kbps, not less. |
|
|
|
Sep 1 2011, 20:49
Post
#3
|
|
![]() Group: Developer Posts: 174 Joined: 16-April 06 Member No.: 29596 |
Excellent, this is what I was looking for! Thanks for doing some of your tests. I also find Apple AAC (one of the best AAC codecs at this bitrate) somewhat superior to gxlame, but I'm curious as to what particular sort of artifacts are most offensive to you.
Also, a test between GXLame and other encoders may be useful (such as GXLame V20 vs he-aac at 64kbps, or GXLame vs LAME at these or any bitrates). I'm also curious about untrained listener response to bitrates as low as V20. This curiosity stems from the fact that GXLame "gets" the fact that it can't eliminate all artifacts, but tries to mask their severity as much as possible while preserving the full spectrum (up to 16KHz). My own tests have shown GXLame produces tolerable quality down to V20 (85kbps) on most mainstream music samples. (And of course, killer samples will chip away at such a notion, but all the same.) -------------------- Copy Restriction, Annulment, & Protection = C.R.A.P. -Supacon
|
|
|
|
Sep 2 2011, 02:44
Post
#4
|
|
|
Group: Members Posts: 1314 Joined: 3-January 05 From: Argentina, Bs As Member No.: 18803 |
This curiosity stems from the fact that GXLame "gets" the fact that it can't eliminate all artifacts, but tries to mask their severity as much as possible while preserving the full spectrum (up to 16KHz). I'm not a developer but here is my opinion based on personal observations. The preservation of the bandwidth is a good thing but good encoder should have an optimal balance between the lowpass and amount of distortion in high frequencies. LC-AAC can preserve the frequency up to 15.5-16 kHz at 100 kbps because it's more advanced. LAME can reasonbly afford around 14.5 kHz at such bitrate. GXLAME tries to handle 16-16.5 kHz while is running out of the bits. The good example of it is castanets sample (also pre-echo handling of GXLAME is very week). I bet the the quality will be better if the lowpass will be set at 15 kHz (that could be already at high side though) and appropriate optimizations will be done. My 0.02$ |
|
|
|
The Sheep of DEATH GXLame - Low-bitrate MP3 encoder. Apr 23 2010, 20:06
Canar Fascinating. How easily backported are your change... Apr 23 2010, 20:29
The Sheep of DEATH QUOTE (Canar @ Apr 23 2010, 14:29) Fascin... Apr 23 2010, 20:57
dv1989 QUOTE (The Sheep of DEATH @ Apr 23 2010, 20... Apr 23 2010, 23:28
The Sheep of DEATH QUOTE (dv1989 @ Apr 23 2010, 17:28) Not n... Apr 24 2010, 07:29
gaekwad2 Quick impression: Less warbling and distortion tha... Apr 24 2010, 15:33
[JAZ] I don't pretend to be rude but...
Do you hav... Apr 24 2010, 16:24
The Sheep of DEATH QUOTE ([JAZ] @ Apr 24 2010, 10:24... Apr 24 2010, 22:53
gaekwad2 QUOTE (The Sheep of DEATH @ Apr 24 2010, 23... Apr 25 2010, 01:26
Canar I have to disagree [JAZ]. The results speak for th... Apr 24 2010, 19:31
shadowking There biggest problem will be low volume , solo/ja... Apr 25 2010, 02:48
The Sheep of DEATH QUOTE (shadowking @ Apr 24 2010, 20:48) T... Apr 25 2010, 22:14
gaekwad2 QUOTE (The Sheep of DEATH @ Apr 25 2010, 23... Apr 26 2010, 02:04
The Sheep of DEATH In response to the samples I received so far!
... Apr 27 2010, 14:18
stereotype QUOTE (The Sheep of DEATH @ Apr 23 2010, 13... Apr 25 2010, 02:54
[JAZ] @Stereotype: in GXLame, 0..35 is the low bitrate r... Apr 25 2010, 12:28
Steve Forte Rio very interesting project. Hopefully it is backward... Apr 25 2010, 19:57
Canar Nice! I'm tempted to try hack-in support f... Apr 27 2010, 15:24
The Sheep of DEATH QUOTE (Canar @ Apr 27 2010, 09:24) Nice... Apr 29 2010, 02:11
gaekwad2 The noise is greatly reduced in t2, now the bigges... Apr 30 2010, 13:03
Soap QUOTE (gaekwad2 @ Apr 30 2010, 08:03) The... Apr 30 2010, 13:06
[JAZ] QUOTE (Soap @ Apr 30 2010, 14:06) Why are... Apr 30 2010, 19:41
Canar I do intend to do a bit of listening testing on th... Apr 30 2010, 16:26
The Sheep of DEATH From yesterday:
QUOTE GXLame-t3.
Changelog:
- Sli... Apr 30 2010, 21:44
lvqcl I noticed that gxlame doesn't like quiet sampl... May 1 2010, 11:09
The Sheep of DEATH QUOTE (lvqcl @ May 1 2010, 05:09) I notic... May 1 2010, 19:40
lvqcl Bitrate vs quality settings for LAME 3.98.4, LAME ... May 1 2010, 18:50
dv1989 QUOTE (lvqcl @ May 1 2010, 18:50) LAME 3.... May 1 2010, 21:16
lvqcl QUOTE (The Sheep of DEATH)Could you direct me to t... May 1 2010, 20:05
lvqcl QUOTE Does this version have a different default V... May 2 2010, 08:26
dv1989 Thanks for the answer! I wonder how it'll ... May 2 2010, 11:55
lvqcl QUOTE (dv1989)I wonder how it'll compare in li... May 2 2010, 20:36
Aleron Ives Forgive my ignorance, but if the VBR new in 3.98 h... May 3 2010, 01:24
Steve Forte Rio Sorry, but were I can download LAME 3.99 alpha 6 e... May 3 2010, 11:56
dv1989 Google's first result for "LAME 3.99a6... May 3 2010, 12:15
Steve Forte Rio Oh, thank you) May 3 2010, 12:20
lvqcl current version is alpha 7 vbr-new behavior was t... May 3 2010, 13:21
The Sheep of DEATH QUOTE (lvqcl @ May 3 2010, 07:21) current... May 9 2010, 10:57
lvqcl Killer samples for GXLame-t4 -V 30:
mama_original... May 21 2010, 18:43
The Sheep of DEATH Hi. So I see vorbis got another new release recent... May 5 2011, 06:22
IgorC Thank You,
Nice to see new version. It looks good... May 6 2011, 07:40
The Sheep of DEATH QUOTE (IgorC @ May 6 2011, 01:40) Thank Y... May 7 2011, 09:11
The Sheep of DEATH Just for the record (in case I'm not around fo... Aug 15 2011, 20:10
holmus QUOTE (The Sheep of DEATH @ Aug 15 2011, 19... Aug 19 2011, 15:44
C.R.Helmrich I'm also interested in the performance of the ... Aug 20 2011, 13:55
moozooh QUOTE (C.R.Helmrich @ Aug 20 2011, 16:55)... Aug 20 2011, 18:14
IgorC After conducting the last public test I've und... Aug 21 2011, 23:23
moozooh Ah, I erroneously assumed C.R.Helmrich was asking ... Aug 23 2011, 13:46
lvqcl QUOTE (The Sheep of DEATH @ Sep 1 2011, 23... Sep 3 2011, 09:13
IgorC Another short test.
10 samples from the last publi... Sep 3 2011, 09:50
lvqcl I thought that ABR is still preferrable for LAME a... Sep 3 2011, 10:45
IgorC You're right.
ABR is recommended for LAME at l... Sep 3 2011, 11:20
The Sheep of DEATH QUOTE (IgorC @ Sep 3 2011, 05:20) You... Sep 3 2011, 21:55
lvqcl QUOTE (The Sheep of DEATH @ Sep 4 2011, 00... Sep 3 2011, 22:39
IgorC QUOTE (The Sheep of DEATH @ Sep 3 2011, 17... Sep 3 2011, 22:53
The Sheep of DEATH Ahaha, thanks. I was thinking of V20, in the middl... Sep 4 2011, 04:40
lvqcl QUOTE (The Sheep of DEATH @ Sep 4 2011, 07... Sep 4 2011, 06:27
The Sheep of DEATH QUOTE (lvqcl @ Sep 4 2011, 00:27) QUOTE (... Sep 4 2011, 07:49
IgorC QUOTE (The Sheep of DEATH @ Sep 4 2011, 03... Sep 4 2011, 08:04
darkbyte Nice encoder. I'm waiting for the lame_enc.dll... Oct 2 2011, 14:58
Yuri This encoder is great.
Sounds really good with h... Jan 21 2012, 04:16
Freya Firstly respect to you for coming out with such a ... Mar 15 2012, 10:36
The Sheep of DEATH QUOTE (Freya @ Mar 15 2012, 04:36) Firstl... Mar 26 2012, 06:23
LithosZA Are you restricted to 16Kbps? MP3 will blow up at ... Mar 15 2012, 11:45
Freya QUOTE (LithosZA @ Mar 15 2012, 10:45) Are... Mar 15 2012, 12:36
LithosZA QUOTE It has to be .mp3 format I'm afraid, oth... Mar 15 2012, 14:07
njsain Is the source available for GXLame? I would like t... Oct 31 2012, 17:52![]() ![]() |
|
Lo-Fi Version | Time is now: 18th May 2013 - 20:05 |