Optimized HTML5 Electronic Programming Guide Application
An electronic programming guide (EPG) data manager module is provided. The EPG data module provides an event driven infrastructure to provide EPG data to a hypertext markup language 5 (HTML5) applications. The HTML EPG application presents an EPG data window in a user interface on a display device. The EPG data is provided to the EPG application in scriptable data objects generated to be rendered by the HTML5 EPG application based upon the EPG data window to be presented.
This application claims priority to U.S. non-provisional patent application Ser. No. 13/890,775 filed May 9, 2013, which is hereby incorporated by reference in its entirety.
TECHNICAL FIELDThe present disclosure relates to electronic programming guides (EPG) and in particular to management of EPG data and navigation in a hypertext markup language (HTML) based EPG application.
BACKGROUNDSet-top boxes, Smart TVs, tablets or smartphones can provide an electronic programming guide (EPG) to enable a user to navigate programming schedules and other broadcast media programming with continuously updated time related EPG information for current and upcoming programs. The EPGs are presented in an interactive user interface allowing the user to navigate programs based upon channel (or source) and time to select specific programs for viewing or recording. The EPGs requires data which is typically provided by a service provider and can span a defined time period, typically but not limited to 7 to 14 days, and can be provided in a compressed data format.
In order to present the EPG, the EPG data is retrieved via a network or pushed to the device, the files are then decompressed and the user interface is generated to present the EPG. Hypertext Markup Language 5 (HTML5), as developed by the World Wide Web Consortium (W3C) and JavaScript (JS), as defined in the ECMA-262 specification and ISO/IEC 16262, EPG implementations provide flexibility in user interface design; however they can be memory and processor intensive when working with large datasets such as provided in EPG data. The EPG data handling to generate the EPG results in a number of performance problems and can utilize a large amount of memory resources. There are currently a number of approaches to creating an EPG application in HTML. A first approach is to use a native visual plug-in that manages the EPG data and the rendering of the data in the user interface, which provides optimal performance but provides limited ability to customize the display of the EPG data and does not leverage the flexibility of HTML5. A second approach manages the EPG data and display entirely in HTML/JS implementation, which makes navigation of the EPG data slow and memory intensive since the EPG data needs to be cached in JS and all the logic of the EPG navigation needs to be done via JS and HTML5. For example a byte of compressed EPG data may result in a 100 fold increase in data size when loaded into JS and formatted in HTML. Creating an HTML5 EPG application is very complex since the HTML5 EPG application needs to handle all the aspects of the EPG application including, navigation, rendering, data management which can be taxing on the limited processing and memory resources in device such as set-top boxes, Smart TVs, tablets and smartphones.
Accordingly, systems and methods that enable improved EPG data management in the presentation of an EPG in an HTML5 application remain highly desirable.
Further features and advantages of the present disclosure will become apparent from the following detailed description, taken in combination with the appended drawings, in which:
It will be noted that throughout the appended drawings, like features are identified by like reference numerals.
DETAILED DESCRIPTIONIn accordance with an aspect of the present disclosure there is provided a system for presenting an electronic program guide (EPG) user interface (UI) on a display device, the system comprising: an EPG application defined in an Hypertext Markup Language 5 (HTML5) based platform, the HTML5 EPG application presenting programming information defined within an EPG data window in the UI on the display device; and an EPG data manager module for providing EPG data received from one or more EPG data files to the HTML5 EPG application, the EPG data provided by scriptable data objects for the EPG data window, the scriptable data objects provided to the EPG application to render the EPG data window in the user interface on the display device.
In accordance with another aspect of the present disclosure there is provided a method of generating an electronic program guide (EPG) by a processor in a user interface presented on a display device, the method comprising: determining an EPG data window to be presented in the HTML5 EPG application in the user interface presented on the display device; generating at least one scriptable data object from EPG data based upon the determined EPG data window; and providing the generated scriptable data object to the HTML5 EPG application to instruct rendering of the EPG data in the user interface presented on the display device.
In accordance with yet another aspect of the disclosure there is provided A non-transitory computer readable memory containing instructions for generating an electronic program guide (EPG) by a processor in a user interface presented on a display device, the instructions comprising: determining an EPG data window to be presented in the HTML5 EPG application in the user interface presented on the display device; generating at least one scriptable data object from EPG data based upon the determined EPG data window; and providing the generated scriptable data object to the HTML5 EPG application to instruct rendering of the EPG data in the user interface presented on the display device.
Embodiments are described below, by way of example only, with reference to
An additional method is illustrated in
The EPG 102 is generated by an HTML5 platform based EPG application executed by a processor of the display device 100 or digital media receiver 200. The HTML5 EPG application renders the user interface and inserts the EPG data for formatting and display using HTML5 to provide flexibility in appearance and presentation. HTML5 applications typically utilize cascading style sheets (CSS) for describing the presentation semantics of the user interface to receive and process EPG data and determine user feedback and transitions. In addition, JS may be utilized for implementing portions of the EPG user interface and data interaction through control of CSS properties as well as other HTML5-integrated presentation technologies, such as SVG, Canvas, WebGL and other alternatives). HTML5 provides flexibility in allowing user interface to be readily implemented however the EPG user interface can limit the flexibility when tied to underlying data processing functions required for the EPG presentation due to the increased memory requirement when processing EPG data within the HTML 5 EPG application.
The EPG data manager module 440 may be presented as a plug-in to the HTML5 Browser 420 and the HTML5 EPG application 422. The event handler 430 provides a defined interface to facilitate transfer of EPG data between the EPG data manager module 440 and the EPG application 422 and initiate visual updates by the EPG application 422 in response to EPG events such as navigation inputs or changes in EPG data or timeframes. The EPG data manager module 440 handles all complex functionality of the EPG application 422 such as navigation, caching and view window management. The EPG data manager 400 can be provided as a module within the HTML5/JS browser or as a native code application that is a compiled intermediate level language product such as C and C++ to compile directly to the hardware instruction set. In response to a navigation input or changes in the EPG data set, such as a time transition or programming changes, the EPG data manager module 440 determines the data for the view window that is displayed in the EPG application 422. The EPG data manager module 440 determines the EPG data required to update the data window to reflect the navigation or EPG data changes to modify the subset of EPG data displayed in the UI. The EPG data manager module 440 retrieves the required EPG data segment(s), if not already cached, and decompresses the data and provides the data objects via the event handler 430 to the EPG application 422 to update the EPG data window. The event handler 430 instructs the EPG application 422 to render the EPG components when the view window has been updated. The event driven infrastructure notifies the HTML5 EPG application 422 when portions of the EPG user interface display needs to be updated and limits the processing requirements on the EPG application 422. Calls from the EPG data manager module 440 providing a scriptable data object to the event handler 432 enables updates of EPG data to be provided to the EPG application 422 and pushed to the user interface. Functions may be performed such as providing an EPG data update to notify the user interface that the EPG display needs to be updated with the given EPG data, a time slot update to notify the user interface that the EPG visible time slots needs to be updated, or a focus/selection update to notify a change in the user-selected program to be displayed within the user interface.
Referring to
Although the implementation is described relative a grid format EPG, the implementation may be utilized in other implementations such as carousel navigation. In addition, although HTML5 has been described, the described system, method and computer readable memory may be applicable to future HTML standards based upon HTML5 framework.
In some embodiments, any suitable computer readable media can be used for storing instructions for performing the methods described herein. For example, in some embodiments, computer readable media can be transitory or non-transitory. For example, non-transitory computer readable media can include media such as magnetic media (such as hard disks, etc.), optical media (such as compact discs, digital video discs, blu-ray™ discs, etc.), semiconductor media (such as flash memory, electrically programmable read only memory (EPROM), electrically erasable programmable read only memory (EEPROM), etc.), any suitable media that is not fleeting or devoid of any semblance of permanence during transmission, and/or any suitable tangible media.
Although the description discloses example methods, system and apparatus including, among other components, software executed on hardware, it should be noted that such methods and apparatus are merely illustrative and should not be considered as limiting. For example, it is contemplated that any or all of these hardware and software components could be embodied exclusively in hardware, exclusively in software, exclusively in firmware, or in any combination of hardware, software, and/or firmware. Accordingly, while the following describes example methods and apparatus, persons having ordinary skill in the art will readily appreciate that the examples provided are not the only way to implement such system, methods and apparatus.
Claims
1. A system for presenting an electronic program guide (EPG) user interface (UI) on a display device, the system comprising:
- an EPG application defined in an Hypertext Markup Language 5 (HTML5) based platform, the HTML5 EPG application presenting programming information defined within an EPG data window in the UI on the display device; and
- an EPG data manager module for providing EPG data received from one or more EPG data files to the HTML5 EPG application, the EPG data provided by scriptable data objects for the EPG data window, the scriptable data objects provided to the EPG application to render the EPG data window in the user interface on the display device.
2. The system of claim 1 wherein the EPG data window is a subset of available EPG data.
3. The system of claim 1 or 2 wherein the scriptable data object is generated in response to a navigation event generated by the EPG application changing the EPG data rendered in the EPG data window.
4. The system of claim 1 or 2 wherein the scriptable data object is generated in response to an API call from the EPG application.
5. The system of claim 1 or 2 wherein the scriptable data object is generated in response to an EPG event associated with a change in the EPG data which results in a change in the EPG data window.
6. The system of claim 1 or 2 wherein the scriptable data object is generated in response to an EPG event associated with a change in time resulting in a change in the EPG data window.
7. The system of any one of claims 1 to 6 further comprising an event handler for providing EPG events to the EPG data manager module and receiving scriptable data objects from the EPG data manager module and instructing the EPG application to render the EPG using data from the scriptable data objects.
8. The system of claim 7 wherein the event handler generates navigation events in response to user navigation within the UI, the navigation event provided to the EPG data manager module.
9. The system of any one of claims 1 to 8 wherein the EPG data manager module determines an EPG data file from a plurality of EPG data files based upon the EPG data window, each EPG data file containing programming data for one or more content sources for a defined time period.
10. The system of claim 9 wherein the EPG data manager module decompresses one or more EPG data files from the plurality of EPG data files.
11. The system of claim 10 wherein the EPG data manager module extracts EPG data larger than the EPG data window from the one or more EPG data files and caches data based upon predictive cache actions based upon event requests received from an event handler.
12. The system of any one of claims 1 to 11 wherein the EPG data manager module is a compiled intermediate level language product compiled directly to a hardware instruction set.
13. The system of claim 12 wherein the EPG data manager module is generated in native code compiled from C or C++.
14. The system of any one of claims 1 to 13 wherein the an EPG data manager module retrieves an overview file for rendering the EPG data window prior to retrieving EPG data from the one or more EPG data files the overview file providing high-level EPG data while detailed EPG data is retrieved from the one or more EPG data files.
15. The system of claims 14 wherein the overview file provides one or more of channel, program title, genre, rating, start time or duration.
16. The system of claims 15 wherein the one or data files provides one or more of channel, program title, genre, rating, air date, production date, start time, duration, description, actor, icons.
17. A method of generating an electronic program guide (EPG) by a processor in a user interface presented on a display device, the method comprising:
- determining an EPG data window to be presented in an Hypertext Markup Language 5 (HTML5) EPG application in the user interface presented on the display device;
- generating at least one scriptable data object from EPG data based upon the determined EPG data window; and
- providing the generated scriptable data object to the HTML5 EPG application to instruct rendering of the EPG data in the user interface presented on the display device.
18. The method of claim 17 wherein the EPG data window is determined by receiving EPG configuration parameters from the HTML5 EPG application, the configuration parameters defining the EPG data window to be presented from the EPG data.
19. The method of claim 17 or 18 wherein the EPG data window is a subset of available EPG data.
20. The method of any one of claims 17 to 19 wherein determining the EPG data window further comprises receiving a navigation event generated by the EPG application changing EPG data to be presented in the EPG data window wherein the scriptable data object is generated in response to the navigation event.
21. The method of any one of claims 17 to 20 wherein determining the EPG data window further comprises receiving an EPG event associated with a change in the EPG data therefore changing the EPG data window wherein the scriptable data object is generated in response to the EPG event.
22. The method of any one of claims 17 to 21 wherein determining the EPG data window further comprises determining an EPG event based upon a change in time therefore changing the EPG data to be presented in the EPG data window wherein the scriptable data object is generated in response to the change in time.
23. The method in any one of claims 17 to 22 wherein the EPG data is provided in one or more data files, wherein the EPG data is retrieved by decompressing data from the one or more data files to retrieve the EPG data to generate the scriptable data objects.
24. The method in claim 23 wherein generating the at least one scriptable data object from EPG data further comprises:
- determining one or more data files that are associated with the data window;
- retrieving the determined one or more data files; and
- decompressing the retrieved one or more data files.
25. The method of any one of claims 17 to 24 wherein each scriptable data object contains status information NOCHANGED, ADDED, UPDATED or REMOVED to aid to the EPG application in efficiently updating rendering of the EPG data window.
26. The method of claim 25 where each scriptable data object contains one or more CSS selectors that reflect a display state of the scriptable data object.
27. The method of claim 26 where the CSS selectors are calculated by based on the scriptable data object attributes.
28. The method of claim 23 further comprising the retrieving an overview file of EPG data for generating the at least one scriptable data object.
29. The method of claim 28 further comprising retrieving an overview file of EPG data for generating the at least one scriptable data object before retrieving the one or more data files.
30. The method of claim 23 further comprising:
- retrieving an overview file of EPG data for generating the at least one scriptable data object before retrieving the one or more data files, the one or more data file provided additional EPG data;
- generating at least one scriptable data object from EPG data based upon the determined EPG data window from the overview file; and
- providing the generated scriptable data object to the HTML5 EPG application to instruct rendering of the EPG data in the user interface presented on the display device before retrieving the one or more data files.
31. The method of claims 30 wherein the overview file provides one or more of channel, program title, genre, rating, start time or duration.
32. The method of claims 31 wherein the one or data files provides one or more of channel, program title, genre, rating, air date, production date, start time, duration, description, actor, icons.
33. A non-transitory computer readable memory containing instructions for generating an electronic program guide (EPG) by a processor in a user interface presented on a display device, the instructions comprising for implementing the method of claims 17 to 32.
34. A method of presenting an electronic programming guide (EPG) the method comprising:
- determining an EPG data window for display in the EPG;
- retrieving an overview file that covers a requested EPG data window;
- generating a scriptable data object from overview EPG data in the overview file;
- rendering the EPG guide using scriptable data object having the overview data;
- retrieving one or more data file segments having full data for the requested EPG data window;
- generating an updated scriptable data object from EPG data in the one or more data file segments; and
- rendering the EPG guide using the updated scriptable data object from the EPG data in the EPG data window.
35. The method of claim 34 further comprising determining if full EPG data for the EPG data window has already been previously cached, if the full EPG data has been cached the EPG guide is rendered using the full EPG data.
36. The method of claim 34 or 35 further comprising decompressing the one or more data file segments prior to generating the updated scriptable data object.
37. The method of claim 36 wherein the one or data files segments is decompressed in the background.
38. The method of claim 37 wherein an EPG application is defined in a Hypertext Markup Language 5 (HTML5) based platform, the HTML5 EPG application presenting programming information defined within an EPG data window in the user interface on a display device.
39. The method of claim 38 wherein the EPG data manager provides EPG data received from one or more EPG data files to the HTML5 EPG application, the EPG data provided by scriptable data objects for the EPG data window, the scriptable data objects provided to the EPG application to render the EPG data window in the user interface on the display device.
40. The method of claim 39 wherein the EPG data window is determined by receiving EPG configuration parameters from the HTML5 EPG application, the configuration parameters defining an EPG time period for the EPG data window to be presented from the EPG data.
41. The method of claim 40 wherein the EPG data window is a subset of available EPG data.
42. The method of any one of claim 34 or 41 wherein determining the EPG data window further comprises receiving a navigation event generated by the EPG application changing EPG data to be presented in the EPG data window wherein the scriptable data object is generated in response to the navigation event.
43. The method of any one of claims 34 to 41 wherein determining the EPG data window further comprises receiving an EPG event associated with a change in the EPG data therefore changing the EPG data window wherein the scriptable data object is generated in response to the EPG event.
44. The method of any one of claims 34 to 41 wherein determining the EPG data window further comprises determining an EPG event based upon a change in time therefore changing the EPG data to be presented in the EPG data window wherein the scriptable data object is generated in response to the change in time.
45. The method of any one of claims 34 to 44 wherein each scriptable data object contain status information NOCHANGED, ADDED, UPDATED or REMOVED to aid to the EPG application in efficiently updating rendering of the EPG.
46. The method of claim 45 where each scriptable data object contains one or more CSS selectors that reflect a display state of the scriptable data object.
47. The method of claim 46 where the CSS selectors are calculated based on the scriptable data object attributes.
48. The method of any one of claims 34 to 47 wherein the overview file provides one or more of channel, program title, genre, rating, start time or duration.
49. The method of claim 48 wherein the one or data files provides one or more of channel, program title, genre, rating, air date, production date, start time, duration, description, actor, and icons.
50. A non-transitory computer readable memory containing instructions for generating an electronic program guide (EPG) by a processor in a user interface presented on a display device, the instructions comprising for implementing the method of claims 34 to 49.
Type: Application
Filed: May 9, 2014
Publication Date: Dec 8, 2016
Inventors: Dat Doan (Georgetown), Kumanan Yogaratnam (Ottawa)
Application Number: 14/890,117