[go: up one dir, main page]

WO2018021950A1 - Device and method for controlling media streaming from a server to a client - Google Patents

Device and method for controlling media streaming from a server to a client Download PDF

Info

Publication number
WO2018021950A1
WO2018021950A1 PCT/SE2016/050728 SE2016050728W WO2018021950A1 WO 2018021950 A1 WO2018021950 A1 WO 2018021950A1 SE 2016050728 W SE2016050728 W SE 2016050728W WO 2018021950 A1 WO2018021950 A1 WO 2018021950A1
Authority
WO
WIPO (PCT)
Prior art keywords
media
denotes
streaming
rml
segment
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.)
Ceased
Application number
PCT/SE2016/050728
Other languages
French (fr)
Inventor
Hans Hannu
Min Wang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Priority to PCT/SE2016/050728 priority Critical patent/WO2018021950A1/en
Publication of WO2018021950A1 publication Critical patent/WO2018021950A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/454Content or additional data filtering, e.g. blocking advertisements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/764Media network packet handling at the destination 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management 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/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26258Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47202End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2387Stream processing in response to a playback request from an end-user, e.g. for trick-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management 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/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data

Definitions

  • the proposed technology generally relates to methods and devices for controlling streaming of media from a media server to a client terminal. More specifically it relates to methods and devices that controls which particular upcoming media segments to download for streaming.
  • the proposed technology also provides corresponding computer programs and computer program products.
  • HTTP adaptive streaming is implemented by different vendors such as HTTP dynamic streaming, HDS, developed by Adobe, HTTP smooth streaming, HSS, implemented by Microsoft, HTTP live streaming (HLS) provided by Apple.
  • Dynamic adaptive streaming over HTTP, DASH also named HTTP Adaptive Streaming, HAS, has been adopted by 3GPP targeting to unify behaviors for different vendors.
  • the video server can be incorporated in normal web servers with storage of video representation with different codec rates.
  • a video clip is composed of multiple representation layers with different resolutions.
  • Each layer is encoded with CBR, Constant Bit Rate, or VBR, Variable Bit Rate, encoding algorithms.
  • CBR Constant Bit Rate
  • VBR Variable Bit Rate
  • encoding algorithms Such organization gives finer scalability which can adapt to the client variants and different network bandwidths.
  • the client fetches the Media Presentation Description, MPD, see ref [1 ], from the streaming server for the requested video clip.
  • the MPD conveys detailed characteristics of the requested video clip using a hierarchical data model, which for example includes the timing, segmentation duration, URL, video bitrates, resolutions etc.
  • the client initiates a video request with the initial rate, which is typically a low rate, to the video server.
  • the video request is followed by a bundle of video frames transmitted by the video server.
  • the bundle of video frames also called video segments or video chunks is composed of the subsequent frames in the interval of several seconds.
  • the client may select a new media rate, from the rates given by the MPD, based on the estimated available network throughput and / or the amount of video in the play-out buffer.
  • the buffer-based rate adaptation reduces the buffer underrun and may increase the media rate through the session it suffers from increased rate changes that may negatively affect the quality of experience.
  • the media rate achieved with the buffer based and look ahead scheme for media rate adaptation is lower than the common bandwidth or throughput estimate based rate adaptation. This is due to that the endpoint lacks full knowledge of the system load as the client cannot conceive what happens with other clients sharing the same resources
  • the conference paper [6] used a variant of the algorithm in [5] to provide a media rate recommendation to the client from the network based on the more detailed knowledge that the network has of its part of the system. The client would then issue a request to the server for the suitable video segment.
  • the idea presented in [6] is good at avoiding play-out buffer underrun/re-buffering i.e. in order to avoid a video freeze event.
  • the idea of look ahead as described in [4] is beneficial to reduce the amount of rate switches.
  • both ideas suffer from lower session media rate than common bandwidth or throughput estimate based rate adaptation.
  • existing solutions may not be able to produce the best possible QoE when QoE metrics such as re-buffering events, rate switches, session media rate, pre-buffering and re-buffering time are weighted together.
  • the proposed technology aims to provide alternative mechanisms that improve handling of media streaming from a media server to a client terminal.
  • An object of the proposed technology is to provide a method for controlling streaming of media.
  • Another object of the proposed technology is to provide an apparatus configured to control the streaming of media
  • Yet another object is to provide computer programs and computer program products that enables the controlling of media streaming.
  • a method for controlling streaming of media from a media server 200 to a client terminal 100 comprises acquiring S1 information specifying at least two possible streams that can be used for streaming of the media, each of the streams comprising media segments with stream specific bitrates and sizes.
  • the method also comprises obtaining S2 information specifying a recommended bitrate, RBR, to be used by the terminal 100 during streaming of media.
  • the method also comprises selecting S3 upcoming media segments to be downloaded from the media server 200 based at least partially on the acquired information and the recommended bitrate.
  • an apparatus that is configured to control streaming of media from a media server to a client terminal.
  • the apparatus is configured to acquire information specifying at least two possible streams that can be used for streaming of the media, each of the streams comprising media segments with stream specific bitrates and sizes.
  • the apparatus is also configured to obtain information specifying a recommended bitrate, RBR, to be used by the terminal during streaming of media.
  • RBR recommended bitrate
  • the apparatus is also configured to select upcoming media segments to be downloaded from the media server based at least partially on the acquired information and the recommended bitrate.
  • a computer program comprising instructions, which when executed by at least one processor, cause the at least one processor to:
  • ⁇ read information specifying at least two possible streams that can be used for streaming of the media, each of the streams comprising media segments with stream specific bitrates and sizes;
  • determine upcoming media segments to be downloaded from a media server based at least partially on the acquired information and the recommended bitrate.
  • a computer program product comprising the computer program of the third aspect.
  • an apparatus for controlling streaming of media from a media server to a client terminal comprises:
  • a reading module for reading information specifying at least two possible streams that can be used for streaming of the media, each of the streams comprising media segments with stream specific bitrates and sizes;
  • Embodiments of the proposed technology makes it possible to provide improved Quality of Experience, QoE, for a client streaming media such as e.g. video.
  • the proposed technology also provide mechanism that will improve system fairness which in turn leads to more satisfied users.
  • FIG. 1A is a schematic illustration of a network environment in which the proposed technology may be utilized.
  • FIG. 1 B is a schematic signaling diagram illustrating the signaling between different nodes in a particular embodiment of the proposed technology.
  • FIG. 2 is a schematic flow diagram illustrating a method according to the proposed technology.
  • FIG. 3 is a schematic flow diagram illustrating a particular embodiment of a method according to the proposed technology.
  • FIG. 4 is a schematic block diagram illustrating an apparatus for controlling streaming according to the proposed technology.
  • FIG. 5A is a schematic block diagram illustrating another embodiment of an apparatus for controlling streaming according to the proposed technology.
  • FIG. 5B is a schematic block diagram illustrating how an apparatus according to the proposed technology may be implemented in a client terminal, a medias server or a network node.
  • FIG. 6 is a schematic block diagram illustrating a computer program implementation according to the proposed technology.
  • FIG. 7 is a schematic block diagram illustrating an apparatus for controlling streaming according to the proposed technology.
  • Streaming of media e.g. multimedia is normally performed by means of interaction between a data server, which possesses the media and, upon request, provides the media to a client terminal. That is, during streaming of media, i.e. multimedia, data is constantly received by and presented to a client, or end-user, while being delivered by a provider.
  • Streaming media refers to applications where e.g. audio or video content is played immediately, or almost immediately, since buffering is used to avoid freeze events, instead of being saved to a hard drive for later use.
  • a TV episode is divided into smaller parts e.g. chunks, that is sent to the receiver using a transport protocol such as TCP.
  • the media may be provided to the client in either a wireless fashion, wherein the particular streaming is performed over an intermittent wireless link, such as a network node, or by means of wired streaming.
  • a certain client may request media, e.g. movies, radio shows, sport, etc., to be streamed from a data server.
  • the streaming is generally performed by means of a data server that provides segments, or chunks, of the media to the client terminal.
  • the client terminal receives the segments and store the segments in buffers.
  • the streaming will normally begin on the client side after a certain buffer level is reached, i.e.
  • the proposed technology provides an alternative way to ensure smooth streaming in so far that it provides mechanisms for controlling the streaming of media.
  • the proposed mechanisms in general provides a way whereby a network assisted recommend media rate is combined with a look ahead method in order to increase the session media rate with limited rate steps. This is done in order to mitigate, or completely avoid annoying disruptions of the streaming due to re-buffering events.
  • FIG. 1A is a schematic flow diagram illustrating a network environment in which the proposed technology may be utilized.
  • a terminal 100 that communicates with a server 200 over the paths E and F.
  • a wireless system B with a network assistance method included in a node 300.
  • path E includes a link, e.g. a wireless link such as a LTE radio channel, which is different from the links of path F.
  • a wireless link such as a LTE radio channel
  • the network assistance is a potential downlink bit rate that the terminal 100 may have over path E, which is commonly the bottleneck of communication systems of today.
  • the recommended bitrate provides a measure of the most suitable, from a network point of view, bitrate for the client over the particular link between the network node and the client and based on the format of the media.
  • the proposed technology provides a method for controlling streaming of media from a media server 200 to a client terminal 100.
  • the method comprises acquiring S1 information specifying at least two possible streams that can be used for streaming of the media, each of the streams comprising media segments with stream specific bitrates and sizes.
  • the method also comprises obtaining S2 information specifying a recommended bitrate, RBR, to be used by the terminal 100 during streaming of media.
  • the method also comprises selecting S3 upcoming media segments to be downloaded from the media server 200 based at least partially on the acquired information and the recommended bitrate.
  • the flow diagram of FIG.2 provides a schematic illustration of the proposed method.
  • a method that selects the particular media segments, or particular sequences of media segments, to be downloaded by a client terminal 100 that is streaming media from a media server 200.
  • the method relies on at least two different types of information, a first type of information that specifies the possible streams that can be used for streaming.
  • streams are here intended a sequence of media segments having specified sizes or lengths together with corresponding bitrates.
  • the information may in a particularly simple example be represented by a set of numbers, e.g. the acquired information comprises a first parameter N, which is equal or larger than one, which is describing the number of media segments of a first stream of the at least two possible streams.
  • the parameter N Associated to the first stream and the parameter N is also corresponding media segment sizes and bitrates.
  • each of the N different segments of the first stream are associated with a particular segment size and a particular bitrate. If, for example, it is given that N is two, then the information about the first stream acquired in step S1 comprises 4 additional numbers. Two numbers specifying the size and bitrate of the first segment and two specifying the size and bitrate of the second segment.
  • the information acquired in step S1 will also comprise corresponding information related to a second stream.
  • the acquired information may therefore comprise information about a second parameter M which is describing the number of media segments of a second stream of the at least two possible streams.
  • the parameter M may be the same as N above.
  • the information acquired in step S1 will comprise information about the sizes and bitrates of each of the M segments of the second stream.
  • the information may be acquired from the media server 200, either upon request or as information transmitted by means of e.g. a Media Presentation Description, MPD, providing details enabling streaming of the media.
  • MPD Media Presentation Description
  • the media server is selected to perform the method than the media server can read of the information from the stored information about the media already at hand.
  • the method also comprises the step S2 of obtaining information about a recommended bitrate, RBR, to be used by the terminal 100 during streaming of media.
  • the value of the recommended bitrate may be obtained from e.g. a network assistance node providing connection links between the media server and the terminal.
  • the network assistance node may for example provide a wireless link between the media server and the client terminal. Other links are however also possible.
  • the method may proceed and select, in a step S3, the specific upcoming media segments to be downloaded from the media server 200 based at least partially on the acquired information and the recommended bitrate. Specific ways of selecting the media segments will be described in what follows.
  • the step S3 of selecting a media segment comprises calculating S31 a target value for a media segment entity based at least partially on the acquired information and the obtained recommended bitrate.
  • the step S3 of selecting a media segment also comprises determining S32, for each of at least two streams, a representative value of the media segment entity to enable that a selection of a media segment to be downloaded can be based on a comparison relating the target value and the representative value.
  • a media segment will be selected for downloading based on a comparison between a target value for a particular media segment entity, calculated by using at least the acquired information and the obtained information and a determined stream specific representative value of the media segment entity, i.e. a representative value determined for each stream.
  • the media segment entity referred to above may either relate to the size of the particular media segment or a bitrate of the particular media segment. It may also be a functional representation of the same, i.e. the entity may be provided by a particular mathematical function of the size and/or the bitrate.
  • the embodiment also determines S32, for each of the streams in the set of at least two streams, a representative value of the media segment. Having access to a target value and representative values, the method may perform a comparison between the target value and the representative values and base the selection of the next media segment to be downloaded on the outcome of the comparison. Particularly efficient comparison criteria will be described in what follows.
  • step S31 of calculating a target value, T, for the media segment entity is performed by using any of the following equations:
  • RML denotes the length of the media to be requested and RBR denotes the recommended bitrate, or:
  • T (CBL-RML) * RBR, (2) where CBL denotes the current buffer level of the client terminal (100), RML denotes the length of the media to be requested and RBR denotes the recommended bitrate, or:
  • T (CBL-MBL) * RBR, (3) where CBL denotes the current buffer level of the client terminal (100), MBL denotes the minimum buffer level of the client and RBR denotes the recommended bitrate.
  • Formula (1 ) above utilizes, beside the recommended bitrate also the length of the media to be requested, RML.
  • the value may in many cases be set to the length of a particular segment, i.e. the method only selects one segment at the time. It is common to request one segment of media per request. The same segment length, in seconds, is usually used throughout the whole media, e.g. throughout the whole video clip/movie/episode.
  • the requested media length corresponds mostly to one segment length, e.g. 1 s, 5s or 10s.
  • Formula (2) and (3) above utilizes, beside the obtained recommended bitrate, also the buffer level values of the client.
  • the current buffer level of the client is known to the client terminal 100, so if the method is to be implemented by the client terminal 100, then the value is already known. If on the other hand the method is to be implemented by the media server 200 this information may either be approximated based on statistics, or relayed by the client terminal 100 to the media server.
  • step S32 of determining, for each of the streams, a representative value of the media entity comprises any of the following:
  • This particular embodiment provides for different ways of determining S32 a representative value for each of the at least two streams.
  • a first possible way is to compute the average of media entity for a particular number N of upcoming media segments and use the average value as a representative value to be compared with the target value.
  • a second possible way is to determine the value of a predetermined percentile of a number N of upcoming media segments, and use this as a representative value. That is, X is the predetermined percentile in size, represented by bits/bytes of the N upcoming segment. E.g. the 10 th percentile size of the N upcoming segment gives the size that 10% of the N segments are smaller than.
  • step S32 of determining, for each of the streams, a representative value of the media entity comprises to determine the representative size, S N , of a number N of upcoming media segments, and to determine the representative size, S , of another number M of upcoming media segments, and to setting the representative value to:
  • a possible embodiment of the proposed technology provides a method wherein the step S3 of selecting a media segment to request for downloading at least comprises to compare the target value, T, with the representative values, RV, in order to select the stream from which the next media segment is to be downloaded based on the comparison.
  • step S3 of selecting a media segment to request for downloading comprises to compare the target value, T, with the representative values, RV, and select a media segment from the stream that yielded a representative value that was closest to the corresponding target value.
  • Still another embodiment of the proposed technology provides a method wherein the step S32 of determining, for each of the streams, a representative value of the media entity also comprises to determine an additional representative value of the media entity based on a chunk map providing a map relating the value of the client terminals 100 buffer levels and media segment sizes.
  • a particular example of this embodiment relates to the case where the selection process of the next media segment to download includes another input related to segment size that is provided by means of a chunk map.
  • a chunk map is a defined mapping between amount of data in the play-out buffer, i.e. the buffer level, and the segment size.
  • the chunk map provides a segment size to use, commonly denoted as a Chunk Map Segment Size, CMSS.
  • CMSS Chunk Map Segment Size
  • the method may determine an additional representative value of the media entity.
  • This additional value may, according to one particular embodiment, first be compared with the target value to check whether it fulfills the specified comparison criteria and after that be compared with another determined representative value, e.g. a representative value determined according to the earlier described embodiments, in order to find the most suitable media segment to download.
  • the additional representative value may first be compared with the target value and then compared with the representative value in order to select the most suitable media segment to download.
  • the target value could first be compared with the representative value, and then further compared with the additional representative value in order to determine a particular media segment to be downloaded.
  • a target value which for example may be media segment size, calculated by using any of the Formulas (1 ), (2), (3) and a representative value, R, calculated by using i.e. Formula (4) given above.
  • the chunk map may then be used to provide an additional representative value A R of the media size.
  • This additional representative value may than be compared with the calculated representative value in order to find the most suitable media segment size to use. This may for example be achieved by comparing the two values and choose the calculated representative value over the additional representative value if it is larger or smaller than a particular offset a given to the additional representative value, e.g. if R ⁇ A R + a or if R > A R + a.
  • the proposed technology provides a method wherein the step S3 of selecting a media segment to request for downloading comprises to compare the determined representative values with the target value and the determined additional representative values, or an offset of the additional representative values, and select the next media segment to download based on the comparison.
  • a possible embodiment of the proposed technology provides a method wherein the step S3 of selecting a media segment to request for downloading comprises to select a media segment from a stream that yielded a representative value that was closest to the corresponding target value.
  • the step S3 of selecting a media segment to request for downloading comprises to select a media segment from a stream that yielded a representative value that was closest to the corresponding target value.
  • the method may be implemented to be on the safe side and thus choose the closest lower value. The method may however also be a bit aggressive and choose the closest higher.
  • the step of acquiring S1 information comprises acquiring the information from a Media Presentation Description, MPD, providing details enabling streaming of the media.
  • Still another possible embodiment of the proposed technology provides a method wherein the step of obtaining S2 information specifying a recommended bitrate, RBR, comprises to receive the recommended bitrate from a network node 300 supporting the link between the media server 200 and the client terminal 100.
  • the method could, according to the proposed technology, be performed by either the media server 200 or the client terminal 100.
  • each of the streams, O and Q contains two media segments.
  • Stream O has two segments with bitrates ⁇ and 0'2, with corresponding sizes 0"1 and 0"2, while stream Q has segments with bitrates Q'1 and Q'2 and corresponding sizes Q"1 and Q"2.
  • Step S1 Acquire information relating to stream 0 with specified bitrates ⁇ , and 0'2, with corresponding sizes 0"1 and 0"2, for each of the two segments. That is, the first media segment is characterized by bitrate 0 * '1 and size 0 * "1 , while the second media segment in the first stream 0 is characterized by bitrate 0 ** '2 and size 0 ** '2.
  • the specific information thus acquired may be represented, in this simplified example, by eight numbers, bitrates 0 * '1 , 0 ** '2 and sizes 0 ** '1 , 0 * "2 from the first stream 0 and the corresponding numbers from the second stream Q.
  • Step S2 Obtain the recommended bitrate, a single number.
  • Step S3 Select the next media segment to download based at least partially on these numbers.
  • This process utilizes a calculated target value which can be seen as single number.
  • the target value is a target value corresponding to a media segment entity. This entity may be either media segment size or the bitrate of a media segment.
  • the process also utilizes a representative value that is determined according to step S32 described earlier.
  • a representative value for each stream O and Q which in this case amounts to two numbers. Having obtained these three numbers, the target value and the two representative values, one may proceed to determine what media segment to download. This may be done by comparing the two different representative values with the target value and select the particular representative value that fulfilled a specified criteria. The media segment to download is then selected from the stream that yielded the representative value that fulfilled the specified criteria.
  • the criteria may, for example, be to select the representative value that was closest to the target value. It may however also be to select the representative value that were closest to the target value but higher than the same. It may also be to select the representative value that were closest to the target value but lower than the same.
  • the specific constraint or comparison criteria to use when selecting the next media segment to download may be tailored to the particular conditions. For example, if the media segment entity refers to the size of the media segment, and if the buffer levels are low in the client terminal, one may choose the comparison criteria that the representative value should be close to, but higher than, the target value to ensure that the buffer does not get emptied and freezes the streaming.
  • FIG.1 B Still another illustrating example of the proposed technology is illustrated in the signaling diagram of FIG.1 B.
  • FIG. 1 B provides an example message sequence diagram between the three cooperating entities illustrated in FIG.1 .
  • the media represented by video That is, the client terminal aims to stream video provided by the media server.
  • the video client in terminal A sends a GET video message to the video server D.
  • the video server D replies with the Media Presentation Description (MPD).
  • MPD Media Presentation Description
  • the video client interacts with the network assistance node C.
  • This interaction may, for example, include exchange of client information, such as play-out buffer level, MPD information such as available media rates at the video server D.
  • the network assistance method in node C calculates a recommended bit rate for the particular video client in terminal A based on system and user information available in the wireless system B.
  • the video client request video segments from the server.
  • the video server replies back to the video client with the request video segments
  • the video client request video segments from the server.
  • the video server replies back to the video client with the request video segments The requests and responses will continue until the user stops the video or the video is finished.
  • the proposed technology also provides an apparatus or network device that is configured to control streaming of media from a media server 200 to a client terminal 100.
  • Such an apparatus or network device may reside in either the client terminal 100 or the media server 200. It may however also reside in any other supporting network node that provides communication links between the media server 200 and the client terminal 100, e.g. the network node 300; C, that provides assistance.
  • the advantages that is achieved by such an apparatus are the same as those that were described in relation to the proposed method and they will not be described again.
  • wireless communication device may refer to a mobile phone, a cellular phone, a Personal Digital Assistant (PDA), equipped with radio communication capabilities, a smart phone, a laptop or Personal Computer (PC), equipped with an internal or external mobile broadband modem, a tablet with radio communication capabilities, a target device, a device to device UE, a machine type UE or UE capable of machine to machine communication, Customer Premises Equipment (CPE), Laptop Embedded Equipment (LEE), Laptop Mounted Equipment (LME), USB dongle, a portable electronic radio communication device, a sensor device equipped with radio communication capabilities or the like.
  • PDA Personal Digital Assistant
  • PC Personal Computer
  • CPE Customer Premises Equipment
  • LEE Laptop Embedded Equipment
  • LME Laptop Mounted Equipment
  • USB dongle a portable electronic radio communication device, a sensor device equipped with radio communication capabilities or the like.
  • wireless communication device should be interpreted as non-limiting terms comprising any type of wireless device communicating with a network node in a wireless communication system and/or possibly communicating directly with another wireless communication device.
  • a wireless communication device may be any device equipped with circuitry for wireless communication according to any relevant standard for communication.
  • network node may refer to base stations, access points, network control nodes such as network controllers, radio network controllers, base station controllers, access controllers, and the like.
  • base station may encompass different types of radio base stations including standardized base station functions such as Node Bs, or evolved Node Bs (eNBs), and also macro/micro/pico radio base stations, home base stations, also known as femto base stations, relay nodes, repeaters, radio access points, Base Transceiver Stations (BTSs), and even radio control nodes controlling one or more Remote Radio Units (RRUs), or the like.
  • base station may encompass different types of radio base stations including standardized base station functions such as Node Bs, or evolved Node Bs (eNBs), and also macro/micro/pico radio base stations, home base stations, also known as femto base stations, relay nodes, repeaters, radio access points, Base Transceiver Stations (BTSs), and even radio control nodes controlling one or more Remote Radio Units (RRUs),
  • network device may refer to any device located in connection with a communication network, including but not limited to devices in access networks, core networks and similar network structures.
  • the term network device may also encompass cloud-based network devices.
  • the proposed technology also provides an apparatus 150 that is configured to control streaming of media from a media server 200 to a client terminal 100.
  • the apparatus 150 is configured to acquire information specifying at least two possible streams that can be used for streaming of the media, each of the streams comprising media segments with stream specific bitrates and sizes.
  • the apparatus 150 is also configured to obtain information specifying a recommended bitrate, RBR, to be used by the terminal 100 during streaming of media.
  • the apparatus 150 is also configured to select upcoming media segments to be downloaded from the media server 200 based at least partially on the acquired information and the recommended bitrate.
  • a possible embodiment of the proposed technology provides an apparatus 150 that is configured to select a media segment.
  • the apparatus 150 is configured to calculate a target value for a media segment entity based at least partially on the acquired information and the obtained recommended bitrate.
  • the apparatus 150 is also configured to determine, for each of the at least two streams, a representative value of the media segment entity, to enable that a selection of a media segment to be downloaded is based on a comparison relating the target value and the representative value.
  • the proposed technology also provides an embodiment of an apparatus 150 wherein apparatus is configured to calculate a target value, T, for the media segment entity by using any of the following equations:
  • T RML * RBR, where RML denotes the length of the media to be requested and RBR denotes the recommended bitrate, or:
  • T (CBL-RML) * RBR, where CBL denotes the current buffer level of the client terminal (100), RML denotes the length of the media to be requested and RBR denotes the recommended bitrate, or:
  • the apparatus 150 is configured to compute an average of the media entity based on a number N of upcoming media segments and setting the representative value to the average, or
  • the apparatus 150 is configured to determine a value, X, of a predetermined percentile of a number N of upcoming media segments and setting the representative value to X/RML where RML denotes the length of the media to be requested, or
  • the apparatus 150 is configured determine the maximum size, S ma x, of a number N of upcoming media segments and setting the representative value to S ma x/RML, where RML denotes the length of the media to be requested.
  • Still another embodiment of the proposed technology provides an apparatus 150 that is configured to determine, for each of the streams, a representative value of the media entity comprises to determine the representative size, S N , of a number N of upcoming media segments, and to determine the representative size, S , of another number M of upcoming media segments, and to setting the representative value to:
  • RML denotes the length of the media to be requested
  • S N is determined by taking the maximum size of a number N of upcoming media segments
  • S is determined by taking the average size of a number M of upcoming media segments
  • a possible embodiment provides an apparatus 150 that is configured to select a media segment to request for downloading, wherein the apparatus is at least configured to compare the target value, T, with the representative values, RV, in order to select the stream from which the next media segment is to be downloaded based on the comparison.
  • Another possible embodiment provides an apparatus 150 that is configured to select a media segment to request for downloading by comparing the target value, T, with the representative values, RV, and select a media segment from the stream that yielded a representative value that was closest to the corresponding target value.
  • Yet another embodiment of the proposed technology provides an apparatus 150, wherein the apparatus is configured to determine, for each of the streams, a representative value of the media entity by being further configured to determine an additional representative value of the media entity based on a chunk map providing a map relating buffer levels with media segment sizes.
  • the proposed technology provides an apparatus 150 that is configured to select a media segment to request for downloading by being configured to compare the determined representative values with the target value and the determined additional representative values, or an offset of the additional representative values, and by being configured to select the next media segment to download based on the comparison.
  • a particular embodiment of the proposed technology provides an apparatus that is configured to select a media segment to request for downloading by being configured to select a media segment from a stream that yielded a representative value that was closest to the corresponding target value.
  • Another embodiment of the proposed technology provides an apparatus 150 that is configured to acquire information from a Media Presentation Description, MPD, providing details enabling streaming of the media.
  • Yet another embodiment of the proposed technology provides an apparatus that is configured to obtain information specifying a recommended bitrate, RBR, by receiving the recommended bitrate from a network node 300 supporting the link between the media server 200 and the client terminal 100.
  • FIG.4 provides a schematic block diagram illustrating a particular embodiment of the proposed apparatus 150.
  • the apparatus 150 comprises a communication circuitry 130, a processor 1 10 and a memory 120, the memory 120 comprising instructions executable by the processor 1 10, whereby the processor 1 10 is operative to control streaming of media from a media server 200 to a client terminal 100.
  • FIG.5B provides a block diagram illustrating an apparatus 150 according to the proposed technology that is part of either the media server 200 or the client terminal 100.
  • the apparatus 150 may also form part of the assisting network node 300. It will be appreciated that the methods and arrangements described herein can be implemented, combined and re-arranged in a variety of ways.
  • embodiments may be implemented in hardware, or in software for execution by suitable processing circuitry, or a combination thereof.
  • At least some of the steps, functions, procedures, modules and/or blocks described herein may be implemented in software such as a computer program for execution by suitable processing circuitry such as one or more processors or processing units.
  • processing circuitry includes, but is not limited to, one or more microprocessors, one or more Digital Signal Processors (DSPs), one or more Central Processing Units (CPUs), video acceleration hardware, and/or any suitable programmable logic circuitry such as one or more Field Programmable Gate Arrays (FPGAs), or one or more Programmable Logic Controllers (PLCs).
  • DSPs Digital Signal Processors
  • CPUs Central Processing Units
  • FPGAs Field Programmable Gate Arrays
  • PLCs Programmable Logic Controllers
  • FIG. 5A is a schematic block diagram illustrating another example of an apparatus 150, based on a hardware circuitry implementation according to an embodiment.
  • suitable hardware circuitry 210 include one or more suitably configured or possibly reconfigurable electronic circuitry, e.g. Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs), or any other hardware logic such as circuits based on discrete logic gates and/or flip-flops interconnected to perform specialized functions in connection with suitable registers (REG) and/or memory units (MEM) 220.
  • ASICs Application Specific Integrated Circuits
  • FPGAs Field Programmable Gate Arrays
  • REG registers
  • MEM memory units
  • the apparatus 150 may also include a communication circuit 130; 230.
  • the communication circuit 130 may include functions for wired and/or wireless communication with other devices and/or network nodes in the network. In a particular example, the communication circuit 130 may be based on radio circuitry for communication with one or more other nodes, including transmitting and/or receiving information.
  • the communication circuit 130 may be interconnected to the processor 1 10 and/or memory 120.
  • the communication circuit 230 may be interconnected to the hardware circuitry 210 and/or REG/MEM 220.
  • the communication circuit 130; 230 may include any of the following: a receiver, a transmitter, a transceiver, input/output (I/O) circuitry, input port(s) and/or output port(s).
  • FIG. 6 is a schematic diagram illustrating an example of a computer-implementation 400 according to an embodiment.
  • a computer program 125 which is loaded into the memory 120 for execution by processing circuitry including one or more processors 1 10.
  • the processor(s) 1 10 and memory 120 are interconnected to each other to enable normal software execution.
  • An optional input/output device 440 may also be interconnected to the processor(s) 1 10 and/or the memory 120 to enable input and/or output of relevant data such as input parameter(s) and/or resulting output parameter(s).
  • the term 'processor' should be interpreted in a general sense as any system or device capable of executing program code or computer program instructions to perform a particular processing, determining or computing task.
  • the processing circuitry including one or more processors 1 10 is thus configured to perform, when executing the computer program 125, well-defined processing tasks such as those described herein.
  • the processing circuitry does not have to be dedicated to only execute the above- described steps, functions, procedure and/or blocks, but may also execute other tasks.
  • a computer program 125 comprising instructions, which when executed by at least one processor 1 10, cause the at least one processor 1 10 to: • read information specifying at least two possible streams that can be used for streaming of the media, each of the streams comprising media segments with stream specific bitrates and sizes;
  • the proposed technology also comprises a computer program product 225; 2350 comprising the above described computer program 125.
  • the proposed technology also provides a carrier comprising the computer program, wherein the carrier is one of an electronic signal, an optical signal, an electromagnetic signal, a magnetic signal, an electric signal, a radio signal, a microwave signal, or a5 computer-readable storage medium.
  • the software or computer program 125 may be realized as a computer program product, which is normally carried or stored on a computer-readable medium, in particular a non-volatile medium.
  • the computer-readable medium may0 include one or more removable or non-removable memory devices including, but not limited to a Read-Only Memory (ROM), a Random Access Memory (RAM), a Compact Disc (CD), a Digital Versatile Disc (DVD), a Blu-ray disc, a Universal Serial Bus (USB) memory, a Hard Disk Drive (HDD) storage device, a flash memory, a magnetic tape, or any other conventional memory device.
  • the computer program may thus be loaded5 into the operating memory of a computer or equivalent processing device for execution by the processing circuitry thereof.
  • FIG. 7 is a schematic diagram illustrating an example of an apparatus 170 for controlling streaming of media from a media server 200 to a client terminal 100, wherein the apparatus comprises:
  • a reading module 171 for reading information specifying a recommended bitrate, RBR, to be used by a terminal 100 during streaming of media
  • a processing module 172 for determining upcoming media segments to be downloaded from a media server 200 based at least partially on the acquired information and the recommended bitrate.
  • module(s) in FIG. 7 it is possible to realize the module(s) in FIG. 7 predominantly by hardware modules, or alternatively by hardware, with suitable interconnections between relevant modules.
  • Particular examples include one or more suitably configured digital signal processors and other known electronic circuits, e.g. discrete logic gates interconnected to perform a specialized function, and/or Application Specific Integrated Circuits (ASICs) as previously mentioned.
  • Other examples of usable hardware include input/output (I/O) circuitry and/or circuitry for receiving and/or sending signals.
  • I/O input/output

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

