Är lite nyfiken på hurvida det går att spela Ogg vorbis med en ARM krets. Det finns en implementation som heter Tremor som är till för MCU:s.
Enligt en diskussion på st.com:
"decoding on a STM32F103RE, running at 48MHz. It suffers from some very minor popping at 32MHz -- with some tuning I could probably get that to work. With full PLL, I'm sure 44100KHz is possible, but I don't need that for my application."
"I used the "Tremor" integer math reference decoder (http://svn.xiph.org/branches/lowmem-branch/Tremor/) and GCC (CodeSourcery G++). The DAC is a TI TLV320AIC23B, and the ogg files are stored on a MMC card. Decoded PCM data is buffered in SRAM and fed to the I2S peripheral with DMA transfers."
"follow-up. I had an extra digit in my systick configuration, which I was using as a simple timer. Once I removed the digit, my MMC transfers are much much faster and I am easily able to keep up with 44.1KHz ogg files now."
Så verkar 48 MHz + DMA vara minimum i hastighetsavseende.
Och en diskussion på xiph.org:
">> I am also care of RAM usage, espacially on data segments.In my
>> 32bits MIPS embedded device, 49KB RAM (19KB for codebook, 6*1KB for
>> ogg buffers, 2*(4+2)KB for work buffer, 4KB for pcmout buffer, 5KB
>> for stack, other 2KB for structs and small infos.) is needed to
>> store data segments EXCEPT FOR read-only data segment, that can be
>> stored in flash memory. But 49KB RAM is still too large for my
>> device, Is there anybody run the lowmem-tremor under 49KB Data-RAM
>> successfully? Is it possible to run under 49KB data-RAM, or how much
>> RAM is enough? Read-only data & codes are stored or run in Flash.
>
>If it's possible to pack codebooks into flash, yes, you can use
>considerably less space. The codebooks need to be partially unpacked
>into a larger form from th header at the beginning of playback, but
>are read-only past that point."
Verkar ge att 49 kB är minsta storleken på RAM minne behövs.
Så 48 MHz, 49 kB, DMA = Ogg Vorbis på ARM ..?
En diskussion om MP3 dekodern Helix verkar ge att kraven är 26 MHz och 38 kB (för 128 kbps/44.1/stereo).