H264 and/or Video Codecs for Gadgeteer

I’ve got a Fez Spider with a camera and some displays. I’d like to make a crude video phone by using a second Fez Spider and transmitting the camera outputs from one to the other. To do that efficiently across a network I’ll need to encode the bitmaps that the camera is giving me. Does anyone know of a H264 or any other video codec code that works on the .net MF?

There’s no managed codec for NETMF. You’ll need to port a codec and you’ll have to do it in RLP or it will never be fast enough.

I’d be surprised if software decoding were possible, even in RLP, on any NETMF device. H.264 requires a LOT of CPU power. As for encoding, it’s a non-starter. FPGA or other hardware solution is the only answer.

We have done MPEG2 video playback through RLP before. We got about 75 frames per second on 200Mhz system.

MPEG2 is not H.264. Even multi-core GHz+ mobile devices use hardware to do decompression of H.264 video. You also weren’t encoding, which much more CPU-intensive than decoding.

There are more suitable codecs. Maybe one of the low-memory LZ variants? I’m not sure how fast you could do MJPEG, but that’s a possibility as well.

Given a low enough resolution, framerate, and bitrate, it may be possible to implement MPEG-2 or even H.264 on one of the Cerberus family devices, if you were able to take full advantage of the DSP and hardware floating point units available there.

Apparently the Blackfin is said to be able to do H.264, thanks to its integrated DSP and HWFP units, at low framerates and resolutions (and 600 MHz).