Method and system for use in displaying multimedia content and status

The present embodiments provide methods, apparatuses, and systems for use in controlling the display of information relative to the playback of programming content and displaying programming guide data. Some embodiments provide a method for use in controlling the display of an electronic programming guide. The method receives programming guide data, determines whether the guide data is to be filtered, filters the guide data to replace at least a first title with a generic title, determines whether limits are to be applied to the guide data, applies the limits to the programming guide data by replacing at least a second title with the generic title, and displays a programming guide according to programming guide data as filtered and as limited. Some embodiments further display progress bars for one or more active applications. Trick commands can be implemented by applications by selecting one or more of the displayed progress bars.

FIELD OF THE INVENTION

The present invention relates generally to multimedia content, and more particularly to displaying information about the multimedia content.

BACKGROUND

The amount of multimedia content, such as television programming, movies and other such multimedia content, delivered directly to viewers at home has increased dramatically. Additionally, the types of content and the types of programming available to viewers have similarly increased.

Viewers are watching more programming and thus being exposed to a greater spectrum of content. To aid viewers in identifying those programs that a viewer might be interested in seeing, many program providers and/or broadcasters additionally supply programming guide data that allow some televisions and/or cooperating systems to display a guide that lists available channels and the programming that can be seen on each channel.

Viewers of substantially all ages utilize these guides to help in identifying and/or locating programming of interest. The programming guide data includes, in some instances, a significant amount of data to the viewer. For example, some programming guides provide titles of programming content as well as description and/or summary data.

SUMMARY OF THE EMBODIMENT

The present embodiments advantageously address the needs above as well as other needs through the provision of the methods, apparatuses, and systems for use in controlling the display of information relative to the playback of programming content and displaying programming guide data. Some embodiments provide a method for use in controlling the display of an electronic programming guide. The method receives programming guide data, determines whether the programming guide data is to be filtered, filters the programming guide data when it is determined that the programming guide data is to be filtered comprising replacing at least a first title with a generic title, determines whether limits are to be applied to the programming guide data, applies the limits to the programming guide data when it is determined that the limits are to be applied to the programming guide data comprising replacing at least a second title with the generic title, and displays a programming guide according to programming guide data as filtered and as limited.

In some alternative embodiments, methods are provided for use in controlling the display of information relative to the playback of programming content. These methods receive programming content, initiate a main application to playback a main program from at least a portion of the programming content, display a main progress bar associated with the main application that is active, determine whether first additional applications are active in addition to the main application, display a first additional progress bar for each of the first additional applications that are active, determine whether at least two of the active applications are capable of implementing a first trick command, wherein the active applications comprise the main application and the first additional application, mark at least one progress bar associated with the at least two active application capable of receiving the first trick command so as to provide at least one first-marked progress bar, and execute the first trick command through the active application associated with the at least one first-marked progress bar.

Some further embodiments provide and apparatus for use in controlling the display programming information. The apparatus includes an input port for receiving programming content and programming guide data, means for natural language filtering that filters the programming guide data, means for generating programming guide using the programming guide data as filtered by the means for natural language filtering, means for playing back programming content, means for recording programming content, means for monitoring the progress of the means for playing back programming content and means for recording programming content, and means for generating a plurality of progress bars according to the means for monitoring the progress.

A better understanding of the features and advantages of the present invention will be obtained by reference to the following detailed description of the invention and accompanying drawings which set forth an illustrative embodiment in which the principles of the invention are utilized.

DETAILED DESCRIPTION

FIG. 1depicts a simplified block diagram of a multimedia system120according to some embodiments. The system includes a customer premise controller and/or processor122. In many implementations, the customer premise controller is a set-to-box (STB) or other device positioned locally at a customer's premises and/or shared by several customers. The STB receives multimedia data, such as broadcast signals, through antennas and/or satellites130, directly from one or more signal providers132(e.g., cable providers), from providers134distributing content over a network136(such as the Internet or other such distributed network), and other similar sources. The STB122processes the multimedia content (e.g., broadcast data) and displays the data on a display or television140or a computer142, and/or directs the data to a recording device144(e.g., personal video recorder (PVR), digital video recorder (DVR), DVD writer, video cassette recorder, a digital memory recorder, and/or other such recording device) or memory146. The STB can further cooperate with one or more wireless control devices150such as a remote control that dictates some control over the STB, typically utilized by a user.

The program content received at the STB122often is accompanied by information about the program content, often referred to as programming information and/or programming guide data. The STB utilizes this programming guide data to generate and/or allow users to access a guide or electronic programming guide (EPG). In some embodiments, the guide includes a listing of possible programs defined according to channels from which the individual programs can be tuned. The guide can further include additional information about one or more of the programs a user can potentially access, such as a brief description of the program, a rating of the program (G, PG, PG-13, R, etc.), content codes that define the type of content of the program (e.g., close-captioned, high-definition, sub-titled, violence, graphic violence, nudity, strong sexual contact, profanity, and other such codes), and other similar information. The STB122utilizes the information to generate the programming guide allowing users to view the guide and identify those programs the users might be interesting in viewing.

FIG. 2depicts a simplified block diagram of a STB122according to some present embodiments. The STB includes a receiver220for receiving one or more programs from one or more sources (e.g., satellite130, cable provider132, etc.). The receiver includes at least one tuner222for tuning in selected channels, and in some embodiments includes more than one turner222-223to allow a user to tune in multiple channels. A processor226is further included to control the STB and to process data received from the content providers, data received from users (e.g., through remote controls150), implement functions and control the content supplied to the TV140, supplied to a computer142for storage and/or display, recorded through a recording device144and/or memory146and/or other devices.

In some embodiments, the STB122further includes one or more internal recorders230-231that receive programming data from the tuners and records the content. The recorders in some implementations direct the content to internal memory240, and/or external memory or recording devices144,146. Similarly, the STB in some embodiments includes one or more playback devices234-235for retrieving program content from internal memory240or other memory and plays back the content on the TV. In some embodiments, the system and/or STB include one or more personal video recorder (PVR) and/or digital video recorder (DVR) applications236-237that incorporate the one or more recorders230-231and/or playback devices234-235to allow the recording and/or playback of received programming content. The recorders and/or playback devices, however, can be independent devices and/or separate from PVRs/DVRs. The STB typically further includes a wireless detector/receiver250that receives commands from a remote control unit operated by a user. Some embodiments further include manual controls252allowing a user to manually control the STB directly at the STB.

