Portable Media Player

From AVRFreaks Wiki

Jump to: navigation, search

Contents

[edit] Portable / Personal Media Player (PMP)

A PMP application will read a multi-media file from either an IDE drive or Ethernet stream
in a compressed format (MPEG1, MPEG2, MPEG4, DIVX3,4,5 and WMV9). The AVR32 processor
will then decompress the video/audio streams into an output buffer. While this buffer
is being built, the LCD and Codec are being refreshed out of a previously build buffer.

The AVR32 architecture uses a Unified Memory Architecture (UMA) which saves cost
(one SDRAM controller/one port) but the SDRAM bandwidth is an issue. The bandwith
demands raise as the LCD display size (number of pixels) increases.

The LCD and audio DMA channels offload the processor and the bandwidth of the IDE
is low enough that an IRQ driven PIO is sufficient.

[edit] SDRAM Performance

STK1000 SDRAM has a 32bit data bus width with a cycle time of ____ nsec or ___MBs max bandwidth
NGW100 SDRAM has a 16bit data bus width with a cycle time of ____ nsec or ___MBs max bandwidth


[edit] Display Refresh Bandwidth

SVGA 800x600 480,000 Pixels 3 Bytes per pixel@30 fps = 43 MBs
VGA 640x480 307,200 Pixels 3 Bytes per pixel@30 fps = 27 MBs
CIF 480x272 130,560 Pixels 3 Bytes per Pixel@30 fps = 11.75 MBs
QVGA 320x240 76,000 Pixels 3 Bytes per pixel@30 fps = 691 KBs


[edit] Program Bandwidth

Firmware to decode MPEG2 and run mPlayer also add SDRAM cycles.


[edit] Audio Bandwidth

16 bit/48Khz Stereo would need 2 * 48,000 *2 = 192 kBs


[edit] Data Flow demands on SDRAM


Read compressed image file from IDE drive
a 2GB, 2 hour movie would
require 278 KBsec
Image:ide_sdram.jpg

decompress image file
30fps * 2hrs *3600sec/hr =
216K frames
about 9kB/frame
Image:sdram_avr.jpg

Compute pixels ->buffer A
Image:avr_sdram.jpg

refresh LCD & Audio Codec <- buffer B
Image:sdram_lcd.jpg

[edit] Practial realisations

Project xMedia (visit us here) based on the NGW100

  • LCD (480x272 Sharp LQ043 aka. PSP LCD)
  • VGA (640x480 with ADV7125)
  • Audio (AC97 high quality with CS4202)
  • Wifi (802.11g with the Marvel 88W8686)
  • Bluetooth
  • Capacitive User Interface


The AP7000 is a really powerfull cpu, but still not powerfull enough for a top-notch PMP.
Yes it supports MPEG 1 to 4 and divx playback, but only the support doesn' play the files.

In the xMedia player we used a linux based system environment with the ngw100 as basis,
we overclocked the board to the fastest stable configuration with 190MHz and updated the RAM to 64MB. 

VGA output drives the NGW100 to it's limits, it is only possible with 640x480 @ 60Hz @ 16bit

Some facts (using the 480x272 @ 30Hz @ 24bit LCD and MPlayer):
* MP3 Playback works due mplayer optimisation done by atmel
* MPEG 1 & 2 Playback works with limitations

* No Ogg Playback - CPU overload (only files with low sample rate)
* No WMA Playback - CPU overload (not even close to playing WMA files)
* No MPEG scaling - video has to fit the screen - CPU overload
* MPEG Limited to bitrates of 350kbit/s to run smootly

The main problem is the software, the linux driver needed almost two years to reach partial stability
and mplayer is only optimised for MP3 play what limits the range of use.

Use the AVR32, but don't expect wonders!

Best Regards
Bernhard Wörndl-Aichriedler
Personal tools