Iterative Seek Time Positioning in Streaming Video Files

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional video players face challenges in seeking to a specific location within a video file without access to an index, particularly when the file is being downloaded or streamed, as existing methods are computationally expensive or unsuitable for variable bitrate videos.

Innovation Solution

The implementation of an iterative process that estimates the position corresponding to a desired seek time using multiple calculations and known data points, allowing the video player to begin playing at or near the desired time without relying on an index, by calculating bitrates and using head and tail bitrates to refine the estimation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If a video player reads all downloaded data samples to find the data sample corresponding to a specified seek time, then the player can locate the correct position in the video, but the process becomes computationally expensive and prohibitive

Engineering Contradiction:
Improveseek time accuracyVSAvoidcomputational cost
Core Design Contradiction:
Measurement precisionVSPower

Solution Approach 1:

The patent introduces an intermediary data structure called a seek table that stores pre-calculated time-to-byte-offset mappings. Instead of searching through all data samples, the player uses this intermediate structure to quickly translate seek times to byte offsets, dramatically reducing computational cost while maintaining accurate seeking capability

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent performs preliminary calculations to build a seek table that maps seek times to byte offsets before the actual seeking operation. This pre-computation stores the relationship between time and position in the video data, allowing rapid seeking without having to analyze all data samples at the moment of seeking

Inventive Principle:
Principle #10Preliminary action

2Productivity

If a video player calculates an estimated bitrate for the entire video and multiplies it by the seek time to estimate the byte offset, then the seeking process becomes simple and fast, but this method is unsuitable for variable bitrate videos where time and byte offset values do not correspond on a one-to-one basis

Engineering Contradiction:
Improveseeking speedVSAvoidbyte offset accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent divides the video file into segments between key frames and creates separate seek table entries for each segment. This segmentation allows the seek table to capture the variable bitrate characteristics of different portions of the video, improving accuracy for VBR videos while maintaining the speed of table lookup seeking

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the parameters stored in the seek table from simple average bitrate calculations to more detailed time-to-byte-offset mappings that account for variable bitrate conditions. By storing actual measured relationships between seek times and byte offsets at key frame boundaries, the system adapts to VBR conditions while maintaining efficient seeking

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If the index is located at or near the end of the video file, then the file structure allows for progressive download and streaming, but the video player does not have access to the index while the video downloads, preventing easy location of byte offsets for specified seek times

Engineering Contradiction:
Improveprogressive download capabilityVSAvoidseek operation ease
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The patent performs preliminary analysis of the downloaded portion of the video to identify key frames and their corresponding byte offsets and timestamps. This preliminary action allows the construction of a partial seek table using only the data that has been downloaded so far, enabling seeking operations without requiring the complete file or the index at the end

Inventive Principle:
Principle #10Preliminary action

4Measurement precision

If the video file is large (e.g., 2 GB) and the user wishes to seek to a specific time (e.g., 30:44), then precise location is needed, but reading through downloaded data to find the corresponding data sample becomes prohibitively expensive for large files

Engineering Contradiction:
Improveposition accuracyVSAvoidseek time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent introduces a seek table as an intermediary structure that provides direct mapping from seek time to byte offset. This eliminates the need to scan through large portions of downloaded data to find the correct position, dramatically reducing seek time while maintaining precise location accuracy even in large 2 GB files

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent creates a simplified copy of the time-position relationship information in the form of a seek table, which contains only the essential mapping data needed for seeking. This copied structure is much smaller and faster to search than the actual video data, enabling rapid positioning in large files

Inventive Principle:
Principle #26Copying

Data Source

PatentUS9060190B2Iteratively locating a position corresponding to a desired seek time
Publication Date: 2015.06.16 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9060190B2 patent drawing
  • US9060190B2 patent drawing
  • US9060190B2 patent drawing

AI summary

Techniques enable locating a position within a file that corresponds to a desired seek time without having access to an index specifying the desired seek time's position. An iterative process may be used to estimate the position that corresponds to the desired seek time. The process may iterate through multiple estimations until a difference between a time corresponding to an estimated position and the desired seek time is within an acceptable amount or until the process reaches an iteration threshold. The file may then be played beginning at or near the desired seek time. The techniques may therefore allow a user to seek within a file while the user progressively downloads or streams the file.