Model-Based Design to Develop and Deploy a
Video Processing Application
Model-Based Design with Simulink®, Video and Image Processing Blockset, Real-Time Workshop® and TIC6000 Blockset can be used to design a embedded system, to implement the design on a Texas Instruments DSP, and to verify its on-target performance in real time.
Why this approach?
The core element of Model-Based Design is an accurate system model— an executable specification that includes all software and hardware implementation requirements, including fixed-point and timing behavior. We use the model to automatically generate code and test benches for final system verification and deployment. This approach makes it easy to express a design concept, simulate the model to verify the algorithms, automatically generate the code to deploy it on a hardware target, and verify exactly the same operation on silicon.
- Building the System Model using Mathworks Simulink
- Converting the Design from Floating Point to Fixed Point
- Automatic code generation using RTW/RTW Embedded Coder
- Implementing and Verifying the Application on TI Hardware
01 Building the System Model – Algorithm
Using Simulink, the Signal Processing Blockset (SP Blockset), and the Video and Image Processing Blockset (VIP Blockset), first develop a floating-point model of canny edge detection system. This model detects the edges of input video using a complex 'canny' edge detection algorithm.
Input a video stream to the simulation environment using the "From Multimedia File block" from the VIP Blockset. During simulation, the video data is processed in the Edge Detection subsystem, which outputs the detection algorithm results to the "To Video Display block" for video visualization.
The main subsystem of our Simulink model is canny edge detection. The sequence of steps in the edge detection algorithm maps naturally to the sequence of subsystems in the model.
We begin with a preprocessing step in which we define a relevant field of view and filter the output of this operation to reduce image noise. We then determine the edges of the image using the Edge Detection block in the Video and Image Processing Blockset. With this block we can use the Sobel, Prewitt, Roberts, or Canny methods to output a binary image, a matrix of Boolean values corresponding to edges.
Figure 1: Top Model in Floating-Point
Figure 2: Subsystem – Canny Edge Detection with Preprocessing
Figure 3: Results of Floating-Point