Synchronizing Independent Audio and Haptic Renderers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing electronic devices fail to achieve true synchronization of independent output streams, such as audio and haptic outputs, due to latency differences and asynchronous data transmission, leading to perceptible dissonance and reduced effectiveness in user experience.

Innovation Solution

The implementation of a shared synchronization object that identifies independent renderers and determines a synchronization time when all renderers are ready, allowing synchronized rendering of output streams across multiple components, including audio and haptic devices, to ensure simultaneous and coordinated output.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If independent renderers are used to render multiple output streams, then rendering efficiency and independence are improved, but synchronization between output streams deteriorates

Engineering Contradiction:
Improverendering efficiencyVSAvoidsynchronization accuracy
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

A shared synchronization object is introduced as an intermediary between independent renderers to coordinate their operations. Each renderer writes its readiness status to this shared object, and the system determines synchronization time by reading from it, enabling coordinated output without compromising renderer independence

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system implements feedback mechanisms where renderers continuously update their status in the shared synchronization object, and the system monitors this feedback to determine when all renderers are ready. This feedback loop enables precise synchronization timing while maintaining independent rendering operations

Inventive Principle:
Principle #23Feedback

2Ease of operation

If data is transmitted according to timestamps in data streams, then transmission simplicity is improved, but output synchronization deteriorates

Engineering Contradiction:
Improvetransmission simplicityVSAvoidoutput synchronization
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The system performs preliminary actions by having all renderers write their readiness status to the shared synchronization object before determining the actual synchronization time. This preliminary status registration allows the system to calculate the optimal synchronization point that accounts for individual renderer latencies, ensuring synchronized output while maintaining simple timestamp-based transmission

Inventive Principle:
Principle #10Preliminary action

3Reliability

If rendering time is extended to accommodate all components, then synchronization is improved, but power consumption increases

Engineering Contradiction:
Improvesynchronization accuracyVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The system dynamically determines synchronization time based on the actual readiness status of each renderer recorded in the shared synchronization object. Instead of using a fixed extended timing that accommodates the slowest component, the system calculates the precise moment when all renderers are ready, minimizing unnecessary waiting time and reducing power consumption while maintaining synchronization accuracy

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9913033B2Synchronization of independent output streams
Publication Date: 2018.03.06 APPLE INC
  • US9913033B2 patent drawing
  • US9913033B2 patent drawing
  • US9913033B2 patent drawing

AI summary

A system determines to use at least two independent renderers to render at least two output streams that are to be synchronized. The independent renderers are provided with a shared synchronization object when instructed to render the respective output stream. A time when all of the independent renderers can render a respective first buffer of the respective output stream is determined from the shared synchronization object. Rendering of the output streams utilizing the independent renderers is begun at the determined time. In this way, rendering of the output streams may be synchronized.