Media Graph Cache for Rapid Stream Initialization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Media graph architectures in computing scenarios, such as videoconferencing, face delays in initiating media streams due to time-consuming buffer allocation and component communication, and lack flexibility in adjusting media stream properties without interrupting the generation process.

Innovation Solution

Implementing a media graph cache that stores pre-configured media graphs for rapid selection and adjustment, allowing for dynamic changes in media stream properties without interrupting the stream, and enabling on-the-fly switching of properties based on network and device capabilities.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If media graphs are built ad hoc with buffer allocation and component communication, then media stream generation can be performed, but significant delays of one or more seconds occur before stream initiation

Engineering Contradiction:
Improvemedia stream generation capabilityVSAvoidstream initiation delay
Core Design Contradiction:
Ease of manufactureVSLoss of time

Solution Approach 1:

The system pre-establishes media graphs and allocates buffers before media stream generation is needed. When a media stream request arrives, the pre-configured media graph can be immediately activated without undergoing time-consuming buffer allocation and component communication setup, thereby eliminating the 1- second delay while maintaining the ability to generate media streams

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If media stream properties are adjusted by transforming the stream (downsampling, re-compressing, rescaling), then adaptation to device capabilities is achieved, but processing complexity and time increase

Engineering Contradiction:
Improveadaptation to device capabilitiesVSAvoidprocessing complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

Instead of generating a media stream with default properties and then transforming it to match device capabilities (downsampling, re-compressing, rescaling), the system inverts the approach by first determining the target device capabilities and then configuring the media graph to generate the stream with appropriate properties from the outset. This eliminates the need for post-generation transformations and reduces processing complexity while maintaining full adaptability to different device capabilities

Inventive Principle:
Principle #13The other way round (Inversion)

3Adaptability or versatility

If media components are configured to allow rapid adjustment of media stream properties, then dynamic adaptation is enabled, but the ability to adjust without interrupting stream generation becomes limited

Engineering Contradiction:
Improvedynamic adjustment capabilityVSAvoidcontinuous stream generation
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The media graph is segmented into multiple parallel processing paths, each configured for different media stream properties. When adjustment is needed, the system switches between pre-configured parallel paths rather than modifying a single active path, enabling rapid property changes without interrupting the overall stream generation process and maintaining continuous reliable output

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8922665B2Rapidly initializing and dynamically adjusting media streams
Publication Date: 2014.12.30 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8922665B2 patent drawing
  • US8922665B2 patent drawing
  • US8922665B2 patent drawing

AI summary

A device may generate a media stream to be shared with other users by building a media graph, comprising a series of interconnected processing units that perform various processing tasks. However, the time involved in generating the media graph may delay the initialization of the media stream, and adjusting properties of the media stream (such as resolution or codec) may result in an interruption of the media stream while a new media graph is built. Instead, a media graph cache may be provided to cache a set of media graphs, which may be interchangeably selected for rapid initialization and adjusting of media stream properties. The media component (e.g., a video camera) may also be configured to promote rapid adjustments to some media stream properties, while maintaining other properties (e.g., field of view and white balance) for a smooth transition between media stream property sets.