US20100223644A1 - Program guide optimization system - Google Patents

Program guide optimization system Download PDF

Info

Publication number
US20100223644A1
US20100223644A1 US12/799,997 US79999710A US2010223644A1 US 20100223644 A1 US20100223644 A1 US 20100223644A1 US 79999710 A US79999710 A US 79999710A US 2010223644 A1 US2010223644 A1 US 2010223644A1
Authority
US
United States
Prior art keywords
channel
data
program guide
event
broadcast
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US12/799,997
Inventor
David White
Ian Bastable
Martin Gold
Anthony Platt
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Synamedia Ltd
Original Assignee
NDS Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NDS Ltd filed Critical NDS Ltd
Priority to US12/799,997 priority Critical patent/US20100223644A1/en
Publication of US20100223644A1 publication Critical patent/US20100223644A1/en
Priority to US12/928,844 priority patent/US20110126235A1/en
Assigned to CISCO TECHNOLOGY, INC. reassignment CISCO TECHNOLOGY, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: NDS LIMITED
Assigned to NDS LIMITED reassignment NDS LIMITED ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: BEAUMARIS NETWORKS LLC, CISCO SYSTEMS INTERNATIONAL S.A.R.L., CISCO TECHNOLOGY, INC., CISCO VIDEO TECHNOLOGIES FRANCE
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23109Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion by placing content in organized collections, e.g. EPG data repository
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26283Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for associating distribution time parameters to content, e.g. to generate electronic program guide data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/162Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing
    • H04N7/165Centralised control of user terminal ; Registering at central

