IP Library Granted Patent US 8,270,819
Granted Patent B2
US 8,270,819 · App. 11/928,828 · Granted Sep 18, 2012

Performing trick play functions in a digital video recorder with efficient use of resources

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 8,270,819
App. No.
11/928,828
Granted
Sep 18, 2012
Kind
B2
Abstract

Techniques for selecting a picture of a video program for display in accordance with a selected trick play mode of a DVR are described herein. Sometimes, when desired playback speed is faster than normal, a DVR is forced to select some pictures to play and some pictures to skip. Ideally, in order to preserve “smooth” viewing quality, the next picture to be displayed should be temporally close to the currently displayed picture. Since some pictures can take longer to decode than others, accounting for picture decoding costs helps ensure that the best picture can be selected for decoding given playback speed requirements. According to one embodiment of the invention, for each picture of a plurality of pictures in a video data stream, a DVR determines a decoding cost for that picture. Based on the determined costs, the DVR selects a particular picture. The DVR outputs the selected picture for display.

Claims (88)

1. A method for selecting a picture of a multi-picture video program for display, the method comprising:

determining, for each picture of a plurality of pictures in a data stream that represents the program, a cost associated with decoding that picture;

determining, based at least in part on a user-specified playback rate, a target picture that is a first specified temporal distance away from a current picture in presentation order;

determining a decode cost for the target picture;

determining whether the decode cost for the target picture is below a specified threshold;

when the decode cost for the target picture is below the specified threshold, then decoding and presenting the target picture; and

when the decode cost for the target picture is not below the specified threshold, then performing steps comprising:

determining a particular set of other pictures that are within a second specified temporal distance away from the target picture in presentation order;

selecting, from the particular set of other pictures, one or more pictures that are associated with decode costs that are below the specified threshold; and

decoding and presenting at least one of the one or more pictures that are associated with decode costs that are below the specified threshold;

outputting the particular picture for display;

wherein the method is performed by one or more computing devices.

2. The method of claim 1 , further comprising:

receiving at least a part of the data stream at a digital video recorder (DVR);

encoding, based on a codec, each picture in the plurality of pictures; and

generating and storing, at the DVR, a dependency graph that indicates which pictures in the plurality of pictures depend from which other pictures in the plurality of pictures.

3. The method of claim 1 , wherein the step of determining a cost for each picture of the plurality of pictures comprises:

determining, for each individual picture in the plurality of pictures, a minimum number of other pictures that need to be decoded before a picture corresponding to that individual picture can be displayed.

4. The method of claim 1 , wherein the step of determining a cost for each picture of the plurality of pictures comprises performing, for each individual picture in the plurality of pictures, steps comprising:

determining a set of one or more other pictures upon which the individual picture depends in order to a represent a complete frame; and

determining how many pictures in the set of pictures already have been decoded and are already present in a DVR's picture cache.

5. The method of claim 1 , wherein each picture of the plurality of pictures is at least one of an I-picture, a P-picture, or a B-picture.

6. The method of claim 1 , further comprising:

receiving, at a DVR, a request to begin playing the program at a specified point in the program;

in response to receiving the request, performing steps comprising:

determining a target picture that corresponds to the specified point; and

determining a decode cost for the target picture, wherein the decode cost is based at least in part on a number of other pictures that need to be decoded in order to decode the target picture.

7. The method of claim 6 , wherein the step of decoding and presenting the target picture further comprises decoding one or more other pictures upon which the target picture depends.

8. The method of claim 1 , wherein the step of selecting the one or more pictures based on decode costs comprises:

selecting one or more pictures from among the particular set of other pictures based at least in part on whether costs associated with pictures in the particular set of other pictures exceed a specified value that corresponds to a maximum amount of time that is allowed to pass between times that different pictures of the program are displayed while a digital video recorder (DVR) is operating within a specified mode.

9. A digital video recorder (DVR) that is configured to:

determine, for each picture of a plurality of pictures in a data stream that represents a program, a cost associated with decoding that picture;

determine, based at least in part on a user-specified playback rate, a target picture that is a first specified temporal distance away from a current picture in presentation order;

determine a decode cost for the target picture;

determine whether the decode cost for the target picture is below a specified threshold;

decode and present the target picture when the decode cost for the target picture is below the specified threshold; and

perform at least the following steps when the decode cost for the target picture is not below the specified threshold:

determining a particular set of other pictures that are within a second specified temporal distance away from the target picture in presentation order;

selecting, from the particular set of other pictures, one or more pictures that are associated with decode costs that are below the specified threshold; and

decoding and presenting at least one of the one or more pictures that are associated with decode costs that are below the specified threshold;

output the particular picture for display.

10. The DVR of claim 9 , wherein the DVR is further configured to:

receive at least a part of the data stream;

encode, based on a codec, each picture in the plurality of pictures; and

generate and store a dependency graph that indicates which pictures in the plurality of pictures depend from which other pictures in the plurality of pictures.

11. The DVR of claim 9 , wherein the DVR is further configured to:

determine, for each individual picture in the plurality of pictures, a minimum number of other pictures that need to be decoded before a picture corresponding to that individual picture can be displayed.

12. The DVR of claim 9 , wherein the DVR is further configured to perform, for each individual picture in the plurality of pictures, steps comprising:

determining a set of one or more other pictures upon which the individual picture depends in order to a represent a complete frame; and

determining how many pictures in the set of pictures already have been decoded and are already present in a DVR's picture cache.

13. The DVR of claim 9 , wherein each picture of the plurality of pictures is at least one of an I-picture, a P-picture, or a B-picture.

