WO2012112132A1 - Spatial guide for media content discovery and navigation - Google Patents

Spatial guide for media content discovery and navigation Download PDF

Info

Publication number
WO2012112132A1
WO2012112132A1 PCT/US2011/000272 US2011000272W WO2012112132A1 WO 2012112132 A1 WO2012112132 A1 WO 2012112132A1 US 2011000272 W US2011000272 W US 2011000272W WO 2012112132 A1 WO2012112132 A1 WO 2012112132A1
Authority
WO
WIPO (PCT)
Prior art keywords
programs
program
clusters
cluster
content
Prior art date
Application number
PCT/US2011/000272
Other languages
French (fr)
Inventor
David Anthony Campana
Dhruba Jyoti Baishya
David Brian Anderson
Shemimon Manalikudy Anthru
Ishan Mandrekar
Jens Cahnbley
Original Assignee
Thomson Licensing
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 Thomson Licensing filed Critical Thomson Licensing
Priority to PCT/US2011/000272 priority Critical patent/WO2012112132A1/en
Publication of WO2012112132A1 publication Critical patent/WO2012112132A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • G06F16/287Visualization; Browsing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/482End-user interface for program selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/482End-user interface for program selection
    • H04N21/4828End-user interface for program selection for searching program descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/4508Management of client data or end-user data
    • H04N21/4532Management of client data or end-user data involving end-user characteristics, e.g. viewer profile, preferences
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/466Learning process for intelligent management, e.g. learning user preferences for recommending movies
    • H04N21/4667Processing of monitored end-user data, e.g. trend analysis based on the log file of viewer selections

