Commit graph

53 commits

Author SHA1 Message Date
Andree Buschmann
4b49ef2ade Another minor ARM speedup for libwmapro. Drop lsb of multiplication result in fixmul31(). The difference to current implementation is +/-1 in the output signal. Same routines are used for other codecs and in the codec lib as well.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27728 a1c6a512-1295-4272-9138-f99709370657
2010-08-05 21:59:29 +00:00
Andree Buschmann
cc7fac27b5 Minor of libwmapro on ARM. Swap operands for fixmul31, is 1% faster.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27727 a1c6a512-1295-4272-9138-f99709370657
2010-08-05 21:43:49 +00:00
Mohamed Tarek
13167d2389 Remove the comment about Coldfire asm. The current code (using fixmul16 macros) is fast enough; even faster than an equivalent CF asm version, as pointed out by Nils Wallménius.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27724 a1c6a512-1295-4272-9138-f99709370657
2010-08-05 18:53:42 +00:00
Nils Wallménius
a0dd4cd057 libwmapro: remove coldfire fixmul24 as it is both incorrect and unused, fix fixmul 31 comment.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27715 a1c6a512-1295-4272-9138-f99709370657
2010-08-05 10:35:06 +00:00
Mohamed Tarek
430eb651a2 update wmapro's README.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27710 a1c6a512-1295-4272-9138-f99709370657
2010-08-05 06:37:53 +00:00
Mohamed Tarek
9176f35f77 Fix reds.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27707 a1c6a512-1295-4272-9138-f99709370657
2010-08-05 06:17:18 +00:00
Mohamed Tarek
9dddfa78e6 oops ! shouldn't have removed mdct_tables.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27706 a1c6a512-1295-4272-9138-f99709370657
2010-08-05 06:10:14 +00:00
Mohamed Tarek
12ecbf82fc Drop the the mdct files from libwmapro since they are no longer needed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27705 a1c6a512-1295-4272-9138-f99709370657
2010-08-05 06:02:26 +00:00
Mohamed Tarek
4674518787 Increase wmapro decoder output sample depth to 24 bits, makes the mean error between our output and the original floating point decoder ~5e-8. (FS#11498 by Buschel)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27703 a1c6a512-1295-4272-9138-f99709370657
2010-08-04 23:21:35 +00:00
Mohamed Tarek
2054ca8b98 Fix red by removing sine_512 from iram (2KB). minor slowdown for PP5024 (~0.05MHz) on a 320kbps sample, and ~0.03MHz slowdown for Coldfire on a 55kbps sample.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27702 a1c6a512-1295-4272-9138-f99709370657
2010-08-04 23:14:31 +00:00
Mohamed Tarek
3bbbb96395 Use codeclib's mdct in wmapro. Input coeffs to the transform needed to be scaled down first by (log2(frame_size) - 3). Increases decoding speed by 1.3MHz on PP5022 and saves ~32KB that were previously needed by the mdct tables. (FS#11511 by Buschel and myself)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27701 a1c6a512-1295-4272-9138-f99709370657
2010-08-04 22:29:50 +00:00
Mohamed Tarek
5da2304f85 Fix the sample count in wma pro.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27687 a1c6a512-1295-4272-9138-f99709370657
2010-08-03 22:59:03 +00:00
Andree Buschmann
f84cb98b37 Use higher precision for libwmapro's quant_tab[].
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27662 a1c6a512-1295-4272-9138-f99709370657
2010-08-01 22:02:57 +00:00
Andree Buschmann
f971deed6d Housekeeping for libwmapro. Define some multiple used constants, use more precise value for cos(pi/4).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27644 a1c6a512-1295-4272-9138-f99709370657
2010-07-31 21:07:17 +00:00
Nils Wallménius
8082ae089d libwmapro: fix comment for coldfire fixmul31.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27626 a1c6a512-1295-4272-9138-f99709370657
2010-07-30 09:14:28 +00:00
Andree Buschmann
aa2fca384a Maintenance and minor speedup of libwmapro. Comment unused arrays, fix comment, remove tabs and introduce WMAPRO_FRACT to wma.h to remove magic numbers. Swap operands of fixmul16-call for minor speedup on ARM (+1%).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27617 a1c6a512-1295-4272-9138-f99709370657
2010-07-29 22:18:04 +00:00
Nils Wallménius
1de66faa8e Make codeclib_misc.h include the asm headers to simplify inclusion magic.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27615 a1c6a512-1295-4272-9138-f99709370657
2010-07-29 12:52:04 +00:00
Nils Wallménius
e436483b66 libmwapro: use codeclib asm macros for XNPROD31, speeds up decoding of a 55kbps wma pro file by 40% on h300.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27612 a1c6a512-1295-4272-9138-f99709370657
2010-07-29 11:01:30 +00:00
Nils Wallménius
79ae416b95 libwmapro: coldfire asm for vector_fixmul_scalar, 1% speedup
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27607 a1c6a512-1295-4272-9138-f99709370657
2010-07-28 23:25:45 +00:00
Andree Buschmann
17069799a9 Refactor asm macros in libwmapro's vector_fixmul_() functions. No change to output samples.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27604 a1c6a512-1295-4272-9138-f99709370657
2010-07-28 20:46:51 +00:00
Andree Buschmann
3bb8020f78 Add ARM assembler to libwmapro vector_fixmul_scalar(). Speeds up decoding by 1% on PP5022.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27603 a1c6a512-1295-4272-9138-f99709370657
2010-07-28 19:36:15 +00:00
Andree Buschmann
2fefcdf31c Refinement of initial lowmem handling for libwmapro (r27593). Set maximum supported channels to 2 instead of 8 for low memory targets. This solution saves more RAM than the former solution and does avoid possible NULLPTR access. As add-on remove tabs.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27602 a1c6a512-1295-4272-9138-f99709370657
2010-07-28 19:01:45 +00:00
Mohamed Tarek
7722c1d459 Correct the scaling of the coeffs to 17bits.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27599 a1c6a512-1295-4272-9138-f99709370657
2010-07-28 18:39:10 +00:00
Andree Buschmann
8cc8bb9bde Submit next part of FS#11498. Unroll loop for minor speedup of libwmapro on ARM (1%).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27595 a1c6a512-1295-4272-9138-f99709370657
2010-07-28 18:15:53 +00:00
Mohamed Tarek
f2ed7ffaaa Enable wmapro compilation for lowmem targets by excluding multichannel buffers for them.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27593 a1c6a512-1295-4272-9138-f99709370657
2010-07-28 14:01:10 +00:00
Nils Wallménius
24bde73d1e libwmapro: build with -O2 for coldfire, 5% speedup.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27586 a1c6a512-1295-4272-9138-f99709370657
2010-07-27 06:48:15 +00:00
Nils Wallménius
ac16071399 libwmapro: tiny tweak fo coldfire fixmul24 for a very slight speedup.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27585 a1c6a512-1295-4272-9138-f99709370657
2010-07-27 06:30:38 +00:00
Nils Wallménius
30d286d859 libwmapro: slightly shorter and faster inline asm fixed point multiplication routines, speedup is ~0.5%. Also don't lie to gcc about which vars are changed by the asm.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27584 a1c6a512-1295-4272-9138-f99709370657
2010-07-26 23:00:22 +00:00
Mohamed Tarek
5dd8c53b96 Modify the wma pro decoder to produce non-interleaved samples, and work directly on the buffers in WMAProDecCtx instead to avoid the redundant copying of the output data. ~10% speedup (-2MHz) on pp502x and ~1.5% speedup (-3.8Mhz)
on mcf2049.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27583 a1c6a512-1295-4272-9138-f99709370657
2010-07-26 22:03:20 +00:00
Andree Buschmann
87d59ab56c Submit part of FS#11498. Major speedup for WMA Professional on ARM and Coldfire CPUs. Introduce asm routines for multiplications, move arrays with major impact on decoding speed to IRAM. Speeds up decoding by 25% on PP5022 and 34% on mcf5249.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27582 a1c6a512-1295-4272-9138-f99709370657
2010-07-26 21:43:07 +00:00
Nils Wallménius
025eed5c74 libwmapro: coldfire asm for vector_fixmul_window, gives a speedup of ~13%, drop the add_bias argument for the vector_fixmul_window function, since it was always 0
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27573 a1c6a512-1295-4272-9138-f99709370657
2010-07-26 11:15:25 +00:00
Mohamed Tarek
56161967c6 Increase the size of quant table in libwmapro to accomodate more values for exp. Fixes wma pro failure on test files in download.rockbox.org/test_files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27460 a1c6a512-1295-4272-9138-f99709370657
2010-07-17 09:13:55 +00:00
Mohamed Tarek
53d13a8e76 libwmapro no longer needs libm in the sim; update the makefile and README.rockbox.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27456 a1c6a512-1295-4272-9138-f99709370657
2010-07-17 08:19:05 +00:00
Mohamed Tarek
86c3765246 libwmapro : remove dead/unneeded code from wma.[ch]
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27455 a1c6a512-1295-4272-9138-f99709370657
2010-07-17 08:09:17 +00:00
Mohamed Tarek
b339963567 libwmapro : Rename all FIXED occurrances to int32_t and remove types.h
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27454 a1c6a512-1295-4272-9138-f99709370657
2010-07-17 08:00:13 +00:00
Mohamed Tarek
0f94710410 More cleaning for libwmapro; use codeclib's bitstream functions and drop those from the libwmapro.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27453 a1c6a512-1295-4272-9138-f99709370657
2010-07-17 07:53:14 +00:00
Mohamed Tarek
387af97a26 Initial cleanup for libwmapro.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27425 a1c6a512-1295-4272-9138-f99709370657
2010-07-15 05:38:09 +00:00
Rafaël Carré
4a3e6de32a wmapro: silence some warnings related to function prototypes unused in rockbox
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27421 a1c6a512-1295-4272-9138-f99709370657
2010-07-14 20:19:57 +00:00
Rafaël Carré
7a1e04920e wmapro: don't force little endianness
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27420 a1c6a512-1295-4272-9138-f99709370657
2010-07-14 20:19:50 +00:00
Mohamed Tarek
d63abfc7eb Add WMA Pro to the main build. WMA Pro now plays on target and decodes in 151% realtime in a 320kbps sample on a sansa e200. Lots of cleanup still need to be done, and optimisations should start soon too.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27417 a1c6a512-1295-4272-9138-f99709370657
2010-07-14 19:37:52 +00:00
Mohamed Tarek
16284ae8ae Remove the floating point code from wmaprodec.c and change variable names accordingly.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27416 a1c6a512-1295-4272-9138-f99709370657
2010-07-14 17:55:17 +00:00
Mohamed Tarek
ec4ee48318 Complete the conversion of WMA Pro to fixed point. Floating point code is still there for better history and to have a returning point in svn should something go wrong.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27402 a1c6a512-1295-4272-9138-f99709370657
2010-07-12 15:41:10 +00:00
Thomas Martitz
57613ea5fa Rename/change SIMVER to APP_TYPE in the Makefiles.
SIMVER was really only used to detect a simulator build. With APP_TYPE you can
now differentiate between simulator, application, checkwps and database builds.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27372 a1c6a512-1295-4272-9138-f99709370657
2010-07-10 13:49:49 +00:00
Rafaël Carré
d05a24e64e wmapro codec sim build needs to link with libm
Override generic rule in libwmapro/*.make

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27336 a1c6a512-1295-4272-9138-f99709370657
2010-07-07 17:10:26 +00:00
Mohamed Tarek
d884af2b99 Partial conversion of the wmapro decoder to fixed point arithmetic. Currently inverse quantization & rescaling,
imdct and windowing are all in fixed point.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27302 a1c6a512-1295-4272-9138-f99709370657
2010-07-05 22:33:37 +00:00
Mohamed Tarek
e481e887db Add a patch file in libwmapro to make it easier to add the library and the decoder to the main build and modify README.rockbox accordingly.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27012 a1c6a512-1295-4272-9138-f99709370657
2010-06-21 12:38:08 +00:00
Mohamed Tarek
8eeec17041 Remove the stubbed main() from wmaprodec.c since it's useless now and remove Makefile for the same reason.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27010 a1c6a512-1295-4272-9138-f99709370657
2010-06-21 12:29:48 +00:00
Mohamed Tarek
816fca820c Wrote apps/codecs/wmapro.c and modified libwmapro to make the codec work in the sim. Neither libwmapro nor wmapro.c have been added to the main build yet, codecs.make should be edited to compile both with rockbox.
current status of the decoder :
- Plays and seeks in the sim
- Still in floating point

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27006 a1c6a512-1295-4272-9138-f99709370657
2010-06-21 10:48:34 +00:00
Mohamed Tarek
270f136fd2 Fix ffmpeg revision number in libwmapro/README.rockbox
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25923 a1c6a512-1295-4272-9138-f99709370657
2010-05-09 21:52:35 +00:00
Mohamed Tarek
fe147cec65 Modify the ffmpeg source files in apps/codecs/libwmapro in order to compile the codec standalone.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25764 a1c6a512-1295-4272-9138-f99709370657
2010-04-30 12:20:25 +00:00