IP Library Granted Patent US 12,348,799
Granted Patent B2
US 12,348,799 · App. 18/626,027 · Granted Jul 1, 2025

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: Adeia Media 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 12,348,799
App. No.
18/626,027
Granted
Jul 1, 2025
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 (53)

1. A method comprising:

playing a video content item in a trick-play mode using a normal buffer window maintained within a buffer having a boundary of continuous video content;

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 a moving playback position in the normal buffer window will move outside of the normal buffer window during the trick-play mode;

populating the generated trick-play window with a subset of sampled frames from a low-bandwidth video stream;

determining that the normal buffer window in the trick-play mode is filling up faster than a predetermined pace; and

in response to determining that the normal buffer window in the trick-play mode is filling up faster than the predetermined pace:

switching from the low-bandwidth video stream to a high-bandwidth video stream; and

populating the generated trick-play window with a subset of sampled frames from the high-bandwidth video stream.

2. The method of claim 1 , further comprising:

determining a context of the video content being played;

determining a level of sampling granularity based on the determined context; and

using the determined sampling granularity to select the subset of sampled frames from a low-bandwidth video stream.

3. The method of claim 2 , wherein the sampling granularity relates to sampling every key frame, every other key frame, or a particular number of key frames per second.

4. The method of claim 1 , further comprising using adaptive streaming logic to switch from the low-bandwidth video stream to the high-bandwidth video stream.

5. The method of claim 1 , wherein switching from the low-bandwidth video stream to the high-bandwidth video stream further comprises:

accessing a plurality of available streams that are associated with the video content;

analyzing the plurality of available streams based on a) frames displayed per second and b) quality of those frames; and

selecting the high-bandwidth video stream, from the plurality of available streams, based on a trade-off between the frames displayed per second and the quality of those frames.

6. The method of claim 5 , wherein the trade-off is based on a type of the video content being played in the trick-play mode.

7. The method of claim 1 , wherein the predetermined pace is determined based on speed of a trick-play operation associated with the trick-play mode.

8. The method of claim 1 , wherein the trick-play mode is associated with a fast-forward operation.

9. The method of claim 1 , further comprising:

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

selecting the subset of sampled frames from the requested frames for buffering in the trick-play window.

10. The method of claim 9 , wherein the request for frames outside of the normal buffer window is made prior to extending the boundary of the normal buffer window to incorporate the trick-play window.

11. A system comprising:

a user input interface for receiving a request to execute a trick-play mode;

memory configured to store a buffered video content item; and

control circuitry configured to:

play a video content item in a trick-play mode using a normal buffer window maintained within a buffer having a boundary of continuous video content;

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 a moving playback position in the normal buffer window will move outside of the normal buffer window during the trick-play mode;

populate the generated trick-play window with a subset of sampled frames from a low-bandwidth video stream;

determine that the normal buffer window in the trick-play mode is filling up faster than a predetermined pace; and

in response to determining that the normal buffer window in the trick-play mode is filling up faster than the predetermined pace:

switch from the low-bandwidth video stream to a high-bandwidth video stream; and

populate the generated trick-play window with a subset of sampled frames from the high-bandwidth video stream.

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

determine a context of the video content being played;

determine a level of sampling granularity based on the determined context; and

use the determined sampling granularity to select the subset of sampled frames from a low-bandwidth video stream.

13. The system of claim 12 , wherein the sampling granularity relates to sampling every key frame, every other key frame, or a particular number of key frames per second.

14. The system of claim 11 , further comprising the control circuitry configured to use adaptive streaming logic to switch from the low-bandwidth video stream to the high-bandwidth video stream.

15. The system of claim 11 , wherein switching from the low-bandwidth video stream to the high-bandwidth video stream further comprises, the control circuitry configured to:

access a plurality of available streams that are associated with the video content;

analyze the plurality of available streams based on a) frames displayed per second and b) quality of those frames; and