Definitions

  • the present arrangement provides a system and method for organizing and displaying electronic program guide data.
  • a subscriber to a cable or satellite provider accesses content using a set top box connected to a display device.
  • the user may employ an electronic program guide (EPG) that is displayable on a screen in response to user generation of a control signal using a remote control.
  • EPG electronic program guide
  • the EPG typically is a tabular formatted user interface that presents a listing of channels and information about programs on those channels for a given time period. Additionally, the EPG data is displayed to the user in a linear fashion organized by channel and by time. Cable/satellite operators have attempted to improve EPG guide navigation by grouping channels that are known to broadcast similar types of content.
  • a cable provider may set aside a block of channels that are known to broadcast sports content and a separate group that are known to broadcast home improvement or comedy content. While channel groupings have improved the ability of the user to find content that may be interesting, this method of content organization is limiting because a user is only able to view the limited programming on the set of channels at a given time.
  • a drawback associated with accessing the content available is that it can be a tedious task for a consumer/user to sort through and locate content that may be interesting them and aggregate it in a meaningful manner.
  • the linear layout of the content guide obstructs the visualization of content similarities and dissimilarities. [004]
  • Other systems have attempted to remedy the deficiencies associated with a linear program.
  • exemplary non-linear program guides have failed to provide users with an accurate and true spatial relationship between the available content.
  • a system represents television channels in a 3D helical path which is interactive but fails to show any type of content relation or spatial structure.
  • the use of a helical path does not differ significantly from the conventional linear content guides and therefore navigation/search time required to locate content is as inefficient as a conventional linear content guide.
  • Another exemplary mode of improving content guide display and navigation is providing a display image including an information space having a visualization of a set of recommended programs located around a circumference of a circle that is positioned around a focus program in the center thereof.
  • this non-linear display provides an extremely limited view of other content and does not provide any information identifying how the recommended content are related to the focus node or to one another.
  • Similar systems have been extended to mobile devices. However, a drawback associated with these extensions is that, due to the screen size of the mobile device, there is even less number of possible programs able to be displayed.
  • these systems are merely recommendation systems and operate using the premise of local visualization.
  • a local visualization system focuses on a single piece of content and displays only content that is similar thereto in a pattern around the focus content.
  • the drawback associated with these systems is that they require a user to know what type of content they are looking to access.
  • These systems fail to provide a holistic representation of all available programs of any type enabling the user to determine the type of content that may be interesting. Therefore, there is a need to improve the surfing speed of the electronic program guide that enables faster selection of content derived from a larger set of content spread across multiple sets of channels.
  • An aspect of the invention includes an enhanced program guide
  • a method of providing a content guide identifying a spatial relationship between the elements in the content guide is described.
  • the controller receives electronic program guide data including a plurality of programs, each program including data representing at least one program description attribute.
  • a spatial relationship between the plurality programs is determined based on at least one program description attribute.
  • a plurality of clusters is generated based on the determined spatial relationship of the programs, each cluster including a subset of the plurality of programs determined to be related to one another.
  • the respective clusters including the programs within the clusters are assigned to a unique position on display screen and at least one type of landmark indicator is assigned to respective ones of the plurality of clusters to identify a type of program contained within the respective cluster.
  • a user interface display processor generates a user interface display image of a map representing a spatial content guide including the plurality of clusters based on the assigned position and including the at least one type of landmark indicator for respective ones of the plurality of clusters enabling the user to view the relationship of the plurality of programs.
  • a system for providing a content guide identifying a spatial relationship between the elements in the content guide receives electronic program guide data including a plurality of programs, each program including data representing at least one program description attribute.
  • a cluster processor determines a spatial relationship between the plurality programs based on at least one program description attribute and generates a plurality of clusters based on the determined spatial relationship of the programs, each cluster including a subset of the plurality of programs determined to be related to one another.
  • a map processor assigns the respective clusters including the programs within the clusters to a unique position on display screen and assigns at least one type of landmark indicator to respective ones of the plurality of clusters to identify a type of program contained within the respective cluster.
  • a user interface display processor generates an a user interface display image of a map representing a spatial content guide including the plurality of clusters based on the assigned position and including the at least one type of landmark indicator for respective ones of the plurality of clusters enabling the user to view the relationship of the plurality of programs.
  • FIG. 1 is a block diagram of a system in accordance with an aspect of an embodiment
  • FIG. 2 is a two dimensional projection of an n-dimensional cluster in accordance with an aspect of an embodiment
  • FIG. 3 is an exemplary flow diagram detailing operation of the system in accordance with an aspect of an embodiment
  • FIG. 4 is an example layout of a navigational grid in accordance with an aspect of an embodiment
  • FIG. 5 is an example of a cluster projection in accordance with an aspect of an embodiment
  • FIG. 6 is an example of a mode of navigation in accordance with an aspect of an embodiment
  • FIG. 7 is a block diagram of an exemplary controller in accordance with an aspect of an embodiment
  • FIG. 8 is a schematic outlining parameters of an experiment in accordance with an aspect of an embodiment; and FIG. 9 show results of the experiment of FIG. 8 in accordance with an aspect of an embodiment.
  • a component is intended to refer to hardware, or a combination of hardware and software in execution.
  • a component can be, but is not limited to being, a process running on a processor, a processor, an object, an executable running on a processor, and/or a microchip and the like.
  • an application running on a processor and the processor can be a component.
  • One or more components can reside within a process and a component can be localized on one system and/or distributed between two or more systems. Functions of the various components shown in the figures can be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software.
  • the functions can be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which can be shared. Moreover, explicit use of the term
  • processor or “controller” should not be construed to refer exclusively to hardware capable of executing software, and can implicitly include, without limitation, digital signal processor (“DSP”) hardware, read-only memory (“ROM”) for storing software, random access memory (“RAM”), and non-volatile storage.
  • DSP digital signal processor
  • ROM read-only memory
  • RAM random access memory
  • non-volatile storage non-volatile storage
  • any hyperlinks used herein are used for purposes of example only. These hyperlinks may or may not be active and may or may not contain data. Any data stored at the location corresponding to any hyperlink is not required for an understanding of the present invention.
  • Content providers provide access to different types of content to a plurality of users.
  • cable/satellite providers typically rent set top boxes to consumers which act as a portal or gateway for the delivery of different types of content.
  • the equipment that selectively provides access to content advantageously accesses content guide data that can be decoded and displayed to a user on a display device.
  • Content guide data includes a listing of at least one channel on which content may be accessed and information associated with the content on the at least one channel.
  • An example is electronic program guide data (or electronic service guide data) that is delivered either directly inbound from the cable provider through the same channel as the broadcast data or through an added internet service that compiles and provides content guide data.
  • the present system is able to improve content guide data presentation and navigation using the relatedness of the content which is represented by hierarchical groupings of content in the form of clusters.
  • Content including (but not limited to) television programs or any other media programs, may be related to each other in numerous ways.
  • the present system advantageously uses generated clusters of related pieces of content from a set of available content wherein the clusters were generated by considering all dimensions to which the content belongs. For example, content may be described using a plurality of different attributes that include information that describes the content wherein each attribute represents a respective dimension of the piece of content.
  • the present system advantageously creates a holistic map view of all content available during a given time period and provides visual indicators that facilitate quick and simple navigation between different types of content.
  • Figure 1 One exemplary embodiment of the system is shown in Figure 1 which includes a set top box 102, for example a cable television set top box, including a tuner module that selectively tunes an input signal 101 from a cable/satellite provider.
  • Set top box 102 parses received program data, including program guide data, and populates a database 104 with attributes that are associated with respective programs available to be tuned by the tuner module.
  • the database may be embodied as a separate disc drive or a cloud database storage location accessible via a communication network.
  • the database 104 may be embodied within the set top box 102.
  • the structure of the database may have various tables that represent a particular time period of a day.
  • attributes used to describe content may be provided in the columns and the programs at that particular time period may be provided in the rows.
  • content includes television programs available from a cable/satellite provider. However, one skilled in the art would appreciate that content may be any audio-visual multimedia data that a user may access in any manner.
  • program attribute data may be acquired from a source of program information located on the internet/web 106.
  • a cluster processor (as shown in Fig. 7) .provided within set top box 102, uses the stored attribute data to generate clusters based on the relatedness of the available programs.
  • Each attribute that describes a program may be considered a dimension and the clustering algorithm executed by the cluster processor is able to selectively determine the n-dimensional relatedness of all of the programs at the given time.
  • An exemplary manner in which attribute data may be used in generated n- dimensional clusters of available programs is described in PCT Application No. entitled “Media Content Spatial Navigation", Attorney Docket Number PU 100052, filed on even date herewith, which is incorporated herein by reference in its entirety.
  • the present system makes uses of the clusters to generate a display image
  • the set top box 102 is coupled to a primary display device 108, for example a high definition television monitor, which selectively displays content corresponding to the signal tuned by the tuner module in the set top box 102.
  • a set top box 102 is described as the access point enabling selection and viewing of content, it should be noted that any device including at least one tuner module enabling selection of content may be used to implement the present system.
  • the system may be implemented by any device that allows any piece of content to be selected and provided to a user in any manner.
  • a secondary display device 1 10 may be provided for display of the clustered content guide generated by the system.
  • the secondary display device 1 10 may be any computing device that has access to at least one of a local area network and wide area network and which can access and receive data representing a spatial electronic program guide from the set top box 102 for display thereon.
  • Secondary display device 1 10 includes but is not limited to, a computer, a laptop, a netbook, a tablet computer, a cellular phone, a smart phone or a second monitor different from the primary display device 104.
  • the spatial program guide data may also be displayed on the primary display device 108.
  • the present system may generate at least two display images including portions of the spatial electronic program guide data whereby one portion is displayed on the primary display device 108 and a second portion is displayed on a secondary display device 1 10.
  • the set top box 102 is controlled by a user 1 12 or other device (e.g. a VCR, a DVR, another tuner, etc) in a known manner, for example using a remote control (not shown), to cause the set top box 102 (or primary display device 108) to display a user interface including an electronic program guide on the primary display device 108.
  • the program guide data includes information that describes the plurality of programs that are available to be tuned at a give time.
  • the program guide may be automatically acquired by the set top box via a source of program guide data on the internet/world wide web 106.
  • the clusters including program data are associated with at least one of an image element indicator enabling quick realization by a user of the program represented thereby.
  • the clusters may be assigned at least one of an image element indicator and a text indicator that provides the user with a generalized description of the type of content contained within the cluster.
  • the clusters may be appended with a text indicator corresponding to the "genre" of the programs contained therein such as "news”, “comedy”, “drama”, “action”, etc. These labels are described for purposes of example only and any descriptor describing the cluster may be used.
  • the descriptor used for describing the cluster in a given spatial program guide display image may be derived from at least one attribute that was used in generating the cluster to which the program belongs (e.g. the most heavily weighted attribute used in calculating the distance relationships between all programs). In another embodiment, the descriptor used may be specified by a user.
  • the system may automatically associate the visual and text indicators with the indicators for all programs in advance of the present time frame in order to have all image data available when presentation of the spatial program guide is requested. For example, the system may, for each given time period, perform the clustering of program data and generate representative spatial program guide display images to be stored and recalled at the given time period. This may ensure set top box performance and display of data is not hindered when a user is actually viewing program content on the primary display device 108.
  • FIG. 2 An exemplary display image 200 of the spatial electronic program guide is shown in Figure 2.
  • the display image 200 may be generated by the present system in response to receipt of a program guide request signal generated by a user using a remote control, for example.
  • the display image 200 represents all available content that is available to a user at a given time period in clustered form. For example, if the program guide request signal is received at 4: 15 pm, this display image may include all available programs that may be accessed during the hour between 4:00pm and 5:00pm. This is described for purposes of example only and the time period need not be restricted to the current hour and may be increased or decreased as desired.
  • the display image may automatically change should the user wish to navigate from a current time period to a future time period such that the display image would provide clustered content data available during the future time period.
  • the display image 200 is generated based on a clustering algorithm executed by the system that identifies and determines the relatedness of all programs in a sample set of available programs based on a set of attributes that describe each program within the sample set of available programs.
  • Each generated cluster is identified as a content island and includes a plurality of visual indicators representing the plurality of programs contained within the cluster and located "on the content island".
  • the clustering algorithm executed by the system may have generated clusters using the attribute "genre" as a key attribute for organizing the relatedness of the programs.
  • related programs in the "drama" genre are contained on content island 202.
  • Content island 202 includes a plurality of visual indicators 204 identifying the respective programs on the content island 202.
  • Visual indicators may be derived from a source of image data such as a database containing box art that identifies the respective program.
  • visual indicator image data may be acquired by initiating a search of content information sources (e.g. WikipediaTM) or content provider sources (e.g. HULU®, NETFLIXTM, etc) to locate image data that corresponds to and allow a user to easily identify the program on the content island 202.
  • content information sources e.g. WikipediaTM
  • content provider sources e.g. HULU®, NETFLIXTM, etc
  • Content islands may also be appended with a particular background color to further aid in distinguishing different types of available content.
  • the visual indicators 204 for content island 202 may be presented on a green background whereas the visual indicators for a different content island may appear on a light blue background.
  • the color scheme for the content islands is described for purposes of example only and the system may automatically select the color for the background for each content island at random.
  • the color scheme for the content islands may be specified by a user. For example, if the user knows they are most interested in sports content, then the content island including sports programs may be presented on a background having a color chosen by a user based on the user's belief that the color stands out better than any other color.
  • content island 202 includes at least one type of landmark indicator 206.
  • a landmark indicator 206 may be a representational data item for each content island.
  • the landmark indicator 206 may be displayed as relatively large sized thumbnails enabling quick viewing and understanding as to the nature of the programs located on the content island.
  • the landmark indicator 206 may be selected on the basis of some predefined criteria. For example, the system may select the landmark indicator 206 using content-specific criteria including but not limited to (a) popularity of a particular piece of content; (b) the ratings associated with a particular piece of content; (c) an indication that the content has been recommended; and (d) an indication that the content is a featured piece of content.
  • the pre-defined criteria may also be user-specific criteria based on information contained in a user profile.
  • user-specific criteria may be based on (a) program viewing history; and (b) user specification that a particular piece of content is preferred above other content.
  • the landmark indicator may be an easily identifiable and high resolution image of the content in order to assist users in knowing what type of content it represents.
  • a landmark label providing a text-based description of the programs on the respective content island is provided to aid the user in quickly understanding the types of programs available at the given time period.
  • a landmark label 208 indicates that content island 202 includes programs that are part of the genre type "drama". Also displayed are few text-based landmarks ⁇ labels) which provide a finer level of identification.
  • Other examples of landmark labels that may be associated with a cluster of programs may include any descriptive term that provides a text-based understanding of the programs contained therein.
  • the display image 200 including landmark indicators and landmark labels advantageously enables the user to visually skim a large amount of data representing available programs while processing what the data actually means.
  • the automatic display of the landmark indicators and landmark labels further advantageously enables the user to comprehend all available options without having to take any further action aside from requesting display of the spatial program guide display image 200. This is known as "chunking" whereby the user is able to visually skim a large set of data and quickly comprehend the meaning thereof.
  • the ability to quickly process all available options at a given time period enables the user to more quickly narrow down and focus on the program or type of programs that are of interest.
  • Display image 200 further includes an overview map of all of the types of content that are available.
  • An exemplary representation of the overview map is presented in the box labeled 220.
  • the overview map 220 may include visual representation of the clusters using the background colors associated with each content island along with the landmark labels associated with each content island.
  • the overview map 230 may remain fixed during user navigation of the display image as discussed above.
  • a tracking element is positioned over the overview map 220 and moves based on user navigation of the various content islands. This advantageously provides the user with a quick reference as to where they are located on the map of related programs should the user more narrowly focus their attention from a content island as a whole to a set of programs within a particular content island, for example.
  • the overview map 220 may be a scaled down view of the display image 200 including scaled down versions of the plurality of content islands with a subset of at least one of the landmark indicators and the landmark labels.
  • the overview map 220 advantageously provides the user with a high-level picture of the region when the user has zoomed in on the programs on the content island.
  • the overview map 220 selectively enables the user to jump from a first position on the map to a second different position by selecting the second different position on the overview map 220.
  • Display image 200 further includes a set of user selectable navigation image elements 230 enabling a user to move a cursor over various positions in display image 200 thereby allowing the user to navigate between content islands to enable the user to view the different types of available programs.
  • Navigation image elements 230 include at least one a directional control that enables the user to move the cursor in north, south, east and west directions over the display image 200.
  • Navigation image elements 230 may also include a zoom in element 234, a zoom out element 236 and a reset element 238.
  • a user may obtain a more detailed view of a subset of programs that are closely related in space to the current position on the content island by selecting the zoom in element 234.
  • the zoom in element 234 may be re-selected to further narrow the relatedness of the programs for the user.
  • the user may then select the zoom out element 236 if they have decided that the subset of programs shown is too narrow.
  • the user may select the reset element 238 if the user decides that they would like to seek out programs in a different content island thereby resetting the display image to the original view and positioning the cursor in a neutral position.
  • Figure 3 provides an exemplary algorithm executed by a controller of set top box 102 (Fig. 1 ) to produce the display image 200 of Figure 2.
  • the system builds a program attribute matrix P NXA where N is the number of programs at a given time period and A is the number of attributes used to determine the relatedness of the programs to one another.
  • the attributes used may include a unique number of genres by which programs may be classified. This is described for purposes of example only and any attribute that describes an aspect of a program may be used by the system.
  • the program attribute matrix is used to build a dissimilarity square matrix D NX N that enables the system to determine the dissimilarity between the programs based on the attributes.
  • the dissimilarity matrix may be calculated in step 304 in accordance with Equation 1 which provides
  • D is the dissimilarity square matrix
  • j is a second index value
  • P is the program attribute matrix value PN X A.
  • N is the number of items and A is the number of attributes.
  • step 306 the dissimilarity matrix is used to generate a co variance matrix CN X N-
  • step 308 the covariance matrix CN X N is used to determine the eigenvectors (Evec) and eigenvalues (Evai) for the given data and the eigenvalues are sorted in descending order and filtered to remove any negative and zero valued eigenvalues in accordance with the formula in Equation 2 which provides
  • the system In response to calculation of the eigenvalues for each program in the available set of programs, the system begins generation of a two dimensional array of programs for the display image.
  • step 310 two index values ( and j) are selected whereby the eigenvalues for the selected indexes have similar weights (E F va i (i) ⁇ E F va i 0)) ⁇ It is important to note that indexes having eigenvalues less than 1 are ignored.
  • the coordinates for each piece of content e.g. program
  • W the square root of the i lh eigenvalue with the i th eigenvector as shown in Equation 3: W
  • the coordinate calculations for each piece of content is repeated to generate a Coordinate Array having a size Nx2.
  • a scaling factor may be applied 'to the generated coordinate array in step 314.
  • the scaling factor is a function of screen size thus enabling the system to
  • Equation 4 An exemplary manner in which the scaling factor can be determined is shown in Equation 4:
  • Scale l/(Cmax - Cmin) * screen resolution value (4) where Cmax is the maximum coordinate value and Cmin is the minimum coordinate value. This is described for purposes of example only and any formula enabling the calculated coordinates for each piece of content to be mapped to a screen having a finite resolution may be used.
  • the programs in the array are associated with a color from a color scheme in step 316.
  • a further determination of a z-coordinate is made for each program in accordance with the formula in Equation 5 which provides
  • Ci(z) Evec[2,i]* E F vaJ [i] (5)
  • step 320 an indteeior corresponding to 25 each program (e.g. visual indicator 206 in Fig. 2) is positioned at a point on the grid using the coordinates for the program.
  • An exemplary piece of machine executable code able to perform steps 318 and 320 may be as follows:
  • N is total number of programs
  • EmbedFlag FindNextNearest AvailableGS
  • EmbedFlag FindNextNearestAvailableGS
  • Figure 4 is an exemplary display image of the spatial program guide.
  • Figure 4 includes similar elements as those described above with respect to Figure 2.
  • the display image in Figure 4 illustrates an embodiment of the present system whereby the user can selectively navigate a cursor box 402 over an area on the map representative of at least one content island 404 having a plurality of visual program indicators 406 contained therein.
  • the data items representing a subset of programs are automatically highlighted for display by the system in order to improve the user's view thereof.
  • the data items within the boundary of cursor box 402 are highlighted and the content islands and all other data items positioned outside the boundary of cursor box 402 are dimmed enabling the viewer to focus on the highlighted programs.
  • Figure 5 is another exemplary display image illustrating the user's ability to zoom in and obtain a greater level of detail associated with the subset of programs that were highlighted as discussed above with respect to Figure 4.
  • Figure 5 includes cursor box 402 highlighting a set of related programs.
  • the system provides a lasso tool enabling the user to drag the cursor or other pointer image element over a particular area to provide a smooth free scale zoom displaying a greater level of detail of each program within the boundary of the cursor box 402.
  • the zoomed area 502 includes a plurality of visual indicators 506 associated with respective programs.
  • These indicators 506 may be displayed larger than previously displayed when merely highlighted by the cursor box 402.
  • the zoomed section 502 advantageously provides a more detailed spatial view of a set of programs showing their level of relatedness and enabling user selection of a program from the set of available programs.
  • the lasso tool may operate in response to a pinching gesture made by a user's fingers directly on a touch-sensitive display device.
  • the spatial guide may be displayed on a touch screen enabled tablet computing device and the user may use their fingers to both navigate and move the cursor over the spatial program guide and by moving two fingers in a direction opposite one another or towards one another, the area of the spatial program guide may be at least one of zoomed in or zoomed out depending on the direction of the finger movements.
  • Figure 6 represents a portion of the display image 200 in Figure 2 that includes the overview map 220.
  • the user may automatically jump from one content island to another different content island by navigating a cursor area 602 from one area of the overview map 220 to a second different area.
  • Figure 6 provides an example of how the display image may change if the user moves the cursor area 602 from an area close to the content island representing "comedy" programs to the content island representing "news" programs.
  • the system automatically modifies the display to remove visual indicators 606 from being displayed and replace them with visual indicators 608 representing news programs. A user may then select a respective one of the programs associated with the visual indicators to be viewed and/or recorded at a later time.
  • FIG 7 is a block diagram of an exemplary controller 700 embodied in the set top box (Fig 1) that implements the system described above with respect to Figures 1 - 6.
  • the controller 700 may be a hardware component embodied in a set top box 102 as shown in Figure 1.
  • the controller 700 includes a tuner 710 that selectively receives and tunes an input signal 712.
  • the input signal may be a television broadcast signal formatted in a particular signal format such as those set forth by the Motion Pictures Experts Group (MPEG) or any other signal format used for encoding and transmitting audiovisual data and ancillary data associated with the audiovisual data.
  • the tuner 710 decodes any ancillary data accompanying the tuned input signal 712 and stores the decoded data in a memory 720.
  • the ancillary data may include
  • a primary display device 705 is coupled to the tuner 710 for displaying at least one of the tuned input signal and ancillary data including EPG data included in the input signal.
  • the memory 720 includes a data structure, such as a database, that includes a set of attributes used in describing program content.
  • the attribute set may be predefined by the content provider (cable/satellite provider) and correspond to content characteristics that are transmitted along with the input signal that describe the various programs able to be tuned by tuner 710.
  • the data structure in memory 720 enables each unique program listed in the ancillary data to be correlated with the plurality of attributes associated therewith which are derived from the ancillary data.
  • the function of a database for the EPG function may be located external to the controller 700.
  • An external database (not shown), would interface to the controller 700 via a suitable interface, such as a disc drive interface or a web interface for an external drive or cloud-based database respectively.
  • the controller 700 further includes an attribute processor 715 coupled to both the tuner 710 and the memory 720.
  • the attribute processor 715 automatically parses the ancillary data to identify a set of unique programs able to be tuned and which are listed in the ancillary data.
  • a unique program identifier is assigned to each unique program and is provided to the data structure in memory 720 thereby enabling collection of an individual set of related data for each respective unique program.
  • the attribute processor 715 also automatically parses the received ancillary data to identify information that describes the program and corresponds to at least one attribute of the set of attributes.
  • the data structure in memory 720 is automatically populated with data values representing the attribute information derived from the ancillary data.
  • the attribute processor 71 uses the unique program identifier to link the attribute data to the program.
  • the parsing and populating performed by the attribute processor 715 may occur in advance of the time frame in which the ancillary data will actually be displayed to a user. For example, if the ancillary data is electronic program guide data for a particular day, the parsing and populating of the data structure in memory 720 may occur at a predetermined time prior to the particular day. Alternatively, the parsing and populating may occur in response to receipt of a selection signal from a user.
  • the system may automatically take into consideration user preferences and past user behavior data for use as input in order to search for related content.
  • the system may automatically track user behavior including user navigation and content selection data that can be stored in memory 720.
  • the system can further access the user preference and navigation data to identify other potential types of related content information and content sources that are displayed to the user on the secondary display device.
  • the attribute processor may automatically update the set of attributes in the data structure stored in memory 720 thereby enabling additional attribute data to be collected and used in searching for related content information.
  • the user-specified attributes may enable the system to prioritize an order of sources of related content information to be searched.
  • the attribute processor 715 may be coupled to an internet interface 730 in order to initiate an attribute search algorithm enabling acquisition of additional types of attributes to be included in the data structure in memory 720 as well as data associated with a respective unique program that corresponds to a type of attribute stored in memory 720.
  • the attribute processor 715 queries the data structure in memory 720 to acquire attribute data which may be used to search additional sources for related content information and for sources where related content is stored.
  • the attribute data may be used as search terms in a searching algorithm to locate information about each respective program assigned a unique program identifier.
  • the attribute processor 715 initiates a search across at least one of a local and wide area network for information about the program.
  • the attribute information search algorithm executed by the attribute processor 715 engages an internet interface 730 which is coupled thereto to initiate a search of external data sources 735.
  • external data source 735 is a generic term used to denote any source of data for any purpose.
  • external data source 735 may be a source of content information (i.e. WikipediaTM or IMDB.comTM) or a content provider (i.e. NetflixTM, Fancast.com).
  • Data representing the results of the search are retrieved by the attribute processor 715 and may be stored in memory 720.
  • the search result data may be stored in a separate data structure than the attribute data but may be linked via the unique program identifiers so that the relevant data is quickly and easily retrieved when needed.
  • a cluster processor 725 is coupled to the attribute processor 715, memory 720, and the tuner 710 and automatically executes a clustering algorithm to generate at least one cluster containing all unique programs that are available to be accessed at a given time in order to show how closely the programs are related to one another.
  • the cluster processor 725 automatically queries the data structure in memory 720 to identify all unique programs available during a given time period and identifies these programs as the Sample Set of Available Programs.
  • the cluster processor 720 further queries the data structure in memory 720 to identify a set of attributes for use in calculating a distance vector defining how closely each unique program is related to another unique program.
  • the identified set of attributes is known as the Complete Set of Attributes wherein each attribute is one dimension of relatedness.
  • the cluster processor 725 automatically calculates a distance vector for each program using values associated with each attribute of the Complete Set of Attributes.
  • the calculated distance vectors are used as input to a clustering algorithm to generate at least one cluster identifying the n-dimensional relatedness of all of the programs in the Sample Set of Available Programs, wherein n is the number of attributes contained in the Complete Set of Attributes.
  • a map processor 727 is coupled to the cluster processor 725 and generates the map representing the spatial program to be displayed by the system.
  • the map processor 727 receives data representing the clusters generated by cluster processor 725 and identifies each cluster as a unique content island defined by at least one attribute used in calculating the cluster.
  • the plurality of content islands identified by the map processor 727 include at least one program of the sample set of available programs associated with the at least one attribute to form a subset of related programs.
  • the map processor 727 associates each program of the subset of programs with a respective image element that provides the user with the ability to identify the program to which it is referring.
  • the map processor 727 also automatically assigns at least one of a landmark indicator that will be representative of the programs on the content island.
  • the landmark indicator may be an image element having a size that is larger than image elements associated with the subset of programs.
  • the map processor 727 may automatically assign a landmark label describing the respective content island.
  • the map processor 727 may provide a background image element for each unique content island.
  • the map processor 727 may automatically assign a unique color to be associated with the background image element of the content island thereby enabling a user viewing the map of the spatial program guide to further distinguish between types of programs available at the given time.
  • Data representing the map generated by the map processor 727 is provided to a user interface (UI) display processor 740.
  • UI display processor 740 automatically formats the map for use as a spatial program guide according to a predetermined format (for example as shown in any of Figures 2, 4 and 5) and causes the spatial electronic program guide data to be displayed on at least one of the primary display device 705 and the secondary display device 745 which is separate and different from the primary display device 705.
  • the UI display processor 740 is responsive to a control signal generated by a user requesting display of the clustered electronic program guide data.
  • the UI display processor 740 may provide the formatted user interface to the internet interface 730 which functions as a webserver and allows a browser executing on the secondary display device 745 to be pointed to a hosted user interface allowing user access thereto. Once presented on the secondary display device 745, a user may browse and navigate the data items in the spatial electronic program guide in order to view and/or select programs that interests them.
  • the controller 700 may automatically take into account user subscription service information to determine if a respective program in the Sample Set of Available Programs is viewable by the user. For example, if the respective program is determined to be located on a premium channel and the user's subscription does not allow access to the particular channel, the system may automatically append the respective program identifier (e.g. icon) with a message telling the user that this content is available and related to certain other programs but is unavailable to the particular user due to content rights restrictions. Additionally, the message may also include information and/or a link enabling the user to modify service subscription so the respective content can be viewed by the user.
  • the respective program identifier e.g. icon
  • the controller 725 may engage the internet interface 730 to search external data sources 735 including content providers to determine if the program is available from another source to which the user does have access. For example, if the program is located on an unavailable premium channel, the system may search HULU® or FANCAST ® for the program and provide the source to the user on the secondary display device 745 in the form of a link viewable in a web browsing application.
  • the system may be embodied in a server responsible for serving a set of users.
  • the server executes the attribute search and clustering and map generation algorithms described above.
  • the server also provides the spatial program data to users over a communication network to reduce the bandwidth and processing power needed to perform a full search of all of the possible content information and content provider sources and the associated clustering.
  • the set top box may automatically execute an application that initiates the search in the database of the server for spatial program guide information thus reducing the amount of processing power, bandwidth and time required to provide the user with a clustered content guide information.
  • the spatial program guide advantageously enables the user to view and locate available programs quicker than typically associated with linear cable guide navigation.
  • An experiment was conducted to determine the effectiveness with which guide navigation and content location associated with the spatial program guide is implemented by the present system. The premise of the experiment was that exploring the spatial guide is faster than channel surfing with the linear guide. Therefore, for a lesser or equal amount of time spent, more relevant programs can be discovered with a spatial guide, and more satisfactory (optimal) coverage of available programs can be accomplished.
  • FIG. 8A A schematic outlining the parameters of the experiment is shown in Figures 8A and 8B whereby each participant was asked to identify three of their programs and each participant was asked to navigate either a linear program guide or a spatial program guide to locate two programs that were similar to their identified favorite programs.
  • Figure 8B represents Group B which was tasked to use a spatial guide for the first set of similar programs and linear guide for the second set of similar programs.
  • Figure 9 The results of the experiment are shown in Figure 9.
  • results indicate that, overall, users who used the spatial guide (21.63s) were 20% faster than users using the linear guide (26.86s) to locate similar programs. These results are determined by averaging the average time used by all users of the respective guides as both the primary and secondary guides. However, the truest indicator of improvement is found when looking to the performance of first guide "primary guide.” As mentioned earlier group A used a linear guide as their primary guide and group B used a spatial guide as their primary guide. The real act of discovering and locating related programs is embodied when using the primary guide because by the time participants used the secondary guide, they were familiar with guide contents.
  • a spatial program guide When used as a primary guide with unknown contents, users using a spatial program guide (reaching results in 23.68 seconds) were 33% faster in locating a related program than those users of the linear program guide (reaching results in 35.16 seconds).
  • a spatial program guide enhances navigation and location of content that are related to one another and provides the user with the ability to sample previously unknown content that is related to content they are already aware of and enjoy.
  • the implementations described herein may be implemented in, for example, a method or process, an apparatus, or a combination of hardware and software. Even if only discussed in the context of a single form of implementation (for example, discussed only as a method), the implementation of features discussed may also be implemented in other forms (for example, a hardware apparatus, hardware and software apparatus, or a computer-readable media).
  • An apparatus may be
  • processing devices may be implemented in, for example, appropriate hardware, software, and firmware.
  • the methods may be implemented in, for example, an apparatus such as, for example, a processor, which refers to any processing device, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device.
  • Processing devices also include communication devices, such as, for example, computers, cell phones, portable/personal digital assistants ("PDAs"), and other devices that facilitate communication of information between end-users.
  • PDAs portable/personal digital assistants
  • the methods may be implemented by instructions being performed by a processor, and such instructions may be stored on a processor or computer-readable media such as, for example, an integrated circuit, a software carrier or other storage device such as, for example, a hard disk, a compact diskette, a random access memory ("RAM"), a read-only memory (“ROM”) or any other magnetic, optical, or solid state media.
  • the instructions may form an application program tangibly embodied on a computer-readable medium such as any of the media listed above.
  • a processor may include, as part of the processor unit, a computer-readable media having, for example, instructions for carrying out a process.
  • the instructions corresponding to the method of the present invention, when executed, can transform a general purpose computer into a specific machine that performs the methods of the present invention.

