Thursday, October 14, 2010

 

TI DM6467 Analysis

http://blog.radvision.com/voipsurvivor/2009/11/16/hd-video-chip-case-study-ti-dm6467-analysis/


This post is part of our Designing Hardware for HD series. Be sure to check it out!
[While I've done my best to cover the various options for HD video chips and the trends in the market, I also wanted to take a deeper dive and explain how we analyze such a chip. In this case, the TI DM6467, which we have selected as the basis for our BEEHD product. For that, I asked Amit Klir, our resident video architecture expert, to share his insights. I do warn you though  some of the information here is quite low-level even for me.]
I’ve been working on the TI DM6467 for a while now, as part of our VC240 HD (video telephony LCD monitor) project. My role in the project is taking care of the audio and video codecs’ quality and the architecture of the media system we have built into the device, on top of the chip itself.
The DM6467 is a system-on-chip for multimedia applications. From an architecture point of view, it splits the media processing and the application into two separate processors: media processing is targeted to run on a powerful DSP that comes coupled with video accelerators, while the application is targeted to run on an ARM host processor.

TI DM6467 functional block diagram (PDF)
I won’t go over the whole set of peripherals and devices in the block diagram above, but I do want to touch the areas that I think would interest you the most, especially if you are in a search for a video chip.

EVM

The DM6467 has an EVM (evaluation board), which you can use to start the project without having to design and manufacture the hardware before the programmers start doing their thing. This is possible, as the DM6467 has a host of its own.

Host

The DM6467 comes with a 300 MHz ARM 9 host processor. TI was kind enough to provide MontaVista Linux out of the box for it, with an almost full set of driver packages to start with.
We have based our solution on top of the TI offering, although at times we had to “tweak” some of the drivers and the kernel itself.

DSP

The DSP on the DM6467 is a C64+ core – a technology that TI is using in a lot in other system-on-chip solutions of theirs, making it quite robust. It is fully programmable, allowing the use of it for a lot of tasks that are not related specifically to video coding. We actually use the DSP to deal with the audio coding in parallel.
In a way, the DSP itself doesn’t run the video coding engine, but acts as the controller of the process, which runs on the various accelerators. It is what allows the DM6467 to achieve HD video coding.
To access the video accelerators, the DSP uses the DMA engine for rapid data transfer, and interacts with small ARM 968 processors that control the accelerators.
Some other cool features the DSP has are the ability to handle very large vector operations and its advanced cache system.

Accelerators

As mentioned already, the DM6467 comes with a set of video accelerators that are designed to meet specific video processing challenges.

VICP

Video coding on the DM6467 is done in the VICP – the High Definition Video Imaging Co-Processor. There are two of those in the DM6467 – one for encoding and the other for decoding. This separation allows simultaneously encoding and decoding in a single chip.
These accelerators where designed to deal with the CPU-intensive video coding tasks required by H.264 and other codecs. These include motion estimation, intra-prediction, mathematical transforms, quantization, loop filtering and syntax coding.

VDCE

The VDCE is an image co-processor which is used for specific pre- and post-processing algorithms on the video frame, such as:

DMA

The DMA engine of the DM6467 is quite a powerful one. It deals with all data transfers from/to virtually everywhere on the system (from external memory to internal one, from external memory to the VICPs, etc). This means that the DSP remains “free” of these tedious memory transfers and can be utilized for “real” processing.
As the goal is to deal with HD video, the memory bandwidth is extremely high, to the point that without the DMA engine it would simply be impossible.

Peripherals

The great thing about the DM6467, especially if you are planning on developing an endpoint device, is the fact that it comes with quite a wide range of peripherals: USB, video input and output ports, PCI, Ethernet to name a few.
These make it easier to design the hardware, when you finally get down to it.

Large ecosystem

One thing that should not be left out when selecting a video chip is the ecosystem that comes with it, usually from the chipset vendor. Another aspect of it is the user base – how many have already used the chip (or are currently using) for a similar purpose?
The DM6467 has quite a large ecosystem, which is based on the fact that it uses an ARM 9 as host and a C64+ DSP. The C64+ DSP is one of the most popular DSPs out there, and has been in the market for a few years already. So additional tools and modules that you might need down the road – such as encryption algorithms, audio codecs, image processing libraries and the likes – are probably already available from 3rd party companies.

What Else Is Needed?

While this might seem perfect, there are areas where the DM6467 is going to cause you some pain, if you are planning to use it for an HD videophone product.
Here are a few, which might – sadly – require you to add additional hardware devices in your hardware design:

Only 2 Video Ports

The DM6467 comes with only two video ports. This allows connecting a camera from one side and a display from the other (or other devices). It doesn’t leave a lot of room for additional inputs and outputs that might be required in a full videophone product.

OSD

While the DM6467 has its own On Screen Display (OSD) module, it supports only 2 bits-per- pixel. That’s a range of 4 colors for the OSD, which just doesn’t cut it for a good user interface. It means that you will need to find another solution for your OSD, external to the DM6467.

Upscaler

The DM6467 provides a hardware-based down-scaler, but not an up-scaler. You will either need to implement it in software on the DSP, or do it on an external device. And you will definitely need to upscale once you get video in lower resolutions.

Muxer

There is no hardware acceleration available in the DM6467 for comprising the video layout on the screen (combining several video images into a single display).

No PCI Express Interface

While you might not need a PCI Express interface, but it might come handy at times – especially if the way you plan to deal with the OSD, Upscaling and muxing is by means of moving the data to and from the DM6467 to external devices doing these operations by way of PCI Express.
The fact that there isn’t such an interface means that some architecture solutions will simply be harder to implement (if not impossible altogether).

Limited USB and PCI

If you plan on using the USB or PCI interfaces that come with the DM6467, you should check their specs closely. The way they are designed, and especially their memory management, doesn’t allow for high throughputs – at given use cases they provide a lot less bits per second than you need.

Limitations Aside – DM6467 is a Solid Choice

While this may seem to a bit harsh, it still is one of the best solutions on the market today, and for good reasons:
I’d say that this is why this chip is so popular by video conferencing vendors.

Comments:

Post a Comment

Subscribe to Post Comments [Atom]





<< Home

This page is powered by Blogger. Isn't yours?

Subscribe to Comments [Atom]