select the high-bandwidth video stream, from the plurality of available streams, based on a trade-off between the frames displayed per second and the quality of those frames.

16. The system of claim 15 , wherein the trade-off is based on a type of the video content being played in the trick-play mode.

17. The system of claim 11 , wherein the predetermined pace is determined by the control circuitry based on speed of a trick-play operation associated with the trick-play mode.

18. The system of claim 11 , wherein the trick-play mode is associated with a fast-forward operation.

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

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

select the subset of sampled frames from the requested frames for buffering in the trick-play window.

20. The system of claim 19 , wherein the request for frames outside of the normal buffer window is made by the control circuitry prior to extending the boundary of the normal buffer window to incorporate the trick-play window.

Assignments (3)
SECURITY INTEREST Recorded May 28, 2025
From: ADEIA INC. (F/K/A XPERI HOLDING CORPORATION); ADEIA HOLDINGS INC.; ADEIA MEDIA HOLDINGS INC.; ADEIA IMAGING LLC; ADEIA MEDIA LLC; ADEIA MEDIA SOLUTIONS INC.; ADEIA SEMICONDUCTOR BONDING TECHNOLOGIES INC.; ADEIA TECHNOLOGIES INC.; ADEIA GUIDES INC.; ADEIA SOLUTIONS LLC; ADEIA SEMICONDUCTOR ADVANCED TECHNOLOGIES INC.; ADEIA SEMICONDUCTOR SOLUTIONS LLC; ADEIA SEMICONDUCTOR INTELLECTUAL PROPERTY LLC; ADEIA SEMICONDUCTOR TECHNOLOGIES LLC; ADEIA PUBLISHING INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 071454/0343 →
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 Apr 4, 2024
From: KLAR, MICHAEL F.; KULICK, TODD; LOGAN, JONATHAN; LIU, KIM
To: TIVO SOLUTIONS INC.
Reel/Frame 067006/0754 →
Continuity (4)
Continuation 18113951 · Feb 24, 2023
Continuation 16475058
Provisional Application 62440943 · Dec 30, 2016
Related Publication 20240251117A1 · Jul 25, 2024
References Cited (75)
US 5991799A · Yen · 1999 [cited by examiner]
US 7299275B2 · Tsukidate · 2007 [cited by examiner]
US 7337392B2 · Lue · 2008 [cited by examiner]
US 7369749B2 · Ichioka · 2008 [cited by examiner]
US 7506355B2 · Ludvig · 2009 [cited by examiner]
US 7603683B2 · Reto · 2009 [cited by examiner]
US 7653921B2 · Herley · 2010 [cited by examiner]
US 7712125B2 · Herigstad · 2010 [cited by examiner]
US 7734579B2 · White · 2010 [cited by examiner]
US 7849207B2 · Kazmi · 2010 [cited by examiner]
US 7908625B2 · Robertson · 2011 [cited by examiner]
US 8307395B2 · Issa · 2012 [cited by examiner]
US 8839295B2 · Kim · 2014 [cited by examiner]
US 9118814B2 · Janardhan · 2015 [cited by examiner]
US 10231001B2 · Frantz · 2019 [cited by examiner]
US 10298643B1 · Toal et al. · 2019 [cited by applicant]
US 11627350B2 · Liu et al. · 2023 [cited by applicant]
US 11979621B2 · Liu et al. · 2024 [cited by applicant]
US 20020167540A1 · Dobbelaar · 2002 [cited by applicant]
US 20030061206A1 · Qian · 2003 [cited by examiner]
US 20030063217A1 · Smith · 2003 [cited by examiner]
US 20040103426A1 · Ludvig · 2004 [cited by examiner]
US 20040148571A1 · Lue · 2004 [cited by examiner]
US 20040215718A1 · Kazmi · 2004 [cited by examiner]
US 20050066352A1 · Herley · 2005 [cited by examiner]
US 20050144455A1 · Haitsma · 2005 [cited by examiner]
US 20050262542A1 · DeWeese · 2005 [cited by examiner]
US 20060031883A1 · Ellis · 2006 [cited by examiner]
US 20060031889A1 · Bennett · 2006 [cited by examiner]
US 20060190966A1 · McKissick · 2006 [cited by examiner]
US 20070094405A1 · Zhang · 2007 [cited by applicant]
US 20070124756A1 · Covell · 2007 [cited by examiner]
US 20070157281A1 · Ellis · 2007 [cited by examiner]
US 20080008455A1 · De Lange · 2008 [cited by examiner]
US 20080027953A1 · Morita · 2008 [cited by examiner]
US 20080059532A1 · Kazmi · 2008 [cited by examiner]
US 20080060036A1 · Cox · 2008 [cited by examiner]
US 20080109477A1 · Lue · 2008 [cited by examiner]
US 20080133701A1 · Kazmi · 2008 [cited by examiner]
US 20080175559A1 · Jung et al. · 2008 [cited by applicant]
US 20080215170A1 · Milbrandt · 2008 [cited by examiner]
US 20080235733A1 · Heie · 2008 [cited by examiner]
US 20080310814A1 · Bowra · 2008 [cited by examiner]
US 20090037954A1 · Nagano · 2009 [cited by examiner]
US 20090119708A1 · Harrar · 2009 [cited by examiner]
US 20090313382A1 · Bouazizi · 2009 [cited by applicant]
US 20090320058A1 · Wehmeyer · 2009 [cited by examiner]
US 20090320072A1 · McClanahan · 2009 [cited by examiner]
US 20090320073A1 · Reisman · 2009 [cited by examiner]
US 20100121936A1 · Liu · 2010 [cited by examiner]
US 20100131385A1 · Harrang · 2010 [cited by examiner]
US 20100251292A1 · Srinivasan · 2010 [cited by examiner]
US 20100296487A1 · Karaoguz · 2010 [cited by examiner]
US 20110066744A1 · Del Sordo · 2011 [cited by examiner]
US 20110068899A1 · Loffe · 2011 [cited by examiner]
US 20110086619A1 · George · 2011 [cited by examiner]
US 20110131618A1 · Hasek · 2011 [cited by applicant]
US 20110138064A1 · Rieger · 2011 [cited by examiner]
US 20110191439A1 · Dazzi · 2011 [cited by examiner]
US 20110191446A1 · Dazzi · 2011 [cited by examiner]
US 20120117590A1 · Agnihotri · 2012 [cited by examiner]
US 20120170915A1 · Braness · 2012 [cited by examiner]
US 20120210216A1 · Hurst · 2012 [cited by applicant]
US 20120278725A1 · Gordon · 2012 [cited by examiner]
US 20120291079A1 · Gordon · 2012 [cited by examiner]
US 20140282661A1 · Martin et al. · 2014 [cited by applicant]
US 20170064409A1 · Westerhoff et al. · 2017 [cited by applicant]
US 20180014041A1 · Chen · 2018 [cited by examiner]
US 20190253467A1 · Toal et al. · 2019 [cited by applicant]
US 20200145701A1 · Liu et al. · 2020 [cited by applicant]
US 20230269409A1 · Liu et al. · 2023 [cited by applicant]
International Preliminary Report on Patentability received for PCT Patent Application No. PCT/US17/66294, mailed on Apr. 8, 2019, 21 pages. [cited by applicant]
International Search Report and Written Opinion of PCT/US2017/066294 dated May 6, 2018. [cited by applicant]
International Search Report and Written Opinion received for PCT Patent Application No. PCT/US17/66294, mailed on Jun. 5, 2018, 16 pages. [cited by applicant]
Invitation to Pay Additional Fee received for PCT Patent Application No. PCT/US17/66294, mailed on Mar. 21, 2018, 8 pages. [cited by applicant]