IP Library Granted Patent US 11,979,621
Granted Patent B2
US 11,979,621 · App. 18/113,951 · Granted May 7, 2024

Advanced trick-play modes for streaming video

Inventors: Kim Liu (Foster City, CA); Michael F. Klar (Santa Clara, CA); Todd Kulick (Mountain View, CA); Jonathan A. Logan (Mountain View, CA)
Assignee: TiVo Solutions Inc.
H04N21/2387H04N21/2401H04N21/2402H04N21/84H04N21/8456
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,979,621
App. No.
18/113,951
Granted
May 7, 2024
Kind
B2
Abstract

Enhanced trick-play modes for video content that is being streamed to a client from a server are described. In an embodiment, the enhanced trick-play modes are provided with relatively low latency and high quality using trick-play optimization techniques for a streaming environment, avoiding the need to stream the entire contents of the portions through which the viewer is fast forwarding. By employing sophisticated selection criteria of which parts of the content to download at what time, the quality of the playback experience is improved versus that which would conventionally be possible when using a simple sequential frame data download. The streaming client maintains a cache of nearby significant frames, such as nearby key frames, in forward and/or reverse directions of the current playback position, without having to download the entire portions of the video stream in which the significant frames reside. The trick-play modes utilize these frames.

Claims (39)

1. A method comprising:

playing a video content item in a playback mode using a normal buffer window maintained within a buffer, wherein a boundary of the video content maintained ahead of a moving playback position while in the playback mode;

generating a trick-play window that extends the boundary of the normal buffer window to incorporate the trick-play window, wherein the trick-play window is created in response to determining that the moving playback position will move outside of the normal buffer window during a trick-play operation;

selecting a subset of video frames for buffering in the trick-play window within the buffer, for a portion of the video content item outside of the normal buffer window; and

playing the video content item in a trick-play playback mode using video frames from the selected subset.

2. The method of claim 1 , further comprising:

calculating a playback rate of the trick-play operation; and

determining based on the calculation that the moving playback position will move outside of the normal buffer window during a trick-play operation.

3. The method of claim 2 , wherein the playback rate is calculated based on performance metrics related to streaming performance of the video content item.

4. The method of claim 1 , further comprising:

requesting frames outside of the current buffer window for buffering; and

selecting the requested frames as the subset of video frames for buffering in the trick-play window.

5. The method of claim 4 , wherein the request for frames outside of the current buffer window is made prior to performing the trick-play operation.

6. The method of claim 4 , further comprising, terminating the request for frames outside of the current buffer window after the received number of frames reaches a predetermined size.

7. The method of claim 1 , further comprising generating multiple trick-play windows of different sizes, wherein each generated trick-play window extends the boundary of the normal buffer window based on the size of the trickplay window.

8. The method of claim 7 , wherein each trick-play window, from the multiple trick-play windows, are optimized for different playback rates.

9. The method of claim 7 , wherein each trick-play window, from the multiple trick-play windows, are optimized for different frame resolutions.

10. The method of claim 1 , further comprising, determining a size of the generated trick-play window that extends the boundary of the normal buffer window based on performance metrics related to streaming performance of the video content item.

11. A system comprising:

a user input interface for receiving requests for trick-play operations;

memory configured to store a buffered video content item; and

control circuitry configured to:

play the video content item in a playback mode using a normal buffer window maintained within a buffer, wherein a boundary of the video content maintained ahead of a moving playback position while in the playback mode;

generate a trick-play window that extends the boundary of the normal buffer window to incorporate the trick-play window, wherein the trick-play window is created in response to determining that the moving playback position will move outside of the normal buffer window during a trick-play operation;

select a subset of video frames for buffering in the trick-play window within the buffer, for a portion of the video content item outside of the normal buffer window; and

play the video content item in a trick-play playback mode using video frames from the selected subset.

12. The system of claim 11 , further comprising, the control circuitry configured to:

calculate a playback rate of the trick-play operation; and

determine based on the calculation that the moving playback position will move outside of the normal buffer window during a trick-play operation.

13. The system of claim 12 , wherein the playback rate is calculated by the control circuitry based on performance metrics related to streaming performance of the video content item.

14. The system of claim 11 , further comprising, the control circuitry configured to:

request frames outside of the current buffer window for buffering; and

select the requested frames as the subset of video frames for buffering in the trick-play window.

15. The system of claim 14 , wherein the request for frames outside of the current buffer window is made by the control circuitry prior to performing the trick-play operation.

16. The system of claim 14 , further comprising, the control circuitry configured to terminate the request for frames outside of the current buffer window after the received number of frames reaches a predetermined size.

17. The system of claim 11 , further comprising, the control circuitry configured to generate multiple trick-play windows of different sizes, wherein each generated trick-play window extends the boundary of the normal buffer window based on the size of the trickplay window.

18. The system of claim 17 , wherein each trick-play window, from the multiple trick-play windows, are optimized by the control circuitry for different playback rates.

19. The system of claim 17 , wherein each trick-play window, from the multiple trick-play windows, are optimized by the control circuitry for different frame resolutions.

20. The system of claim 11 , further comprising, the control circuitry configured to determine a size of the generated trick-play window that extends the boundary of the normal buffer window based on performance metrics related to streaming performance of the video content item.

Assignments (2)
CHANGE OF NAME Recorded Sep 27, 2024
From: TIVO SOLUTIONS INC.
To: ADEIA MEDIA SOLUTIONS INC.
Reel/Frame 069067/0504 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 24, 2023
From: KLAR, MICHAEL F.; KULICK, TODD; LOGAN, JONATHAN A.; LIU, KIM
To: TIVO SOLUTIONS INC.
Reel/Frame 062799/0410 →