Definitions

  • 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.
  • EPG electronic program guides
  • 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 abound 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.
  • 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.
  • PSIT program and system information tables
  • 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
  • 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
  • U.S. patent application Ser. No. 10/469,487 of Sterkin et al. published on 29 Jul. 2004 as US 2004/0148637
  • WO 02/075596 and corresponding 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.
  • IPG Interactive Program Guide
  • IRD integrated receiver-decoders
  • 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.
  • 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.
  • 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.
  • 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).
  • PVR personal video recorder
  • STB set top box
  • the terms PVR and STB are collectively and generically referred to herein as a “receiver” or “receivers”.
  • the data provided typically includes data about:
  • Extended Service Information 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.
  • the present invention seeks to provide an improved method and system for sorting data strings for more efficient delivery to electronic program guides.
  • a method of optimizing strings included in program guide data for transmission 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.
  • the sorted sharing index includes a Patricia tree sort index.
  • a method of optimizing program guide data for transmission 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.
  • the transmitting includes broadcasting the optimized program guide data.
  • the selected field includes a title string associated with the event.
  • the sorting the list of events includes a Patricia tree sort according to the selected field.
  • a method of displaying data in a program guide 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.
  • the sorted list includes an A-Z sorted list.
  • 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.
  • the Language data field includes an ISO 639 language identifier.
  • the Title data field includes a broadcast event title.
  • 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.
  • 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.
  • the Channel data field includes a channel identifier within the channelgroup including the service broadcasting the event.
  • the Service data field includes a DVB service identifier.
  • 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.
  • 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.
  • a system of optimizing strings included in program guide data for transmission 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.
  • a system for optimizing program guide data for transmission 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
  • a system of displaying data in a program guide 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.
  • a system for optimizing program guide data associated with events for display on an electronic program guide 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
  • a data field associator which associates data fields with a broadcast event from among
  • FIG. 1 is a simplified pictorial illustration of an Electronic Program Guide (EPG) displaying information about television programs during a period of time, the information optimized according to a preferred method of the present invention, and constructed and operative in accordance with a preferred embodiment of the present invention;
  • EPG Electronic Program Guide
  • FIG. 2 is a simplified pictorial illustration of a PATRICIA tree sort of selected television programs depicted in the EPG of FIG. 1 , as well as additional television programs;
  • FIG. 3 is a bit-wise listing of the title strings of some of the television programs in the PATRICIA tree of FIG. 2 ;
  • FIG. 4 is a simplified UML diagram showing the relationship between ChannelGroup, Channel, and Service, as implemented in presenting data in the EPG of FIG. 1 ;
  • FIG. 5 is a simplified block diagram showing the relationship between ChannelGroup, Channel, and Service, useful in illustrating the UML diagram of FIG. 4 ;
  • FIGS. 6-9 are simplified flowchart illustrations of preferred methods of operation of the system of FIG. 1 , in accordance with preferred embodiments thereof.
  • FIG. 1 is a simplified pictorial illustration of an Electronic Program Guide (EPG) displaying information about television programs during a period of time, the information optimized according to a preferred method of the present invention, and constructed and operative in accordance with a preferred embodiment of the present invention.
  • the EPG depicted in FIG. 1 comprises a grid with channels arranged descending along the vertical axis, and time progressing along the horizontal axis. Programs to be broadcast at a given time on a given channel are shown at the grid location comprising the intersection of the given time with the given channel.
  • the EPG depicted in FIG. 1 comprises program guide information for four channels, Channel 1, Channel 1+1, Channel 2 West, and Channel 2 South.
  • Channel 1+1 comprises a so called “time shifted” channel, wherein programming broadcasted on Channel 1 is broadcast with a time-delay on an auxiliary channel.
  • Channel 2 West and Channel 2 South comprise “regional channels”.
  • Programming on regional channels comprises shared programs and region specific programs. Shared programs are broadcast on both Channel 2 West and Channel 2 South, such as “100 Piece Drill Bit Set” (at 19:30) and “1001 Cultures” (at 20:00).
  • Region specific programs are programs broadcast with target audiences of particular regions, such as “West Scene”, broadcast only on Channel 2 West, and “Going South”, broadcast only on Channel 2 South. Both of the region specific programs are scheduled to be broadcast at the same time, 21:30.
  • EPGs enable viewing program listings in a number of ways besides the grid depicted in FIG. 1 .
  • some EPGs allow sorting program listings by genre (such as Movies, Sports, etc.) and sub-genre (such as Drama, Comedy, etc. for Movies, and Football, Golf, etc. for Sports).
  • Some EPGs allow viewing program listings sorted in an A-Z list of program listings, typically for up to the next seven days programming.
  • 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.
  • the title string “10 Tasks for Hercules” is a shared title string, shared by the program item appearing on the EPG on Channel 1 at 19:30 and the program item appearing on the EPG on Channel 1+1 at 20:30.
  • the title string of the program item, “100 Piece Drill Bit Set”, appearing on the EPG at 19:30 on both Channel 2 West and Channel 2 South is a shared title string.
  • the title string of the program item “Emergency”, appearing on Channel 1+1 at 19:30 and 20:00 is also a shared title string.
  • 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.
  • a pointer is provided in the EPG data from a shared title siring, 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.
  • FIG. 2 is a simplified pictorial illustration of a PATRICIA tree sort of selected television programs depicted in the EPG of FIG. 1 , as well as additional television programs.
  • the PATRICIA tree comprises a binary tree.
  • strings in the PATRICIA tree of FIG. 2 are represented in alpha-numeric characters and not in binary.
  • the PATRICIA tree also comprises Q nodes.
  • the time required for inserting, deleting, and searching the PATRICIA tree requires is proportional to log(Q). (See D. Knuth, The Art of Computer Programming , vol. 3, pp. 490-504, and 681-687.)
  • any two children of a given node start with the same sequence of N bits. For instance, in the PATRICIA tree of FIG. 2 , each string begins with the character “1”, thus, each string begins with the bit string “00110001”.
  • the actual location of each node in the PATRICIA tree of FIG. 2 depends on the method of insertion of the strings into the PATRICIA tree, as is well known in the art. (See The Art of Computer Programming , vol. 3, pp. 490-504, and 681-687, particularly Exercise 15 (p. 501), and the solution thereto (p. 63).)
  • 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 FIG. 2 with a bit-value indicator (either depicted as a ‘0’ or a ‘1’).
  • the bit-value indicator is understood as a “navigational” aide in comparing nodes. If a node differs from the next node by a ‘0’, follow the bit-value indicator for ‘0’. Similarly, if the node differs from the next node by a ‘1’, follow the bit-value indicator for ‘1’.
  • FIG. 3 is a bit-wise listing of the title strings of some of the television programs in the PATRICIA tree of FIG. 2 .
  • the PATRICIA tree comprises a binary tree. Any two children of a given node start with the same sequence of N bits, and thus, the two children of the given node differ at bit N.
  • each node of the PATRICIA tree represents a single bit comparison of the string comprised in the node.
  • Bit 15 is the first bit to differ between the two strings. Thus, in FIG. 2 , the number 15 appears beside the solid arrow descending from “112's TOP TEN BAD BOY ARTISTS” to “100 DEEDS FOR EDDIE McDOWD”.
  • FIG. 3 depicts a comparison between the first three characters of the string “100 DEEDS FOR EDDIE McDOWD” (“100”) expressed in binary the first three characters of the string “10” (“10 ⁇ EOS>”, where ⁇ EOS> indicates “end of string”, and is represented by the binary string 00000000) expressed in binary.
  • Bit 18 is the first bit to differ between the two strings.
  • the number 18 appears beside the solid arrow descending from “100 DEEDS FOR EDDIE McDOWD” to “10”.
  • FIG. 3 depicts a comparison between the first three characters of the string “100 DEEDS FOR EDDIE McDOWD” (“100”) expressed in binary the first three characters of the string “101 DALMATIANS” (“101”) expressed in binary. Since the bit-value indicator for the ‘0’ pointer from “100 DEEDS FOR EDDIE McDOWD” points to “10”, with an indication that bit 18 is the first bit to differ, the bit-value indicator for the ‘0’ pointer from “100 DEEDS FOR EDDIE McDOWD” points to “101 DALMATIANS”. However, as is seen in FIG. 3 , 100 DEEDS FOR EDDIE McDOWD” and “101 DALMATIANS” do not differ at bit 18 , but rather at bit 23 .
  • FIG. 4 is a simplified UML diagram showing the relationship between ChannelGroup, Channel, and Service, as implemented in presenting data in the EPG of FIG. 1 .
  • EPG data is typically broadcast from a broadcast headend to the receiver.
  • the EPG data preferably comprises lists of programs broadcast at a given time, and instructions to the receiver as to which channel (more formally, according to the DVB standard, to which service) to tune to in order to view a given program at a given time.
  • the receiver needs to locate the broadcast data corresponding to the selected program (based on Program Specific Information in the broadcast EPG data) at the selected time on the selected channel (based on Service Information (SI) in the broadcast EPG data).
  • SI Service Information
  • services which, according to the DVB SI standard correspond to conventional television channels
  • channels are grouped into groups of channels.
  • FIG. 5 is a simplified block diagram showing the relationship between ChannelGroup, Channel, and Service, useful in illustrating the UML diagram of FIG. 4 .
  • Services such as “Channel 1 South”, “Channel 1 West”, and “Channel 1 Northeast” are grouped together as channels, “Channel 1 Live”.
  • “Channel 1 Live” in turn is a member of a “Channel 1” channel group.
  • the “Channel 2” channel group comprises two channels, “Channel 2 Live” and “Channel 2+1”.
  • Each of “Channel 2 Live” and “Channel 2+1” comprise a corresponding broadcast service.
  • 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.
  • EPG A-Z listing supports are preferable to enable A-Z listing of programs in the EPG, as mentioned above.
  • 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.
  • a unique logical channel number is used across multiple bouquets.
  • 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 FIG. 1 ), only one instance of the title will be displayed in the EPG main A-Z sort screen.
  • the receiver preferably chooses one of the many instances of the shared title to display in the EPG main A-Z sort screen.
  • 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.
  • an arbitrary ChannelGroup number may preferably be assigned to the service based on a Service identifier.
  • a service may be assigned an arbitrarily high ChannelGroup number.
  • 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:
  • 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.
  • the LastInChannelFlag 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.
  • 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.
  • 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.
  • LICF set to 1
  • LICGF set to 1
  • 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.
  • FIGS. 6-9 are simplified flowchart illustrations of preferred methods of operation of the system of FIG. 1 , in accordance with preferred embodiments thereof.
  • FIGS. 6-9 are believed to be self explanatory with reference to the above discussion.
  • 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.

