Virtual USB Bus for Shared Webcam Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional virtualization systems exclusively allocate USB video cameras to Guest OSs, preventing simultaneous access by Host and other Guest OSs, and require special drivers for each OS, making it inconvenient and resource-intensive, especially for applications like Skype.

Innovation Solution

Implementing a virtual USB bus and a virtual driver within the Host system that allows multiple Guest OSs and the Host to access a standard USB video camera without switching, using a Virtual Machine Monitor (VMM) to communicate with a Host-side library, enabling shared access and processing of video streams.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a USB video camera is exclusively allocated to a Guest OS in a conventional virtualization system, then the camera can be used by that Guest OS without driver conflicts, but the Host system and other Guest OSs cannot access the camera simultaneously

Engineering Contradiction:
Improvecamera accessibilityVSAvoiddriver installation complexity
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The patent implements a universal Host-side camera driver that enables a single physical camera to be accessed by multiple Guest OSs and the Host system simultaneously through virtualization. The driver creates virtual camera devices that appear to each Guest OS as native USB cameras, eliminating the need for separate drivers in each Guest OS while maintaining simultaneous accessibility for multiple users and applications.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Reliability

If a USB video camera is dedicated to a single VM, then the VM can use the camera without interference, but the Host system loses access to the camera interface

Engineering Contradiction:
Improvecamera usage stabilityVSAvoidsystem resource sharing
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent segments the camera resource access by creating virtual camera devices for each Guest OS while maintaining a unified Host-side driver. The virtual USB bus architecture divides camera access into separate virtual channels, allowing each Guest OS to have dedicated camera access within its virtual environment while the Host system retains control and can allocate resources dynamically to multiple users simultaneously.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The Host-side camera driver acts as an intermediary between the physical camera and multiple Guest OSs. It receives camera access requests from multiple sources, manages resource allocation, and provides stable camera functionality to each requester simultaneously, ensuring reliability while enabling versatile resource sharing.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If special boot-up drivers are installed for each Guest OS to use the camera, then each Guest OS can access the camera, but the system requires additional resources and installation overhead

Engineering Contradiction:
Improvemulti-GOS camera supportVSAvoiddriver installation overhead
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The universal Host-side driver eliminates the need for separate boot-up drivers in each Guest OS. A single driver installation on the Host system provides camera functionality to multiple Guest OSs simultaneously, reducing installation overhead and resource requirements while maintaining full camera access capability for each Guest OS.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9389896B1Sharing webcam between guest and host OS
Publication Date: 2016.07.12 PARALLELS INT GMBH
  • US9389896B1 patent drawing
  • US9389896B1 patent drawing
  • US9389896B1 patent drawing

AI summary

A system, method and computer program product for implementing a video camera that is accessible by different Virtual Machine GOSs and the Host system. A standard USB video camera is build into a Host system. A VM running a Guest OS is launched on the Host system. The Guest OS has virtual driver for the Host video camera. The virtual driver is connected to a virtual USB bus, which communicates with a special Host library over a Virtual Machine Monitor (VMM). A special Host side VM application acquires and processes video data from a standard Host system video processing API that communicates directly with a Host-side virtual camera driver. Video frames are provided via the Host-side VM application to the virtual USB bus and to the virtual driver. Host applications or other VMs can acquire video streams from the Host USB camera simultaneously.