The present application claims the benefit of priority based on UK Patent Application GB 0511774.2 of NDS Limited, filed 9 Jun. 2005, and titled, “EXTENDED SERVICE INFORMATION 2 (XSI-2)”. The disclosure of UK Patent Application GB 0511774.2 is incorporated herein by reference.
The present invention, in preferred embodiments thereof, relates to electronic program guides (EPG), and more particularly, systems for optimizing EPG data and the transmission thereof.
PATRICIA is an algorithm which provides a flexible means of storing, indexing, and retrieving information in a large file, which is economical of index space and of reindexing time. It does not require rearrangement of text or index as new material is added. It requires a minimum restriction of format of text and of keys; it is extremely flexible in the variety of keys it will respond to. It retrieves information in response to keys furnished by the user with a quantity of computation which has a bound which depends linearly on the length of keys and the number of their proper occurrences and is otherwise independent of the size of the library. It has been implemented in several variations as FORTRAN programs for the CDC-3600, utilizing disk file storage of text. It has been applied to several large information-retrieval problems and will be applied to others. PATRICIA is described in PATRICIA—Practical Algorithm To Retrieve Information Coded in Alphanumeric, Donald R. Morrison, JACM Vol. 15, Issue 4 (October 1968), pages 514-534.
Patricia Trees are also discussed at length in The Art of Computer Programming, vol. 3, Donald E. Knuth, Addison-Wesley Publishing Company, Inc., 1973, on pages 490-504, and 681-687.
U.S. Pat. No. 6,763,522 to Kondo et al. describes a system and method for providing an electronic program guide for broadcasted digital television wherein the electronic program guide displays only currently broadcasting minor channels, and timely event and contextual information. The system of the present invention includes program code in a memory for causing a tuner/de-multiplexor subsystem to tune to a preselected major channel broadcast frequency and to provide thereby at least one transport stream comprising a plurality of associated digital data elementary streams. The elementary streams include minor channel audio and video, as well as program and system information tables (PSIT), all of which are associated by packet identifiers to provide a table hierarchy. The system of the present invention compares presently broadcasting minor channel and PSIT information with corresponding information in memory. If the presently broadcasting information is more contemporaneous than the stored information, the stored information is updated, or replaced, with the presently broadcasting information to enable display of only actively broadcasting minor channels and up-to-the-minute event and contextual information.
U.S. patent application Ser. No. 10/084,106 of Unger, published as US 2002/0194613, describes a method and apparatus for reconstituting packetized data streams representing a television program when the program uses multiple packet identifiers (PID) as in selective encryption schemes. Transmission of multiple sets of system information (SI) is avoided by incorporating a lookup table within a private data packet. A dual buffer arrangement in the set-top box provides ease of reconstitution of a data stream by generation of an interrupt upon receipt of a packet with a shadow PID. The buffers are toggled as a result of the interrupt and a corresponding packet can be found either at the beginning of the newly active buffer or the end of the inactive buffer. The stream of packets representing a program can then be reconstituted by creation of a new packet having the primary PID and shadow packet's payload.
U.S. patent application Ser. No. 11/196,086 of Domegan et al., published as US 2005/0283799, describes a system for localizing an EPG program schedule, including an EPG service provider station including a database of channels and corresponding EPG program schedule information, a database manager identifying a plurality of channel line-ups potentially receivable at a viewing location, a transmitter, and a receiver, a multimedia viewer situated at the viewing location including an automatic channel line-up identifier identifying a first line-up of television channels receivable at the viewing location, a channel line-up processor at the viewing location calculating a channel line-up from among the plurality of channel line-ups that substantially matches the first line-up, a receiver receiving from the EPG service provider station the plurality of channel line-ups, and a transmitter transmitting to the EPG service provider station the identifier of the channel line-up calculated by the channel line-up processor, and a network connection linking the multimedia viewer to the EPG service provider, wherein the EPG service provider station transmitter transmits to the multimedia viewer the plurality of channel line-ups and also transmits to the multimedia viewer EPG program schedule information localized to the viewing location and based on the identifier of the channel line-up calculated by the channel line-up processor, and wherein the EPG service provider station receiver receives from the multimedia viewer the identifier of the calculated channel line-up, and wherein the multimedia viewer receiver also receives from the EPG service provider station the EPG program schedule information.
PCT application PCT/US02/24940 of Diego Inc., published in the English language as WO 03/015394, describes a method whereby localized content and corresponding applications can be provided to thin-client interactive television terminals. Localization may be performed on general data feeds by applying, at a portal that receives the data feeds, localization parameters specified in a plurality of channel configuration records. The local content is then provided to their corresponding head-ends. From the head-ends, the local content and its application are carousel broadcasted to thin-client terminals via different data pipes. A viewer can tune to a synthetic channel having the local content and application via familiar television metaphors, such as from a remote control or from an electronic program guide. The viewer's interaction with the local content can be limited to a walled garden.
PCT application PCT/US00/05188 of Index Systems, Inc., published in the English language as WO 00/52928, describes a system and method for providing merged electronic program guides with redundant listings removed. The television system receives EPG data of television programs broadcast by a plurality of program signal sources. Such signal sources may include OTA broadcast, cable, satellite, and the like. Either the television system or a merging system separate from the television system receives EPG data including program scheduling information of television programs telecast from the various signal sources. The system further receives channel mapping information for each of the signal sources. The channel mapping information relates television channels to television stations carried by the signal sources. The system creates a merged channel map based on the channel mapping information with any duplicate television station listings removed. Each television channel is associated with a unique channel identifier. Duplicate television station listings are therefore identified by identifying duplicate channel identifiers. Duplicate television station listings may be eliminated based on a priority associated with the various signal sources, or based on the signal quality of the various sources.
PCT application PCT/IL02/00190 of NDS Ltd., published in the English language as WO 02/075596 on 26 Sep. 2002, and corresponding U.S. patent application Ser. No. 10/469,487 of Sterkin et al., published on 29 Jul. 2004 as US 2004/0148637, describes a method for accessing at least one literal data item in a hierarchical structure, the method including receiving a request to access at least one literal data item, and accessing the at least one literal data item, at least in part, by choosing and using an access method chosen from the following group: local storage access, back channel access, and data carousel access. The disclosure of WO 02/075596 and corresponding US 2004/0148637 are hereby incorporated herein by reference.
Published European patent application EP 0912054 of General Instruments Corp. describes an Interactive Program Guide (IPG) data for television is delivered to integrated receiver-decoders (IRDs) in a decoder population via, for example, a satellite network. The IPG data provides scheduling information for global and local programming services which are carried via the satellite network as well as another network such as a CATV network or a terrestrial broadcast network. Each IRD is assigned to an IPG region using unit addressing. At the IRD, IPG data is filtered so that only the global data and the region-specific data for the IRD's IPG region is retained and processed by the IRD. Channel map data is also delivered to the IRDs so that bundles of IRD data can be filtered out using firmware filtering to discard program sources that are not present in the channel map. The IRD data which is retained after filtering is used to provide scheduling information via an on-screen display. A preferred source may be designated when there are duplicative channels on the different networks.
Standards that are relevant to understanding the state of the art include the following published standards:
ETS 300 468, Digital Video Broadcasting (DVB) Specification for Service Information (SI) in DVB Systems;
ETR 162, Digital Broadcasting Systems for Television, Sound and Data Services; Allocation of Service Information (SI) Codes for Digital Video Broadcasting (DVB) Systems;
ETR 211, Digital Video Broadcasting (DVB); Guidelines on Implementation and Usage of Service Information (SI).
ISO 639 is an international standard listing short codes for language names.
The disclosures of all references mentioned above and throughout the present specification, as well as the disclosures of all references mentioned in those references, are hereby incorporated herein by reference.
ETS 300 468, Digital Video Broadcasting (DVB) Specification for Service Information(SI) in DVB Systems specifies a way for a broadcast headend to provide data that will appear on a program guide of a personal video recorder (PVR) or set top box (STB). The terms PVR and STB, unless specifically noted, are used herein interchangeably. The terms PVR and STB are collectively and generically referred to herein as a “receiver” or “receivers”.
The data provided typically includes data about:
In order to improve efficiency and flexibility offered to a broadcaster in the way each STB builds a list of channels and services in its channel line up (for example, with the definition of new selection criteria attribute associated to each channel), and to support other broadcaster requirements which DVB SI did not support, Extended Service Information (XSI) was developed. XSI was originally developed as a proprietary extension of DVB SI by NDS Limited. XSI utilizes DVB SI and MPEG-2 private data descriptors, private data tables, and data carousels as a mechanism to deliver XSI data to STBs.
Since XSI was deployed, digital television platforms have grown beyond what XSI was originally designed for, new technology such as PVRs have been introduced, and the cost of program guide data storage in the STB has decreased, resulting in the need for a new service information system.
The present invention seeks to provide an improved method and system for sorting data strings for more efficient delivery to electronic program guides.
There is thus provided in accordance with a preferred embodiment of the present invention a method of optimizing strings included in program guide data for transmission, the method including sharing, in the program guide data, a plurality of strings, each string among the plurality of strings including a shared sorting key, implementing an order access of a sorted sharing index, wherein the program guide data and the shared sorting key are included in the same data storage structure.
Further in accordance with a preferred embodiment of the present invention the sorted sharing index includes a Patricia tree sort index.
There is also provided in accordance with another preferred embodiment of the present invention a method of optimizing program guide data for transmission, the method including providing, at a broadcast headend, a list of services and the program guide data, the program guide data including a list of events to be broadcast on services corresponding to service identifiers included within the list of services, associating the services with channels, further associating the channels into channel groups, selecting a field included in program guide data associated with each event, sorting the list of events to be broadcast on the services according to the selected field, grouping the sorted list of events, such that all identical instances the field are grouped together, collapsing the grouped sorted list of events such that one of the following includes a main event and every other instance, of the event includes a collapsed event one instance of the event next to be broadcast on at least one service associated with the channel group, and one instance of the event presently being broadcast on at least one service associated with the channel group, thereby producing optimized program guide data.
Further in accordance with a preferred embodiment of the present invention and also including transmitting the optimized program guide data.
Still further in accordance with a preferred embodiment of the present invention the transmitting includes broadcasting the optimized program guide data.
Additionally in accordance with a preferred embodiment of the present invention the selected field includes a title string associated with the event.
Moreover in accordance with a preferred embodiment of the present invention the sorting the list of events includes a Patricia tree sort according to the selected field.
There is also provided in accordance with still another preferred embodiment of the present invention a method of displaying data in a program guide, the method including receiving a list of events to be displayed in the program guide, the list including collapsed, sorted, and grouped event data, selecting, for each collapsed, sorted, and grouped event, a main event and at least one associated collapsed event, displaying the main event in a sorted list of events, and displaying the collapsed events upon selection of the main event from the sorted list of events.
Further in accordance with a preferred embodiment of the present invention the sorted list includes an A-Z sorted list.
There is also provided in accordance with still another preferred embodiment of the present invention a method of optimizing program guide data associated with a plurality of broadcast events for display on an electronic program guide (EPG), the method including associating a data field with a broadcast event selected from among the plurality of broadcast events, the data field including at least the following fields a language data field, a title data field, a channelgroup data field, a broadcast time data field, a channel data field, and a service data field, ordering the program guide data associated with the broadcast event according to the data field associated with the broadcast event in the following order Language, Title, ChannelGroup, Channel, and Service, thereby producing ordered program guide data associated with the broadcast event, assigning the broadcast event a LastInChannelFlag (LICF) flag and a LastInChannelGroupFlag (LICGF) flag, and determining at least one main event from among the plurality of broadcast events, wherein the at least one main event includes an event within the ordered list of program guide data associated with the broadcast event including an identical Title field within a ChannelGroup within a first Channel included in the ChannelGroup.
Further in accordance with a preferred embodiment of the present invention a collapsed event includes all events within the ordered program guide data associated with the broadcast event which includes the channelgroup, and wherein each channelgroup is terminated by the LICF set to 1, until the LICGF is set to 1.
Still further in accordance with a preferred embodiment of the present invention the Language data field includes an ISO 639 language identifier.
Additionally in accordance with a preferred embodiment of the present invention the Title data field includes a broadcast event title.
Moreover in accordance with a preferred embodiment of the present invention the ChannelGroup data field includes a channel group identifier, the channel group identifier identifying the channelgroup to which a service broadcasting the event is assigned.
Further in accordance with a preferred embodiment of the present invention the Time data field includes a broadcast time for the broadcast event, the broadcast time including the time at which the broadcast event is scheduled to be broadcast, on the service broadcasting the broadcast event.
Still further in accordance with a preferred embodiment of the present invention the Channel data field includes a channel identifier within the channelgroup including the service broadcasting the event.
Additionally in accordance with a preferred embodiment of the present invention the Service data field includes a DVB service identifier.
Moreover in accordance with a preferred embodiment of the present invention the LastInChannelFlag flag is set to 1 if the ChannelGroup data field, Time data field, or Channel data field differs from a corresponding ChannelGroup data field, Time data field, or Channel data field in a preceding event within the ordered program guide data list, thereby denoting an end of a channel selection group, and is set to 0 if one of the ChannelGroup data field, Time data field, and Channel data field do not differ from a corresponding ChannelGroup data field, Time data field, or Channel data field in the next event within the ordered program guide data list.
Further in accordance with a preferred embodiment of the present invention the LICGF is set to 1 for any event including a last event for a given Title data field within the channelgroup, and set to 0 for any event not including a last event for a given Title data field within the channelgroup.
There is also provided in accordance with still another preferred embodiment of the present invention a system of optimizing strings included in program guide data for transmission, the system including a string sharer operative to share, in the program guide data, a plurality of strings, the plurality of strings including a shared sorting key, a sorter operative to implement an order access of a sorted sharing index, wherein the program guide data and the shared sorting key are included in the same data storage structure.
There is also provided in accordance with still another preferred embodiment of the present invention a system for optimizing program guide data for transmission, the system including at a broadcast headend, a list of services and program guide data, the program guide data including a list of events to be broadcast on the services, a channel association unit which associates services with channels, a channel group association unit which further associates the channels into channel groups, a field selector which selects a field included in data associated with each event, a list sorter which sorts the list of events according to the selected field, a grouping unit which groups the sorted list of events such that all instances of an event which include an identical instance of the field are grouped together, a collapsing unit which collapses the grouped sorted list of events such that one of the following instances of the event includes a main event and every other instance of the event within the list includes a collapsed event one instance of the event next to be broadcast on at least one service associated with the channelgroup, and one instance of the event presently being broadcast on at least one service associated with the channelgroup, thereby producing optimized program guide data.
There is also provided in accordance with still another preferred embodiment of the present invention a system of displaying data in a program guide, the system including an event list receiver which receives a list of events to be displayed in the program guide, the list including collapsed, sorted, and grouped event data, a selector which selects, for each collapsed, sorted, and grouped event, a main event and at least one associated collapsed event, a displaying unit which displays the main event in a sorted list of events, and displays the at least one collapsed event upon selection of the main event from the sorted list of events.
There is also provided in accordance with still another preferred embodiment of the present invention a system for optimizing program guide data associated with events for display on an electronic program guide (EPG), the system including a data field associator which associates data fields with a broadcast event from among a plurality of broadcast events, the data field including at least t e following fields a language data field, a title data field, a channelgroup data field, a broadcast time data field, a channel data field, and a service data field, a program guide data orderer which orders program guide data associated with the broadcast event according to the data associated with the broadcast event in the following order Language, Title, ChannelGroup, Channel, and Service, thereby producing ordered program guide data associated with the broadcast event, a broadcast event assignor which assigns the broadcast event a LastInChannelFlag (LICF) flag and a LastInChannelGroupFlag (LICGF) flag, and a determiner which determines at least a main event from among the plurality of broadcast events, wherein the main event includes an event within the ordered program guide data associated with the broadcast event, the program guide data associated with the broadcast event including an identical Title field within a ChannelGroup within a first Channel included in the ChannelGroup.
The present invention will be understood and appreciated more fully from the following detailed description, taken in conjunction with the drawings in which:
Reference is now made to
For purposes of the discussion of
Typically, EPGs enable viewing program listings in a number of ways besides the grid depicted in
A set top box (STB) or personal video recorder (PVR), hereinafter, referred to as a “receiver”, which preferably receives and caches data for display in the EPG of
In certain broadcast environments, such as, for example, a broadcast environment implementing XSI-2 (an extended SI system commercially available from NDS Ltd.) a full seven days of data is already cached in the receiver. Furthermore, in the XSI-2 broadcast environment, title string sharing is implemented, such that two programs appearing as distinct programs in the EPG preferably “share” their title string, as described below, in data available to the receiver. For example and without limiting the generality of the foregoing, in the EPG depicted in
In a preferred embodiment of the present invention, title strings and other strings are separated into separate data repositories. The title string sharing key is defined as an uncompressed sort string. For example and without limiting the generality of the foregoing, for the program item “EMERGENCY”, the title string sharing key is “EMERGENCY”. If need be, the entire title is used to distinguish between two title strings, for instance, if the following two title strings exist in EPG data: “Emergency—Episode 8” and “Emergency—Episode 9”, the entire title is needed to distinguish between the two title strings.
In a preferred embodiment of the present invention, a pointer is provided in the EPG data from a shared title string, the pointer pointing to a list of programs sharing the title string. For example, if the two episodes of Emergency on Channel 1+1 at 19:30 and at 20:00 are two different episodes, only one title string, “Emergency” preferably appears in the EPG data. The one title string preferably comprises a pointer, such that when a viewer selects one of the two episodes of “Emergency”, the EPG preferably retrieves the list of programs sharing the title string “Emergency”, and, based on the time of the episode selected by the viewer, the EPG is able to select, from the list which is pointed to, information about the episode selected by the viewer.
Reference is now made to
Any two children of a given node start with the same sequence of N bits. For instance, in the PATRICIA tree of
Dotted lines in the PATRICIA tree are terminal pointers which point back to an actual node which can be considered a leaf (terminal node). Pointing to leaves alleviates the need to store a given string twice, once in a node and once in a leaf.
Pointers, both terminal and non-terminal, are depicted in
Reference is now additionally made to
Likewise, the middle portion of
Similarly, the bottom of
Reference is now made to
Reference is now additionally made to
A more complex example comprising both time shifted channels and regional channels is presented for a “Channel 3” channel group. The “Channel 3” channel group comprises a “Channel 3 Live” channel and a “Channel 3+1” time shifted channel group”. Each of the “Channel 3 Live” channel and a “Channel 3+1” time shifted channel group each comprise three regional services.
It is appreciated that the examples given in
As mentioned above, it is preferable to enable A-Z listing of programs in the EPG, as mentioned above. Preferably, EPG A-Z listing supports:
EPGs operative in accordance with preferred embodiments of the present invention preferably display two types of events:
Main events preferably show an event which is the showing of the event which starts next, or is present on the air for a given channel group.
Services associated with the same Channel preferably share a unique logical channel number (the logical channel number of the Channel) used in a DVB SI bouquet. Those skilled in the art will appreciate that, preferably, the unique logical channel number is used across multiple bouquets. Thus, as explained above, a channel preferably identifies a combination of regional services comprising both live and time-shifted services.
Services grouped within a channel preferably identify a “collapsing down” of the schedule of the services, such that when a title is shared on multiple services for the same broadcast time (as, for example, “1001 CULTURES” in
It is appreciated that grouping services into channels enables collapsing the schedule down within a given time period. Grouping channels into ChannelGroups enables “collapsing along” a schedule, enabling future broadcasts of the same title to be collapsed, for instance programming on time shifted services.
A service need not be assigned to a channel or channel group. In such a case an arbitrary ChannelGroup number may preferably be assigned to the service based on a Service identifier. For example and without limiting the generality of the foregoing, a service may be assigned an arbitrarily high ChannelGroup number.
One preferred method of ordering an A-Z sort of events within a broadcast stream comprises ordering event data according to the following fields in the following order:
Language, Title, ChannelGroup, Time, Channel, Service where:
Once event data is ordered as described above, main and collapsed events are preferably determined from within the Channel and the ChannelGroup groupings, where the determination is preferably signaled by a LastInChannelFlag (LICF) and LastInChannelGroupFlag (LICGF). The signaling preferably comprises the order:
Language, Title, ChannelGroup, Time, Channel, Service, LastInChannelFlag, LastInChannelGroupFlag
After the event data is ordered in an ordered list, each event is examined to determine a value of the LastInChannelFlag.
The LastInChannelFlag is set to 1 if the ChannelGroup, Time, or Channel differs between the event presently being evaluated and the ChannelGroup, Time, or Channel in the next event within the ordered event data list. If the ChannelGroup, Time, or Channel does not differ from the corresponding ChannelGroup, Time, or Channel in the next event within the ordered event data list, LastInChannelFlag is set to 0.
When the LastInChannelFlag is set to 1, the LastInChannelFlag signals an end of a “channel selection group”. The channel selection group comprises consecutive A-Z ordered entries wherein LastInChannelFlag is set to 0, up to, and including the next entry with LastInChannelFlag set to 1.
The LastInChannelGroupFlag is set to 1 for any event comprising the last event for a given Title string within a ChannelGroup. Otherwise, LastInChannelGroupFlag is set to 0.
For example and without limiting the generality of the foregoing, using the following ChannelGroups, Channels, and Service identifiers (and ignoring the Language field), and the schedule depicted in
and thus, the ordered event list comprises:
Main events comprise those events comprised within the ordered event list comprising the same Title within a ChannelGroup within a first Channel comprised in the ChannelGroup.
Collapsed events comprise events within subsequent channel grouping, wherein each channel grouping is terminated by LICF set to 1, until the LICGF is set to 1. For instance, in the table above, “101 Dalmatians” comprises one main event and one collapsed event.
The EPG selects the event for display from each channel grouping as being the event comprising the lowest logical channel number used in the DVB SI bouquet.
Reference is now made to
It is appreciated that software components of the present invention may, if desired, be implemented in ROM (read only memory) form. The software components may, generally, be implemented in hardware, if desired, using conventional techniques.
It is appreciated that various features of the invention which are, for clarity, described in the contexts of separate embodiments may also be provided in combination in a single embodiment. Conversely, various features of the invention which are, for brevity, described in the context of a single embodiment may also be provided separately or in any suitable subcombination.
It will be appreciated by persons skilled in the art that the present invention is not limited by what has been particularly shown and described hereinabove. Rather the scope of the invention is defined only by the claims which follow:
Number | Date | Country | Kind |
---|---|---|---|
0511774.2 | Jun 2005 | GB | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/GB2006/002109 | 6/9/2006 | WO | 00 | 5/5/2008 |