14. The DVR of claim 9 , wherein the DVR is further configured to:

receive a request to begin playing the program at a specified point in the program; and

in response to receiving the request, perform steps comprising:

determining a target picture that corresponds to the specified point; and

determining a decode cost for the target picture, wherein the decode cost is based at least in part on a number of other pictures that need to be decoded in order to decode the target picture.

15. The DVR of claim 14 , wherein decoding and presenting the target picture further comprises decoding one or more other pictures upon which the target picture depends.

16. The DVR of claim 9 , wherein the DVR is further configured to:

select one or more pictures from among the particular set of other pictures based at least in part on whether costs associated with pictures in the particular set of other pictures exceed a specified value that corresponds to a maximum amount of time that is allowed to pass between times that different pictures of the program are displayed while the DVR is operating within a specified mode.

17. A non-transitory computer readable medium storing instructions, which when executed by one or more processors perform steps comprising:

determining, for each picture of a plurality of pictures in a data stream that represents the program, a cost associated with decoding that picture;

determining, based at least in part on a user-specified playback rate, a target picture that is a first specified temporal distance away from a current picture in presentation order;

determining a decode cost for the target picture;

determining whether the decode cost for the target picture is below a specified threshold;

when the decode cost for the target picture is below the specified threshold, then decoding and presenting the target picture; and

when the decode cost for the target picture is not below the specified threshold, then performing steps comprising:

determining a particular set of other pictures that are within a second specified temporal distance away from the target picture in presentation order;

selecting, from the particular set of other pictures, one or more pictures that are associated with decode costs that are below the specified threshold; and

decoding and presenting at least one of the one or more pictures that are associated with decode costs that are below the specified threshold;

outputting the particular picture for display.

18. The non-transitory computer readable medium of claim 17 , further comprising:

receiving at least a part of the data stream at a digital video recorder (DVR);

encoding, based on a codec, each picture in the plurality of pictures; and

generating and storing, at the DVR, a dependency graph that indicates which pictures in the plurality of pictures depend from which other pictures in the plurality of pictures.

19. The non-transitory computer readable medium of claim 17 , wherein the step of determining a cost for each picture of the plurality of pictures comprises:

determining, for each individual picture in the plurality of pictures, a minimum number of other pictures that need to be decoded before a picture corresponding to that individual picture can be displayed.

20. The non-transitory computer readable medium of claim 17 , wherein the step of determining a cost for each picture of the plurality of pictures comprises: performing, for each individual picture in the plurality of pictures, steps comprising:

determining a set of one or more other pictures upon which the individual picture depends in order to a represent a complete frame; and

determining how many pictures in the set of pictures already have been decoded and are already present in a DVR's picture cache.

21. The non-transitory computer readable medium of claim 17 , wherein each picture of the plurality of pictures is at least one of an I-picture, a P-picture, or a B-picture.

22. The non-transitory computer readable medium of claim 17 , further comprising:

receiving, at a DVR, a request to begin playing the program at a specified point in the program;

in response to receiving the request, performing steps comprising:

determining a target picture that corresponds to the specified point; and

determining a decode cost for the target picture, wherein the decode cost is based at least in part on a number of other pictures that need to be decoded in order to decode the target picture.

23. The non-transitory computer readable medium of claim 22 , wherein the step of decoding and presenting the target picture further comprises decoding one or more other pictures upon which the target picture depends.

24. The non-transitory computer readable medium of claim 17 , wherein the step of selecting the one or more pictures based on decode costs comprises:

selecting one or more pictures from among the particular set of other pictures based at least in part on whether costs associated with pictures in the particular set of other pictures exceed a specified value that corresponds to a maximum amount of time that is allowed to pass between times that different pictures of the program are displayed while a digital video recorder (DVR) is operating within a specified mode.

Assignments (9)
CHANGE OF NAME Recorded Sep 27, 2024
From: TIVO SOLUTIONS INC.
To: ADEIA MEDIA SOLUTIONS INC.
Reel/Frame 069067/0504 →
RELEASE OF SECURITY INTEREST Recorded Jun 5, 2020
From: HPS INVESTMENT PARTNERS, LLC
To: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
Reel/Frame 053458/0749 →
RELEASE OF SECURITY INTEREST Recorded Jun 5, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
Reel/Frame 053481/0790 →
SECURITY INTEREST Recorded Jun 1, 2020
From: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS INC.; VEVEO, INC.; INVENSAS CORPORATION; INVENSAS BONDING TECHNOLOGIES, INC.; TESSERA, INC.; TESSERA ADVANCED TECHNOLOGIES, INC.; DTS, INC.; PHORUS, INC.; IBIQUITY DIGITAL CORPORATION
To: BANK OF AMERICA, N.A.
Reel/Frame 053468/0001 →
RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 25, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: TIVO SOLUTIONS INC.
Reel/Frame 051109/0969 →
PATENT SECURITY AGREEMENT Recorded Nov 25, 2019
From: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 051110/0006 →
SECURITY INTEREST Recorded Nov 22, 2019
From: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
To: HPS INVESTMENT PARTNERS, LLC, AS COLLATERAL AGENT
Reel/Frame 051143/0468 →
CHANGE OF NAME Recorded Feb 14, 2017
From: TIVO INC.
To: TIVO SOLUTIONS INC.
Reel/Frame 041714/0500 →
SECURITY INTEREST Recorded Dec 7, 2016
From: TIVO SOLUTIONS INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 041076/0051 →