SYSTEMS AND METHODS FOR VIDEO-RICH NAVIGATION
Methods and systems are disclosed that provide a user with efficient video-rich navigation (VRN) of media assets in an interactive media guidance application, such as an interactive program guide. A user can select a displayed video asset and perform an action on the selectable video asset, for example, using a remote control. The manner in which the video assets are displayed and the actions enabled for the particular video assets are defined by screen data transmitted to the user equipment in a VRN data feed.
Latest ROVI GUIDES, INC. Patents:
- Systems and methods for presenting content simultaneously in different forms based on parental control settings
- Methods and system for presenting search results
- Methods and systems for presenting direction-specific media assets
- Systems and methods for adjusting storage based on determining content item popularity
- Systems and methods for streaming media content during unavailability of content server
This application claims the benefit to U.S. provisional Patent Application No. 60/667,200, filed Mar. 30, 2005, the contents of which are hereby incorporated herein by reference in their entirety.
BACKGROUND OF THE INVENTIONThe present invention is directed towards systems and methods for providing “Video-Rich Navigation” (VRN) in an interactive media guidance application.
In current interactive media guidance applications, a user is presented with program guide data in a form of a neutral menu showing the available program mix and other available assets, such as Video-On-Demand (VOD), High-Definition Television (HDTV), Pay-per-View (PPV), Digital Video Recorder (DVR), music channels, digital cable and digital broadcast satellite (DBS), textual information, etc. A user is typically presented with a main menu and clicks through several options before arriving at a program the user may be interested in.
Due to the ever increasing number of channels and services, subscribers are faced with a daunting challenge of simplifying and enhancing their TV viewing experience. Network operators need ways to make viewers aware of and interested in their programming choices, and easier approaches are needed to seamlessly combine offerings from multiple network operators in ways transparent to the user.
It would therefore be desirable to provide systems and methods to present guidance for video assets to a user in a more user-friendly manner. It would also be desirable to enable network operators and service providers to display video pages with screen elements that provide selectivity, interactivity and enhanced functionality to make the display screen more easily navigable.
SUMMARY OF THE INVENTIONVideo-Rich Navigation (VRN) enables users to access services and/or assets from video-rich menu screens in an interactive television application system. VRN screens (also sometimes referred to herein as “pages”) may include both traditional menu buttons and “VRN buttons.” VRN buttons are interactive buttons and include video screen elements, or cells. VRN screens may be provided to the user in a VRN channel and/or may be assembled by filling in the cells from analog or digital video broadcast channels or from composite video streams (e.g., MPEG-2) composed of several digital channels. The VRN channels are tunable by the user equipment, for example, using multiple tuners or selecting a digital channel from the composite video stream. VRN screens may also access data from video-on-demand (VOD) streams to create on-demand VRN portals (e.g., using VOD broadcast barker functionality). As used herein, a “VRN channel” refers to either a tunable channel or VOD stream. A VRN channel or multiple linked VRN channels may provide a set of features referred to herein as a “VRN Application”. An exemplary application with one or more VRN channels may provide interactive program guide features, interactive news features, interactive sports application features, or video-on-demand features.
The look and feel of a VRN screen may be defined by screen data provided to user equipment. For example, screen data may include content identifiers that uniquely identify the on-screen elements on a VRN page. The screen data may includes template definitions and control data, for example, in the form of “chunks” that define the content displayed on the VRN page and interactive functions of the screen elements.
Screen data may also include unique identifiers for programs, channels, VOD programs, graphics, etc. Screen data may further specify the display of graphics, on-screen text, and the behavior and response to user input of selectable items in a VRN screen.
The screen data may be provided to the user equipment in-band or out-of-band. If carried in-band, screen data may be retrieved as needed, but may be cycled at a rate sufficient to display the VRN screens in a reasonable time when the screens are accessed by a user (such as when tuned to or retrieved on demand). For example, data may be cycled at least once per second and as fast as twice per second. If carried out-of-band, screen data may be stored locally by user equipment (e.g., a set top box).
A VRN client on the user equipment executes the screen data to provide a VRN application. VRN applications may be executed automatically when an end user equipment is powered on, executed automatically when a specific channel is tuned, accessed by a user from one or more menus of an interactive television application also running on user equipment (such as an interactive program guide, or IPG), or accessed by a user via buttons from a remote control device.
In one illustrative embodiment, for example, video assets for a VRN page are included in a video feed as a composite video. A template defines the position of each asset within the video, and defines the positions of other non-video assets within a VRN page. The VRN client generates the VRN page by overlaying non-video assets, such as a background and menu options, onto the video feed leaving at least some of the video assets viewable for use as VRN buttons. As the VRN client receives user navigation commands, it moves a highlight region among the selectable elements of the display. When the user selects an element, such as a video element, the VRN client performs an action associated with that element as defined in the screen data.
Further embodiments, features and modifications are disclosed more fully in the U.S. provisional patent application Ser. No. 60/667,200, filed Mar. 30, 2005, to which this application claims priority and the contents of which, including Appendices A through P, are included hereby in this application by reference in their entirety.
The above and other features of the present invention, its nature and various advantages will be more apparent upon consideration of the following detailed description, taken in conjunction with the accompanying drawings in which:
The systems and methods described herein describes certain embodiments of providing and navigating video content in form of a video rich navigation (VRN) page displayed, for example, on a TV display or other type of monitor or visual communication device. The VRN page includes a plurality of suitably arranged cells and can be launched, for example, when the TV display and/or tuner device are turned on. The cells on the VRN page can be populated with video assets from broadcast channels, video on demand (VOD), pay-per-view (PPV), advertising channels, recorded assets (DVR), locally stored assets, web-sites, and the like. The cells may be any suitable size and/or shape and may be located at any suitable location on the display screen. The cells may include text, still images, full motion video images, symbols, logos, or a combination of these or other suitable elements. In the following description, the terms “VRN Page” and “VRN Screen” will be used interchangeably and denote a full screen display, for example, on a TV monitor.
VRN screen data source 14 may be any equipment suitable for generating VRN screen data. For example, VRN screen data source 14 may be a personal-Computer (PC) based system or a workstation. User interface 18 may be any suitable interface, such as a windows-based or Unix-based graphic user interface (GUI), which allows, for example, an operator to define VRN definitional data, such as files, and synchronize the VRN screen data of the definitional data with content from content source 12. The user interface may allow an operator, for example, to specify transitions between distinct configuration specifications for selectable items in synchronization with video content. The user interface may also allow an operator to define control data which control, inter alia, the appearance, functionality, and interactivity of the screen elements, as well as the content or asset displayed in a screen element.
In some embodiments, the user interface may allow an operator to assign a higher precedence to initial configuration specifications for new video content when the VRN screen transitions between distinct content elements. This will allow new data associated with such content to be transmitted in time. For example, for the change when a video window changes from ESPN to CNN, the new VRN screen data associated with CNN may be given precedence over other data. VRN screen changes may be scheduled by, for example, specifying an activate time and/or a deactivate time, or by specifying version numbers, in the VRN screen data.
Compiler 20 may be any suitable combination of hardware and software for compiling the VRN screen data of the definitional files into binary VRN screen data. In some embodiments, definitional data may be stored in a directly usable form and may not require compilation.
Distribution equipment 16 is any suitable equipment for distributing VRN screens from content source 12 and VRN screen data from VRN screen data source 14 over communications path 19 to distribution facility 20, and further over communication path 28 for distribution to user equipment 30. Central facility 10 may distribute the screens and screen data to multiple distribution facilities 20, but only one has been shown to avoid over-complicating the drawing. In other embodiments, central facility 10 may distribute the VRN screens and/or screen data to users directly. Distribution equipment 16 may distribute the VRN screens and VRN screen data in any suitable analog or digital format and over any suitable communications path (e.g., satellite or terrestrial broadcast, the Internet, etc.). VRN screen data may be distributed in-band or out of band from the VRN screens.
Distribution facility 20 may be any facility (e.g., a headend) suitable for receiving the VRN screens and screen data and distributing the screens and screen data to user equipment 30. There may be multiple instances of user equipment 30, but only one instance has been shown to avoid over-complicating the drawing. Distribution facility 20 may have content source 24 and local insertion equipment 22 for allowing a local operator to insert content and data into the VRN screens or VRN screen data, respectively, and compile VRN screen data into binary format for transmission (if required). Local insertion equipment 22 may run, for example, on a local version of user interface 18 and compiler 20.
Distribution equipment 26 may distribute the VRN screens and VRN screen data in any suitable analog or digital format and over any suitable communications path to user equipment 30 (e.g., broadcast, cable, the Internet, etc.). The communication paths 19, 49 and 28 may include, for example, a satellite path, a fiber-optic path, a cable path, an Internet path, or any other suitable wired or wireless path. For example, VRN screens may be provided as MPEG-2 feeds. VRN screen data may be distributed in-band or out of band from the VRN screens. Distribution equipment 26 may provide the VRN screens (and if in-band the VRN screen data) as tunable analog or digital channels, or as VOD streams (both of which are referred to as VRN channels). The VRN channels provide the users of user equipment 30 with a set of interactive features that make up a VRN application.
In some embodiments, distribution facility 20 may provide the VRN channel full-time over a given analog or digital channel. Alternatively, distribution facility 20 may provide VRN channels part-time.
Distribution facility 20 may provide one or more VRN applications to user equipment 30. User equipment 30 may include any equipment suitable for providing an interactive television experience including the VRN applications provided by distribution facility 20. User equipment 30 may include television equipment such as a television, set-top box, recording device, video player, user input device (e.g., remote control, keyboard, mouse, touch pad, touch screen and voice recognition interface), or any other device suitable for providing an interactive multimedia experience. For example, user equipment 30 may include a DCT 2000, 2500, 5100, 6208 or 6412 set-top box provided by Motorola, Inc. In some embodiments, user equipment 30 may include computer equipment, such as a personal computer with a television card (PCTV). In some embodiments, user equipment 30 may include a gaming system, a portable electronic device, such as a portable DVD player, a portable gaming device, a cellular telephone, a PDA, a music player (e.g., MP3 player), or any other suitable portable or fixed device.
In the example of
Control circuitry 32 is adapted to receive user inputs from input device 38 and execute the instructions of the VRN client (and therefore the VRN application) and any other interactive television applications running on user equipment 30. Control circuitry 32 may include one or more tuners (e.g., analog or digital tuners), decoders (e.g., MPEG decoders), processors (e.g., Motorola 68000 family processors), memory (i.e., RAM and hard disks), communications circuitry (e.g., cable modem circuitry), input/output circuitry (e.g., graphics circuitry), connections to the various devices of user equipment 30, and any other suitable component for providing analog or digital television programming and interactive television features. In one embodiment, control circuitry 32 may be included as part of one of the devices of user equipment 30 such as, for example, part of recording device 36, display device 34, or any other suitable device (e.g., a set-top box, television, video player, etc.).
Users may have access to multimedia sources 12a, 12b, 12c, and web content 12d from the central facility 10 and/or to similar sources 24 (which may or may not include similar multimedia sources and web content, 24a, 24b, 24c, 24d) using a cable television network, a local area network (LAN), a wireless network, or any other suitable means or combination thereof. In some embodiments, the equipment of a plurality of users may be connected to each other using any suitable means.
Display device 34 may be any suitable device such as, for example, a television monitor, a computer monitor, or a display incorporated in user equipment 30 (e.g., a cellular telephone or music player display). Display device 34 may also be configured to provide for the output of audio.
Optional recording device 36 may be a personal video recorder (PVR), digital video recorder (DVR), video cassette recorder (VCR), DVD-recorder, or any other suitable video recorder. Recording device 36 may include one or more tuners.
The VRN client implemented on user equipment 30 may be a stand alone client or part of an interactive television application, such as an interactive television program guide (IPG). The interactive television application may receive interactive television application data from application data source 40. As shown in
User equipment 30 may execute multiple interactive television applications. In some of such embodiments, the VRN client may provide an application program interface (API) to allow the other interactive television applications to launch the VRN application or access VRN application features. If the VRN client is part of a particular interactive television application, such as an IPG, that application may provide an API to the other applications so that they may launch or access the VRN application. In still other approaches, an interactive television application may provide an API to the VRN application. This may provide the VRN application access to various features of the interactive television application. For example, user equipment 30 may provide an IPG. The VRN screen data may specify that the VRN application call the IPG (or features of an IPG when, for example, the VRN client is an IPG) to, for example, provide program listings having certain characteristics (e.g., listings for a given channel, service or time slot).
As mentioned above, the VRN features must be enabled on a VRN client and VRN data, such as the screen data and the control data, must be available to the VRN client for a user to take advantage of the VRN features. Accordingly, when a user tunes to a broadcast channel or a video stream, such as a PPV or VOD service, the VRN client may first determine whether the channel or video stream includes VRN screen data. This determination may be made automatically (because the channel or video stream has not yet been identified to the guide as a VRN channel), or performed only when the channel is identified as a′VRN channel. If the channel or video stream does not have VRN screen data, the VRN client may continue to monitor the channel or VOD asset to detect such data if it is subsequently transmitted. If the VRN screen data is received while the VRN client is in the idle state (such as when the user is watching a program or a streamed asset) or FLIP state (such as when the user is tuning and the VRN client is an IPG), then the VRN client may exit the idle or FLIP state and launch a VRN application. If the VRN client stops receiving VRN data for a period of time (e.g., 15 seconds), the VRN client may revert to the idle state.
The transmitted screen data may include references to templates. However, templates are not required for a VRN application. Templates are definitional documents (or their compiled equivalent) that are received and may be stored by the VRN client. In some embodiments, templates may be hard coded and included as part of the VRN client. Templates define the screen appearance of a VRN application, but contain placeholders for content instead of the actual content or information identifying the content. A template identifier can be used instead of the actual template definitions to identify a template, for example, a template stored on the client. The VRN client uses the template identifier to retrieve a template from memory and then populates the template based on content identifiers in the VRN screen data. This may reduce the amount of data being transmitted. The VRN client changes templates and thereby the appearance of the VRN screen according to the change in the template identifiers. The template identifiers and/or template definitions can be transmitted to the client via a data feed other than the VRN screen data feed.
The following sections describe illustrative embodiments of VRN applications. When the user equipment, such as a set top box or display, is first switched on and a VRN video feed and VRN screen data are available, a VRN Home Page may be displayed. The elements and behaviors described below are described more comprehensively in relation to a displayed Home Page, but that is only for purposes of illustration. Other VRN screens, which may or may not be Home Pages, such as other VRN screens accessible from a VRN Home Page, will be described following the description of the exemplary Home Page, with only the different page layout and control functionality highlighted.
Home pages (and other VRN screens) may include a number of elements, either interactive or not interactive, that occupy defined regions on the display (or VRN page). In one embodiment, the content of the various VRN elements on the VRN screen can be transmitted with the VRN video feed. Other attributes of the VRN screen elements, such as the size, color scheme, and interactive functions associated with the VRN screen elements can be transmitted to the VRN client via the VRN screen data. The VRN screen data may cause certain unsupported VRN screen elements (e.g., VRN screen elements with associated content that is either unavailable or blocked) or regions on the VRN screen to be omitted, obscured, or grayed out. Interactive VRN screen elements, also referred to as VRN buttons, can be highlighted and selected. If the end user navigates to a specific interactive element (e.g., by using the arrow keys on a remote control device), the interactive element will be visually highlighted in some fashion. If the end-user “selects” a highlighted interactive element (e.g., by pressing the “OK” button on a remote control device), the system will display a specific tunable channel, VOD clip, VOD screen, IPG screen, or another interactive media guidance application, based on selection behavior specified for the interactive element in the VRN screen data.
The following description of VRN screens is organized as follows:
Section I addresses the general setup of a Home Page, with Section I.A describing illustrative Home Page elements and illustrative Home Page behavior. Section I.B describes illustrative Home Page responses to remote control keys. Section I.C describes illustrative IPG functions called by a Home Page application. Section I.D describes illustrative IPG behavior for providing Home Page access through an IPG.
Section II describes the properties and use of templates. Section III gives examples of illustrative additional VRN screens based on templates. Section IV introduces the use of control data or chunks. Details of the processes relating to the generation of templates, generation of VRN screens and selectable video elements, generation of interactive and non-interactive buttons (or VRN screen elements), and the use the VRN screen and control data are illustrated in the exemplary process flows depicted in
I.A Description of Illustrative Home Page Elements
Elements of the screen can be of the following types:
Still image—Identified in the VRN screen data by, for example, filename.
VOD video clip—Identified in the VRN screen data by, for example, provider ID and asset ID.
Live video source—Identified in the VRN screen data by, for example, source ID.
Video playlist—Sequence of VOD video clips and/or live video sources.
Graphic—Described in the VRN screen data by, for example, metadata.
Text block—Described in the VRN screen data by, for example, metadata.
Audio track—Identified in the VRN screen data by, for example, a cable plant audio PID.
These are only illustrative, as any other suitable elements may be used. In some embodiments supporting two-way communications for example, an input form may be provided to allow users to submit a form via HTML to an application server.
Table 1 describes the various elements referenced in
I.A.1 Background (BG-1)
A Background is a full-screen, non-interactive element that sits behind all other elements in the template. In
The Background element may be any one of the following:
Still image
VOD video clip
Live video source
Video playlist
The Background element has no special behavior associated with it. Changes of the Background element may be scheduled in the VRN screen data based on date and/or day part.
I.A.2 Home Page Logo (SE-1)
The Home Page Logo is a non-interactive, static element (hence the designation “SE-1” in
I.A.3 Message Indicator (SE-2)
The Message Indicator is an interactive, static element. While the Message Indicator element itself does not change, it has a special behavior called conditional visibility; it is only visible if the subscriber has one or more unread messages in an IPG Message Center. The Message Indicator element has no special highlight behavior. Selection behavior is to display an IPG Message Center screen. The Message Indicator element could be either a still image or a text block (i.e. an icon).
I.A.4 Time (DE-1)
The Time is an interactive, dynamic element (hence the designation “DE-1” in
I.A.5 Temperature (DE-2)
The Temperature is an interactive, dynamic element that changes to reflect the current temperature provided for the cable system. This element is a concatenation of two distinct text strings—one containing the text “Current Temperature”, and another containing the actual temperature reading. The Temperature element has no special highlight behavior. Selection behavior is to display an IPG Weather screen. The Temperature element is a text block.
I.A.6 Main Video Window (VW-1)
The Main Video Window is an interactive, dynamic element that may, for example, cycle through a playlist of VOD video clips. The Main Video Window cycles continuously through the playlist, which could contain any number of VOD video clips; however, the playlist may contain a small number (a dozen or fewer) that an MSO wishes to promote. The audio track associated with the Main Video Window playlist is audible to the subscriber by default
The Main Video Window element has no special highlight behavior. Selection behavior may be to display an information screen specifically for the VOD program that the current VOD video clip (at the time of selection) is promoting. Alternate selection behavior may be to display a VOD sub-menu containing all of the VOD programs promoted by VOD video clips in the playlist. The Main Video Window element is a VOD video clip or video playlist. Changes of the Main Video Window playlist may be scheduled based on date and/or day part.
I.A.7 Main Video Window Info (CE-1)
The Main Video Window Info is a non-interactive child element (hence the designation “CE-1” in
I.A.8 Menu Buttons (MB-1 to MB-6)
The Menu Buttons are interactive elements that may be customized and modified as desired by an MSO (Multiple System Operator, i.e., a company that operates more than one cable system). In
Further, each Menu Button element can be defined to have conditional visibility, based on one or more system and/or session properties. For example, the DVR Menu Button shown in
Other examples of properties that might drive conditional visibility for a Menu Button element include STB support for specific interactive television applications, or lack of subscriber entitlement for a specific tunable channel. An alternate approach to conditional visibility of Menu Button elements might be conditional selection behavior. For example, the DVR Menu Button, for a subscriber without DVR capability, may display a screen promoting DVR-enabled STBs.
Yet another example of conditional visibility of a menu button is displaying a menu button (or other selectable element) in response to a user highlighting an element associated with a program. In this way only options associated with the program are provided. These options may be displayed in, for example, a tool bar.
The Menu Button elements have no special highlight behavior. Selection behavior may be configurable based on MSO (Multiple System Operator—a company that operates more than one cable system). The visible Menu Button elements could be any one of the following:
Still image (with text embedded)
Still image+text block overlay
Graphic+text block overlay
Changes of the Menu Button elements may be scheduled based on date and/or daypart. Scheduled changes will appear in the VRN screen data for the Home Page. The VRN screen data for the menu groups may also specify the screen area and anchor point for the menu group.
I.A.9 Video Swatches (VS-1 to VS-4)
Video Swatches are interactive, dynamic elements that can be customized and modified as desired by the MSO. In some embodiments, each of the Video Swatch elements may be driven by a playlist of VOD video clips, as with the Main Video Window element. In other embodiments, the Video Swatch elements may represent a single theme (and hence will use a single VOD video clip or video playlist), with consistent selection behavior.
Video swatches may have a number of special behaviors. First, each distinct Video Swatch element may have the ability to visually alternate between a “cover image” when not highlighted, and video content (VOD video clip, live video source or video playlist) when highlighted. This is referred to herein as a “hybrid interactive element.” Second, the audio track, for any Video Swatch element that has an associated audio track, becomes audible to the subscriber when the Video Swatch is highlighted (or selected). Finally, the four Video Swatch elements are logically combined into a “highlight group,” much like the Menu Button elements. However, this group definition drives the behavior of a separate, “highlight element” described in the Video Swatch Info section below. Selection behavior for the Video Swatch elements may be configurable by MSO.
The Video Swatch elements may be any one of the following:
Still image
VOD video clip
Live video source
Video playlist
Still image (“cover image”) transitioning to VOD video clip, live video source or video playlist when the Video Swatch element is highlighted (hybrid).
Changes of the Video Swatch elements/element playlists may be scheduled based on date and/or daypart.
I.A.10 Video Swatch-Titles (CE-2 to CE-5)
The Video Swatch Titles are non-interactive child elements (hence the designations “CE-2” through “CE-5” in
The Video Swatch Title elements are text blocks. Also note that, as pictured, the Video Swatch Title elements may contain a transparent black “bar graphic” beneath the text block. This bar graphic could be pre-produced and embedded in a VOD video clip; however rendering of this bar graphic for a live video source would need to be executed in real time.
I.A.11 Video Swatch Info (HE-1)
The Video Swatch Info is a non-interactive, dynamic highlight element (hence the designation “HE-1” in
I.A.12 Audio
Audio is an implied element in
I.A.13 Illustrative Highlight And Selection Behavior
The Home Page application (and other VRN applications) may identify interactive elements to be highlighted by default when the Home Page application is initially executed. If the Home Page application loses focus but remains active, the Home Page application may retain knowledge of the last highlighted interactive element. If, after losing focus, the Home Page application regains focus, the Home Page application may restore the highlight to the last highlighted interactive element. If the Home Page application becomes inactive (exits), the Home Page application may not retain knowledge of the currently highlighted interactive element.
The Home Page application (or other VRN applications) may specify one or more special highlight behaviors to be invoked when an interactive element is navigated to (“highlighted”). For example, when an interactive element having an associated audio track is highlighted, the audio track for the highlighted interactive element will be made audible for the subscriber. When a hybrid interactive element is highlighted, the “cover image” associated with the hybrid interactive element may be replaced with the VOD video clip, live video source or video playlist associated with the hybrid interactive element.
The Home Page application (or other VRN applications) may provide for the association of a distinct group of interactive elements (a “highlight group”) with a separate “highlight element.” A highlight element associated with the highlight group displays specific metadata for the currently highlighted interactive element in the highlight group. If none of the interactive elements in a highlight group is currently highlighted, any highlight element associated with the highlight group will not be displayed.
The Home Page application (or other VRN applications) may provide “conditional selection behavior” for an element based on criteria specified for that element in the VRN screen data. Selection behavior for any element having criteria for conditional selection behavior may be determined by evaluation of the specified criteria at the time of selection. Criteria specified for conditional selection behavior may be limited to element, session or system attributes that can be ascertained at the time of selection.
I.A.14 Additional Illustrative Home Page Display Behaviors
The Home Page application (or other VRN applications) may support one or more of the following additional display behaviors.
The Home Page application (or other VRN applications) may provide “conditional visibility” for an element based on criteria specified for that element. Any element having criteria for conditional visibility may only be visible to the subscriber if the specified criteria are met. Criteria specified for conditional visibility may be limited to element, session or system attributes that can be ascertained while executing the Home Page application. Entire screens may have conditional visibility. For example, screens may vary based on where a VRN application was accessed from.
The Home Page application (or other VRN applications) may dynamically display elements based on parent-child relationships between elements. A child element has one or more metadata attributes associated with its respective parent element. As a specific parent element changes, its child elements change to reflect the metadata attribute(s) associated with the new parent element.
The Home Page application (or other VRN applications) may dynamically display elements based on system attributes such as the STB clock, and the temperature.
The VRN client may mask VRN button of a Home Page (or other VRN applications) when the VRN button is associated with a channel or source that is not supported in the local channel map. The VRN client may obtain the local channel map via an API call to another interactive television application (e.g., an IPG), may receive the local channel maps as VRN screen data or, in embodiments where the VRN client is an IPG, may receive the local channel map as IPG data. The VRN client may also mask a button when, for example, its functionality is not supported on the user's equipment (e.g., the VRN client will not display a DVR button for a non-DVR STB). When a VRN button is masked its audio and video may be imperceptible to the user. The VRN screen data may provide alternate display configurations for masked VRN buttons.
In some embodiments, the VRN client may display a screen saver after the Home Page (or other VRN applications) is inactive for a configurable interval. If the VRN screen is VOD, the VRN client may simply tune the user's equipment to the last linear channel tuned after the screen saver is provided for a period of time. If the VRN screen is broadcast, the screen saver may not time out.
I.A.15 Home Page Element Transition Scheduling
The Home Page application (or other VRN applications) may transition between multiple, distinct specifications for an element based on a pre-defined schedule of specifications for that element. The scheduling may be by, for example, date and day part or date and time. The VRN screen data for the application may include a pre-defined schedule of specifications to be used for each distinct element.
The Home Page applications (or other VRN applications) may select between distinct specifications for Home Page application elements at the time of VRN application startup. In some embodiments, the VRN application will not transition between element specifications during a single instance of execution.
I.B Illustrative Responses to Remote Control Keys
The number of keys supplied on remote controls that control the functionality of the settop box and define screen commands and responses to user input has increased substantially. Not only do the remote controls operate several different components of the user equipment, but they also activate increasingly more complex functions. Table 2 defines illustrative behavior of a remote control with 45 control keys, of which most are active while a Home Page application, such as the one described herein, is active and in focus. The actual number of keys can be greater, since not all keys may be active. Some of the behaviors below assume that the Home Page has access to IPG functions (this is described below in Sections I.C and I.D).
In addition to illustrative behaviors described above, the Home Page application (or other VRN application) may support configurable buttons. For example, on-screen and physical buttons (i.e., remote control or STB buttons) may have various behaviors specified by the VRN screen data. In some embodiments, highlight behavior may be configurable. For example, moving a cursor over an on-screen button can trigger a behavior such as instant info text. In some embodiments, selection behavior may be configurable (e.g., whether a button launches a particular screen). In some embodiments, exception behavior may be configurable.
I.C Illustrative IPG Functions Called By A Home Page Application
In some embodiments, an IPG may reside on user equipment 30 (
Tune to a specified source channel (specified by, e.g., source ID or channel call letters).
Tune to the last source that was tuned prior to the Home Page channel. When a user tries to tune to a channel (other than a Home Page channel), the Home Page application may exit.
Play a specified VOD video clip (specified by, e.g. provider ID and/or asset ID).
Display an information screen for a specified VOD asset (specified by, e.g. provider ID and/or asset ID).
Display a VOD Main Menu screen.
Display a specified VOD Sub-Menu screen.
Launch a specified VRN application other than the IPG. Upon launching the other application, the Home Page application may exit.
Display an IPG Grid Listings screen, beginning with the current half hour, and with the lowest channel number in the channel map.
Display an IPG Grid Listings screen, with channels filtered by any service attribute supported in IPG filter strings.
Display an IPG Listings by Time and Channel screen, beginning with the current half hour, and with the lowest channel number in the channel map.
Display an IPG Listings by Time and Channel screen, with programs filtered by any service, schedule or program attribute supported in IPG filter strings.
Display an IPG Listings by Channel and Time screen, beginning with the lowest channel number in the channel map, and with the current half hour.
Display an IPG Listings by Channel and Time screen, with programs filtered by any service, schedule or program attribute currently supported in IPG filter strings.
Display an IPG Listings by Title screen.
Display an IPG Listings by Title screen, with programs filtered by any service, schedule or program attribute currently supported in IPG filter strings.
Display an IPG Channel Listings screen.
Display an IPG Channel Listings screen, with channels filtered by any service attribute currently supported in IPG filter strings.
Display an IPG Mini Guide overlay, beginning with the current half hour, and with the lowest channel number in the channel map.
-
- Display an IPG Main Menu screen.
Display an IPG Search Menu screen.
Display an IPG Setup Menu screen.
Display an IPG Message Center screen.
Display an IPG TV Timers screen.
Display an IPG Weather screen.
Display an IPG Digital Recordings Listings screen.
Display other IPG screens as defined by an MSO.
Customize the VRN application based on IPG settings.
I.D Illustrative IPG Behavior for Providing Home Page Access
In some embodiments, an IPG implemented on user equipment 30 (
Direct tuning to Home Page channel. If the channel is not authorized the Home Page may not be launched.
Interactive selection of the Home Page channel in any IPG channel listing, grid or mini-guide display. The IPG may not launch the Home Page if the Home Page is tuned in a Scaled Video Window.
Access from a “Home Page” button in the IPG Main Menu.
Access from a “Home Page” button in the IPG Quick Access Menu (QAM).
Tuning to Home Page channel via the “last” button on the remote control.
If the IPG automatically powers on the STB to execute a TV timer scheduled event (such as a recording), however, the IPG will not tune to the Home Page channel. If the IPG automatically tunes to the Home Page channel when the STB is powered on, whatever channel was tuned when the STB was last powered off may be accessed by the user from a “last” button on the remote control.
If the STB has dual tuners, the IPG will use Tuner 1 to automatically tune to the Home Page channel. If the IPG uses Tuner 1 to automatically tune to the Home Page channel, then whatever channel was tuned on Tuner 1 when the STB was last powered off may be accessed by the user from the “last” button on the remote control.
If a parental control lock has been placed on the Home Page channel, the IPG will display the parental control PIN entry overlay whenever a tune to the Home Page channel is attempted, instead of tuning directly to the Home Page channel. The IPG will only tune to the Home Page channel if the correct parental control PIN is entered.
When a user tunes to the Home Page channel, the IPG will not display the IPG Flip Bar overlay. If the Home Page application is active but the IPG has the current focus, the IPG will cause the Home Page application to exit in response to a user invoking a tune to any channel other than the Home Page channel, or in response to a user invoking the execution of another interactive television application.
If the Home Page application is active but the IPG has the current focus, the IPG will exit and cause the Home Page application to regain focus in response to a user invoking a tune to the Home Page channel, the user selecting a menu button representing the Home Page application, or the user pressing the “exit” key on the remote control device while still tuned to the Home Page channel.
When a broadcast channel is in the VRN state, the IPG may disable DVR trick play functionality with the exception of the stop command. If a VOD asset is in a VRN state, the IPG may disable VOD trick play functionality with the exception of the stop command.
II. VRN TemplatesVRN templates are VRN definitional documents (or their binary equivalents) that define the look and behavior of VRN screens. The exemplary wire frame depicted in
VRN templates may also specify the navigation between selectable elements. Templates may, for example, define a default navigation behavior. This default navigation behavior may be overridden by VRN screen data received by the VRN client. This may occur only for particular keys, such as OK, Up Arrow, Down Arrow, Left Arrow, Right Arrow, scroll up and scroll down, as will be described below. Templates may, for example, define one selectable element as the default highlight position.
When there are VRN buttons in a VRN screen, a template may identify one of the buttons as the default audio source. When there are no VRN buttons the default audio is the default audio of a broadcast source, e.g., a channel from which a user accessed the VRN application, or a default audio channel. This will override any other default audio settings on the user equipment, e.g., default audio set in an IPG setup feature.
VRN templates may also define the location (x, y and z axis), appearance, size and shape of non-selectable elements, such as backgrounds, MSO logos, time elements, message center elements, or any other non-selectable elements, e.g., those described above in connection with the illustrative Home Page of
Templates include placeholders for visual elements of VRN screens. These placeholders are populated by a VRN client based on control data for the visual elements contained in the VRN screen data. The visual elements themselves may be included in the VRN screen data, pre-stored on the user equipment, or obtained on-demand by the VRN client.
VRN templates are received by the VRN client using any suitable approach. For example, they may be periodically transmitted in the VRN data feed. In other approaches, the VRN client may download templates on demand from a server at distribution facility 20 (such as when an unknown template is defined in the VRN screen data). In some approaches, the templates may be embedded as part of the VRN client. When the VRN client is an IPG, the templates may be provided as IPG data. VRN screen data identifies the applicable template for the VRN client using an identifier. The VRN client detects that identifier and, after retrieving the relevant template from memory, acquires the VRN screen data required to render all of the selectable and non-selectable items specified in the template. The VRN client resolves the placeholders of the template with the asset (content) identifiers in the VRN screen data, and retrieves the actual visual elements. The actual visual elements may be provided as part of the VRN data, or as part of data for another application on user equipment 30 (
Rendering a VRN screen requires having all of the data to populate the template. In some embodiments, the VRN client may not make the video and audio for the VRN screen available until sufficient VRN screen data has been acquired to render a complete VRN screen. If sufficient VRN data are not received before a timeout value (e.g., 30 seconds) expires, the VRN client may display a “feature not available” overlay. When the VRN client is an IPG, for example, the VRN channel may be displayed once the IPG database acquires local configuration data identifying the VRN channel. In embodiments where the VRN screen data is provided in a VOD stream, the VRN client may make the VRN screen visible to the user without imposing any delay due to insufficiency of VRN screen data. When VRN data disappears (or is not validated within a timeout period), the VRN client may block audio and video.
In some embodiments, channels and VOD streams are VRN enabled only part-time. In such embodiments, the VRN client may dynamically enable and disable the VRN application based on the presence or absence of valid VRN screen data. When the VRN application is disabled, audio and video for a channel is provided as it normally would by the user equipment.
III. Additional VRN ScreensA number of additional exemplary VRN screens which can be displayed independent of the Home Page or can be accessed from the Home Page will now be described with reference to
The illustrative templates for each screen/wire frame group of
III.A Template 01—Illustrative Home Page Template (
The exemplary VRN Template 01 of
Three VRN buttons identified as field numbers “11”, “12”, and “13” serve as thumbnail videos, with associated button label text displayed in the respective label areas defined by as text field numbers “11a”, “12a”, and “13a”. If a thumbnail video is highlighted, instant information configured for the thumbnail video is displayed in the area defined by field number “8”.
Other elements included in the VRN Template 01 of
The Main Video Window has an associated audio PID, which is the default audio PID for VRN Template 01. Each of the presentations in the thumbnail videos may have an associated audio PID.
Table 4 shows certain enhanced features of the Input Key Processing when VRN Template 01 is displayed. These various Input Key Processing features are active in addition to most of the features described above in Table 2 with reference to the Home Page.
The functions of the other keys for the VRN Template 01 of
As seen from Table 4, functionality has been added to at least the arrow keys on the remote control, with the operation performed by the keys depending on the particular video window or text bar of the screen focus. The added functionality is specific for a template and can be dynamically assigned, for example, by the screen data or control data, which will be described in detail below.
III.B Template 02—Illustrative News, Sports and Kids Screen Template (
The exemplary VRN Template 02 of
Other elements included in the VRN Template 02 of
All four thumbnail video windows have an associated audio PID, wherein the audio PID associated with the upper left most video window “9” is the default audio PID for VRN Template 02.
Table 6 shows certain enhanced features of the Input Key Processing when VRN Template 02 is displayed. Note that some of these enhanced features are different from those for Template 01 to emphasize that the assignment of the input keys is template-specific.
For a discussion of the other keys for the VRN Template 02 of
Additional exemplary Templates 03 through 06 and corresponding wire frames are illustrated in
III.C Template 03—Illustrative News, Sports, Kids Screen Template (
III.D Template 04—Illustrative VOD Template (
III.E Template 05—Illustrative Main Menu Screen with Advertising Banner Template (
III.F Template 06—Illustrative Main Menu Screen with Instant Information Template (
As mentioned above, the VRN screens may or may not be defined by a template. However, as the VRN screens depicted in
Templates represented, for example, by the aforedescribed wire frames can be transmitted from the network operator, service provider, headend or from any other suitable source, such as the Internet, to the user equipment, such as the settop box, and stored locally. A template can be defined by a unique template ID. Templates typically define the arrangement of the various cells and windows on the VRN screen, but by themselves may not include the actual content.
When the VRN client launches a VRN application, it acquires a VRN data stream in addition to the video stream and displays the VRN Channel or program in accordance with the definitions provided in the VRN data stream. The data streams may be transmitted separately out-of-band, or in-band with a VRN channel. Digital in-band data may be carried on a PID separate from the video and audio PIDs. If carried out-of-band, this data may be stored locally by the user equipment 30 (see
While the VRN application is active and in focus (whether or not the application has been disabled due to absence or invalidity of data), the VRN client may continuously monitor the VRN screen data. When the VRN client detects a change to the VRN screen data while the VRN application is active and in focus, the VRN client will immediately update the VRN display. If after a change in the VRN screen data the currently highlighted object is still present and enabled for selection, it will remain highlighted. If after a change in the VRN screen data the currently highlighted object is not present or not enabled for selection or if a template has changed, the VRN client may revert to the default highlight specified in the new definition.
Definitional documents for the VRN application, such as the templates, can be defined in XML format using a schema language, for example, RELAX NG (www.relaxng.org). This schema language does not change the information set of an XML document, supports XML namespaces, treats attributes uniformly with elements, and has unrestricted support for unordered or mixed content.
IV. Control Data and ChunksIn some embodiments, the definition of a VRN application, including the templates for displaying the content described above, the source(s) providing the content, functionality of the key on the remote control described above, and other features of a VRN application, may be supplied in the data streams as control data. In some embodiments, control data may be divided into small sections, hereinafter referred to as “VRN chunks”. A VRN chunk can be in form of a single DC-II Text message and advantageously is, in some embodiments, no more than 1000 bytes in length and contains an even number of bytes. The definition of each VRN screen and each individual resource referenced by a VRN screen may be defined in a single VRN chunk, in more than one chunk, or portions of the definition may be included across several chunks. Transmission of control data with a suitable syntax to the user equipment allow comprehensive management of displayed content and user functionality from a headend or central location and conserves transmission bandwidth.
The features and operation of a VRN chunk are best described with reference to
The chunk in
For the master chunk, the next several fields define overall characteristics of the VRN page. This includes the identifier for the template definition file, the associated color palette to use for the page, and the number of supplemental chunks in addition to the master chunk. The definition of the VRN channel is not considered to be complete until the master chunk and all the required supplemental chunks have been received and stored.
The next set of fields define the actions for specific remote control keys for the particular VRN page that override the default set of key actions. This includes a count of the number of key action overrides. For each key to be overridden, the master chunk includes the key code, the type of action to be taken when the key is pressed, and any specific details required for the specified action, as described above in the tables for the template keys assignments. A key that is not defined in the key code will be ignored or take some other default action while the VRN page is active.
The next two fields are present only for supplemental chunks and define the master chunk ID on the particular VRN channel or VRN VOD program as well as the master chunk version. The next field defines the number of objects (i.e., screen elements). This is the number of objects defined in all chunks for a master chunk, and the number of objects in the particular chunk for each supplemental chunk. Following the number of object is the object directory, the list of object IDs and locations. Each object on the VRN page is assigned a unique object ID. For supplemental chunks, only objects defined internally to the chunk are included in the object directory. For master chunks, all objects defined in all supplemental chunks (external objects) are included along with the internal objects. For each object in the object directory, the location is included. The object location is indicated as a chunk ID if the object is external, or as an offset if the object is internal. The offset represents the number of bytes from the start of the chunk to the start of the object definition. The object definitions follow the object directory.
An object in the context of the exemplary chunk structure indicates, for example, a selectable video window, a menu button, selectable or non-selectable text, or fixed items such as logos and time indicators. Each object may include definition of audio properties, language, as well as certain enabled key actions on the remote control. Objects can also include software filters which provide the ability to customize data based on language, terminal characteristics, DVR and VOD functionality, third party applications, and the like. More details can be found in the U.S. provisional application 60/667,200, in particular Appendix B (which describes a slightly different embodiment of a VRN chunk), Appendix C and Appendix E, which describes various software filters. The VRN chunk is terminated with a checksum field.
For example, there may be one VRN chunk for each VRN channel definition, plus one or more VRN chunks for global resources (e.g., strings and graphics, as well as screen elements). Each chunk may have a directory of global resources. It should be noted that VRN chunks may be easily replaced and updated without forcing a change to the application definition itself.
As an example, an VRN application with three interactive channels might include the following chunks:
Three VRN chunks, one defining each of the three interactive channels. These might be sent from a central location.
One VRN chunk, sent from the central location, to define the global resources of the VRN application.
A replacement for the global resources chunk at each headend in which the application is to use different strings, graphics, etc.
A time-dependent VRN chunk containing resources that change over a short period of time, such as strings describing a video clip that is being played on an interactive channel.
Each chunk, defined by a Chunk Number field for example, may define a unique set of objects and attributes of the currently-tuned VRN channel. These are described in more detail with reference to
In some embodiments, the maximum number of chunks per VRN channel may be four. However, there may be more or less than four chunks. One may be considered to be the “master” chunk. All others are “supplemental” chunks. In some embodiments, the supplemental chunks will include data for objects that change frequently, while the master chunk will include data that does not change as often. Another usage model may be to carry global information in the master chunk and localized information in a supplemental chunk. One or more supplemental chunks may be replaced at the headend or central location to add/remove content and/or features without making changes to other supplemental chunks or the master chunks, except for updating the number of chunks.
If there are multiple chunks, the chunk versions of each may be managed independently. For any specific version of a master chunk, there may be many versions of the corresponding supplemental chunks. Only one version of any chunk may be trafficked and effective at any given time. Receipt of a new version of a master chunk will cause the VRN client to discard and reacquire any stored supplemental chunks. Receipt of a new version of a supplemental chunk will not cause the IPG to reacquire the master chunk, unless the newly acquired chunk indicates that it is not compatible with the old master chunk ID and version.
Referring now to
In this example, when determining which chunks to accept and store from the VRN screen feed, the VRN client application may examine the following fields:
Application ID. All VRN chunks associated with a given VRN application will have the same ID, and this is not expected to change as the application is revised.
Application Version. All VRN chunks associated with an application will have the same application version number. A change in this field will cause the client to discard all stored chunks with earlier version numbers. This may change when, for example, a change in the design/layout of the application occurs. Changes in resources such as strings and graphics change will be marked in the Chunk Version field. The VRN client will look for any changes to the version number, not just incrementing.
VRN Chunk Number. Each chunk of an application is given a unique number. When a chunk is updated the new chunk should retain the same chunk number. When a global version of a chunk is replaced with a more local version, the same chunk number should be used. Chunk numbers do not have to be consecutive, and the VRN client is only expected to store enough chunks to correctly display the portion of the VRN application associated with the currently tuned data stream. The VRN client should store at most one chunk having the same combination of application ID and chunk number.
Chunk Scope. This field specifies how “global” the contents of the chunk are. A higher number implies a more local scope. For example, this field might contain a “0” if the chunk is the global version, a “4” if the chunk is intended for an entire MSO, an “8” if the chunk has been localized for a particular cable system, and a “10” if the chunk has been localized for a particular headend. It is preferred that the scope is set by the distribution equipment, so that the VRN client does not receive multiple versions of the same chunk with the same scope.
Chunk Version. This number should be changed whenever a change is made to any of the data within the chunk. When the client detects a changed chunk version, it should discard the previous version and replace it with the new one. Note that a chunk can be revised without causing any other chunks in the VRN application to be modified or recollected.
Chunk Activation Time and Deactivation Time. Multiple variations of the same chunk with the same chunk number, scope and version may be available as long as they do not have overlapping activation and deactivation time. In some embodiments, the distribution equipment does not traffic any chunks that are not currently active.
The VRN client uses different types of resources to render the user interface for a VRN application. Objects for such resources may be instantiated by the VRN application, and the accessibility of such objects may be defined within chunks. For example, resource objects may include:
Strings (which may include multi-lingual translations)
Graphics, such as GIFs and MDEs (which may also be available in multi-lingual versions).
Software Filters (a software filter string which is to be passed to and evaluated by the VRN client, such as an IPG.) A software filter is an expression that includes one or more conditions which can be checked by the local VRN client, and which evaluates to true or false. The software filter is used to allow portions of the VRN definition to be conditional based on local conditions.
VRN Client Action, such as Guide Action (maps to the program guide's custom menu button)
Database Lookup (returns data from an interactive television application database such as a guide database).
User Input (allows collection of numeric strings, passwords, and multi-choice selections)
Resource objects may be either local or global. Local resources may be only accessible within the chunk in which they are defined. Global resources may be accessed from any chunk in the VRN application.
Each resource object has an Object ID. Local resource objects may have Object IDs less than 32768. Within each chunk, the local Object IDs will start at 1 and be assigned sequentially. Global Object IDs may be in the range, for example, 32768-65535. They must be unique across all chunks in the application, and do not need to be sequential.
In some embodiments, chunks may contain two object directories. The first is a directory of all local objects defined/used in the chunk. The second is a directory of all global objects defined in the chunk. Each directory entry defines the offset within the chunk at which to find the detailed definition of the object.
When a VRN screen makes a reference to a local object, the client will only look in the same chunk in which the page itself is defined. When a VRN screen makes a reference to a global object, a search through all current chunks for the VRN application must be performed. This search must give preference to the more local chunks. For example, if an VRN screen in chunk 1 refers to object number 0x8002, and there is a definition for object 0x8002 in both chunk 1 and chunk 4, the chunk scope of each must be checked. If the chunk scope of chunk 4 is higher (more local), its definition of the object will be given preference.
As indicated in
The “flags” field is used to prompt the VRN client to check at a predetermined interval for changes to the object, such as parental control. The next field provides the number of variations defined for the present object. All subsequent fields are repeated for each defined variation. The conditions under which each variation is to be used are defined by its software filter. If no software filter is specified, a null software filter is used. Software filters allow customization of data based on language, terminal characteristics, DVR and VOD functionality, third party applications, and the like.
The following field referred to as “enable” enables display and selection functionality. For example, a value 0x01 enables the display of the object variation and 0x02 enables the selection of the object variation, whereas a value of 0x00 causes an object variation (such as a menu option) not to be displayed or selectable. Other values can, for example, mask a video window and to allow its selection. In the next field, the audio PID can be selected when this variation of the object is highlighted. If this field is 0x000000, the audio will be disabled while this object is highlighted. If this field is 0xffffff, the default audio PID will be selected when this object is selected.
The next six active fields define values for display options and modalities relating to text. The text length and the text to be displayed as part of the object variation are specified, as well as the number of objects with instant info text to be displayed. The instant info text is associated with the object ID of each object to be modified. Instant info text is text that is displayed as part of another object on the VRN page when this object is highlighted by the user.
The value in the next field is used to skip over, without parsing, any supplemental data for this object variation that is not supported by the version of the VRN client.
The following field “flags” is used to set parental controls (“1”), black out (“2”), and tier (“4”) of programs and is followed by the Lock-Out/Blackout Definitions, which are shown in detail in
Referring now to
If parental controls are active (set to “1”), the field “lock source ID” locks the object variation based on the provided Source ID. The object variation will be locked if and only if a parental control PIN has been set, if locks have not been bypassed, if the Source ID is in the local channel map, and if either the Source ID is locked or the program currently scheduled to air on the service is locked by title or rating. In some embodiments, the lock criteria may be specified by the object variation's software filter, rather than by Source ID. In that case, the VRN client may reevaluate the filter regularly, for example, at least once per minute, while the page is displayed to ensure that the parental control criteria are up-to-date.
If blackout controls are active (set to “2”), the first four fields relating to blackout data define the number of bytes of blackout data for this variation; number of source IDs that, if present in the local map, will cause this object variation to be blacked out; specify the number of MCA (Multi-Cast Address) values that are to be blacked out; and specify the number of controllers that are to be fully or partially blacked out. In some embodiments, the VRN client may dynamically check the blackout criteria regularly once the page has been displayed. The next three fields relating to blackout data specify the blackout source IDs, MCA values, and settop controller ID to which the blackout applies. For each Source ID, if the specified channel is in the channel lineup, the object variation will be blacked out. For each MCA (multicast address, e.g., geographical region), the object variation may be blacked out if the user equipment is part of the defined group. For each controller ID, the object variation may be blacked out if the user equipment is controlled by the specified controller. For each controller ID, there may also be a field that holds a count of channel maps and a field with a list of channel map IDs, in which case the blackout will be applied if the user equipment is controlled by the specified controller and has one of the specified channel maps. In some embodiments, the blackout criteria may be specified by the object variation's software filter, rather than by Source ID, MCA, controller ID and channel map ID.
The field “tier” refers to potentially required authorizations, but will not be described further. If tier checking is active, the tier value specifies which tier to check for. The tier value is value that uniquely identifies an authorization that may or may not be provided by the controller. If the tier is authorized, the object variation may be enabled, which if the tier is not authorized the object variation may be blocked or disabled. In some embodiments, the tier may be specified by the object variation's software filter, rather than by tier value.
The following two fields specify the number of bytes used to define all key actions and the number of key actions defined for this variation. For each key action, fields define the key code, the action type, and additional variable data for the action.
The key code in the following field conforms to the standard Motorola key code, with the only allowed values being 17 (OK), 22 (Lock), 51 (Info), 52 (Cursor Up), 53 (Cursor Down), (54 (Cursor Left), and 55 (Cursor Right). The action type defines the functionality to be performed when the specified key is pressed on the remote control while the object variation is highlighted. The button functions are defined by the action variable data, which will now be briefly described.
The action variable data define the details of the actions taken by the client in response to user selection of the object variation with the specified key, and the format of the action variable data depends on the specified action type. The field “Action Type” in
-
- 0=Home (IPG Main Menu)
- 1=Page Up
- 2=Page Down
- 3=Exit
- 4=Browse
- 5=Message Center
- 6=Favorites
- 7=Local View (weather)
- 8=Setup
- 9=Timers (Manual Recordings)
- 10=VOD Menu or Submenu
- 11=Listings
- 12=Menu
- 13=Third Party Application
- 14=Lock Setup (PIN configuration)
- 15=Lock Selection (Channels, Ratings, Programs, etc. to be locked)
- 16=Goto
- 17=Subtitles
- 18=Search Screen
- 19=Saved Searches
- 20=Key Press
- 21=Linear Program Action
- 22-99 are not defined, and are ignored by the VRN client
- 100-254 are reserved for IPG defined internal button types
- 255=Inactive
Exemplary defined action variable data fields for illustrative action types are:
- For “Listings ‘11’”: Listings_type 1=Grid, 2=ChanTime, 3=TimeChan, 4=Chan, 5=Title, 6=A-Z Search, 7=My Recordings, 8=My Schedule (Scheduled Recordings), 9=Series Priority List
- Screen_title Variable length title
- Search_filter Variable length filter string
- Source_ID List of Source IDs. If present, only displaying listings from those sources.
- Other fields specify highlight positions displaying current time and channel and first program in list not yet airing, preview channel, and the like.
- For “Goto ‘16’”: Goto_type 1=Source Id (tune) 2=Network Id (tune) 3=VOD Clip (play) 4=VOD Program (info) 5=VRN VOD Clip (play) 6=Addressable Clip (play) 7=Addressable VRN VOD Clip (play) 8=Addressable location within the current VRN VOD Clip 9=VOD submenu 10=VOD listing screen 0, 11-255: Ignored by the VRN client
The actions associated with “Listings ‘11’” further include an action field with a search filter that defines the channel and program event filtering used to select the listing information to be displayed. It specifies specific combination of attributes as described in the following Table 11:
The search filter string specifies which combinations of program and channel attributes should be selected for inclusion on the resulting IPG listing screen. A record will be listed only if it matches one or more combination specifications. Attributes (the meanings of the bits in the Attributes field and the last 32 bits in the Search Filters) are under complete control of the back office, i.e. the VRN client has no knowledge of what the bits mean. I.e., the VRN client only cares if the bits in the Attributes field do or don't match characters in the Search Filter.
In some embodiments, a VRN application may be defined in one or more XML documents. These XML documents may be transmitted to the VRN client, or they may be compiled into chunk data as described above, and the chunk data may be transmitted to the VRN client. In some embodiments, the VRN application may be defined in a software application that generates the chunk data directly, without requiring the generation of an intermediate XML format. A schema for an XML document that defines a VRN application can be defined in RELAX NG, which is a simple schema language for XML and specifies a pattern for the structure and content of an XML document. A RELAX NG schema may itself be an XML document. The details of the Relax NG schema are described at the following web site: http://www.relaxng.org.
A Relax NG schema for a VRN application is described in detail in Appendix H of the US provisional patent application Ser. No. 60/667,200, the entire contents of which are incorporated herein by reference.
The required fields to be supplied as chunk data for the XML document include, inter alia, channel references, attribute activation/deactivation, text string definitions, definitions of graphic objects to be displayed, user input (e.g., password), software filters, definition of menu buttons, and VRN page definitions. Software filters for a VRN application are described in detail in Appendix E of the U.S. provisional patent application Ser. No. 60/667,200, the entire contents of which are incorporated herein by reference.
Returning to
In one embodiment, the VRN screen data may be interpreted at the client by a chunk grammar file defining the format of a VRN chunk using, for example, a RELAX NG schema described above. The chunk grammar file can also be compiled into a binary file in compiler 20 and sent to the user equipment 30. The chunk grammar file does not contain chunk data, but enables the transmitted chunk data to be properly interpreted. An illustrative chunk grammar file for interpreting the chunk data depicted in
The template definition file 2020 provides the details of the template definitions. In some embodiments, the file naming standard is VRN 1 Template nnn.xml. This template designation was used above in the description of the 7 exemplary templates. If the file specifies a single template, “nnn” is the ID of that template. If the file specifies the set of available templates, the “nnn” is omitted. There are two purposes for this file:
Allow the VRN chunk data to be validated.
Provide information for the user interface to ensure that the correct data is entered for the selected template.
In some embodiments, these files may be manually generated. Appendix J of the provisional application Ser. No. 60/667,200 describes an illustrative grammar used to define the format of this file. Appendix K of the provisional application Ser. No. 60/667,200 provides an example of an illustrative template file.
The environment definition file 2030 provides definitions of specific channels, networks, VOD clips, VOD subcategories, and other assets, that may be referenced by name within the VRN data. This allows the operator of VRN screen data source 14 (
In some embodiments these files may be manually generated. In some embodiments, these files may be entirely or partly generated automatically. For example, the definitions of the names and source ID numbers of available channels may be generated automatically from a system that manages channel lineups for cable systems, and the definitions of the names of available VOD clips and their provider IDs and asset IDs may be generated automatically from a VOD server. Appendix L of the provisional application Ser. No. 60/667,200 describes the format of this file. Appendix M of the provisional application Ser. No. 60/667,200 provides an example of an illustrative environment definition file.
The VRN Chunk Definition File 2040 provides the exact definition of a specific version of a specific chunk of VRN data in an XML format. User interface 18 (
VRN chunk data files 2050 may be created by compiler 20 in the published binary format for VRN data. One file is created for each data chunk. The naming format is the same as for the XML chunk definition files, except that the file extension is “.dat”. An exemplary chunk data file is illustrated in
In one exemplary embodiment, the VRN application 2010 depicted in
-
- Manage the template definition files 2020
- Allow a template definition file 2020 to be loaded
- Manage the environment definition files 2030
- Allow an environment definition file 2030 to be loaded
- Manage the VRN chunk definition files 2040 for master and supplemental chunks and allow the VRN chunk definition files to be loaded and updated
- Create and edit chunk data 2050 for the chunk definition files
- Output the binary chunk data files 2050 depicted in
FIGS. 18 and 19 - Manage the relationship between master chunks and supplemental chunks, as described in Section IV
- Manage the versioning of chunks
- Automatically calculate fields in the binary chunk data such as message length, text length, text compression, object offsets, pad bytes, and checksums; enforce chunk size limitations
- Present the data input fields on user interface 18 in organized input forms
- Include drop-down lists where appropriate to facilitate entry of fields with pre-defined values
- Support a mode in which non-standard values can be entered for these fields for testing purposes
- Allow fields and values only as appropriate based on the selected template, the chunk type, and other entered field values
- Allow the entry of elements with variable numbers of members (e.g., multiple objects per chunk, multiple variations per object, multiple instant info definitions per object)
- Provide guidance (and limitation) for the entry of software filters and menu actions
At step 2320, the VRN client receives VRN screen data. The VRN screen data define the look and feel of the VRN screen that is to be generated by the client. The VRN screen data define, for example, the source of the video feed, and defines the positions of the selectable video elements, the positions of the other elements of the VRN screen (e.g., the menu options), and identifies the actual non-video assets of the VRN screen (e.g., the background of the screen that surrounds the video assets and menu options, and the menu options themselves). In some embodiments, templates (e.g., defining the wireframe of
At step 2330, the VRN client retrieves non-video assets (e.g., the menu options and background) from memory (e.g., within the control circuitry 32 of user equipment 30 of
The VRN screen data may also define video assets as selectable thereby providing VRN video buttons as described herein. At step 2350, the VRN client displays the generated VRN screen on the user's equipment (e.g., on display device 34 of
At step 2450, the VRN elements of the second (and/or additional) channel are displayed (
Thus, an interactive media guidance application with video-rich navigation (VRN) is provided. Video content may be displayed on a VRN screen which may include traditional and interactive video buttons. One skilled in the art will appreciate that the present invention can be practiced by other than the described embodiments, which are presented for purposes of illustration and not of limitation, and the present invention is limited only by the claims which follow.
Claims
1-29. (canceled)
30. A method for providing a video-rich navigation interface, comprising:
- receiving, with a client, a video feed comprising video data for a plurality of video assets and screen data associated with the video feed;
- receiving, with the client, a template defining a layout for a first interactive display, wherein the template includes placeholders, instead of videos of the plurality of video assets from the received video feed, for video content;
- populating the template by resolving the placeholders with the videos of the plurality of video assets from the received video feed, wherein the placeholders are resolved based on the screen data; and
- generating for display the first interactive display, wherein the first interactive display is defined by the template and populated with the videos of the plurality of video assets from the received video feed.
31. The method of claim 30, wherein the placeholders are for visual elements of the first interactive display, and each video asset in the first interactive display is located in a position in the first interactive display that corresponds to one of the placeholders.
32. The method of claim 30, wherein the placeholders in the template are resolved with selectable and non-selectable items based on the screen data.
33. The method of claim 30, wherein the screen data includes asset identifiers, and populating the template comprises retrieving visual elements corresponding to the asset identifiers.
34. The method of claim 30, wherein the template is associated with a template identifier, and receiving the template comprises retrieving the template from memory using the template identifier.
35. The method of claim 34, wherein the template identifier is specified in the screen data associated with the video feed.
36. The method of claim 30, wherein receiving the template comprises one of receiving the template in a video-rich navigation data feed, downloading the template from a distribution facility, accessing a template embedded as part of a video-rich navigation client, receiving the template in a feed of interactive program guide data, and retrieving the template from local memory at the client.
37. The method of claim 30, wherein the template defines a home page interactive display.
38. The method of claim 37, wherein the home page is a default display generated when video-rich navigation is initiated.
39. The method of claim 30, further comprising:
- receiving a user selection of a displayed element in the first interactive display; and
- generating for display a second interactive display based on the user selection.
40. The method of claim 39, wherein the second interactive display is generated from a second template.
41. The method of claim 40, wherein the second template is associated with a second template identifier, and the screen data relates the second template identifier with the selected displayed element in the first interactive display.
42. The method of claim 30, wherein generating for display the first interactive display comprises generating for display a highlight on a default selectable element in the first interactive display, wherein the default selectable element is defined by the template.
43. The method of claim 30, wherein the template defines at least one of a location, appearance, size, shape, or navigation behavior for an element in the first interactive display.
44. A system for providing a video-rich navigation interface, the system comprising control circuitry configured to:
- receive a video feed comprising video data for a plurality of video assets and screen data associated with the video feed;
- receive a template defining a layout for a first interactive display, wherein the template includes placeholders, instead of videos of the plurality of video assets from the received video feed, for video content;
- populate the template by resolving the placeholders with the videos of the plurality of video assets from the received video feed, wherein the placeholders are resolved based on the screen data; and
- generate for display the first interactive display, wherein the first interactive display is defined by the template and populated with the videos of the plurality of video assets from the received video feed.
45. The system of claim 44, wherein the placeholders are for visual elements of the first interactive display, and each video asset in the first interactive display is located in a position in the first interactive display that corresponds to one of the placeholders.
46. The system of claim 44, wherein the placeholders in the template are resolved with selectable and non-selectable items based on the screen data.
47. The system of claim 44, wherein the screen data includes asset identifiers, and populating the template comprises retrieving visual elements corresponding to the asset identifiers.
48. The system of claim 44, wherein the template is associated with a template identifier, and receiving the template comprises retrieving the template from memory using the template identifier.
49. The system of claim 48, wherein the template identifier is specified in the screen data associated with the video feed.
50. The system of claim 44, wherein receiving the template comprises one of receiving the template in a video-rich navigation data feed, downloading the template from a distribution facility, accessing a template embedded as part of a video-rich navigation client, receiving the template in a feed of interactive program guide data, and retrieving the template from local memory at the client.
51. The system of claim 44, wherein the template defines a home page interactive display.
52. The system of claim 51, wherein the home page is a default display generated when video-rich navigation is initiated.
53. The system of claim 44, wherein the control circuitry is further configured to:
- receive a user selection of a displayed element in the first interactive display; and
- generate for display a second interactive display based on the user selection.
54. The system of claim 53, wherein the second interactive display is generated from a second template.
55. The system of claim 54, wherein the second template is associated with a second template identifier, and the screen data relates the second template identifier with the selected displayed element in the first interactive display.
56. The system of claim 44, wherein generating for display the first interactive display comprises generating for display a highlight on a default selectable element in the first interactive display, wherein the default selectable element is defined by the template.
57. The system of claim 44, wherein the template defines at least one of a location, appearance, size, shape, or navigation behavior for an element in the first interactive display.
Type: Application
Filed: Apr 30, 2014
Publication Date: Aug 28, 2014
Applicant: ROVI GUIDES, INC. (Santa Clara, CA)
Inventors: Gerard Kunkel (Yardley, PA), Michael D. Ellis (Boulder, CO), Robert A. Knee (Lansdale, PA), Jon P. Radloff (Castle Rock, CO)
Application Number: 14/266,054
International Classification: H04N 21/482 (20060101);