Abstract

A method and system of optimizing strings comprised in program guide data for transmission is described. The method includes 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 comprised in the same data storage structure. Related methods and apparatus are also described.

Description

    RELATED APPLICATION INFORMATION
  • 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.
  • FIELD OF THE INVENTION
  • 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.
  • BACKGROUND OF THE INVENTION
  • 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 abound 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.
  • SUMMARY OF THE INVENTION
  • 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:
      • events, such as television shows;
      • DVB SI services, popularly called TV channels;
      • Near video on demand (NVOD) services; Bouquets, a set of services presented on the program guide; and
      • Mosaics.
  • 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.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The present invention will be understood and appreciated more fully from the following detailed description, taken in conjunction with the drawings in which:
  • FIG. 1 is a simplified pictorial illustration of an Electronic Program Guide (EPG) displaying information about television programs during a period of time, the information optimized according to a preferred method of the present invention, and constructed and operative in accordance with a preferred embodiment of the present invention;
  • FIG. 2 is a simplified pictorial illustration of a PATRICIA tree sort of selected television programs depicted in the EPG of FIG. 1, as well as additional television programs;
  • FIG. 3 is a bit-wise listing of the title strings of some of the television programs in the PATRICIA tree of FIG. 2;
  • FIG. 4 is a simplified UML diagram showing the relationship between ChannelGroup, Channel, and Service, as implemented in presenting data in the EPG of FIG. 1;
  • FIG. 5 is a simplified block diagram showing the relationship between ChannelGroup, Channel, and Service, useful in illustrating the UML diagram of FIG. 4; and
  • FIGS. 6-9 are simplified flowchart illustrations of preferred methods of operation of the system of FIG. 1, in accordance with preferred embodiments thereof.
  • DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT
  • Reference is now made to FIG. 1, which is a simplified pictorial illustration of an Electronic Program Guide (EPG) displaying information about television programs during a period of time, the information optimized according to a preferred method of the present invention, and constructed and operative in accordance with a preferred embodiment of the present invention. The EPG depicted in FIG. 1, as is well known in the art, comprises a grid with channels arranged descending along the vertical axis, and time progressing along the horizontal axis. Programs to be broadcast at a given time on a given channel are shown at the grid location comprising the intersection of the given time with the given channel. The EPG depicted in FIG. 1 comprises program guide information for four channels, Channel 1, Channel 1+1, Channel 2 West, and Channel 2 South.
  • For purposes of the discussion of FIG. 1, Channel 1+1 comprises a so called “time shifted” channel, wherein programming broadcasted on Channel 1 is broadcast with a time-delay on an auxiliary channel. Channel 2 West and Channel 2 South comprise “regional channels”. Programming on regional channels comprises shared programs and region specific programs. Shared programs are broadcast on both Channel 2 West and Channel 2 South, such as “100 Piece Drill Bit Set” (at 19:30) and “1001 Cultures” (at 20:00). Region specific programs are programs broadcast with target audiences of particular regions, such as “West Scene”, broadcast only on Channel 2 West, and “Going South”, broadcast only on Channel 2 South. Both of the region specific programs are scheduled to be broadcast at the same time, 21:30.
  • Typically, EPGs enable viewing program listings in a number of ways besides the grid depicted in FIG. 1. For example and without limiting the generality of the foregoing, some EPGs allow sorting program listings by genre (such as Movies, Sports, etc.) and sub-genre (such as Drama, Comedy, etc. for Movies, and Football, Golf, etc. for Sports). Some EPGs allow viewing program listings sorted in an A-Z list of program listings, typically for up to the next seven days programming.
  • 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 FIG. 1 would have to cache the data for “10 Tasks for Hercules” twice; once for Channel 1 at 19:30 and once for Channel 1+1 at 20:30. Likewise, data for “1001 Cultures” would have to be cached twice by the receiver; once for Channel 2 West at 20:00, and once for Channel 2 South at 20:00. Additionally, fast response times by the EPG are desired in order to ensure that a viewer's user experience is enhanced.
  • 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 FIG. 1, the title string “10 Tasks for Hercules” is a shared title string, shared by the program item appearing on the EPG on Channel 1 at 19:30 and the program item appearing on the EPG on Channel 1+1 at 20:30. Likewise, the title string of the program item, “100 Piece Drill Bit Set”, appearing on the EPG at 19:30 on both Channel 2 West and Channel 2 South, is a shared title string.
  • Similarly, the title string of the program item “Emergency”, appearing on Channel 1+1 at 19:30 and 20:00 is also a shared title string.
  • 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 siring, 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 FIG. 2, which is a simplified pictorial illustration of a PATRICIA tree sort of selected television programs depicted in the EPG of FIG. 1, as well as additional television programs. As is explained below, in detail, with reference to FIG. 3, the PATRICIA tree comprises a binary tree. For ease of depiction, strings in the PATRICIA tree of FIG. 2 are represented in alpha-numeric characters and not in binary. For a PATRICIA tree comprising some number Q strings, the PATRICIA tree also comprises Q nodes. As is well known in the art, the time required for inserting, deleting, and searching the PATRICIA tree requires is proportional to log(Q). (See D. Knuth, The Art of Computer Programming, vol. 3, pp. 490-504, and 681-687.)
  • Any two children of a given node start with the same sequence of N bits. For instance, in the PATRICIA tree of FIG. 2, each string begins with the character “1”, thus, each string begins with the bit string “00110001”. The actual location of each node in the PATRICIA tree of FIG. 2 depends on the method of insertion of the strings into the PATRICIA tree, as is well known in the art. (See The Art of Computer Programming, vol. 3, pp. 490-504, and 681-687, particularly Exercise 15 (p. 501), and the solution thereto (p. 63).)
  • 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 FIG. 2 with a bit-value indicator (either depicted as a ‘0’ or a ‘1’). The bit-value indicator is understood as a “navigational” aide in comparing nodes. If a node differs from the next node by a ‘0’, follow the bit-value indicator for ‘0’. Similarly, if the node differs from the next node by a ‘1’, follow the bit-value indicator for ‘1’.
  • Reference is now additionally made to FIG. 3, which is a bit-wise listing of the title strings of some of the television programs in the PATRICIA tree of FIG. 2. As was explained above with reference to FIG. 2, the PATRICIA tree comprises a binary tree. Any two children of a given node start with the same sequence of N bits, and thus, the two children of the given node differ at bit N. Thus, each node of the PATRICIA tree represents a single bit comparison of the string comprised in the node. By way of example, the top of FIG. 3 depicts a comparison between the first three characters of the string “112's TOP TEN BAD BOY ARTISTS” (“112”) expressed in binary and the first three characters of the string “100 DEEDS FOR EDDIE McDOWD” (“100”) expressed in binary. Bit 15 is the first bit to differ between the two strings. Thus, in FIG. 2, the number 15 appears beside the solid arrow descending from “112's TOP TEN BAD BOY ARTISTS” to “100 DEEDS FOR EDDIE McDOWD”.
  • Likewise, the middle portion of FIG. 3 depicts a comparison between the first three characters of the string “100 DEEDS FOR EDDIE McDOWD” (“100”) expressed in binary the first three characters of the string “10” (“10<EOS>”, where <EOS> indicates “end of string”, and is represented by the binary string 00000000) expressed in binary. Bit 18 is the first bit to differ between the two strings. Thus, in FIG. 2, the number 18 appears beside the solid arrow descending from “100 DEEDS FOR EDDIE McDOWD” to “10”.
  • Similarly, the bottom of FIG. 3 depicts a comparison between the first three characters of the string “100 DEEDS FOR EDDIE McDOWD” (“100”) expressed in binary the first three characters of the string “101 DALMATIANS” (“101”) expressed in binary. Since the bit-value indicator for the ‘0’ pointer from “100 DEEDS FOR EDDIE McDOWD” points to “10”, with an indication that bit 18 is the first bit to differ, the bit-value indicator for the ‘0’ pointer from “100 DEEDS FOR EDDIE McDOWD” points to “101 DALMATIANS”. However, as is seen in FIG. 3, 100 DEEDS FOR EDDIE McDOWD” and “101 DALMATIANS” do not differ at bit 18, but rather at bit 23.
  • Reference is now made to FIG. 4, which is a simplified UML diagram showing the relationship between ChannelGroup, Channel, and Service, as implemented in presenting data in the EPG of FIG. 1. EPG data is typically broadcast from a broadcast headend to the receiver. The EPG data preferably comprises lists of programs broadcast at a given time, and instructions to the receiver as to which channel (more formally, according to the DVB standard, to which service) to tune to in order to view a given program at a given time. For instance, if the viewer selects “100 PIECE DRILL BIT SET” at 19:30, broadcast on Channel 2 West, the receiver needs to locate the broadcast data corresponding to the selected program (based on Program Specific Information in the broadcast EPG data) at the selected time on the selected channel (based on Service Information (SI) in the broadcast EPG data). In a preferred embodiment of the present invention, services (which, according to the DVB SI standard correspond to conventional television channels) are grouped into channels, and channels are grouped into groups of channels.
  • Reference is now additionally made to FIG. 5, which is a simplified block diagram showing the relationship between ChannelGroup, Channel, and Service, useful in illustrating the UML diagram of FIG. 4. Services, such as “Channel 1 South”, “Channel 1 West”, and “Channel 1 Northeast” are grouped together as channels, “Channel 1 Live”. “Channel 1 Live” in turn is a member of a “Channel 1” channel group. Similarly, for a channel and a time shifted channel, the “Channel 2” channel group comprises two channels, “Channel 2 Live” and “Channel 2+1”. Each of “Channel 2 Live” and “Channel 2+1” comprise a corresponding broadcast service.
  • 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 FIG. 5 are purely hypothetical channel groups, channels, and services.
  • 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:
      • a minimum of 7.5 days of scheduling;
      • multi-letter search;
      • event collapsing (described below);
      • genre and subgenre filtering; and
      • fast response times.
  • EPGs operative in accordance with preferred embodiments of the present invention preferably display two types of events:
      • main events, comprising events which appear in main alphabetical listing screens of the EPG; and
      • collapsed events, comprising events which share a title (for example, the 20:30 instance of “10 TASKS FOR HERCULES” shown in FIG. 1), which only appear in a “collapsed” EPG screen. The collapsed EPG screen is preferably entered by selecting a main event.
  • 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 FIG. 1), only one instance of the title will be displayed in the EPG main A-Z sort screen. The receiver preferably chooses one of the many instances of the shared title to display in the EPG main A-Z sort screen.
  • 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:
      • Language is according to the ISO 639 language identifier for a language;
      • Title comprises a full event title;
      • ChannelGroup comprises the channel group to which a service is assigned (as described above);
      • Time comprises a broadcast time for the event on the assigned service;
      • Channel comprises the channel within a channel group comprising the assigned service (as described above); and
      • Service is a unique identifier for each service to assist with ordering events with the same title and time within a Channel
  • 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 FIG. 1:
  • ChannelGroup Name Channel Group
    Channel
    1 1
    Channel 2 2

    and,
  • Channel Name Channel
    Channel
    1 Live 1
    Channel 1 + 1 2
    Channel 2 Live 1

    and,
  • Service Name Service
    Channel
    1 1
    Channel 1 + 1 2
    Channel 2 West 3
    Channel 2 South 4

    and thus, the ordered event list comprises:
  • Title ChannelGroup Time Channel Service LICF LICGF
    10 Tasks for 1 19:30 1 1 1 0
    Hercules 20:30 2 2 1 1
    100 Deeds 2 20:30 1 3 0 0
    20:30 1 4 1 1
    100 Piece Drill 2 19:30 1 3 0 0
    Bit Set 19:30 1 4 1 1
    1001 Cultures 2 20:00 1 3 0 0
    20:00 1 4 1 1
    101 1 20:30 1 1 1 0
    Dalmatians 21:30 2 2 1 1
    122's Top 10 1 20:00 1 1 1 0
    Bad Boy 21:00 2 2 1 1
    Artists
    Emergency
    1 19:30 2 2 1 0
    20:00 2 2 1 1
    Going South 2 21:30 1 4 1 1
    News at 9:00 2 21:00 1 3 0 0
    21:00 1 4 1 1
    West Scene 2 21:30 1 3 1 1
  • 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 FIGS. 6-9, which are simplified flowchart illustrations of preferred methods of operation of the system of FIG. 1, in accordance with preferred embodiments thereof. FIGS. 6-9 are believed to be self explanatory with reference to the above discussion.
  • 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:

