Hi Jay,
Has someone attempted h264 & vp8 encoding and decoding on Beagleboard, for
live streaming over say RTP ?
I am working on the project where we are using BeagleBoard (BB) for
live h264 encoding and streaming (http://veter-project.blogspot.com).
However, I did not try vp8 because I am not aware about DSP
accelerated vp8 implementation for BB (would also appreciate any
references if I overlooked it). So the answers below are only about my
experience with h264 encoding.
I did find mention of h264/vp8 decoding, and
google's arm7 vp8 codec being okay for 360p but not for 720p, but my
question is around encoding.
Is the h264 & vp8 encoding on Beagleboard use the DSP or on the MCU/CPU?
There is h264 encoder from TI which is using DSP. I've never heard
about vp8 encoder though.
Idea is to see how much CPU horsepower is available on the Beagleboard,
during such encoding process. Is there any hope of running some computer
vision algos (which are computationally intensive) in parallel ?
Does someone have data on what frame-size and frame-rate is achievable for
h264 / vp8 encoding (& decoding) on Beagleboard ?
I am using Gstreamer with gstreamer-ti plugins for encoding. I did not
made precise measurements but very rough estimations based on my
observations are the following. If there is no need for colorspace
conversion, i.e. if video grabber or camera can provide the UYVY raw
frames (the only colorspace supported by TI's DSP accelerated encoder
on BB), then it is possible to encode 320x240@30fps with about 50-60%
CPU load. Standard PAL resolution would also work but with slightly
higher CPU load (about 70%). As I remember 640x480 was driving the
load up to almost 100%. If you will need to do the colorspace
conversion, then you can add 10-15% load to the numbers above (because
it is done on CPU). But again, please take these numbers with the
grain of salt. They are just my rough observations and not a precise
measurements.
Speaking about computer vision - OpenCV works fine on BB but pretty
slow because it does not use DSP. There is google summer of code
project where the guys were trying to reimplement some core algorithms
using DSP but I do not know a lot about final performance improvements
they were able to achieve. What might be interesting in your case is
the DSP accelerated image processing library from TI:
. It provides basic building blocks such as for example edge
detection, fft, etc.
Also, if used in a commercial application, does the developer/seller have to
pay license-fees/royalties for use of h264, or is this something TI covers ?
Read a comment in an earlier post, that for the vp8 dsp codec, one needs to
pay (significant!) license-fees. Can someone confirm / deny this ?
Sorry, but I can not comment on this. Have no idea about all this
licensing staff.
HTH,
Andrey.