FPGA ogg Vorbis/Theora player

i am quite a newbie in FPGA development. my idea is build a SoC(System on Chip) which will be a Video/Audio player based on FPGA(Xilinx Spartan 3E 1M gate count). the video and audio decoders are Vorbis for audio and Theora for video and will be almost hardware based as posible. the desgin will have a Soft CPU for directing data from CF,reading the fs and then output a bitstream to decoders. the audio decoder will output all the data to a DAC(20bit or 24 bit for better quality). the video decoder will write to a RAM which will be the LCD framebuffer. the cpu also can write to the framebuffer but it will write over decoder data so i will have some kind of osd when the decoder is playing(like for remaining time,volume and other stuff).

from what i understand,doing a full ogg decoder on chip is madness so what i have to do i build coproccessors that will do most of clock-expensive and the software will use those coprocessors,right?

the storage will be a CF card which are damn cheap and can work as IDEs. the part i want to know if this is posible to be done in a FPGA.

i saw a guy that made a full Theora camera which use a encoder for super-high resolutions(1024x768@30FPS-->1280x1024@15FPS) on a Spartan

2E which have a 300K gates.(that desgin is 96% of the FPGA,the article is in linuxdevices) so i guess a decoder that can decode 160x120-->640x480 @25FPS streams will be alot smaller and could fit into a FPGA.

i could move all the ogg vorbis decoder to a ASIC vorbis decoder(they exsist :) ) so saving the time about implenting the ogg vorbis format.

what you think,it is posible? which soft cpu(s) should i use,which things the cpu need to preform real fast? is it posible on a Spartan(development boards for spartan are damn cheap). if it is important to someone the desgin(the final one) will be powered with a LiPo battery :)

thx in advance

Reply to
Loading thread data ...

i am quite a newbie in structural engineering. my idea is build a suspension bridge which will have ten lanes of traffic over grand canyon.

You have to read the various Ogg specifications and figure out what parts those are.

The CF interface is definitely possible in an FPGA. As for the rest, probably yes, but it's not exactly the sort of project that is recommended for a newbie.

Good idea.

Depends on what your performance and cost requirements are.

That's something you need to research.

Spartan 3 or 3e should be good. A Virtex 4 offers a lot more processing power, and the FPGA fabric is faster, but it costs a lot more.

Not for very long.

I would think that for this application you'd be much better off using an existing ARM SoC.

Reply to
Eric Smith

Yep, and Andrey is definately a mad scientist:

formatting link

- a

PGP/GPG: 5C9F F366 C9CF 2145 E770  B1B8 EFB1 462D A146 C380
Reply to
Adam Megacz


I'd start here:

formatting link

IIRC, the report from this project had some analysis on performance issues.

formatting link

See also the short paper version:

formatting link

I've just found this too, but have not read this one.

formatting link


Reply to
Martin Ellis

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.