Source: https://patents.google.com/patent/US9674577B1/en
Timestamp: 2019-04-25 12:33:43+00:00

Document:
2017-02-03 Assigned to TIVO SOLUTIONS INC. reassignment TIVO SOLUTIONS INC. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: TIVO INC.
A data storage management and scheduling system schedules the recording, storing, and deleting of television and Web page program material on a client system storage medium. The invention accepts as input a prioritized list of program viewing preferences which is compared with a database of program guide objects which indicate when programs of interest are actually broadcast. A schedule of time versus available storage space is generated that is optimal for the viewer's explicit or derived preferred programs. The preferred programs include television broadcast programs and Universal Resource Locators (URLs). The viewer may request that certain programs be captured, which results in the highest possible priority for those programs, or express preferences using appurtenances provided through the viewer interface. Preferences may additionally be inferred from viewing patterns. The invention correlates an input schedule that tracks the free and occupied time slots for each input source with a space schedule that tracks all currently recorded programs and the programs that have been scheduled to be recorded in the future, to schedule new programs to record and resolve recording conflicts. A program is recorded if at all times between when the recording would be initiated and when it expires, sufficient space is available to hold it. All scheduling conflicts are resolved as early as possible. A background scheduler schedules each preferred program in turn until the list of preferred programs is exhausted or no further opportunity to record is available.
This application is a division of U.S. patent application Ser. No. 10/011,927, filed Dec. 7, 2001 (now abandoned), which is a division of U.S. patent application Ser. No. 09/422,121, filed Oct. 20, 1999, now U.S. Pat. No. 7,665,111, which further claims the benefit under 35 U.S.C. §119(e) of U.S. Provisional Patent Application No. 60/127,178, filed Mar. 30, 1999, the entire contents of each of which is hereby incorporated by reference herein in their respective entireties.
The invention relates to the storing and viewing of television program material in a computer environment. More particularly, the invention relates to the management of data on a storage medium in a computer environment.
It would be advantageous to provide a data storage management and scheduling system that manages the available data space on a storage medium and any input sources. It would further be advantageous to provide a data storage management and scheduling system that efficiently schedules the insertion and deletion of data on a medium.
The invention provides a data storage management and scheduling system. The system schedules the storing and deleting of input source data on a storage medium. In addition, the invention provides a system that manages the available free space on the storage medium such that the available free space is used efficiently.
A client device, typified in application Ser. No. 09/126,071, owned by the Applicant, provides functionality typically associated with central video servers, such as storage of a large amount of video content, ability to choose and play this content on demand, and full “VCR-like” control of the delivery of the content, as typified in application Ser. No. 09/054,604, owned by the applicant.
A preferred embodiment of the invention schedules the recording, storing, and deleting of television and Web page program material on a client system storage medium. The invention accepts as input a prioritized list of program viewing preferences which is compared with a database of program guide objects. The program guide objects indicate when programs of interest are actually broadcast.
A schedule of time versus available storage space is generated that is optimal for the viewer's explicit or derived preferred programs. The preferred programs include television broadcast programs and Universal Resource Locators (URLs). The viewer may request that certain programs be captured, which results in the highest possible priority for those programs.
The invention correlates an input schedule that tracks the free and occupied time slots for each input source with a space schedule that tracks all currently recorded programs and the programs that have been scheduled to be recorded in the future, to schedule new programs to record and resolve recording conflicts. A program is recorded if at all times between when the recording would be initiated and when it expires, sufficient space is available to hold it. Programs scheduled for recording based on inferred preferences automatically lose all conflict decisions. All scheduling conflicts are resolved as early as possible. Schedule conflicts resulting from the recording of aggregate objects are resolved using the preference weighting of the programs involved.
FIG. 10 is a block schematic diagram of the decision flowchart for the software installation procedure according to the invention.
The invention is embodied in a data storage management and scheduling system in a computer environment. A system according to the invention schedules the storing and deleting of input source data on a storage medium. In addition, the invention provides a system that manages the available free space on the storage medium such that the available free space is used efficiently.
The invention is exemplified as part of a television viewing information transmission and collection system that improves the ability of the individual viewer to select and automatically timeshift television programs while providing opportunities for a service provider to enhance and direct the viewing experience. The following describes a system which is fully distributed, in that calculations pertaining to an individual viewer are performed personally for that viewer within a local client device, while providing for the reliable aggregation and dissemination of information concerning viewing habits, preferences or purchases.
Even more serious, there can be no guarantee of a stable operational environment while the database is in use or being updated. For example, electrical power to the device may cease. This invention treats all database updates as “transactions”, meaning that the entire transaction will be completed, or none of it will be completed. The specific technique chosen is called “two-phase commit”, wherein all elements of the transaction are examined and logged, followed by performing the actual update. One familiar in the art will appreciate that a standard journaling technique, where the transaction is staged to a separate log, combined with a roll-forward technique which uses the log to repeat partial updates that were in progress when the failure occurred, is sufficient for this purpose.
Successful security requires that sender and receiver agree beforehand on the asymmetric key pair to be used for encryption. Such key distribution is the weakest link in any cryptographic system for protecting electronic data. Application Ser. No. 09/357,183, entitled “Self-Test Electronic Assembly and Test System,” filed Jul. 19, 1999, also owned by the Applicant, describes a mechanism whereby the client device generates the asymmetric key pair automatically as the final step in the manufacturing process. The private key thus generated is stored within a secure microprocessor embedded within the client device, such that the key is never presented to external devices. The public key thus generated is transmitted to a local manufacturing system, which records the key along with the client serial number in a secure database. This database is later securely transmitted to the central distribution system, where it is used to perform secure communications with the client.
There may be many mechanisms for transmitting slices to the universe of client viewing devices. For instance, the slices may be directly downloaded over a telephone modem or cable modem 109, they may be modulated into lines of the Vertical Blanking Interval (VBI) of a standard television broadcast 108, or added to a digital television multiplex signal as a private data channel. One skilled in the art will readily appreciate that any mechanism which can transmit digital information may be used to transmit slices of the television viewing object database.
6. Using techniques similar to those described in case 2, application software may also capture promotional material that may be of interest to the viewer. This information may be presented on viewer demand, or it may be automatically inserted into the output television signal at some convenient point. For example, an advertisement in the broadcast program might be replaced by a different advertisement which has a higher preference priority. Using the time-warping apparatus, such as that described in application Ser. No. 09/126,071, entitled “Multimedia Time Warping System,” filed Jul. 30, 1998, it is possible to insert any stored program into the output television signal at any point. The time-warping apparatus allows the overlaid program to be delayed while the stored program is inserted to make this work.
With respect to FIGS. 9a and 9b , on boot 901, the initial bootstrap code reads the boot sector 902, scans the partition table and locates the “primary” partition for the second stage boot loader. It then attempts to load this program into memory 903. If it fails 904, for instance, due to a failure of the disk drive, the boot loader attempts to load the program in the “backup” partition into memory 905. Whichever attempt succeeds, the boot loader then passes control to the newly loaded program, along with an indication of which partition the program was loaded from 906.
Referring again to FIG. 9b , the first task of this application is to update the installer object. For each level 921, 922, the application checks if an installation was in process 916, 917, and verifies that the level was loaded off of the primary partition 918. If so, the installation at that level was successful, and the installer object is updated to indicate success for that level 919. Otherwise, the application copies the backup partition for that level over the primary partition and indicates failure in the installer object for that level 920. Copying the partition insures that a backup copy of known good software for a level is kept available at all times.
1.1 By examining large numbers of uploaded operations status objects, it is possible to perform extensive analysis of hardware reliability trends and failure modes. For instance, it is possible to correlate internal temperature with expected MTBF (Mean Time Between Failures) of client devices.
1.2 By examining large numbers of uploaded viewing information, it is possible to derive demographic or psychographic information about various populations of client devices. For example, it is possible to correlate TV programs most watched within specific zip codes in which the client devices reside.
1.3 Similarly, by examining large numbers of viewing information objects, it is possible to generate “rating” and “share” values for particular programs with fully automated methods, unlike existing program rating methods.
1.4 There are many other examples of statistical analysis tasks that might be performed on the viewing object database; these examples are not meant to limit the applicability of the invention, but to illustrate by example the spectrum of operations that might be performed.
2.1 Aggregates based on events, such as a major league football game in a large city. In this case, all programs viewable by client devices in or around that city are collected, and the program description searched for the names of the teams playing, coaches names, major player's names, the name of the ballpark, etc. Matching program objects are added to the aggregate, which is then sliced for transmission only to client devices in regions in and around the city.
2.2 Aggregates based on persons of common interest to a large number of viewers. For instance, an aggregate might be constructed of all “John Wayne” movies to be broadcast in the next week.
2.3 Aggregates based on viewing behavior can be produced. In this case, uploaded viewing objects are scanned for elements of common interest, such as types of programs viewed, actual programs viewed, etc. For example, a “top ten list” aggregate of programs viewed on all client devices in the last week might be generated containing the following week's showing of those programs.
2.4 Aggregates based on explicit selections by viewers. During viewing of a program, the viewer might be presented with an opportunity to “vote” on the current program, perhaps on the basis of four perceived attributes (storyline, acting, directing, cinematography), which generates viewing objects that are uploaded later. These votes are then scanned to determine an overall rating of the program, which is transmitted to those who voted for their perusal.
2.5 There are many other examples of how the basic facilities of this invention allow the service operator to provide pre-sorted and pre-selected groups of related programs to the user of the client device for perusal and selection. These examples are not meant to limit the applicability of the invention, but to illustrate by example the spectrum of operations that might be performed.
d) recording the future show and the second future show onto a randomly accessible recording medium.
2. The method of claim 1, wherein the criteria is at least one of a show name, a director name, an actor/actress name, a show class, a keyword, or rating information.
3. The method of claim 1, wherein the criteria includes user provided preference rating information of previously watched shows.
4. The method of claim 1, further comprising at least one of reviewing or editing by the user of the future show.
5. The method of claim 1, wherein the criteria for recording of shows is presented to the user in a listing for selection.
6. The method of claim 1, wherein the criteria for recording of shows is presented to the user in a pop-up alphabetical listing.
previewing by a user a show selected for recording.
editing by the user a list of shows selected for recording.
recording from a default channel when there is no show selected for recording.
recording from channels having an indexable video format.
11. The method of claim 10, wherein the indexable video format is based on time.
receiving input specifying a second criteria for recording of a show.
13. The method of claim 12, wherein the criteria and the second criteria are used for show selection.
14. The method of claim 1, wherein the defined criteria is at least one of an expiration date or a viewed program indicator.
15. The method of claim 1, wherein the identifying step identifies a candidate for deletion to manage an available capacity of the randomly accessible recording medium.
16. The method of claim 1, wherein the randomly accessible recording media is a hard disk.
automatically record video signals, a first video signal automatically scheduled to record based on pattern matching using information in the channel guide database and a second video signal automatically scheduled to record based on fuzzy logic analysis of the criteria database, an aggregate program object among the one or more aggregate program objects, and the channel guide database.
18. The video data recorder of claim 17, wherein the video signal input port is selected from at least one of cable, satellite, or broadcast.
19. The video data recorder of claim 17, wherein the recording medium is a randomly accessible recording medium.
20. The video data recorder of claim 17, wherein the channel guide database stores data indicating channel programming.
21. The video data recorder of claim 20, wherein the channel guide data is updated from a channel guide source.
22. The video data recorder of claim 17, wherein the criteria database stores criteria information from a first user.
23. The video data recorder of claim 22, wherein the criteria database stores criteria information from the first user and a second user.
24. The video data recorder of claim 17, wherein the defined criteria is at least one of an expiration date or a viewed program indicator.
25. The video data recorder of claim 17, wherein the processor identifies for deletion a previously recorded video signal to manage an available capacity of the recording medium.
the selection system is further configured to automatically schedule a recording of a first future show based on pattern matching using information in the channel guide database and to automatically schedule for recording a second future show based on fuzzy logic analysis of a set of criteria from a criteria database, an aggregate program object among the one or more aggregate program objects, and the channel guide, the set of criteria includes the user specified criteria.
27. The video data recorder of claim 26, wherein the video signal input port is configured to receive video signals from at least one of cable, satellite, or broadcast.
28. The video data recorder of claim 26, wherein the recording medium is a randomly accessible recording medium.
a data store storing a criteria database.
30. The video data recorder of claim 29, wherein the criteria database stores criteria information from a first user.
31. The video data recorder of claim 26, wherein the criteria database stores criteria information from the first user and a second user.
32. The video data recorder of claim 26, wherein the defined criteria is at least one of an expiration data or a viewed program indicator.
33. The video data recorder of claim 26, wherein the selection system identifies for removal a previously recorded show to manage an available capacity of the recording medium.
selection means for automatically scheduling a recording of the video signal based on pattern matching and automatically scheduling a recording of a second video signal based on fuzzy logic analysis of a set of criteria from a criteria database that includes user defined criteria for recording of video signals received by the receiving means, an aggregate program object among the one or more aggregate program objects, and a channel guide database.
35. The video recorder of claim 34, wherein the video storage means comprises a random access storage device.
36. The video recorder of claim 34, wherein the video storage means is a disk.
an input for receiving updates to the channel guide database.
38. The video recorder of claim 34, wherein the selection means is a processor.
39. The video recorder of claim 34, wherein the video signal is stored in a personal channel.
40. The video recorder of claim 34, wherein the defined criteria is at least one of an expiration data or a viewed program indicator.
41. The video recorder of claim 34, wherein the selection means identifies for removal a previously recorded video to manage an available capacity of the video storage means.
Current Claims in CN patent application No. 200410039972.8 (9 pgs)-attached.
Current Claims in CN patent application No. 200410039972.8 (9 pgs)—attached.
Current Claims in PCT Patent Application No. PCT/US04/00561, 6 pgs. (Reference on enclosed CD-ROM).
McFedries, Paul, "The Complete Idiot's Guide to Windows 95," 1997, Que Corporation, 2nd Edition, pp. 36-39. (Reference on enclosed CD-ROM).
Microsoft Press Computer Dictionary, 1997, Microsoft Press, Third Edition, p. 355. (Reference on enclosed CD-ROM).
Office Action from PCT Patent Application No. PCT/US04/00561 dated Dec. 8, 2004, 11 pgs. (Reference on enclosed CD-ROM).
Official Action from CN for foreign patent application No. 200410039972.8 dated Nov. 4, 2005 (8 pgs)-attached.
Official Action from CN for foreign patent application No. 200410039972.8 dated Nov. 4, 2005 (8 pgs)—attached.
U.S. Appl. No. 09/422,121, filed Oct. 20, 1999, Office Action Mailing Date Jun. 30, 2006.
U.S. Appl. No. 09/422,121, filed Oct. 20, 1999, Office Action Mailing Date May 20, 2005.
U.S. Appl. No. 09/422,121, filed Oct. 20, 1999, Office Action Mailing Date Nov. 2, 2005.
U.S. Appl. No. 12/705,467, filed Feb. 12, 2010, Non-Final Office Action, Mailing Date Mar. 18, 2011.
U.S. Appl. No. 12/705,467, filed Feb. 12, 2010, Office Action, Mailing Date Feb. 10, 2012.
U.S. Appl. No. 12/705,467, filed Feb. 12, 2010.
U.S. Appl. No. 13/732,411, filed Jan. 1, 2013, Advisory Action, Mar. 26, 2014.
U.S. Appl. No. 13/732,411, filed Jan. 1, 2013, Final Office Action mailed Dec. 4, 2013.
U.S. Appl. No. 13/732,411, Final Office Action dated Apr. 8, 2015, dated Apr. 8, 2015.
U.S. Appl. No. 13/732,411, Final Office Action dated Feb. 16, 2016, dated Feb. 16, 2016.
U.S. Appl. No. 13/732,411, Final Office Action dated Jul. 10, 2015, dated Jul. 10, 2015.
U.S. Appl. No. 13/732,411, Non-Final Office Action dated Oct. 29, 2014, dated Oct. 29, 2014.
U.S. Appl. No. 13/732,411, Notice of Allowance dated Aug. 18, 2016, dated Aug. 18, 2016.

References: §119
 Application No. 60
 application No. 200410039972
 application No. 200410039972
 application No. 200410039972
 application No. 200410039972