The memory240is utilized by the processor226to store applications260, executables261, program data262associated with one or more programs on channels accessible by the tuners222-223, programming guide data263for a plurality of channels, program content264, channel lists265, favorites lists266, and other similar data. The memory can include any type of memory and/or combinations of memory, such as non-volatile memory (e.g., read only memory (ROM)), random access memory (RAM), optical memory (e.g., digital video data (DVD), compact disc (CD)), and substantially any other memory and/or combinations of memory.

FIG. 3depicts a simplified block diagram of the processor226ofFIG. 2according to some embodiments. The processor includes a programming guide processor320that utilizes the programming guide data to generate a programming guide that can be viewed by users. The programming guide processor320includes a data compiler and sorter322, and guide generator324. In some embodiments, the programming guide processor320further includes one or more of: a natural language filter326, a restricted words list filter330, a limited channels filter332, a locks and limits filter334, and/or other processing functions.

The data compiler322retrieves the programming guide data and compiles, sort and/or categorizes the data so that the data can be displayed by the guide generator324according to a user's requested information. For example, the data compiler sorts the data to only display those channels defined in a users “Favorites List” as stored in memory240(or in memory internal to the processor226).

The processor226further includes a control input processor340that receives and implements controls from the user (e.g., from a remote control150, manual control or other such control). Similarly, the processor includes a user interface control342that implements control interfaces allowing users to configure and control the STB, the content available through the STB, and other features as described below.

In some embodiments, the processor includes a recording processor344and a playback processor346that cooperate with the one or more recorders230-231and the playback devices234-235, respectively, to control the recording and/or playback. One or more progress bar generators350are further included in some implementations for generating status bars according to the status of one or more programs being recorded, played back, and/or otherwise accessed by a user as fully described below. Similarly, the processor in some embodiments includes a trick command processor352that implements commands directed to playback and recording of content as fully described below.