The proposed technology discloses methods, devices and computer programs for controlling of streaming of media. It is in particular disclosed a method for controlling streaming of media from a media server 200 to a client terminal 100. The method comprises acquiring S1 information specifying at least two possible streams that can 5 be used for streaming of the media, each of the streams comprising media segments with stream specific bitrates and sizes. The method also comprises obtaining S2 information specifying a recommended bitrate, RBR, to be used by the terminal 100 during streaming of media. The method also comprises selecting S3 upcoming media segments to be downloaded from said media server 200 based at least 10 partially on the acquired information and the recommended bitrate. Corresponding apparatuses and computer programs are also disclosed.

Description

DEVICE AND METHOD FOR CONTROLLING MEDIA STREAMING FROM A SERVER TO A CLIENT
TECHNICAL FIELD
The proposed technology generally relates to methods and devices for controlling streaming of media from a media server to a client terminal. More specifically it relates to methods and devices that controls which particular upcoming media segments to download for streaming. The proposed technology also provides corresponding computer programs and computer program products.
BACKGROUND
More and more online video services are utilizing video rate adaptation in order to provide a good user quality of experience in varying network conditions. In the marketplace, several different versions of HTTP adaptive streaming are implemented by different vendors such as HTTP dynamic streaming, HDS, developed by Adobe, HTTP smooth streaming, HSS, implemented by Microsoft, HTTP live streaming (HLS) provided by Apple. Dynamic adaptive streaming over HTTP, DASH, also named HTTP Adaptive Streaming, HAS, has been adopted by 3GPP targeting to unify behaviors for different vendors. The video server can be incorporated in normal web servers with storage of video representation with different codec rates. In DASH, and most of the other versions, a video clip is composed of multiple representation layers with different resolutions. Each layer is encoded with CBR, Constant Bit Rate, or VBR, Variable Bit Rate, encoding algorithms. Such organization gives finer scalability which can adapt to the client variants and different network bandwidths. At the start of a video session, the client fetches the Media Presentation Description, MPD, see ref [1 ], from the streaming server for the requested video clip. The MPD conveys detailed characteristics of the requested video clip using a hierarchical data model, which for example includes the timing, segmentation duration, URL, video bitrates, resolutions etc. Based on the information in the MPD the client initiates a video request with the initial rate, which is typically a low rate, to the video server. The video request is followed by a bundle of video frames transmitted by the video server. The bundle of video frames also called video segments or video chunks is composed of the subsequent frames in the interval of several seconds. The client may select a new media rate, from the rates given by the MPD, based on the estimated available network throughput and / or the amount of video in the play-out buffer.
The proposed technology will hereafter be described from an LTE perspective; however, this does not exclude its applicability to other wireless access networks, such as UMTS/3G and WiFi. Several client media rate selection algorithms have been proposed to improve the Quality of Experience, QoE, for adaptive streaming video. In ref [3], it is observed that it is hard to perform accurate DASH client-side bandwidth or throughput estimation above the HTTP layer. As a result, video rate adaptation is based on inaccurate estimates which can lead to undesirably variable and low-quality video. Therefore, in [3] a buffer-based rate adaptation algorithm is proposed that does the rate selection based on the current buffer level. However, as presented in [4] although the buffer-based rate adaptation reduces the buffer underrun and may increase the media rate through the session it suffers from increased rate changes that may negatively affect the quality of experience. To reduce the amount of rate changes it is proposed in ref [4] to look ahead on the sizes of potential coming chunks, and also consider that in the rate selection. Still, as stated in ref [4] during peak hours the media rate achieved with the buffer based and look ahead scheme for media rate adaptation is lower than the common bandwidth or throughput estimate based rate adaptation. This is due to that the endpoint lacks full knowledge of the system load as the client cannot conceive what happens with other clients sharing the same resources
The conference paper [6] used a variant of the algorithm in [5] to provide a media rate recommendation to the client from the network based on the more detailed knowledge that the network has of its part of the system. The client would then issue a request to the server for the suitable video segment. The idea presented in [6] is good at avoiding play-out buffer underrun/re-buffering i.e. in order to avoid a video freeze event. The idea of look ahead as described in [4] is beneficial to reduce the amount of rate switches. However, both ideas suffer from lower session media rate than common bandwidth or throughput estimate based rate adaptation. Hence, existing solutions may not be able to produce the best possible QoE when QoE metrics such as re-buffering events, rate switches, session media rate, pre-buffering and re-buffering time are weighted together.
The proposed technology aims to provide alternative mechanisms that improve handling of media streaming from a media server to a client terminal.
SUMMARY
It is a general object to provide mechanisms for controlling streaming of media in order to provide improvements regarding the smoothness of the streaming and to reduce unwanted freezing of the streaming due to buffer play-out.
An object of the proposed technology is to provide a method for controlling streaming of media.
Another object of the proposed technology is to provide an apparatus configured to control the streaming of media
Yet another object is to provide computer programs and computer program products that enables the controlling of media streaming.
These and other objects are met by embodiments of the proposed technology. According to a first aspect, there is provided a method for controlling streaming of media from a media server 200 to a client terminal 100. The method comprises acquiring S1 information specifying at least two possible streams that can be used for streaming of the media, each of the streams comprising media segments with stream specific bitrates and sizes. The method also comprises obtaining S2 information specifying a recommended bitrate, RBR, to be used by the terminal 100 during streaming of media. The method also comprises selecting S3 upcoming media segments to be downloaded from the media server 200 based at least partially on the acquired information and the recommended bitrate. According to a second aspect there is provided an apparatus that is configured to control streaming of media from a media server to a client terminal. The apparatus is configured to acquire information specifying at least two possible streams that can be used for streaming of the media, each of the streams comprising media segments with stream specific bitrates and sizes. The apparatus is also configured to obtain information specifying a recommended bitrate, RBR, to be used by the terminal during streaming of media. The apparatus is also configured to select upcoming media segments to be downloaded from the media server based at least partially on the acquired information and the recommended bitrate.
According to a third aspect there is provided a computer program comprising instructions, which when executed by at least one processor, cause the at least one processor to:
· read information specifying at least two possible streams that can be used for streaming of the media, each of the streams comprising media segments with stream specific bitrates and sizes;
• read information specifying a recommended bitrate, RBR, to be used by a terminal during streaming of media; and
· determine upcoming media segments to be downloaded from a media server based at least partially on the acquired information and the recommended bitrate.
According to a fourth aspect there is provided a computer program product comprising the computer program of the third aspect.
According to a fifth aspect there is provided an apparatus for controlling streaming of media from a media server to a client terminal. The apparatus comprises:
• a reading module for reading information specifying at least two possible streams that can be used for streaming of the media, each of the streams comprising media segments with stream specific bitrates and sizes;
• a reading module for reading information specifying a recommended bitrate, RBR, to be used by a terminal during streaming of media; and • a processing module for determining upcoming media segments to be downloaded from a media server based at least partially on the acquired information and the recommended bitrate. Embodiments of the proposed technology makes it possible to provide improved Quality of Experience, QoE, for a client streaming media such as e.g. video. The proposed technology also provide mechanism that will improve system fairness which in turn leads to more satisfied users. These advantages are achieved by utilizing the proposed technology for controlling streaming of media.
Other advantages will be appreciated when reading the detailed description.
BRIEF DESCRIPTION OF THE DRAWINGS The embodiments, together with further objects and advantages thereof, may best be understood by making reference to the following description taken together with the accompanying drawings, in which:
FIG. 1A is a schematic illustration of a network environment in which the proposed technology may be utilized.
FIG. 1 B is a schematic signaling diagram illustrating the signaling between different nodes in a particular embodiment of the proposed technology.
FIG. 2 is a schematic flow diagram illustrating a method according to the proposed technology.
FIG. 3 is a schematic flow diagram illustrating a particular embodiment of a method according to the proposed technology.
FIG. 4 is a schematic block diagram illustrating an apparatus for controlling streaming according to the proposed technology.
FIG. 5A is a schematic block diagram illustrating another embodiment of an apparatus for controlling streaming according to the proposed technology.
FIG. 5B is a schematic block diagram illustrating how an apparatus according to the proposed technology may be implemented in a client terminal, a medias server or a network node. FIG. 6 is a schematic block diagram illustrating a computer program implementation according to the proposed technology.
FIG. 7 is a schematic block diagram illustrating an apparatus for controlling streaming according to the proposed technology.
DETAILED DESCRIPTION
Throughout the drawings, the same reference designations are used for similar or corresponding elements. For a better understanding of the proposed technology, it may be useful to begin with a brief system overview and/or analysis of the technical problem. Streaming of media, e.g. multimedia is normally performed by means of interaction between a data server, which possesses the media and, upon request, provides the media to a client terminal. That is, during streaming of media, i.e. multimedia, data is constantly received by and presented to a client, or end-user, while being delivered by a provider. Streaming media refers to applications where e.g. audio or video content is played immediately, or almost immediately, since buffering is used to avoid freeze events, instead of being saved to a hard drive for later use. To achieve this media, e.g. a TV episode is divided into smaller parts e.g. chunks, that is sent to the receiver using a transport protocol such as TCP. The media may be provided to the client in either a wireless fashion, wherein the particular streaming is performed over an intermittent wireless link, such as a network node, or by means of wired streaming. Hence a certain client may request media, e.g. movies, radio shows, sport, etc., to be streamed from a data server. The streaming is generally performed by means of a data server that provides segments, or chunks, of the media to the client terminal. The client terminal receives the segments and store the segments in buffers. The streaming will normally begin on the client side after a certain buffer level is reached, i.e. when enough segments or chunks has been stored in the buffer. Depending on the actual size of the buffer, data will continue to be transmitted from the data server to the client while the client is watching or listening to content already stored. To ensure a streaming that is as smooth as possible various methods and mechanisms has been proposed. The proposed technology provides an alternative way to ensure smooth streaming in so far that it provides mechanisms for controlling the streaming of media. The proposed mechanisms in general provides a way whereby a network assisted recommend media rate is combined with a look ahead method in order to increase the session media rate with limited rate steps. This is done in order to mitigate, or completely avoid annoying disruptions of the streaming due to re-buffering events.
To illustrate the proposed technology, reference is made to FIG. 1A. FIG. 1A is a schematic flow diagram illustrating a network environment in which the proposed technology may be utilized. Disclosed is a terminal 100 that communicates with a server 200 over the paths E and F. In between the terminal and the server there is a wireless system B with a network assistance method included in a node 300. Hence, path E includes a link, e.g. a wireless link such as a LTE radio channel, which is different from the links of path F. As the wireless link are shared by different users and due to radio fading it is subject for fast varying throughputs, and a video client in terminal 100 may be helped by a network assistance method in node 300. The network assistance is a potential downlink bit rate that the terminal 100 may have over path E, which is commonly the bottleneck of communication systems of today. The recommended bitrate provides a measure of the most suitable, from a network point of view, bitrate for the client over the particular link between the network node and the client and based on the format of the media.
The proposed technology provides a method for controlling streaming of media from a media server 200 to a client terminal 100. The method comprises acquiring S1 information specifying at least two possible streams that can be used for streaming of the media, each of the streams comprising media segments with stream specific bitrates and sizes. The method also comprises obtaining S2 information specifying a recommended bitrate, RBR, to be used by the terminal 100 during streaming of media. The method also comprises selecting S3 upcoming media segments to be downloaded from the media server 200 based at least partially on the acquired information and the recommended bitrate. The flow diagram of FIG.2 provides a schematic illustration of the proposed method. In slightly different words, there is provided a method that selects the particular media segments, or particular sequences of media segments, to be downloaded by a client terminal 100 that is streaming media from a media server 200. The method relies on at least two different types of information, a first type of information that specifies the possible streams that can be used for streaming. With streams are here intended a sequence of media segments having specified sizes or lengths together with corresponding bitrates. The information may in a particularly simple example be represented by a set of numbers, e.g. the acquired information comprises a first parameter N, which is equal or larger than one, which is describing the number of media segments of a first stream of the at least two possible streams. Associated to the first stream and the parameter N is also corresponding media segment sizes and bitrates. That is, each of the N different segments of the first stream are associated with a particular segment size and a particular bitrate. If, for example, it is given that N is two, then the information about the first stream acquired in step S1 comprises 4 additional numbers. Two numbers specifying the size and bitrate of the first segment and two specifying the size and bitrate of the second segment. The information acquired in step S1 will also comprise corresponding information related to a second stream. The acquired information may therefore comprise information about a second parameter M which is describing the number of media segments of a second stream of the at least two possible streams. The parameter M may be the same as N above. In the same way as described for N, the information acquired in step S1 will comprise information about the sizes and bitrates of each of the M segments of the second stream. The particular way in which the information is acquired depends on the specific implementation of the method. If the client terminal 100, or some other network entity, such as a network assisting node, that provides a communication link between the client and the server is intended to perform the method the information may be acquired from the media server 200, either upon request or as information transmitted by means of e.g. a Media Presentation Description, MPD, providing details enabling streaming of the media. If on the other hand the media server is selected to perform the method than the media server can read of the information from the stored information about the media already at hand. It should be noted that N, and also M, may be a configurable parameter that indicates how many segments one should look ahead with. N may also be calculated from a function N = f (Target number of rate switches).
Additionally the method also comprises the step S2 of obtaining information about a recommended bitrate, RBR, to be used by the terminal 100 during streaming of media. The value of the recommended bitrate may be obtained from e.g. a network assistance node providing connection links between the media server and the terminal. The network assistance node may for example provide a wireless link between the media server and the client terminal. Other links are however also possible. Having access to the acquired S1 and obtained S2 information the method may proceed and select, in a step S3, the specific upcoming media segments to be downloaded from the media server 200 based at least partially on the acquired information and the recommended bitrate. Specific ways of selecting the media segments will be described in what follows.
According to a particular embodiment of the proposed technology, schematically illustrated by the flow diagram of FIG.3, there is provided a method wherein the step S3 of selecting a media segment comprises calculating S31 a target value for a media segment entity based at least partially on the acquired information and the obtained recommended bitrate. The step S3 of selecting a media segment also comprises determining S32, for each of at least two streams, a representative value of the media segment entity to enable that a selection of a media segment to be downloaded can be based on a comparison relating the target value and the representative value.
According to this particular embodiment a media segment will be selected for downloading based on a comparison between a target value for a particular media segment entity, calculated by using at least the acquired information and the obtained information and a determined stream specific representative value of the media segment entity, i.e. a representative value determined for each stream. The media segment entity referred to above may either relate to the size of the particular media segment or a bitrate of the particular media segment. It may also be a functional representation of the same, i.e. the entity may be provided by a particular mathematical function of the size and/or the bitrate. The embodiment also determines S32, for each of the streams in the set of at least two streams, a representative value of the media segment. Having access to a target value and representative values, the method may perform a comparison between the target value and the representative values and base the selection of the next media segment to be downloaded on the outcome of the comparison. Particularly efficient comparison criteria will be described in what follows.
According to another embodiment of the proposed technology there is provided a method wherein the step S31 of calculating a target value, T, for the media segment entity is performed by using any of the following equations:
T = RML*RBR, (1 )
where RML denotes the length of the media to be requested and RBR denotes the recommended bitrate, or:
T = (CBL-RML)*RBR, (2) where CBL denotes the current buffer level of the client terminal (100), RML denotes the length of the media to be requested and RBR denotes the recommended bitrate, or:
T = (CBL-MBL)*RBR, (3) where CBL denotes the current buffer level of the client terminal (100), MBL denotes the minimum buffer level of the client and RBR denotes the recommended bitrate.
This particular embodiment, provides different ways to calculate the target value. Formula (1 ) above utilizes, beside the recommended bitrate also the length of the media to be requested, RML. The value may in many cases be set to the length of a particular segment, i.e. the method only selects one segment at the time. It is common to request one segment of media per request. The same segment length, in seconds, is usually used throughout the whole media, e.g. throughout the whole video clip/movie/episode. Hence, the requested media length corresponds mostly to one segment length, e.g. 1 s, 5s or 10s. There are however embodiments that may request several segments at a time. Formula (2) and (3) above utilizes, beside the obtained recommended bitrate, also the buffer level values of the client. The current buffer level of the client is known to the client terminal 100, so if the method is to be implemented by the client terminal 100, then the value is already known. If on the other hand the method is to be implemented by the media server 200 this information may either be approximated based on statistics, or relayed by the client terminal 100 to the media server.
Still another possible embodiment of the proposed technology provides a method wherein the step S32 of determining, for each of the streams, a representative value of the media entity comprises any of the following:
· computing an average of the media entity based on a number N of upcoming media segments and setting the representative value to the average, or
• determining a value, X, of a predetermined percentile of a number N of upcoming media segments and setting the representative value to X/RML where RML denotes the length of the media to be requested, or
· determining the maximum size, Smax, of a number N of upcoming media segments and setting the representative value to Smax/RML, where RML denotes the length of the media to be requested.
This particular embodiment provides for different ways of determining S32 a representative value for each of the at least two streams. A first possible way is to compute the average of media entity for a particular number N of upcoming media segments and use the average value as a representative value to be compared with the target value. A second possible way is to determine the value of a predetermined percentile of a number N of upcoming media segments, and use this as a representative value. That is, X is the predetermined percentile in size, represented by bits/bytes of the N upcoming segment. E.g. the 10th percentile size of the N upcoming segment gives the size that 10% of the N segments are smaller than.
According to an alternative embodiment of the proposed technology there is provided a method wherein the step S32 of determining, for each of the streams, a representative value of the media entity comprises to determine the representative size, SN, of a number N of upcoming media segments, and to determine the representative size, S , of another number M of upcoming media segments, and to setting the representative value to:
(SN + S )/(2*RML), (4) where RML denotes the length of the media to be requested, and wherein SN is determined by taking the maximum size of a number N of upcoming media segments, and S is determined by taking the average size of a number M of upcoming media segments
A possible embodiment of the proposed technology provides a method wherein the step S3 of selecting a media segment to request for downloading at least comprises to compare the target value, T, with the representative values, RV, in order to select the stream from which the next media segment is to be downloaded based on the comparison.
Yet another possible embodiment of the proposed technology provides a method wherein the step S3 of selecting a media segment to request for downloading comprises to compare the target value, T, with the representative values, RV, and select a media segment from the stream that yielded a representative value that was closest to the corresponding target value.
Still another embodiment of the proposed technology provides a method wherein the step S32 of determining, for each of the streams, a representative value of the media entity also comprises to determine an additional representative value of the media entity based on a chunk map providing a map relating the value of the client terminals 100 buffer levels and media segment sizes.
A particular example of this embodiment relates to the case where the selection process of the next media segment to download includes another input related to segment size that is provided by means of a chunk map. A chunk map is a defined mapping between amount of data in the play-out buffer, i.e. the buffer level, and the segment size. By giving a value of the client buffer level, or client buffer occupancy as it is sometimes referred to in the art, the chunk map provides a segment size to use, commonly denoted as a Chunk Map Segment Size, CMSS. The map is established based on knowledge of the MPD obtained from the server and steady state network operations based on network knowledge, e.g. long term measurements of user throughput around the area where the client terminal is located and around the time of day when the request for media segments is made. By utilizing a chunk map the method may determine an additional representative value of the media entity. This additional value may, according to one particular embodiment, first be compared with the target value to check whether it fulfills the specified comparison criteria and after that be compared with another determined representative value, e.g. a representative value determined according to the earlier described embodiments, in order to find the most suitable media segment to download. Hence, the additional representative value may first be compared with the target value and then compared with the representative value in order to select the most suitable media segment to download. According to another embodiment, the target value could first be compared with the representative value, and then further compared with the additional representative value in order to determine a particular media segment to be downloaded.
To further illustrate how this embodiment may be used, consider the case where the method has determined a particular media segment to be downloaded based on a comparison between a target value, which for example may be media segment size, calculated by using any of the Formulas (1 ), (2), (3) and a representative value, R, calculated by using i.e. Formula (4) given above. The chunk map may then be used to provide an additional representative value AR of the media size. This additional representative value may than be compared with the calculated representative value in order to find the most suitable media segment size to use. This may for example be achieved by comparing the two values and choose the calculated representative value over the additional representative value if it is larger or smaller than a particular offset a given to the additional representative value, e.g. if R < AR + a or if R > AR + a.
The introduction of an additional representative value based on a chunk map will enable a better tradeoff between higher session rate and reduced number of the rate switches. By way of example, the proposed technology provides a method wherein the step S3 of selecting a media segment to request for downloading comprises to compare the determined representative values with the target value and the determined additional representative values, or an offset of the additional representative values, and select the next media segment to download based on the comparison.
A possible embodiment of the proposed technology provides a method wherein the step S3 of selecting a media segment to request for downloading comprises to select a media segment from a stream that yielded a representative value that was closest to the corresponding target value. There are alternatives to this particular embodiment, i.e. different criteria can be used to select the media segment. The method may be implemented to be on the safe side and thus choose the closest lower value. The method may however also be a bit aggressive and choose the closest higher.
According to another possible embodiment there is provided a method wherein the step of acquiring S1 information comprises acquiring the information from a Media Presentation Description, MPD, providing details enabling streaming of the media.
Still another possible embodiment of the proposed technology provides a method wherein the step of obtaining S2 information specifying a recommended bitrate, RBR, comprises to receive the recommended bitrate from a network node 300 supporting the link between the media server 200 and the client terminal 100.
The method could, according to the proposed technology, be performed by either the media server 200 or the client terminal 100.
To further illustrate the proposed technology, an illustrating but non-limiting example is provided. In this simplified example whole method there are two possible streams, which will be denoted as O and Q, respectively. Each of the streams, O and Q, in turn contains two media segments. Stream O has two segments with bitrates ΟΊ and 0'2, with corresponding sizes 0"1 and 0"2, while stream Q has segments with bitrates Q'1 and Q'2 and corresponding sizes Q"1 and Q"2.
Step S1 : Acquire information relating to stream 0 with specified bitrates ΟΊ , and 0'2, with corresponding sizes 0"1 and 0"2, for each of the two segments. That is, the first media segment is characterized by bitrate 0*'1 and size 0*"1 , while the second media segment in the first stream 0 is characterized by bitrate 0**'2 and size 0**'2. The same applies to the second stream Q. The specific information thus acquired may be represented, in this simplified example, by eight numbers, bitrates 0*'1 , 0**'2 and sizes 0**'1 , 0*"2 from the first stream 0 and the corresponding numbers from the second stream Q.
Step S2: Obtain the recommended bitrate, a single number.
Step S3: Select the next media segment to download based at least partially on these numbers. This process utilizes a calculated target value which can be seen as single number. The target value is a target value corresponding to a media segment entity. This entity may be either media segment size or the bitrate of a media segment.
The process also utilizes a representative value that is determined according to step S32 described earlier. Here there is a representative value for each stream O and Q, which in this case amounts to two numbers. Having obtained these three numbers, the target value and the two representative values, one may proceed to determine what media segment to download. This may be done by comparing the two different representative values with the target value and select the particular representative value that fulfilled a specified criteria. The media segment to download is then selected from the stream that yielded the representative value that fulfilled the specified criteria. The criteria may, for example, be to select the representative value that was closest to the target value. It may however also be to select the representative value that were closest to the target value but higher than the same. It may also be to select the representative value that were closest to the target value but lower than the same. The specific constraint or comparison criteria to use when selecting the next media segment to download may be tailored to the particular conditions. For example, if the media segment entity refers to the size of the media segment, and if the buffer levels are low in the client terminal, one may choose the comparison criteria that the representative value should be close to, but higher than, the target value to ensure that the buffer does not get emptied and freezes the streaming.
Still another illustrating example of the proposed technology is illustrated in the signaling diagram of FIG.1 B.
FIG. 1 B provides an example message sequence diagram between the three cooperating entities illustrated in FIG.1 . In this example is the media represented by video. That is, the client terminal aims to stream video provided by the media server.
1 . At first the video client in terminal A sends a GET video message to the video server D.
2. The video server D replies with the Media Presentation Description (MPD).
3a. In a first scenario the video client interacts with the network assistance node C. This interaction may, for example, include exchange of client information, such as play-out buffer level, MPD information such as available media rates at the video server D.
The network assistance method in node C calculates a recommended bit rate for the particular video client in terminal A based on system and user information available in the wireless system B.
3b. In a second scenario the video server D interacts with the network assistance node C, with similar information as in the first scenario 3a. However, now the recommended bit rate for the particular video client in terminal A is given to the video server that will reply back with the corresponding video segments closest, lower or higher in media rate, to that recommend bit rate.
Now reference is made to the first scenario. In this scenario:
4. The video client request video segments from the server.
5. The video server replies back to the video client with the request video segments
6a/6b. The procedures of 3a or 3b is repeated
7. The video client request video segments from the server.
8. The video server replies back to the video client with the request video segments The requests and responses will continue until the user stops the video or the video is finished. The proposed technology also provides an apparatus or network device that is configured to control streaming of media from a media server 200 to a client terminal 100. Such an apparatus or network device may reside in either the client terminal 100 or the media server 200. It may however also reside in any other supporting network node that provides communication links between the media server 200 and the client terminal 100, e.g. the network node 300; C, that provides assistance. The advantages that is achieved by such an apparatus are the same as those that were described in relation to the proposed method and they will not be described again. As used herein, the non-limiting terms "wireless communication device", "station", "User Equipment (UE)", and "terminal" may refer to a mobile phone, a cellular phone, a Personal Digital Assistant (PDA), equipped with radio communication capabilities, a smart phone, a laptop or Personal Computer (PC), equipped with an internal or external mobile broadband modem, a tablet with radio communication capabilities, a target device, a device to device UE, a machine type UE or UE capable of machine to machine communication, Customer Premises Equipment (CPE), Laptop Embedded Equipment (LEE), Laptop Mounted Equipment (LME), USB dongle, a portable electronic radio communication device, a sensor device equipped with radio communication capabilities or the like. In particular, the term "wireless communication device" should be interpreted as non-limiting terms comprising any type of wireless device communicating with a network node in a wireless communication system and/or possibly communicating directly with another wireless communication device. In other words, a wireless communication device may be any device equipped with circuitry for wireless communication according to any relevant standard for communication.
As used herein, the non-limiting term "network node" or "network assisting node" may refer to base stations, access points, network control nodes such as network controllers, radio network controllers, base station controllers, access controllers, and the like. In particular, the term "base station" may encompass different types of radio base stations including standardized base station functions such as Node Bs, or evolved Node Bs (eNBs), and also macro/micro/pico radio base stations, home base stations, also known as femto base stations, relay nodes, repeaters, radio access points, Base Transceiver Stations (BTSs), and even radio control nodes controlling one or more Remote Radio Units (RRUs), or the like.
As used herein, the term "network device" may refer to any device located in connection with a communication network, including but not limited to devices in access networks, core networks and similar network structures. The term network device may also encompass cloud-based network devices.
The proposed technology also provides an apparatus 150 that is configured to control streaming of media from a media server 200 to a client terminal 100. The apparatus 150 is configured to acquire information specifying at least two possible streams that can be used for streaming of the media, each of the streams comprising media segments with stream specific bitrates and sizes. The apparatus 150 is also configured to obtain information specifying a recommended bitrate, RBR, to be used by the terminal 100 during streaming of media. The apparatus 150 is also configured to select upcoming media segments to be downloaded from the media server 200 based at least partially on the acquired information and the recommended bitrate.
A possible embodiment of the proposed technology provides an apparatus 150 that is configured to select a media segment. The apparatus 150 is configured to calculate a target value for a media segment entity based at least partially on the acquired information and the obtained recommended bitrate. The apparatus 150 is also configured to determine, for each of the at least two streams, a representative value of the media segment entity, to enable that a selection of a media segment to be downloaded is based on a comparison relating the target value and the representative value.
The proposed technology also provides an embodiment of an apparatus 150 wherein apparatus is configured to calculate a target value, T, for the media segment entity by using any of the following equations:
T = RML*RBR, where RML denotes the length of the media to be requested and RBR denotes the recommended bitrate, or:
T = (CBL-RML)*RBR, where CBL denotes the current buffer level of the client terminal (100), RML denotes the length of the media to be requested and RBR denotes the recommended bitrate, or:
T = (CBL-MBL)*RBR, where CBL denotes the current buffer level of the client terminal (100), MBL denotes the minimum buffer level of the client and RBR denotes the recommended bitrate. Yet another embodiment of the proposed technology provides an apparatus that is configured to determine, for each of the streams, a representative value of the media entity, wherein:
• the apparatus 150 is configured to compute an average of the media entity based on a number N of upcoming media segments and setting the representative value to the average, or
• the apparatus 150 is configured to determine a value, X, of a predetermined percentile of a number N of upcoming media segments and setting the representative value to X/RML where RML denotes the length of the media to be requested, or
· the apparatus 150 is configured determine the maximum size, Smax, of a number N of upcoming media segments and setting the representative value to Smax/RML, where RML denotes the length of the media to be requested.
Still another embodiment of the proposed technology provides an apparatus 150 that is configured to determine, for each of the streams, a representative value of the media entity comprises to determine the representative size, SN, of a number N of upcoming media segments, and to determine the representative size, S , of another number M of upcoming media segments, and to setting the representative value to:
(SN + S )/(2*RML),
where RML denotes the length of the media to be requested, and wherein SN is determined by taking the maximum size of a number N of upcoming media segments, and S is determined by taking the average size of a number M of upcoming media segments
A possible embodiment provides an apparatus 150 that is configured to select a media segment to request for downloading, wherein the apparatus is at least configured to compare the target value, T, with the representative values, RV, in order to select the stream from which the next media segment is to be downloaded based on the comparison. Another possible embodiment provides an apparatus 150 that is configured to select a media segment to request for downloading by comparing the target value, T, with the representative values, RV, and select a media segment from the stream that yielded a representative value that was closest to the corresponding target value. Yet another embodiment of the proposed technology provides an apparatus 150, wherein the apparatus is configured to determine, for each of the streams, a representative value of the media entity by being further configured to determine an additional representative value of the media entity based on a chunk map providing a map relating buffer levels with media segment sizes.
By way of example, the proposed technology provides an apparatus 150 that is configured to select a media segment to request for downloading by being configured to compare the determined representative values with the target value and the determined additional representative values, or an offset of the additional representative values, and by being configured to select the next media segment to download based on the comparison.
A particular embodiment of the proposed technology provides an apparatus that is configured to select a media segment to request for downloading by being configured to select a media segment from a stream that yielded a representative value that was closest to the corresponding target value. Another embodiment of the proposed technology provides an apparatus 150 that is configured to acquire information from a Media Presentation Description, MPD, providing details enabling streaming of the media. Yet another embodiment of the proposed technology provides an apparatus that is configured to obtain information specifying a recommended bitrate, RBR, by receiving the recommended bitrate from a network node 300 supporting the link between the media server 200 and the client terminal 100. FIG.4 provides a schematic block diagram illustrating a particular embodiment of the proposed apparatus 150. The apparatus 150 comprises a communication circuitry 130, a processor 1 10 and a memory 120, the memory 120 comprising instructions executable by the processor 1 10, whereby the processor 1 10 is operative to control streaming of media from a media server 200 to a client terminal 100.
FIG.5B provides a block diagram illustrating an apparatus 150 according to the proposed technology that is part of either the media server 200 or the client terminal 100. The apparatus 150 may also form part of the assisting network node 300. It will be appreciated that the methods and arrangements described herein can be implemented, combined and re-arranged in a variety of ways.
For example, embodiments may be implemented in hardware, or in software for execution by suitable processing circuitry, or a combination thereof.
The steps, functions, procedures, modules and/or blocks described herein may be implemented in hardware using any conventional technology, such as discrete circuit or integrated circuit technology, including both general-purpose electronic circuitry and application-specific circuitry.
Alternatively, or as a complement, at least some of the steps, functions, procedures, modules and/or blocks described herein may be implemented in software such as a computer program for execution by suitable processing circuitry such as one or more processors or processing units.
Examples of processing circuitry includes, but is not limited to, one or more microprocessors, one or more Digital Signal Processors (DSPs), one or more Central Processing Units (CPUs), video acceleration hardware, and/or any suitable programmable logic circuitry such as one or more Field Programmable Gate Arrays (FPGAs), or one or more Programmable Logic Controllers (PLCs). It should also be understood that it may be possible to re-use the general processing capabilities of any conventional device or unit in which the proposed technology is implemented. It may also be possible to re-use existing software, e.g. by reprogramming of the existing software or by adding new software components. FIG. 5A is a schematic block diagram illustrating another example of an apparatus 150, based on a hardware circuitry implementation according to an embodiment. Particular examples of suitable hardware circuitry 210 include one or more suitably configured or possibly reconfigurable electronic circuitry, e.g. Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs), or any other hardware logic such as circuits based on discrete logic gates and/or flip-flops interconnected to perform specialized functions in connection with suitable registers (REG) and/or memory units (MEM) 220.
The apparatus 150 may also include a communication circuit 130; 230. The communication circuit 130 may include functions for wired and/or wireless communication with other devices and/or network nodes in the network. In a particular example, the communication circuit 130 may be based on radio circuitry for communication with one or more other nodes, including transmitting and/or receiving information. The communication circuit 130 may be interconnected to the processor 1 10 and/or memory 120. The communication circuit 230 may be interconnected to the hardware circuitry 210 and/or REG/MEM 220. By way of example, the communication circuit 130; 230 may include any of the following: a receiver, a transmitter, a transceiver, input/output (I/O) circuitry, input port(s) and/or output port(s).
It is also possible to provide a solution based on a combination of hardware and software. The actual hardware-software partitioning can be decided by a system designer based on a number of factors including processing speed, cost of implementation and other requirements.
FIG. 6 is a schematic diagram illustrating an example of a computer-implementation 400 according to an embodiment. In this particular example, at least some of the steps, functions, procedures, modules and/or blocks described herein are implemented in a computer program 125, which is loaded into the memory 120 for execution by processing circuitry including one or more processors 1 10. The processor(s) 1 10 and memory 120 are interconnected to each other to enable normal software execution. An optional input/output device 440 may also be interconnected to the processor(s) 1 10 and/or the memory 120 to enable input and/or output of relevant data such as input parameter(s) and/or resulting output parameter(s). The term 'processor' should be interpreted in a general sense as any system or device capable of executing program code or computer program instructions to perform a particular processing, determining or computing task.
The processing circuitry including one or more processors 1 10 is thus configured to perform, when executing the computer program 125, well-defined processing tasks such as those described herein.
The processing circuitry does not have to be dedicated to only execute the above- described steps, functions, procedure and/or blocks, but may also execute other tasks.
In a particular embodiment of the proposed technology there is provided a computer program 125 comprising instructions, which when executed by at least one processor 1 10, cause the at least one processor 1 10 to: • read information specifying at least two possible streams that can be used for streaming of the media, each of the streams comprising media segments with stream specific bitrates and sizes;
• read information specifying a recommended bitrate, RBR, to be used by a terminal 5 100 during streaming of media; and
• determine upcoming media segments to be downloaded from a media server (200) based at least partially on the acquired information and the recommended bitrate.
The proposed technology also comprises a computer program product 225; 2350 comprising the above described computer program 125.
The proposed technology also provides a carrier comprising the computer program, wherein the carrier is one of an electronic signal, an optical signal, an electromagnetic signal, a magnetic signal, an electric signal, a radio signal, a microwave signal, or a5 computer-readable storage medium.
By way of example, the software or computer program 125 may be realized as a computer program product, which is normally carried or stored on a computer-readable medium, in particular a non-volatile medium. The computer-readable medium may0 include one or more removable or non-removable memory devices including, but not limited to a Read-Only Memory (ROM), a Random Access Memory (RAM), a Compact Disc (CD), a Digital Versatile Disc (DVD), a Blu-ray disc, a Universal Serial Bus (USB) memory, a Hard Disk Drive (HDD) storage device, a flash memory, a magnetic tape, or any other conventional memory device. The computer program may thus be loaded5 into the operating memory of a computer or equivalent processing device for execution by the processing circuitry thereof.
The flow diagram or diagrams presented herein may be regarded as a computer flow diagram or diagrams, when performed by one or more processors. A corresponding0 apparatus may be defined as a group of function modules, where each step performed by the processor corresponds to a function module. In this case, the function modules are implemented as a computer program running on the processor. The computer program residing in memory may thus be organized as appropriate function modules configured to perform, when executed by the processor, at least part of the steps and/or tasks described herein. FIG. 7 is a schematic diagram illustrating an example of an apparatus 170 for controlling streaming of media from a media server 200 to a client terminal 100, wherein the apparatus comprises:
• a reading module 171 for reading information specifying at least two possible streams that can be used for streaming of the media, each of the streams comprising media segments with stream specific bitrates and sizes;
• a reading module 171 for reading information specifying a recommended bitrate, RBR, to be used by a terminal 100 during streaming of media; and
• a processing module 172 for determining upcoming media segments to be downloaded from a media server 200 based at least partially on the acquired information and the recommended bitrate.
Alternatively it is possible to realize the module(s) in FIG. 7 predominantly by hardware modules, or alternatively by hardware, with suitable interconnections between relevant modules. Particular examples include one or more suitably configured digital signal processors and other known electronic circuits, e.g. discrete logic gates interconnected to perform a specialized function, and/or Application Specific Integrated Circuits (ASICs) as previously mentioned. Other examples of usable hardware include input/output (I/O) circuitry and/or circuitry for receiving and/or sending signals. The extent of software versus hardware is purely implementation selection.
The embodiments described above are merely given as examples, and it should be understood that the proposed technology is not limited thereto. It will be understood by those skilled in the art that various modifications, combinations and changes may be made to the embodiments without departing from the present scope as defined by the appended claims. In particular, different part solutions in the different embodiments can be combined in other configurations, where technically possible. REFERENCES
[1 ]
ISO/IEC 23009-1 ,2014 "Information technology — Dynamic adaptive streaming over HTTP (DASH)— Part 1 : Media presentation description and segment formats"
[2] ISO/IEC 14496-12,2012 "Information technology— Coding of
audio-visual objects— Part 12: ISO base media file format"
[3] T. Huang, N. Handigol, and B. Heller et.al, "Confused, Timid, and Unstable: Picking a Video Streaming Rate is Hard," in Proc. IMC'12 Nov. 14-16, 2012.
[4] T. Huang, R. Johari, and N. McKeown et.al, "A Buffer-based approach to rate adaptation: evidence from a large video streaming service," inSIGCOMM'14, August 17- 33, 2014.
[5] US 20160156563 A1 .
[6] Wang Min, Hans Hannu, Jonas Pettersson, Ylva Timner, "Optimization of fairness for HTTP adaptive streaming with network assistance in LTE mobile systems", VTC Fall 2014

