Japanese page is here.
Other softwares
I attempt porting MMX mpeg audio decoder from mpg123 CVS tree to xmms (The original MMX decoder for mpg123 was written by Mr. higway under GPL. )
MMX support patch integrated new MMX support into 3DNow!/FPU decoder selection, so preference tab of MPG123 (MP3 decoder) was changed as follows.
This patch was merged into XMMS-1.2.8, so my private experiment is over. Thank you for visiting my page. |
Benchmark patch |
---|
It seems that the latest CPU is fast, so 3DNow!/MMX effect is incomprehensible. And it is not appropriate to use 'top' to measure a performance. Therefore, I wrote a small patch, 'enable_benchmark', extended disk writer plug-in of XMMS (output to /dev/null mode). In disk writer plug-in, I think that a decoding performance can be measured, without receiving restrictions of the speed of a hard disk, since MP3 file is decoded at full speed.
Furthermore, my benchmark patch adds ' |
I measured for decoding time by 'DiskWriter plugin' (applied my benchmark patch), xmms-1.2.4 + MMX patch release 2. Target files are 96Kbit/s VBR, MPEG1 layerIII (3 files total 7410KB, 13m38s).
Decoding times in following table, user time of 'time'.
3DNow! | MMX | FPU | ||||
Duron 700@888, 256MB | 9.61s | 1.2% | 7.83s | 1.0% | 10.18s | 1.2% |
85X | 104X | 80X | ||||
K6-III/450@500, 128MB | 20.19s | 2.5% | 26.12s | 3.2% | 39.17s | 4.8% |
41X | 31X | 21X | ||||
PIII-500@515, 128MB | NA | 17.73s | 2.2% | 21.68s | 2.7% | |
46X | 38X |
2002.9.7 | modified automatic decoder selection |
2002.8.24 | rewrite automatic decoder selection. use x86cpucaps if installed. |
2002.3.9 | update for xmms-1.2.7 |
2002.2.9 | update for xmms-1.2.6 remove modification 'aboutbox' |
2001.12.24 | modify decode_i386.c etc, to reduce overheads (not much tested) . Change preference tab, now you can change channel (stereo/mono) when 3DNow! decoder selected. And now you cannot change resolution (8bit/16bit) and down sample (1/2/4) when MMX decoder selected. |
2001.12.8 | fix a bug when playng monophonic mp3 with MMX decoder (Thanks Mr.Waschk) but slower than release 2(Thanks Mr.Hillyerd (on MMX Pentium 200)) |
2001.11.17 | fix a serious bug fix mpg123 initialization problem (Thanks Mr.Waschk, Mr.Jordan) disable SSE detection |
2001.6.30 | update for xmms-1.2.5 |
2001.5.19 | update for xmms-1.2.5-pre1 |
2001.4.14 | fix a serious bug related make_decode_tables (could not play with 3DNow!/FPU decoder correctly) fix a compilation problem. code clean up for reducing some overheads. fix a small bug in configure dialogue etc. |
2001.4.7 | 1st release for xmms-1.2.4. implement MMX optimized decoder, based on Mr. higway's MMX decoder in mpg123-CVS added MMX decoder in decoder selection dialogue replace getcpuflags.s to check_cpu.c for detecting MMX changed My URL, in the about dialogue of MPEG Layer 1/2/3 Plugin |
I have enjoyed playing MP3 with xmms and mpg123. I found the source code of libmpg123 (MP3 decode plugin in xmms) is similar to mpg123, but it doesn't have support 3DNow! instructions. Therefore I attempt to porting decoder engine of mpg123-0.59r and new 3DNow! patch to xmms.
This patch was merged into XMMS-1.2.4, so my private experiment is over. Thank you for visiting my page. |
This patch was merged into XMMS-1.2.4, but 3DNow! support was disabled in default. So XMMS binary, you can get from xmms web site, was not support 3DNow! If you enable 3DNow!, please read How to enable 3DNow! support in xmms-1.2.4. |
This patch provides following features.
NOTE: require binutils-2.9.1.0.19a or later to compile 3DNow! instructions.
(Obsoletes. I recommend you should get latest xmms)
My 3DNow! patch was merged into XMMS-1.2.4, but 3DNow! support was disabled in default. So XMMS binary, you can get from xmms web site, was not support 3DNow! If you enable 3DNow!, please make and install yourself.
If you cannot rebuild xmms, you may use this binary. Please download and extract it to xmms plugin directory (ex. /usr/lib/xmms/Input ).
Some people told me that they couldn't compile xmms with 3DNow! patch (they could compile without the patch).
( "./configure --enable-3dnow" was finished normally)# make cd . && aclocal aclocal: macro `MACRO-NAME' required but not defined aclocal: configure.in: 41: macro `AM_PATH_GLIB' not found in library aclocal: configure.in: 42: macro `AM_PATH_GTK' not found in library aclocal: configure.in: 151: macro `AM_GNU_GETTEXT' not found in library make: *** [aclocal.m4] Error 1 #
If you encount such errors, please try another version of 3DNow! patch, xmms-1.2.2-3dnow-20000729-noconfigure.patch.bz2. Thanks Mr.Lindqvist.
This version always makes 3DNow! supported MP3 decoder, so you don't need "--enable-3dnow".
Mr. Knack and Mr. Suchanek reported to me that they could compile "noconfigure" version of 3DNow! patch. Thanks.
I measured for decoding time by 'DiskWriter plugin'. target is j-stereo 44.1KHz 96Kbit/s MPEG1 layerIII file (2967KB, 4m12s).
Result (xmms-0.9.5.1) | |||
---|---|---|---|
K6-2/336 + SB Live! | FPU | 30 sec | 12 % |
3DNow! | 14 sec | 6 % | |
K6-III/504 + SB Live! | FPU | 17 sec | 7 % |
3DNow! | 9 sec | 4 % |
2000.11 | (My 3DNow! patch was merged into xmms-1.2.4) |
2000.9.9 | modified patch for xmms-1.2.3-pre1. |
2000.7.29 | (modified "noconfigure" patch for xmms-1.2.2) |
2000.6.20 | modified patch for xmms-1.2.1. |
2000.6.17 | modified patch for xmms-1.2.0. minor update |
2000.3.10 | modified patch for xmms-1.0.1. minor bug fix |
2000.1.29 | modified patch for xmms-1.0.0. Utilized 'configure' for enabling (or disabling) 3DNow! support. Now if you want to add support 3DNow!, you must to './configure --enable-3dnow" minor bug fix. |
1999.11.20 | make 'about' dialogue about MPEG plugin. change 'Decoder Select' dialogue. enable 16bit, stereo, 1:1 mode only, when use 3DNow! decoder fixed minor bug (cannot compile layer3.c, if not define USE_3DNOW) |
1999.10.2 | modified patch for xmms-0.9.5.1. display result of detect 3DNow! support, moved to MPG123 Configuration. |
1999.9.27 | modified patch for xmms-0.9.5. |
1999.9.23 | minor update. revised new 3DNow! patch (ver.19990911. modified for binutils-2.9.5, but not tested) |
1999.9.11 | enable NEW_DCT9 switch in layer3.c (it's enable in mpg123-0.59r, but not xmms-0.9.1) |
1999.9.4 | added "Decoder select" option in MPG123 Configuration Auto / Force 3DNow! / no 3DNow! |
1999.8.28 | minor update. revised new 3DNow! patch (ver.19990824, but not implement 3DNow! equalizer) |
1999.8.23 | if CPU is support 3DNow!, display strings "MPEG Layer 1/2/3 Player (3DNow!)" in xmms preference tab. (thanks Dr.K! |
1999.8.22 | implement CPU auto-detection from new 3DNow! patch (use floating-pointer decode routine if CPU isn't support 3DNow! instructions). |
1999.8.21 | Test release for xmms-0.9.1. implement 3DNow! optimized decoder, based on mpg123-0.59r and new 3DNow! patch. |
![]() ![]() |
![]() |