Abstract

A method and system of providing a content guide identifying a spatial relationship between the elements in the content guide is described. The controller receives electronic program guide data including a plurality of programs, each program including data representing at least one program description attribute. A spatial relationship between the plurality programs is determined based on at least one program description attribute. A plurality of clusters is generated based on the determined spatial relationship of the programs, each cluster including a subset of the plurality of programs determined to be related to one another. A user interface display processor generates a user interface display image of a map representing a spatial content guide including the plurality of clusters based on the assigned position enabling the user to view the relationship of the plurality of programs.

Description

SPATIAL GUIDE FOR MEDIA CONTENT
DISCOVERY AND NAVIGATION
CROSS-REFERENCE TO RELATED APPLICATIONS
[001] This application is related to PCT Application entitled "Media Content
Spatial Navigation", Attorney Docket Number PU 00052, filed on even date herewith, which is incorporated herein by reference in its entirety.
FIELD
[002] The present arrangement provides a system and method for organizing and displaying electronic program guide data.
BACKGROUND
[003] Conventionally, a subscriber to a cable or satellite provider accesses content using a set top box connected to a display device. When selecting content to be accessed at a given time, the user may employ an electronic program guide (EPG) that is displayable on a screen in response to user generation of a control signal using a remote control. The EPG typically is a tabular formatted user interface that presents a listing of channels and information about programs on those channels for a given time period. Additionally, the EPG data is displayed to the user in a linear fashion organized by channel and by time. Cable/satellite operators have attempted to improve EPG guide navigation by grouping channels that are known to broadcast similar types of content. For example, a cable provider may set aside a block of channels that are known to broadcast sports content and a separate group that are known to broadcast home improvement or comedy content. While channel groupings have improved the ability of the user to find content that may be interesting, this method of content organization is limiting because a user is only able to view the limited programming on the set of channels at a given time. A drawback associated with accessing the content available is that it can be a tedious task for a consumer/user to sort through and locate content that may be interesting them and aggregate it in a meaningful manner. Moreover, the linear layout of the content guide obstructs the visualization of content similarities and dissimilarities. [004] Other systems have attempted to remedy the deficiencies associated with a linear program. However, exemplary non-linear program guides have failed to provide users with an accurate and true spatial relationship between the available content. In one example, a system represents television channels in a 3D helical path which is interactive but fails to show any type of content relation or spatial structure. Moreover, the use of a helical path does not differ significantly from the conventional linear content guides and therefore navigation/search time required to locate content is as inefficient as a conventional linear content guide.
[005] Another exemplary mode of improving content guide display and navigation is providing a display image including an information space having a visualization of a set of recommended programs located around a circumference of a circle that is positioned around a focus program in the center thereof. However, this non-linear display provides an extremely limited view of other content and does not provide any information identifying how the recommended content are related to the focus node or to one another. Similar systems have been extended to mobile devices. However, a drawback associated with these extensions is that, due to the screen size of the mobile device, there is even less number of possible programs able to be displayed.
Moreover, these systems are merely recommendation systems and operate using the premise of local visualization. A local visualization system focuses on a single piece of content and displays only content that is similar thereto in a pattern around the focus content. However, the drawback associated with these systems is that they require a user to know what type of content they are looking to access. These systems fail to provide a holistic representation of all available programs of any type enabling the user to determine the type of content that may be interesting. Therefore, there is a need to improve the surfing speed of the electronic program guide that enables faster selection of content derived from a larger set of content spread across multiple sets of channels.
SUMMARY
[006] An aspect of the invention includes an enhanced program guide
implementation which enables the user faster browsing and selection of media content such as, for example, television programs. [007] In one embodiment, a method of providing a content guide identifying a spatial relationship between the elements in the content guide is described. The controller receives electronic program guide data including a plurality of programs, each program including data representing at least one program description attribute. A spatial relationship between the plurality programs is determined based on at least one program description attribute. A plurality of clusters is generated based on the determined spatial relationship of the programs, each cluster including a subset of the plurality of programs determined to be related to one another. The respective clusters including the programs within the clusters are assigned to a unique position on display screen and at least one type of landmark indicator is assigned to respective ones of the plurality of clusters to identify a type of program contained within the respective cluster. A user interface display processor generates a user interface display image of a map representing a spatial content guide including the plurality of clusters based on the assigned position and including the at least one type of landmark indicator for respective ones of the plurality of clusters enabling the user to view the relationship of the plurality of programs.
[008] In another embodiment, a system for providing a content guide identifying a spatial relationship between the elements in the content guide is described. A receiver receives electronic program guide data including a plurality of programs, each program including data representing at least one program description attribute. A cluster processor determines a spatial relationship between the plurality programs based on at least one program description attribute and generates a plurality of clusters based on the determined spatial relationship of the programs, each cluster including a subset of the plurality of programs determined to be related to one another. A map processor assigns the respective clusters including the programs within the clusters to a unique position on display screen and assigns at least one type of landmark indicator to respective ones of the plurality of clusters to identify a type of program contained within the respective cluster. A user interface display processor generates an a user interface display image of a map representing a spatial content guide including the plurality of clusters based on the assigned position and including the at least one type of landmark indicator for respective ones of the plurality of clusters enabling the user to view the relationship of the plurality of programs. [009] The above presents a simplified summary of the subject matter in order to provide a basic understanding of some aspects of subject matter embodiments. This summary is not an extensive overview of the subject matter. It is not intended to identify key/critical elements of the embodiments or to delineate the scope of the subject matter. Its sole purpose is to present some concepts of the subject matter in a simplified form as a prelude to the more detailed description that is presented later. To the accomplishment of the foregoing and related ends, certain illustrative aspects of embodiments are described herein in connection with the following description and the annexed drawings. These aspects are indicative, however, of but a few of the various ways in which the principles of the subject matter can be employed, and the subject matter is intended to include all such aspects and their equivalents. Other advantages and novel features of the subject matter can become apparent from the following detailed description when considered in conjunction with the drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0010] FIG. 1 is a block diagram of a system in accordance with an aspect of an embodiment;
FIG. 2 is a two dimensional projection of an n-dimensional cluster in accordance with an aspect of an embodiment;
FIG. 3 is an exemplary flow diagram detailing operation of the system in accordance with an aspect of an embodiment;
FIG. 4 is an example layout of a navigational grid in accordance with an aspect of an embodiment;
FIG. 5 is an example of a cluster projection in accordance with an aspect of an embodiment;
FIG. 6 is an example of a mode of navigation in accordance with an aspect of an embodiment;
FIG. 7 is a block diagram of an exemplary controller in accordance with an aspect of an embodiment;
FIG. 8 is a schematic outlining parameters of an experiment in accordance with an aspect of an embodiment; and FIG. 9 show results of the experiment of FIG. 8 in accordance with an aspect of an embodiment.
DETAILED DESCRIPTION
[0011] The subject matter is now described with reference to the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the subject matter. It can be evident, however, that subject matter embodiments can be practiced without these specific details.
[0012] In other instances, well-known structures (such as power supplies, drivers, etc.) are omitted from block diagrams in order to facilitate describing the
embodiments.
[0013] As used in this application, the term "component" is intended to refer to hardware, or a combination of hardware and software in execution. For example, a component can be, but is not limited to being, a process running on a processor, a processor, an object, an executable running on a processor, and/or a microchip and the like. By way of illustration, both an application running on a processor and the processor can be a component. One or more components can reside within a process and a component can be localized on one system and/or distributed between two or more systems. Functions of the various components shown in the figures can be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software.
[0014] When provided by a processor, the functions can be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which can be shared. Moreover, explicit use of the term
"processor" or "controller" should not be construed to refer exclusively to hardware capable of executing software, and can implicitly include, without limitation, digital signal processor ("DSP") hardware, read-only memory ("ROM") for storing software, random access memory ("RAM"), and non-volatile storage. Moreover, all statements herein reciting instances and embodiments of the invention are intended to encompass both structural and functional equivalents. Additionally, it is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future (i.e., any elements developed that perform the same function, regardless of structure).
[0015] It should be noted that any hyperlinks used herein are used for purposes of example only. These hyperlinks may or may not be active and may or may not contain data. Any data stored at the location corresponding to any hyperlink is not required for an understanding of the present invention.
[00 6] Content providers provide access to different types of content to a plurality of users. For example, cable/satellite providers typically rent set top boxes to consumers which act as a portal or gateway for the delivery of different types of content. The equipment that selectively provides access to content advantageously accesses content guide data that can be decoded and displayed to a user on a display device. Content guide data includes a listing of at least one channel on which content may be accessed and information associated with the content on the at least one channel. An example is electronic program guide data (or electronic service guide data) that is delivered either directly inbound from the cable provider through the same channel as the broadcast data or through an added internet service that compiles and provides content guide data.
[0017] The present system is able to improve content guide data presentation and navigation using the relatedness of the content which is represented by hierarchical groupings of content in the form of clusters. Content, including (but not limited to) television programs or any other media programs, may be related to each other in numerous ways. The present system advantageously uses generated clusters of related pieces of content from a set of available content wherein the clusters were generated by considering all dimensions to which the content belongs. For example, content may be described using a plurality of different attributes that include information that describes the content wherein each attribute represents a respective dimension of the piece of content. Once clustered, the present system advantageously creates a holistic map view of all content available during a given time period and provides visual indicators that facilitate quick and simple navigation between different types of content. [0018] One exemplary embodiment of the system is shown in Figure 1 which includes a set top box 102, for example a cable television set top box, including a tuner module that selectively tunes an input signal 101 from a cable/satellite provider. Set top box 102 parses received program data, including program guide data, and populates a database 104 with attributes that are associated with respective programs available to be tuned by the tuner module. In this embodiment, the database may be embodied as a separate disc drive or a cloud database storage location accessible via a communication network. In an alternate embodiment, the database 104 may be embodied within the set top box 102. The structure of the database may have various tables that represent a particular time period of a day. In the respective tables, attributes used to describe content may be provided in the columns and the programs at that particular time period may be provided in the rows. As used herein, content includes television programs available from a cable/satellite provider. However, one skilled in the art would appreciate that content may be any audio-visual multimedia data that a user may access in any manner. In another embodiment, program attribute data may be acquired from a source of program information located on the internet/web 106. A cluster processor (as shown in Fig. 7) .provided within set top box 102, uses the stored attribute data to generate clusters based on the relatedness of the available programs. Each attribute that describes a program may be considered a dimension and the clustering algorithm executed by the cluster processor is able to selectively determine the n-dimensional relatedness of all of the programs at the given time. An exemplary manner in which attribute data may be used in generated n- dimensional clusters of available programs is described in PCT Application No. entitled "Media Content Spatial Navigation", Attorney Docket Number PU 100052, filed on even date herewith, which is incorporated herein by reference in its entirety. The present system makes uses of the clusters to generate a display image
representing a spatial electronic program guide that facilitates quick navigation between a broad spectrum of different types of available programs at a given time.
[0019] In the system embodiment of Figure 1 , the set top box 102 is coupled to a primary display device 108, for example a high definition television monitor, which selectively displays content corresponding to the signal tuned by the tuner module in the set top box 102. While a set top box 102 is described as the access point enabling selection and viewing of content, it should be noted that any device including at least one tuner module enabling selection of content may be used to implement the present system. Alternatively, the system may be implemented by any device that allows any piece of content to be selected and provided to a user in any manner. A secondary display device 1 10 may be provided for display of the clustered content guide generated by the system. The secondary display device 1 10 may be any computing device that has access to at least one of a local area network and wide area network and which can access and receive data representing a spatial electronic program guide from the set top box 102 for display thereon. Secondary display device 1 10 includes but is not limited to, a computer, a laptop, a netbook, a tablet computer, a cellular phone, a smart phone or a second monitor different from the primary display device 104. In another embodiment, the spatial program guide data may also be displayed on the primary display device 108. In a further embodiment, the present system may generate at least two display images including portions of the spatial electronic program guide data whereby one portion is displayed on the primary display device 108 and a second portion is displayed on a secondary display device 1 10.
[0020] The set top box 102 is controlled by a user 1 12 or other device (e.g. a VCR, a DVR, another tuner, etc) in a known manner, for example using a remote control (not shown), to cause the set top box 102 (or primary display device 108) to display a user interface including an electronic program guide on the primary display device 108. The program guide data includes information that describes the plurality of programs that are available to be tuned at a give time. The program guide may be automatically acquired by the set top box via a source of program guide data on the internet/world wide web 106. In creating the spatial program guide for display on either the primary display device 108 or the second display device 110, the clusters including program data are associated with at least one of an image element indicator enabling quick realization by a user of the program represented thereby. Additionally, in the display image, the clusters may be assigned at least one of an image element indicator and a text indicator that provides the user with a generalized description of the type of content contained within the cluster. For example, the clusters may be appended with a text indicator corresponding to the "genre" of the programs contained therein such as "news", "comedy", "drama", "action", etc. These labels are described for purposes of example only and any descriptor describing the cluster may be used. In one embodiment, the descriptor used for describing the cluster in a given spatial program guide display image may be derived from at least one attribute that was used in generating the cluster to which the program belongs (e.g. the most heavily weighted attribute used in calculating the distance relationships between all programs). In another embodiment, the descriptor used may be specified by a user.
[0021] The system may automatically associate the visual and text indicators with the indicators for all programs in advance of the present time frame in order to have all image data available when presentation of the spatial program guide is requested. For example, the system may, for each given time period, perform the clustering of program data and generate representative spatial program guide display images to be stored and recalled at the given time period. This may ensure set top box performance and display of data is not hindered when a user is actually viewing program content on the primary display device 108.
[0022] An exemplary display image 200 of the spatial electronic program guide is shown in Figure 2. The display image 200 may be generated by the present system in response to receipt of a program guide request signal generated by a user using a remote control, for example. The display image 200 represents all available content that is available to a user at a given time period in clustered form. For example, if the program guide request signal is received at 4: 15 pm, this display image may include all available programs that may be accessed during the hour between 4:00pm and 5:00pm. This is described for purposes of example only and the time period need not be restricted to the current hour and may be increased or decreased as desired. In another embodiment, the display image may automatically change should the user wish to navigate from a current time period to a future time period such that the display image would provide clustered content data available during the future time period.
[0023] The display image 200 is generated based on a clustering algorithm executed by the system that identifies and determines the relatedness of all programs in a sample set of available programs based on a set of attributes that describe each program within the sample set of available programs. Each generated cluster is identified as a content island and includes a plurality of visual indicators representing the plurality of programs contained within the cluster and located "on the content island". For example, the clustering algorithm executed by the system may have generated clusters using the attribute "genre" as a key attribute for organizing the relatedness of the programs. In this example, related programs in the "drama" genre are contained on content island 202. Content island 202 includes a plurality of visual indicators 204 identifying the respective programs on the content island 202. Visual indicators may be derived from a source of image data such as a database containing box art that identifies the respective program. In another embodiment, visual indicator image data may be acquired by initiating a search of content information sources (e.g. Wikipedia™) or content provider sources (e.g. HULU®, NETFLIX™, etc) to locate image data that corresponds to and allow a user to easily identify the program on the content island 202.
[0024] Content islands may also be appended with a particular background color to further aid in distinguishing different types of available content. For example, the visual indicators 204 for content island 202 may be presented on a green background whereas the visual indicators for a different content island may appear on a light blue background. The color scheme for the content islands is described for purposes of example only and the system may automatically select the color for the background for each content island at random. Alternatively, the color scheme for the content islands may be specified by a user. For example, if the user knows they are most interested in sports content, then the content island including sports programs may be presented on a background having a color chosen by a user based on the user's belief that the color stands out better than any other color.
[0025] Additionally, content island 202 includes at least one type of landmark indicator 206. A landmark indicator 206 may be a representational data item for each content island. In one embodiment, the landmark indicator 206 may be displayed as relatively large sized thumbnails enabling quick viewing and understanding as to the nature of the programs located on the content island. The landmark indicator 206 may be selected on the basis of some predefined criteria. For example, the system may select the landmark indicator 206 using content-specific criteria including but not limited to (a) popularity of a particular piece of content; (b) the ratings associated with a particular piece of content; (c) an indication that the content has been recommended; and (d) an indication that the content is a featured piece of content. The pre-defined criteria may also be user-specific criteria based on information contained in a user profile. For example, user-specific criteria may be based on (a) program viewing history; and (b) user specification that a particular piece of content is preferred above other content. In one embodiment, the landmark indicator may be an easily identifiable and high resolution image of the content in order to assist users in knowing what type of content it represents.
[0026] Additionally, for each cluster that forms a content island, a landmark label providing a text-based description of the programs on the respective content island is provided to aid the user in quickly understanding the types of programs available at the given time period. Continuing with the example of content island 202, a landmark label 208 indicates that content island 202 includes programs that are part of the genre type "drama". Also displayed are few text-based landmarks {labels) which provide a finer level of identification. Other examples of landmark labels that may be associated with a cluster of programs may include any descriptive term that provides a text-based understanding of the programs contained therein.
[0027] The display image 200 including landmark indicators and landmark labels advantageously enables the user to visually skim a large amount of data representing available programs while processing what the data actually means. The automatic display of the landmark indicators and landmark labels further advantageously enables the user to comprehend all available options without having to take any further action aside from requesting display of the spatial program guide display image 200. This is known as "chunking" whereby the user is able to visually skim a large set of data and quickly comprehend the meaning thereof. The ability to quickly process all available options at a given time period enables the user to more quickly narrow down and focus on the program or type of programs that are of interest.
[0028] Display image 200 further includes an overview map of all of the types of content that are available. An exemplary representation of the overview map is presented in the box labeled 220. In one embodiment, the overview map 220 may include visual representation of the clusters using the background colors associated with each content island along with the landmark labels associated with each content island. The overview map 230 may remain fixed during user navigation of the display image as discussed above. In one embodiment a tracking element is positioned over the overview map 220 and moves based on user navigation of the various content islands. This advantageously provides the user with a quick reference as to where they are located on the map of related programs should the user more narrowly focus their attention from a content island as a whole to a set of programs within a particular content island, for example. The overview map 220 may be a scaled down view of the display image 200 including scaled down versions of the plurality of content islands with a subset of at least one of the landmark indicators and the landmark labels. The overview map 220 advantageously provides the user with a high-level picture of the region when the user has zoomed in on the programs on the content island.
Additionally, the overview map 220 selectively enables the user to jump from a first position on the map to a second different position by selecting the second different position on the overview map 220.
[0029] Display image 200 further includes a set of user selectable navigation image elements 230 enabling a user to move a cursor over various positions in display image 200 thereby allowing the user to navigate between content islands to enable the user to view the different types of available programs. Navigation image elements 230 include at least one a directional control that enables the user to move the cursor in north, south, east and west directions over the display image 200. Navigation image elements 230 may also include a zoom in element 234, a zoom out element 236 and a reset element 238. Upon using the directional navigation elements 232 to selectively position the cursor over a desired content island including a plurality of programs contained therein, a user may obtain a more detailed view of a subset of programs that are closely related in space to the current position on the content island by selecting the zoom in element 234. The zoom in element 234 may be re-selected to further narrow the relatedness of the programs for the user. The user may then select the zoom out element 236 if they have decided that the subset of programs shown is too narrow. Alternatively, the user may select the reset element 238 if the user decides that they would like to seek out programs in a different content island thereby resetting the display image to the original view and positioning the cursor in a neutral position. [0030] Figure 3 provides an exemplary algorithm executed by a controller of set top box 102 (Fig. 1 ) to produce the display image 200 of Figure 2. In step 302, the system builds a program attribute matrix PNXA where N is the number of programs at a given time period and A is the number of attributes used to determine the relatedness of the programs to one another. As shown in Figure 2, the attributes used may include a unique number of genres by which programs may be classified. This is described for purposes of example only and any attribute that describes an aspect of a program may be used by the system. The program attribute matrix is used to build a dissimilarity square matrix DNXN that enables the system to determine the dissimilarity between the programs based on the attributes. The dissimilarity matrix may be calculated in step 304 in accordance with Equation 1 which provides
D(i,j) Element = Dissimilarity (Ρ',Ρ')
= Norm (PI-PI) (1 )
Where D is the dissimilarity square matrix, is a first index value, j is a second index value and P is the program attribute matrix value PNXA. where N is the number of items and A is the number of attributes..
[0031] In step 306, the dissimilarity matrix is used to generate a co variance matrix CNXN- In step 308, the covariance matrix CNXN is used to determine the eigenvectors (Evec) and eigenvalues (Evai) for the given data and the eigenvalues are sorted in descending order and filtered to remove any negative and zero valued eigenvalues in accordance with the formula in Equation 2 which provides
Sort: Es vai ^"Eva]
Filter: EF va] <r Es vai such that EF va, (i) >0 for all /
wherein the Sizeof(EF vai) <= Sizeof(Es vai) (2)
[0032] In response to calculation of the eigenvalues for each program in the available set of programs, the system begins generation of a two dimensional array of programs for the display image. In step 310, two index values ( and j) are selected whereby the eigenvalues for the selected indexes have similar weights (EF vai (i) ~ EF vai 0))· It is important to note that indexes having eigenvalues less than 1 are ignored. In step 312 the coordinates for each piece of content (e.g. program) is obtained by multiplying the square root of the ilh eigenvalue with the ith eigenvector as shown in Equation 3: W
14
Ci(x) = Evec[0,i]*V EF va][i]
Ci(y) = Evec[l !i]* EF val[i] (3)
The coordinate calculations for each piece of content is repeated to generate a Coordinate Array having a size Nx2.
[0033] A scaling factor may be applied 'to the generated coordinate array in step 314. The scaling factor is a function of screen size thus enabling the system to
automatically map the coordinates to a screen size having a finite resolution. An exemplary manner in which the scaling factor can be determined is shown in Equation 4:
Scale = l/(Cmax - Cmin) * screen resolution value (4) where Cmax is the maximum coordinate value and Cmin is the minimum coordinate value. This is described for purposes of example only and any formula enabling the calculated coordinates for each piece of content to be mapped to a screen having a finite resolution may be used.
[0034] Once the coordinate array is generated, the programs in the array are associated with a color from a color scheme in step 316. To associate each program with a color, a further determination of a z-coordinate is made for each program in accordance with the formula in Equation 5 which provides
Ci(z) = Evec[2,i]* EF vaJ[i] (5)
20 and the (x,y,z) coordinates for each program are used to obtain a color from a data source including a color scheme.
[0035] Once the coordinates are determined for each program in the data set and the color is associated therewith, the system generates a grid having a size substantially the size of the display screen in step 318. In step 320, an indteeior corresponding to 25 each program (e.g. visual indicator 206 in Fig. 2) is positioned at a point on the grid using the coordinates for the program. An exemplary piece of machine executable code able to perform steps 318 and 320 may be as follows:
Build Matrix: MWxH, where
30 W<-width of screen area
H - height of screen area
Width of a grid = 10 pixels Height of a grid = 10 pixels
Loop 0 -> N: N is total number of programs
CP^- Current Program (x,y) Coordinates
GS^- Array of Grid Slots identified by their top-left coordinates (x,y)
EmbedFlag False
WHILE(!EmbedFlag):
IF CP(x,y) IN GS(x,y):
IF GS(x.y) IS Unoccupied
Embed CP
EmbedFlag = True
ELSE:
EmbedFlag = FindNextNearest AvailableGS
Else:
EmbedFlag = FindNextNearestAvailableGS
Function: FindNextNearestAvailableGS
C <- Current Search Block
CB = 1
IF left neighbor slot IS unoccupied return True
ELSEIF right neighbor slot IS unoccupied return True
ELSEIF top neighbor slot IS unoccupied return True
ELSEIF bottom neighbor slot IS unoccupied return True
ELSE
Increment CB by 1
Call FindNextNearestAvailableGS
One skilled in the art will realize that the principles embodied in the above section of code may be implemented in any program language able to executed by a processing device. Once generated, the spatial program guide may be displayed on at least one of a primary or secondary display device enabling the user to selectively view the spatial relationship of all of the available programs at the given time period. [0036] Figure 4 is an exemplary display image of the spatial program guide. Figure 4 includes similar elements as those described above with respect to Figure 2. The display image in Figure 4 illustrates an embodiment of the present system whereby the user can selectively navigate a cursor box 402 over an area on the map representative of at least one content island 404 having a plurality of visual program indicators 406 contained therein. Upon positioning the cursor over an area of the spatial program guide, the data items representing a subset of programs are automatically highlighted for display by the system in order to improve the user's view thereof. In one embodiment, the data items within the boundary of cursor box 402 are highlighted and the content islands and all other data items positioned outside the boundary of cursor box 402 are dimmed enabling the viewer to focus on the highlighted programs.
[0037] Figure 5 is another exemplary display image illustrating the user's ability to zoom in and obtain a greater level of detail associated with the subset of programs that were highlighted as discussed above with respect to Figure 4. Figure 5 includes cursor box 402 highlighting a set of related programs. The system provides a lasso tool enabling the user to drag the cursor or other pointer image element over a particular area to provide a smooth free scale zoom displaying a greater level of detail of each program within the boundary of the cursor box 402. The zoomed area 502 includes a plurality of visual indicators 506 associated with respective programs.
These indicators 506 may be displayed larger than previously displayed when merely highlighted by the cursor box 402. The zoomed section 502 advantageously provides a more detailed spatial view of a set of programs showing their level of relatedness and enabling user selection of a program from the set of available programs.
[0038] In another embodiment, the lasso tool may operate in response to a pinching gesture made by a user's fingers directly on a touch-sensitive display device. For example, the spatial guide may be displayed on a touch screen enabled tablet computing device and the user may use their fingers to both navigate and move the cursor over the spatial program guide and by moving two fingers in a direction opposite one another or towards one another, the area of the spatial program guide may be at least one of zoomed in or zoomed out depending on the direction of the finger movements. [0039] Another exemplary mode of navigation is shown in Figure 6. Figure 6 represents a portion of the display image 200 in Figure 2 that includes the overview map 220. As shown herein, the user may automatically jump from one content island to another different content island by navigating a cursor area 602 from one area of the overview map 220 to a second different area. Figure 6 provides an example of how the display image may change if the user moves the cursor area 602 from an area close to the content island representing "comedy" programs to the content island representing "news" programs. The system automatically modifies the display to remove visual indicators 606 from being displayed and replace them with visual indicators 608 representing news programs. A user may then select a respective one of the programs associated with the visual indicators to be viewed and/or recorded at a later time.
[0040] Figure 7 is a block diagram of an exemplary controller 700 embodied in the set top box (Fig 1) that implements the system described above with respect to Figures 1 - 6. The controller 700 may be a hardware component embodied in a set top box 102 as shown in Figure 1. The controller 700 includes a tuner 710 that selectively receives and tunes an input signal 712. The input signal may be a television broadcast signal formatted in a particular signal format such as those set forth by the Motion Pictures Experts Group (MPEG) or any other signal format used for encoding and transmitting audiovisual data and ancillary data associated with the audiovisual data. The tuner 710 decodes any ancillary data accompanying the tuned input signal 712 and stores the decoded data in a memory 720. The ancillary data may include
Electronic Program Guide (EPG) data or any other data encoded and transmitted with the input signal 712. A primary display device 705 is coupled to the tuner 710 for displaying at least one of the tuned input signal and ancillary data including EPG data included in the input signal.
[0041] The memory 720 includes a data structure, such as a database, that includes a set of attributes used in describing program content. The attribute set may be predefined by the content provider (cable/satellite provider) and correspond to content characteristics that are transmitted along with the input signal that describe the various programs able to be tuned by tuner 710. The data structure in memory 720 enables each unique program listed in the ancillary data to be correlated with the plurality of attributes associated therewith which are derived from the ancillary data. In an alternative embodiment, the function of a database for the EPG function, may be located external to the controller 700. An external database (not shown), would interface to the controller 700 via a suitable interface, such as a disc drive interface or a web interface for an external drive or cloud-based database respectively.
[0042] The controller 700 further includes an attribute processor 715 coupled to both the tuner 710 and the memory 720. The attribute processor 715 automatically parses the ancillary data to identify a set of unique programs able to be tuned and which are listed in the ancillary data. A unique program identifier is assigned to each unique program and is provided to the data structure in memory 720 thereby enabling collection of an individual set of related data for each respective unique program. The attribute processor 715 also automatically parses the received ancillary data to identify information that describes the program and corresponds to at least one attribute of the set of attributes. The data structure in memory 720 is automatically populated with data values representing the attribute information derived from the ancillary data. The attribute processor 71 uses the unique program identifier to link the attribute data to the program. The parsing and populating performed by the attribute processor 715 may occur in advance of the time frame in which the ancillary data will actually be displayed to a user. For example, if the ancillary data is electronic program guide data for a particular day, the parsing and populating of the data structure in memory 720 may occur at a predetermined time prior to the particular day. Alternatively, the parsing and populating may occur in response to receipt of a selection signal from a user.
[0043] In another embodiment, the system may automatically take into consideration user preferences and past user behavior data for use as input in order to search for related content. The system may automatically track user behavior including user navigation and content selection data that can be stored in memory 720. The system can further access the user preference and navigation data to identify other potential types of related content information and content sources that are displayed to the user on the secondary display device. By considering user preferences and behavior, the attribute processor may automatically update the set of attributes in the data structure stored in memory 720 thereby enabling additional attribute data to be collected and used in searching for related content information. For example, the user-specified attributes may enable the system to prioritize an order of sources of related content information to be searched.
[0044] The attribute processor 715 may be coupled to an internet interface 730 in order to initiate an attribute search algorithm enabling acquisition of additional types of attributes to be included in the data structure in memory 720 as well as data associated with a respective unique program that corresponds to a type of attribute stored in memory 720. The attribute processor 715 queries the data structure in memory 720 to acquire attribute data which may be used to search additional sources for related content information and for sources where related content is stored. The attribute data may be used as search terms in a searching algorithm to locate information about each respective program assigned a unique program identifier. The attribute processor 715 initiates a search across at least one of a local and wide area network for information about the program. The attribute information search algorithm executed by the attribute processor 715 engages an internet interface 730 which is coupled thereto to initiate a search of external data sources 735. As used herein, external data source 735 is a generic term used to denote any source of data for any purpose. For example, external data source 735 may be a source of content information (i.e. Wikipedia™ or IMDB.com™) or a content provider (i.e. Netflix™, Fancast.com). Data representing the results of the search are retrieved by the attribute processor 715 and may be stored in memory 720. The search result data may be stored in a separate data structure than the attribute data but may be linked via the unique program identifiers so that the relevant data is quickly and easily retrieved when needed.
[0045] A cluster processor 725 is coupled to the attribute processor 715, memory 720, and the tuner 710 and automatically executes a clustering algorithm to generate at least one cluster containing all unique programs that are available to be accessed at a given time in order to show how closely the programs are related to one another. The cluster processor 725 automatically queries the data structure in memory 720 to identify all unique programs available during a given time period and identifies these programs as the Sample Set of Available Programs. The cluster processor 720 further queries the data structure in memory 720 to identify a set of attributes for use in calculating a distance vector defining how closely each unique program is related to another unique program. The identified set of attributes is known as the Complete Set of Attributes wherein each attribute is one dimension of relatedness. The cluster processor 725 automatically calculates a distance vector for each program using values associated with each attribute of the Complete Set of Attributes. The calculated distance vectors are used as input to a clustering algorithm to generate at least one cluster identifying the n-dimensional relatedness of all of the programs in the Sample Set of Available Programs, wherein n is the number of attributes contained in the Complete Set of Attributes.
[0046] A map processor 727 is coupled to the cluster processor 725 and generates the map representing the spatial program to be displayed by the system. The map processor 727 receives data representing the clusters generated by cluster processor 725 and identifies each cluster as a unique content island defined by at least one attribute used in calculating the cluster. The plurality of content islands identified by the map processor 727 include at least one program of the sample set of available programs associated with the at least one attribute to form a subset of related programs. The map processor 727 associates each program of the subset of programs with a respective image element that provides the user with the ability to identify the program to which it is referring. The map processor 727 also automatically assigns at least one of a landmark indicator that will be representative of the programs on the content island. The landmark indicator may be an image element having a size that is larger than image elements associated with the subset of programs. In another embodiment, the map processor 727 may automatically assign a landmark label describing the respective content island.
[0047] In another embodiment, the map processor 727 may provide a background image element for each unique content island. The map processor 727 may automatically assign a unique color to be associated with the background image element of the content island thereby enabling a user viewing the map of the spatial program guide to further distinguish between types of programs available at the given time.
[0048] Data representing the map generated by the map processor 727 is provided to a user interface (UI) display processor 740. UI display processor 740 automatically formats the map for use as a spatial program guide according to a predetermined format (for example as shown in any of Figures 2, 4 and 5) and causes the spatial electronic program guide data to be displayed on at least one of the primary display device 705 and the secondary display device 745 which is separate and different from the primary display device 705. The UI display processor 740 is responsive to a control signal generated by a user requesting display of the clustered electronic program guide data.
[0049] In one embodiment, the UI display processor 740 may provide the formatted user interface to the internet interface 730 which functions as a webserver and allows a browser executing on the secondary display device 745 to be pointed to a hosted user interface allowing user access thereto. Once presented on the secondary display device 745, a user may browse and navigate the data items in the spatial electronic program guide in order to view and/or select programs that interests them.
[0050] In one embodiment, the controller 700 may automatically take into account user subscription service information to determine if a respective program in the Sample Set of Available Programs is viewable by the user. For example, if the respective program is determined to be located on a premium channel and the user's subscription does not allow access to the particular channel, the system may automatically append the respective program identifier (e.g. icon) with a message telling the user that this content is available and related to certain other programs but is unavailable to the particular user due to content rights restrictions. Additionally, the message may also include information and/or a link enabling the user to modify service subscription so the respective content can be viewed by the user. In another embodiment, if content is not within a user's subscription level, the controller 725 may engage the internet interface 730 to search external data sources 735 including content providers to determine if the program is available from another source to which the user does have access. For example, if the program is located on an unavailable premium channel, the system may search HULU® or FANCAST ® for the program and provide the source to the user on the secondary display device 745 in the form of a link viewable in a web browsing application.
[0051] In another embodiment, the system may be embodied in a server responsible for serving a set of users. In this embodiment, the server executes the attribute search and clustering and map generation algorithms described above. The server also provides the spatial program data to users over a communication network to reduce the bandwidth and processing power needed to perform a full search of all of the possible content information and content provider sources and the associated clustering. In response to a request to display content guide information, the set top box may automatically execute an application that initiates the search in the database of the server for spatial program guide information thus reducing the amount of processing power, bandwidth and time required to provide the user with a clustered content guide information.
[0052] As discussed above, the spatial program guide advantageously enables the user to view and locate available programs quicker than typically associated with linear cable guide navigation. An experiment was conducted to determine the effectiveness with which guide navigation and content location associated with the spatial program guide is implemented by the present system. The premise of the experiment was that exploring the spatial guide is faster than channel surfing with the linear guide. Therefore, for a lesser or equal amount of time spent, more relevant programs can be discovered with a spatial guide, and more satisfactory (optimal) coverage of available programs can be accomplished.
[0053] A schematic outlining the parameters of the experiment is shown in Figures 8A and 8B whereby each participant was asked to identify three of their programs and each participant was asked to navigate either a linear program guide or a spatial program guide to locate two programs that were similar to their identified favorite programs. In this experiment, judgments of similarity of programs were left to the individual participants. The participants were divided into 2 groups. Figure 8A represents Group A which was tasked with using a linear guide for the first set of similar programs followed by spatial guide for the second set. Figure 8B represents Group B which was tasked to use a spatial guide for the first set of similar programs and linear guide for the second set of similar programs. The results of the experiment are shown in Figure 9. The results indicate that, overall, users who used the spatial guide (21.63s) were 20% faster than users using the linear guide (26.86s) to locate similar programs. These results are determined by averaging the average time used by all users of the respective guides as both the primary and secondary guides. However, the truest indicator of improvement is found when looking to the performance of first guide "primary guide." As mentioned earlier group A used a linear guide as their primary guide and group B used a spatial guide as their primary guide. The real act of discovering and locating related programs is embodied when using the primary guide because by the time participants used the secondary guide, they were familiar with guide contents. When used as a primary guide with unknown contents, users using a spatial program guide (reaching results in 23.68 seconds) were 33% faster in locating a related program than those users of the linear program guide (reaching results in 35.16 seconds). Thus, the creation and implementation of a spatial program guide enhances navigation and location of content that are related to one another and provides the user with the ability to sample previously unknown content that is related to content they are already aware of and enjoy.
[0054] The implementations described herein may be implemented in, for example, a method or process, an apparatus, or a combination of hardware and software. Even if only discussed in the context of a single form of implementation (for example, discussed only as a method), the implementation of features discussed may also be implemented in other forms (for example, a hardware apparatus, hardware and software apparatus, or a computer-readable media). An apparatus may be
implemented in, for example, appropriate hardware, software, and firmware. The methods may be implemented in, for example, an apparatus such as, for example, a processor, which refers to any processing device, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. Processing devices also include communication devices, such as, for example, computers, cell phones, portable/personal digital assistants ("PDAs"), and other devices that facilitate communication of information between end-users.
[0055] Additionally, the methods may be implemented by instructions being performed by a processor, and such instructions may be stored on a processor or computer-readable media such as, for example, an integrated circuit, a software carrier or other storage device such as, for example, a hard disk, a compact diskette, a random access memory ("RAM"), a read-only memory ("ROM") or any other magnetic, optical, or solid state media. The instructions may form an application program tangibly embodied on a computer-readable medium such as any of the media listed above. As should be clear, a processor may include, as part of the processor unit, a computer-readable media having, for example, instructions for carrying out a process. The instructions, corresponding to the method of the present invention, when executed, can transform a general purpose computer into a specific machine that performs the methods of the present invention.
[0056] What has been described above includes examples of the embodiments. It is, of course, not possible to describe every conceivable combination of components or methodologies for purposes of describing the embodiments, but one of ordinary skill in the art can recognize that many further combinations and permutations of the embodiments are possible. Accordingly, the subject matter is intended to embrace all such alterations, modifications and variations that fall within the spirit and scope of the appended claims.

