CA2420857A1 - Method and system of creating enhancement content to be displayed with a television program - Google Patents
Method and system of creating enhancement content to be displayed with a television program Download PDFInfo
- Publication number
- CA2420857A1 CA2420857A1 CA002420857A CA2420857A CA2420857A1 CA 2420857 A1 CA2420857 A1 CA 2420857A1 CA 002420857 A CA002420857 A CA 002420857A CA 2420857 A CA2420857 A CA 2420857A CA 2420857 A1 CA2420857 A1 CA 2420857A1
- Authority
- CA
- Canada
- Prior art keywords
- file
- user interface
- displayable element
- web browser
- displayable
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/235—Processing of additional data, e.g. scrambling of additional data or processing content descriptors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/235—Processing of additional data, e.g. scrambling of additional data or processing content descriptors
- H04N21/2355—Processing of additional data, e.g. scrambling of additional data or processing content descriptors involving reformatting operations of additional data, e.g. HTML pages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/258—Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
- H04N21/25808—Management of client data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/435—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management 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/462—Content 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/4622—Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4782—Web browsing, e.g. WebTV
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/637—Control signals issued by the client directed to the server or network components
- H04N21/6377—Control signals issued by the client directed to the server or network components directed to server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/65—Transmission of management data between client and server
- H04N21/658—Transmission by the client directed to the server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/8166—Monomedia components thereof involving executable data, e.g. software
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8543—Content authoring using a description language, e.g. Multimedia and Hypermedia information coding Expert Group [MHEG], eXtensible Markup Language [XML]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8545—Content authoring for generating interactive applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/858—Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
- H04N21/8586—Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot by using a URL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/08—Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division
- H04N7/087—Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only
- H04N7/088—Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division with signal insertion during the vertical blanking interval only the inserted signal being digital
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/16—Analogue secrecy systems; Analogue subscription systems
- H04N7/162—Authorising the user terminal, e.g. by paying; Registering the use of a subscription channel, e.g. billing
- H04N7/165—Centralised control of user terminal ; Registering at central
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/16—Analogue secrecy systems; Analogue subscription systems
- H04N7/173—Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
- H04N7/17309—Transmission or handling of upstream communications
- H04N7/17318—Direct or substantially direct transmission and handling of requests
Abstract
A system and method for creating a platform independent enhancement file for television employs a web based editor with local functions for repositioning and sizing of displayable elements. Elements comprise text, graphics, images, or imported HTML files. Trigger information associated with elements controls the time and actions performed when rendering the displayable elements. A
database comprises data representing elements, element attributes, trigger information and project information. A file generation process queries the database and produces a platform independent XML compatible script file. The script file may be parsed and the resultant HTML/Javascript file may be previewed employing a web browser. The script file may be parsed with other tools to provide HTML files for specific platforms without modification of the script file.
database comprises data representing elements, element attributes, trigger information and project information. A file generation process queries the database and produces a platform independent XML compatible script file. The script file may be parsed and the resultant HTML/Javascript file may be previewed employing a web browser. The script file may be parsed with other tools to provide HTML files for specific platforms without modification of the script file.
Description
TELEVISION ENHANCEMENT
Cross Reference to Related Applications This application is based upon and claims priority of United States provisional application serial number 601227,930, entitled "SYSTEM AND METHOD FOR WEB
)3ASED ENHAU1CED 1NTERACT1VE TELEVISION CONTENT PAGE LAYOUT", 1o filed August 25,.2000 by Steve O. Market; United States provisional application serial number 60/227,063; entitled "A DATA DRIVEN SYSTEM AND METHOD FOR
bISTRIBUTION OF INTERACTIVE CONT?~:3~1T TO MULTIPLE TARGETED
PRESENTATION PLATFORMS" filed August 21, 2000 by Steven O. Market, and United States provisional application serial number 60/227,918, entitled "METHOD OF
is ENI:IANCING STREAMING MEDIA CONTENT" filed August 25, 2000 by Steven O.
Market, the entire disclosure of which is herein specifically incorporated by reference for all that it discloses and teaches.
Back ound a. Field The present disclosure relates to interactive and enhanced television and, more particularly, to a method and system of creating enhancement content that may be displayed in conjunction with a television program. This disclosure discusses systems and methods for web based enhanced interactive television content page layout.
b. Descn~tion of the Background A television program may be accompanied by additional information employed to enhance the program or to provide viewer interaction. Enhancements have historically included closed captioning and multilingual support. Advances in networking, computer systems, and video production have increased the ntunber and types of enhancements that may be provided with a program or advertisement. Enhancements may include stock updates, news stories, Internet links, weather forecasts, bulletins, statistics, trivia, and other information. For example, a football game may include icons allowing viewing of team players, statistics, trivia and other information such as upcoming games.
Further, the advent of set-top-boxes, as may be used in cable and satellite television systems, allows enhancement inforrisation to be presented in new ways, such as screen overlays and in windows, for example.
Enhanced television content may employ a combination of FTTML (hypertext markup language), ravaScript, Java and other formats common to lntemet page display.
An enhanced display may comprise text, icons, graphics and images placed at locations on or in proximity to the television image. To produce an enhanced display, an author i0 must create a file identifying each displayed element (such as text, icons, graphics and images),.the location where each element is displayed, and the starting time a duration for which an element or group of elements is displayed. Paevious methods employed.to enter parameters required to generate and position the elements comprising the layout of enhanced pages have involved manually entry. The resultant application program may 1s require compilation and execution in order to view the resultant image or images. This may be an iterative process, requiring multiple compilations before a desired result is obtained. Such iterative processes may be costly and time consuming.
Additionally, due to the numerous differences between presentation platforms, such as set top boxes, satellite receivers, computers, or interactive televisions, content 20 providers have historically been required to target a specific platform in the development of an application. In order to provide support for each additional platform, the interactive content provider must introduce potentially significant modifications to the existing application, resulting in the ongoing maintenance of multiple code bases and adding to the time and cost.required to produce enhanced page layouts for multiple platforms.
25 Further, web page design tools, such as FrontPageTM, DreamWeawerTM, and others, do not support administrative capabilities nor do they support databases.
Therefore a new method of creating enhanced content that allows utilization across multiple platforms and provides an accurate preview of enhancements is needed.
Summary of the Tnvention The present invention overcomes the disadvantages and limitations of the prior art by providing an interactive television enhancement authoring method acid system allowing simple development of text, graphics, and image display, emulation of the enhancements, and production of a platform independent enhancement file, called iTVML, that may be parsed, using a publisher tool (such as iTV Publisher from Intellocity), to create interactive television enhanced cor_tent files specific to a particular platform such as WEHTVTM, AOLTVTM or other platforms. An authoring program communicates with a web browser such that the present invention may be utilized locally or across a network.
The invention may therefore comprise a method for creating a television presentation enhancement comprising: defining a window in a graphical user interface;
placing a displayable element at a position in the window; defining a time when the displayable element may be rendered; employing a database to store information describing the displayable element and the time; creatYng a platform independent television enhancement file containing informarion related to the displayable element and th.e time; parsing the platform independent television enhancement file to produce an HTML file; and viewing the HTML file.
2o Software downloaded to the browser pzovides'drag and drop' and zesizing editing functjons at the user's bzowser,' eliminating delays that may be incurred due network . .
latencies and server workload if these functions were implemented at the server. The invention comprises a number of user screens that may be accessed through ffRLs that provide administrative, project, page, layout, trigger, emulation, and fiVML
export.
Administrative functions provide user accounts, login, and tutorials. The project and page screens provide access to projects and specific enhancement pages with the projects. The layout page provides an easy to use, user-friendly graphical editing environment where elements such as text, graphics, images, and executable routines may be placed on a video display area (canvas) and may be moved and sized. The trigger furietions provide 3o synchronization of tl~e presentation of enhancements to a specified event, such as frame time or presentation duration, far example. The emulation functian getzerates an iTV'IvIL
file and parses the file for web browser presentation, providing ari accurate representation of the enhancement if viewed on a television. The iTVML export function provides , generation and saving of an iTVML file.
The invention may therefore further comprise a system for creating television enhancements comprising: a graphical user interface implemented in a web browser environment; a rectangular area defined in the browser environment; a user interface that places a displayable element in the rectangular area; a user interface that specifies a iime at which the displayable element may be rendered; a database that stores information associated with the displayable element and information associated with the time; a 1o pointing device; and a user interface that initiates generation of an XML
file containing tags for the information associated with the displayable element and the information associated with the time.
Advantageously, the present invention provides an efficient, easy to use s~rstem and method for creating television enhancements that produces a platform independent 15 enhancement file. The enhancement file may be emulated using the invention to preview the appearance of the enhancements. The enhancement file zxaay be parsed by other tools to produce platform dependent enhancement files without re-editing, resulting in lower costs to support a range of presentation platforms, and uniformity in the content of the enhancements provided.
Description of the Figures In. the figures, Figure I depicts html and image support for a group ofcoxtunercially available set top box products.
Figure 2 depicts the software environment of the present invention.
Figure 3 depicts software components of the authoring program. .
Figure 4 is a screen depiction of the administration rrtodule configured for user login.
3o Figure 5 depicts aprojects screen.
Figure 6 depicts a pages screen.
Figure 7 depicts a layout page screen.
Figure 8 depicts a triggers screen.
Figure 9 depicts an emulation screen, Figure 10 depicts an XML screen.
Figure 11 is a flowchart of a method far selecting an element on the canvas of the layout screen.
Figure 12 is a flowchart of a method for moving and/or resizing an element on the canvas of the layout screen.
Figure 13 depicts an iTVML generation process.
Figure 14 depicts a process for,creating an, XML compliant string containing header information.
Figure 15 depicts a process for creating an XML compliant content string, Figure 16 depicts a pxocass for creating an XML compliant timeline string.
is Detailed Description of the invention Figure 1 depicts HTML and image support for a group of commercially available set top box products. Set top box models 100 provide HTML support 102 and image 2o support 104. HTML support 102 lists support for html 1,,0, 2.0, and 3.2 versions. A
limitation of HTML is that some versions lack downward compatibility- For example, HTML versions 4 and higher do not support alI the tags of HTIVlL 3.2. Figure 1 serves to illustrate that an HTIvI)_, based author for creating enhanced content would not be able to support a wide range of target platforms. The present invention overcomes the 25 disadvantages of HTML based authoring by providing an authoring tool that generates an extended XML file, called iT'VML, that may be parsed using XSL scripts for each plat~orrn type to produce HTlvIL code and Javascripts suitable for each platform- Through the use of the iTVML author of the present invention, enhancements need only be authored once, and then XSL scripts specific to each set top box, or types of set top boxes 3o may be applied, thereby preserving the investment in authoring by not requiring changes for each platform.
Figure 2 depicts the software environment of the present invention. Authoring components 200 comprise database 202 and authoring program 204. Rendering component 206 comprises a display program 208 that may be viewed employing a browser display utility such as l4licrosoft Internet Explorer.. Database 202 may comprise Microsoft ADO (ActiveX Data Objects) from Microsoft Cotporati.on. ActiveX is a set of programming rules that allows the output of other applications, such as spreadsheets and word processors for example, to be viewed iz~ web browser formats. Authoring program 204 rnay employ a programming environment such as Script. Visual Basic Scripting Edition (most commonly referred to as VBScript) is a subset of Microsoft 'Visual Basic.
to Display program 208 may comprise Javascript components. JavaSeript is a scripting language that allows lines of Java code to be inserted into HTML scripts. Java is an object oriented programming language created by Surf Ivlicrosystems_ Java is a device independent language, meaning that programs compiled in Java can be reui on any computer. Java programs can be run as a free-standing application, or as an applet placed 1 S on a web page. Applets written in Java may be served from a web site and executed on a client computer. Fox example, a JavaScript function may be employed to verify that users enter valid information into a form requesting a user ID and password. Without any network transmission, an HTML page with embedded JavaScript carx interpret nhe entered text and alert the user with a message dialog if the input is invalid.
Further, JavaScript .
2o statements embedded is an HTML page can recognize and respond to user events such as mouse clicks, form input, and page navigation. Such response may comprise execution of an applet, connmunication with a browser plug-in, or other action.
Figure 3 dzpicts components of authoring program 204 shown in figure 2.
Authoring program 300 comprises administration module 302, projects module 304, 25 pages module 306, layout module 308, triggers module 310, emulation module 312 and export module 314. Each of the aforementioned modules may be accessed employing a browser and a URL Universal Resource Locator (URL) identifying the location of the HTML and Javascript code that maybe employed to produce each page.
Figure 4 is a screen depiction of the administration rxlodule configured for user 30 login. Administration module 400 is accessed via URL 402. Administration module 400 may provide entry of user name 404 and user password 406. The user may select login button 408, new user button 410, or tutorial button 412 to access functions of this module. New user button 410 allows an account to be established for a new user. Tutorial button 412 may be employed to receive information concerning use of the present invention. Once a user has entered a valid usemame and password, a screen representative of one of the other modules depicted in figure 3 may be displayed. The user may navigate between modules by selecting navigation buttons located in each screen.
Figure 5 depicts a projects screen. Projects screen 500 may be accessed through UItT. 502. Projects screen 500 comprises project selector 504, project information and 1o control area 506 and navigation buttons 508. Project selector 504 allows the user to select from existing projects. Control area 506 comprises project information and control buttons. Project information may corriprise a project name, status information to indicate the state of completion of a project, author name, client, duration of the enhancement, the number of frames for which the enhancement is displayed, the .start frame, the start page, 15 the video file to which the enhancement may be applied, return bandwidth that indicates .
the rate at which an enhancement may be delivered, a return connect time indicating latency in establishing a connection, the TV format employed (such as NTSC or PAL.), notes concerning the enhancement, a file to which the enhancement may be published, and email addresses for XML and HT'vIL code. Control area 506 may comprise buttons zo that allow selection of a new project (and savitzg of the current project), deletion of a project, publishing of an iTVML ale and publishing of the project. Navigation buttons 508 allow the user to switch between screens of the invention. When a user navigates from the projects screen to another screen, information associated with the projects screen may be saved to a database.
25 Figure 6 depicts a pages screen. For each project there may be one or more pages.
Pages screen 600 maybe accessed through ITRL 602. Project 606 shows the project name. Page select 604 provides a pull down menu for selection of existing pages. Page name 608 shows the name of a selected page, or the name given to a new page or a copy of another page. A new page may be selected through control buttons 610 that allow a 3o page to be deleted, copied, or for a new page to be created. Navigation buttons 61.2 allow the user to switch between scrAens of the invention.
Figure 7 depicts a layout page screen. r.ayout screen 700 may be accessed through URL 702. Project selector 704 provides selection of a project. )?age selector 706 allows selection of a page in the project. The layout screen~further comprises a canvas area 708 that may contain a video frame and enhancement elements, plus properties box 710.
Canvas area 708 may be implemented as a window having a width that is a multiple of the pixel width of the video image, eliminating resealing operations.
Properties box 710 provides selection of enhancement elements arzd parameters associated with those elements. Properties box 710 comprises a number of user input areas that are described hereafter with reference to figure 7. Display safe area check box 712 provides a reduced i0 size canvas area such that elements on the canvas will not be obscured in some monitors.
Element selection menu 714 provides user selection of text, graphic, and image elements, and instance selector 716 allows selection of an instance of the element.
Further, element selection menu 714 may be employed to import 1-ITML axxd Javascript routines created with the present invention or other tools such as HTML authoring software. The 'Add' button, of element selection menu 714 may be employed to place an element on canvas 708 once an element and instance have been selected. The selected choices are shown in element name 7I8 anal element type 720. Some elements include user specified values, such as text. Such values may be entered through value entry 722. The position of an element may be entered using position window 724, or the element may be positioned z0 using a mouse or other pointing device as shall be described later. The size of an element may be specified through size entry 726, or element site may be configured using a mouse or pointing device as shall also be described later- Elements may be placed. to appear on top of other elements or behind other elements through a Z order value accessed through 2 order control 728. The order may be specified in an order box, or the 2s order of a selected element may be adjusted using front and back buttons.
The visibility.
of an element may be selected through visibility control 730. An element may also serve as a link to other information, web pages, or executable programs. the link may comprise a local address, a web address/URL, ox other address. A link associated with an element may be specified through link control 732_ The font employed in text elements may be 3o specified through font control 734. The color of text atzd graphics may be selected through color control 736. Flush (placing of an element at the edge of the canvas) may be selected through flush control 738. A selected element may be deleted by selecting delete button 740. Deletion of a selected element may also be performed via keyboard entry.
Navigation buttons 742 allow the user to switch between screens of the invention.
Figure 8 depicts a triggers screen. Triggers are employed to synchronise the rendering of enhancements with an event, such as a frame number or display time, for example. Triggers screen 800 may be accessed through URL 802. Project select window 804 allows selection of a project and displays the project name. Page selection window 806 allows selection of a page within the project and displays the page name.
Trigger controls 808 provide specification of a trigger name, the time at which the trigger may .
to execute, the action to be taken when the trigger time occurs, the element, and a trigger list. For example, at 5 seconds, the text of an element rnay be changed to provide a welcome message. Triggers may provide a monitoz;ng function.downloaded to platform, such as a set top box or interactive television, for example, that then monitors a television program for a specified event. When the specified event occurs, an enhancement.file 15 comprising HTML or HTML and Javascript may be executed from platform memory, or may be retrieved using a transport method Wherein the downloaded monitoring includes a URL from which the enhancement file may be accessed.
Figure 9 depicts an emulation screen. Emulation screen 900 may be accessed through URL 902. The emulation screen may be employed to display television ixnages_ 2o and enhancements as they would appear on a television or other video receiving equipment. The emulation process includes generation of an iT.VML file from database information, parses the iTVML Fle with an XSL parser configured for web browser display, produciztg.an HTML/Javascript output that is then provided to the browser.
Generation of iT'VML files is described'in figures 13 through 16_ 25 Figure 10 depicts an XMX, screen. XZYIL screen 1000 may be accessed through »tL 1002. Display area 10x4 of XMf. screen 1000 provides a listing of the iTVML code generated.
Operationally, a user first opens the administration page of the present invention by employing a web browser accessing the (JRI, of the administration page. The user 30 may then log into the system, establish a new account, or view a tutorial.
Once a user has provided a valid usemame and password, a projects page may be presented (Steve-is this how navigation is set up?). From the projects page the user may select a project to-edit, view, publish or delete, or a new project may be started. If a new project is started, the user enters project information (as described in figure 5), including a video file and start frame information. The user may then select a navigation button, on the lower portion of the screen to move to the pages screen. Using the pages screen, the user may select. an existing page, copy an exiting page, delete an exiting page, or create a new page. The project name selected in the projects screen is displayed in the project window of the pages screen. A page name may be assigned to the new page, after which the user may navigate to the layout screen. The layout screen comprises a canvas area in which the to video frame, identified in the projects screen, may be displayed. The properties box of the layout screen may be employed to select and position graphic, text, image, and imported executable elements within the canvas area. Advantageously, the present invention includes 'drag and drop' and'resize' functions implemented at the user's browser. This provides the convenience and productivity of mouse (or other input device) driven.editing 15 without incurring delays that may result from network latencies or server workload. The 'drag and drop' and 'resize' functions are implemented as a Javascript downloaded to the user's browser as part of the layout screen. )~lowcharts of the implementation of 'drag and drop' and 'resiae' functions are presented in figures 11 and 12. Appendix A
provides an code listing for a Javascript implementation with numerical references to the flowchart 20 functions.
Figure 11 is a flowchart of a method for selecting an element on the canvas of the layout screen. Mouse select process 1100 begins with a mousedown (button activation) at step 1102. Step1104 determines if the mouse position is inside the canvas when the button was activated. If the mouse position is outside the canvas area, mouse data, is 2s passed to other programs such as may be employed to select items within the properties box or other items contained in the layout screen. If the mouse position is inside the canvas, step 1106 determines if the position is inside the knobs of an element. Knobs are visual elements, such as small rectangles, for example, that are displayed at the edges of an element when selected. If the mouse is inside a knob, step1108 removes the knobs and so the process ends at step 1110. If step 1106 detemlines that the mouse position is not inside a knob, step 112 determines if the mouse position is inside an element.
If the to mouse position is not inside an element, the process ends at step I 1 I4. If step1112 determines that the mouse position is inside an, element, step I 116 obtains the element's x and y position, height, and width. Step 1118 then determines if the user selected a different element. If a different element was selected, step 1120 deselects the previous S selection and the process sends at step 1122. If the user did not select a difference ' element, the new element is selected at step 1124 and the process ends at step 1126.
Having selected an element on the canvas of the layout screen using the process of figure 1 l, a user may now rrlove. or, resize the element. Figure 12 ~is a flowchart:of a~
method for moving and/or resizing an element on the canvas of tl~e layout screen. Move to and resize process 1200 begins with step 1202 where a mousemove event is received, A
mouse move event occurs when a mouse button is activated while the mouse is positioned over an element and the mouse is moved. Step 1204 determines if the mouse is positioned over a resize knob displayed in conjunction with a selected element. If step 1204 determines that the mouse position does not correspond to a knob, step 1206 moves I S the element using mouse movement irifomnation. The size of the element is not altered and processing ends at step 1208. If the position of the mouse corresponds to a knob of the elezxient, step 1210 checks if the knob corresponds to a west (left side) knob. I~ the west laiob is selected, step 1212 .checks if the west knob is a lower left knob. If the knob is not the lower left knob, step 1214 resizes the element by. changing the left coordinates 20 of the element arid keeping the right edge position and height of.the element unchanged.
Processing then ends at step 1216. If step 1212 determines that a lower left knob is selected, step 1218 adjusts d~,e height and width of the eletzient, ~rn,aintaining the aspect ratio of the element and the position of the upper right corner of the element. Processing then ends at step 1216. If step 1210 detetznines that the west knob is not selected, step 25 1220 checks if the east laiob (right side) was selected. If the east knob is selected,.step 1222 checks if the east knob is an upper right knob. If the knob is not an upper right knob, step 1224 resizes the element by changing the right coordinates of the element and keeping the left edge position and height of the element unchanged. Processing then ends at step 1226. If step 1222 determines that an upper right knob is selected, step1228 3o adjusts the height and width of the element, maintaining the aspect ratio of the element and the position of the louver left corner of the element. Processing then ends at step 1226. If step 1220 determines that an east knob is not selected, step 1230 checks if a north knob is selected. Tf a north knob is selected, step 1232 checks if the upper left knob was selected. if the upper left knob was not selected, step 1234 resizes the element by changing the top coordinates and keeping the bottom coordinates and width of the element unchanged. Processing then ends at step 1236. if step 1232 determines that the upper left knob was selected, step 1238 adjusts the height and width of the element while maintaining the aspect ratio of the eleriient and the position of the bottom right coordinate. Processing then ends at step 1236. If step 1230 determines that a north knob was not selected, step 1240 checks if a lower right lmob was selected. if a lower right t0 knob was not selected, step 1242 adjusts the height of the element, keep the width and top coordinates unchanged. Processing then ends at step 1244. If step 1240 determines that the knob is a lower right knob, step 1246 adjusts the height and width of the element' v~rhile maintaining the aspect ratio of the element and the position of the top left coordinate. Processing then ends at step 1244. Appendix A lists code to implement the i5 'drag and drop" and 'resize' functions described in figure l land figurel2.
After the user has placed elements on the canvas, positioned them at desired locations and sized them to desired sizes, the user may select the emulation screen to view the appearance of the enhanced frame or sequence of frames. Selecting the emulate function from the navigation buttons performs the following functions. First, the database 2o entries associated with the,current layout are accessed and a flat file of extended ~, called iTVML, is produced. The iTVML file is then passed through an emulation XSL
parser that converts the iTYML into IFTML and favascript that is then sent to the'user's browser to produce the emulation display.
The iTVML file is an XML compliant file with tags for the information contained 25 in the project, layout, and triggers screens. The iTVML file is produced by retrieving information from the database, comparing each entry to a table of entries for that screen, and'encapsulating' the entries with XML compliant formatting.
Figure 13 depicts an iTVML generation process. The iTVML process 1300 starts at step1302. At step 1304, the database is queried using the project ID. Step 3o determines if any records are retrieved. rf no records corresponding to the project 7D are found, the process ends at step 1308. If a record eoiresponding to the project )17 is retrieved, step 1310 sets the iTVML continents to string. Step 1312 appends an iTVNJI.
header to the string. The iTVML header may be generated as described in figure 14.
Continuing with figure 13, step 1314 appends a library opening to the string.
At~step 1316, a resource tag identifying the asset directory is appended to the string. At step 1318 a library closing is appended to the string. At step 1320 content information is appended to the string. Content information may be generated through the process described in figure 15. Continuing with figure 13, step 1322 appends timeline information to the string. Timeline information may be generated through a process described in figure 16.
Continuing with figure 13, step 1324 terminates the string and the process ends at step l0 1326. The iTVML process 1300 may be viewed as a process that assembles (in a string format compliant with XML), information defining where assets m,ay be located, plus appends information from the projects, layout and triggers screens.
Figure 14 depicts a process for creating an ~vII, compliant string containing header information. Header process 1400 begins at step 1402. At step1404, an opening.
1 5 tag, such as '<HEAD>', is appended to the string. At step 1406 the current data and. time with an iTVML current date and time tag are appended to the string. At step 140$, the author name with an iTVML author-name tag is appended to the string. At step 1410, notes are extzacted from the database and are appended to the string with an iTVML
notes tag. At step 1412, the name of the proj ect is extracted from the database and is 20 appended to the string with an iTVML project-name tag. At step 1414, the project ~ is extracted form the database and appended to the string with an iTVML proj eet-ID tag. At step 1416, the date the project was created is extracted from the database arid appended to the string with an ZTVML created-date tag. At step 1418, the data the project expires is extracted form, the database and appended to the string with an iTVML proj eet-expires 25 tag. At step 1420, the date the project was last published is extracted from the database and appended to the string with an iTVML last-published tag. At step 1422, the current project status is extracted from the database and appended to the string with an iTVML
project-status tag. At step 1424, the project-company is extracted form the database.and appended to the string with an iTVML project company tag. At step 1426 the video 30 source is extracted form the database and appended to the string with an iTVMx, video-source tag. At step 1428, a query is performed against the Cransport table based on the project 1D. If no transport records are found, step 1440 appends a closing tag, such as 'l<HEAD>', to the string and the process ends at step 1442. If step 1430 retrieves a uansport record, step 1432 extracts transport A bandwidth from the record, appends the bandwidth information to the string with an iTVML transport-bandwidth tag.
Step 1434 extracts the transport A return path bandwidth from the record and appends the retuzn path bandwidth to the string with an iTVML return-bandwidth tag. Step 1436 extracts the transport A return path connect time from the record and appends the information to the string ~rith an iTVML connect-time tag. Step 1438 extracts the tzansport A
base URL
from the record and appends the URL to the string with an iTVML base-rlRL tag.
Step 1440 then appends a closing tag, such as'l<HEAD>', to the string and the process ends at step 1442. Header process 1400 may be viewed as a process that assembles (in a string format compliant with XML), information contained in the projects screen.
Figure 15 depicts a process for creating an XML compliant content string.
Content process 1500 starts at step 1502. At step 1504, an opening tag, such as '<CONTENT>', is appended to the string. At step 1506, the database is queried for elements corresponding to the project D7. Step 1508 checks for element records. If no element records are found, step 1510 appends a closing flag, such as '/<CONTENT>', to the string and the process ends at step 1512. If step 1508 finds a record, step 1514 appends the record information to the string' searches a list of element types and appends ao an iTVML tag for the ele~rnent type. Step 1516 then selects the next record and processing continues at step 1508. Tf no records remain, step 1 S 10 appends a closing flag, such as '!<CONTENT>', to the string and the process ends at step 1 S 12.
figure 16 depicts a process for creating an ~~ML compliant timeline string.
Timeline process 1600 begins at step 1602. At step 1604 an opening.tag, such as .
'<TIMELINF~', is appended to the string. At step 1606, frame length is extracted from the database and appended to the string. At step 1608, frames pez second is extracted from the database and appended to the sttin.g. At step 1610, a'uses drop frame' flag is extracted from the database and appended to the string. At step 1612, start time is extracted form the database and appended to the string. At step 1614, life span is extracted from the database and appended to the string. At step 1616, a triggers table is qteeried using the project 1D. Step 1618 checks if trigger records exist. If no trigger records exist, step 1624 appends a closing tag, such as'</T1MELINE>', and processing ends at step I 626. If step 1618 fords a trigger record, step 1620 creates a trigger tag with the time, element affected, and function call. Step 1622 then moves to the next element.
1f step 1618 determines that no more elements exist, step 1624 appends a closing tag, such as'</TIIvIELINE>', and processing ends at step 1626.
Figures 13, 14, 15, and I6, depict a method in which database entries from the project, layout, and triggers screens may be processed to produce ati iTVML
file.
Appendix B provides an example of the fozm and content of the iTVML file and illustrates the present invention's placement of database infoirrtation within XML
1 o compliant tags. Once an iTVML file has been created, it may be parsed using industry standard XSL (Extensible Stylesheet Language) methods to produce T-JTML and Javascript that may be run on an industry standard web browser and media player such as Microsoft rnternet Explorer and Windows Media Player, both from Microsoft' Corporation. Additional information regarding XSL may be obtained from the following 15 books:
Title: Professional XSL
Authors: Kurt Cagle et al.
Publisher: Wrox Press Tnc;
20 ISBN: 1861003579 Title: XSL Companion, The Author: Neil Bradley Publisher: Addison-Wesley Pub Co;
25 ISBN: 0'201674874 The iTVML file may also be parsed using a tool called iTV Publisher, that is the subject of a co pending patent application, to produce T~TMI. or T~TML arid Javascript specific to platforms such as WEBTVTM, AOLTVTM or other platforms.
3o Thus, the present,invention provides an easy to use, rapid means for developing a layout for an, enhanced presentation platform, such as a set top box or interactive television, which produces an output platform independent, text based, script file that completely defines the assets used (graphics, text, images, and imported executable files), including their positions and properties, and timing of their rendering. The platform independent nature of iTVML allows a single enhancement file to be created that then may be parsed to provide platform dependent enhancement files.
The Foregoing description of the invention has been presented for purposes of illustration and description, It is not intended to be exhaustive or to limit the invention to the precise fot~n disclosed, and other modifications and variations may be possible in light in the above teachings. The embodiment was chosen and described in order to best explain the principles of the invention and its practical application to thereby enable others skilled in the art to best utilize the invention in various embodiments and various modifications as are suited to the particular use contemplated. Tt is intended that the appended claims be construed to include other alte-rr~ative embodiments of the invention except insofar as limited by the.prior an.
APPENDTX A - CODE EXAMPLE FOR CLICK & DR.A.G TO PLACE
ELEMENTS AND TO RESIZE TPTEM
2o Note. Numerical references shaven in bold after'//' relate the section of code to a component of the figures. The figures are representative of the actions performed and may not reflect the exact order or functions performed.
25 function mouseDown() //1100 //1104: Was the MouaeDOwn inside of the DivPg(Canvas) '?
if ( event.x >- divPg.offsetLeft + divMain.offsetLeft 30 && event,x <= divPg.offsetT~ett - 0 + divPg.offsetWidth +
divMain.offsetLeft && event_y >= divpg,offsetTOp + divMain.offsetTop && event.y <Q divPg.ofEsetTop - 0 + divPg.offsetHeight +
divMain.ottsetTop ) 3S {
// Yes.
var e1 = evenz_srcElement;
var pEl = el.parentElement;
var i;
40 var isText = false;
//1106: Are we positioned inside a knob?
if (el.id.indexOf(" knob", 0) _= 0) 4S {
// 1108 Yes, we are on a knob, and the user wants to resize the element.
initlX = event.clientX;
initlY = event.clientY;
knob = e1;
hideKnobs ( ) ;
MouaeDownOnElement =_ true;
}
SS else //1ZI2:
while (true) {
if (el.tagName =- "BODY") return;
if (pEl.tagName --_ "BODY") return;
if (pEl.tagName =- "DIU" ~&
pEl.id,indexof("divEl")>=0) break;
e1 = pEl;
pE1 ~ el.parenLElement;
}
if (el.tagName =- "DIV") / TEXT AREA
ob = el.style;
else ob = pEl.style;
75 //iiss initlX = event.clientX;
initlX = event.clientY;
initlObjX ~ ob.posLeft;
80 initlobjY = ob.poeTop;
elWidth -__ es_offsetWidth;
elHeight = el.offae~Height;
elName = el,id;
85 i = elName.slice(5);
//1118: Did the user select a different element ?
if lelementSeleceed == i) t 90 MoueeDownonElement = true;
// 1120: Change to newly selected element elementSelected = i;
eeleccElernenc(i);
hideKnobs ( ) ;, else //1124 var updated = Lrue;
//***** update display with selected element 100 if (elemencSeleczed > -1) f updated = updEls(elementselected);
}
105 if (updated) MouseDownOnElement = Lrue:
// Change to newly selected element 110 elementSelected =_ i;
eelectElement(i);
hideKnobs();
}
}
11~ }
}
120 function mouseMove ( ) //x.200 t if (MouseDownOnElement) f var fp =_ window.frmElProps;
1?S var pEl ;
var el'~ype;
it (knob) //2204 130 var a = eval("window.ellmg" ~ elementSelecLed);
elType = parselnt(elements[elementSelected][eElType]);
if ( elType == kEIIsT,A ) ' pEl ~ e;
135 a = e_style;
else pEl = e.parentElement;
140 ) var delta;
switch (knob. style. cursor) 145 case "w-resize": //1,310 delta = initlx - event.clientX;
if(elType !~ kElIsTV) //1312 150 if (pEl.style_pixelLeft - delta.<=
o) //~.aia t delta = pEl_style.pixelLeft;
pEl.style.pixelLeft = 0;
else pEl.style.pixelLeft -= delta;
y sNitch( elType ) //1214 case kElIsGraphic:
case kElIsBG:
165 e.width += delta;
break;
case kElIs'fA:
e.width =
Math.abe(parselnt(e.width) ~. delta) ~ "px";
170 ' break;
case kElIsTV: //~2~.8 // Compute available WEST & SouLk~
pixels var wpx = pE1-etyle.pixelLeft;
175 var Spx = gCanvasH -(pEl.etyle.pixelTop k e.height);
while( delta ~ Wpx ~~
(gCanvasH/gCanvasW)*delta > SpX ) 180 --delta;
if (delta 5= 0) break;
pEl.style.pixelLeft -= delta;
e. width f= delta;
I85 e.height = e_width (gCanvasH/gCanvasW);
break;
default: .
break;
190 }
break;
}
cage "e-resi2e'~: //222a {
195 var w;
delta = event.clientX - initlX;
switch( elType ) //1222 .
{
case kElIsGraphic: //1224 200 case kElIsBG:
w = e_wid,th + delta;
if( pEl.style.pixelLeft + w >
gCanvasW ) {
205 w ~ 'gCanvasW -pEl.style.pixelLef~;
e.width = w;
break;
210 case kEIIsTA: //1224 w = Math.abs(parseInt(e.width) +
delta);
if ( pE1. style .pi7cel Let + w >_ gCanvasW ) 215 {
w a gCanvasW -pEl.style.pixelLeft;
}
e.width =~w t "px";
220 break;
case kElIsTV: //1228 // Compute available EAST & Sauth pixels var Epx = gCanvasW -Z25(pEl.style_pixelLeft+ e_widzh);
vat' Spx = gCanvasFi -(pEl.style.piacelTop+ e.height);
while( delta > Epx ~~
(gCanvasH/gCanvasW)*delta > Spx ) 230 {
--delta;
if (delta == o) break;
}
e.width += delta;
235 e.height = e.width (gCanvasli/gCanvaeW) ;
break;
default break;
240 }
break;
case "ri-resize": //1230 24~ var h;
delta = initlY - event.clientY;
if(elType != kElIsTV) . //1232 250 if(pEl.style.pixelTOp - delta < 0) delta a pEl.style.pixelTop;
pEl.style_pixelTop = o;
255 else pEl.style.pixelTop -= delta;
switch( elType ) //133$
case kElIsGraphic: //1238 case kElIsBG:
2b5 e,helght += delta;
bzeak;
tale kElIsTA: //1238 e.height =
Math.abs(parseTnt(e.height) + delta) + "px";
270 break;
Case kElIaTV:
// Compute available NORTH ~ West pixels var Npx = pEl.scyle.pixelTop;:
275 vax Wpx ~ gCanvasW -(pEl.style.pixelLeft + e.width);
while( delta > Npx ~~
(gCanvasW/gCanvasA)*delta > Wpx ) 280 --delta;
if (delta ~= o) break; .
pEl.style.pixelTOp -= delta;
e.height += delta;
285 e,width = e.height x (gCanvasW/gCanvasH);
break; ' default:
break;
290 }
break;
case "s-reaize":
295 var h;
delta = event.clientY - initlY;
switch( elType ) //1240 case kElIsGraphic: //1242 300 case kElIsBG;.
h = e.height + delta;
if( p$l.style,pixelTop + h >
gCanvasT~ ) 305 h ~ gCanvaeTi -pEl.style_pixelTop;
e:height E h;
break;
310 ~ case kBITsTA: //1242 h = Math,abs(parseInt(e.height) +
delta) : .
if( pEl.style.pixelTop + h >
gCanvasH ) 315 {
h = (gCanvasH -pEl.style.pixelTop);
}
e.height = h + "px"; _ 320 ' break;
case kElIsTV; //1246 , // compute availab~.e soUTH & west pixels var Wpx = gCanvae4J -325 (pEl.style.pixelLefz + e.width);
var Spx = gCanvasH -(pEl.style.pixel'fop + e.height);
while( delta > Spx ~~ .
(gCanvasW/gCanvasH)*delta > wpx ) --delta;
if (delta == o) break;
}
e.height += delta;
335 e.width = e,height (gCanvasW/gCanvasH); . .
break;
' default. .
break;
// switch( elType ) break;
// case s-reeize:
} // switch( knob_style.cursor ) _ 345 var e1 = elements[elementselected]; //1206 fp,txtLeft.value = el[e8lLeft] = p~l.style.pixelLeft; .
fp,txtTop.value = el(eElTop] = pEl.etyle_pixelTop;
fp.txtWidth.value = el(e~lWidthJ ~ (elType == kElIsTA ?
350 ~ parselnc(e_width) . e.width);
fp.txtHeight.value g el(eElHeighcJ a (elType == kElIsTA
pareelnt(e_height) . e.heighc);
3S5 if (ob) if (ob.pixelLeft + event.client7C - initlX < 0) ob.pixelLeft = 0;
else 360 ob_pixelLeft += event.clfentX - initlX;
~f (ob.pixelLeft .r elWidth + event.clientx - initlX >
wiridow.divPg.clientWidth) ob.pixelLeft = window.divPg.clienth~idth - elwidth;
1f (ob.pixelTop + event.clientY - initlY < 0) ob_pixelTop = 0;
else ob~pixelTop += event.clientY - initlY;
if (ob.pixelTop + elHeight + event.clientY - initlY >
window.divPg.clientiieight) ob.pixelTop = window.divPg.clientfieight - elHeight;
375 fp,txtLeft.value = elements(elementSelected](eElLeft] _ ob.pixelLe~t:
fp.txtTop.value = elements(elementSelected][e~lTop1 ob.pixelTop;
initlx = event.clientX;
initlY = everit.clientY;
385 return falee;
390 APPENDIX. B
.Appendix 8 lists an ITVML file generated by the iTvML generator of the present invention. Comments are shown between asterisks. The s2eCion showing element information has been edited to reduce the number of 395 entries.
+x ITVML SETUP AND INTRODUCTORY COMMENTS **
<?xml version="1.o"?>
<IDOCTXP~ itvml PUBLIC "-//Intellocity//DTD ITVML 7,.0a Draft//EN"
400 'Thttp://1o.1.1.6/dtds/1TV'NtL1 0a.dtd°>
<!-- Copyright 2000, 2001 by Intellocity USA, Int. -->
<!-- viziworx XML Schema 1.3 -->
<itvml xmlns="http://itvml..org/dtds/ITVML1 oa.dtd">
*~T~$Ab: DATE PROJECT WAS CREATED, AUTHOR, NOTES, OTHER PROJECT INFO**
<head>
<meta name="itvmlDateCreated" content="2001-08-03T21:47:36Z"/>
<meta name=nprojectAuthor" eontent="Steve Markel"/>
410 <meta name="projectNotes" contents""/>
<meta name~nprojectN'ame" content="sample pages"/>
<meta name="projectId" content="1389"/>
<meta name=!'projectDateCreated" content=x'2001-07-23T0?:~6:172"/>
<meta name="projectExpires" contents""/>
415 <meta name="projectDateLastPublished" content=""/>' <meta name="projectStatus" content="Development"/> .
<meta name="projectCompany" content=""/>
<meta name="project'VideofileName" content=""/>
<meta name="projectTrarisportABandwidth" content="4800!'/>
420 ~<meta name="projectTransportAReturnPathHandwidth" content=°"/>
<meta name="projectTransportAReturnPathConnectTime" content=""/>
<meta name="projectTransportAHaseURL" contents""/>
</head>
** LIBRARY: CONTAINS DESCRIPTIONS OF ASSET CONTAINERS (E7LTERNAL
RESOURCES REQUIRED FOR PRESENTING AND ENCODING THE ENHANCED CONTENT)**
<library>
</library>
**CONTENT: DESCRIBES EVERY ELEMENT (NAME, TYPE OP ELEMENT, POSTTION, ._) ON EVERY PAGE OF TIiTS PROJECT**
<content canvas="640x480" pixelAspect="1:1" baseURL="">
435 <page name="actionTestPage">
<element name="tv0" type="tv">
<property name="action" valuem'~~~ />
<property name="highlight" value="true" />
440 <property name="top" value="0" />
<property name "left" value="0" />
<property name="height" value="390" />
<property name="width" valueo"S20'~ />
<property name="zOrder" value="-1" />
445 <property names"visible" value="true" />
<property name="color" value="" />
</element>
<element name="nav" type="image">
4S0 <property name="src" value="C./viziworx/betaGraphics/nav,jpg" />
<property name="action" value="" />
<property name="highlight" valuem"true" />
<property name~"highlightSrc" value="" /> , <property name="top" value="0" />
45S <property name="left" value="519" />
<property name="height" value="480" />
<property name="width" value="121" />
<property names"zOrder" value="1" />
<property name="visible" vaXue="true° />
460 <property name="href" value="" />
<property name=''color" value "" />
</element>
<element name="buttonl" type="image">
4b5 <property name="src" values"C:/viziworx/betaGraphics/buttonl.jpg" />
<property name="action" value="" />
<property name="highlight" value="true" />
<property name="highlightsrc"
value="C:/viziworx/betaGraphicg/button2,jpg" />
470 <property name="top" value="184" />
<property name="left" value="536" />
<property name="height" values"2o" />
<property name="width" value="97" />
<property name="zOrder" value"4" />
475 <property name="visible" value="true" />
<property name="href" value="" />
<property names"color" values"" />
</element>
** PROPERTIES OF OTHER EIaEMENTS DELETED FOR 8R8'~IITY **
480 <acLion name="changeText" >
<modify-property element="textarea3" name="value" value-"New Text!" />
</action>
</page>
</content>
*~ TIMEhINE: T12IGGEi2S ASSOCIATED WITH EACH FAGS **
<timeline ~ length="OO:00:01,00" framesPerSecond="30"
ntscnropPrame="true" .videoStartAcTime="" loopNTimes="1"><trigger name="actionTestTrigger" enabled="txue" pageref;"text"
490 scartTime="00:00:00.00" action= "actionTestTrigger" eXplre$= "" />
<trigger name="changeText" enabled="true" pageref="text"
startTime=~'o0_o0:05.00" action= "changeText" expires= "" />
<trigger name="visibleFunction" enabled="true'' pageref="actionTestPage" startTime~"OO:OO:o5.o0" action=
49S "visibleFUnction" expires= "" />
</timeline>
</icvml>
Cross Reference to Related Applications This application is based upon and claims priority of United States provisional application serial number 601227,930, entitled "SYSTEM AND METHOD FOR WEB
)3ASED ENHAU1CED 1NTERACT1VE TELEVISION CONTENT PAGE LAYOUT", 1o filed August 25,.2000 by Steve O. Market; United States provisional application serial number 60/227,063; entitled "A DATA DRIVEN SYSTEM AND METHOD FOR
bISTRIBUTION OF INTERACTIVE CONT?~:3~1T TO MULTIPLE TARGETED
PRESENTATION PLATFORMS" filed August 21, 2000 by Steven O. Market, and United States provisional application serial number 60/227,918, entitled "METHOD OF
is ENI:IANCING STREAMING MEDIA CONTENT" filed August 25, 2000 by Steven O.
Market, the entire disclosure of which is herein specifically incorporated by reference for all that it discloses and teaches.
Back ound a. Field The present disclosure relates to interactive and enhanced television and, more particularly, to a method and system of creating enhancement content that may be displayed in conjunction with a television program. This disclosure discusses systems and methods for web based enhanced interactive television content page layout.
b. Descn~tion of the Background A television program may be accompanied by additional information employed to enhance the program or to provide viewer interaction. Enhancements have historically included closed captioning and multilingual support. Advances in networking, computer systems, and video production have increased the ntunber and types of enhancements that may be provided with a program or advertisement. Enhancements may include stock updates, news stories, Internet links, weather forecasts, bulletins, statistics, trivia, and other information. For example, a football game may include icons allowing viewing of team players, statistics, trivia and other information such as upcoming games.
Further, the advent of set-top-boxes, as may be used in cable and satellite television systems, allows enhancement inforrisation to be presented in new ways, such as screen overlays and in windows, for example.
Enhanced television content may employ a combination of FTTML (hypertext markup language), ravaScript, Java and other formats common to lntemet page display.
An enhanced display may comprise text, icons, graphics and images placed at locations on or in proximity to the television image. To produce an enhanced display, an author i0 must create a file identifying each displayed element (such as text, icons, graphics and images),.the location where each element is displayed, and the starting time a duration for which an element or group of elements is displayed. Paevious methods employed.to enter parameters required to generate and position the elements comprising the layout of enhanced pages have involved manually entry. The resultant application program may 1s require compilation and execution in order to view the resultant image or images. This may be an iterative process, requiring multiple compilations before a desired result is obtained. Such iterative processes may be costly and time consuming.
Additionally, due to the numerous differences between presentation platforms, such as set top boxes, satellite receivers, computers, or interactive televisions, content 20 providers have historically been required to target a specific platform in the development of an application. In order to provide support for each additional platform, the interactive content provider must introduce potentially significant modifications to the existing application, resulting in the ongoing maintenance of multiple code bases and adding to the time and cost.required to produce enhanced page layouts for multiple platforms.
25 Further, web page design tools, such as FrontPageTM, DreamWeawerTM, and others, do not support administrative capabilities nor do they support databases.
Therefore a new method of creating enhanced content that allows utilization across multiple platforms and provides an accurate preview of enhancements is needed.
Summary of the Tnvention The present invention overcomes the disadvantages and limitations of the prior art by providing an interactive television enhancement authoring method acid system allowing simple development of text, graphics, and image display, emulation of the enhancements, and production of a platform independent enhancement file, called iTVML, that may be parsed, using a publisher tool (such as iTV Publisher from Intellocity), to create interactive television enhanced cor_tent files specific to a particular platform such as WEHTVTM, AOLTVTM or other platforms. An authoring program communicates with a web browser such that the present invention may be utilized locally or across a network.
The invention may therefore comprise a method for creating a television presentation enhancement comprising: defining a window in a graphical user interface;
placing a displayable element at a position in the window; defining a time when the displayable element may be rendered; employing a database to store information describing the displayable element and the time; creatYng a platform independent television enhancement file containing informarion related to the displayable element and th.e time; parsing the platform independent television enhancement file to produce an HTML file; and viewing the HTML file.
2o Software downloaded to the browser pzovides'drag and drop' and zesizing editing functjons at the user's bzowser,' eliminating delays that may be incurred due network . .
latencies and server workload if these functions were implemented at the server. The invention comprises a number of user screens that may be accessed through ffRLs that provide administrative, project, page, layout, trigger, emulation, and fiVML
export.
Administrative functions provide user accounts, login, and tutorials. The project and page screens provide access to projects and specific enhancement pages with the projects. The layout page provides an easy to use, user-friendly graphical editing environment where elements such as text, graphics, images, and executable routines may be placed on a video display area (canvas) and may be moved and sized. The trigger furietions provide 3o synchronization of tl~e presentation of enhancements to a specified event, such as frame time or presentation duration, far example. The emulation functian getzerates an iTV'IvIL
file and parses the file for web browser presentation, providing ari accurate representation of the enhancement if viewed on a television. The iTVML export function provides , generation and saving of an iTVML file.
The invention may therefore further comprise a system for creating television enhancements comprising: a graphical user interface implemented in a web browser environment; a rectangular area defined in the browser environment; a user interface that places a displayable element in the rectangular area; a user interface that specifies a iime at which the displayable element may be rendered; a database that stores information associated with the displayable element and information associated with the time; a 1o pointing device; and a user interface that initiates generation of an XML
file containing tags for the information associated with the displayable element and the information associated with the time.
Advantageously, the present invention provides an efficient, easy to use s~rstem and method for creating television enhancements that produces a platform independent 15 enhancement file. The enhancement file may be emulated using the invention to preview the appearance of the enhancements. The enhancement file zxaay be parsed by other tools to produce platform dependent enhancement files without re-editing, resulting in lower costs to support a range of presentation platforms, and uniformity in the content of the enhancements provided.
Description of the Figures In. the figures, Figure I depicts html and image support for a group ofcoxtunercially available set top box products.
Figure 2 depicts the software environment of the present invention.
Figure 3 depicts software components of the authoring program. .
Figure 4 is a screen depiction of the administration rrtodule configured for user login.
3o Figure 5 depicts aprojects screen.
Figure 6 depicts a pages screen.
Figure 7 depicts a layout page screen.
Figure 8 depicts a triggers screen.
Figure 9 depicts an emulation screen, Figure 10 depicts an XML screen.
Figure 11 is a flowchart of a method far selecting an element on the canvas of the layout screen.
Figure 12 is a flowchart of a method for moving and/or resizing an element on the canvas of the layout screen.
Figure 13 depicts an iTVML generation process.
Figure 14 depicts a process for,creating an, XML compliant string containing header information.
Figure 15 depicts a process for creating an XML compliant content string, Figure 16 depicts a pxocass for creating an XML compliant timeline string.
is Detailed Description of the invention Figure 1 depicts HTML and image support for a group of commercially available set top box products. Set top box models 100 provide HTML support 102 and image 2o support 104. HTML support 102 lists support for html 1,,0, 2.0, and 3.2 versions. A
limitation of HTML is that some versions lack downward compatibility- For example, HTML versions 4 and higher do not support alI the tags of HTIVlL 3.2. Figure 1 serves to illustrate that an HTIvI)_, based author for creating enhanced content would not be able to support a wide range of target platforms. The present invention overcomes the 25 disadvantages of HTML based authoring by providing an authoring tool that generates an extended XML file, called iT'VML, that may be parsed using XSL scripts for each plat~orrn type to produce HTlvIL code and Javascripts suitable for each platform- Through the use of the iTVML author of the present invention, enhancements need only be authored once, and then XSL scripts specific to each set top box, or types of set top boxes 3o may be applied, thereby preserving the investment in authoring by not requiring changes for each platform.
Figure 2 depicts the software environment of the present invention. Authoring components 200 comprise database 202 and authoring program 204. Rendering component 206 comprises a display program 208 that may be viewed employing a browser display utility such as l4licrosoft Internet Explorer.. Database 202 may comprise Microsoft ADO (ActiveX Data Objects) from Microsoft Cotporati.on. ActiveX is a set of programming rules that allows the output of other applications, such as spreadsheets and word processors for example, to be viewed iz~ web browser formats. Authoring program 204 rnay employ a programming environment such as Script. Visual Basic Scripting Edition (most commonly referred to as VBScript) is a subset of Microsoft 'Visual Basic.
to Display program 208 may comprise Javascript components. JavaSeript is a scripting language that allows lines of Java code to be inserted into HTML scripts. Java is an object oriented programming language created by Surf Ivlicrosystems_ Java is a device independent language, meaning that programs compiled in Java can be reui on any computer. Java programs can be run as a free-standing application, or as an applet placed 1 S on a web page. Applets written in Java may be served from a web site and executed on a client computer. Fox example, a JavaScript function may be employed to verify that users enter valid information into a form requesting a user ID and password. Without any network transmission, an HTML page with embedded JavaScript carx interpret nhe entered text and alert the user with a message dialog if the input is invalid.
Further, JavaScript .
2o statements embedded is an HTML page can recognize and respond to user events such as mouse clicks, form input, and page navigation. Such response may comprise execution of an applet, connmunication with a browser plug-in, or other action.
Figure 3 dzpicts components of authoring program 204 shown in figure 2.
Authoring program 300 comprises administration module 302, projects module 304, 25 pages module 306, layout module 308, triggers module 310, emulation module 312 and export module 314. Each of the aforementioned modules may be accessed employing a browser and a URL Universal Resource Locator (URL) identifying the location of the HTML and Javascript code that maybe employed to produce each page.
Figure 4 is a screen depiction of the administration rxlodule configured for user 30 login. Administration module 400 is accessed via URL 402. Administration module 400 may provide entry of user name 404 and user password 406. The user may select login button 408, new user button 410, or tutorial button 412 to access functions of this module. New user button 410 allows an account to be established for a new user. Tutorial button 412 may be employed to receive information concerning use of the present invention. Once a user has entered a valid usemame and password, a screen representative of one of the other modules depicted in figure 3 may be displayed. The user may navigate between modules by selecting navigation buttons located in each screen.
Figure 5 depicts a projects screen. Projects screen 500 may be accessed through UItT. 502. Projects screen 500 comprises project selector 504, project information and 1o control area 506 and navigation buttons 508. Project selector 504 allows the user to select from existing projects. Control area 506 comprises project information and control buttons. Project information may corriprise a project name, status information to indicate the state of completion of a project, author name, client, duration of the enhancement, the number of frames for which the enhancement is displayed, the .start frame, the start page, 15 the video file to which the enhancement may be applied, return bandwidth that indicates .
the rate at which an enhancement may be delivered, a return connect time indicating latency in establishing a connection, the TV format employed (such as NTSC or PAL.), notes concerning the enhancement, a file to which the enhancement may be published, and email addresses for XML and HT'vIL code. Control area 506 may comprise buttons zo that allow selection of a new project (and savitzg of the current project), deletion of a project, publishing of an iTVML ale and publishing of the project. Navigation buttons 508 allow the user to switch between screens of the invention. When a user navigates from the projects screen to another screen, information associated with the projects screen may be saved to a database.
25 Figure 6 depicts a pages screen. For each project there may be one or more pages.
Pages screen 600 maybe accessed through ITRL 602. Project 606 shows the project name. Page select 604 provides a pull down menu for selection of existing pages. Page name 608 shows the name of a selected page, or the name given to a new page or a copy of another page. A new page may be selected through control buttons 610 that allow a 3o page to be deleted, copied, or for a new page to be created. Navigation buttons 61.2 allow the user to switch between scrAens of the invention.
Figure 7 depicts a layout page screen. r.ayout screen 700 may be accessed through URL 702. Project selector 704 provides selection of a project. )?age selector 706 allows selection of a page in the project. The layout screen~further comprises a canvas area 708 that may contain a video frame and enhancement elements, plus properties box 710.
Canvas area 708 may be implemented as a window having a width that is a multiple of the pixel width of the video image, eliminating resealing operations.
Properties box 710 provides selection of enhancement elements arzd parameters associated with those elements. Properties box 710 comprises a number of user input areas that are described hereafter with reference to figure 7. Display safe area check box 712 provides a reduced i0 size canvas area such that elements on the canvas will not be obscured in some monitors.
Element selection menu 714 provides user selection of text, graphic, and image elements, and instance selector 716 allows selection of an instance of the element.
Further, element selection menu 714 may be employed to import 1-ITML axxd Javascript routines created with the present invention or other tools such as HTML authoring software. The 'Add' button, of element selection menu 714 may be employed to place an element on canvas 708 once an element and instance have been selected. The selected choices are shown in element name 7I8 anal element type 720. Some elements include user specified values, such as text. Such values may be entered through value entry 722. The position of an element may be entered using position window 724, or the element may be positioned z0 using a mouse or other pointing device as shall be described later. The size of an element may be specified through size entry 726, or element site may be configured using a mouse or pointing device as shall also be described later- Elements may be placed. to appear on top of other elements or behind other elements through a Z order value accessed through 2 order control 728. The order may be specified in an order box, or the 2s order of a selected element may be adjusted using front and back buttons.
The visibility.
of an element may be selected through visibility control 730. An element may also serve as a link to other information, web pages, or executable programs. the link may comprise a local address, a web address/URL, ox other address. A link associated with an element may be specified through link control 732_ The font employed in text elements may be 3o specified through font control 734. The color of text atzd graphics may be selected through color control 736. Flush (placing of an element at the edge of the canvas) may be selected through flush control 738. A selected element may be deleted by selecting delete button 740. Deletion of a selected element may also be performed via keyboard entry.
Navigation buttons 742 allow the user to switch between screens of the invention.
Figure 8 depicts a triggers screen. Triggers are employed to synchronise the rendering of enhancements with an event, such as a frame number or display time, for example. Triggers screen 800 may be accessed through URL 802. Project select window 804 allows selection of a project and displays the project name. Page selection window 806 allows selection of a page within the project and displays the page name.
Trigger controls 808 provide specification of a trigger name, the time at which the trigger may .
to execute, the action to be taken when the trigger time occurs, the element, and a trigger list. For example, at 5 seconds, the text of an element rnay be changed to provide a welcome message. Triggers may provide a monitoz;ng function.downloaded to platform, such as a set top box or interactive television, for example, that then monitors a television program for a specified event. When the specified event occurs, an enhancement.file 15 comprising HTML or HTML and Javascript may be executed from platform memory, or may be retrieved using a transport method Wherein the downloaded monitoring includes a URL from which the enhancement file may be accessed.
Figure 9 depicts an emulation screen. Emulation screen 900 may be accessed through URL 902. The emulation screen may be employed to display television ixnages_ 2o and enhancements as they would appear on a television or other video receiving equipment. The emulation process includes generation of an iT.VML file from database information, parses the iTVML Fle with an XSL parser configured for web browser display, produciztg.an HTML/Javascript output that is then provided to the browser.
Generation of iT'VML files is described'in figures 13 through 16_ 25 Figure 10 depicts an XMX, screen. XZYIL screen 1000 may be accessed through »tL 1002. Display area 10x4 of XMf. screen 1000 provides a listing of the iTVML code generated.
Operationally, a user first opens the administration page of the present invention by employing a web browser accessing the (JRI, of the administration page. The user 30 may then log into the system, establish a new account, or view a tutorial.
Once a user has provided a valid usemame and password, a projects page may be presented (Steve-is this how navigation is set up?). From the projects page the user may select a project to-edit, view, publish or delete, or a new project may be started. If a new project is started, the user enters project information (as described in figure 5), including a video file and start frame information. The user may then select a navigation button, on the lower portion of the screen to move to the pages screen. Using the pages screen, the user may select. an existing page, copy an exiting page, delete an exiting page, or create a new page. The project name selected in the projects screen is displayed in the project window of the pages screen. A page name may be assigned to the new page, after which the user may navigate to the layout screen. The layout screen comprises a canvas area in which the to video frame, identified in the projects screen, may be displayed. The properties box of the layout screen may be employed to select and position graphic, text, image, and imported executable elements within the canvas area. Advantageously, the present invention includes 'drag and drop' and'resize' functions implemented at the user's browser. This provides the convenience and productivity of mouse (or other input device) driven.editing 15 without incurring delays that may result from network latencies or server workload. The 'drag and drop' and 'resize' functions are implemented as a Javascript downloaded to the user's browser as part of the layout screen. )~lowcharts of the implementation of 'drag and drop' and 'resiae' functions are presented in figures 11 and 12. Appendix A
provides an code listing for a Javascript implementation with numerical references to the flowchart 20 functions.
Figure 11 is a flowchart of a method for selecting an element on the canvas of the layout screen. Mouse select process 1100 begins with a mousedown (button activation) at step 1102. Step1104 determines if the mouse position is inside the canvas when the button was activated. If the mouse position is outside the canvas area, mouse data, is 2s passed to other programs such as may be employed to select items within the properties box or other items contained in the layout screen. If the mouse position is inside the canvas, step 1106 determines if the position is inside the knobs of an element. Knobs are visual elements, such as small rectangles, for example, that are displayed at the edges of an element when selected. If the mouse is inside a knob, step1108 removes the knobs and so the process ends at step 1110. If step 1106 detemlines that the mouse position is not inside a knob, step 112 determines if the mouse position is inside an element.
If the to mouse position is not inside an element, the process ends at step I 1 I4. If step1112 determines that the mouse position is inside an, element, step I 116 obtains the element's x and y position, height, and width. Step 1118 then determines if the user selected a different element. If a different element was selected, step 1120 deselects the previous S selection and the process sends at step 1122. If the user did not select a difference ' element, the new element is selected at step 1124 and the process ends at step 1126.
Having selected an element on the canvas of the layout screen using the process of figure 1 l, a user may now rrlove. or, resize the element. Figure 12 ~is a flowchart:of a~
method for moving and/or resizing an element on the canvas of tl~e layout screen. Move to and resize process 1200 begins with step 1202 where a mousemove event is received, A
mouse move event occurs when a mouse button is activated while the mouse is positioned over an element and the mouse is moved. Step 1204 determines if the mouse is positioned over a resize knob displayed in conjunction with a selected element. If step 1204 determines that the mouse position does not correspond to a knob, step 1206 moves I S the element using mouse movement irifomnation. The size of the element is not altered and processing ends at step 1208. If the position of the mouse corresponds to a knob of the elezxient, step 1210 checks if the knob corresponds to a west (left side) knob. I~ the west laiob is selected, step 1212 .checks if the west knob is a lower left knob. If the knob is not the lower left knob, step 1214 resizes the element by. changing the left coordinates 20 of the element arid keeping the right edge position and height of.the element unchanged.
Processing then ends at step 1216. If step 1212 determines that a lower left knob is selected, step 1218 adjusts d~,e height and width of the eletzient, ~rn,aintaining the aspect ratio of the element and the position of the upper right corner of the element. Processing then ends at step 1216. If step 1210 detetznines that the west knob is not selected, step 25 1220 checks if the east laiob (right side) was selected. If the east knob is selected,.step 1222 checks if the east knob is an upper right knob. If the knob is not an upper right knob, step 1224 resizes the element by changing the right coordinates of the element and keeping the left edge position and height of the element unchanged. Processing then ends at step 1226. If step 1222 determines that an upper right knob is selected, step1228 3o adjusts the height and width of the element, maintaining the aspect ratio of the element and the position of the louver left corner of the element. Processing then ends at step 1226. If step 1220 determines that an east knob is not selected, step 1230 checks if a north knob is selected. Tf a north knob is selected, step 1232 checks if the upper left knob was selected. if the upper left knob was not selected, step 1234 resizes the element by changing the top coordinates and keeping the bottom coordinates and width of the element unchanged. Processing then ends at step 1236. if step 1232 determines that the upper left knob was selected, step 1238 adjusts the height and width of the element while maintaining the aspect ratio of the eleriient and the position of the bottom right coordinate. Processing then ends at step 1236. If step 1230 determines that a north knob was not selected, step 1240 checks if a lower right lmob was selected. if a lower right t0 knob was not selected, step 1242 adjusts the height of the element, keep the width and top coordinates unchanged. Processing then ends at step 1244. If step 1240 determines that the knob is a lower right knob, step 1246 adjusts the height and width of the element' v~rhile maintaining the aspect ratio of the element and the position of the top left coordinate. Processing then ends at step 1244. Appendix A lists code to implement the i5 'drag and drop" and 'resize' functions described in figure l land figurel2.
After the user has placed elements on the canvas, positioned them at desired locations and sized them to desired sizes, the user may select the emulation screen to view the appearance of the enhanced frame or sequence of frames. Selecting the emulate function from the navigation buttons performs the following functions. First, the database 2o entries associated with the,current layout are accessed and a flat file of extended ~, called iTVML, is produced. The iTVML file is then passed through an emulation XSL
parser that converts the iTYML into IFTML and favascript that is then sent to the'user's browser to produce the emulation display.
The iTVML file is an XML compliant file with tags for the information contained 25 in the project, layout, and triggers screens. The iTVML file is produced by retrieving information from the database, comparing each entry to a table of entries for that screen, and'encapsulating' the entries with XML compliant formatting.
Figure 13 depicts an iTVML generation process. The iTVML process 1300 starts at step1302. At step 1304, the database is queried using the project ID. Step 3o determines if any records are retrieved. rf no records corresponding to the project 7D are found, the process ends at step 1308. If a record eoiresponding to the project )17 is retrieved, step 1310 sets the iTVML continents to string. Step 1312 appends an iTVNJI.
header to the string. The iTVML header may be generated as described in figure 14.
Continuing with figure 13, step 1314 appends a library opening to the string.
At~step 1316, a resource tag identifying the asset directory is appended to the string. At step 1318 a library closing is appended to the string. At step 1320 content information is appended to the string. Content information may be generated through the process described in figure 15. Continuing with figure 13, step 1322 appends timeline information to the string. Timeline information may be generated through a process described in figure 16.
Continuing with figure 13, step 1324 terminates the string and the process ends at step l0 1326. The iTVML process 1300 may be viewed as a process that assembles (in a string format compliant with XML), information defining where assets m,ay be located, plus appends information from the projects, layout and triggers screens.
Figure 14 depicts a process for creating an ~vII, compliant string containing header information. Header process 1400 begins at step 1402. At step1404, an opening.
1 5 tag, such as '<HEAD>', is appended to the string. At step 1406 the current data and. time with an iTVML current date and time tag are appended to the string. At step 140$, the author name with an iTVML author-name tag is appended to the string. At step 1410, notes are extzacted from the database and are appended to the string with an iTVML
notes tag. At step 1412, the name of the proj ect is extracted from the database and is 20 appended to the string with an iTVML project-name tag. At step 1414, the project ~ is extracted form the database and appended to the string with an iTVML proj eet-ID tag. At step 1416, the date the project was created is extracted from the database arid appended to the string with an ZTVML created-date tag. At step 1418, the data the project expires is extracted form, the database and appended to the string with an iTVML proj eet-expires 25 tag. At step 1420, the date the project was last published is extracted from the database and appended to the string with an iTVML last-published tag. At step 1422, the current project status is extracted from the database and appended to the string with an iTVML
project-status tag. At step 1424, the project-company is extracted form the database.and appended to the string with an iTVML project company tag. At step 1426 the video 30 source is extracted form the database and appended to the string with an iTVMx, video-source tag. At step 1428, a query is performed against the Cransport table based on the project 1D. If no transport records are found, step 1440 appends a closing tag, such as 'l<HEAD>', to the string and the process ends at step 1442. If step 1430 retrieves a uansport record, step 1432 extracts transport A bandwidth from the record, appends the bandwidth information to the string with an iTVML transport-bandwidth tag.
Step 1434 extracts the transport A return path bandwidth from the record and appends the retuzn path bandwidth to the string with an iTVML return-bandwidth tag. Step 1436 extracts the transport A return path connect time from the record and appends the information to the string ~rith an iTVML connect-time tag. Step 1438 extracts the tzansport A
base URL
from the record and appends the URL to the string with an iTVML base-rlRL tag.
Step 1440 then appends a closing tag, such as'l<HEAD>', to the string and the process ends at step 1442. Header process 1400 may be viewed as a process that assembles (in a string format compliant with XML), information contained in the projects screen.
Figure 15 depicts a process for creating an XML compliant content string.
Content process 1500 starts at step 1502. At step 1504, an opening tag, such as '<CONTENT>', is appended to the string. At step 1506, the database is queried for elements corresponding to the project D7. Step 1508 checks for element records. If no element records are found, step 1510 appends a closing flag, such as '/<CONTENT>', to the string and the process ends at step 1512. If step 1508 finds a record, step 1514 appends the record information to the string' searches a list of element types and appends ao an iTVML tag for the ele~rnent type. Step 1516 then selects the next record and processing continues at step 1508. Tf no records remain, step 1 S 10 appends a closing flag, such as '!<CONTENT>', to the string and the process ends at step 1 S 12.
figure 16 depicts a process for creating an ~~ML compliant timeline string.
Timeline process 1600 begins at step 1602. At step 1604 an opening.tag, such as .
'<TIMELINF~', is appended to the string. At step 1606, frame length is extracted from the database and appended to the string. At step 1608, frames pez second is extracted from the database and appended to the sttin.g. At step 1610, a'uses drop frame' flag is extracted from the database and appended to the string. At step 1612, start time is extracted form the database and appended to the string. At step 1614, life span is extracted from the database and appended to the string. At step 1616, a triggers table is qteeried using the project 1D. Step 1618 checks if trigger records exist. If no trigger records exist, step 1624 appends a closing tag, such as'</T1MELINE>', and processing ends at step I 626. If step 1618 fords a trigger record, step 1620 creates a trigger tag with the time, element affected, and function call. Step 1622 then moves to the next element.
1f step 1618 determines that no more elements exist, step 1624 appends a closing tag, such as'</TIIvIELINE>', and processing ends at step 1626.
Figures 13, 14, 15, and I6, depict a method in which database entries from the project, layout, and triggers screens may be processed to produce ati iTVML
file.
Appendix B provides an example of the fozm and content of the iTVML file and illustrates the present invention's placement of database infoirrtation within XML
1 o compliant tags. Once an iTVML file has been created, it may be parsed using industry standard XSL (Extensible Stylesheet Language) methods to produce T-JTML and Javascript that may be run on an industry standard web browser and media player such as Microsoft rnternet Explorer and Windows Media Player, both from Microsoft' Corporation. Additional information regarding XSL may be obtained from the following 15 books:
Title: Professional XSL
Authors: Kurt Cagle et al.
Publisher: Wrox Press Tnc;
20 ISBN: 1861003579 Title: XSL Companion, The Author: Neil Bradley Publisher: Addison-Wesley Pub Co;
25 ISBN: 0'201674874 The iTVML file may also be parsed using a tool called iTV Publisher, that is the subject of a co pending patent application, to produce T~TMI. or T~TML arid Javascript specific to platforms such as WEBTVTM, AOLTVTM or other platforms.
3o Thus, the present,invention provides an easy to use, rapid means for developing a layout for an, enhanced presentation platform, such as a set top box or interactive television, which produces an output platform independent, text based, script file that completely defines the assets used (graphics, text, images, and imported executable files), including their positions and properties, and timing of their rendering. The platform independent nature of iTVML allows a single enhancement file to be created that then may be parsed to provide platform dependent enhancement files.
The Foregoing description of the invention has been presented for purposes of illustration and description, It is not intended to be exhaustive or to limit the invention to the precise fot~n disclosed, and other modifications and variations may be possible in light in the above teachings. The embodiment was chosen and described in order to best explain the principles of the invention and its practical application to thereby enable others skilled in the art to best utilize the invention in various embodiments and various modifications as are suited to the particular use contemplated. Tt is intended that the appended claims be construed to include other alte-rr~ative embodiments of the invention except insofar as limited by the.prior an.
APPENDTX A - CODE EXAMPLE FOR CLICK & DR.A.G TO PLACE
ELEMENTS AND TO RESIZE TPTEM
2o Note. Numerical references shaven in bold after'//' relate the section of code to a component of the figures. The figures are representative of the actions performed and may not reflect the exact order or functions performed.
25 function mouseDown() //1100 //1104: Was the MouaeDOwn inside of the DivPg(Canvas) '?
if ( event.x >- divPg.offsetLeft + divMain.offsetLeft 30 && event,x <= divPg.offsetT~ett - 0 + divPg.offsetWidth +
divMain.offsetLeft && event_y >= divpg,offsetTOp + divMain.offsetTop && event.y <Q divPg.ofEsetTop - 0 + divPg.offsetHeight +
divMain.ottsetTop ) 3S {
// Yes.
var e1 = evenz_srcElement;
var pEl = el.parentElement;
var i;
40 var isText = false;
//1106: Are we positioned inside a knob?
if (el.id.indexOf(" knob", 0) _= 0) 4S {
// 1108 Yes, we are on a knob, and the user wants to resize the element.
initlX = event.clientX;
initlY = event.clientY;
knob = e1;
hideKnobs ( ) ;
MouaeDownOnElement =_ true;
}
SS else //1ZI2:
while (true) {
if (el.tagName =- "BODY") return;
if (pEl.tagName --_ "BODY") return;
if (pEl.tagName =- "DIU" ~&
pEl.id,indexof("divEl")>=0) break;
e1 = pEl;
pE1 ~ el.parenLElement;
}
if (el.tagName =- "DIV") / TEXT AREA
ob = el.style;
else ob = pEl.style;
75 //iiss initlX = event.clientX;
initlX = event.clientY;
initlObjX ~ ob.posLeft;
80 initlobjY = ob.poeTop;
elWidth -__ es_offsetWidth;
elHeight = el.offae~Height;
elName = el,id;
85 i = elName.slice(5);
//1118: Did the user select a different element ?
if lelementSeleceed == i) t 90 MoueeDownonElement = true;
// 1120: Change to newly selected element elementSelected = i;
eeleccElernenc(i);
hideKnobs ( ) ;, else //1124 var updated = Lrue;
//***** update display with selected element 100 if (elemencSeleczed > -1) f updated = updEls(elementselected);
}
105 if (updated) MouseDownOnElement = Lrue:
// Change to newly selected element 110 elementSelected =_ i;
eelectElement(i);
hideKnobs();
}
}
11~ }
}
120 function mouseMove ( ) //x.200 t if (MouseDownOnElement) f var fp =_ window.frmElProps;
1?S var pEl ;
var el'~ype;
it (knob) //2204 130 var a = eval("window.ellmg" ~ elementSelecLed);
elType = parselnt(elements[elementSelected][eElType]);
if ( elType == kEIIsT,A ) ' pEl ~ e;
135 a = e_style;
else pEl = e.parentElement;
140 ) var delta;
switch (knob. style. cursor) 145 case "w-resize": //1,310 delta = initlx - event.clientX;
if(elType !~ kElIsTV) //1312 150 if (pEl.style_pixelLeft - delta.<=
o) //~.aia t delta = pEl_style.pixelLeft;
pEl.style.pixelLeft = 0;
else pEl.style.pixelLeft -= delta;
y sNitch( elType ) //1214 case kElIsGraphic:
case kElIsBG:
165 e.width += delta;
break;
case kElIs'fA:
e.width =
Math.abe(parselnt(e.width) ~. delta) ~ "px";
170 ' break;
case kElIsTV: //~2~.8 // Compute available WEST & SouLk~
pixels var wpx = pE1-etyle.pixelLeft;
175 var Spx = gCanvasH -(pEl.etyle.pixelTop k e.height);
while( delta ~ Wpx ~~
(gCanvasH/gCanvasW)*delta > SpX ) 180 --delta;
if (delta 5= 0) break;
pEl.style.pixelLeft -= delta;
e. width f= delta;
I85 e.height = e_width (gCanvasH/gCanvasW);
break;
default: .
break;
190 }
break;
}
cage "e-resi2e'~: //222a {
195 var w;
delta = event.clientX - initlX;
switch( elType ) //1222 .
{
case kElIsGraphic: //1224 200 case kElIsBG:
w = e_wid,th + delta;
if( pEl.style.pixelLeft + w >
gCanvasW ) {
205 w ~ 'gCanvasW -pEl.style.pixelLef~;
e.width = w;
break;
210 case kEIIsTA: //1224 w = Math.abs(parseInt(e.width) +
delta);
if ( pE1. style .pi7cel Let + w >_ gCanvasW ) 215 {
w a gCanvasW -pEl.style.pixelLeft;
}
e.width =~w t "px";
220 break;
case kElIsTV: //1228 // Compute available EAST & Sauth pixels var Epx = gCanvasW -Z25(pEl.style_pixelLeft+ e_widzh);
vat' Spx = gCanvasFi -(pEl.style.piacelTop+ e.height);
while( delta > Epx ~~
(gCanvasH/gCanvasW)*delta > Spx ) 230 {
--delta;
if (delta == o) break;
}
e.width += delta;
235 e.height = e.width (gCanvasli/gCanvaeW) ;
break;
default break;
240 }
break;
case "ri-resize": //1230 24~ var h;
delta = initlY - event.clientY;
if(elType != kElIsTV) . //1232 250 if(pEl.style.pixelTOp - delta < 0) delta a pEl.style.pixelTop;
pEl.style_pixelTop = o;
255 else pEl.style.pixelTop -= delta;
switch( elType ) //133$
case kElIsGraphic: //1238 case kElIsBG:
2b5 e,helght += delta;
bzeak;
tale kElIsTA: //1238 e.height =
Math.abs(parseTnt(e.height) + delta) + "px";
270 break;
Case kElIaTV:
// Compute available NORTH ~ West pixels var Npx = pEl.scyle.pixelTop;:
275 vax Wpx ~ gCanvasW -(pEl.style.pixelLeft + e.width);
while( delta > Npx ~~
(gCanvasW/gCanvasA)*delta > Wpx ) 280 --delta;
if (delta ~= o) break; .
pEl.style.pixelTOp -= delta;
e.height += delta;
285 e,width = e.height x (gCanvasW/gCanvasH);
break; ' default:
break;
290 }
break;
case "s-reaize":
295 var h;
delta = event.clientY - initlY;
switch( elType ) //1240 case kElIsGraphic: //1242 300 case kElIsBG;.
h = e.height + delta;
if( p$l.style,pixelTop + h >
gCanvasT~ ) 305 h ~ gCanvaeTi -pEl.style_pixelTop;
e:height E h;
break;
310 ~ case kBITsTA: //1242 h = Math,abs(parseInt(e.height) +
delta) : .
if( pEl.style.pixelTop + h >
gCanvasH ) 315 {
h = (gCanvasH -pEl.style.pixelTop);
}
e.height = h + "px"; _ 320 ' break;
case kElIsTV; //1246 , // compute availab~.e soUTH & west pixels var Wpx = gCanvae4J -325 (pEl.style.pixelLefz + e.width);
var Spx = gCanvasH -(pEl.style.pixel'fop + e.height);
while( delta > Spx ~~ .
(gCanvasW/gCanvasH)*delta > wpx ) --delta;
if (delta == o) break;
}
e.height += delta;
335 e.width = e,height (gCanvasW/gCanvasH); . .
break;
' default. .
break;
// switch( elType ) break;
// case s-reeize:
} // switch( knob_style.cursor ) _ 345 var e1 = elements[elementselected]; //1206 fp,txtLeft.value = el[e8lLeft] = p~l.style.pixelLeft; .
fp,txtTop.value = el(eElTop] = pEl.etyle_pixelTop;
fp.txtWidth.value = el(e~lWidthJ ~ (elType == kElIsTA ?
350 ~ parselnc(e_width) . e.width);
fp.txtHeight.value g el(eElHeighcJ a (elType == kElIsTA
pareelnt(e_height) . e.heighc);
3S5 if (ob) if (ob.pixelLeft + event.client7C - initlX < 0) ob.pixelLeft = 0;
else 360 ob_pixelLeft += event.clfentX - initlX;
~f (ob.pixelLeft .r elWidth + event.clientx - initlX >
wiridow.divPg.clientWidth) ob.pixelLeft = window.divPg.clienth~idth - elwidth;
1f (ob.pixelTop + event.clientY - initlY < 0) ob_pixelTop = 0;
else ob~pixelTop += event.clientY - initlY;
if (ob.pixelTop + elHeight + event.clientY - initlY >
window.divPg.clientiieight) ob.pixelTop = window.divPg.clientfieight - elHeight;
375 fp,txtLeft.value = elements(elementSelected](eElLeft] _ ob.pixelLe~t:
fp.txtTop.value = elements(elementSelected][e~lTop1 ob.pixelTop;
initlx = event.clientX;
initlY = everit.clientY;
385 return falee;
390 APPENDIX. B
.Appendix 8 lists an ITVML file generated by the iTvML generator of the present invention. Comments are shown between asterisks. The s2eCion showing element information has been edited to reduce the number of 395 entries.
+x ITVML SETUP AND INTRODUCTORY COMMENTS **
<?xml version="1.o"?>
<IDOCTXP~ itvml PUBLIC "-//Intellocity//DTD ITVML 7,.0a Draft//EN"
400 'Thttp://1o.1.1.6/dtds/1TV'NtL1 0a.dtd°>
<!-- Copyright 2000, 2001 by Intellocity USA, Int. -->
<!-- viziworx XML Schema 1.3 -->
<itvml xmlns="http://itvml..org/dtds/ITVML1 oa.dtd">
*~T~$Ab: DATE PROJECT WAS CREATED, AUTHOR, NOTES, OTHER PROJECT INFO**
<head>
<meta name="itvmlDateCreated" content="2001-08-03T21:47:36Z"/>
<meta name=nprojectAuthor" eontent="Steve Markel"/>
410 <meta name="projectNotes" contents""/>
<meta name~nprojectN'ame" content="sample pages"/>
<meta name="projectId" content="1389"/>
<meta name=!'projectDateCreated" content=x'2001-07-23T0?:~6:172"/>
<meta name="projectExpires" contents""/>
415 <meta name="projectDateLastPublished" content=""/>' <meta name="projectStatus" content="Development"/> .
<meta name="projectCompany" content=""/>
<meta name="project'VideofileName" content=""/>
<meta name="projectTrarisportABandwidth" content="4800!'/>
420 ~<meta name="projectTransportAReturnPathHandwidth" content=°"/>
<meta name="projectTransportAReturnPathConnectTime" content=""/>
<meta name="projectTransportAHaseURL" contents""/>
</head>
** LIBRARY: CONTAINS DESCRIPTIONS OF ASSET CONTAINERS (E7LTERNAL
RESOURCES REQUIRED FOR PRESENTING AND ENCODING THE ENHANCED CONTENT)**
<library>
</library>
**CONTENT: DESCRIBES EVERY ELEMENT (NAME, TYPE OP ELEMENT, POSTTION, ._) ON EVERY PAGE OF TIiTS PROJECT**
<content canvas="640x480" pixelAspect="1:1" baseURL="">
435 <page name="actionTestPage">
<element name="tv0" type="tv">
<property name="action" valuem'~~~ />
<property name="highlight" value="true" />
440 <property name="top" value="0" />
<property name "left" value="0" />
<property name="height" value="390" />
<property name="width" valueo"S20'~ />
<property name="zOrder" value="-1" />
445 <property names"visible" value="true" />
<property name="color" value="" />
</element>
<element name="nav" type="image">
4S0 <property name="src" value="C./viziworx/betaGraphics/nav,jpg" />
<property name="action" value="" />
<property name="highlight" valuem"true" />
<property name~"highlightSrc" value="" /> , <property name="top" value="0" />
45S <property name="left" value="519" />
<property name="height" value="480" />
<property name="width" value="121" />
<property names"zOrder" value="1" />
<property name="visible" vaXue="true° />
460 <property name="href" value="" />
<property name=''color" value "" />
</element>
<element name="buttonl" type="image">
4b5 <property name="src" values"C:/viziworx/betaGraphics/buttonl.jpg" />
<property name="action" value="" />
<property name="highlight" value="true" />
<property name="highlightsrc"
value="C:/viziworx/betaGraphicg/button2,jpg" />
470 <property name="top" value="184" />
<property name="left" value="536" />
<property name="height" values"2o" />
<property name="width" value="97" />
<property name="zOrder" value"4" />
475 <property name="visible" value="true" />
<property name="href" value="" />
<property names"color" values"" />
</element>
** PROPERTIES OF OTHER EIaEMENTS DELETED FOR 8R8'~IITY **
480 <acLion name="changeText" >
<modify-property element="textarea3" name="value" value-"New Text!" />
</action>
</page>
</content>
*~ TIMEhINE: T12IGGEi2S ASSOCIATED WITH EACH FAGS **
<timeline ~ length="OO:00:01,00" framesPerSecond="30"
ntscnropPrame="true" .videoStartAcTime="" loopNTimes="1"><trigger name="actionTestTrigger" enabled="txue" pageref;"text"
490 scartTime="00:00:00.00" action= "actionTestTrigger" eXplre$= "" />
<trigger name="changeText" enabled="true" pageref="text"
startTime=~'o0_o0:05.00" action= "changeText" expires= "" />
<trigger name="visibleFunction" enabled="true'' pageref="actionTestPage" startTime~"OO:OO:o5.o0" action=
49S "visibleFUnction" expires= "" />
</timeline>
</icvml>
Claims (28)
1. Method for creating a television enhancement comprising the steps of:
employing a graphical user interface to position a displayable element;
specifying or defining a time when said displayable element may be rendered;
storing information describing said displayable element, and said time.
employing a graphical user interface to position a displayable element;
specifying or defining a time when said displayable element may be rendered;
storing information describing said displayable element, and said time.
2. The method of claim 1 wherein said employing step comprises the steps of:
defining a window in said graphical user interface; and placing said displayable element at a position in said window;
said method further comprising the steps of:
employing a database to store said information;
creating a platform independent television enhancement file containing information related to said displayable element, and said time;
parsing said platform independent television enhancement file to produce an HTML
file.
defining a window in said graphical user interface; and placing said displayable element at a position in said window;
said method further comprising the steps of:
employing a database to store said information;
creating a platform independent television enhancement file containing information related to said displayable element, and said time;
parsing said platform independent television enhancement file to produce an HTML
file.
3. The method of claim 2 further comprising the step of viewing said HTML
file.
file.
4. The method of claim 1 wherein in said employing step, said graphical user interface positions said displayable element in a position relative to a television image area; and in said storing step, said information is associated with said position, and said time in a database; said method further comprising the steps of:
generating an XML file using said information stored in said database; and applying an XSL translation to said XML file.
generating an XML file using said information stored in said database; and applying an XSL translation to said XML file.
5. The method of claim 4 further comprising the step:
specifying a z order for said element.
specifying a z order for said element.
6. The method of claim 4 wherein said user interface further comprises:
a drag and drop function implemented in a web browser environment that allows said displayable element to be positioned in response to signals from a pointing device.
a drag and drop function implemented in a web browser environment that allows said displayable element to be positioned in response to signals from a pointing device.
7. The method of claim 4 wherein said user interface further comprises:
a resize function implemented in a web browser environment that allows said displayable element to be altered in size in response to signals from a pointing device.
a resize function implemented in a web browser environment that allows said displayable element to be altered in size in response to signals from a pointing device.
8. The method of claim 2 or 3 wherein said platform independent television enhancement file is an XML file.
9. The method of claim 2 or 3 wherein said step of parsing further comprises:
applying an XSL transformation to an XML file.
applying an XSL transformation to an XML file.
10. The method of claim 2 or 3 wherein said step of parsing further comprises:
writing Javascript in said HTML file.
writing Javascript in said HTML file.
11. The method of claim 2 further comprising the steps of:
selecting a video image for enhancement;
displaying a video window in said window in said graphical user interface;
parsing said platform independent television enhancement file to produce an HTML file wherein in said employing a database step, said stored information also describes said video image, and in said creating step, said enhancement file contains information related to said video image.
selecting a video image for enhancement;
displaying a video window in said window in said graphical user interface;
parsing said platform independent television enhancement file to produce an HTML file wherein in said employing a database step, said stored information also describes said video image, and in said creating step, said enhancement file contains information related to said video image.
12. The method of claim 11 further comprising:
displaying said HTML file in a web browser containing said video window.
displaying said HTML file in a web browser containing said video window.
13. The method of claim 11 further comprising:
saving said HTML file to said database.
saving said HTML file to said database.
14. The method of claim 11 wherein said step of parsing further comprises:
applying an XSL transformation to said television enhancement file.
applying an XSL transformation to said television enhancement file.
15. The method of claim 11 wherein said platform independent television enhancement file is an XML file.
16. The method of claim 2, 3 or 11 wherein said step of placing a displayable element further comprises:
employing a software routine, downloaded to a web browser, to locally alter the position of said element in response to input from a pointing device.
employing a software routine, downloaded to a web browser, to locally alter the position of said element in response to input from a pointing device.
17. The method of claim 1, 2, 3 or 11 wherein said displayable element comprises an imported HTML file.
18. The method, of claim 1, 2, 3 or 11 wherein said step of placing a displayable element further comprises:
employing a software routine, downloaded to a web browser, to locally alter the size of said element in response to input from a pointing device.
employing a software routine, downloaded to a web browser, to locally alter the size of said element in response to input from a pointing device.
19. The method of claim 1, 2, 3 or 11 wherein said step of placing a displayable element further comprises:
defining a z order for said element.
defining a z order for said element.
20. The method of claim 1, 2, 3 or 11 wherein said step of placing a displayable element further comprises:
associating a link with said displayable element.
associating a link with said displayable element.
21. The method of claim 11 wherein said step of parsing further comprises:
writing Javascript in said HTML file.
writing Javascript in said HTML file.
22. The method of claim 2, 3 or 11 wherein said window is contained in a web browser.
23. The method of claim 22 wherein said video window or said window employs a media player contained in said web browser.
24. A system for creating television enhancements comprising:
a graphical user interface implemented in a web browser environment;
a rectangular area defined in said browser environment;
a user interface that places a displayable element in said rectangular area;
a user interface that specifies a time at which said displayable element may be rendered;
a database that stores information associated with said displayable element and information associated with said time;
a pointing device; and a user interface that initiates generation of an XML, file containing tags for said information associated with said displayable element and said information associated with said time.
a graphical user interface implemented in a web browser environment;
a rectangular area defined in said browser environment;
a user interface that places a displayable element in said rectangular area;
a user interface that specifies a time at which said displayable element may be rendered;
a database that stores information associated with said displayable element and information associated with said time;
a pointing device; and a user interface that initiates generation of an XML, file containing tags for said information associated with said displayable element and said information associated with said time.
25. The system of claim 24 wherein said user interface further comprises:
a drag and drop function implemented in said web browser environment that allows said displayable element to be positioned in response to signals from said pointing device.
a drag and drop function implemented in said web browser environment that allows said displayable element to be positioned in response to signals from said pointing device.
26. The system of claim 24 wherein said user interface for placing a displayable element further comprises:
a resize function implemented in said web browser environment that allows said displayable element to be altered in size in response to signals from said pointing device.
a resize function implemented in said web browser environment that allows said displayable element to be altered in size in response to signals from said pointing device.
27. The system of claim 24 further comprising:
a user interface that applies an XSL translation to said XML file to produce an HTML file.
a user interface that applies an XSL translation to said XML file to produce an HTML file.
28. The system of claim 25 further comprising:
an emulation function operable to display said HTML file on said web browser.
an emulation function operable to display said HTML file on said web browser.
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US22793000P | 2000-08-25 | 2000-08-25 | |
US22791800P | 2000-08-25 | 2000-08-25 | |
US60/227,930 | 2000-08-25 | ||
US60/227,918 | 2000-08-25 | ||
US09/935,492 US6760043B2 (en) | 2000-08-21 | 2001-08-23 | System and method for web based enhanced interactive television content page layout |
US09/935,492 | 2001-08-23 | ||
PCT/US2001/041894 WO2002017642A2 (en) | 2000-08-25 | 2001-08-27 | Method and system of creating enhancement content to be displayed with a television program |
Publications (1)
Publication Number | Publication Date |
---|---|
CA2420857A1 true CA2420857A1 (en) | 2002-02-28 |
Family
ID=27397789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA002420857A Abandoned CA2420857A1 (en) | 2000-08-25 | 2001-08-27 | Method and system of creating enhancement content to be displayed with a television program |
Country Status (5)
Country | Link |
---|---|
US (1) | US6760043B2 (en) |
EP (1) | EP1312218A2 (en) |
AU (2) | AU8916201A (en) |
CA (1) | CA2420857A1 (en) |
WO (1) | WO2002017642A2 (en) |
Families Citing this family (101)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6529949B1 (en) | 2000-02-07 | 2003-03-04 | Interactual Technologies, Inc. | System, method and article of manufacture for remote unlocking of local content located on a client device |
US7346920B2 (en) * | 2000-07-07 | 2008-03-18 | Sonic Solutions, A California Corporation | System, method and article of manufacture for a common cross platform framework for development of DVD-Video content integrated with ROM content |
US7448021B1 (en) * | 2000-07-24 | 2008-11-04 | Sonic Solutions, A California Corporation | Software engine for combining video or audio content with programmatic content |
US7526723B2 (en) | 2000-08-25 | 2009-04-28 | Intellocity Usa Inc. | System and method for emulating enhanced and interactive streaming media delivery |
US7689510B2 (en) | 2000-09-07 | 2010-03-30 | Sonic Solutions | Methods and system for use in network management of content |
US7526720B1 (en) * | 2000-11-22 | 2009-04-28 | Adobe Systems Incorporated | System and method for storing data associated with a file |
JP2002238003A (en) * | 2000-12-07 | 2002-08-23 | Matsushita Electric Ind Co Ltd | Device and method for selecting and executing middleware for moving image reproduction |
US20030023970A1 (en) * | 2000-12-11 | 2003-01-30 | Ruston Panabaker | Interactive television schema |
US6791581B2 (en) * | 2001-01-31 | 2004-09-14 | Microsoft Corporation | Methods and systems for synchronizing skin properties |
US7073130B2 (en) * | 2001-01-31 | 2006-07-04 | Microsoft Corporation | Methods and systems for creating skins |
GB0105994D0 (en) * | 2001-03-10 | 2001-05-02 | Pace Micro Tech Plc | Video display resizing |
US7668928B2 (en) | 2001-03-13 | 2010-02-23 | Goldpocket Interactive Inc. | System and method for recording and playing back interactive content during a broadcast event |
JP3815599B2 (en) | 2001-08-30 | 2006-08-30 | 株式会社ディーアンドエムホールディングス | Data playback device |
US8365230B2 (en) | 2001-09-19 | 2013-01-29 | Tvworks, Llc | Interactive user interface for television applications |
US11388451B2 (en) | 2001-11-27 | 2022-07-12 | Comcast Cable Communications Management, Llc | Method and system for enabling data-rich interactive television using broadcast database |
US8413205B2 (en) | 2001-09-19 | 2013-04-02 | Tvworks, Llc | System and method for construction, delivery and display of iTV content |
US8042132B2 (en) | 2002-03-15 | 2011-10-18 | Tvworks, Llc | System and method for construction, delivery and display of iTV content |
GB2382966A (en) * | 2001-12-10 | 2003-06-11 | Sony Uk Ltd | Providing information and presentation template data for a carousel |
US20030120758A1 (en) * | 2001-12-21 | 2003-06-26 | Koninklijke Philips Electronics N.V. | XML conditioning for new devices attached to the network |
US7062502B1 (en) * | 2001-12-28 | 2006-06-13 | Kesler John N | Automated generation of dynamic data entry user interface for relational database management systems |
US8607269B2 (en) * | 2002-03-12 | 2013-12-10 | Intel Corporation | Electronic program guide for obtaining past, current, and future programs |
US7703116B1 (en) | 2003-07-11 | 2010-04-20 | Tvworks, Llc | System and method for construction, delivery and display of iTV applications that blend programming information of on-demand and broadcast service offerings |
US8707354B1 (en) | 2002-06-12 | 2014-04-22 | Tvworks, Llc | Graphically rich, modular, promotional tile interface for interactive television |
US20030192047A1 (en) * | 2002-03-22 | 2003-10-09 | Gaul Michael A. | Exporting data from a digital home communication terminal to a client device |
US20030193518A1 (en) * | 2002-04-08 | 2003-10-16 | Newnam Scott G. | System and method for creating interactive content at multiple points in the television prodction process |
US8555313B2 (en) | 2002-04-09 | 2013-10-08 | Ericsson Television Inc. | System and method for coordinating interactive television programs |
US20030202014A1 (en) * | 2002-04-25 | 2003-10-30 | International Business Machines Corporation | Graphical user interface development tool |
US8352983B1 (en) | 2002-07-11 | 2013-01-08 | Tvworks, Llc | Programming contextual interactive user interface for television |
US11070890B2 (en) | 2002-08-06 | 2021-07-20 | Comcast Cable Communications Management, Llc | User customization of user interfaces for interactive television |
KR100497362B1 (en) * | 2002-08-22 | 2005-06-23 | 삼성전자주식회사 | Apparatus and method for converting electronic program guide information to XML |
US8220018B2 (en) | 2002-09-19 | 2012-07-10 | Tvworks, Llc | System and method for preferred placement programming of iTV content |
US7360235B2 (en) | 2002-10-04 | 2008-04-15 | Scientific-Atlanta, Inc. | Systems and methods for operating a peripheral record/playback device in a networked multimedia system |
AU2003286487B2 (en) * | 2002-10-18 | 2007-07-26 | Opentv, Inc. | iChoose video advertising |
DE10261241A1 (en) * | 2002-12-20 | 2004-07-15 | 3M Espe Ag | Dental material with bacteriostatic and / or bactericidal substances |
FR2849704A1 (en) * | 2003-01-02 | 2004-07-09 | Thomson Licensing Sa | Conditional decision device for e.g. Internet decoder, has program obtaining module to start downloading if programs are not available, and decision obtaining module to allow or prevent downloading based on information |
US7487532B2 (en) | 2003-01-15 | 2009-02-03 | Cisco Technology, Inc. | Optimization of a full duplex wideband communications system |
US11381875B2 (en) | 2003-03-14 | 2022-07-05 | Comcast Cable Communications Management, Llc | Causing display of user-selectable content types |
US10664138B2 (en) | 2003-03-14 | 2020-05-26 | Comcast Cable Communications, Llc | Providing supplemental content for a second screen experience |
US8578411B1 (en) | 2003-03-14 | 2013-11-05 | Tvworks, Llc | System and method for controlling iTV application behaviors through the use of application profile filters |
US8416952B1 (en) | 2003-07-11 | 2013-04-09 | Tvworks, Llc | Channel family surf control |
US9615061B2 (en) * | 2003-07-11 | 2017-04-04 | Tvworks, Llc | System and method for creating and presenting composite video-on-demand content |
US20050076330A1 (en) * | 2003-08-05 | 2005-04-07 | E.Piphany, Inc. | Browser-based editor for dynamically generated data |
WO2005015912A2 (en) * | 2003-08-08 | 2005-02-17 | Maven Networks, Inc. | System and method of integrating video content with interactive elements |
US8819734B2 (en) | 2003-09-16 | 2014-08-26 | Tvworks, Llc | Contextual navigational control for digital television |
EP1754373A4 (en) * | 2004-02-04 | 2007-09-26 | Goldpocket Interactive Inc | Synchronization and automation in an itv environment |
US7882436B2 (en) * | 2004-03-10 | 2011-02-01 | Trevor Burke Technology Limited | Distribution of video data |
JP4047308B2 (en) * | 2004-08-06 | 2008-02-13 | キヤノン株式会社 | Layout processing method, information processing apparatus, and computer program |
JP4111519B2 (en) * | 2004-08-31 | 2008-07-02 | キヤノン株式会社 | Layout processing method, information processing apparatus, and computer program |
JP4771111B2 (en) * | 2004-10-04 | 2011-09-14 | ソニー株式会社 | Display control apparatus and method, recording medium, and program |
WO2006066052A2 (en) | 2004-12-16 | 2006-06-22 | Sonic Solutions | Methods and systems for use in network management of content |
TW200704183A (en) * | 2005-01-27 | 2007-01-16 | Matrix Tv | Dynamic mosaic extended electronic programming guide for television program selection and display |
GB2423659A (en) * | 2005-02-24 | 2006-08-30 | I-Zone Tv Limited | Creating interactive television programmes using frameworks |
US20060195794A1 (en) * | 2005-02-28 | 2006-08-31 | Microsoft Corporation | User interface element property customization |
US7634722B2 (en) * | 2005-03-08 | 2009-12-15 | Aspect Software, Inc. | Reversible logic for widget and markup language generation |
US7818667B2 (en) | 2005-05-03 | 2010-10-19 | Tv Works Llc | Verification of semantic constraints in multimedia data and in its announcement, signaling and interchange |
US20070016925A1 (en) * | 2005-06-20 | 2007-01-18 | Arthur Vaysman | Interactive TV application display method and apparatus |
US20060294538A1 (en) * | 2005-06-24 | 2006-12-28 | Microsoft Corporation | Inserting advertising content into video programming |
US8875196B2 (en) * | 2005-08-13 | 2014-10-28 | Webtuner Corp. | System for network and local content access |
CN100553326C (en) * | 2005-10-21 | 2009-10-21 | 深圳Tcl新技术有限公司 | Realize the method for search fast by the dynamic user operation interface of TV |
EP1787627A1 (en) * | 2005-11-17 | 2007-05-23 | 3M Innovative Properties Company | Anti-microbial dental impression material |
US20100138561A1 (en) * | 2006-01-27 | 2010-06-03 | Michael Wayne Church | Simulcast internet media distribution system and method |
WO2007135688A2 (en) * | 2006-05-22 | 2007-11-29 | P.S.G Group | A method for interactive commenting on media files |
US20080040473A1 (en) * | 2006-08-14 | 2008-02-14 | Microsoft Corporation | Enabling web analytics for interactive web applications |
US8126766B2 (en) * | 2006-11-29 | 2012-02-28 | Yahoo! Inc. | Interactive user interface for collecting and processing nomenclature and placement metrics for website design |
CA2571617A1 (en) * | 2006-12-15 | 2008-06-15 | Desktopbox Inc. | Simulcast internet media distribution system and method |
US8745486B2 (en) * | 2007-01-25 | 2014-06-03 | Microsoft Corporation | Streamable interactive rendering-independent page layout |
US8072467B2 (en) * | 2007-01-31 | 2011-12-06 | Microsoft Corporation | Request-driven on-demand processing |
US20080215965A1 (en) * | 2007-02-23 | 2008-09-04 | Tabblo, Inc. | Method for modifying an initial layout of story elements in a user-generated online story |
US20080215985A1 (en) * | 2007-02-23 | 2008-09-04 | Tabblo, Inc. | Method for initial layout of story elements in a user-generated online story |
US20080215967A1 (en) * | 2007-02-23 | 2008-09-04 | Tabblo, Inc. | Method and system for online transformation using an image URL application programming interface (API) |
CN101272477A (en) * | 2007-03-22 | 2008-09-24 | 华为技术有限公司 | IPTV system, medium service apparatus and IPTV program searching and locating method |
US8190986B2 (en) * | 2008-05-19 | 2012-05-29 | Microsoft Corporation | Non-destructive media presentation derivatives |
US20090113480A1 (en) * | 2007-10-24 | 2009-04-30 | Microsoft Corporation | Non-media-centric packaging of content |
US20090132326A1 (en) * | 2007-11-16 | 2009-05-21 | Microsoft Corporation | Integrating ads with media |
US8078979B2 (en) * | 2007-11-27 | 2011-12-13 | Microsoft Corporation | Web page editor with element selection mechanism |
US20090150939A1 (en) * | 2007-12-05 | 2009-06-11 | Microsoft Corporation | Spanning multiple mediums |
US9037974B2 (en) * | 2007-12-28 | 2015-05-19 | Microsoft Technology Licensing, Llc | Creating and editing dynamic graphics via a web interface |
US20090210790A1 (en) * | 2008-02-15 | 2009-08-20 | Qgia, Llc | Interactive video |
US8078693B2 (en) * | 2008-04-14 | 2011-12-13 | Microsoft Corporation | Inserting a multimedia file through a web-based desktop productivity application |
US20090315894A1 (en) * | 2008-06-18 | 2009-12-24 | Microsoft Corporation | Browser-independent animation engines |
US11832024B2 (en) | 2008-11-20 | 2023-11-28 | Comcast Cable Communications, Llc | Method and apparatus for delivering video and video-related content at sub-asset level |
US20110113458A1 (en) * | 2009-11-09 | 2011-05-12 | At&T Intellectual Property I, L.P. | Apparatus and method for product tutorials |
JP2013191904A (en) * | 2010-07-09 | 2013-09-26 | Panasonic Corp | Television receiver |
US10210160B2 (en) | 2010-09-07 | 2019-02-19 | Opentv, Inc. | Collecting data from different sources |
US9699503B2 (en) | 2010-09-07 | 2017-07-04 | Opentv, Inc. | Smart playlist |
US8949871B2 (en) | 2010-09-08 | 2015-02-03 | Opentv, Inc. | Smart media selection based on viewer user presence |
GB2501031B (en) * | 2010-12-26 | 2017-11-15 | Lg Electronics Inc | Method for transmitting broadcast service, method for receiving the broadcasting service, and apparatus for receiving the broadcasting service |
EP2710752A4 (en) | 2011-05-17 | 2014-10-22 | Webtuner Corp | System and method for scalable, high accuracy, sensor and id based audience measurement system |
JP2014519276A (en) | 2011-05-24 | 2014-08-07 | ウエブチユーナー・コーポレイシヨン | System and method for increasing the efficiency and speed of analysis report generation in an audience measurement system |
WO2012162693A1 (en) | 2011-05-26 | 2012-11-29 | WebTuner, Corporation | Highly scalable audience measurement system with client event pre-processing |
US9112623B2 (en) | 2011-06-06 | 2015-08-18 | Comcast Cable Communications, Llc | Asynchronous interaction at specific points in content |
US8365069B1 (en) * | 2011-08-17 | 2013-01-29 | International Business Machines Corporation | Web content management based on timeliness metadata |
US9674583B2 (en) * | 2012-06-27 | 2017-06-06 | Google Inc. | Discovering and displaying media content related to an electronic document |
US11115722B2 (en) | 2012-11-08 | 2021-09-07 | Comcast Cable Communications, Llc | Crowdsourcing supplemental content |
US9553927B2 (en) | 2013-03-13 | 2017-01-24 | Comcast Cable Communications, Llc | Synchronizing multiple transmissions of content |
US10880609B2 (en) | 2013-03-14 | 2020-12-29 | Comcast Cable Communications, Llc | Content event messaging |
US9633358B2 (en) | 2013-03-15 | 2017-04-25 | Knowledgevision Systems Incorporated | Interactive presentations with integrated tracking systems |
US10033825B2 (en) | 2014-02-21 | 2018-07-24 | Knowledgevision Systems Incorporated | Slice-and-stitch approach to editing media (video or audio) for multimedia online presentations |
US11783382B2 (en) | 2014-10-22 | 2023-10-10 | Comcast Cable Communications, Llc | Systems and methods for curating content metadata |
US20170187927A1 (en) * | 2015-12-25 | 2017-06-29 | Le Holdings (Beijing) Co., Ltd. | Method and electronic device for switching video display window |
CN110928275B (en) * | 2019-12-12 | 2022-07-01 | 重庆长安新能源汽车科技有限公司 | Multi-controller combined HIL (high-level hierarchical level) rack message frame loss fault injection test system and method |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5524193A (en) | 1991-10-15 | 1996-06-04 | And Communications | Interactive multimedia annotation method and apparatus |
GB2280778B (en) | 1992-04-10 | 1996-12-04 | Avid Technology Inc | Digital audio workstation providing digital storage and display of video information |
US5680639A (en) | 1993-05-10 | 1997-10-21 | Object Technology Licensing Corp. | Multimedia control system |
AU5990194A (en) | 1993-05-10 | 1994-12-12 | Taligent, Inc. | Audio synchronization system |
US5583980A (en) | 1993-12-22 | 1996-12-10 | Knowledge Media Inc. | Time-synchronized annotation method |
WO1995030305A1 (en) | 1994-04-29 | 1995-11-09 | At & T Corp. | Telecommunications signaling arrangement for terminals without signaling capability |
US5613909A (en) | 1994-07-21 | 1997-03-25 | Stelovsky; Jan | Time-segmented multimedia game playing and authoring system |
US5600775A (en) | 1994-08-26 | 1997-02-04 | Emotion, Inc. | Method and apparatus for annotating full motion video and other indexed data structures |
US5708845A (en) * | 1995-09-29 | 1998-01-13 | Wistendahl; Douglass A. | System for mapping hot spots in media content for interactive digital media program |
US5951639A (en) | 1996-02-14 | 1999-09-14 | Powertv, Inc. | Multicast downloading of software and data modules and their compatibility requirements |
US6006256A (en) | 1996-03-11 | 1999-12-21 | Opentv, Inc. | System and method for inserting interactive program content within a television signal originating at a remote network |
US5929849A (en) | 1996-05-02 | 1999-07-27 | Phoenix Technologies, Ltd. | Integration of dynamic universal resource locators with television presentations |
JP3895804B2 (en) | 1996-07-26 | 2007-03-22 | 株式会社日立コミュニケーションテクノロジー | Two-way communication system |
JPH10174082A (en) * | 1996-12-13 | 1998-06-26 | Toshiba Corp | Two-way tv broadcast system and file access method applied to the system |
US5931908A (en) | 1996-12-23 | 1999-08-03 | The Walt Disney Corporation | Visual object present within live programming as an actionable event for user selection of alternate programming wherein the actionable event is selected by human operator at a head end for distributed data and programming |
US6006241A (en) | 1997-03-14 | 1999-12-21 | Microsoft Corporation | Production of a video stream with synchronized annotations over a computer network |
US6173317B1 (en) | 1997-03-14 | 2001-01-09 | Microsoft Corporation | Streaming and displaying a video stream with synchronized annotations over a computer network |
US6057833A (en) * | 1997-04-07 | 2000-05-02 | Shoreline Studios | Method and apparatus for providing real time enhancements and animations over a video image |
GB2327837B (en) | 1997-07-29 | 1999-09-15 | Microsoft Corp | Providing enhanced content with broadcast video |
US6201538B1 (en) | 1998-01-05 | 2001-03-13 | Amiga Development Llc | Controlling the layout of graphics in a television environment |
US6154771A (en) | 1998-06-01 | 2000-11-28 | Mediastra, Inc. | Real-time receipt, decompression and play of compressed streaming video/hypervideo; with thumbnail display of past scenes and with replay, hyperlinking and/or recording permissively intiated retrospectively |
JP2000227851A (en) | 1999-02-08 | 2000-08-15 | Toshiba Corp | Two-way communication system and recording medium |
US6551357B1 (en) * | 1999-02-12 | 2003-04-22 | International Business Machines Corporation | Method, system, and program for storing and retrieving markings for display to an electronic media file |
JP4481507B2 (en) | 1999-02-17 | 2010-06-16 | ブリティッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー | Document management methods and tools |
US6560777B2 (en) * | 1999-04-07 | 2003-05-06 | Webtv Networks, Inc. | Broadcast enhancement trigger addressed to multiple uniquely addressed information resources |
AU7811500A (en) | 1999-10-12 | 2001-04-23 | Daniel F. Goldscheider | Method and apparatus for integrated internet access, television control and transaction initiation |
KR100351817B1 (en) | 2000-01-13 | 2002-09-11 | 엘지전자 주식회사 | open-cable receive system and method for diagnosing of open-cable receive system |
-
2001
- 2001-08-23 US US09/935,492 patent/US6760043B2/en not_active Expired - Lifetime
- 2001-08-27 WO PCT/US2001/041894 patent/WO2002017642A2/en active Application Filing
- 2001-08-27 AU AU8916201A patent/AU8916201A/en active Pending
- 2001-08-27 AU AU2001289162A patent/AU2001289162B2/en not_active Expired
- 2001-08-27 CA CA002420857A patent/CA2420857A1/en not_active Abandoned
- 2001-08-27 EP EP01968961A patent/EP1312218A2/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
WO2002017642B1 (en) | 2003-05-15 |
AU2001289162B2 (en) | 2006-03-16 |
WO2002017642A2 (en) | 2002-02-28 |
US6760043B2 (en) | 2004-07-06 |
AU8916201A (en) | 2002-03-04 |
US20020087986A1 (en) | 2002-07-04 |
WO2002017642A3 (en) | 2002-06-13 |
EP1312218A2 (en) | 2003-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6760043B2 (en) | System and method for web based enhanced interactive television content page layout | |
AU2001289162A1 (en) | Method and system of creating enhancement content to be displayed with a television program | |
US7162697B2 (en) | System and method for distribution of interactive content to multiple targeted presentation platforms | |
US6785902B1 (en) | Document data structure and method for integrating broadcast television with web pages | |
US6791579B2 (en) | Method of enhancing streaming media content | |
US20020057286A1 (en) | Device independent video enhancement scripting language | |
US7213255B2 (en) | Set-top preview program | |
US6356908B1 (en) | Automatic web page thumbnail generation | |
AU2001291276A1 (en) | Method of enhancing streaming media content | |
US8347225B2 (en) | System and method for selectively displaying web page elements | |
US20020188628A1 (en) | Editing interactive content with time-based media | |
WO2010005684A1 (en) | Video overlay advertisement creator | |
US7526723B2 (en) | System and method for emulating enhanced and interactive streaming media delivery | |
WO2009001166A1 (en) | Method to generate a software part of a web page and such software part | |
US6959449B1 (en) | System and method for simultaneously accessing video data and internet page data | |
Cisco | Chapter 12: Using IP/TV in a Web Browser | |
Cisco | Using IP/TV in a Web Browser | |
Vuorimaa et al. | XML based text TV | |
CA2303466A1 (en) | Automatically updating template based web pages with trigger events and scheduling | |
Peng et al. | A digital teletext service | |
US20030055850A1 (en) | Method and computer program product for generating a list of items for viewing in a browser | |
AU2001289163A1 (en) | Set-top preview program | |
GB2365550A (en) | Plug-in for a browser |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EEER | Examination request | ||
FZDE | Discontinued | ||
FZDE | Discontinued |
Effective date: 20060828 |