Introduction to PLVT DSP Solutions
TI DM642 Based Implementation

In this system, a TI DM642 DSP chip functions as the workhorse of image understanding as shown on the upper circuit board. The second board functions as the user’s application-specified board, which might be different or not present for different applications.
To program DSP hardware we need to make the following tradeoffs:
1. Speed and portability. To program a given DSP, the best way is to optimize the code at assembly level. However, the assembly level optimization is heavily dependent on the design of DSP hardware. It is very possible that the assembly level optimization becomes vain when the same kind of task needed to implement in other DSP platforms. Therefore, the more portable solution is to program everything in pure C language. However, since the state-of-the-art compilers for DSP hardware platforms can not optimize the speed well enough if the C codes are organized casually, additional efforts must be taken to optimize the C codes to make the compiler more likely to perform higher level optimization.
2. Pure C versus C++. While C++ is much better than C in many applications, programming in pure C is always the best choice when one program DSP because in general the compilers for DSP hardware have better performance to support C. And in many cases, they only support C. To make a program the most portable and reusable, the best practice is to program it in C.
3. Cellular program versus function level program for image processing. While function level program for image processing, such as those used in OpenCV, is good enough in applications based on general-purposed CPU(such as Intel CPU), it is not a good choice for DSP programming of image processing. Cellular program is much easier to optimize for DSP structure because of its local properties. However, cellular program usually results bigger code size.
We have the following conclusion. When memory is big enough, the processing speed is critical and portability plays an important role, we choose to program DSP using C language and cellular program. The DSP image processing libraries and demo source codes are based on this consideration.
The DSP libraries of the software developer’s kits and the DSP source code in C for image processing and understanding tasks can be found at the following links.
| Library Name | Function | Remark |
| MotionDetect | Motion detection and motion understanding | Evaluation Kit |


