Single Thread Event Queue for Interactive Media

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Interactive media environments face challenges in managing real-time events due to limited processing power and resources, making it difficult to implement frame-accurate responses without overwhelming authors with thread management and synchronization issues.

Innovation Solution

All applications in the interactive media environment run on a single application thread, utilizing event queues to schedule workitems based on their begin and end times, ensuring that only committed workitems are processed, and new events are inserted at the end of the queue to maintain predictability and stability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If real-time multithreaded programming is used to respond to users in real-time manner, then the responsiveness and frame-accuracy are improved, but the complexity of thread management and synchronization increases significantly

Engineering Contradiction:
Improvereal-time responsivenessVSAvoidthread management complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent merges multiple application threads into a single application thread that processes all events sequentially. This eliminates the complexity of thread management and synchronization while maintaining real-time responsiveness through a simplified single-threaded event queue architecture.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent segments the event processing into discrete work items that are queued and processed in order. Each work item represents a unit of work that can be processed independently, allowing the single thread to maintain frame-accurate timing without the overhead of multiple threads.

Inventive Principle:
Principle #1Segmentation

2Productivity

If multiple threads are used to process events simultaneously, then the processing power utilization is improved, but the synchronization issues and resource contention worsen

Engineering Contradiction:
Improveevent processing throughputVSAvoidsynchronization reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent combines multiple event processing threads into a single application thread, eliminating synchronization issues and resource contention. The single thread processes events sequentially in a predictable manner, ensuring reliability while maintaining adequate throughput for interactive media requirements.

Inventive Principle:
Principle #5Merging (Combining)

3Manufacturing precision

If workitems are processed in strict chronological order, then the frame-accuracy and predictability are improved, but the responsiveness to high-priority events may be delayed

Engineering Contradiction:
Improveframe-accuracyVSAvoidevent processing speed
Core Design Contradiction:
Manufacturing precisionVSSpeed

Solution Approach 1:

The patent uses begin time and end time markers on work items to pre-determine processing order. By marking work items with their intended execution window, the system ensures frame-accurate processing without needing to prioritize during execution, as the ordering is already established.

Inventive Principle:
Principle #10Preliminary action

4Reliability

If all workitems are retained in the event queue, then the completeness of event handling is improved, but the memory consumption increases on resource-constrained devices

Engineering Contradiction:
Improveevent handling completenessVSAvoidmemory consumption
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent implements automatic dropping of work items whose end times have been passed. This discards outdated events that are no longer relevant, freeing memory resources while maintaining completeness for all currently relevant events. One-shot events are preserved while repetitive events may be dropped if their time window has expired.

Inventive Principle:
Principle #34Discarding and recovering

Data Source

PatentUS8656268B2Queueing events in an interactive media environment
Publication Date: 2014.02.18 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8656268B2 patent drawing
  • US8656268B2 patent drawing
  • US8656268B2 patent drawing

AI summary

An arrangement is provided where all applications in an interactive media environment run on a single application thread in a media player. Event queues are utilized to schedule the application thread's processing of workitems corresponding to events that occur in the environment. Workitems include methods to be invoked when the workitem is processed and arguments for the method. Workitems further include a begin time and an end time and are ordered in the event queue first by begin time followed by the order in which they were inserted into the queue. The application thread marks workitems whose begin times corresponds to the current or previous time and then processes marked workitems from the queue in order. Such processing is committed so that once the application thread begins processing of a workitem it does not stop. Workitems are dropped from the event queue if their end times have been passed.