Designed and developed a Directshow source filter that enabled the playback of Mpeg2 transport streams. The transport stream was received over udp (unicast or multicast). The transport streams contained Mpeg2, or H.264 video and Mpeg1, Mpeg2 , Mpeg4 AAC or AC3 audio.
Designed and developed various components of the Multimedia Transcoder (MMT). The MMT transcodes common multimedia formats into wireless formats. The supported inputs include MJPEG from IP cameras, IP based MPEG-2 transport streams and analog capture cards. The MMT is capable of outputting media streams in 3GPP compliant video (MPEG4, H.264) and audio formats (AMR, AAC, AAC+, eAAC+), Windows Media formats (WMV9 audio and video). The MMT uses the remoting capabilities of the .NET framework, and is designed to be scalable and remotely configurable.
Designed and developed DirectShow source filters in C++ to enable playback of a custom file format. The filter supported both local playback as well as playback of live streams over the network. The custom file format contained video frames either in JPEG or MPEG-4 format. The filters enabled the user to play these custom files in any generic media application like Windows Media Player. It also supported seeking and playback of these files at different frame rates.
Implemented ActiveX and MFC based client applications to enable user to view video requested from a streaming server over TCP/IP. The client applications communicated with the server via XML commands. The user was provided with an option of viewing both live video coming in from cameras as well as archived video. The application also had other features for analyzing the video like motion detection and directional motion detection.
Epidural spinal cord stimulation has been demonstrated to help the recovery of walking abilities of patients with incomplete spinal cord injury when combined with partial weight bearing therapy. However, no work has been done in studying the dynamics of these signals generated with and without stimulation. In this study, we show that the underlying dynamics of such signals is chaotic. We also estimate the correlation dimension of these signals and show that the dynamics of gait with and without stimulation are different using the kinematic data of right knee and right hip.
Used the Globus toolkit to set up a distributed grid on four machines. The Globus toolkit is a set of services and software libraries to support Grids and Grid applications. This grid was used to test a framework that automatically performed load balancing by partitioning both data and functionality. The project achieved automatic load balancing while at the same time providing transparency to the user. The system was tested by implementing basic image manipulation functions in Java and comparing the performance by running the same algorithms on individual machines.
Developed an image processing algorithm in C++ to find the location of the license plate in an image. First a technique was used to detect the the presence of a vehicle in a video and once the vehicle was found image processing methods were applied to locate the position of the license plates in the image. The video was decoded using DirectShow. This ensured that the algorithm was format independent and worked on any video format.
Here several existing face recognition algorithms were implemented and their performance was compared.
Here we implemented and tested an enhanced DMA controller based on the EDMA present in the TI TMS320C64X Processor
This project involved the design and development of an ATSC and DVB compliant MPEG-2 Transport Stream decoder on the server end and a MPEG-2 video decoder on the client end. The server was responsible for decoding the MPEG 2 transport stream in order to get stream information from the Program Specific (PSI) tables. This stream information, that included number of video and audio channels and rating information was sent to the client. On the client end, the user then would choose a video channel and the server would start streaming only the relevant data over the network. The client was responsible for decoding the MPEG-2 video thus obtained. The system also provided the user with navigational options like jog, scan, pause, stop. This project involved the use of sockets, thread synchronization, buffer management, MFC and was written in C++.
This project involved the development of DirectShow and QuickTime wrappers for an in-house MPEG-4 advanced profile video decoder. These plugins enabled the user to view MPEG-4 video that had been encoded using the in-house encoder on Windows Media Player and Quicktime, thus doing away with the need for making separate media players for each platform.
Developed a platform independent and robust GIF decoder. This decoder was aimed specifically at a mobile platform, hence was highly optimized both for the memory footprint size and performance. The decoder was written in ANSI C to ensure cross platform compatibility and it was tested on Linux, Windows and Solaris. The decoder developed was thread safe and could handle multiple instantiations.
This project involved the design and development of wrappers for an MPEG-4 AAC audio decoder.