Claims (6)

1. A method of optimizing strings comprised in program guide data for transmission, the method comprising:
sharing, in the program guide data, a plurality of strings, each string among the plurality of strings comprising a shared sorting key; and
implementing an order access of a sorted sharing index,
wherein the program guide data and the shared sorting key are comprised in the same data storage structure.
2. The method according to claim 1 and wherein the sorted sharing index comprises a Patricia tree sort index.
3-19. (canceled)
20. A system of optimizing strings comprised in program guide data for transmission, the system comprising:
a string sharer operative to share, in the program guide data, a plurality of strings, the plurality of strings comprising a shared sorting key; and
a sorter operative to implement an order access of a sorted sharing index,
wherein the program guide data and the shared sorting key are comprised in the same data storage structure.
21-23. (canceled)
24. A system of optimizing strings comprised in program guide data for transmission, the system comprising:
means for sharing, in the program guide data, a plurality of strings, the plurality of strings comprising a shared sorting key; and
means for implementing an order access of a sorted sharing index,
wherein the program guide data and the shared sorting key are comprised in the same data storage structure.
US12/799,997 2005-06-09 2010-05-06 Program guide optimization system Abandoned US20100223644A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US12/799,997 US20100223644A1 (en) 2005-06-09 2010-05-06 Program guide optimization system
US12/928,844 US20110126235A1 (en) 2005-06-09 2010-12-20 Program guide optimization system

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
GB0511774.2 2005-06-09
GBGB0511774.2A GB0511774D0 (en) 2005-06-09 2005-06-09 Extended service information 2 (XSI-2)
PCT/GB2006/002109 WO2006131746A2 (en) 2005-06-09 2006-06-09 Program guide optimization system
US92105408A 2008-05-05 2008-05-05
US12/799,997 US20100223644A1 (en) 2005-06-09 2010-05-06 Program guide optimization system

