From: Tim Wescott on
On 06/25/2010 01:32 AM, b_dutta wrote:
> Hi,
>
> Seeking some recommendations for embedded low-power (definitely
> fanless) uP + DSP that can handle H.264 Basic profile encoding, for
> VGA frames @ 30fps (or more) with 30% (atleast) motion. At the moment,
> DaVinci seems the closest choice, but for the price-points I am
> looking at, DaVinci's are still about 40% more expensive. Blackfin
> seem the second best choice, but are lack horsepower on DSP end
> (apparently from some reports) for the kind of H.264 heavylifting.
>
> Given the dual objective of low-power (consumption), and low-cost, are
> FPGA's a viable alternative ? What could be the potential pitfalls of
> using FPGA, as against a DSP.
>
> Application context is ruggedized, semi-mobile/portable, communication
> (VoIP over 3G), control/monitoring device. Control is for resistive
> load equipment upto 1KW, and monitoring some sensors.

I don't know the specifics of H.264, but I do know some generalities:

An FPGA _may_ be a viable alternative. Power will be a concern, but my
experience with video processing in FPGA vs. DSP was that you can't just
consider the processor -- the memory for frame buffers is a big
"everything hog", and using an FPGA gives you tons more flexibility to
interface to memory. Thus, even if an FPGA _by itself_ consumes more
power and/or money, an FPGA _with memory_ may be less expensive than a
'cheaper', 'lower power' DPS once you get it hooked up to memory and
whatnot.

Designing with FPGAs is much more involved -- HDLs look like C from a
distance, but you're working at a level of detail that's a lot more like
assembly language than C is. Some operations that are prohibitive in a
DSP are easy in an FPGA, some algorithms that are easy in a DSP use up
tremendous amounts of FPGA space.

I tend to separate FPGAs and DSPs into two domains -- FPGAs are good for
small, tight algorithms that need to run fast. DSPs (and to a greater
extent general-purpose microcontrollers) are good for large algorithms
with lots of conditional execution that can run more slowly.

Were I you I'd investigate not two, but three possibilities: one, an
all-DSP solution; two, an all-FPGA solution; and three, an FPGA with a
small processor "helper". Doing so will blow your selection process
wide open, because now you have a huge balancing act between the FPGA
and the processor, but it also gives you the opportunity to have a cheap
little processor doing what processors do best, along with an FPGA doing
what FPGAs do best. It also raises the question of whether that
processor should be inside or outside of the FPGA.

There's a lot of ways to skin the cat, unfortunately it's not always
obvious which ones are any good until you start getting messy.

As an example of this, I used to do a lot of work with imagers that
worked at video rate. Detector pixels would need to be individually
corrected for gain and offset; it was possible to do this with a DSP,
but it'd be such a busy little chip, with an enormous choke point at the
memory interface. By the time you were done making that happen in a DSP
you had one expensive DSP that was so bogged down in memory accesses
that it needed a second processor for "everything else". Given that, we
always ended up using an FPGA for that DSP task.

So we'd have the FPGA handle 'pixel rate' stuff, and anything that
happened at "human speed" -- i.e. looking for commands (on buttons or
comm interfaces) to change overall contrast or level or video mode or
whatnot -- was always done with a processor. You could, in theory, do
this in an FPGA, but if you did you'd have huge swaths of logic, capable
of running tens or hundreds of MHz, sitting idle only to come on once
every second or so. So there'd be a processor in charge of talking to
the outside world, and that processor would read and write registers on
the FPGA to make it do stuff.

Controversy generally raged over what to do with processes that happened
at the frame rate or the line rate -- I happened to be in the camp that
said that the FPGA should stick with things happening at the pixel rate,
and any higher functions (like phase locking frames to external sources,
or calculating register values for 25Hz vs. 30Hz operation or corralling
frames over a high speed bus) should happen in the processor under a
frame interrupt, while the more hard-core FPGA guys would campaign to
have the FPGA 'do everything'.

Both answers are right, which is why there was room for the controversy
to rage. I will say that doing this with a processor + cheap FPGA _may_
be the best way to go -- but it depends on what you can do with what you
have.

--
Tim Wescott
Control system and signal processing consulting
www.wescottdesign.com
From: Vladimir Vassilevsky on


b_dutta wrote:

> Hi,
>
> Seeking some recommendations for embedded low-power (definitely
> fanless) uP + DSP that can handle H.264 Basic profile encoding, for
> VGA frames @ 30fps (or more) with 30% (atleast) motion.

Forget about it.

> At the moment,
> DaVinci seems the closest choice, but for the price-points I am
> looking at, DaVinci's are still about 40% more expensive.

DaVinci is a marketing word. It means nothing. Which TI processor do you
mean? What is 40% more expensive compared to what?

> Blackfin
> seem the second best choice, but are lack horsepower on DSP end
> (apparently from some reports) for the kind of H.264 heavylifting.

Which of BlackFins?

> Given the dual objective of low-power (consumption), and low-cost, are
> FPGA's a viable alternative ?

No slightest clue, huh. Just casting buzzwords. Are you a stupident?

> What could be the potential pitfalls of using FPGA, as against a DSP.

What could be potential pitfalls of using a boat, as against a car?

> Application context is ruggedized, semi-mobile/portable, communication
> (VoIP over 3G), control/monitoring device. Control is for resistive
> load equipment upto 1KW, and monitoring some sensors.

I also know many smart words: surge, gradual improvement, chaos theory,
innovation, digital DNA, hyperstring, nanoparticle.

VLV

 | 
Pages: 1
Prev: What is message collison?
Next: Numonyx/ST M45PE80