1
\$\begingroup\$

I need to take an unencrypted HDMI input, buffer that to memory, overlay it if possible, than encode it as mpeg2-ts and output it to an external device. I could do that with a raspberrypi and an external hdmi to csi chip, or I could do that with a FPGA.

However, licensing the mpeg2-ts encoder core could be expensive. Is it true to suppose that one can simply place a linux core on the FPGA with enough video processing capabilities to encode a 1080 or 720p (downsampling should be done on the fpga)?

Thank you.

\$\endgroup\$
5
  • \$\begingroup\$ For some definition of "simply". No, there is no such thing as a linux core for FPGA. It is possible to implement a MPEG encoder on an FPGA, but this is as well far from simple. \$\endgroup\$ Commented Feb 10, 2015 at 12:11
  • \$\begingroup\$ Doing the encode in "software" on the FPGA doesn't free you from the MPEG-LA patent licensing requirement either. \$\endgroup\$
    – pjc50
    Commented Feb 10, 2015 at 12:14
  • 1
    \$\begingroup\$ It's a prototype so far, so I'm not really worried about MPEG licenses for now. Isn't the MicroBlaze an example of a "linux" FPGA core? \$\endgroup\$
    – cedivad
    Commented Feb 10, 2015 at 13:11
  • 1
    \$\begingroup\$ Yes, it can run Linux, but you won't be able to encode fast enough. \$\endgroup\$ Commented Feb 10, 2015 at 19:53
  • \$\begingroup\$ Well, depends on what you want to achieve, if you want, you can add a HW accelerator to the FPGA part and then use MicroBlaze for interfacing only. But MB can not handle such complex algorithm by itself. \$\endgroup\$
    – FarhadA
    Commented Feb 11, 2015 at 9:07

1 Answer 1

1
\$\begingroup\$

From a performance perspective putting soft processors on FPGAs gets you "the worst of both worlds", you get the inefficiency of general purpose processors (e.g. much less paralellism than custom logic) with the inefficiency of FPGA logic (much lower clock speeds, much higher silicon area per gate than the gates in a "hard CPU").

So soft processors on FPGAs are sometimes useful for control/utility stuff but for heavy number crunching they are a terrible idea. I find it highly unlikely that a soft processor on a FPGA could encode video in realtime.

A pi isn't going to help you very much either for starters there is no documentation on interfacing custom stuff to the CSI. Also AIUI the only hardware encoder on that chip is for h.264 and the CPU is nowhere near powerful enough to do it in software.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.