videotag l.
Skip this Video
Download Presentation

Loading in 2 Seconds...

play fullscreen
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

Download Now 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


Video Display and Recording

Aaron Shepler

  • 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
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
  • 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
  • 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
  • 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
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
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
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
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
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
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:
  • How can we reduce the slight flicker with the video/ink?
    • Double buffering?
    • User Drawn Control?
  • What methods of encoding the video data would be faster and more robust than AVI?
    • Various compression models?
    • Existing codecs?