This disclosure relates generally to media presentations. More specifically, this disclosure relates to a method and apparatus for customizing media presentations and adjusting media content transmission schedules.
Recently, presentations viewed by users are becoming interactive. Such presentations are reproduced based on Motion Picture Experts Group (MPEG) Composition Information (CI). The MPEG CI provides timed instructions to control the presentation and synchronize the various components. With the advances in multimedia services, more interactivity and customization are becoming normal. The way a user experiences content may be different from the way another user experiences the same content. The MPEG CI needs to support different playback orders based on a user profile and interactivity. The delivery server must also be able to support the different user experiences by ensuring that data is available when it needs to be presented to the user.
This disclosure provides a method and apparatus for presentation customization and interactivity.
In a first embodiment, user equipment (UE) for reproducing a presentation having a plurality of media a processor, a memory, and a display. The processor receives a first document configured to provide a presentation and a second document configured to indicate a timing sequence for media and spatial layout updates. The processor determines whether the second document includes at least one condition for at least one instruction element among the plurality of instructions and reproduces the plurality of instructions in accordance with the first document, the second document, and/or the at least one condition. The memory stores at least one media based on a store directive when the second document includes a store directive for at least one instruction among the plurality of instructions. The display displays the reproduced plurality of media.
In a second embodiment, a server includes a processor and a transceiver. The processor is configured to generate a first document configured to provide a presentation and at least one second document including at least one condition for at least one instruction element for a media element. The transceiver is configured to transmit the first document and the second document to a user equipment (UE). The second document includes a time associated with the at least at least one instruction where the time provides an indication of the earliest time that the media element may be reproduced.
In a third embodiment, a method for reproducing a presentation in an electronic device having a processor and a display includes receiving, in the processor, a first document configured provide the presentation and a second document configured to indicate a timing sequence for a plurality of media and spatial layout updates included in the presentation. The method also includes determining whether the second document includes at least one condition for at least one instruction element among a plurality of instructions and reproducing, by the processor, the plurality of instructions in accordance with the first document, the second document, and/or the at least one condition. The presentation is displayed according to the reproduced plurality of instructions.
Other technical features may be readily apparent to one skilled in the art from the following figures, descriptions, and claims.
Before undertaking the DETAILED DESCRIPTION below, it may be advantageous to set forth definitions of certain words and phrases used throughout this patent document. The term “couple” and its derivatives refer to any direct or indirect communication between two or more elements, whether or not those elements are in physical contact with one another. The terms “transmit,” “receive,” and “communicate,” as well as derivatives thereof, encompass both direct and indirect communication. The terms “include” and “comprise,” as well as derivatives thereof, mean inclusion without limitation. The term “or” is inclusive, meaning and/or. The phrase “associated with,” as well as derivatives thereof, means to include, be included within, interconnect with, contain, be contained within, connect to or with, couple to or with, be communicable with, cooperate with, interleave, juxtapose, be proximate to, be bound to or with, have, have a property of, have a relationship to or with, or the like. The term “controller” means any device, system or part thereof that controls at least one operation. Such a controller may be implemented in hardware or a combination of hardware and software and/or firmware. The functionality associated with any particular controller may be centralized or distributed, whether locally or remotely. The phrase “at least one of,” when used with a list of items, means that different combinations of one or more of the listed items may be used, and only one item in the list may be needed. For example, “at least one of: A, B, and C” includes any of the following combinations: A, B, C, A and B, A and C, B and C, and A and B and C.
Moreover, various functions described below can be implemented or supported by one or more computer programs, each of which is formed from computer readable program code and embodied in a computer readable medium. The terms “application” and “program” refer to one or more computer programs, software components, sets of instructions, procedures, functions, objects, classes, instances, related data, or a portion thereof adapted for implementation in a suitable computer readable program code. The phrase “computer readable program code” includes any type of computer code, including source code, object code, and executable code. The phrase “computer readable medium” includes any type of medium capable of being accessed by a computer, such as read only memory (ROM), random access memory (RAM), a hard disk drive, a compact disc (CD), a digital video disc (DVD), or any other type of memory. A “non-transitory” computer readable medium excludes wired, wireless, optical, or other communication links that transport transitory electrical or other signals. A non-transitory computer readable medium includes media where data can be permanently stored and media where data can be stored and later overwritten, such as a rewritable optical disc or an erasable memory device.
Definitions for other certain words and phrases are provided throughout this patent document. Those of ordinary skill in the art should understand that in many if not most instances, such definitions apply to prior as well as future uses of such defined words and phrases.
For a more complete understanding of this disclosure, reference is now made to the following description, taken in conjunction with the accompanying drawings, in which:
As shown in
The network 102 facilitates communications between at least one server 104 and various client devices 106-114. Server 104 includes any suitable computing or processing device that can provide computing services for one or more client devices. Server 104 could, for example, include one or more processing devices, one or more memories storing instructions and data, and one or more network interfaces facilitating communication over the network 102.
As will be discussed below, at least one server 105 provides media information in the form a hypertext markup language (HTML) version 5 (HTML5) document and Motion Picture Experts Group (MPEG) Composition Information (CI). The HTML5 document provides an initial spatial layout and initial media elements for the playback of media. The CI contains timed instructions to control the media presentation layer to drive the presentation and synchronize its components.
Each client device 106-114 represents any suitable computing or processing device that interacts with at least one server or other computing device(s) over the network 102. In this example, the client devices 106-114 include a desktop computer 106, a mobile telephone or smartphone 108, a personal digital assistant (PDA) 110, a laptop computer 112, and a tablet computer 114. However, any other or additional client devices could be used in the computing system 100.
In this example, some client devices 108-114 communicate indirectly with the network 102. For example, the client devices 108-110 communicate via one or more base stations 116, such as cellular base stations or eNodeBs. Also, the client devices 112-114 communicate via one or more wireless access points 118, such as IEEE 802.11 wireless access points. Note that these are for illustration only and that each client device could communicate directly with the network 102 or indirectly with the network 102 via any suitable intermediate device(s) or network(s).
As described in more detail below, the client devices 106-114 may be used to access content on the server 105 via server 104.
Although
As shown in
The processing device 210 executes instructions that may be loaded into a memory 230. The processing device 210 may include any suitable number(s) and type(s) of processors or other devices in any suitable arrangement. Example types of processing devices 210 include microprocessors, microcontrollers, digital signal processors, field programmable gate arrays, application specific integrated circuits, and discreet circuitry.
The memory 230 and a persistent storage 235 are examples of storage devices 215, which represent any structure(s) capable of storing and facilitating retrieval of information (such as data, program code, and/or other suitable information on a temporary or permanent basis). The memory 230 may represent a random access memory or any other suitable volatile or non-volatile storage device(s). The persistent storage 235 may contain one or more components or devices supporting longer-term storage of data, such as a ready only memory, hard drive, Flash memory, or optical disc.
The communications unit 220 supports communications with other systems or devices. For example, the communications unit 220 could include a network interface card or a wireless transceiver facilitating communications over the network 102. The communications unit 220 may support communications through any suitable physical or wireless communication link(s).
The I/O unit 225 allows for input and output of data. For example, the I/O unit 225 may provide a connection for user input through a keyboard, mouse, keypad, touchscreen, or other suitable input device. The I/O unit 225 may also send output to a display, printer, or other suitable output device.
Note that while
In the embodiments described herein, server 105 provides an HTML5 document and a CI document for a presentation that may be reproduced by a client device 300. The server 105 may also provide updated CI documents to the client device 300. The server 105 may mark each CI document with a timestamp thereby permitting the client device 300 to use the latest update for a CI document.
As shown in
The RF transceiver 310 receives, from the antenna 305, an incoming RF signal transmitted by another component in a system. The RF transceiver 310 down-converts the incoming RF signal to generate an intermediate frequency (IF) or baseband signal. The IF or baseband signal is sent to the RX processing circuitry 325, which generates a processed baseband signal by filtering, decoding, and/or digitizing the baseband or IF signal. The RX processing circuitry 325 transmits the processed baseband signal to the speaker 330 (such as for voice data) or to the processor 340 for further processing (such as for web browsing data).
The TX processing circuitry 315 receives analog or digital voice data from the microphone 320 or other outgoing baseband data (such as web data, e-mail, or interactive video game data) from the processor 340. The TX processing circuitry 315 encodes, multiplexes, and/or digitizes the outgoing baseband data to generate a processed baseband or IF signal. The RF transceiver 310 receives the outgoing processed baseband or IF signal from the TX processing circuitry 315 and up-converts the baseband or IF signal to an RF signal that is transmitted via the antenna 305.
The processor 340 can include one or more processors or other processing devices and execute the OS program 361 stored in the memory 360 in order to control the overall operation of the client device 300. For example, the processor 340 could control the reception of forward channel signals and the transmission of reverse channel signals by the RF transceiver 310, the RX processing circuitry 325, and the TX processing circuitry 315 in accordance with well-known principles. In some embodiments, the processor 340 includes at least one microprocessor or microcontroller.
The processor 340 is also capable of executing other processes and programs resident in the memory 360. The processor 340 can move data into or out of the memory 360 as required by an executing process. In some embodiments, the processor 340 is configured to execute the applications 362 based on the OS program 361 or in response to signals received from external devices or an operator. The processor 340 is also coupled to the I/O interface 345, which provides the client device 300 with the ability to connect to other devices such as laptop computers and handheld computers. The I/O interface 345 is the communication path between these accessories and the processor 340.
The processor 340 is also coupled to the input 350 and the display unit 355. The operator of the client device 300 can use the input 350 to enter data into the client device 300. For example, the input 350 may be a touchscreen, button, and/or keypad. The display 355 may be a liquid crystal display or other display capable of rendering text and/or at least limited graphics, such as from web sites.
The memory 360 is coupled to the processor 340. Part of the memory 360 could include a random access memory (RAM), and another part of the memory 360 could include a Flash memory or other read-only memory (ROM).
As described in more detail below, the client device 300 may receive presentation information, such as an HTML5 document and one or more CI documents from server 105 to reproduce a presentation.
Although
The HTML5 document 404 is parsed into a document object model (DOM) tree and stored in a memory, such as memory 360. The MMT CI processing engine 402 applies changes to the DOM at specified time(s) according to the instructions provided by the CI document 406. The MMT CI processing engine 402 displays the presentation information on the display 410 based on the DOM.
The CI document 406 includes at least one of an indication that certain MediaSync elements are conditional, an indication of a transmission schedule of every MediaSync element that fits the different schedules of the presentation playback, and/or an indication to store MediaSync elements for a certain period of time for later playback.
As will be described below, a MediaSync element may be marked for conditional playback. The client device, e.g., client device 300, that supports conditional playback and also support the condition type, evaluates the condition to verify if it has to play the content or not. All MediaSync elements that are marked as belonging to the same condition group shall result in the selection of at most one MediaSync element. A MediaSync element that only shows the conditionGroup attribute shall be treated as the default MediaSync for that condition group and shall be played by the user agent if none of the previous MediaSync elements of the same condition group was selected for playback. The condition scripting language may be indicated by the conditionType attribute that defaults to “text/javascript” if not present. Additionally, an earliestPlayout and store attributes may also be included in the CI document to inform senders and receivers about potential skews in delivery and playback schedules as a consequence of the conditional playback.
The term condition refers to a statement that the client device will evaluate to determine if the content of the MediaSync element are to be played back or not. The condition must evaluate to a Boolean value, where true means that the content shall be played back and false means that it shall not be played back. ConditionGroup refers to the group to which a condition belongs to. If a MediaSync element indicates no condition but provides a conditionGroup, then the client device shall assume that this MediaSync element shall be played back by default if none of the MediaSync elements that share that same condition group is played back.
ConditionType refers to the scripting language that is used to specify the condition. The default value is “text/javascript”, which indicates ECMAScript. EarliestPlayout provides an indication to the sender that the content described by the current MediaSync element may be played back earlier by some of the client devices because of some earlier conditional playback content that was skipped.
In some embodiments, the MediaSync element or the sourceList element of the MPEG CI document 406 contains an indication that the playback of a specific media resource by the MediaSync element or the sourceList element is to be played back conditionally. In some embodiments, the condition is provided as a Javascript expression that evaluates to a Boolean true or false, wherein the playback of the specific media resource is only made in case the condition evaluates to true. The condition could be provided as an attribute of either the MediaSync element or the sourceList element. If provided on the MediaSync element and the condition evaluates to false, then the next MediaSync is to be played back and the current MediaSync element is skipped. If the next MediaSync element has a start time, then no content is to be shown until the indicated start time of the next MediaSync element.
The condition may be provided as a call to a function such as “checkPlayback” and passed an argument that identifies the conditional content. In addition, a “conditionGroup” attribute may be provided to group a set of mutually exclusive conditions or instructions. The last element that contains an indication of the same “condition Group” may omit the condition attribute, in which case it becomes the default if none of the previous conditions of that same “condition Group” evaluates to true.
In some embodiments, an indication of the earliest presentation time of a media resource is provided. This indication can, for example, be associated with every media processing unit (MPU) and be provided as part of the MediaSync element. This informs the sender that this element may be presented by some users at an earlier time than the indicated playback time. This is necessary for the case that a condition for a MediaSync element that does not evaluate to true results in content that is skipped and the content of the next MediaSync will played back earlier by some clients. This may be necessary for broadcast content where clients do not request content directly from the server.
In some embodiments, a store directive is also provided for the case that some media resources are delivered earlier than their presentation time for users that did not skip prior content. The store directive informs the client to keep the content in local cache for at least the indicated media duration as it will be needed for playback later.
Because MediaSync elements 506 and 510 follow conditional MediaSync elements, each of MediaSync elements 506 and 510 include an indication of the store directive and the earliest presentation directive that corresponds to the preceding MediaSync elements 504 and 508, respectively, in case MediaSync elements 504 and/or 508 are not played back.
In operation 604, the MMT CI processing engine 402 parses the HTML 5 document and the CI document. The parsed HTML5 document provides a spatial layout and an initial MediaSync element to be reproduced. The parsed HTML5 document is stored as a document object model (DOM). The CI document includes at least one of an indication that certain MediaSync elements are conditional, an indication of a transmission schedule of every MediaSync element, and/or an indication to store MediaSync elements.
In operation 606, the MMT CI processing engine 402 reproduces the MediaSync element(s) according to a spatial layout provided by the HTML 5 document and the timing instructions provided by the CI document. Operation 606 will be discussed in more detail with regard to
As shown in
In operation 704, the processor 340 determines if the MediaSync element has a condition based on the CI document received in operation 602. If there is no condition, the method proceeds to operation 710 where the MediaSync element is reproduced. If the MediaSync element includes a condition, the processor 340 determines whether the condition is satisfied in operation 706. If the processor 340 determines that the condition is evaluated as False, the MediaSync element is skipped in operation 714. If the processor 340 determines that the condition is evaluated as TRUE, the MediaSync element is reproduced the method proceeds to operation 708 where the processor 340 determines whether the MediaSync element has a store directive based on the CI document received in operation 602. If the MediaSync element has a store directive, the method proceeds to operation 712 where the MediaSync element is stored, e.g., in memory 360. If the MediaSync element does not have a store directive, the method proceeds to operation 710.
In operation 716, a determination is made as to whether there are additional MediaSync elements. The determination may be made by the processor 340 based on the CI document received in operation 602. If there are additional MediaSync elements, the method returns to operation 702. If there are no MediaSync elements, the method is ended.
Although
None of the description in this application should be read as implying that any particular element, step, or function is an essential element that must be included in the claim scope. The scope of patented subject matter is defined only by the claims. Moreover, none of the claims is intended to invoke 35 U.S.C. §112(f) unless the exact words “means for” are followed by a participle. Use of any other term, including without limitation “mechanism,” “module,” “device,” “unit,” “component,” “element,” “member,” “apparatus,” “machine,” “system,” “processor,” or “controller,” within a claim is understood by the applicants to refer to structures known to those skilled in the relevant art and is not intended to invoke 35 U.S.C. §112(f).
Although the present disclosure has been described with an exemplary embodiment, various changes and modifications may be suggested to one skilled in the art. It is intended that the present disclosure encompass such changes and modifications as fall within the scope of the appended claims.
This application claims priority under 35 U.S.C. §119(e) to U.S. Provisional Patent Application No. 62/341,352 filed on May 25, 2016. The above-identified provisional patent application is hereby incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
62341352 | May 2016 | US |