Claims

1. A method of providing a content guide identifying a spatial relationship between elements in the content guide, the method performed by a controller with an internet interface, the method comprising:
a. receiving, by the controller, an electronic program guide data including a plurality of programs, each program including data representing at least one program description attribute;
b. determining a spatial relationship between the plurality programs based on at least one program description attribute;
d. generating a plurality of clusters based on the determined spatial relationship of the programs, each cluster including a subset of the plurality of programs determined to be related to one another;
e. assigning the respective clusters including the programs within the clusters to a unique position on display screen and assigning at least one type of landmark indicator to respective ones of the plurality of clusters to identify a type of program contained within the respective cluster; and
f. generating, by a user interface display processor an a user interface display image of a map representing a spatial content guide including the plurality of clusters based on the assigned position and including the at least one type of landmark indicator for respective ones of the plurality of clusters enabling a user to view the spatial relationship of the plurality of programs.
2. The method of claim 1 , further comprising:
assigning a different background image element to respective ones of the plurality of clusters.
3. The method of claim 2, wherein the activity of generating the user interface display image further comprises:
generating a second map display image having a size smaller than the map representing the spatial content guide and including the plurality of clusters identified by the different background image elements and the at least one type of landmark indicator.
4. The method of claim 1 , further comprising:
associating a program specific image element with respective ones of the plurality of programs in respective clusters.
5. The method of claim 1 , further comprising:
for each cluster, selecting a respective program including a program specific image element from the plurality of programs in the cluster to be a representative program identifying the types of program contained in the cluster; and
assigning the representative program as the at least one type of landmark indicator.
6. The method of claim 1 , wherein the activity of assigning at least one type of landmark indicator further comprises:
identifying a data value associated with of at least one program description attribute used in determining the spatial relationship of the programs; and
assigning the data value of the at least one program description attribute as the at least one type of landmark indicator, each cluster having a different data value of the at least one program description attribute.
7. The method of claim 1 , further comprising:
enabling navigation by a user between the plurality of clusters using a navigation image element moveable over the generated user interface display image.
8. The method of claim 7, further comprising:
selecting a respective one of the plurality of clusters as an active cluster; and generating an active cluster display image including the programs contained within the cluster over the display image of the map representing the spatial content guide.
9. The method of claim 8, wherein the activity of selecting includes at least one of dragging a navigation element over a portion of a cluster on the map and using two fingers for performing a pinch motion on a touch sensitive display device.
10. A system for providing a content guide identifying a spatial relationship between elements in the content guide, the system comprising:
a receiver that receives electronic program guide data including a plurality of programs, each program including data representing at least one program description attribute;.
a cluster processor that determines a spatial relationship between the plurality of programs based on at least one program description attribute and generates a plurality of clusters based on the determined spatial relationship of the programs, each cluster including a subset of the plurality of programs determined to be related to one another;
a map processor that assigns the respective clusters including the programs within the clusters to a unique position on a display screen and assigns at least one type of landmark indicator to respective ones of the plurality of clusters to identify a type of program contained within the respective cluster; and
a user interface display processor that generates an a user interface display image of a map representing a spatial content guide including the plurality of clusters based on the assigned position and including the at least one type of landmark indicator for respective ones of the plurality of clusters enabling the user to view the relationship of the plurality of programs.
1 1. The system of claim 1 , wherein the map processor assigns a different background image element to respective ones of the plurality of clusters.
12. The system of claim 1 1 , wherein the user interface generator generates a second map display image having a size smaller than the map representing the spatial content guide and including the plurality of clusters identified by the different background image elements and the at least one type of landmark indicator.
13. The system of claim 10, wherein the map processor associates a program specific image element with respective ones of the plurality of programs in respective clusters.
14. The system of claim 10, wherein the map processor selects, for each cluster, a respective program including a program specific image element from the plurality of programs in the cluster to be a representative program identifying the types of program contained in the cluster and assigns the representative program as the at least one type of landmark indicator.
15. The system of claim 10, wherein the map processor assigns the at least one type of landmark indicator further by identifying a data value associated with of at least one program description attribute used in determining the spatial relationship of the programs and assigning the data value of the at least one program description attribute as the at least one type of landmark indicator, each cluster having a different data value of the at least one program description attribute.
16. The system of claim 10, wherein the map processor that enables navigation by a user between the plurality of clusters using a navigation image element selectively moveable over the generated user interface display image.
17. The system of claim 16, wherein the map processor receives a signal selecting a respective one of the plurality of clusters as an active cluster and generates an active cluster display image including the programs contained within the cluster over the display image of the map representing the spatial content guide.
18. The system of claim 17, wherein the signal selecting the active cluster may be generated by a user by at least one of dragging a navigation element over a portion of a cluster on the map and using two fingers for performing a pinch motion on a touch sensitive display device.
PCT/US2011/000272 2011-02-15 2011-02-15 Spatial guide for media content discovery and navigation WO2012112132A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/US2011/000272 WO2012112132A1 (en) 2011-02-15 2011-02-15 Spatial guide for media content discovery and navigation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/000272 WO2012112132A1 (en) 2011-02-15 2011-02-15 Spatial guide for media content discovery and navigation

