Embedded Video Processing and Transmission by eld18221

VIEWS: 156 PAGES: 9

									Embedded Video Processing and Transmission


              A Project Report Prepared for the
              Final Project of the ECE Course
       EE439/539: Wireless Distributed Sensor Networks

                        Dec 2, 2008




                         Prepared by:
                         Clive Sugama
                          Kamel Itani
                            Lei Zhao

       Department of Electrical and Computer Engineering
                     University of Alabama
              Tuscaloosa, AL 35487-0286 USA
                                        Abstract

       The video capturing devices were used to capture live video through MATLAB.

The USB video camera was used in this project. The IAR workbench and MATLAB was

used to edit the code for the wireless devices. Transmission of a processed embedded

video stream via the eZ430-RF2500 wireless development tool was in the process of

being implemented. The eZ430-RF2500 wireless development tool is a complete wireless

development tool for the MSP430 and CC2500 that includes all the hardware and

software required, creating an entire wireless project with the MSP430 in a convenient

USB stick.



                           2.1 Background and Motivation

       The SimpliciTI network protocol was being tested on the eZ430-RF2500 wireless

development tool. The SimpliciTI network protocol is a simple low-power RF network

protocol aimed at small Wireless Sensor Network. It is extremely new and thus has not

been explored to its full potential. The low data rate of 500 kbps being the maximum

data rate made this project a challenge. The connection between two access points of

SimpliciTI protocol was the initial problem. Considering the transmission rate of the

UART port, the encoding of the video stream is another challenge of the developing

project. The transmission rates and distances were observed. The video stream had to fit

the transmission rate over the wireless connection. The code for the end device was in

the process of being modified in MATLAB to successfully transmit the video stream.
                          2.2 Research Goals and Objectives

       The transmission of a processed embedded video stream was the overall goal of

our project. We tried to use the Chipcon eZ430-RF2500 Development as our hardware

platform. The IAR workbench was used to debug the code and write to the wireless

devices. MATLAB was our software platform to encode the video stream and decode it.

The SimpliciTI protocol was used for the transmission of the video stream. The sample

code of the wireless sensor monitor offered in the TI website was used to complete this

objective. The code was adjusted so the end device will be the other computer using the

eZ430 rather than the current end device. The expectation of the final step would be to be

able to send the video stream from the first computer to the next via the wireless devices

(Figure 1). A practical need for this sort of video wireless transmission could be used for

security applications.




                               Figure 1 Hardware Platform
                  2.3 Research Methods and Algorithm Description

       The research methods involved included using the previous mini projects as

examples in capturing video data. The video stream was then altered to detect movement,

and displacement. A key command included imaqhwinfo which was used to return

information about available image acquisition hardware.

       Another key command was device = winvideoinfo.DeviceInfo(1). If an adaptor

provides access to multiple devices, we need to find out more information about the

devices before we can select a device ID. The DeviceInfo field is an array of device

information structures. Each device information structure contains detailed information

about a particular device available through the adaptor.

       The command videoformats=device.SupportedFormats was another vital piece.

The video format specifies the characteristics of the images in the video stream, such as

the image resolution (width and height), the industry standard used, and the size of the

data type used to store pixel information. The Supported formats field is a cell array

containing text strings that identify all the supported video formats.

       The image acquisition toolbox is a collection of functions that extend the

capability of the MATLAB numeric computing environment. The toolbox supports a

wide range of image acquisition operations, including acquiring images through many

types of image acquisition devices, from professional grade frame grabbers to USB-based

Webcams. The process in this project included viewing a preview of the live video

stream, triggering acquisitions (including external hardware triggers), configuring

callback functions that execute when certain events occur, and bringing the image data

into the MATLAB workspace. The toolbox also supports a wide range of image

processing operations including spatial image transformation, morphological operations
, neighborhood and block operations, linear filtering and filter design, transforms, image

analysis and enhancements ,image registration, deblurring, and region of interest

operations.



                              2.4 Results and Discussion

       The use of MATLAB and a video camera enabled the capture of video streams.

The code from previous mini projects was adjusted to transform the standard video

