OGG on iPod: Why the iPod May Not Have the Horsepower for OGG

Engineer Dastardly Slaphapple took a break from his day job as a hardware and firmware designer at Bumbrubbley Audio Studebakery (maker of the iPod competitor Slompet player, among other things) to give us some more info on the OGG-on-iPod plausibility, including why the iPod mini (and future iPods) might have a better shot at getting OGG support than the older, whiter iPods. There's even information about why Apple may have chosen to implement their 'Lossless AAC' instead of the more widely adopted FLAC lossless format.

Dastardly's analysis after the jump:

Firstly, CPUs:

The current iPod gen3 has a PP5002D CPU, the same as the gen1 and gen2. The gen1/2 stored their code from flash, not SDRAM, meaning they had a more limited codesize, and their SDRAM took more power to operate.

The iPod mini has a PP5020 CPU

The Rio Karma (developed in Cambridge UK) uses a PP5003 CPU. It plays OGG (and FLAC and MP3 and WMA).

The old 5002:

The 5002 has a "broken" cache (1 wait state per access for program or data, meaning you effectively have half the effective clock rate when running code from external memory). This means that running code that doesn't fit in the internal 96kbyte SRAM of the player is very inefficient, both in terms of CPU cycles and power. MP3 and AAC just about squeeze into the internal memory (one at a time, obviously!), but anything that didn't would result in a big power hit - my guess is 30-40%+. This would be a bad user experience, considering the already short gen3 battery life.

The newer 5003:

The 5003 in the Karma has this particular silicon deficiency fixed. The Karma plays OGG, though it's still a resource hog - you get about 25% less battery life - about 11-12 hours compared to 15+ for MP3 due to the extra cycles and memory requirements when compared to the more svelte codecs. We didn't do a lot of optimisation, so it's running the Vorbis-supplied tremor decoder with only a few tweaks.

The even newer 5020:

The 5020 is based on the 5003, and so has the cache bug fixed. It's capable of playing OGG with 25% or less hit on power (depending how much optimisation is done). I would suspect the 5020 will find its way into the next iPod, as it's cheaper and integrates both the firewire MAC and the USB2 mac/phy blocks which are separate chips on the gen3.

So in summary:

gen3 - In theory possible, but unlikely. mini - Very possible. gen4 (or my guess at what a gen4 would have in it) - Very possible.

Dastardly Slaphapple is not speaking for his employer Bumbrubbley Audio Studebakery or Slompet Heavy Industries or anybody else. He's just sharing.

Related
Open Letter to Apple: Ogg For Us, Please
Open Letter to Apple: Ogg For Us

Update: I might have changed some names. - Joel