Publications (1)

Publication Number Publication Date
WO2012112132A1 true WO2012112132A1 (en) 2012-08-23

Family

ID=44065605

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2011/000272 WO2012112132A1 (en) 2011-02-15 2011-02-15 Spatial guide for media content discovery and navigation

Country Status (1)

Country Link
WO (1) WO2012112132A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140052763A1 (en) * 2011-06-08 2014-02-20 Sony Corporation Information processing device, information processing method and computer program product

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998053391A2 (en) * 1997-05-16 1998-11-26 Koninklijke Philips Electronics N.V. Spatial browsing approach to multimedia information retrieval
US5987470A (en) * 1997-08-21 1999-11-16 Sandia Corporation Method of data mining including determining multidimensional coordinates of each item using a predetermined scalar similarity value for each item pair
US20010030667A1 (en) * 2000-04-10 2001-10-18 Kelts Brett R. Interactive display interface for information objects
US20040103432A1 (en) * 2002-11-25 2004-05-27 Barrett Peter T. Three-dimensional program guide

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998053391A2 (en) * 1997-05-16 1998-11-26 Koninklijke Philips Electronics N.V. Spatial browsing approach to multimedia information retrieval
US5987470A (en) * 1997-08-21 1999-11-16 Sandia Corporation Method of data mining including determining multidimensional coordinates of each item using a predetermined scalar similarity value for each item pair
US20010030667A1 (en) * 2000-04-10 2001-10-18 Kelts Brett R. Interactive display interface for information objects
US20040103432A1 (en) * 2002-11-25 2004-05-27 Barrett Peter T. Three-dimensional program guide

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CHARU C. AGGARWAL, PHILIP S. YU: "Finding Generalized Projected Clusters in High Dimensional Spaces", 2000, pages 70 - 81, XP002640467, Retrieved from the Internet <URL:http://portal.acm.org/citation.cfm?id=335383> [retrieved on 20110706] *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140052763A1 (en) * 2011-06-08 2014-02-20 Sony Corporation Information processing device, information processing method and computer program product
US10108643B2 (en) * 2011-06-08 2018-10-23 Sony Corporation Graphical interface device, graphical interface method and medium

