Date post: | 13-Jan-2016 |
Category: |
Documents |
Upload: | ursula-simpson |
View: | 213 times |
Download: | 0 times |
Embedded Ogg Vorbis Audio PlayerEmbedded Ogg Vorbis Audio Player
Team Members:Team Members: Trang Pham Trang Pham
Luke ReisnerLuke Reisner
Jason WinchellJason Winchell
Advisor: Advisor: Prof. Dongming ZhaoProf. Dongming Zhao
University of Michigan-DearbornUniversity of Michigan-Dearborn
Introduction to Ogg VorbisIntroduction to Ogg Vorbis
• Ogg Vorbis is an audio compression format, Ogg Vorbis is an audio compression format, similar to MP3 (MPEG-1 Layer 3 audio) similar to MP3 (MPEG-1 Layer 3 audio)
• Ogg Vorbis audio has two primary Ogg Vorbis audio has two primary advantages over MP3 audio:advantages over MP3 audio:
1)1) The Ogg Vorbis audio format is free and open The Ogg Vorbis audio format is free and open source, whereas MP3 software must be licensedsource, whereas MP3 software must be licensed
2)2) The Ogg Vorbis format is more efficient than MP3, The Ogg Vorbis format is more efficient than MP3, producing higher quality audio at equivalent file producing higher quality audio at equivalent file sizessizes
Introduction to Ogg VorbisIntroduction to Ogg Vorbis
Player FeaturesPlayer Features
• The goal was to design and implement an embedded The goal was to design and implement an embedded digital audio player that supports Ogg Vorbisdigital audio player that supports Ogg Vorbis
• Audio files are read from Audio files are read from CompactFlash memory cardsCompactFlash memory cards
• The user interface consists The user interface consists of an LCD display and of an LCD display and several push buttonsseveral push buttons
• Audio is outputted through a 2.5 mm jackAudio is outputted through a 2.5 mm jack
• Open source software was used to implement the playerOpen source software was used to implement the player
Player RequirementsPlayer Requirements
• Support playback of all common formats of Ogg Vorbis Support playback of all common formats of Ogg Vorbis audioaudio
• Be able to read files from CompactFlash cards with a Be able to read files from CompactFlash cards with a directory structuredirectory structure
• Handle dynamic swapping of memory cardsHandle dynamic swapping of memory cards
• Provide a fast and accurate response to the userProvide a fast and accurate response to the user
• Support common play modes and custom playlistsSupport common play modes and custom playlists
• Enable the user to control various aspects of audio Enable the user to control various aspects of audio playbackplayback
• Have memory usage suitable for an embedded systemHave memory usage suitable for an embedded system
Technical SpecificationsTechnical Specifications• Audio formats: 8 or 16-bit, mono/stereo, 11-44 kHz, and 32-Audio formats: 8 or 16-bit, mono/stereo, 11-44 kHz, and 32-
192 kbps192 kbps
• Memory card file system: FAT16 with directory and long file Memory card file system: FAT16 with directory and long file
name support, at least 64 MB in sizename support, at least 64 MB in size
• Memory card detection: insert or eject at any timeMemory card detection: insert or eject at any time
• Player response time: 0.25 seconds or lessPlayer response time: 0.25 seconds or less
• Play modes: once, repeat, sequential, randomPlay modes: once, repeat, sequential, random
• Playlists: user-created, unlimited number of songsPlaylists: user-created, unlimited number of songs
• Audio control: volume, equalization, stop, pause, seekAudio control: volume, equalization, stop, pause, seek
• Memory usage: 4 MB ROM, 16 MB RAMMemory usage: 4 MB ROM, 16 MB RAM
SubsystemsSubsystems
• Linux kernel development (Luke)Linux kernel development (Luke)
Audio device driverAudio device driver
PCMCIA PCMCIA CompactFlash memory card driver CompactFlash memory card driver
• Audio player application (Trang and Jason)Audio player application (Trang and Jason)
– User interface (Trang)User interface (Trang)
LCD outputLCD output
Pushbutton inputPushbutton input
– Low level control (Jason)Low level control (Jason)
Audio playbackAudio playback
Memory card managementMemory card management
Design ConstraintsDesign Constraints
• High cost of development High cost of development hardware limited the choice of hardware limited the choice of the microcontrollerthe microcontroller
• Lack of time and resources, as well as the physical Lack of time and resources, as well as the physical size of the development board, prevented the size of the development board, prevented the implementation of a portable designimplementation of a portable design
• High cost of graphic LCDs led to the use of an LCD High cost of graphic LCDs led to the use of an LCD that requires a separate controller and doesn’t have that requires a separate controller and doesn’t have touch-screen supporttouch-screen support
Design ChoicesDesign Choices
• Operating system (open source, commercial, or custom)Operating system (open source, commercial, or custom)
– Linux was chosen due to its lack of licensing fees, Linux was chosen due to its lack of licensing fees, completely open source code, and large user basecompletely open source code, and large user base
• Audio playback (interrupt-driven or DMA-based)Audio playback (interrupt-driven or DMA-based)
– Interrupt-driven was selected because it was simpler to Interrupt-driven was selected because it was simpler to develop and provided acceptable performancedevelop and provided acceptable performance
• Player application (single-threaded or multi-threaded)Player application (single-threaded or multi-threaded)
– Multi-threaded implementation was used to increase Multi-threaded implementation was used to increase responsiveness and simplify the coding of parallel tasksresponsiveness and simplify the coding of parallel tasks
Hardware Block DiagramHardware Block Diagram
Micro ATX Power Supply
KeyboardEncoder
HitachiMicrocontroller
Compact-Flash
Card Reader
Optrex 128 x 64 LCD
Compact-FlashCard
Head-phoneJack
Headphones
AC Power
Push Buttons
Up One Level
Select
Up Arrow
Down Arrow
Right ArrowLeft Arrow
Software Block DiagramSoftware Block Diagram
InputThread
User InputCommands
VolumeControl
DetectMemory
Card
Decode/PlayOgg Vorbis
KeyboardEncoder
LCDController
PCMCIA CompactFlash Adapter
Digital/AnalogConverter
PushButtons
LCD Headphones
CompactFlashThread
Audio Output Thread
LCD OutputRead Files
from MemoryCard
CompactFlashCard
Software
Hardware
Output Thread
Test ResultsTest Results• Plays 8 or 16-bit, mono or stereo, 8-48 kHz, and 32-192 kbps Plays 8 or 16-bit, mono or stereo, 8-48 kHz, and 32-192 kbps
audioaudio
• Handles directory navigation and long file namesHandles directory navigation and long file names
• Supports memory cards up to 64 MB (in theory 128 TB)Supports memory cards up to 64 MB (in theory 128 TB)
• Memory cards can be swapped, except while bufferingMemory cards can be swapped, except while buffering
• All audio operations occur in less than 0.5 secondsAll audio operations occur in less than 0.5 seconds
• Handles once, repeat, sequential, and random play modesHandles once, repeat, sequential, and random play modes
• Supports volume control, stopping, pausing, and seekingSupports volume control, stopping, pausing, and seeking
• Requires less than 3 MB of ROM and 24 MB of RAMRequires less than 3 MB of ROM and 24 MB of RAM
• No support for custom playlists or audio equalizationNo support for custom playlists or audio equalization
Conclusions and Future WorkConclusions and Future Work
• Implementation of the audio player was mostly successfulImplementation of the audio player was mostly successful– Majority of the desired features were implemented, although Majority of the desired features were implemented, although
a portable hardware solution wasn’t completeda portable hardware solution wasn’t completed
• The player should help the spread of Ogg Vorbis and The player should help the spread of Ogg Vorbis and open-source softwareopen-source software– Full source code will be made Full source code will be made
available to the publicavailable to the public
• In the future, the following extensions could be made:In the future, the following extensions could be made: Adapt the design to work as a small, portable audio Adapt the design to work as a small, portable audio
playerplayer Add player features, such as custom playlist support and Add player features, such as custom playlist support and
audio equalization, or even PDA functionsaudio equalization, or even PDA functions
Acknowledgements Acknowledgements
• Academic AdvisorAcademic Advisor– Prof. Dongming ZhaoProf. Dongming Zhao
• Course InstructorsCourse Instructors– Prof. Malayappan Prof. Malayappan
ShridharShridhar– Prof. Paul WattaProf. Paul Watta
• Software ConsultationSoftware Consultation– Prof. Natarajan Prof. Natarajan
Narasimhamurthi Narasimhamurthi
• Hitachi Hitachi SemiconductorSemiconductor– Robin BlantonRobin Blanton
• MontaVista SoftwareMontaVista Software– John WaldronJohn Waldron
• Creative ControlsCreative Controls– Heather YoungHeather Young
• Dearborn GroupDearborn Group– Mark ZachosMark Zachos
FeedbackFeedback
Any questions, comments, or suggestions?Any questions, comments, or suggestions?