stream to an abstract display feature. The transmission of the video stream using the

simpliciti protocol was unfinished. The code was adjusted in the IAR workbench, but

was not successful. A workaround was implemented to complete the task at hand. A

program similar to windows remote desktop called ultra virtual network connection was

used. The protocol involved basic TCP/IP protocols to establish a connection. A full

version of IAR workbench was needed to apply the simplicity protocol to both RF2500

devices.
                           2.5 Conclusion and Future Work

         The code for MATLAB was able to capture the video stream. The video

capturing device was able to capture the environment upon movement. The transmission

of the video stream using the eZ430-RF2500 was in the process troubleshooting. The

simpliciti protocol was being implemented in the transmission process. The full version

of IAR workbench was needed to apply the simpliciti protocol for the transmission

between the eZ430-RF2500 devices. The ez43-RF2500 supported very low data rates

which included a 500 kbps transmission rate, which seemed slow for a video transmission

application.



                                 2.6 Staff Contribution

         Each member added to the objective by each contributing equally. Lei Zhao used

the USB video camera that coordinated with MATLAB to do visual video imaging.

Clive Sugama and Kamel Itani focused on the data transmission between two wireless

nodes.




Reference

[1] Miguel Morales, “Wireless Sensor Monitor Using the eZ430-RF2500 (Rev. B)” Sep

2008
[2] “eZ430-RF2500 Development Tool User's Guide (Rev. C)” 12 Jun 2008

[3] “Introduction to SimpliciTI An open source low power RF protocol from Texas

Insruments” Jul 17 2008

[4] “CC2500 Datasheet Low-Cost Low-Power 2.4 GHz RF Transceiver (Rev. B)” Sep 13

2007

[4] http://focus.ti.com/docs/toolsw/folders/print/ez430-rf2500.html

[5] http://qh.eng.ua.edu/classes/fall2008/ece593/index.html

[6] http://www.mathworks.com/matlabcentral/fileexchange/18596

[7] http://focus.ti.com/mcu/docs/mcugettingstarteddetail.tsp?sectionId=97&tabId=1511&

familyId=342

[8}Multiple Human Tracking and Gait Based Human Recognition , Nanxiang Li, Xiaoji

Ma , Xiangrong Li, University of Kentucky. Dec, 2007

[9]Target Tracking Using Kalman, March, 2006

[10]Real Time Microphone and Camera data acquisition and audio-video processing ,

Theodoros Giannakopoulos, Feb 4th, 2008




Appendix




   (1) info.m


winvideoinfo = imaqhwinfo('winvideo')
device = winvideoinfo.DeviceInfo(1)
videoformats=device.SupportedFormats
    (2) capture.m


warning off;


% Setting during time
during_time =input('during time [100]? ');
if length(during_time)==0, during_time=100; end


%Initialization
  vid = videoinput('winvideo', 1, 'RGB24_800x600');
  set(vid,'FramesPerTrigger',1);
  set(vid,'TriggerRepeat',Inf);
  triggerconfig(vid, 'Manual');
start(vid);


%Capture
for (i=1:during_time)
trigger(vid);
      IM = rgb2gray(getdata(vid,1,'uint8'));
        imshow(IM);
        drawnow;
end


stop(vid);
    (3) motion.m


warning off;


% Setting during time
during_time =input('during time [100]? ');
if length(during_time)==0, during_time=100; end


%Initialization
  vid = videoinput('winvideo', 1, 'RGB24_800x600');
  set(vid,'FramesPerTrigger',1);
  set(vid,'TriggerRepeat',Inf);
  triggerconfig(vid, 'Manual');
start(vid);


%Capture
for (i=1:during_time)
trigger(vid);
      IM = rgb2gray(getdata(vid,1,'uint8'));
      if (i==1) IM_PREV = IM; end
      IM_DIFF = abs(double(IM) - double(IM_PREV));
      IM_DIFF=255-IM_DIFF;
      IM_PREV = IM;
      imshow(IM_DIFF/256);
        drawnow;
end


stop(vid);

								
To top