1 / 15

videotag - PowerPoint PPT Presentation

  • Uploaded on

VideoTag. Video Display and Recording Aaron Shepler. Motivation. Enable the user to view real-time video from the camera Allow the user to annotate on top of the video image Facilitate simple video recording. Previous / Related Work.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'videotag' - Audrey

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Videotag l.jpg


Video Display and Recording

Aaron Shepler

Motivation l.jpg

  • Enable the user to view real-time video from the camera

  • Allow the user to annotate on top of the video image

  • Facilitate simple video recording

Previous related work l.jpg
Previous / Related Work

  • Point Grey Research has written a C++ wrapper for reading/writing to an AVI

  • Microsoft is working on an InkCanvas control (to be released in Vista) that would potentially allow for something similar – inking on multimedia

Challenges l.jpg

  • How do I use the camera in C# when the interface is in C?

    • The .NET framework allows for easy integration between different managed types of code: i.e. Managed C++ and Managed C#

    • Integration between unmanaged code and managed code is not very well documented

Challenges5 l.jpg

  • How do I place the image on the screen once I have data using C#?

    • Lower level operations, such as direct access to screen are not available

Challenges6 l.jpg

  • How do I manage the recording of the video

    • C# does not have built-in AVI recording functionality

    • Function calls from C would also have to be wrapped

Camera approach solution l.jpg
Camera Approach / Solution

  • Two possible approaches that allow for use of camera in C#

    • Link in flycapture camera methods directly

      • Large blocks of unsafe { } code due to use of pointers

    • Link in a library that simplifies the interface

      • Few lines of unsafe { } code

Camera approach solution8 l.jpg
Camera Approach / Solution

  • Mistake…

    • First tried to link in flycapture camera methods directly

      • Unsafe { } blocks of code were everywhere due to the use of pointers

      • Became a C-based program

    • Learned my lesson the hard way

Camera approach solution9 l.jpg
Camera Approach / Solution

  • Encapsulated lower level camera functionality in a library…

    • Created a small library of methods

      • Interface was well defined

      • Less time spent matching compatible types

Camera approach solution10 l.jpg
Camera Approach / Solution

  • CameraLib

    • Library with basic camera functionality

      • void initialize();

        • Initializes the first camera on the FireWire bus, creates context, etc

      • void* grabImage(unsigned char*);

        • Retrieves an image based on the camera context

      • void destroy();

        • Destroys the camera context

    • Pure C library for use in managed code

Video approach solution l.jpg
Video Approach / Solution

  • In order to place the image onto the screen, the InkPicture control was used

    • Allows the background image to be changed while maintaining the ink on top.

    • Create thread in C#

      • continuous capturing / refreshing the image

Recording approach l.jpg
Recording Approach

  • Record to Avi using C# wrapper class

    • Same refresh thread adds the current bitmap to the next frame in the AVI

    • Pro:

      • Easy to access bitmaps out of the AVI later

    • Con:

      • Large file is unhandy

  • Avi wrapper written orginally by René Nyffenegger (modified by John Corinna), located at:


Discussion l.jpg

  • How can we reduce the slight flicker with the video/ink?

    • Double buffering?

    • User Drawn Control?

Discussion15 l.jpg

  • What methods of encoding the video data would be faster and more robust than AVI?

    • Various compression models?

    • Existing codecs?