Texas Instruments DaVinci™ series offers a range of processors optimized for digital video processing. Although not appropriate for broadcast video, they are well suited for a number of other video applications. TI offers evaluation modules (EVMs), software development kits (SDKs) and reference DVR design kits (RDKs) that allow a company to jumpstart its development effort.
Mike Deeds previously wrote about TI’s changing support strategy. While at Cardinal Peak, I’ve had the opportunity to develop products with the DM365/368, the DM8127, the DM8148/47 and the DM8168. Here are some observations.
The SDKs come with a large amount of code — the TI81xx EZSDK is over 5 GB once decompressed. TI provides video capture, scaling, encode/decode, de-interlacing and display capabilities. Out of the box, you can run multiple demos that showcase these features. And if you purchase one of the DVR reference design kits, you even get a pretty decent application.
If your application’s video processing chain matches TI’s demo closely, you may have very little work to do — great! However, let’s be honest. TI’s demos are pretty simple. Chances are that you are developing something that is not so simple because simple is easy and if it’s easy to build, it probably already exists or tons of other people are building it at the same time. In most products, hard is good — it translates to a sustainable competitive advantage for you.
More typical applications require features like user-configurable video processing chains, custom image processing, low latency, or high throughput. And typically our customers want the product to be low power, low COGS, and shippable tomorrow.
All this implies a much more complex set of software than TI — or any other vendor — ships with its demo kit, and that’s where the real work starts.
The challenges always seem to fall in one of three categories:
- Things the SDK supports, but there are no examples or documentation.
- Things the hardware supports, but the SDK does not.
- Things that simply can’t be done on the platform.
We have experienced each of these types of challenges more than once. There is always a point on any project where our engineers say, “It seems like it should just work!” and of course it doesn’t. I call it the “two-week surprise” — on any project there is always at least one thing that I thought would take two days to develop that ends up taking two weeks instead.
Despite the challenges, TI’s SDKs do provide a lot of functionality, and they work well once you have found the magic incantation. And we have seen very few bugs or robustness issues. Overall, we’re still big fans of the platform.