Related Parent Applications (2)

Application Number Title Priority Date Filing Date
PCT/GB2006/002109 Division WO2006131746A2 (en) 2005-06-09 2006-06-09 Program guide optimization system
US92105408A Division 2005-06-09 2008-05-05

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/928,844 Division US20110126235A1 (en) 2005-06-09 2010-12-20 Program guide optimization system

Publications (1)

Publication Number Publication Date
US20100223644A1 true US20100223644A1 (en) 2010-09-02

Family

ID=34855281

Family Applications (6)

Application Number Title Priority Date Filing Date
US11/920,800 Abandoned US20090133074A1 (en) 2005-06-09 2006-06-09 Headend Modeling of Data
US11/921,054 Abandoned US20090125943A1 (en) 2005-06-09 2006-06-09 Program guide optimization system
US12/799,997 Abandoned US20100223644A1 (en) 2005-06-09 2010-05-06 Program guide optimization system
US12/800,441 Active 2027-08-19 US8607277B2 (en) 2005-06-09 2010-05-14 Headend modeling of data
US12/928,844 Abandoned US20110126235A1 (en) 2005-06-09 2010-12-20 Program guide optimization system
US13/068,922 Active 2026-06-16 US8578421B2 (en) 2005-06-09 2011-05-24 Headend modeling of data

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US11/920,800 Abandoned US20090133074A1 (en) 2005-06-09 2006-06-09 Headend Modeling of Data
US11/921,054 Abandoned US20090125943A1 (en) 2005-06-09 2006-06-09 Program guide optimization system

Family Applications After (3)

Application Number Title Priority Date Filing Date
US12/800,441 Active 2027-08-19 US8607277B2 (en) 2005-06-09 2010-05-14 Headend modeling of data
US12/928,844 Abandoned US20110126235A1 (en) 2005-06-09 2010-12-20 Program guide optimization system
US13/068,922 Active 2026-06-16 US8578421B2 (en) 2005-06-09 2011-05-24 Headend modeling of data

Country Status (5)