Similar Documents

Publication Publication Date Title
KR101729701B1 (en) Media content spatial navigation
AU2012304456B2 (en) Apparatus and method for EPG sorting and automatic realignment
US7734680B1 (en) Method and apparatus for realizing personalized information from multiple information sources
US8869211B2 (en) Zoomable content recommendation system
US8793731B2 (en) Enhanced content search
US20120317085A1 (en) Systems and methods for transmitting content metadata from multiple data records
US11755936B2 (en) Systems and methods for determining that a media item is being presented
US20170105040A1 (en) Display method, apparatus and related display panel
CN103907357A (en) System and method for presenting a video stream
CN103959795A (en) System and method for obtaining video streams
CN103959286A (en) System and method for identifying availability of media items
US10509836B2 (en) Systems and methods for presenting search results from multiple sources
US10984057B2 (en) Method and apparatus for search query formulation
US20150143435A1 (en) System and method for managing mashup service based on the content of media content
US9106966B2 (en) Multi-dimensional channel directories
WO2012112132A1 (en) Spatial guide for media content discovery and navigation
WO2016154307A1 (en) Method and system for generating personalized images for gategorizing content
WO2017120300A1 (en) Content delivery systems and methods

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11706048

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11706048

Country of ref document: EP

Kind code of ref document: A1