FIG. 4depicts a simplified graphical representation of an example of a user control interface420on a display410(e.g., a TV140, computer142or the like). The interface allows users to control the display, the electronic programming guide, the data included in the programming guide, and the access to content associated with entries on the programming guide. The control interface420includes several options to access different functions of the programming guide. In some embodiments, the control interface includes a programming guide format option422to allow a user to define programming guide format, including such parameters as the appearance of the guide (color, size, number of entries, font size, etc.), the type of data to be included (long summary of programs, short summary of programs, ratings and other parameters (closed-caption, high-definition, violence, nudity, etc.), and other such appearance information. A signal input option426is included in some implementations to allow users to define which input ports are to receive programming content (e.g., satellite130, cable132, antenna, peripheral devices (CD players, VCR players, etc). and other such inputs). A favorites option424is included to allow users to define a favorites list so that the programming guide only displays those channels defined within a favorites list. Some embodiments further include other additional options including setting a time of the STB, and substantially any other option.

The control interface420, in some embodiments, further includes a log-in prompt432. The log-in prompt allows individual users to log-in to the system allowing the STB define the type and amount of information provided in the programming guide according to the logged-in user. For example, the present embodiments allow a system administrator (e.g., a parent) to prevent access and/or set up limited access to certain programming for some young viewers. Additionally, the control interface includes a system administrator option434that directs a user to a system administrator control interface510.

FIG. 5depicts a simplified graphical representation of an example of a system administrator control interface510on a display410. The system administrator interface510includes a log-in prompt512to limit the access to the control functions provided through the system administrator interface. Several control parameters and options are provided through the system administrator interface that allows the system administrator to control access to programming content and/or data displayed on the programming guide for users. In some preferred embodiments, the system administrator interface includes a locks and limits option520, a filter option522, a user profile option524and other similar options. The locks and limits option520, and the filters option allow the system administrator to set system, global and/or user specific parameters that define programming access and/or access to the programming data included in the programming guide as fully described below.

The user profile option524, in some embodiments, allows the system administrator to define one or more users, where the system administrator can define a scope of access for each specified user. As indicated above, users can log-in to the system. Upon log-in, the system only displays programming data and only allows that user to access programming content that is defined according to a user profile established by the system administrator. In some embodiments, upon selection of the user profile option524, addition options are provided allowing the system administrator to enter a new user526which routes the system administrator to a user profile interface1120to define user access, edit user profile530, copy user profile532which allows the system administrator to copy a profile then edit the profile reducing the amount of data the system administrator has to enter, and other such user profile controls.

FIG. 6depicts a simplified graphical representation of an example of a locks and limits control interface610shown on a display410. Again, the locks and limits control interface610is accessed as a global locks and limit, and/or is accessed for specified users in defining a specific user's profiles. The locks and limits allow the system administrator to define and/or limit the type of programming content that users can access through the system120, and further allows the system administrator to define and/or limit the type of information displayed through the programming guide. In some embodiments, the system administrator can further access the locks and limits through a preference and/or favorites option (e.g., option426) or other options. One of these preferences includes the locks and limits and/or allowed channel listing.

The locks and limits interface610includes any number of parameters612that are typically associated with programs and/or programming data received from the broadcasters and/or distributors. In some embodiments, the locks and limits interface610includes a user selection option524, similar to the user selection option of the system administrator interface, that allows the system administrator to select one or more users for which the locks and limits that the system administrator specifies are to apply.

The parameters612of the locks and limits interface typically include a predefined list of known parameters. In some preferred embodiments, the processor226further searches programming data for additional parameters to be included. As such, the locks and limits list, according to some embodiments, is an expanding list that incorporates additional parameters as the processor detects the inclusion of additional parameters in the programming data.

The parameters612can include substantially any type of programming information that is supplied with the programming data and/or programming content. For example, the parameters can include a ratings option620, a violence option622, a brief nudity option624, a nudity option626, strong sexual content option630, profanity option632and many other parameters. Some options allow the system administrator to define the level of the parameter that the user or users can access. For example, the ratings option620includes a listing640of the potential ratings (G, PG, PG-13, R, Unrated, etc.), allowing the system administrator to select all those ratings for which a user or users can have access, and/or simply specifies the highest level (e.g., PG-13) for which a user can have access. The listing640can be a continuously displayed list, a pull-down list, or other such lists. Other parameters include additional lists and/or options. For example, the violence parameter622in some implementations includes levels of violence. Some parameters are simply on/off parameters with a toggle allowing the system administrator to define whether the user or users should have access to such content. For example, the nudity parameter626, in some embodiments, includes a on/off or Yes/No toggle644that allows the system administrator to define whether a user should have access to programming content and/or whether programming data should be included in a programming guide when a specific program includes nudity.

In some embodiments, the locks and limits interface610further includes channel block option650. The channel block option allows the system administrator to define specific channels that are to be blocked for different users in defining each user's profile. In blocking the channel, the defined user cannot access the programming content associated with that channel. Similarly, by blocking a channel, the present embodiment eliminates this channel entry from the programming guide.

When the block channel option650is selected, in some implementations, a listing of channels652is provided (and/or a new block channel interface is provided) that lists the possible channels available through the system120. Typically, only a portion of the available channels are displayed at a time and allows the user to scroll and/or traverse through the list to access the additional channels. The system administrator traverses through the list and select those channels654that that are to be blocked (alternatively selects those channels that are allowed) for the defined user(s) (e.g., first user). When the system administrator is finished, the unblocked channels define the active channel list for that user. The list shall be stored in memory240of the set-top-box122.

For example, with a channel restricted from a first user, that channel could not be tuned in because it effectively does not exist in the channel line-up when the first user is logged-in. Further, because the channel effectively does not exist for the first user, the program guide does not display the channel information for that blocked channel, and thus the first user (e.g., a younger viewer) would not even have access to read the program information from the programming guide for a blocked channel. As described above, the system120can define multiple users, and each user (or group of users) of the system can be configured with separate channel lists. In some preferred embodiments, the system120allows the system administrator to also setup a default and/or guest user channel list. The guest user is the user that is active when all defined users are logged-out and/or initially invoked when the system is initially powered up. The default and/or guest user is fully described below. In some embodiments, individual users can similarly limit the channels for which they have access and/or limit the channels displayed on the program guide. However, individual users typically cannot change the channel lists as set by the system administrator.

When a user with a defined profile logs-in the channel list is read from the memory for that user. The user then only has access to those channels in the allowed list. The set-top-box operates as if the allowed channels of the list were the only channels available through the system and thus displays only channel information in the program guide that reflects those allowed channels. The locks and limits parameters override substantially any setting defined by the user. For example, if a first user defines a favorites channel lists, and subsequently the system administrator defines and/or edits the allowed channel list to exclude one or more of those channels defined in the favorites list, the favorites list is edited by the system to delete references to those channels, and/or alternatively ignores those channels in the favorites list that have been restricted.

FIG. 7depicts a simplified diagram of an electronic programming guide710generated according to some embodiments. The programming guide710ofFIG. 7shows the programming guide without blocked channels and/or locks. The programming guide displays a portion of available channels720at one time (e.g., displays eight channels, ten channels, 15 channels, or substantially any number of channels). The programming data722associate with each channel is defined according to selected time periods724. When viewing the programming guide, the user can select to switch the STB122to a desired channel by highlighting and/or shifting a highlighting indicator726over the channel and selecting an enter key or other similar key on a remote or manual controls and/or by directly entering the channel number. In some preferred embodiments, a user is further capable of obtaining additional information about a specific program listed in the program guide710by shifting the highlighting indicator726over a program title and again selecting a key (e.g., enter key) on the remote control or manual control.

FIG. 8depicts a simplified diagram of the programming guide710following the selection of a specific program title. The programming guide includes a description or summary820of the selected program (e.g., Title 18 associated with channel108). The summary can include substantially any information associate with the selected program that is supplied by the broadcaster/distributor.

The utilization of the locks and limits, as described above, allows the system administrator to limit the programming content accessed by a user (e.g., first user), and further limits the programming data displayed through the programming guide710. FIG.9depicts a simplified diagram of an electronic programming guide710generated according to a first user profile and implementing locks and limits set by the system administrator for the first user. The programming guide710identifies the currently logged-in user920(e.g., first user). In the example shown inFIG. 9, the system administrator limited the first user's profile through the selection of locks and limits parameters to only those programs having ratings of G and PG, while preventing access to those programs having ratings of PG-13 and higher (e.g., R and unrated). As such, the present embodiment prevents the first user from accessing programming content having ratings greater than PG.

Similarly, the present embodiment generates the programming guide710such that those programs having ratings greater than PG are restricted922. The locks and limits restrict the programming guide from being displayed with entries that fail to satisfy the conditions and/or parameters set by the system administrator. Typically, because the restricted title is defined at a time and with a duration, the positioning of the entry in the electronic program guide is preserved by replacing the entry with a default and/or generic entry (e.g., replacing the listing with a “Restricted” graphics box or other similar indicator).

The displayed programming guide is further dictated by the allowed channel selection (and/or blocked channel selections) specified by the system administrator. As such, the present embodiment further limits the display of the programming guide to include only those channels720the first user is allowed to access. Therefore, the programming guide does not include the blocked channels (e.g., not displaying channels104,110,190) and only showing those allowed channels (e.g., showing instead channels202,305, and500). Further, the present embodiments prevent the first user from accessing programming summary data820for those channels block, as well as for those programs restricted according to locks and limits. Therefore, young viewers, for example, are restricted from accessing inappropriate data associated with inappropriate programming content.

In some embodiments, the present embodiments generate the programming guide710to display the predetermined number of channels (e.g., eight channels). Each program to be display in the program guide window710is scanned prior to display to determine whether the program content is restricted based on the locks & limit settings. For those programs that are restricted, the program title is removed from the program guide and a generic title is inserted (e.g. Restricted, Restricted Program, or the like). Since the program title is removed, access to the summary and/or description of that program is also restricted. In some implementations, a generic description (e.g., Restricted) is alternatively provided if a user attempts to view a summary of the restricted program content. In some embodiments, all entries of a programming guide are evaluated prior to displaying any of the programming guide, and those programs that are to be restricted as well as any channels that are defined as blocked for a defined user are flagged and/or eliminated. As such, when the programming guide for the user is displayed, the guide does not show the blocked channels and incorporates the generic title (e.g., Restricted) into the displayed guide. In some alternative embodiments, as the program guide is traversed by the user (for example user scrolls up or down to display additional channels, or scrolls right or left to display other times (and thus other programs)), new or subsequent program titles or groups of titles to be displayed are evaluated against the locks & limits settings and/or channel blocks. Thus, the program titles are filtered as the program guide is displayed while the user shifts through the guide.

FIG. 10depicts a simplified flow diagram of a process1010for applying locks and limits as set by the system administrator for a first user according to some embodiments. In step1020a user is identified (e.g., first user, default/guest, etc.). In step1022, the process determines whether a user profile is established for the identified user. If no profile is established for a registered user, the system has no locks or limits, no blocked channels, and no filter (as fully described below), and the process1010terminates.

When a profile exists, step1024is entered where the user profile for the identified user is accessed. In step1026the programming guide data is accessed. The programming guide data is typically received from the broadcaster/distributed and stored in memory263. For example, the programming guide data is stored as a database of data containing the relevant information, such as channel numbers, time periods, titles associated with channel numbers and time periods, program description/summary data associated with the titles (when available), parameters612that further define the programming content (e.g., high-definition, ratings, violence level, nudity, etc.), and other such data.

In step1030, the process determines from the user profile whether there are blocked channels defined. When the profile does not have blocked channels the process continues to step1034. Alternatively, when the profile includes defined blocked channels, step1032is entered where the programming guide data is searched for the blocked channels and the blocked channels are flagged with a block flag for the specific user. For example, the database maintains flagging information for each registered user (including a guest and/or default if defined). In some alternative embodiments, the channel and associated data (e.g., titles, descriptions, etc.) to be blocked are simply removed from the programming guide data and a revised programming guide data is saved for the identified user.

In step1034, the process determines if the user profile includes locks and limits. If there are no locks and limits defined, the process1010terminates. When locks and limits are defined, step1036is entered where a first or next lock/limit (e.g., limit programs that are PG-13 or greater) is identified. In step1040, the programming guide data is evaluated based on the lock and/or limit. In step1042, the titles that are to be limited are flagged with a limit flag. In step1044, it is determined whether all of the locks and limits have been evaluated. If locks and limits remain, the process1010returns to step1036, otherwise the process terminates.

In displaying the programming data the system identifies those channels that have been flagged with block flags for the current user and prevents those channels from being displayed. Similarly, the system identifies those titles and/or summaries that have been lock/limit flagged (or filter flagged as described below) and replaces them with the generic entry (e.g. “Restricted”), and displays them with the generic entry.

FIG. 11depicts a user profile interface1110displayed on a display410. The present embodiments allow multiple users to be defined, with each user having a defined profile. The system administrator defines at least a portion of the profile of a user by accessing the locks and limits interface610, a filtering interface1220as described fully below, and/or through the user profile interface1110. The user profile interface1110is accessed, at least in some embodiments, through the selection of the user option524of the system administrator interface410. The user profile interface includes a list1122of previously entered users (e.g., user1, user2, user N) and can include substantially any number of users, limited only by the resources of the system120. A highlight or selector box1124allows a user (e.g., system administrator) to select a user to gain access to a user's profile.

In some embodiments, the user list1122further includes a user entry for a default or guest user1126. As described above, the guest or default user is activated once a user logs-out and/or upon an initial start-up and/or power-on of the STB122. The system administrator defines the profile of the default user in substantially the same manner as defining a specific user. In some embodiments, the default user can be equated to one of the specifically defined user's profiles (e.g., user1profile). As such, the system administrator does not have to specifically define a default profile, and the default user profile tracks the changes made by the system administrator to the specific user's profile. Additionally and/or alternatively, an independent profile is generated for the default user1126, and is automatically equated to one of the specifically defined users having the most limited access to potentially available program content. In some alternative embodiments, the system administrator can copy a specifically defined user's profile (e.g., the users having the most limited access) as the default user profile. The default user profile can be implemented and/or altered by the system administrator through similar processes used to implement and/or alter user's profiles.

In some embodiments, the user profile interface1110further includes options to add one or more users1130, remove one or more users1132, edit locks and limits1134, edit filters1136, and other options. Further, the user profile interface can include a profile copy option1140that allows the system administrator to select a user and copy the profile for an additional user. This can reduce the amount of data entering the system administrator has to perform in creating a profile.

FIG. 12depicts a simplified graphical representation of an example of a filter control interface1220on a display410. The system administrator interface also allows the system administrator to define and/or employ one or more filters that are additionally and/or alternatively applied to the programming content and/or programming guide data displayed and accessed through the programming guide710. By selecting the filter option522, the system administrator is directed to a filter control interface1220. The filter control interface1220provides the system administrator with access to one or more filters depending of the implementation of the system120.

In some embodiments, the filter control interface includes a word list filter1222. The word list filter includes an enable or on/off function1224to enable or disable the word filtering. A list of words and/or phrases1226is utilized by the word list filter to filter the programming guide data and/or access to programming content. The words and/or phrases of the word list1226are included into the list by the system administrator and/or system, and can include substantially any word or phrase that the system administrator want to be filtered (e.g., gun, drugs, and other such words that the system administrator does not want a viewer to access). The list of words or phases is stored in memory.

The program guide processor320accesses the list and searches the programming guide data for each of the words and/or phrases listed in the word list1226. When an entry in the programming guide data is identified as including one or more of the words/phrases of the list, the entry is flagged. Upon display of the programming data, any entry flagged as including one or more words from the word list is removed from the programming guide and/or identified as restricted. Typically, the programming guide data that is searched includes the title, summary/description and other data associated with a program to be potentially displayed on the programming guide. Some embodiments further prevent users from accessing program content (e.g., selecting the channel) that is associated with the entry in the programming guide that is restricted and/or removed from the guide. Alternatively, in some implementations just the word(s) are removed from the entry in the programming guide. The system administrator can define the level of filtering according to options in the filter control interface1220, such as prevent access to content option1230, remove word(s) from programming guide data, and/or other similar options.

In some embodiments, the word list filter1222also allows the system administrator (and/or other users in some implementations) to add words or phrases to the word list1226through the selection of an add word option1240. Similarly, the system administrator can remove words and/or phrases from the word list by selecting the remove word option1242. A list of letters and/or a key pad1244is included (and/or displayed after selection of the add option1240) to allow the user to enter words or phrases. The displayed key board can be operated through the remote control150and/or manual controls. Additionally and/or alternatively, an external keyboard is coupled with the system120is some embodiments to allow the user to directly type in the words and/or phrases.

FIG. 13shows a simplified diagram of an electronic programming guide1320generated according to some embodiments, prior to being filtered by the word list filter (and prior to applying other locks and limits as described above). Similarly,FIG. 14shows the electronic programming guide1320generated according to some embodiments, after the word filter option is applied to the programming guide data, where the word list includes the words “drug” and “gun”. It is noted that the entries1324,1326entitled “Guns In The City” and “Drugs On The Street” have been restricted1424,1426according to the word filtering. Some implementations further prevent a user from accessing and/or viewing the program associated with the restricted entries of the programming guide.

The word list filtering is typically independent of other locks and limits settings, and utilized in cooperation with the locks and limits. Before the program guide1320is displayed, the restricted word list is accessed in memory. The words and/or phrases of the word list are compared against words in the titles and descriptions/summaries. When a title and/or summary is identified as containing a restricted word, that entry in the program guide is restricted and the title and description are replace in the programming guide database with a generic title and description.

In some embodiments, the broadcaster and/or distributor of program content employ a delayed description fetch, where a description of a program is downloaded at the time the program title is highlighted as the user traverses through the program guide. The information fetched is compared against the restricted word list (and/or locks and limits) prior to display. If a word or phrase in the description matches words in the restricted word list, the description information is restricted and/or replaced with a generic description. In this instance, the title is displayed in the program guide, however, the description information is restricted, and in some implementations, the user is prevented from accessing to the program content.

Referring back toFIG. 12, in some embodiments, the filter control interface1220includes a natural language filter1250. The natural language filtering allows the system administrator to enable programming guide title and description filtering using a natural language processor. Natural language processing is an algorithm that determines the definition of one or more words based on the context and/or use of corresponding words. By combining a series of words, the meaning based on the order of the words is interpreted by the natural language processor. In some embodiments, a commercially available natural language processor is employed to determine uses and/or meanings of words in the title and/or summary of programming data. In the present embodiments, the natural language processor is configured to identify one or more words that are to be filtered (e.g., words or phrases that are offensive or inappropriate as defined by a system administrator) for a specific viewer/user, groups of users and/or globally for all users.

The natural language filter1250ofFIG. 12includes an on/off function1252for enabling and/or disabling the filter. Again, the filtering through the natural language filter can be employed as a global setting and/or implemented for specific users. The natural language filter1250further includes different categories1254allowing the system administrator to restrict access. The options selected by the system administrator are stored in memory.

The categories1254can include substantially any category. For example, some embodiments provide for a language selection1260allowing the system administrator to set the natural language processor to filter according to a predefined language (e.g., English, Spanish, French, and substantially any language). Some embodiments further allow multiple languages to be set. The language selection can include a pull-down menu that lists the possible languages from which the system administrator selects. The categories can further include substantially any category that a system administrator would want to filter, such as violence1262, sexual content1263, drugs1264, profanity1265, and substantially any other such categories. In some embodiments, the categories are simply enabled or disabled (e.g., through a toggle switch selected by the system administrator). Additionally and/or alternatively, some embodiments provide one or more categories with levels1267of offensiveness or obscenity that are selectable by system administrator (e.g., levels from zero to 10 (or some other value); or some other level indication), which can be specified directly by the system administrator by entering a number, selecting from a pull-down, positioning a slider on a slide bar, or other such selection procedures. The categories1254allow the system administrator to refine the natural language filtering and further define what the filter is to identify as a word or words that are to be restricted and/or blocked according to their usage (e.g., obscene, vulgar, profane, sexually explicit, and other such usage).

When the context of the title and/or description is interpreted to be offensive and/or is identified to include language that is to be filtered, the title and description pair are restricted from the programming guide. Again, because the title is represented in the program guide by a time and duration, its position in the electronic program guide is preserved, in some implementations, with a generic title (e.g., Restricted).

This setting for the natural language filtering allow the filtering to operate independent of other filtering, locks and/or limit settings. Typically, however, the natural language filtering in operated in cooperation with the other filtering, locks and/or limits. In some embodiments, the natural language filtering overrides the word list filter. For example, if a title is restricted because it includes a word defined in the word list, the natural language filter further analyzes that entry to determine the usage of the word. If the natural language filtering determines that the word is not used in an offensive or obscene manner as defined by the system administrator, the title is not filtered even though the title includes a word from the word list.

When a user initiates a display of the electronic program guide, the STB standard algorithm (e.g., as defined by the user and/or system administrator) for determine which channels to display and how much program information to display at one time is employed. Before displaying the program guide, the natural language processor options are read from memory and the programming guide data is filtered prior to display.

When the electronic program guide processor320generates a programming guide database for display, the natural language filtering scans the database for offensive and/or inappropriate material according to the defined categories1254and/or options. When the natural language filtering detects restricted context, that entry in the program guide is restricted and the title and description is replaced in the displayed programming guide with a generic title and/or description. In some preferred embodiments, the user is prevented from accessing the program content for those entries that are restricted.

For applications that have a delayed description fetch that, for example, download descriptions at the time the program-title is highlighted as the user traverses through the program guide, the fetched description information is initially processed by the natural language filtering before the description is displayed. If the natural language processing determines that the context of the downloaded description includes offensive language based on the set categories, the description is not displayed and a generic description is alternatively provided. In this case, the title is displayed, while the description information is not displayed.

In some implementations, the programming guide processor320generates a complete programming guide database of all available data once filtered according to the natural language filtering (and other filtering and/or locks and limits) and records the programming guide as a database in memory. Upon activation of the programming guide, the programming guide processor accesses memory to retrieve the appropriate entries to be displayed (e.g., eight entries). As the user scrolls through the data, the programming guide processor retrieves the subsequent entries requested by the user without having to further filter.

In some alternative embodiments, the programming guide is generated as the user repositions/scrolls through the guide (e.g., through different channels, and/or through different time periods) to display other channel information. A database of entries for the new data to be displayed is generated for each change of the programming guide. Before displaying the additionally information, the natural language filter is applied (when enabled). Thus, as the user moves through the programming guide, the programming guide is filtered based on the natural language filtering.

FIG. 15depicts a simplified flow diagram of a process1510for word list and/or natural language filtering as set by the system administrator for a first user. In step1520a user is identified (e.g., first user, default/guest, or other defined user). In step1522the process determines whether a user profile is established for the identified user and/or whether the profile includes filtering. If no profile is established for a registered user and/or no filtering is defined the process1510terminates. When a profile exists, step1524is entered where the user profile for the identified user is accessed. In step1526the programming guide data is accessed.

In step1530it is determined whether the filtering includes word filtering. When the filtering does not include word filtering, the process continues to step1540. Alliteratively, step1532is entered where a first word (or a subsequent word as described below) of the word list is identified. In step1534the titles and descriptions/summaries of programming guide data is searched for the restricted word, and titles are flagged with a filter flag or restriction flag when a restricted word is found in the title and/or summary. Typically, the word search is implemented to search for the specific words and derivatives of the word (e.g., when the restricted word is gun, the word guns is identified as restricted), however, in some embodiments, the filter interface allows the user to disable and/or enable derivates for words. In step1536the process determines whether all of the words of the word list have been searched. When all of the words have not been searched the process returns to step1532to identify the next word of the list.

In step1540it is determined whether natural language filtering is to be performed. If natural language filtering is not to be performed, the process1510terminates. Alternatively, step1542is entered where a first or subsequent category (e.g., a specified violence level) is identified. In step1544the programming guide data (titles, summary, and/or parameters) is searched for natural language according to the identified category (e.g., violence). In step1546it is determined whether identified natural language defining violence exceeds the level or threshold set by the system administrator. If the level is not exceeded the process continues to step1552.

If the level is exceeded, the title that has natural language that exceeds set threshold is flagged using a filter or restriction flag in step1550. In step1552it is determined whether all natural language categories have been search, and returns to step1542when additional categories are to be searched. Alternatively, the process1510terminates.

FIG. 16depicts a simplified flow diagram of a process1610for displaying a programming guide according to some embodiments. In step1620the process determines which portion of programming guide data to display. In some embodiments, determining which portion of the programming guide to display includes determining a starting channel (e.g., the channel currently being viewed by the user, a channel with the lowest number, a specific channel selected by the user, or some other starting channel), the number of channels to be displayed (e.g., ten channels and titles are displayed), and a period of time to be displayed (e.g., display titles in that can be accessed between 8:00 PM and 11:00 PM). In step1622it is determined whether a first or next channel of the portion of the programming guide to be displayed is block flagged. If the channel is not block flagged, the process continues to step1626, otherwise, step1624is entered where the channel is ignored, the next channel in the programming guide is identified, and the process returns to step1622to evaluate the next channel.

In step1626the process determines whether one or more titles or summaries for the channel being evaluated and during the period of time to be displayed are flagged (e.g., whether a title is flagged with a lock/limit flag and/or a filter flag). If the titles are not flagged, the process continues to step1630. If a title is flagged, the title (and associated summary) is replaced in step1628with a generic title (and summary). In step1630the channel and associated non-restricted titles and generic titles are displayed. In step1632the process determines if the predefined number of channels (e.g., 10 channels) are displayed. When the predefined number of channels are not displayed, the process returns to step1622to evaluate a next channel of the programming guide data, otherwise the process terminates.

In some alternative embodiments, the programming guide data is revised to remove entries that are blocked and/or restricted and saved as a revised programming guide data. Upon display of the programming guide, a process determines whether revised programming guide data was stored. If revised programming guide data was stored, the display of the programming utilizes the revised data and does not have to analyze the data as the programming guide is displayed. In some implementations, when a user logs in, the programming guide data is evaluated based on the blocked channels, locks and limits, filtering and other restrictions, and the revised programming guide data is stored for use in generating the displayed programming guide.

FIG. 17depicts a simplified diagram of an electronic programming guide1720generated according to some embodiments prior to applying one or more filters. The programming guide includes a fixed number of channels720and data722for each channel for the defined periods of time724. The programming guide1720is shown with a first title1722selected such that a summary1724is also displayed.

FIG. 18depicts a simplified diagram of the electronic programming guide1820similar to the programming guide1720ofFIG. 17generated according to some embodiments after word and/or natural language filtering is applied. The programming guide1820filtered based on a natural language filter with categories defined by the system administrator for violence and sexual content at low levels to significantly limit the first user's access to content containing references and/or showing violence and sexual content. Referring toFIGS. 17 and 18, the filtered programming guide1820is shown with second and third titles1730and1732of programming guide1720restricted1822inFIG. 18. This is because the natural language filter detected the language demonstrating violence (“Gang Fights on the Street”) and sexual content (“Sex In The City”). The natural language filtering did not filter out the first title1722“Nature's Fight For Life” even though the word “Fight” is included because the use is not obscene and/or inappropriate. Similarly, the first summary1724is also not restricted even though the summary includes the word “sex” (“because male sex is often brightly colored”), because the natural language processor determined that the use of the word was not an obscene or inappropriate use.

In some embodiments, the programming guide includes one or more status or progress bars that define the state of programs currently being accessed by the STB for viewing, recording and/or playback.FIG. 19depicts a simplified diagram of an electronic programming guide1920generated according to some embodiments. The programming guide1920includes listings of channels720and the titles of programs722that can be accessed on the prescribed channels at the specified time724. A progress bar1922is further shown that identifies the channel1930that is currently being viewed, the time elapsed1932in the program and the time remaining1934for the program. Other data can similarly be included and/or depicted with the progress bar.

In some embodiments, the program being viewed is a recorded program and is being played back by the user. As such, the progress bar1922defines the status of the playback. One or more progress bars are similarly provided in some embodiments, during some implementations for the recording of programs. Still further, some embodiments display one or more progress bars1922independent of the programming guide1920.

FIG. 20depicts a simplified diagram of a display2020currently displaying a main program2022in a main window of the display while also displaying a secondary program2024, for example a picture-in-picture (PIP). A progress bar2030is also displayed showing the status of the main program2022. The progress bar shows the amount of the main program already viewed2032, and the amount of the main program remaining to be viewed2034. In some implementations, one or more additional progress bars2040is/are further displayed showing a lapsed time2042and a remaining time2044for one or more secondary programs2024.

Some embodiments of the system include one or more personal video recorder (PVR) and/or digital video recorder (DVR) applications236,237that allow the recording and playback of received programming content. Generally, PVRs are consumer electronics devices and/or are incorporated into consumer electronic devices (e.g., STB) that record broadcast programming content to a memory (e.g., hard disk). The recorded content allows users to play back the content at a time convenient for the user, and also allows for trick modes and/or commands such as pausing live TV, instant replay of interesting scenes, skipping advertising, and other trick commands. In some implementations, the system120includes PVR/DVR devices144coupled with and external to the STB. Alternatively and/or additionally in some implementations, the STB includes one or more PVR/DVR devices230-231,234-235. The PVR/DVR applications utilize and/or include one or more tuners222-223to simultaneously record multiple programs.

In some embodiments, the STB includes PVR/DVR applications cooperated with multiple timers to allow the recording of multiple programs simultaneously. Further, the PVR/DVR applications are capable of simultaneously playing back currently received programs (live programs) and/or one or more previously recorded programs, while further recording one or more additional programs. The present embodiments provide for the display of one or more progress bars, and/or a multi-level progress bar to be displayed on the main window of the display2020and/or in the program guide710showing the progress of currently viewed live programs, the progress of one or more playbacks of previously recorded programs, and/or the progress of one or more recordings of programs.

In some implementations, a user initiates the display of the progress bar/bars through the remote and/or manual controls. For example, the remote control can include a progress bar button and/or a button with more than one function with one of those functions being the initiation of displaying one or more progress bars. When multiple progress bars are displayed, they are displayed one above the other in some implementations. In other implementations the bars can be divided horizontally along the screen; displayed proximate the PIPs2024; and other such placements.

FIG. 21depicts a simplified diagram of a display2020currently displaying a main program2022while also displaying secondary, third and fourth programs2024,2130and2132, respectively, as picture-in-pictures. Also shown inFIG. 21are a plurality of progress bars2030,2040,2142and2144, indicating the playback status of each of the main, secondary, third and fourth programs, respectively. In some embodiments, the selection of a progress bar button initiates the display of the progress bar2030associated with the main program2022. A second selection of the progress bar button or a selection of an expand button (e.g., a specific expand button; the up arrow key when the first progress bar is displayed; or other such button selections) causes the display of one or more additional progress bars2040,2142,2144, when one or more additional playback (and/or record) applications are currently active at the time the expand button is selected. A further selection of the progress bar button and/or expand button, in some implementations, causes additional progress bars to be displayed relating to record functions, if additional record functions are in operation when the expand button is selected.

FIG. 22depicts a simplified diagram of a display2020currently displaying a main, secondary, third and fourth programs2022,2024,2130and2132, respectively. Also displayed are the main, secondary, third and fourth progress bars2030,2040,2142and2144, respectively, along with first and second record progress bars2246and2248showing the progress of two active record applications.

The display of the progress bars can be achieved in substantially any order and/or configuration. For example, just the record progress bars can be displayed, just the playback status bars can be displayed, just the main playback progress bar can be display, or other such configurations and/or combinations. In some implementations, each selection of the expand button causes a progress bar to be replace by a subsequent progress bar when multiple applications (multiple playback and/or record applications) are in progress. For example, with three playbacks and two records active, the selection of the progress bar five successive times results in just the fifth progress bar being displayed.

In some implementations, the titles of the programs being playback and/or the recorded (e.g., “TITLE 1”, “TITLE 2”, “TITLE 3”, etc.) are displayed within and/or adjacent to the progress bars to identify which progress bar is associate with which playback and/or record. To further aid in distinguishing between playback progress bars and record only progress bars, the record progress bars can be depicted in a first color, while playback only and/or playback/record progress bars are depicted in a second color. In some embodiments, the bars associated with playbacks are each depicted in a different color with a frame around the main program and/or the PIP windows with corresponding colors. Other similar distinctions can be employed to further distinguish between progress bars.

Many PVR/DVR devices incorporate the use of trick commands, such as pause, replay/rewind, fast-forward, and other such trick commands. In some present embodiments, trick commands are utilized to control one or more active playback and/or record applications. Typically, trick commands only apply to playback. In some implementations, however, the recording can be paused, rewound (rewind back over a commercial during other commercials before a program resumes), and other such functions, and thus trick commands are utilized to control record applications in some implementations.

Because the present embodiment allows multiple simultaneous playback and/or record applications, some embodiments allow users to specify one or more of the currently active applications for which selected trick commands are to apply. In some embodiments, when multiple progress bars are displayed, the present embodiment initially identifies and/or distinguishes one of the progress bars as being a controlling or focused application. For example, a progress bar is marked, highlighted2150(seeFIGS. 21 and 22) or other wise indicated (e.g., arrow pointing to a progress bar) as being the focus progress bar. When the system detects the selection of one or more trick commands, the system applies those trick commands to a focus application currently identified by the marked progress bar. For example, while the main program progress bar2030is highlighted2150, trick commands received are applied to the main program2022. The user can switch the focus to other playback (and/or record) applications by shifting the focus/highlighting2150to other progress bars, for example, by using up and/or down arrow keys to shift the focus between progress bars.

In some implementations, when multiple progress bars are initially displayed, the main program progress bar2030by default is highlighted as the focus application. The user simply shifts the highlighting to another progress bar to shift the focus to an alternate playback or record application. In some embodiments, the user can simultaneously select multiple progress bars (e.g., pressing a select button on the remote control to select a progress bar, using up arrow key to shift to a second progress bar and again pressing the select button to highlight a second progress bar, etc.). With multiple progress bars selected, trick commands received are applied to each of the applications selected.

Allowing the selection of one or more playback and/or record applications allows the user to control each of the applications. For example, with one or more PIP playback applications, a user can pause the playback while directing his/her attention to the main program during a critical period, and then resume the PIP playback following the critical period.

In some embodiments, the one or more progress bars are displayed for a predefined period of time. When this predefined period expires, the progress bars are automatically removed from the display. The time out period is reset, in some implementations, each time the user implements some command associated with one or more of the progress bars, for example, switching the focus between two progress bars causes a reset of the time period. Additionally and/or alternatively, the system in some embodiments allows the user to remove one or more progress bars from the display. For example, the user can select a condense or undisplay button on the remote control150. Alternatively, the user can continue to select the progress bar button which causes progress bars to be removed from the display once of the progress bars for each currently active application has been displayed.

In some embodiments, the first time a progress bar is to be displayed, the progress bar associated with the main program in the main window is displayed. While the first progress bar is being displayed, and an expand button is activated it is determined whether other playback applications are in progress (e.g., PIP applications). If another playback is in progress, the progress bars associated with each active playback is displayed (e.g., displayed above the main progress bar2030). In some implementations, a focus or highlight rectangle2150is further displayed around the main progress bar indicating that received trick commands are apply to the playback of the main window. If it is determined following the detection of the expand command that there are no other currently active playback applications, the system determines whether there are any active records applications. If one or more record applications are in progress, the progress bars associated with the record applications are displayed. In some embodiments, record applications cannot receive trick commands, and because the main playback application is the only active application capable of receiving trick commands, the focus or highlight rectangle is not displayed around the progress bar2030of the main program. In some preferred embodiments, if the focus changes between first and second progress bars in the middle of a trick command operation on the first associated application, the trick command for that application continues, while subsequent trick command(s) are applied to the second application, thus allowing multiple trick mode operations per session.

In some implementations, the reception of a second expand command while multiple playback applications are active and multiple playback progress bars are displayed (including main progress bar), causes the system to determine whether any records applications are active. If there are active record applications, record progress bars are additionally displayed (e.g., above the playback progress bars). If there are no active record applications when the second expand command is received, then no new progress bar are displayed. In some embodiments, future detections of expand commands have no effect. Alternatively, some embodiments remove one or more progress bars for each additional detection of expand commands (e.g., remove record application progress bars on a first additional expand command, remove additional playback progress bars upon a second additional expand command, and remove main progress bar upon a third additional expand command). Additionally and/or alternatively, a compress button is defined on the remote in some implementations that initiates the removal of progress bars. For example, compress commands cause the removal of record application progress bars, followed by the additional playback progress bars. When all of the progress bars except for the main progress bar are removed, the focus rectangle is also removed and trick commands are applied to the main progress bar.

As introduced above, some embodiments employ a timeout period, and the period of time associated with each level of displayed progress bars can vary. For example, when only main progress bar is displayed, the timeout period for erasing the progress bar is relatively short. When multiple progress bars are displayed the timeout period is extended so that a user does not have to redisplay the list of progress bars multiple times because the timeout expired.

FIGS. 23A-Bdepict a flow diagram of a process2310for displaying one or more progress bars in the main widow of the display2020and/or within an electronic programming guide according to some embodiment. In step2320, the process receives a command to display one or more progress bars (e.g., detects the selection of a progress bar button at the remote control). In step2322, the main program2022is identified and the status of the playback of the main program is determined. In step2324, a first progress bar (e.g., progress bar2030) is displayed for the first main program.

In step2326, the process determines whether an expand command is received. If the expand command is received, the process enters step2330where it determines whether there are any additional playback applications currently active. If there are no additional playback applications active, the process continues to step2340

If there are additional active playback applications, step2332is entered where the status of each additional playback application is determined. In step2334, one additional progress bar is displayed for each identified active playback application. The process then continues to step2336where it is determined whether an expand command is again received. If the expand command is received, the process continues to step2340, otherwise the process continues to step2346.

In step2340it is determined whether there are record applications that are currently active. If there are active record applications, the process enters step2342where the status of each active record application is determined. In step2344, progress bars are generated for each active record application. If there are not active record applications the process proceeds to step2380where one or more progress bars (e.g., main progress bar) are removed from the display and the process terminates.

If the expand command is not received in step2326, the process continues to step2346where the process determines whether a command has been received. If a command has not been received, the process continues to step2382where it determines whether a time limit has expired. If not the process returns to step2326, otherwise the process enters step2380where one or more progress bars are removed from the display and the process terminates.

If it is determined in step2346that commands are received, step2350is entered where it is further determined whether the command is a selection command to initiate the selection and/or highlighting of one or more of the progress bars and thus focusing trick commands on associated playback and/or record applications. If a selection is received, the selection is implemented in step2352. Following step2352and if the received command is not a selection command, step2354is entered where it is determined if the command received was a trick command. If the received command is a trick command, step2360is entered where it is determined if one or more progress bars are displayed. If there is more than one bar displayed, step2362is entered where the process determines which of the plurality of bars are focused and/or selected. Following step2362and if there is only one bar selected in step2360, step2364applies the requested trick commands to each playback and/or record application selected and/or highlighted. The process then returns to step2326to determine if additional commands are received.

If it is determined in step2354that the received command is not a trick command, the process enters step2366where it is determined whether the command is an additional expand command and/or an undisplay command. If the command is an additional expand command and/or an undisplay command, one or more progress bars are removed from the display at step2370. In step2372, it is determined whether additional progress bars are still displayed. If no other bars are displayed the process2310terminates, alternatively, step2374implements the alternate command. The process then returns to step2326to await additional commands.