RELATED APPLICATIONSThis application is a continuation-in-part of U.S. patent application Ser. No. 09/909,468, filed Jul. 19, 2001, for “Object Representation of Television Programs within an Interactive Television System,” with inventor Thomas P. McKenna, Jr., which is hereby incorporated by reference.[0001]
BACKGROUND1. Field of the Invention[0002]
The present invention relates generally to the field of interactive television systems. More specifically, the present invention relates to a system and method for sharing television program information between entertainment devices.[0003]
2. Description of Related Background Art[0004]
Due to the ever-increasing number of channels offered by cable television and satellite networks, an electronic program guide (EPG) has become a common feature of many set top boxes (STBs). Conventional EPGs display schedule information for television programs in a grid-based format. One axis of the EPG typically corresponds to channels or stations, while the other axis corresponds to time slots. Rectangular elements formed within the grid represent specific television programs.[0005]
While EPGs have numerous advantages over conventional printed guides (such as TV Guide®), EPGs are still based on the channel/time slot model, which is of diminishing importance today. For example, where a viewer has access to over 500 channels, he or she is not interested in the fact that the latest episode of Friends® is being shown on Channel 498. Rather, the viewer would simply like to know when the program is being broadcast and allow the entertainment system to automatically switch to the appropriate channel.[0006]
With the advent of digital video recorders (DVRs), even the concept of broadcast time is becoming irrelevant. Ideally, a viewer would simply like to instruct the entertainment system to record the next episode of Friends®, which the viewer can then watch at a convenient time.[0007]
Forcing a viewer to search through a grid consisting, for example, of over 500 rows (corresponding to channels) and possibly thousands of columns (corresponding to time slots) is no longer acceptable. Given the wide variety of entertainment options and the limited amount of time available to individuals for entertainment, any advancement increasing the convenience of an entertainment system would be highly advantageous.[0008]
Accordingly, what is needed is a system and method that overcomes the problems and disadvantages of the prior art. In particular, the system and method should provide convenient access to available programming within an entertainment system without requiring the use of a conventional, grid-based EPG.[0009]
BRIEF DESCRIPTION OF THE DRAWINGSNon-exhaustive embodiments of the invention are described with reference to the figures, in which:[0010]
FIG. 1 is a block diagram of a communication system;[0011]
FIG. 2 is an illustration of an interactive television system;[0012]
FIG. 3 is a block diagram of hardware components of a set top box (STB);[0013]
FIG. 4 illustrates a conventional electronic program guide (EPG);[0014]
FIG. 5 is a block diagram of a plurality of program interface objects (PIOs) within a memory of an STB;[0015]
FIG. 6 is an expanded block diagram of a PIO;[0016]
FIG. 7 is a block diagram of a system utilizing PIOs to represent television programs;[0017]
FIG. 8 is a user interface for interacting with PIOs;[0018]
FIG. 9 is a block diagram of various functional modules for processing actions associated with a PIO;[0019]
FIG. 10 is a block diagram illustrating use of a PIO to record an associated television program;[0020]
FIG. 11 is a user interface illustrating visual indicators of PIOs within a calendar;[0021]
FIG. 12 is a block diagram illustrating use of a PIO to display a previously recorded television program;[0022]
FIG. 13 is a block diagram illustrating display of an attribute of a PIO;[0023]
FIG. 14 is a block diagram of a system for filtering a set of PIOs according to user-defined filtering criteria;[0024]
FIG. 15 is a block diagram illustrating transmission of PIOs between entertainment systems;[0025]
FIG. 16 is a block diagram illustrating user selection of a visual indicator and transmission of the associated PIO to a destination entertainment system via a network;[0026]
FIG. 17 is a block diagram illustrating direct transmission of a PIO between Personal Digital Assistants (PDAs);[0027]
FIG. 18 is a block diagram illustrating selection of a PIO based on a request from a destination entertainment system;[0028]
FIG. 19 is a block diagram illustrating transmission of a PIO based on a television signal currently being broadcast to the entertainment system;[0029]
FIG. 20 is a block diagram illustrating transmission of a PIO to separate entertainment systems based on demographic information;[0030]
FIG. 21 is a block diagram illustrating transmission of multiple PIOs to an entertainment system based on user preferences;[0031]
FIG. 22 is a user interface illustrating visual indicators of PIOs organized within logical folders; and[0032]
FIG. 23 is a user interface illustrating a visual indicator stored within a logical folder.[0033]
DETAILED DESCRIPTION OF THE INVENTIONThe present invention solves the foregoing problems and disadvantages by using program interface objects (PIOs) to represent television programs within an entertainment system, such as interactive television system.[0034]
In one embodiment, each PIO includes a plurality of actions and attributes. Actions correspond to various operations that may be performed on or in connection with the television program represented by the PIO. For example, one action may schedule the recording of the represented television program, while another action may play back the represented television program if it was previously recorded. Actions may be embodied as program code, in a machine-independent format, such as Java or Javascript, that may be executed, for example, by an STB for an interactive television system.[0035]
Attributes contain information about the television program represented by the PIO. For example, one attribute of a television program may correspond to the program's name, while another attribute may correspond to the program's broadcast time.[0036]
Certain attributes may contain meta-data relating to the PIO, the television program, or both. For example, one attribute may indicate the size of the corresponding PIO. Another attribute may indicate the encoding format of the television program.[0037]
Attributes may be used to sort, filter, prioritize, or otherwise organize a set of PIOs. Moreover, certain attributes may be used in the context of certain actions. For example, an action for recording a television program may need to access attributes containing the channel, starting time, and running time of the television program.[0038]
PIOs may be implemented using various technologies. For instance, a PIO may be implemented as a JavaBean object. Alternatively, a PIO may be embodied as a Distributed Component Object Model (DCOM) object or an eXtensible Markup Language (XML) object. The present invention is not limited to a particular object format.[0039]
In one implementation, each PIO also includes a visual indicator, such as an icon, which is displayed in a graphical user interface (GUI) to facilitate user interaction with the PIO. The GUI may display a plurality of visual indicators corresponding to a set of PIOs. Using a remote control or other selection mechanism, a user may select a PIO by its corresponding visual indicator. Further, a user may select an action associated with the PIO, which then may be executed by the STB.[0040]
In one embodiment, an STB or other system may be populated with visual indicators of a set of PIOs selected from a larger set of available PIOs. The set of available PIOs may be filtered based on user-defined filtering criteria. For example, a user may filter the set of available PIOs for ones relating to sporting events.[0041]
In certain embodiments, PIOs may be transmitted between interactive television systems, personal computers, mobile devices, and the like. For example, a PIO may be attached to an e-mail message and sent via the Internet to another system where it may be used to perform various actions on, or provide information concerning, a represented television program. Alternatively, a PIO may be sent via infrared (IR) or radio frequency (RF) transmission from one portable entertainment device, such as a Personal Digital Assistant (PDA), to another.[0042]
Thus, PIOs are an alternative mechanism for providing access to available television programming within an interactive television system, without the necessity of a conventional EPG. A user need not be concerned with such details as channel or broadcast time, as was necessary in conventional systems. The user need only select an icon for a PIO and select the desired action.[0043]
Reference throughout this specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, appearances of the phrases “in one embodiment” or “in an embodiment” in various places throughout this specification are not necessarily all referring to the same embodiment.[0044]
Furthermore, the described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments. In the following description, numerous specific details are provided, such as examples of programming, user selections, network transactions, database queries, database structures, etc., to provide a thorough understanding of embodiments of the invention. One skilled in the relevant art will recognize, however, that the invention can be practiced without one or more of the specific details, or with other methods, components, materials, etc. In other instances, well-known structures, materials, or operations are not shown or described in detail to avoid obscuring aspects of the invention.[0045]
Referring now to FIG. 1, there is shown a communication system[0046]100. In one implementation, the system100 relies on abroadband network101 for communication, such as a cable television network or a direct satellite broadcast (DBS) network, although other networks are possible.
The system[0047]100 may include a plurality of set top boxes (STBs)102 located, for instance, at customer homes or offices. Generally, anSTB102 is a consumer electronics device that serves as a gateway between a customer'stelevision104 and thenetwork101. In alternative embodiments, anSTB102 may be embodied more generally as a personal computer (PC), anadvanced television104 with STB functionality, or another type of client terminal.
An[0048]STB102 receives encoded television signals and other information from thenetwork101 and decodes the same for display on thetelevision104 or other display device, such as a computer monitor. As its name implies, anSTB102 is typically located on top of, or in close proximity to, thetelevision104.
Each[0049]STB102 may be distinguished from other network components by a unique identifier, number, code, or address, examples of which include an Internet Protocol (IP) address (e.g., an IPv6 address), a Media Access Control (MAC) address, or the like. Thus, video signals and other information may be transmitted from thenetwork101 to aspecific STB102 by specifying the corresponding address, after which thenetwork101 routes the transmission to its destination using conventional techniques.
A[0050]remote control106 is provided, in one configuration, for convenient remote operation of theSTB102 and thetelevision104. Theremote control106 may use infrared (IR), radio frequency (RF), or other wireless technologies to transmit control signals to theSTB102 and thetelevision104. Other remote control devices are also contemplated, such as wired or wireless mice (not shown).
Additionally, a keyboard[0051]108 (either wireless or wired) is provided, in one embodiment, to allow a user to rapidly enter text information into theSTB102. Such text information may be used for e-mail, instant messaging (e.g. text-based chat), or the like. In various embodiments, thekeyboard108 may use infrared (IR), radio frequency (RF), or other wireless technologies to transmit keystroke data to theSTB102.
Each[0052]STB102 may be coupled to thenetwork101 via abroadcast center110. In the context of a cable television network, abroadcast center110 may be embodied as a “head-end”, which is generally a centrally-located facility within a community where television programming is received from a local cable TV satellite downlink or other source and packaged together for transmission to customer homes. In one configuration, a head-end also functions as a Central Office (CO) in the telecommunication industry, routing video signals and other data to and from thevarious STBs102 serviced thereby.
A[0053]broadcast center110 may also be embodied as a satellite broadcast center within a direct broadcast satellite (DBS) system. A DBS system may utilize a small 18-inch satellite dish, which is an antenna for receiving a satellite broadcast signal. EachSTB102 may be integrated with a digital integrated receiver/decoder (IRD), which separates each channel, and decompresses and translates the digital signal from the satellite dish to be displayed by thetelevision104.
Programming for a DBS system may be distributed, for example, by multiple high-power satellites in geosynchronous orbit, each with multiple transponders. Compression (e.g., MPEG) may be used to increase the amount of programming that can be transmitted in the available bandwidth.[0054]
The broadcast centers[0055]110 may be used to gather programming content, ensure its digital quality, and uplink the signal to the satellites. Programming may be received by the broadcast centers110 from content providers (CNN®, ESPN®, HBO®, TBS®, etc.) via satellite, fiber optic cable and/or special digital tape. Satellite-delivered programming is typically immediately digitized, encrypted and uplinked to the orbiting satellites. The satellites retransmit the signal back down to every earth-station, e.g., every compatible DBS system receiver dish at customers' homes and businesses.
Some broadcast programs may be recorded on digital videotape in the[0056]broadcast center110 to be broadcast later. Before any recorded programs are viewed by customers, technicians may use post-production equipment to view and analyze each tape to ensure audio and video quality. Tapes may then be loaded into a robotic tape handling systems, and playback may be triggered by a computerized signal sent from a broadcast automation system. Back-up videotape playback equipment may ensure uninterrupted transmission at all times.
Regardless of the nature of the[0057]network101, the broadcast centers110 may be coupled directly to one another or through thenetwork101. In alternative embodiments, broadcast centers110 may be connected via a separate network, one particular example of which is theInternet112. TheInternet112 is a “network of networks” and is well known to those skilled in the art. Communication over theInternet112 is accomplished using standard protocols, such as TCP/IP (Transmission Control Protocol/Internet Protocol) and the like.
A[0058]broadcast center110 may receive television programming for distribution to theSTBs102 from one or moretelevision programming sources114 coupled to thenetwork101. Preferably, television programs are distributed in an encoded format, such as MPEG (Moving Picture Experts Group). Various MPEG standards are known, such as MPEG-2, MPEG-4, MPEG-7, and the like. Thus, the term “MPEG,” as used herein, contemplates all MPEG standards. Moreover, other video encoding/compression standards exist other than MPEG, such as JPEG, JPEG-LS, H.261, and H.263. Accordingly, the invention should not be construed as being limited only to MPEG.
Broadcast centers[0059]110 may be used to enable audio and video communications betweenSTBs102. Transmission betweenbroadcast centers110 may occur (i) via a direct peer-to-peer connection between broadcast centers110, (ii) upstream from afirst broadcast center110 to thenetwork101 and then downstream to asecond broadcast center110, or (iii) via theInternet112. For instance, afirst STB102 may send a video transmission upstream to afirst broadcast center110, then to asecond broadcast center110, and finally downstream to asecond STB102.
Of course, the communication system[0060]100 illustrated in FIG. 1 is merely exemplary, and other types of devices and networks may be used within the scope of the invention.
Referring now to FIG. 2, there is shown an interactive television (ITV)[0061]system200 according to an embodiment of the invention. As depicted, thesystem200 may include anSTB102, a television104 (or other display device), aremote control106, and, in certain configurations, akeyboard108.
The[0062]remote control106 is provided for convenient remote operation of theSTB102 and thetelevision104. In one configuration, theremote control106 includes awireless transmitter202 for transmitting control signals (and possibly audio/video data) to awireless receiver203 within theSTB102 and/or thetelevision104. In certain embodiments, theremote control106 includes awireless receiver204 for receiving signals from awireless transmitter205 within theSTB102. Operational details regarding thewireless transmitters202,205 andwireless receivers203,204 are generally well known to those of skill in the art.
The[0063]remote control106 preferably includes a number of buttons or other similar controls. For instance, theremote control106 may include apower button206, an uparrow button208, adown arrow button210, aleft arrow button212, aright arrow button214, a “Select”button216, an “OK”button218,channel adjustment buttons220,volume adjustment buttons222,alphanumeric buttons224, a “Help”button226, and the like.
In one embodiment, the[0064]remote control106 includes amicrophone242 for capturing audio signals. The captured audio signals may be transmitted to theSTB102 via thewireless transmitter202. In addition, theremote control106 may include aspeaker244 for generating audible output from audio signals received from theSTB102 via thewireless receiver204. In alternative embodiments, as shown in FIG. 3, themicrophone242 and/orspeaker244 may be integrated with theSTB102.
In certain embodiments, the[0065]remote control106 further includes avideo camera246, such as a CCD (charge-coupled device) digital video camera, for capturing video signals. In one implementation, thevideo camera246 is in electrical communication with thewireless transmitter202 for sending the captured video signals to theSTB102. Like themicrophone242 andspeaker244, thevideo camera246 may be integrated with theSTB102, or attached to theSTB102, as in the depicted embodiment.
The various components of the[0066]remote control106 may be positioned in different locations for functionality and ergonomics. For example, as shown in FIG. 2, thespeaker244 may be positioned near the “top” of the remote control106 (when viewed from the perspective of FIG. 2) and themicrophone242 may be positioned at the “bottom” of theremote control106. Thus, in one embodiment, a user may conveniently position thespeaker244 near the user's ear and themicrophone242 near the user's mouth in order to operate theremote control106 in the manner of a telephone.
The[0067]optional keyboard108 facilitates rapid composition of text messages. Thekeyboard108 includes a plurality of standardalphanumeric keys236. In one configuration, thekeyboard108 includes a wireless transmitter (not shown), similar or identical to thewireless transmitter202 of theremote control106. The wireless transmitter transmits keystroke data from thekeyboard108 to theSTB102. Additionally, thekeyboard108 may include one or more of the buttons illustrated on theremote control106.
Alternatively, or in addition, a hands-[0068]free headset248 may be coupled to theremote control106 or thekeyboard108. Theheadset248 may be coupled using astandard headset jack250. Theheadset248 may include amicrophone242 and/orspeaker244. Such aheadset248 may be used to reduce audio interference from the television104 (improving audio quality) and to provide the convenience of hands-free operation.
Referring now to FIG. 3, there is shown a block diagram of physical components of an[0069]STB102 according to an embodiment of the invention. As noted above, theSTB102 includes awireless receiver203 for receiving control signals sent by thewireless transmitter202 in theremote control106 and awireless transmitter205 for transmitting signals (such as audio/video signals) to thewireless receiver204 in theremote control106.
The[0070]STB102 also includes, in one implementation, anetwork interface302 for communicating with thenetwork101 via thebroadcast center110. Theinterface302 may include conventional circuitry for receiving, demodulating, and demultiplexing MPEG packets. Theinterface302 may also include conventional modem circuitry for sending or receiving data. For example, theinterface302 may conform to the DOCSIS (Data Over Cable Service Interface Specification) or DAVIC (Digital Audio-Visual Council) cable modem standards.
In one configuration, one or more frequency bands (for example, from 5 to 30 MHz) may be reserved for upstream transmission. Digital modulation (for example, quadrature amplitude modulation or vestigial sideband modulation) may be used to send digital signals in the upstream transmission. Of course, upstream transmission may be accomplished differently for[0071]different networks101. Alternative ways to accomplish upstream transmission include using a back channel transmission, which is typically sent via an analog telephone line, ISDN, DSL, or other techniques.
The[0072]STB102 also preferably includes a codec (encoder/decoder)304, which serves to encode audio/video signals into a network-compatible data stream for transmission over thenetwork101. Thecodec304 also serves to decode a network-compatible data stream received from thenetwork101. Thecodec304 may be implemented in hardware and/or software. Moreover, thecodec304 may use various algorithms, such as MPEG or Voice over IP (VoIP), for encoding and decoding.
The[0073]STB102 further includes amemory device306, such as a random access memory (RAM), for storing temporary data. Similarly, a read-only memory (ROM) may be provided for storing more permanent data, such as fixed code and configuration information.
In one embodiment, an audio/video (A/V)[0074]controller308 is provided for converting digital audio/video signals into analog signals for playback/display on thetelevision104. The A/V controller308 may be implemented using one or more physical devices, such as separate graphics and sound controllers. TheAN controller308 may include graphics hardware for performing bit-block transfers (bit-blits) and other graphical operations for displaying a graphical user interface (GUI) on thetelevision104.
In some implementations, the[0075]STB102 may include astorage device310, such as a hard disk drive, optical storage device, RAM, compact flash card, etc. Thestorage device310 may be configured to store encoded incoming and outgoing video signals as well as television broadcasts and retrieve the same at a later time for display. Thestorage device310 may be configured, in one embodiment, as a digital video recorder (DVR), enabling scheduled recording of television programs, pausing (buffering) live video, etc. Thestorage device310 may also be used in various embodiments to store viewer preferences, parental lock settings, electronic program guide (EPG) data, passwords, e-mail messages, video messages, video greetings, and the like. In one implementation, thestorage device310 also stores an operating system (OS) for theSTB102, such as Windows CE® or Linux®.
As noted above, the[0076]STB102 may include, in certain embodiments, amicrophone242 and aspeaker244 for capturing and reproducing audio signals, respectively. TheSTB102 may also include or be coupled to avideo camera246 for capturing video signals. These components may be included in lieu of or in addition to similar components in theremote control106,keyboard108, and/ortelevision104.
A[0077]CPU312 controls the operation of theSTB102, including the other components thereof, which are coupled to theCPU312 in one embodiment via a bus314. TheCPU312 may be embodied as a microprocessor, a microcontroller, a digital signal processor (DSP) or other device known in the art. For instance, theCPU312 may be embodied as an Intel® x86 processor. As noted above, theCPU312 may perform logical and arithmetic operations based on program code stored within thememory306 or thestorage device310.
Of course, FIG. 3 illustrates only one possible configuration of an[0078]STB102. Those skilled in the art will recognize that various other architectures and components may be provided within the scope of the invention. In addition, various standard components are not illustrated in order to avoid obscuring aspects of the invention.
FIG. 4 illustrates one implementation of a conventional Electronic Programming Guide (EPG)[0079]402. As noted above, atypical EPG402 includes a grid having two axes, one fortime slots404 and the other for channels or stations406.Rectangular elements408 formed within the grid correspond to specific television programs.
Generally, the navigation interface for a[0080]conventional EPG402 is awkward and ill-suited to entertainment systems having more than a few channels. For example, a satellite STB may receive more than 500 channels, requiring the user to scroll through many pages of information to locate a desired program. Clearly, aconventional EPG402 is based on the channel/time slot model, which is of diminishing relevance today.
For example, where a viewer has access to over 500 channels, he or she is not in interested in the fact that the latest episode of Friends® is being shown on Channel 498. Rather, the viewer would simply like to know when the program is being broadcast and allow the entertainment system to automatically switch to the appropriate channel.[0081]
With the advent of digital video recorders (DVRs), even the concept of broadcast time is becoming irrelevant. Ideally, a viewer would like instruct the entertainment system to record the next episode of Friends®, which the viewer can then watch at a convenient time.[0082]
In conventional systems, the[0083]EPG402 may be generated from a text data file410 or the like containing raw schedule information. For example, eachprogram element408 in theEPG402 may correspond to one or more lines in the text data file410. Unfortunately, storing raw schedule information in this manner severely limits the way in which the information may be used and communicated. For example, each system that receives the text data file410 must be programmed to parse and display the information in a user-friendly format. Thefile410, itself, does not include code or resources for using or displaying the information.
FIG. 5 illustrates an alternative to the[0084]conventional EPG402 in accordance with principles of the present invention. In one embodiment of the invention, program interface objects (PIOs)502 are used to represent television programs within an entertainment system, such as aninteractive television system200. In the depicted embodiment, a plurality ofPIOs502 are stored within amemory306 of anSTB102. However, various other systems and devices may be used to storePIOs502, such as personal digital assistants (PDAs), webpads, personal computers, and the like.
As noted above, a[0085]PIO502 may include a plurality ofactions504 and attributes506. In one embodiment,actions504 correspond to various operations that may be performed on or in connection with the television program represented by thePIO502. For example, oneaction504 may schedule the recording of the represented television program, while another action may display the represented television program if it was previously recorded or is currently in progress. Of course eachPIO502 may include a different set ofactions504 permitting thePIOs502 to be sorted and categorized based on the different definedactions504.
[0086]Actions504 may be embodied as program code, in a machine-independent format, that may be executed, for example, by anSTB102 for an interactive television system. Alternatively,actions504 may include resources that are used by program code within aSTB102 or the like.
Attributes[0087]506 contain information about the television program represented by thePIO502. For example, oneattribute506 may correspond to a television program's name, while anotherattribute506 may correspond to the program's broadcast time.Certain attributes506 may contain meta-data related to thePIO502, the represented television program, or both. For example, oneattribute506 may indicate the size of thePIO502. Anotherattribute506 may indicate the video encoding format of the represented television program.
As described more fully hereafter, attributes[0088]506 may be used to sort, filter, search, prioritize, or otherwise organize a set ofPIOs502. Moreover,certain attributes506 may be used in the context ofcertain actions504. For example, anaction504 for recording a television program may need to access theattributes506 containing the channel, starting time, and running time of the television program.
Each of the[0089]attributes506 in aPIO502 may include a triplet of information, e.g., the attribute name (Program Title, Program Broadcast Time, Program Broadcast Channel), the attribute's type (searchable text, time, executable code, GIF image, ATVEF triggers and their time mark within the program, MIME, or the like), and the attribute's value. In some cases, attributes506 may include text in multiple languages to allow thePIO502 to be used in different countries around the world.
PIOs[0090]502 may be implemented using various technologies. For instance, aPIO502 may be implemented as a JavaBean object. Alternatively, aPIO502 may be embodied as a Distributed Component Object Model (DCOM) object or an extensible Markup Language (XML) object.
In one implementation, each[0091]PIO502 also includes avisual indicator508, such as an icon, animated image, or video clip, which is displayed in a graphical user interface (GUI) to facilitate user interaction with thePIO502. As illustrated in subsequent figures, the GUI may display a plurality ofvisual indicators508 corresponding to a set ofPIOs502. Using aremote control106 or other selection mechanism, a user may select aPIO502 by its correspondingvisual indicator508. Further, a user may select an action associated with thePIO502 to be executed by theSTB102. In alternative embodiments, aPIO502 may not include avisual indicator508, may simply include onemore actions504 and one or more attributes506.
In one embodiment,[0092]PIOs502 include program code in a substantially machine-independent format. For example, JavaBean, DCOM, or XML objects generally do not require proprietary hardware so long as the hardware executes a Java Virtual Machine (JVM), a DCOM server, an XML processor, or the like. ThePIOs502 may be created using a variety of programming languages and protocols, such as Java, C++, Smalltalk, and other programming languages that support object-oriented programming.
Machine independence allows the[0093]PIOs502 to be portable. Information and functionality associated with a particular television program are encapsulated within thePIOs502. PIOs may be transferred betweenSTBs102 or other devices, such as personal computers and hand-held devices.PIOs502 may also be stored in computer-readable media, such as CDs, diskettes, memory cards, memory sticks, or the like.
Of course,[0094]PIOs502 may be configured in various ways, and may be referred to using different terms, while still being considered within the scope of the invention. For example, “actions” may be termed “methods” or “functions”, and “attributes” may be referred to as “variables”, “state”, or “data”.
FIG. 6 illustrates an expanded view of a[0095]PIO502 including examples ofattributes506,actions504, andvisual indicators508. For instance, atypical PIO502 may includesuch attributes506 astitle506a,description506b,broadcast channel506c,rating506d(e.g., TV-G, TV-PG), starttime506e,end time506f, runningtime506g,release year506h,classification506i(e.g., drama, sit-com, sports), actor(s)506j, producer(s)506k, related Internet links506l,storage location506m, country oforigin506n, language506o, etc. Of course, variousother attributes506 may be provided within the scope of the invention.
In some cases, attributes[0096]506 may be embodied as references to external data in the form of hyperlinks or the like. For example, where astart time506eattribute contains a fixed start time (e.g., 8:00 pm), anSTB102 may not be able to account for scheduling changes by atelevision source114. Thus, in certain embodiments, thestart time attribute506e(and other such attributes506), may include a link to a server (not shown) that contains the up-to-date start time for the television program. Thus, scheduling changes reflected in the server will be automatically recognized by all correspondingPIOs502. This is particularly advantageous in the context of a sports game that goes into overtime. For example, theSTB102 can get updates from the broadcaster, allowing theSTB102 to extend the duration of the recording of the program.
In other embodiments, one or[0097]more attributes506 of aPIO502 may be dynamically updated based on (possibly real-time) updates from a broadcaster using a transmission method that can be specified in thePIO502. The transmission methods can include, for instance, HTTP, FTP, e-mail, or an ATVEF trigger.
One particularly[0098]advantageous attribute506 is the is the related Internet links attribute506l. The related Internet links attribute506lmay link aPIO502 to an associated web site (e.g., a sponsored link), a chat room (e.g., real time chat about the television program being watched), or an e-commerce site.
In certain embodiments, one[0099]attribute506 may comprise a link (not shown) to one or moreother PIOs502. This facilitates PIO linking, which is advantageous, for example, in the context ofrelated PIOs502, e.g., a miniseries.
A[0100]typical PIO502 may also includevarious actions504, such as anaction504afor recording the associated television program. As described more fully below, therecording action504amay operate in conjunction with theCODEC304 andstorage device310 of FIG. 3 to digitally record the television program when it is broadcast by atelevision source114 or streaming video source116. In addition, therecording action504 may access the channel, start time, end time, and/or running time attributes506c,506e-gin order to facilitate the recording. The instantiation of aPIO502 as stored in theSTB memory306 may contain additional, or updated data and may not be exactly the same as the originally broadcastPIO502. Therecording action504ais an example of this dynamic update of the stored copy of thePIO502.
An[0101]action504bmay also be provided for displaying the represented television program on atelevision104. If, for instance, the television program is currently being broadcast, thedisplay action504bmay be configured to tune theSTB102 to the correct channel. If, however, the television program was previously broadcast and recorded (e.g., by therecord action504a), thedisplay action504bmay retrieve and display the stored television program. In one embodiment, thedisplay action504 accesses thestorage location506mattribute to locate a stored television program.
Various[0102]other actions504 may include anaction504bfor reminding a user that a particular program is scheduled to be broadcast and/or reminding the user that the program has been recorded. Additionally, anaction504dmay be provided for displaying one ormore attributes506 of thePIO502 on thetelevision104 or other display device. Moreover, anaction504emay be included to allow a user to rate and/or comment on the represented television program. Anaction504fmay also be provided to send a copy of thePIO502 to another system or device.
In some cases,[0103]actions504 may be propagated between linkedPIOs502. For example, a user may selection therecord action502aof aPIO502 corresponding to a program in a mini-series. If thePIOs502 of the mini-series are linked (e.g., by anappropriate attribute506 or the like), then thesame action506amay be executed by the linkedPIOs502 as well.
Of course, numerous[0104]other attributes506 andactions504 may be provided within the scope of the invention. Moreover, the object-oriented nature of aPIO502 allows foradditional actions504 and attributes506 to be dynamically added as necessary.
The[0105]PIO502 may also include avisual indicator508, such as a graphical icon, to facilitate interaction with thePIO502 in the context of a GUI. Avisual indicator508 may alternatively, or in addition, include a textual description of the television program, such as the program's name.
A graphical[0106]visual indicator508 is advantageous in that it overcomes language and illiteracy barriers presented byconventional EPGs402. For example, a child user may be unable to read a text description. However, a Big Bird® icon would be clearly recognizable as representing Sesame Street®.
In certain embodiments, a[0107]PIO502 may include anaudible indicator509. Theaudible indicator509 may include, for example, a description of the television program associated with the PIO502 (similar to thedescription attribute506b), an advertisement, user instructions, theme music for the television program or the like. Theaudible indicator509 may be embodied as an audio clip or sample, which is played back by theSTB102 when thePIO502 is selected or when the correspondingvisual indicator506 is displayed. The inclusion of anaudible indicator509 is advantageous for people who are visually disabled or those who have difficulty reading.
Referring now to FIG. 7, there is shown a block diagram of logical components of a[0108]system700 that utilizesPIOs502 to represent television programs. The depicted logical components may be implemented using one or more of the physical components shown in FIG. 3. Additionally, or in the alternative, various logical components may be implemented as software modules stored in thememory306 and/orstorage device310 and executed by theCPU312.
In one configuration, a plurality of[0109]PIOs502a-fmay be stored within a memory, such as amemory306 of anSTB102. Adisplay component702 displays eachvisual indicator508 of aPIO502 on atelevision104 or other display device. Thevisual indicators508 may be displayed in connection with aGUI704.
In certain embodiments, the displayed[0110]visual indicators508a-fmay be grouped in theGUI704 within logical folders or the like, allowing user to organize thevisual indicators508a-fin any desired manner. For example, a user may groupvisual indicators508a-fwithin such folders as “My sit-coms”, “My TV dramas”, “My sports”, etc., to facilitate easy access thereto.
As described more fully below, a[0111]selection component706 allows a user to select one ormore PIOs502 by selecting correspondingvisual indicators508. Thereafter, theselection component706 allows a user to choose one of the actions associated with the selectedPIO502. The selection of anaction504 may be accomplished via a context-sensitive menu or other suitable mechanism, as illustrated below.
As an example, suppose a[0112]PIO502aincludes a number ofattributes506, such as atitle attribute506a(e.g., “Dallas v. Denver”), achannel attribute506c(“4 KTVX”), astart time attribute506e(e.g., “Monday, 7:00 pm”), and anend time attribute506f(“Monday, 10:00 pm”). Further, suppose that thePIO502aincludes arecord action504a, adisplay action504b, and an iconicvisual indicator508a.
FIG. 8 illustrates an[0113]exemplary GUI704 includingvisual indicators508a-fcorresponding to thePIOs502a-fof FIG. 7. In the illustrated embodiment, a user selectsvisual indicator508ausing, for example, the arrow buttons208-214 of theremote control106. A pointer, selection outline, or other mechanism may be used to pick the desiredindicator508a.
In response to the selection, a context-[0114]sensitive menu802 may be displayed listing theavailable actions504a-bfor thePIO502a. Where a large number ofactions504 are available, themenu802 may display only the most popular orcommon actions504, while providing a mechanism to display additional actions if desired.
In some cases, selecting an[0115]action504 may result in the display of various options804 in the form of asub-menu806. The options804 may correspond to various parameters, features, or settings used by thecorresponding action504. For example, therecord action504amay include two options804a-b, corresponding to record “Weekly” and record “Next Time Broadcast.” If the “Next Time Broadcast”option804bis selected, for instance, therecord action504amay record the next episode of a television program, as opposed to recurring weekly episodes (in the case of TV drama or sit-com).
Of course, different selection mechanisms may be provided other than the context-[0116]sensitive menu802 andsub-menu806. For example, theselection component706 may display a plurality of user-selectable icons (not shown) corresponding todifferent actions504 and options804.
Because each[0117]PIO502 may be tailored to a particular television program, theactions504 available in the context-sensitive menu802 may vary from program to program. Similarly, options804 available in asub-menu806 for aparticular action504 may vary from one program to the next.
Referring to FIG. 9, the[0118]STB102 may further include anaction component902 that executes a user-selectedaction504. Theaction component902 may be implemented, in various embodiments, in the context of a Java Virtual Machine (JVM), a DCOM server, XML processor, or the like. Of course, other implementations are possible.
To execute the selected[0119]action504, theaction component902 may interact with various other logical components of theSTB102, such as arecording component904, ascheduling component906, and aplayback component908, as described below.
Briefly, the[0120]recording component904 is configured to record a television program using, for example, thestorage device310. Thescheduling component906 schedules recording tasks to record television programs to be broadcast in the future. In addition, thescheduling component906 interacts with therecording component904 to record a desired television program at the correct time and date in accordance with a scheduled recording task. Theplayback component908 is configured, in one embodiment, to display a television program stored within thestorage device310 or the like. Each of the above-described components may be implemented in the context of a digital video recording (DVR) system, one example of which is TiVo®, available from TiVo, Inc.
Suppose, as shown in FIG. 8, that a user selects the[0121]record action504awith the “Next Time Broadcast”option804b. In response to such selection, and as illustrated in FIG. 10, the startingtime506e, endingtime506f, andchannel506cattributes may be provided to thescheduling component906. Thereafter, thescheduling component906 schedules a recording event to record the television program. At the specified time and date, thescheduling component906 instructs therecording component904 to record the television program on the specified channel.
The recorded television program may be stored within the[0122]storage device310 of theSTB102 or another suitable location. After the program is recorded, the stored location of the television program may be placed in thestorage location attribute506mof thePIO502ato allow subsequent access thereto.
FIG. 11 illustrates use of[0123]PIOs502 in the context of a personal information manager (PIM)1100, such as an adapted version of Microsoft® Outlook®. In one embodiment, when a television program represented by aPIO502 is scheduled for recording, thescheduling component906 interacts with thePIM1100 to display avisual indicator508 of thePIO502 in a calendar, to-do list, or the like, provided by thePIM1100.
Moreover, in one implementation, the[0124]scheduling component906inserts reminders1102 into thePIM1100 to notify users concerning scheduled recordings. Similarly,reminders1102 of upcoming television programs may be noted on the calendar a day or two prior to the broadcast date. In this manner, a user may quickly see which television programs he or she plans to watch.
In certain embodiments,[0125]PIOs502 may be dragged and dropped onto thePIM1100 using object linking and embedding (OLE), DCOM, ActiveX, or the like. A result of dropping aPIO502 on thePIM1100 may be to schedule the program represented by thePIO502 for recording.
While FIG. 11 illustrates use of[0126]PIOs502 in aPIM1100, the object-oriented nature of thePIOs502 allows them to interface with a variety of software applications. Moreover, PIOs may be used with a variety of electronic devices, including personal computers, cell phones, personal digital assistants (PDAs), pagers, telephones, and the like. The portable nature of thePIOs502 and flexibility available provide for a variety of uses for thePIOs502. For example, anaction504 may exist to call a user and deliver a voice synthesizedreminder1102 one hour prior to a broadcast of the associated television program. The possibilities foractions504 are endless.
As shown in FIG. 12, once a television program is recorded, it may be retrieved and displayed in response to a user selection of the[0127]display action504bshown in FIG. 8. In one embodiment, the location of the recorded television program is retrieved from the storedlocation attribute506mand provided to theplayback component908. Thereafter, theplayback component908 retrieves the recorded program and plays back the same on thetelevision104.
As shown in FIG. 13, an[0128]action504dmay be provided for displaying one or more of the attributes of aPIO502. Theaction504dand the desired attribute(s)506 may be selected using the context-sensitive menu802 andsub-menu806 illustrated in FIG. 8, although the invention is not limited in this respect.
Suppose, for example, that a user selects the[0129]display attribute action504dwith thedescription attribute506b. In one embodiment, thedescription attribute506bis retrieved from thePIO502 and provided to thedisplay component702 or the like for display. In various embodiments, a selectedattribute506 may include text, audio, video, or the like. Thus, the various modules not shown but well known in the art may be required for displaying or playing back the selectedattribute506.
FIG. 14 illustrates an embodiment of a[0130]system1400 providing a set ofPIOs502 to aninteractive television system200.PIOs502 may be available from a variety of sources including, for example, abroadcast center110, a television source114 (such as a television network), a PIO server (not shown), and the like. ThePIOs502 may be transmitted from these sources, across anetwork101, theInternet112, or other network connection, including a satellite link, to anSTB102. Of course, various types ofnetworks101 may be used, such as intranets, internets, HPNA networks, home RF networks, cable networks, etc.
In the depicted embodiment, a[0131]population component914 is provided for populating anSTB102 or the like with a user-selected set ofPIOs502. Thepopulation component914 may be implemented within the STB102 (as shown), within abroadcast center110, or the like.
In one embodiment, the[0132]population component914 provides afilter component1402 for reducing aninitial set1404 ofavailable PIOs502 to a user-specifiedset1405 that may be stored within theSTB102. In certain embodiments, theinitial set1404 may include hundreds or thousands ofPIOs502 associated with corresponding television programs. Thus, reducing theinitial set1404 to a moremanageable set1405 is generally desirable.
The[0133]filter component1402 may include or be associated withfiltering criteria1406. Thefiltering criteria1406 may comprise a set of user-defined rules for filtering theinitial set1404. For example, a user may specify that thepopulation component914 only retrievePIOs502 having astart time506eof 7:00 pm or anend time506fof 10:00 pm (e.g., primetime). Alternatively, a user may specify that thepopulation component914 only retrievePIOs502 corresponding to sporting events. Of course, those skilled in the art recognize that variousother filtering criteria1406 may be used, including logical operators (e.g., AND, OR, NOT) and the like.
The[0134]filtering component1402 may also be used within anSTB102 to divide theinitial set1404 based on different criteria, such as the genres of the respective television programs, in order to transmitPIOs502 or information fromPIOs502 to auxiliary devices such as pagers, PDAs, personal computers, or telephone handsets that can receive information and display it for the user.
As illustrated in FIG. 14, suppose[0135]PIOs502a-dbelong to theinitial set1404. Thepopulation component914 applies the filtering criteria1406 (e.g., primetime) to eachPIO502a-d. The PIOs502 that match the filtering criteria1406 (e.g.,PIO502a-b) are retrieved from the source and stored in theSTB102. As previously described, thedisplay component702 may then display the correspondingvisual indicators508a-bon thetelevision104.
The[0136]filtering component1402 may also be used internally within aSTB102 to organize the selectedset1405. For example, a user may further divide theset1405 based ondifferent criteria1406, such as the genres of the respective television programs. This allows the user to organize thePIOs502 using logical folders or the like.
FIGS.[0137]15-24 are high-level block diagrams illustrating various techniques for sharing program information between entertainmentdevices using PIOs502. WhileSTBs102 are used as particular examples of entertainment devices, the invention is not limited toSTBs102 orinteractive television systems200 generally. As used herein, an entertainment device may include any electronic device that is capable of receiving, storing, transmitting, or usingPIOs502.
As shown in FIG. 15,[0138]PIOs502 may be transmitted between entertainment devices. For example, afirst STB102amay store a plurality ofPIOs502a-f. As described in greater detail below, a user may select aPIO502afor transmission to asecond STB102b. In one embodiment, thePIO502ais transmitted through one or more broadcast centers110 and thenetwork101 to thesecond STB102b, although other types of transmission are possible.
The process of selecting a[0139]PIO502afor transmission is further detailed in FIG. 16. As depicted, a user of thefirst STB102amay select avisual indicator508acorresponding to thePIO502a, which may be displayed in a graphical user interface (GUI)1602.
Selection of the[0140]visual indicator508amay result in a context-sensitive menu802 being displayed, listingvarious actions504 that may be performed with respect to thePIO502. For instance, as shown in FIG. 16, listed actions may include asend action504fand arecord action504a. Thereafter, the user may select, for example, thesend action504ffrom a context-sensitive menu802.
In one embodiment, selecting the[0141]send action504fresults in a sub-menu806 being displayed, which lists various transmission options such as a “Network”option804cand a “Wireless”option804d. Choosing the “Network”option804con the sub-menu806 may result in thePIO502abeing transmitted to thesecond STB102bvia thenetwork101 using standard network protocols, such TCP/IP, UDP/IP, etc. In certain embodiments, the selectedPIO502amay be attached to an email message and sent to a user of thesecond STB102bover thenetwork101 using the Simple Mail Transfer Protocol (SMTP) or other e-mail protocols.
Once a[0142]PIO502 is selected for transmission, a user may designate a destination device for receiving the selectedPIO502. In one configuration, a user may indicate, for example, a name of the recipient, a personal network address of the recipient, a network address of the recipient's device, etc.
For example, in the depicted embodiment, a[0143]window1604 may include a drop-down selection list1606 for selecting a name of a recipient. Of course, the name may be associated with a network address that is not displayed. In response to the selection, theSTB102amay send a copy of thePIO502ato “Robert Johnson” at the associated network address. If thePIO502ais being sent as an attachment to an email message, theSTB102amay create the email message (not shown), attach thePIO502ato the message (using MIME or other similar techniques), and address the email message to “Robert Johnson.”
As shown in FIG. 17, other types of entertainment devices, such as personal digital assistants (PDAs)[0144]1702 are illustrated. Of course, those skilled in the art will recognize thatPIOs502 may also be transmitted between anSTB102 and a PDA1702, and between other devices, such as personal computers, cellular phones, pagers, webpads, and the like.
In such embodiments, different transmission methods may be appropriate. For example, a user may select a “Wireless”[0145]option804dfrom thesub-menu806. Thereafter, the selectedPIO502amay be transmitted from afirst PDA1702ato asecond PDA1702busing a wireless transmission method. Various transmission mediums may be used, such as infrared (IR) or radio frequency (RF). Of course, multiple PDAs1702 within range of the transmittingPDA1702amay simultaneously receive a copy of thePIO502a.
In another embodiment, as shown in FIG. 18, a[0146]source STB102a(or other entertainment device,broadcast center110, PIO server, or the like) transmits selectedPIOs502 to adestination STB102bbased on arequest1802 from thedestination STB102b. In certain configurations, therequest1802 includessearch criteria1804 relating to one or more attributes506. For instance, thesearch criteria1804 may select only thosePIOs502 having a “Sports”classification attribute506i. Of course, thecriteria1804 may relate to a plurality ofactions504 and attributes506, and may include logical operators.
As depicted, the[0147]source STB102athen searches thePIOs502a-ffor ones satisfying thecriteria1804. ThePIOs502 satisfying thecriteria1804, such asPIO502a, are transmitted to thedestination STB102bvia thenetwork101 as discussed with reference to FIG. 15.
In another embodiment, as illustrated in FIG. 19, a[0148]broadcast center110 broadcasts atelevision signal1902 from atelevision source114 to one or more STBs102b. In addition, thebroadcast center110 may store a number of PIOs related to various television programs.
In one embodiment, the[0149]broadcast center110 transmitsPIOs502 to theSTBs102bbased on theparticular television signal1902 being currently broadcast. For example, during a commercial for a televised football game, thebroadcast center110 may transmit aPIO502arepresenting the game. ThePIO502amay include arecord action504a, which records the game when selected.
The user may be notified of the[0150]PIO502aby aconventional trigger1904 received with thetelevision signal1902, such as an ATVEF trigger. In particular, a user may be notified by thetrigger1904 that he or she can schedule football game for recording by selecting therecord action504a.
Of course,[0151]PIOs502 may be sent to theSTB102 for a wide variety of purposes beyond simply recording a program. For example,PIOs502 may be transmitted to allow a user to purchase an advertised product, obtain supplemental information about a television broadcast, etc.
In other embodiments, as shown in FIG. 20, the[0152]broadcast center110 may broadcastspecific PIOs502 toSTBs102c-dbased on demographic data2002. The demographic data2002 may indicate particular interests of users ofSTBs102c-dreceiving television broadcasts from thebroadcast center110. For example, demographic data2002 for “user 1” may indicate that he or she generally views sports programs. Consequently, thebroadcast center110 transmits thePIO502arelated to a sports program to “user 1.” Similarly,PIO502emay be transmitted to “user 2” based on demographic data2002 indicating that “user 2” generally views “Reality TV” programs.
As illustrated in FIG. 21, the[0153]broadcast center110 may transmitPIOs502 to anSTB102bbased onuser preferences2102. Thepreferences2102 may be specified using conventional techniques (e.g., web, e-mail), and may be stored in astorage device310 accessible to thebroadcast center110.
In one embodiment, the[0154]user preferences2102 indicate the kinds ofPIOs502 that the user would like to receive. For example, the user may expresspreferences2102 forPIOs502 having aclassification attribute506iof either “‘Sports’ OR ‘Reality TV’.” Accordingly, as depicted in FIG. 21, thebroadcast center110 transmitsPIO502aandPIO502eto theSTB102bwhich satisfy thepreferences2102. Thebroadcast center110 may transmit thePIOs502 satisfying thepreferences2102 periodically asnew PIOs502 are received by thebroadcast center110.
In another embodiment, a user of the destination entertainment device,[0155]e.g. STB102b, may automatically or manually screenPIOs502 received by the device. For example, the user may not wish to receivePIOs502 related to adult programs. Accordingly, the user may define a filter to automatically rejectsuch PIOs502. Alternatively, or in addition, the user may manually accept or reject eachPIO502.
In alternative embodiments, a[0156]PIO502 may be communicated through the use of portable computer-readable media, such as CD-ROMs, diskettes, memory cards, memory sticks, and the like. For example, aPIO502 may be copied or moved onto a computer-readable medium by a source device. Thereafter, the computer-readable medium is transported to a destination device, where it is loaded or read intomemory306 and/or astorage device310 within the destination device.
As shown in FIG. 22, a destination device may include a graphical user interface (GUI)[0157]2200 for organizingPIOs502. TheGUI2200 may display a plurality of folders2202a-e, which correspond to logical folders (e.g., directories) or other similar mechanisms within thestorage device310. The displayed folders2202a-emay be organized into afolder hierarchy2204, which mirrors a corresponding hierarchy of logical folders within thestorage device310.
Each of the displayed folders[0158]2202a-emay be given descriptive names, such as “Sports”, “Drama”, “Action”, etc. Of course, each displayed folder2202a-emay include one or more sub-folders (not shown).
In certain embodiments, each user may have a[0159]separate folder hierarchy2204. For example, aroot node2206 corresponding to a particular user, e.g., “Susan”, may form the root of aparticular hierarchy2204. In other embodiments, a user'sfolder hierarchy2204 may form a branch of alarger folder hierarchy2204 for the device.
In one implementation,[0160]visual indicators508 corresponding to newly receivedPIOs502 are displayed in a “Received PIOs”panel2208. A user may select a particularvisual indicator508aand move thevisual indicator508ato one of the displayedfolders2202a. This may be accomplished, for example, using a drag-and-drop operation or other similar technique. In one configuration, the correspondingPIO502 is moved to the correct logical folder. Later, as shown in FIG. 23, user may select thefolder2202ato display the visual indicator(s)508 associated with thefolder2202a.
In certain embodiments, received[0161]PIOs502 may be automatically associated with a folder2202 based on one or more attributes506. For example, folders2202a-emay be defined based on theclassification attribute506i. Therefore, aPIO502ahaving aclassification attribute506iof “sports” may be automatically stored withinfolder2202a.
Moreover, in certain implementations, when a[0162]PIO502 is received, one ormore actions504 of thePIO502 may be automatically executed by the destination system. For example, arecord action504aor adisplay action504bof aPIO502 may be configured to automatically execute when thePIO502 is received by aSTB102b.Such actions504a-bmay be pre-selected by a producer or other user of a source system.
Based on the foregoing, the present invention offers a number of advantages not available in conventional approaches. The present invention allows users to quickly and efficiently access television programming within an entertainment system without the need for a conventional, grid-based[0163]EPG402.PIOs502 may be organized according to user-specified criteria and transmitted between various types of entertainment systems and devices.
While specific embodiments and applications of the present invention have been illustrated and described, it is to be understood that the invention is not limited to the precise configuration and components disclosed herein. Various modifications, changes, and variations apparent to those skilled in the art may be made in the arrangement, operation, and details of the methods and systems of the present invention disclosed herein without departing from the spirit and scope of the invention.[0164]