Country Link
US (6) US20090133074A1 (en)
EP (3) EP1889482B1 (en)
GB (1) GB0511774D0 (en)
IL (2) IL187514A0 (en)
WO (3) WO2006131746A2 (en)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080005766A1 (en) * 2006-06-29 2008-01-03 Scientific-Atlanta, Inc. Enhanced Program Guide
US20080065722A1 (en) * 2006-09-11 2008-03-13 Apple Computer, Inc. Media device playlists
US8065603B2 (en) 2007-04-30 2011-11-22 Google Inc. Hiding portions of display content
US8635641B2 (en) * 2007-12-05 2014-01-21 Lg Electronics Inc. Method of performing parental control a channel and an IPTV receiver
US8813155B2 (en) * 2007-12-05 2014-08-19 Lg Electronics Inc. Method for receiving service information data and an IPTV receiver
US8112775B2 (en) * 2007-12-05 2012-02-07 Lg Electronics Inc. IPTV receiver and method of providing channel details information
US8893205B2 (en) * 2007-12-05 2014-11-18 Lg Electronics Inc. IPTV receiver and method of providing channel map management information
US8893200B2 (en) * 2007-12-05 2014-11-18 Lg Electronics Inc. IPTV receiver and method of acquiring a resource for an IPTV service
US8869219B2 (en) * 2007-12-05 2014-10-21 Lg Electronics Inc. Method for controlling a channel and an IPTV receiver
US8484689B2 (en) * 2007-12-05 2013-07-09 Lg Electronics Inc. IPTV receiver and method of discovering an IPTV service
US8397256B2 (en) * 2007-12-05 2013-03-12 Lg Electronics Inc. IPTV receiver and method of providing channel map information
WO2009087496A2 (en) * 2008-01-09 2009-07-16 Nds Limited System and method for overtime viewing
US8769560B2 (en) 2009-10-13 2014-07-01 At&T Intellectual Property I, L.P. System and method to obtain content and generate modified content based on a time limited content consumption state
US9313542B2 (en) * 2010-03-25 2016-04-12 Cox Communications, Inc. Electronic program guide generation
EP2378766A1 (en) * 2010-04-16 2011-10-19 Liberty Global Europe Holding B.V. Electronic Program Guide compression method and system
CA2714061C (en) 2010-08-31 2018-01-02 Shaw Cablesystems G.P. Method and system for optimizing electronic program guide data
US8818963B2 (en) * 2010-10-29 2014-08-26 Microsoft Corporation Halloween protection in a multi-version database system
EP2523465B1 (en) * 2011-05-09 2020-04-08 LG Electronics Inc. Service system and method of providing service in digital receiver thereof
EP2742698A1 (en) * 2011-08-10 2014-06-18 Thompson Licensing System and method for caching an electronic program guide
DE102012104805A1 (en) * 2012-06-04 2013-12-05 Deutsche Telekom Ag A method for updating electronic program information data (2) on a user terminal
US8904444B2 (en) * 2012-11-15 2014-12-02 Motorola Mobility Llc Scalable data acquisition and accumulation in a resource constrained environment
JP2014116725A (en) * 2012-12-07 2014-06-26 Funai Electric Co Ltd Electronic program guide display device
KR20140075167A (en) * 2012-12-11 2014-06-19 주식회사 케이티 Server and method for generating broadcast channel number and, apparatus for relaying broadcast
US9195712B2 (en) 2013-03-12 2015-11-24 Microsoft Technology Licensing, Llc Method of converting query plans to native code
WO2014158158A1 (en) * 2013-03-28 2014-10-02 Thomson Licensing Adaptive guide based on categorization
US10474645B2 (en) 2014-02-24 2019-11-12 Microsoft Technology Licensing, Llc Automatically retrying transactions with split procedure execution
US9743150B2 (en) * 2014-07-08 2017-08-22 Verizon Patent And Licensing Inc. Method, apparatus, and system for providing electronic program guide changes during outages in a media stream
US9848025B2 (en) 2014-12-12 2017-12-19 Services Development Company LLC Data transmission via a high frequency radio band
US10372883B2 (en) 2016-06-24 2019-08-06 Scripps Networks Interactive, Inc. Satellite and central asset registry systems and methods and rights management systems
US10452714B2 (en) 2016-06-24 2019-10-22 Scripps Networks Interactive, Inc. Central asset registry system and method
US11868445B2 (en) 2016-06-24 2024-01-09 Discovery Communications, Llc Systems and methods for federated searches of assets in disparate dam repositories
US20230319330A1 (en) * 2022-03-31 2023-10-05 Comcast Cable Communications, Llc Methods and systems for content management

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5790198A (en) * 1990-09-10 1998-08-04 Starsight Telecast, Inc. Television schedule information transmission and utilization system and process
US6160545A (en) * 1997-10-24 2000-12-12 General Instrument Corporation Multi-regional interactive program guide for television
US20020059185A1 (en) * 2000-10-14 2002-05-16 Lg Electronics Inc. Method of managing index data in main memory database
US20020194613A1 (en) * 2001-06-06 2002-12-19 Unger Robert Allan Reconstitution of program streams split across multiple program identifiers
US20030141993A1 (en) * 2002-01-31 2003-07-31 Baldwin James Armand Generating and searching compressed data
US20030145327A1 (en) * 2002-01-31 2003-07-31 Baldwin James Armand Pre-fragmentation of data destined for low resource clients
US6728966B1 (en) * 1999-03-29 2004-04-27 Hughes Electronics Corporation Electronic television program guide data naming system and method
US6763522B1 (en) * 1998-06-30 2004-07-13 Sony Corporation System and method for a digital television electronic program guide
US20040148637A1 (en) * 2001-03-16 2004-07-29 Asher Sterkin Method and system for literal data access
US6804677B2 (en) * 2001-02-26 2004-10-12 Ori Software Development Ltd. Encoding semi-structured data for efficient search and browsing
US20050283799A1 (en) * 2001-02-21 2005-12-22 Domegan Patrick A System, method and channel line-up processor for localizing an electronic program guide schedule
US20050289593A1 (en) * 2004-05-26 2005-12-29 Skipjam Corp. Method and system for displaying and selecting content of an electronic program guide
US6993782B1 (en) * 1999-07-16 2006-01-31 Thomson Licensing Program guide information and processor for providing program and channel substitution
US20060156339A1 (en) * 2005-01-12 2006-07-13 Seiko Epson Corporation Electric program guide receiving apparatus, digital television system, and electronic apparatus
US7299317B1 (en) * 2002-06-08 2007-11-20 Cisco Technology, Inc. Assigning prefixes to associative memory classes based on a value of a last bit of each prefix and their use including but not limited to locating a prefix and for maintaining a Patricia tree data structure

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5644712A (en) * 1991-06-05 1997-07-01 International Business Machines Corporation Indirect addressing of channels via logical channel groups
GB9400101D0 (en) * 1994-01-05 1994-03-02 Thomson Consumer Electronics Consumer interface for a satellite television system
US5841433A (en) * 1994-12-23 1998-11-24 Thomson Consumer Electronics, Inc. Digital television system channel guide having a limited lifetime
JP3698273B2 (en) * 1995-07-20 2005-09-21 ソニー株式会社 Electronic program guide transmission apparatus and method, electronic program guide reception apparatus and method, and electronic program guide transmission / reception system and method
JP3572595B2 (en) * 1995-07-21 2004-10-06 ソニー株式会社 Electronic program guide display control apparatus and method
US5801753A (en) * 1995-08-11 1998-09-01 General Instrument Corporation Of Delaware Method and apparatus for providing an interactive guide to events available on an information network
US5951639A (en) 1996-02-14 1999-09-14 Powertv, Inc. Multicast downloading of software and data modules and their compatibility requirements
CN1093972C (en) 1997-09-05 2002-11-06 索尼公司 Method and appts. for displaying images
US6675385B1 (en) * 1998-10-21 2004-01-06 Liberate Technologies HTML electronic program guide for an MPEG digital TV system
US6904609B1 (en) * 1999-03-18 2005-06-07 Microsoft Corporation Systems and methods for electronic program guide data services
US6658661B1 (en) * 1999-03-29 2003-12-02 Hughes Electronics Corporation Carousel bit mask system and method
JP2000307968A (en) * 1999-04-20 2000-11-02 Sony Corp Method for transmitting and receiving electronic program information, electronic program information reception equipment and electronic program information transmission system
US6718374B1 (en) 1999-04-21 2004-04-06 General Instrument Corporation Method and system for identifying and downloading appropriate software or formware specific to a particular model of set-top box in a cable television system
JP5068910B2 (en) 1999-08-31 2012-11-07 トムソン ライセンシング Method and apparatus for delivery of targeted video programming
JP2001320291A (en) * 2000-02-29 2001-11-16 Sony Corp Receiver and method for receiving
EP1148730A3 (en) * 2000-03-31 2003-10-08 Matsushita Electric Industrial Co., Ltd. Data broadcast apparatus for controlling presentation timing of additional data with high precision
US6772434B1 (en) * 2000-05-24 2004-08-03 The Directv Group, Inc. Device and method for the integrated presentation of a secondary service as a part of a primary service
US6741834B1 (en) * 2000-06-06 2004-05-25 Hughes Electronics Corporation Device and method to improve integrated presentation of existing radio services and advanced multimedia services
CA2349914C (en) 2000-06-09 2013-07-30 Invidi Technologies Corp. Advertising delivery method
US20050204385A1 (en) * 2000-07-24 2005-09-15 Vivcom, Inc. Processing and presentation of infomercials for audio-visual programs
US7216090B2 (en) * 2000-11-28 2007-05-08 Navic Systems, Inc. Promotion packaging for transmission groups
US6925458B2 (en) * 2000-12-20 2005-08-02 Michael A. Scaturro System and method for providing an activity schedule of a public person over a network
AU2001280957A1 (en) * 2001-08-03 2003-12-22 Hughes Electronics Corporation Method and apparatus for creating electronic program guide without consolidated program guide information transmission
AU2002355602A1 (en) 2001-08-06 2003-02-24 Digeo, Inc. System and method to provide local content and corresponding applications via carousel transmission
JP2003204482A (en) * 2001-10-22 2003-07-18 Matsushita Electric Ind Co Ltd Broadcasting device
US20030131355A1 (en) * 2001-11-27 2003-07-10 Berenson Richard W. Program guide system
US20030120758A1 (en) * 2001-12-21 2003-06-26 Koninklijke Philips Electronics N.V. XML conditioning for new devices attached to the network
US7298960B1 (en) * 2002-05-10 2007-11-20 Microsoft Corporation Playback diagnostics
CN1669298A (en) * 2002-07-17 2005-09-14 皇家飞利浦电子股份有限公司 Receiver with concurrent multi-user electronic program guide
US8631451B2 (en) 2002-12-11 2014-01-14 Broadcom Corporation Server architecture supporting adaptive delivery to a variety of media players
CA2510709A1 (en) * 2002-12-18 2004-07-01 Nokia Corporation Method of announcing sessions
US20040123317A1 (en) * 2002-12-19 2004-06-24 Sony Corporation System and method for delivering electronic program guide
US7065355B2 (en) * 2003-01-21 2006-06-20 The Boeing Company Method and apparatus for very high data rate satellite transmission
US7757251B2 (en) * 2003-03-18 2010-07-13 Time Warner Interactive Video Group Inc. Technique for providing program guide data through a communications network delivering programming content
US20050097595A1 (en) * 2003-11-05 2005-05-05 Matti Lipsanen Method and system for controlling access to content
JP2005142753A (en) * 2003-11-05 2005-06-02 Toshiba Corp Apparatus and method for broadcast receiving, and apparatus and method for program recording
US8904458B2 (en) 2004-07-29 2014-12-02 At&T Intellectual Property I, L.P. System and method for pre-caching a first portion of a video file on a set-top box
GB0423323D0 (en) * 2004-10-20 2004-11-24 Nds Ltd Apparatus and method for grouping program meta-data
US20060149761A1 (en) * 2004-12-09 2006-07-06 Lg Electronics Inc. Structure of objects stored in a media server and improving accessibility to the structure

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5790198A (en) * 1990-09-10 1998-08-04 Starsight Telecast, Inc. Television schedule information transmission and utilization system and process
US6160545A (en) * 1997-10-24 2000-12-12 General Instrument Corporation Multi-regional interactive program guide for television
US6401242B1 (en) * 1997-10-24 2002-06-04 General Instrument Corporation Method and apparatus for designating a preferred source to avoid duplicative programming services
US6763522B1 (en) * 1998-06-30 2004-07-13 Sony Corporation System and method for a digital television electronic program guide
US6728966B1 (en) * 1999-03-29 2004-04-27 Hughes Electronics Corporation Electronic television program guide data naming system and method
US6993782B1 (en) * 1999-07-16 2006-01-31 Thomson Licensing Program guide information and processor for providing program and channel substitution
US20020059185A1 (en) * 2000-10-14 2002-05-16 Lg Electronics Inc. Method of managing index data in main memory database
US20050283799A1 (en) * 2001-02-21 2005-12-22 Domegan Patrick A System, method and channel line-up processor for localizing an electronic program guide schedule
US6804677B2 (en) * 2001-02-26 2004-10-12 Ori Software Development Ltd. Encoding semi-structured data for efficient search and browsing
US20040148637A1 (en) * 2001-03-16 2004-07-29 Asher Sterkin Method and system for literal data access
US20020194613A1 (en) * 2001-06-06 2002-12-19 Unger Robert Allan Reconstitution of program streams split across multiple program identifiers
US20030145327A1 (en) * 2002-01-31 2003-07-31 Baldwin James Armand Pre-fragmentation of data destined for low resource clients
US20030141993A1 (en) * 2002-01-31 2003-07-31 Baldwin James Armand Generating and searching compressed data
US7299317B1 (en) * 2002-06-08 2007-11-20 Cisco Technology, Inc. Assigning prefixes to associative memory classes based on a value of a last bit of each prefix and their use including but not limited to locating a prefix and for maintaining a Patricia tree data structure
US20050289593A1 (en) * 2004-05-26 2005-12-29 Skipjam Corp. Method and system for displaying and selecting content of an electronic program guide
US20060156339A1 (en) * 2005-01-12 2006-07-13 Seiko Epson Corporation Electric program guide receiving apparatus, digital television system, and electronic apparatus

