1. Field of the Invention
The present invention relates generally to Multimedia Broadcast/Multicast Service (MB/MS) streaming services. More specifically, the present invention relates to mechanisms for scheduling and transport of limited user feedback during an MB/MS streaming session.
2. Description of the Related Art
This section is intended to provide a background or context. The description herein may include concepts that could be pursued, but are not necessarily ones that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, what is described in this section is not prior art to the claims in this application and is not admitted to be prior art by inclusion in this section.
Multimedia Broadcast/Multicast Service (MB/MS) streaming services facilitate resource efficient delivery of popular real-time content to multiple receivers in a 3G mobile environment. Instead of using different point-to-point (PtP) bearers to deliver the same content to different mobiles, a single point-to-multipoint (PtM) bearer is used to deliver the same content to different mobiles in a given cell. The streamed content may consist of video, audio, SVG, timed-text and other supported media. The content may be pre-recorded or generated from a live feed.
A variety of proposals have been made for delivery procedures, including PtP repair after a file download session and content delivery verification reports after download or streaming sessions. In the case of download sessions, the content delivery verification reports may contain details of successfully downloaded files. In case of streaming sessions, the content delivery verification reports contain QoE metrics. U.S. patent application Ser. No. 10/782,371 entitled “DATA REPAIR” filed on Feb. 18, 2004, having the same assignee as the present application, and herein incorporated by reference, describes a mechanism for reducing network overload caused by simultaneous PtP repair requests and content delivery verification reports. It recommends the use of random back-off time and random repair server selection. It also defines the signalling of associated parameters i.e., maximum back-off time and a list of servers that handle the repair or verification reports. However, none of these proposed mechanisms deal with user feedback during the MBMS streaming session.
User feedback during a broadcast/multicast streaming session is a desirable feature that can facilitate interactive programming on mobile TVs or MBMS terminals. However, current MBMS specifications do not specify mechanisms for user feedback during MBMS streaming sessions. Simultaneous user feedback from multiple MBMS clients can result in feedback implosion problems at the server and may overload/block the network resources.
Thus, there is a need for mechanisms for scheduling and transport of limited user feedback during an MBMS streaming session. Further, there is a need for relevant signaling information for scheduling client feedback during broadcast or multicast streaming sessions.
In general, the present invention relates to scalable feedback during point-to-multicast (PtM) streaming sessions. User feedback during a broadcast/multicast streaming session is a desirable feature that can facilitate interactive programming on mobile TVs or MBMS terminals. Such feedback can include, for example, the following: (1) mobile TV viewers voting during the reality shows, (2) changing the content of the next streaming session based on the votes received during the current streaming session, and (3) animation in SVG (scalable vector graphics) content that prompts user interaction where user response needs to be sent to the server within a certain time
One exemplary embodiment relates to a method of providing scalable feedback during point-to-multicast (PtM) streaming sessions. The method can include communicating data from a sender to at least one receiver and communicating feedback from at least one of the at least one receiver to the sender during a multimedia streaming session.
Other exemplary embodiment relates to systems, computer programs, and devices to provide scalable feedback during PtM streaming sessions.
Data is transferred from sender 10 to receiver(s) 20 as objects. For instance, a file, a JPEG image, a file slice are all objects. A session is established between the sender device 10 and the receiver device(s) 20 for file (or data) delivery. A single session may include the transmission of a single object or multiple objects. Different identifiers are used to identify the objects and sessions.
Each data block has a number called source block number (SBN) or similar, which identifies each block. Blocks are represented by a set of encoding symbols. An encoding symbol identifier (ESI) or similar, in turn, indicates how the encoding symbols carried in the payload of a data packet (or block) were generated from the above-mentioned object (e.g., file).
The exemplary embodiments provide for scalable feedback during point-to-multicast (PtM) streaming sessions. These exemplary embodiments can be implemented using application/content driven feedback, extensions to associated delivery procedures in MBMS, and RTCP feedback reports.
The following is an example application/content driven feedback implementation. If the PtM streaming content needs user feedback during the session, then the PtM server describes the related parameters out of band (e.g., in the SDP file corresponding to the associated delivery procedures.) A minimal set of such parameters includes (1) a set of URIs of the servers that collect the feedback and (2) maximum back off time for random time dispersion (‘maxBackOff’).
During the MBMS streaming session, a client application or SVG animation may prompt for user input e.g., select yes/no, select the best, rank the top three etc. The application collects the user input as soon as it is provided (say at time=‘feedback_time’) and stores it in a buffer for a scheduled transport to a feedback collection server. The transport scheduler in the client generates a random number ‘X’ between ‘0’ and ‘maxBackoff’. Then it computes Actual_transport_time=feedback_time+X. A feedback collection server is selected at random from the set of URIs signaled in advance in SDP. When current_time=‘actual_transport_time’, a TCP connection is established to the randomly selected URI. The user response is embedded in an XML object which is sent using HTTP POST method.
The user feedback can be formatted in an XML object. The XML object includes the necessary parameters to identify the feedback, streaming session and the client ID. The application-specific feedback is included in the XML object by specifying extensions to the corresponding XML schema.
User feedback during an MBMS streaming session can be provisioned by simple extensions of the XML schema defined in MBMS for associated delivery procedures. The following is an example implementation of extensions to associated delivery procedures in MBMS.
A new element of the type userFeedbackType is introduced in the XML schema corresponding to the ‘Associated Delivery Procedures’ as shown in the sample code below. The required element(s) ‘serverURI’ specifies the URIs of the list of servers that collect the feedback from the clients.
The MBMS streaming server decides to collect certain types of feedback during the MBMS streaming session. Examples of the type of feedback can be ‘Yes/No vote’, ‘Best among a group of items (A/B/C/. . . )’, ‘Ranking’ etc. The client application collects the appropriate type of feedback at required time instants. The client application also formats the feedback into XML objects to be transported subsequently using a HTTP POST method.
The user may provide the same type of feedback at multiple time instants during an MBMS streaming session. The XML object corresponding to a client feedback may contain some means of uniquely identifying each feedback, such as, for example, the time-stamp corresponding to the time instant at which client feedback was collected. In some other embodiments, a feedback counter may be used to keep track of various feedback instances. Other useful information such as clientID, serverURI etc are optionally included in the XML object corresponding to the user feedback.
The XML schema corresponding to each type of feedback can be defined as shown in the following sample code. The client application formats the feedback into XML objects using this XML schema.
The XML objects corresponding to multiple feedback instances may be aggregated using multipart-MIME structure.
The following is an example RTCP (real-time control protocol) feedback reports implementation. A sender to request feedback from a plurality of receivers, via the sending of a feedback token on the service announcement channel (SDP, XML, FLUTE, etc.) out-of-band in downlink direction, or in-band in downlink direction within the RTP or RTCP stream (for example by using an RTP header extension with an appropriate field, or an RTCP APP packet with an extension with an appropriate field). The field contains an indicator of feedback (indicating that the feedback is requested), and optionally a time indicator (indicating when the feedback is requested), and a number indicating the fraction of receivers that are requested to send the feedback.
The receivers extract a random number and if the number is less than or equal than the number indicating the fraction of receivers (received by the sender), sends an RTCP report (or any other quality report) immediately or using the timing rule which is communicated by the sender to the receivers.
While several embodiments of the invention have been described, it is to be understood that modifications and changes will occur to those skilled in the art to which the invention pertains. Accordingly, the claims appended to this specification are intended to define the invention precisely.
This application is a an application claiming the benefit under 35 USC 119(e) U.S. Provisional Application 60/677,426, filed May 3, 2005, incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
60677426 | May 2005 | US |