Claims

1. A method for controlling streaming of media from a media server (200) to a client terminal (100), the method comprises:
- acquiring (S1 ) information specifying at least two possible streams that can be used for streaming of said media, each of said streams comprising media segments with stream specific bitrates and sizes;
- obtaining (S2) information specifying a recommended bitrate, RBR, to be used by the terminal (100) during streaming of media; and
- selecting (S3) upcoming media segments to be downloaded from said media server (200) based at least partially on the acquired information and the recommended bitrate.
A method according to claim 1 , wherein the step (S3) of selecting a media segment comprises:
- calculating (S31 ) a target value for a media segment entity based at least partially on the acquired information and the obtained recommended bitrate; and
- determining (S32), for each of said at least two streams, a representative value of said media segment entity,
to enable that a selection of a media segment to be downloaded can be based on a comparison relating said target value and said representative value. 3. A method according to claim 2, wherein the step (S31 ) of calculating a target value, T, for said media segment entity is performed by using any of the following equations:
T = RML*RBR,
where RML denotes the length of the media to be requested and RBR denotes the recommended bitrate, or:
T = (CBL-RML)*RBR, where CBL denotes the current buffer level of the client terminal (100), RML denotes the length of the media to be requested and RBR denotes the recommended bitrate, or:
T = (CBL-MBL)*RBR, where CBL denotes the current buffer level of the client terminal (100), MBL denotes the minimum buffer level of the client and RBR denotes the recommended bitrate.
The method according to any of the claims 2-3, wherein the step (S32) of determining, for each of said streams, a representative value of said media entity comprises any of the following:
- computing an average of said media entity based on a number N of upcoming media segments and setting said representative value to said average, or
- determining a value, X, of a predetermined percentile of a number N of upcoming media segments and setting the representative value to X/RML where RML denotes the length of the media to be requested, or
- determining the maximum size, Smax, of a number N of upcoming media segments and setting the representative value to Smax/RML, where RML denotes the length of the media to be requested.
The method according to any of the claims 2-3, wherein the step (S32) of determining, for each of said streams, a representative value of said media entity comprises to determine the representative size, SN, of a number N of upcoming media segments, and to determine the representative size, S , of another number M of upcoming media segments, and to setting the representative value to:
(SN + S )/(2*RML),
where RML denotes the length of the media to be requested, and wherein SN is determined by taking the maximum size of a number N of upcoming media segments, and S is determined by taking the average size of a number M of upcoming media segments
6. The method according to any of the claims 2-5, wherein the step (S3) of selecting a media segment to request for downloading at least comprises to compare said target value, T, with said representative values, RV, in order to select the stream from which the next media segment is to be downloaded based on said comparison.
7. The method according to claim 6, wherein the step (S3) of selecting a media segment to request for downloading comprises to compare said target value, T, with said representative values, RV, and select a media segment from the stream that yielded a representative value that was closest to the corresponding target value.
8. The method according to any of the claims 2-6, wherein the step (S32) of determining, for each of said streams, a representative value of said media entity also comprises to determine an additional representative value of said media entity based on a chunk map providing a map relating the value of the client terminals (100) buffer levels and media segment sizes.
9. The method according to claim 8, wherein the step (S3) of selecting a media segment to request for downloading comprises to compare said determined representative values with said target value and said determined additional representative values, or an offset of said additional representative values, and select the next media segment to download based on said comparison. 10. The method according to claim 9, wherein the step (S3) of selecting a media segment to request for downloading comprises to select a media segment from a stream that yielded a representative value that was closest to the corresponding target value. 11. A method according to any of the claims 1 - 10, wherein the step of acquiring (S1 ) information comprises acquiring the information from a Media Presentation Description, MPD, providing details enabling streaming of said media.
12. A method according to any of the claims 1 to 1 1 , wherein the step of obtaining (S2) information specifying a recommended bitrate, RBR, comprises to receive said recommended bitrate from a network node (300) supporting the link between said media server (200) and said client terminal (100).
13. The method according to any of the claims 1 -12, wherein the method is performed by either the media server (200) or the client terminal (100). 14. An apparatus (150) configured to control streaming of media from a media server (200) to a client terminal (100), wherein:
- the apparatus (150) is configured to acquire information specifying at least two possible streams that can be used for streaming of said media, each of said streams comprising media segments with stream specific bitrates and sizes;
- the apparatus (150) is configured to obtain information specifying a recommended bitrate, RBR, to be used by the terminal (100) during streaming of media; and
- the apparatus (150) is configured to select upcoming media segments to be downloaded from said media server (200) based at least partially on the acquired information and the recommended bitrate.
15. The apparatus according to claim 14, configured to select a media segment, wherein,
- the apparatus (150) is configured to calculate a target value for a media segment entity based at least partially on the acquired information and the obtained recommended bitrate; and
- the apparatus (150) is configured to determine, for each of said at least two streams, a representative value of said media segment entity, to enable that a selection of a media segment to be downloaded is based on a comparison relating said target value and said representative value.
16. The apparatus according to claim 15, wherein the apparatus is configured to calculate a target value, T, for said media segment entity by using any of the following equations:
T = RML*RBR,
where RML denotes the length of the media to be requested and RBR denotes the recommended bitrate, or:
T = (CBL-RML)*RBR, where CBL denotes the current buffer level of the client terminal (100), RML denotes the length of the media to be requested and RBR denotes the recommended bitrate, or:
T = (CBL-MBL)*RBR, where CBL denotes the current buffer level of the client terminal (100), MBL denotes the minimum buffer level of the client and RBR denotes the recommended bitrate.
17. The apparatus according to any of the claims 15-16, configured to determine, for each of said streams, a representative value of said media entity, wherein:
- the apparatus (150) is configured to compute an average of said media entity based on a number N of upcoming media segments and setting said representative value to said average, or
- the apparatus (150) is configured to determine a value, X, of a predetermined percentile of a number N of upcoming media segments and setting the representative value to X/RML where RML denotes the length of the media to be requested, or
- the apparatus (150) is configured determine the maximum size, Smax, of a number N of upcoming media segments and setting the representative value to Smax/RML, where RML denotes the length of the media to be requested. 18. The apparatus according to any of the claims 15-16, wherein the apparatus is configured to determine, for each of said streams, a representative value of said media entity comprises to determine the representative size, S , of a number N of upcoming media segments, and to determine the representative size, S , of another number M of upcoming media segments, and to setting the representative value to:
(SN + S )/(2*RML),
where RML denotes the length of the media to be requested, and wherein SN is determined by taking the maximum size of a number N of upcoming media segments, and S is determined by taking the average size of a number M of upcoming media segments
19. The apparatus according to any of the claims 15-18 configured to select a media segment to request for downloading, wherein the apparatus is at least configured to compare said target value, T, with said representative values, RV, in order to select the stream from which the next media segment is to be downloaded based on said comparison.
20. The apparatus according to claim 19, wherein the apparatus is configured to select a media segment to request for downloading by comparing said target value, T, with said representative values, RV, and select a media segment from the stream that yielded a representative value that was closest to the corresponding target value.
21. The apparatus according to any of the claims 15-18, wherein the apparatus is configured to determine, for each of said streams, a representative value of said media entity by being further configured to determine an additional representative value of said media entity based on a chunk map providing a map relating buffer levels with media segment sizes.
22. The apparatus according to claim 21 , wherein the apparatus is configured to select a media segment to request for downloading by being configured to compare said determined representative values with said target value and said determined additional representative values, or an offset of said additional representative values, and by being configured to select the next media segment to download based on said comparison.
23. The apparatus according to claim 22, wherein the apparatus is configured to select a media segment to request for downloading by being configured to select a media segment from a stream that yielded a representative value that was closest to the corresponding target value.
24. The apparatus according to any of the claims 14 - 23, wherein the apparatus is configured to acquire information from a Media Presentation Description,
MPD, providing details enabling streaming of said media.
25. The apparatus according to any of the claims 14 to 14, wherein the apparatus is configured to obtain information specifying a recommended bitrate, RBR, by receiving said recommended bitrate from a network node (300) supporting the link between said media server (200) and said client terminal (100).
26. The apparatus according to any of the claims 15-25, wherein the apparatus comprises a communication circuitry (130), a processor (1 10) and a memory (120), said memory (120) comprising instructions executable by said processor (1 10), whereby said processor (1 10) is operative to control streaming of media from a media server (200) to a client terminal (100).
27. The apparatus according to any of the claims 14-26, wherein the apparatus is part of either the media server (200) or the client terminal (100).
28. A computer program (125) comprising instructions, which when executed by at least one processor (1 10), cause the at least one processor (1 10) to:
- read information specifying at least two possible streams that can be used for streaming of said media, each of said streams comprising media segments with stream specific bitrates and sizes;
- read information specifying a recommended bitrate, RBR, to be used by a terminal (100) during streaming of media; and determine upcoming media segments to be downloaded from a media server (200) based at least partially on the acquired information and the recommended bitrate. 29. A computer program product (225; 235) comprising the computer program (125) of claim 28.
30. An apparatus (170) for controlling streaming of media from a media server (200) to a client terminal (100), wherein the apparatus comprises:
- a reading module (171 ) for reading information specifying at least two possible streams that can be used for streaming of said media, each of said streams comprising media segments with stream specific bitrates and sizes;
- a reading module (171 ) for reading information specifying a recommended bitrate, RBR, to be used by a terminal (100) during streaming of media; and
- a processing module (172) for determining upcoming media segments to be downloaded from a media server (200) based at least partially on the acquired information and the recommended bitrate.
PCT/SE2016/050728 2016-07-26 2016-07-26 Device and method for controlling media streaming from a server to a client Ceased WO2018021950A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/SE2016/050728 WO2018021950A1 (en) 2016-07-26 2016-07-26 Device and method for controlling media streaming from a server to a client

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/SE2016/050728 WO2018021950A1 (en) 2016-07-26 2016-07-26 Device and method for controlling media streaming from a server to a client