Also Published As

Publication number Publication date
EP1889477A2 (en) 2008-02-20
US8578421B2 (en) 2013-11-05
EP2334076A1 (en) 2011-06-15
WO2006131746A2 (en) 2006-12-14
US8607277B2 (en) 2013-12-10
EP1889477B1 (en) 2015-08-12
WO2006131746A3 (en) 2007-03-15
WO2006131748A2 (en) 2006-12-14
WO2006131754A3 (en) 2007-05-31
WO2006131748A3 (en) 2007-07-12
EP1889482B1 (en) 2015-09-02
GB0511774D0 (en) 2005-07-20
US20100235860A1 (en) 2010-09-16
WO2006131754A2 (en) 2006-12-14
US20110126235A1 (en) 2011-05-26
EP1889482A2 (en) 2008-02-20
IL187564A0 (en) 2008-03-20
IL187514A0 (en) 2008-03-20
US20110231879A1 (en) 2011-09-22
US20090125943A1 (en) 2009-05-14
US20090133074A1 (en) 2009-05-21

Similar Documents

Publication Publication Date Title
EP1889477B1 (en) Program guide optimization system
US6401242B1 (en) Method and apparatus for designating a preferred source to avoid duplicative programming services
KR100583057B1 (en) Apparatus and method for decoding packetized program data
US6763522B1 (en) System and method for a digital television electronic program guide
US7032236B1 (en) Multimedia system for processing program guides and associated multimedia objects
US5982411A (en) Navigation among grouped television channels
US6675385B1 (en) HTML electronic program guide for an MPEG digital TV system
US20050289593A1 (en) Method and system for displaying and selecting content of an electronic program guide
US20020199192A1 (en) Channels and services display
US20050160453A1 (en) Apparatus to change a channel using a channel map based on program genre and method thereof
US7071993B2 (en) Digital broadcast receiving device and method using the same
KR101055424B1 (en) User interface menu changing device and method
CN1652603A (en) Program guide information and processor for providing program and channel substitution
US20010016948A1 (en) Broadcast data system and apparatus
AU2600999A (en) Broadcasting transmitter and receiver
KR20090036386A (en) Broadcasting receiver and method for searching a broadcasting program
US20080104638A1 (en) Method and apparatus for storing broadcast program
KR101239099B1 (en) Multi vod channel providing system in digital cable broadcast and method thereof
KR20040058397A (en) Method for guiding program according to category
KR100586857B1 (en) Apparatus and method for decoding packetized program information, storage medium containing digital data, and method for forming program guide information
KR20080025460A (en) Method for searching program information and apparatus for receiving a broadcast signal
CA2507439A1 (en) Multi-regional interactive program guide for television

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: CISCO TECHNOLOGY, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NDS LIMITED;REEL/FRAME:046447/0387

Effective date: 20180626

AS Assignment

Owner name: NDS LIMITED, UNITED KINGDOM

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BEAUMARIS NETWORKS LLC;CISCO SYSTEMS INTERNATIONAL S.A.R.L.;CISCO TECHNOLOGY, INC.;AND OTHERS;REEL/FRAME:047420/0600

Effective date: 20181028