Client Media Application Adaptive Chunk Requesting

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Client devices with limited resources experience significant latency and network bursts when receiving audio-video streams, leading to degraded playback quality due to waiting for complete data before issuing subsequent requests in adaptive streaming technology.

Innovation Solution

The client media application sends a subsequent request before all data from the previous request has been read by monitoring the remaining data in the receive buffer and issuing a new request when it determines that the remaining data is less than the buffer size, thereby reducing latency and network bursts.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If the client media application waits for all data to be read from the network stack before issuing a subsequent request, then network traffic bursts are minimized, but latency increases and playback smoothness deteriorates

Engineering Contradiction:
ImprovelatencyVSAvoidnetwork bursts
Core Design Contradiction:
Loss of timeVSObject-generated harmful factors

Solution Approach 1:

The patent applies preliminary action by issuing the second media request before all data from the first request has been read from the network stack. The client media application monitors the amount of data read and triggers the next request when a threshold is reached, proactively preparing the next data chunk while previous data is still being processed. This reduces latency and maintains continuous playback without waiting for complete data consumption.

Inventive Principle:
Principle #10Preliminary action

2Device complexity

If the client device uses limited receive buffer resources, then device complexity is reduced, but playback quality and smoothness deteriorate due to latency

Engineering Contradiction:
Improvereceive buffer resourcesVSAvoidplayback quality
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The patent ensures continuity of useful action by overlapping media requests with data reading operations. Instead of waiting for sequential completion, the system initiates the next request while previous data is still being read from the network stack. This continuous pipeline approach maintains adequate buffer levels and ensures smooth playback even with limited receive buffer resources, eliminating the need for large buffers to compensate for latency.

Inventive Principle:
Principle #20Continuity of useful action

3Loss of energy

If the client media application issues requests sequentially after complete data receipt, then network resource usage is optimized, but playback smoothness and quality are impacted

Engineering Contradiction:
Improvenetwork resource usageVSAvoidplayback smoothness
Core Design Contradiction:
Loss of energyVSProductivity

Solution Approach 1:

The patent applies dynamics by making the request issuance timing adaptive rather than fixed. The system dynamically determines when to issue the next request based on the actual amount of data read from the network stack, rather than following a rigid sequential pattern. This dynamic adjustment allows the system to optimize between network resource usage and playback smoothness by issuing requests at the optimal moment when buffer levels indicate a need for refilling.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9420022B2Media requests to counter latency and minimize network bursts
Publication Date: 2016.08.16 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9420022B2 patent drawing
  • US9420022B2 patent drawing
  • US9420022B2 patent drawing

AI summary

A client media application sends a first request for a first chunk of a particular media stream. In response to the request, the client media application begins receiving data packets associated with the requested first chunk of the particular media stream. The data packets are received through a socket having a buffer. Rather than waiting until all of the data packets associated with the first chunk of the particular media stream have been read from the buffer by the client media application before sending a request for a second chunk of the particular media stream, the client media application monitors the amount of data that has been received compared to an expected amount of data, and sends the second request when it determines that the amount of data remaining to be received is less than the size of the buffer.