release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



Wiki > Main > SoundCodecMonkeysAudio (compare)

Difference: SoundCodecMonkeysAudio (r59 vs. r58)

Monkey's Audio

Overview

Monkey's Audio (also called APE or MAC) is a lossless compression format. The home page is http://www.monkeysaudio.com

Monkey's probably has the highest compression of all the lossless codecs, but it comes at a price - decoding is very CPU intensive, and not all compression levels are playable in realtime in Rockbox.

Monkey's audio has five compression modes, with each mode compressing to a smaller size, but significantly slower to decode than the previous one. -c2000 or -c3000 are a good compromise between compression size and decoding speed.

  • -c1000 - "fast"
  • -c2000 - "normal"
  • -c3000 - "high"
  • -c4000 - "extra high"
  • -c5000 - "insane"

In addition, Monkey's Audio (currently at version 3.99) has been through many incompatible format changes in its life - most versions of the encoder produce files which are not decodable by earlier versions of the decoder.

Current Status

The Rockbox Monkey's Audio codec only supports v3.97 or later files.

Rockbox supports APEv2 tags in Monkey's Audio files, but does not read (or skip) id3v2 tags, which some applications also add to APE files. If a file has an id3v2 tag, it won't work in Rockbox.

Performance

The codec has already been optimised a lot. There's some further potential by using both CPU cores on PortalPlayer targets.
Approximate decoding speed for v3.99 files on the various CPUs in Rockbox-supported DAPs are as follows (figures for 44.1kHz 16 bit stereo files):

Devices SVN rev. (1)Sort-c1000-c2000-c3000-c4000-c5000
iPod 1st Gen..3rd Gen (80MHz ARM7TDMI: PP5002) r24512 166% 111%69%16% (2)2.0% (2)(3)
iPod 4th Gen, Mini 1st Gen; Iriver H10; m:robe 100 (80MHz ARM7TDMI: PP5020) r24512 153% 101%63%23%2.8% (3)
iPod 5th Gen, Mini 2nd Gen, Nano 1st Gen; Sansa c200, e200 (80MHz ARM7TDMI: PP5022/PP5024) r24572 169% 112%70%24%? (2)
Iriver H1x0/H300, iAudio X5/M5/M3 (124 MHz ColdFire 5249/5250) r24512 258% 185% 133% 55%13.5%
iPod Nano 2nd Gen (192MHz ARM940T: S5L8701?) r24786 433% 289% 187% 64%2.6%
Cowon D2 (192MHz ARM926EJ-S: TCC7801) r24590 461% 330% 221% 86%20%
Gigabeat F (300MHz ARM920T: S3C2440?) r24512 654% 458% 294% 106%22%
Gigabeat S (528MHz ARM1136JF-S: i.MX31L) r26004 1378% 1034% 824% 404% 112%
Sansa Clip (250MHz ARM9TDMI: AS3525) r21234 668% 446% 275% 97%9%
Sansa Clipv2 (250MHz ARM926EJ-S: AS3525v2) r27897 580% 409% 274% 108%26%

  1. starting with r24512, tests are done using the standard test files.Differences to earlier tests are minimal (<1% relative).
  2. filter buffer(s) taken out of IRAM in favour of a larger reciprocal table for optimised division.
  3. insane filter buffer does not fit into IRAM.

Note that a speed less than around 120% will not somewhat above 100% is required to play without pausing in Rockbox. skipping during normal use.


CategorySoundCodecs: Monkey's Audio (APE)

r60 - 05 Nov 2010 - 18:59:41 - JustinHannigan

Revision r59 - 05 Nov 2010 - 18:14 - MichaelGiacomelli
Revision r58 - 26 Aug 2010 - 20:35 - RafaelCarre
Copyright by the contributing authors.