Publications (1)

Publication Number Publication Date
WO2018021950A1 true WO2018021950A1 (en) 2018-02-01

Family

ID=56682233

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/SE2016/050728 Ceased WO2018021950A1 (en) 2016-07-26 2016-07-26 Device and method for controlling media streaming from a server to a client

Country Status (1)

Country Link
WO (1) WO2018021950A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11265356B2 (en) 2018-02-22 2022-03-01 Sony Group Corporation Network assistance functions for virtual reality dyanmic streaming

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005022852A1 (en) * 2003-08-21 2005-03-10 Vidiator Enterprises Inc. Quality of experience (qoe) metrics for wireless communication networks
US20080155087A1 (en) * 2006-10-27 2008-06-26 Nortel Networks Limited Method and apparatus for designing, updating and operating a network based on quality of experience
US20110131011A1 (en) * 2009-12-01 2011-06-02 Verizon Patent And Licensing Inc. Methods, systems and computer program products for throughput-testing of electronic data systems
US20110161484A1 (en) * 2009-12-24 2011-06-30 Van Den Bogaert Etienne A H Dynamic mobile application quality-of-service monitoring and reporting
EP2362651A1 (en) * 2010-02-19 2011-08-31 Thomson Licensing Multipath delivery for adaptive streaming
WO2011158221A2 (en) * 2010-06-18 2011-12-22 Nokia Corporation Method and apparatus for generating and handling streaming media quality-of-experience metrics
US20140365556A1 (en) * 2013-06-06 2014-12-11 Mohamed M. Rehan Manager for dash media streaming

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005022852A1 (en) * 2003-08-21 2005-03-10 Vidiator Enterprises Inc. Quality of experience (qoe) metrics for wireless communication networks
US20080155087A1 (en) * 2006-10-27 2008-06-26 Nortel Networks Limited Method and apparatus for designing, updating and operating a network based on quality of experience
US20110131011A1 (en) * 2009-12-01 2011-06-02 Verizon Patent And Licensing Inc. Methods, systems and computer program products for throughput-testing of electronic data systems
US20110161484A1 (en) * 2009-12-24 2011-06-30 Van Den Bogaert Etienne A H Dynamic mobile application quality-of-service monitoring and reporting
EP2362651A1 (en) * 2010-02-19 2011-08-31 Thomson Licensing Multipath delivery for adaptive streaming
WO2011158221A2 (en) * 2010-06-18 2011-12-22 Nokia Corporation Method and apparatus for generating and handling streaming media quality-of-experience metrics
US20140365556A1 (en) * 2013-06-06 2014-12-11 Mohamed M. Rehan Manager for dash media streaming

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Guidelines for Implementation: DASH-AVC/264 Interoperability Points DASH Industry Forum", 15 August 2013 (2013-08-15), XP055174477, Retrieved from the Internet <URL:http://dashif.org/w/2013/08/DASH-AVC-264-v2.00-hd-mca.pdf> [retrieved on 20150306] *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11265356B2 (en) 2018-02-22 2022-03-01 Sony Group Corporation Network assistance functions for virtual reality dyanmic streaming

Similar Documents

Publication Publication Date Title
CA2878327C (en) Methods for quality-aware adaptive streaming over hypertext transfer protocol
EP2962435B1 (en) Link-aware streaming adaptation
EP3539295B1 (en) Initial bitrate selection for a video delivery session
US11477257B2 (en) Link-aware streaming adaptation
RU2598805C2 (en) Method for dynamic adaptation of repetition frequency of bits when receiving and appropriate receiver
EP2797319B1 (en) Content delivery system
EP3871100A1 (en) Chunk-based prediction adaptation logic
JP2014090419A (en) Method for downloading content according to communication parameter, and related content receiver
WO2018021950A1 (en) Device and method for controlling media streaming from a server to a client
KR101700370B1 (en) Method and apparatus for correcting interarrival jitter
HK1244121B (en) Link-aware streaming adaptation
HK1234236B (en) Device and system for supporting dynamic adaptive streaming over hypertext transfer protocol

Legal Events

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

Ref document number: 16750535

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16750535

Country of ref document: EP

Kind code of ref document: A1