0

can anyone guide me the steps and knowledge needed to port a codec in ARM board. Like a development board below

http://www.arm9board.net/sel/prddetail.aspx?id=348&pid=200&AspxAutoDetectCookieSupport=1

i want to gain expertise in audio and video codec for embedded systems. My experience level is novice but i am ready to learn.

Need the pointers to start with

user530928
  • 109
  • 2
  • 9

2 Answers2

0

If you are looking to run on linux for example then there really is nothing to it, just compile as if you were running on a desktop/server. You might have performance issues, but those can and have been worked through in many ways.

If you are looking to go embedded, there are a lot more resources out there now than when I tried to do exactly what you are trying. In particular open source fixed point solutions. With arm becoming the leading processor in the world and most of them being fixed point this was solved many times over so there is plenty of code out there to play with.

That is a nice board you have found, on initial glance I didnt see if their core has a fpu or not, for that core it is optional. Just from the advertising I would assume out of the box that board/package does video and audio and all you need to do is turn it on and copy your videos our audio files over and play them.

If you want to learn the nuts and bolts of the codecs, then purchase the specs from ISO/IEC, probably a hundred to two hundred bucks each. And refresh your calculus, there is a lot of it.

old_timer
  • 69,149
  • 8
  • 89
  • 168
  • Hi Dwelch, Thanks you for explaining me in details about the paths i can choose. My real intension is to get my hands dirty with some programming for embedded. The board i selected might do all for me without writing a single line of code. But my real intention is to learn the embedded system progromming. Do you have any pointers from where i can start with. I already have expertise in C and linux. Reading codec will be a good idea but i dont know how much implementation i can really do to make it work from scratch. – user530928 Jan 31 '11 at 19:55
  • I think you need to define what you mean by embedded then. Quite a bit of what is called embedded is programs that make library or api calls, nothing really different than an application on a desktop system. RTOSes add some variation but again api or library calls. On top of an OS or not you can talk to hardware registers and memory. With an OS most of that is learning the api/lib calls for hooking into the kernel. You can continue to work your way down to having no operating system, no libs or apis except the ones you create. How deep are you interested in going, now, and in the future? – old_timer Jan 31 '11 at 20:36
  • Hi Dwelch, Thanks for you answer.To start with i want to start "learning the api/lib calls for hooking into the kernel". But i think i really want to go deep in future. May be to write device drivers et al. – user530928 Jan 31 '11 at 20:45
  • I think you should look at the Linux Device Drivers book from orielly and associates, http://oreilly.com/catalog/9780596005900/. I seem to remember at one point in time you could download a copy of the book in pdf form. either way if you have an interest in linux device drivers that book is the place to start, worth having a copy on your bookshelf. It is generic, not specific to audio codecs, etc. For hooking into existing audio codec you need to look up the driver for that codec and find out how to interface it. Much if not all of this you can do on your desktop computer. – old_timer Feb 01 '11 at 07:10
0

Try to look at this project: http://embdev.net/articles/ARM_MP3/AAC_Player It's a MP3/AAC player based on AT91SAM7S256 microcontroller.

Check also this https://datatype.helixcommunity.org/Mp3dec decoder. It's optimized for ARM.

Yax
  • 436
  • 3
  • 12