240 likes | 619 Views
Embedded Ogg Vorbis Audio Player. Introduction to Ogg Vorbis. Introduction to Ogg Vorbis. Ogg Vorbis is an audio compression format, similar to MP3 (MPEG-1 Layer 3 audio) Ogg Vorbis audio has two primary advantages over MP3 audio:
E N D
Introduction to Ogg Vorbis Introduction to Ogg Vorbis • Ogg Vorbis is an audio compression format, similar to MP3 (MPEG-1 Layer 3 audio) • Ogg Vorbis audio has two primary advantages over MP3 audio: • The Ogg Vorbis audio format is free and open source, whereas MP3 software must be licensed • The Ogg Vorbis format is more efficient than MP3, producing higher quality audio at equivalent file sizes
Player Features • The goal was to design and implement an embedded digital audio player that supports Ogg Vorbis • Audio files are read from CompactFlash memory cards • The user interface consists of an LCD display and several push buttons • Audio is outputted through a 2.5 mm jack • Open source software was used to implement the player
Player Requirements • Support playback of all common formats of Ogg Vorbis audio • Be able to read files from CompactFlash cards with a directory structure • Handle dynamic swapping of memory cards • Provide a fast and accurate response to the user • Support common play modes and custom playlists • Enable the user to control various aspects of audio playback • Have memory usage suitable for an embedded system
Technical Specifications • Audio formats: 8 or 16-bit, mono/stereo, 11-44 kHz, and 32-192 kbps • Memory card file system: FAT16 with directory and long file name support, at least 64 MB in size • Memory card detection: insert or eject at any time • Player response time: 0.25 seconds or less • Play modes: once, repeat, sequential, random • Playlists: user-created, unlimited number of songs • Audio control: volume, equalization, stop, pause, seek • Memory usage: 4 MB ROM, 16 MB RAM
Subsystems • Linux kernel development (Luke) • Audio device driver • PCMCIA CompactFlash memory card driver • Audio player application (Trang and Jason) • User interface (Trang) • LCD output • Pushbutton input • Low level control (Jason) • Audio playback • Memory card management
Design Constraints • High cost of development hardware limited the choice of the microcontroller • Lack of time and resources, as well as the physical size of the development board, prevented the implementation of a portable design • High cost of graphic LCDs led to the use of an LCD that requires a separate controller and doesn’t have touch-screen support
Design Choices • Operating system (open source, commercial, or custom) • Linux was chosen due to its lack of licensing fees, completely open source code, and large user base • Audio playback (interrupt-driven or DMA-based) • Interrupt-driven was selected because it was simpler to develop and provided acceptable performance • Player application (single-threaded or multi-threaded) • Multi-threaded implementation was used to increase responsiveness and simplify the coding of parallel tasks
Test Results • Plays 8 or 16-bit, mono or stereo, 8-48 kHz, and 32-192 kbps audio • Handles directory navigation and long file names • Supports memory cards up to 64 MB (in theory 128 TB) • Memory cards can be swapped, except while buffering • All audio operations occur in less than 0.5 seconds • Handles once, repeat, sequential, and random play modes • Supports volume control, stopping, pausing, and seeking • Requires less than 3 MB of ROM and 24 MB of RAM • No support for custom playlists or audio equalization
Conclusions and Future Work • Implementation of the audio player was mostly successful • Majority of the desired features were implemented, although a portable hardware solution wasn’t completed • The player should help the spread of Ogg Vorbis and open-source software • Full source code will be made available to the public • In the future, the following extensions could be made: • Adapt the design to work as a small, portable audio player • Add player features, such as custom playlist support and audio equalization, or even PDA functions
Academic Advisor Prof. Dongming Zhao Course Instructors Prof. Malayappan Shridhar Prof. Paul Watta Software Consultation Prof. Natarajan Narasimhamurthi Hitachi Semiconductor Robin Blanton MontaVista Software John Waldron Creative Controls Heather Young Dearborn Group Mark Zachos Acknowledgements
Feedback Any questions, comments, or suggestions?