WO2015178669A1 - 미디어 컨텐츠의 송수신을 스케쥴링 하는 방법, 장치 및 시스템 - Google Patents
미디어 컨텐츠의 송수신을 스케쥴링 하는 방법, 장치 및 시스템 Download PDFInfo
- Publication number
- WO2015178669A1 WO2015178669A1 PCT/KR2015/005016 KR2015005016W WO2015178669A1 WO 2015178669 A1 WO2015178669 A1 WO 2015178669A1 KR 2015005016 W KR2015005016 W KR 2015005016W WO 2015178669 A1 WO2015178669 A1 WO 2015178669A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- network connections
- media content
- client
- server
- segments
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2401—Monitoring of the client buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2402—Monitoring of the downstream path of the transmission network, e.g. bandwidth available
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/637—Control signals issued by the client directed to the server or network components
- H04N21/6373—Control signals issued by the client directed to the server or network components for rate control, e.g. request to the server to modify its transmission rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/637—Control signals issued by the client directed to the server or network components
- H04N21/6377—Control signals issued by the client directed to the server or network components directed to server
Definitions
- the present invention relates to a method, apparatus and system for scheduling transmission and reception of media content, and more particularly, to a method of scheduling a reception of media content by a client, and a method of scheduling transmission of media content by the client and a server, and a method thereof.
- media content it may be transmitted from the server to the devices of the user through streaming.
- streaming media content the time taken to buffer the media content is one of the important factors in determining the quality regarding the provision of the media content.
- the media content transmitted from the server to the client is scheduled through a network connection to schedule transmission and reception of media content to reduce the time required for the client to receive the media content.
- a method is disclosed.
- FIG. 1 is a conceptual diagram illustrating a system for scheduling transmission and reception of media content according to an embodiment.
- FIG. 2 is a flowchart illustrating a method for a client to perform scheduling for receiving media content, according to an exemplary embodiment.
- FIG. 3 is a flowchart illustrating a method of determining, by a client, a scheduling effect on reception of media content according to an embodiment.
- FIG. 4 is a diagram for describing a method of estimating a time taken for a client to receive media content based on a size of a buffer and a number of a plurality of network connections, according to an exemplary embodiment.
- FIG. 5 is a diagram for describing a method of generating scheduling information by a client using a lookup table according to an exemplary embodiment.
- FIG. 6 is a flowchart for describing a method of receiving, by a client, media content from a server based on generated scheduling information, according to an exemplary embodiment.
- FIG. 7 is a block diagram of a client scheduling reception of media content according to an embodiment.
- FIG. 8 is a flowchart illustrating a method of scheduling transmission of media content in a server according to another embodiment.
- FIG. 9 is a diagram for describing a method of scheduling, by a server, transmission of media content using a lookup table according to an embodiment.
- FIG. 10 is a flowchart illustrating a method of determining whether a server has a scheduling effect and performing scheduling based on a determination result, according to an exemplary embodiment.
- FIG. 11 is a block diagram of a server that schedules transmission of media content, according to one embodiment.
- FIG. 12 is a conceptual diagram illustrating a system for scheduling transmission and reception of media content according to another embodiment.
- FIG. 13 is a flowchart illustrating a method of generating scheduling information for receiving media content by a second server, according to an exemplary embodiment.
- FIG. 14 is a diagram for describing a method of scheduling transmission and reception of media content by a second server according to an exemplary embodiment.
- 15 is a flowchart illustrating a method of determining whether a scheduling effect exists when a second server schedules transmission and reception of media content, according to an exemplary embodiment.
- 16 is a block diagram of a second server that schedules transmission and reception of media content according to an embodiment.
- a method in which a client schedules reception of media content may include determining a plurality of network connections capable of receiving media content between a client and a server; Predicting a buffering timing in which segments of the media content received in units of a buffer size of the client are received through some network connections of the determined plurality of network connections; Generating scheduling information at the predicted buffering timing, allocating segments of the media content allocated to the some network connections to each of the plurality of network connections; And transmitting the generated scheduling information to the server.
- the scheduling information may include requesting to change the size of segments of the media content when the segments of the media content are allocated to the partial network connection. Include.
- the scheduling information includes size information of a segment capable of allocating segments of the media content to each of the plurality of network connections.
- the generating of the scheduling information may include: a first reception time of segments of the media content received through the network connection and the first reception time of the media content; And comparing a second reception time when segments are received through the plurality of network connections, wherein transmitting the generated scheduling information is based on a result of comparing the first reception time and the second reception time. And transmitting the generated scheduling information.
- the transmitting of the scheduling request may include requesting the scheduling request from the server when the first reception time is greater than or equal to a threshold value than the second reception time. Further comprising the step of transmitting.
- the generating of the scheduling information may include assigning a number of the plurality of network connections, a size of the buffer, and each of the plurality of network connections. And extracting information about the size of the segment of the media content from a look-up table in which a relationship with the size of the segment of the media content is defined.
- a method for scheduling reception of media content by a client further includes receiving the media content based on the transmitted scheduling information.
- the receiving of the media content may include: a sub generated as a result of segmentation of the media content based on the scheduling information generated at the server; Receiving the segments.
- the client schedules the reception of the media content, wherein the receiving of the sub-segments receives the same number of at least one sub-segment from each of the plurality of network connections.
- receiving the at least one sub-segment may include: when the data transmission rates of the plurality of network connections are different, the plurality of network connections. Determining the number of sub-segments allocated to each of the plurality of network connections based on a ratio of data transfer rates between the plurality of network connections.
- a method for scheduling reception of media content by a server includes: determining a plurality of network connections capable of receiving media content between a client and a server; Predicting a buffering timing in which segments of the media content received in units of a buffer size of the client are received through some network connections of the determined plurality of network connections; Scheduling, at the predicted buffering timing, segments of the media content allocated to the some network connections are assigned to each of the plurality of network connections.
- a method for scheduling transmission and reception of media content by a second server includes: determining a plurality of network connections capable of receiving media content between a client and the first server; Predicting a buffering timing at which segments of the media content received by the client in units of a buffer size of the client are received through some network connections of the determined plurality of network connections; Generating scheduling information at the predicted buffering timing, allocating segments of the media content allocated to the some network connections to each of the plurality of network connections; And transmitting the generated scheduling information to the first server.
- a client that schedules reception of media content includes a controller configured to determine a plurality of network connections capable of receiving media content between a client and a server; Predicts a buffering timing of segments of the media content received in units of a size of a buffer of the client through some network connection of the identified plurality of network connections, and, at the predicted buffering timing, A scheduler for generating scheduling information for allocating segments of the media content to be allocated to each of the plurality of network connections; And a communication unit for transmitting the generated scheduling information to the server.
- a server that schedules transmission of media content includes: a controller configured to determine a plurality of network connections capable of receiving media content between a client and a server; Predicts a buffering timing in which segments of the media content received in units of a size of a buffer of the client are received through some network connections of the determined plurality of network connections, and, in the predicted buffering timing, And a scheduler that schedules segments of the media content to be allocated to each of the plurality of network connections.
- a second server that schedules transmission and reception of media content includes a controller configured to determine a plurality of network connections capable of receiving media content between a client and the first server; Predicts a buffering timing in which segments of the media content received by the client in units of a buffer size of the client are received through some network connections of the determined plurality of network connections, and at the predicted buffering timing, the partial network connection A scheduler for generating scheduling information for allocating segments of the media content allocated to each of the plurality of network connections; And a communication unit configured to transmit the generated scheduling information to the first server.
- a system for scheduling transmission and reception of media content may include at least one of a plurality of network connections in which segments of the media content received at the client may receive media content between the client and the server in units of a buffer size of the client. Predicting buffering timing received over the connection; Generating scheduling information at the predicted buffering timing, allocating segments of the media content allocated to the some network connections to each of the plurality of network connections; Transmitting the generated scheduling information to the server; And segments, by the server, based on the transmitted scheduling information, segments of divided media content.
- any part of the specification is to “include” any component, this means that it may further include other components, except to exclude other components unless otherwise stated.
- the terms “... unit”, “module”, etc. described in the specification mean a unit for processing at least one function or operation, which may be implemented in hardware or software or a combination of hardware and software. .
- a system 10 for scheduling transmission and reception of media content may include a client device 100 and a server 200.
- the client 100 transmits and receives data with the server 200.
- the client 100 may transmit and receive media content with the server 200.
- the client 100 may communicate with another device such as a proxy server in addition to the server 200.
- the data that can be transmitted and received by the client 100 to and from the server 200 is not limited to media content.
- the data will be described as media content.
- the client 100 may receive media content in a streaming manner from the server 200 through the plurality of network connections 50.
- the client 100 includes a buffer capable of storing the media content in order to receive the media content from the server 200 in a streaming manner.
- a buffer capable of storing media content may exist outside of the client 100.
- the client 100 generates scheduling information for scheduling the transmission of the media content on the server 200 side.
- the client 100 may generate scheduling information based on the number of the plurality of network connections 50 with the server 200 or the size of the buffer of the client 100. A method of generating scheduling information by the client 100 will be described later in detail with reference to FIG. 2.
- the client 100 may be implemented in various forms.
- the client 100 described in the present specification may be a mobile phone, a smart phone, a laptop computer, a tablet PC, or the like, but is not limited thereto.
- the server 200 transmits media content to the client 100.
- the server 200 may transmit media content stored inside or outside the server 200 to the client 100 through a plurality of network connections 50 between the server 200 and the client 100.
- the server 200 may transmit the media content to the client 100 according to the generated scheduling information based on the number of the plurality of network connections 50 or the size of the buffer of the client 100. For example, when the server 200 transmits the media content to the client 100 according to the generated scheduling information, the server 200 may determine the size of the segment, which is a unit in which the media content is transmitted. A method of transmitting media content to the client 100 according to the generated scheduling information by the server 200 will be described in detail later with reference to FIGS. 2 to 4.
- the scheduling information may be generated in the client 100 and transmitted to the server 200.
- the server 200 may generate scheduling information based on the number of the plurality of network connections 50 or the buffer size information of the obtained client 100.
- the server 200 may obtain scheduling information generated based on the number of the plurality of network connections 50 or the buffer size information of the client 100 in another device such as a proxy server. have.
- FIG. 2 is a flowchart illustrating a method of transmitting, by the client 100, scheduling information for receiving media content to the server 200, according to an exemplary embodiment.
- the client 100 determines a plurality of network connections 50 capable of receiving media content between the server 200 and the client 100.
- the client 100 may determine a plurality of network connections 50 connecting the client 100 and the server 200 by monitoring a network condition established between the client 100 and the server 200.
- the client 100 may obtain the number information of the determined plurality of network connections 50.
- the client 100 predicts a buffering timing received through some network connections of the plurality of network connections 50 in which segments of media content received in units of a buffer size of the client 100 are determined.
- the client 100 When the client 100 receives the media content from the server 200 through streaming, when the client 100 enters the buffering mode, the client 100 receives the media content by the size of the buffer and then returns to the play mode. Is switched.
- the client 100 may estimate the time taken to receive the media content in the buffering mode based on the size of the buffer and the number of the plurality of network connections 50.
- the client 100 may check whether segments (hereinafter, referred to as segments) are allocated to each of the plurality of network connections 50 with the server 200.
- the segment may be a unit in which media content is transmitted from the server 200 to the client 100.
- this is only an embodiment of the present invention, and the unit of the media content to be transmitted is not limited to the segment.
- the time taken to receive media content is relatively less than when segments are allocated to some network connections. Can be.
- the client 100 may receive the segments.
- a graph is shown over time.
- six preset size segments are received before the client 100 switches from the buffering mode to the playback mode, and may have a size corresponding to the size of the buffer of the client 100.
- a segment is allocated only to some network connections (first connection and second connection) among a plurality of network connections (first connection, second connection, third connection and fourth connection), the remaining network connections are in buffering mode. It does not participate in the transmission of the segment for switching to the playback mode. Therefore, the distribution of the segments transmitted to the client 100 is not made efficiently, so it takes a longer time to switch from the buffering mode to the playback mode.
- the client 100 is a timing in which segments are allocated to some network connections, respectively, based on Equation 1 in order to minimize the transition time from the buffering mode to the playback mode. Can be predicted.
- Equation 1 S is the size of the buffer of the client 100, N is the number of the plurality of network connections (50).
- A is a value obtained by reducing one unit time from a unit time required for transmitting all segments to a buffer of the client 100 using the plurality of network connections 50.
- one unit time is a time taken to transmit a segment of a predetermined size from the server 200 to the client 100 through a network connection.
- R is the number of remaining segments that the client 100 should receive in order to switch from the buffering mode to the playback mode after the A unit time has elapsed.
- the client 100 regenerates the buffering mode in the buffering mode when the calculated R value is not 0 based on the size S of the buffer of the client 100 and the number N of the plurality of network connections 50. You can see that some network connections are assigned segments in the last unit of time it takes to switch to.
- the client 100 may calculate After one unit time (A unit time) has passed, and in the second unit time, 2 (R) remaining segments may be received. The client 100 may predict that there are residual segments that are allocated only to some network connections at the second unit time.
- the client 100 generates scheduling information for allocating remaining segments allocated to some network connections to each of the plurality of network connections, at the predicted buffering timing.
- the scheduling information may include segment size information for allocating remaining segments allocated to some network connections to each of the plurality of network connections 50.
- the size information may include size information of a sub segment for allocating remaining segments allocated to some network connections to each of the plurality of network connections 50.
- Size information of a sub segment for allocating segments to each of the plurality of network connections 50 may be determined based on Equation 2 below.
- N is the number of the plurality of network connections 50
- R is the segment that the client 100 should receive in order to switch from the buffering mode to the playback mode after A unit time elapses. Is the number of.
- A is a value obtained by reducing one unit time from the unit time required to transmit all the segments to the buffer of the client 100 using the plurality of network connections 50 as described above.
- D calculated as a result of calculating Equation 2 means the number of network connections allocated for each remaining segment to receive R remaining segments in each of the plurality of network connections.
- N has a value of 4
- A has a value of 1
- R has a value of 2.
- D has a value of 2 based on Equation 2 above. This means that in order to transmit two remaining segments using each of the four plurality of network connections, the number of network connections allocated to one remaining segment is two.
- the client 100 transmits the scheduling information generated to the server 200.
- the server 200 changes the size of the predetermined segments based on the scheduling information received from the client 100. Based on the scheduling information in the server 200, the generated sub-segments of the changed size may be allocated to each of the plurality of network connections.
- the scheduling information may include information about the number of network connections allocated for each remaining segment in order to receive the remaining segments allocated to some network connections in each of the plurality of network connections. If the information on the number of network connections allocated for each remaining segment is 2, the server 200 may change the size of the remaining segment so that one remaining segment is transmitted to the client 100 through two network connections.
- FIG. 3 is a flowchart illustrating a method of determining, by the client 100, whether to schedule by predicting a scheduling effect on reception of media content, according to an exemplary embodiment.
- the client 100 determines a plurality of network connections 50 capable of receiving media content between the server 200 and the client 100.
- the client 100 may obtain information about the number of determined network connections 50.
- Step 310 may correspond to step 210 of FIG. 2 described above.
- the client 100 predicts a buffering timing received through some network connections among the plurality of network connections 50 in which segments received based on the size of the buffer of the client 100 are determined. Operation 320 may correspond to operation 220 of FIG. 2 described above.
- step 330 the client 100 generates scheduling information for allocating remaining segments allocated to some network connections to each of the plurality of network connections, at the predicted buffering timing.
- the scheduling information may include segment size information for allocating remaining segments allocated to some network connections to each of the plurality of network connections 50.
- Step 330 may correspond to step 230 of FIG. 2 described above.
- the client 100 may determine that a difference between the first reception time of remaining segments received through some network connections and the second reception time received through the plurality of network connections 50 based on the generated scheduling information. Determine whether the threshold is exceeded.
- the client 100 may determine that there is an effect of shortening the time for receiving the segments by generating the scheduling information. Whether the difference between the first reception time and the second reception time exceeds a threshold may be determined by Equation 3 below.
- Equation 3 N denotes the number of network connections 50 and S denotes the size of the buffer.
- E calculated by Equation 3 is a parameter representing an effect of shortening the time for receiving the remaining segments through scheduling.
- the client 100 may determine that there is an effect of shortening the time for receiving the remaining segments by generating the scheduling information.
- the threshold value 1 is only an embodiment of the present invention, the threshold value may be set to various values.
- the client 100 transmits the generated scheduling information to the server 200.
- the client 100 may transmit the generated scheduling information to the server 200 when it is determined that there is an effect of reducing the time for receiving the remaining segments by generating the scheduling information.
- the client 100 may not transmit the scheduling information to the server 200 when the difference between the first reception time and the second reception time does not exceed the threshold.
- the client 100 may reduce the time required by scheduling the reception of media content by determining whether to perform scheduling by predicting a scheduling effect.
- FIG. 5 is a diagram for describing a method of generating scheduling information by a client 100 using a lookup table, according to an exemplary embodiment.
- the client 100 receives scheduling information from a lookup table in which a relationship between the number of the plurality of network connections 50 and the size of a buffer of the client 100 and the size of a segment allocated to each of the plurality of network connections is defined. Can be generated.
- the client 100 monitors the network state, checks the number N of the plurality of network connections 50 with the server 200, and obtains information about the size S of the buffer of the client 100. Can be. When the plurality of network connections 50 is N and the buffer size is S, the client 100 extracts segment size information for allocating segments to each of the plurality of network connections 50 from the lookup table. Can be. The client 100 may shorten the time required to generate the scheduling information by extracting the segment size information from the lookup table.
- the lookup table may also include information on scheduling effects.
- the client 100 determines whether to schedule or not by extracting information on a scheduling effect corresponding to the number of the plurality of network connections 50 and the size of the buffer of the client 100 from a look-up table stored in advance. You can also shorten the time required.
- the lookup table may be stored in the client 100 or may be stored in an external device that can communicate with the client 100.
- FIG. 6 is a flowchart for describing a method of receiving, by the client 100, media content from the server 200 based on the generated scheduling information.
- the client 100 determines a plurality of network connections 50 capable of receiving media content between the server 200 and the client 100.
- the client 100 may obtain information about the number of determined network connections 50. Step 610 may correspond to step 310 of FIG. 3 described above.
- the client 100 predicts a buffering timing received through some network connections among the plurality of network connections 50 in which segments received based on the size of the buffer of the client 100 are determined. Operation 620 may correspond to operation 320 of FIG. 3.
- the client 100 allocates scheduling information to each of the plurality of network connections 50, the remaining segments allocated to some of the network connections based on the data transmission rates of the plurality of network connections, at the predicted buffering timing.
- the scheduling information may include size information of the remaining segments for allocating the remaining segments allocated to some network connections to each of the plurality of network connections 50.
- the client 100 when the difference between the data transmission rates of each of the plurality of network connections 50 is less than a preset value, the client 100 may be allocated to each of the segments based on Equation 1 and Equation 2 above. You can determine the number of connections. Subsegments generated as a result of the size change of the segment based on the determined number of network connections may be assigned to each of the plurality of network connections 50.
- the client 100 may generate scheduling information based on the ratio of the data transmission rates between the plurality of network connections. have.
- the scheduling information for allocating segments to each of the plurality of network connections 50 is based on Equations 4 to 6 below. Can be generated.
- Equation 4 described above Is the data transfer rate of the i th network connection and Represents the minimum data transfer rate among the plurality of network connections 50. Meanwhile, H is the number of determined virtual network connections based on the minimum data transfer rate for the plurality of network connections 50.
- S is the size of the buffer of the client 100
- A is reduced by one unit time in the unit time required to transmit all the segments to the buffer of the client 100, using the virtual network connections Is the value.
- one unit time is a time taken to transmit a segment of a predetermined size from the server 200 to the client 100 through a network connection.
- R is the number of remaining segments that the client 100 should receive in order to switch from the buffering mode to the playback mode after the A unit time has elapsed.
- D is the number of virtual network connections allocated to each remaining segment in order to receive all R remaining segments within the same unit time. Also, denotes the size of a subsegment allocated to the i th network connection, in order to download all R remaining segments within the same unit time.
- the client 100 transmits the generated scheduling information to the server 200.
- the client 100 may transmit the generated scheduling information to the server 200 when it is determined that the time for receiving the segments is shortened by generating the scheduling information.
- Step 640 may correspond to step 350 of FIG. 3 described above.
- step 650 the client 100 receives the media content based on the sent scheduling information.
- the server 200 may generate the sub segments by changing the size of the remaining segments based on the scheduling information received from the client 100.
- the scheduling information may include information about the number of network connections allocated for each segment to receive R segments in each of the plurality of network connections.
- the server 200 may generate sub-segments by dividing a segment having a predetermined size by the number of network connections allocated.
- the client 100 may receive sub-segments generated as a result of changing the size of segments of a predetermined size in the server 200 based on the scheduling information.
- the client 100 that schedules the reception of media content may include a controller 110, a scheduler 120, and a communicator 130.
- the controller 110 typically controls the overall operation of the client 100 that schedules the reception of the media content.
- the controller 110 may overall control the scheduler 120, the communicator 130, and the like by executing programs stored in a memory (not shown).
- the controller 110 determines a plurality of network connections 50 capable of receiving media content between the server 200 and the client 100.
- the controller 110 may monitor a network condition established between the client 100 and the server 200 to determine a plurality of network connections 50 connecting the client 100 and the server 200.
- the controller 110 may obtain the number information of the determined plurality of network connections 50.
- the controller 110 may predict an effect based on the scheduling information generated by the scheduler 120.
- the controller 110 determines that a threshold value is a difference between a first reception time at which segments are received through some network connections and a second reception time received at the plurality of network connections 50 based on scheduling information in which the segments are generated. By determining whether or not to exceed, it is possible to predict the effect according to the scheduling information. For example, when the difference between the first reception time and the second reception time exceeds a preset threshold, the controller 110 may determine that there is an effect of shortening the time for receiving the segments by generating the scheduling information. .
- the scheduler 120 predicts a buffering timing received through some network connections among the plurality of network connections 50 in which segments received based on the size of the buffer of the client 100 are determined.
- the scheduler 120 generates scheduling information for allocating remaining segments allocated to some network connections to each of the plurality of network connections at the predicted buffering timing.
- the scheduler 120 based on the number of the plurality of network connections 50 and the size of the buffer of the client 100, one remaining segment for allocating segments allocated to some network connections to each of the plurality of network connections. It is possible to determine the number of network connections allocated to the.
- the scheduler 120 may extract scheduling information corresponding to the number of the plurality of network connections 50 and the size of the buffer of the client 100 based on the pre-stored lookup table.
- the previously stored lookup table may include information about a scheduling effect corresponding to the number of the plurality of network connections 50 and the size of the buffer of the client 100.
- the controller 110 does not need to perform an operation for checking whether a scheduling effect is present.
- scheduling effect information corresponding to the size of a buffer and the number of network connections 50 is provided. By extracting, it can be determined whether the effect of the scheduling exists.
- the communicator 130 transmits the scheduling information generated to the server 200.
- the server 200 changes the size of the predetermined remaining segments based on the scheduling information received from the client 100. Based on the scheduling information in the server 200, sub-segments of media content generated as a result of changing the size of the segments may be allocated to each of the plurality of network connections.
- the communication unit 130 may receive sub segments allocated to each of the plurality of network connections.
- FIG. 8 is a flowchart for describing a method of scheduling transmission of media content in a server 200 according to another exemplary embodiment.
- the server 200 determines a plurality of network connections 50 capable of receiving media content between the client 100 and the server 200.
- the server 200 may determine a plurality of network connections 50 connecting the client 100 and the server 200 by monitoring a situation of a network set between the client 100 and the server 200.
- the server 200 may obtain information on the number of determined network connections 50.
- the server 200 predicts a buffering timing transmitted through some network connections among the plurality of network connections 50 in which segments transmitted based on the size of the buffer of the client 100 are determined.
- the server 200 may obtain size information of a buffer of the client 100.
- the server 200 may transmit segments as many as the buffer size of the client 100.
- the server 200 may determine the number of segments transmitted to the client 100 through the acquired size information of the buffer of the client 100.
- the server 200 may determine whether segments are transmitted through some network connections of the plurality of network connections 50 based on the determined number information of the plurality of network connections 50 and size information of the transmitted segments. Can be. A detailed method of determining whether the server 200 transmits segments through only some network connections of the plurality of network connections 50 is the same as that of Equations 1 and 2 described above with reference to FIG. 4.
- the server 200 schedules segments allocated to some network connections to each of the plurality of network connections 50 at the predicted buffering timing.
- the server 200 may obtain the number R of the remaining segments based on the size information of the buffer and the number information of the plurality of network connections 50 based on Equation 1 described above.
- the server 200 may calculate the number of network connections allocated to each of the remaining segments based on Equation 2 described above.
- the server 200 may change the size of the remaining segment so that one remaining segment may be allocated to each of the calculated number of network connections. For example, if there are two calculated network connections in one remaining segment, the server 200 may generate a subsegment having a size of half of the remaining segment.
- the server 200 may allocate a plurality of sub-segments generated as a result of dividing the remaining segment to each of the plurality of network connections 50.
- the server 200 may shorten the time required to transmit the media content to the client 100 by dividing the remaining segments and assigning them to each of the plurality of network connections 50.
- FIG. 9 is a diagram for describing a method of scheduling transmission of media content by the server 200 according to an exemplary embodiment.
- the server 200 includes a lookup table in which a relationship between the number of the plurality of network connections 50 and the size of the buffer of the client 100 and the size of the segments allocated to each of the plurality of network connections 50 is defined. Scheduling information can be generated.
- the server 200 monitors the network state, checks the number N of the plurality of network connections 50 with the client 100, and obtains information about the size S of the buffer of the client 100. Can be. When the plurality of network connections 50 is N and the buffer size is S, the server 200 extracts segment size information for allocating segments to each of the plurality of network connections 50 from the lookup table. Can be. The server 200 may shorten the time required to generate the scheduling information by extracting the segment size information from the lookup table.
- the lookup table may also include information on scheduling effects.
- the server 200 may determine whether the transmission time is shortened. If the server 200 determines that there is no effect due to scheduling, the server 200 may transmit the segment to the client 100 without scheduling the segments.
- the lookup table may include information on whether a scheduling effect exists. In this case, the server 200 may determine whether to schedule the segments and transmit them to the client 100 based on information on whether there is a scheduling effect extracted from the lookup table without a separate calculation process.
- FIG. 10 is a flowchart illustrating a method of determining whether a scheduling effect exists by the server 200 and performing scheduling based on a determination result, according to an exemplary embodiment.
- the server 200 determines a plurality of network connections 50 capable of receiving media content between the client 100 and the server 200.
- the server 200 may monitor the situation of a network set between the client 100 and the server 200 to obtain information on the number of determined network connections 50.
- Step 1010 may correspond to step 810.
- the server 200 predicts a buffering timing transmitted through some network connections among the plurality of network connections 50 in which segments transmitted based on the size of the buffer of the client 100 are determined.
- Step 1020 may correspond to step 820.
- the server 200 generates scheduling information for allocating remaining segments allocated to some network connections to each of the plurality of network connections at the predicted buffering timing.
- the scheduling information may include information about the number of network connections allocated to one remaining segment in order to allocate the remaining segments to each of the plurality of network connections.
- Information about the number of network connections allocated to one remaining segment is based on Equation 1 and Equation 2 described above with reference to FIG. 4, the number of network connections 50, and size information of a buffer of the client 100. Can be calculated.
- the server 200 thresholds a difference between a first transmission time during which segments are transmitted through some network connections and a second transmission time in transmission through the plurality of network connections 50 based on the generated scheduling information. Determine if the value is exceeded.
- the server 200 may determine that there is an effect of shortening the buffering time due to scheduling. Whether the difference between the first transmission time and the second transmission time exceeds a threshold may be determined based on Equation 3 described above.
- the server 200 assigns the divided segments to each of the plurality of network connections 50.
- the server 200 divides the remaining segments based on the number information of network connections allocated to one remaining segment included in the scheduling information. Can be.
- the server 200 may allocate the divided segments to each of the plurality of network connections 50 and transmit them to the client 100.
- FIG. 11 is a block diagram of a server 200 for scheduling transmission of media content according to one embodiment.
- the controller 1010 determines a plurality of network connections 50 capable of receiving media content between the client 100 and the server 200.
- the controller 1010 may monitor a network condition established between the client 100 and the server 200 to determine a plurality of network connections 50 connecting the client 100 and the server 200.
- the controller 1010 may obtain information on the number of determined network connections 50.
- the scheduler 1020 predicts a buffering timing transmitted through some network connections among the plurality of network connections 50 in which segments transmitted based on the size of the buffer of the client 100 are determined.
- the scheduler 1020 may obtain size information of a buffer of the client 100.
- the server 200 may transmit segments equal to the buffer size of the client 100.
- the scheduler 1020 may determine the number of segments to transmit to the client 100 based on the acquired size information of the buffer of the client 100.
- the scheduler 1020 may determine whether segments are transmitted through some network connections of the plurality of network connections 50 based on the determined number information of the plurality of network connections 50 and size information of the transmitted segments. Can be.
- the scheduler 1020 schedules the remaining segments allocated to some network connections to each of the plurality of network connections 50 at the predicted buffering timing.
- the scheduler 1020 may obtain the number R of the remaining segments based on the size information of the buffer and the number information of the plurality of network connections 50 based on Equation 1 described above.
- the scheduler 1020 may change the size of the remaining segment so that one remaining segment may be allocated to each of the calculated number of network connections. For example, if there are two calculated network connections in one remaining segment, the scheduler 1020 may divide the remaining segment into sub-segments so that the remaining segment has half the size.
- the scheduler 1020 may allocate a plurality of sub-segments generated as a result of dividing the remaining segments to each of the plurality of network connections 50.
- a system 20 for scheduling transmission and reception of media content includes a client device 100, a first server (corresponding to the server of FIG. 1, 200), and a second server 1200. can do.
- the client 100 transmits and receives data with the first server 200 and the second server 1200.
- the client 100 may transmit and receive media content with the server 200.
- the client 100 may transmit information necessary for scheduling transmission and reception of media content to the second server 1200.
- the client 100 may transmit information about the size of the buffer of the client 100 to the second server 1200.
- the client 100 may receive media content in a streaming manner from the server 200 through the plurality of network connections 50.
- the client 100 includes a buffer capable of storing the media content in order to receive the media content from the first server 200 in a streaming manner.
- the client 100 may be implemented in various forms.
- the client 100 described in the present specification may be a mobile phone, a smart phone, a laptop computer, a tablet PC, or the like, but is not limited thereto.
- the first server 200 transmits media content to the client 100.
- the first server 200 transmits the media content stored inside or outside the first server 200 through a plurality of network connections 50 between the first server 200 and the client 100. ) Can be sent.
- the first server 200 may communicate with the second server 1200.
- the first server 200 may determine the size of the segment, which is a transmission unit of the media content, based on the scheduling information received from the second server 1200. This will be described later in detail with reference to FIG. 13.
- the second server 1200 may communicate with the client 100 and the first server 200, respectively. For example, the second server 1200 may obtain size information of the buffer of the client 100 from the client 100. Also, the second server 1200 may determine a number of network connections 50 capable of transmitting and receiving media content between the client 100 or the first server 200 between the client 100 and the first server 200. Information can be obtained.
- the second server 1200 may store segments transmitted from the first server 200 to the client 100 based on the acquired size information of the buffer of the client 100 and the number information of the plurality of network connections 50.
- the scheduling information may be generated to be assigned to each of the plurality of network connections 50. A method of generating scheduling information by the second server 1200 will be described in detail with reference to FIG. 13.
- the second server 1200 may transmit the generated scheduling information to the first server 200.
- the first server 200 may allocate segments to each of the plurality of network connections 50 based on the scheduling information received from the second server 1200.
- FIG. 13 is a flowchart illustrating a method of generating scheduling information for receiving media content by the second server 1200 according to an exemplary embodiment.
- the second server 1200 determines a plurality of network connections 50 capable of receiving media content between the client 100 and the first server 200.
- the second server 1200 may monitor a network condition established between the client 100 and the first server 200. As a result of monitoring, the second server 1200 may obtain the number information of the plurality of network connections 50 connecting the client 100 and the server 200.
- the second server 1200 predicts a buffering timing transmitted through some network connections among the plurality of network connections 50 in which segments transmitted based on the size of the buffer of the client 100 are determined.
- the second server 1200 may obtain information about the size of segments transmitted from the first server 200 to the client 100 based on the obtained buffer size information of the client 100. have. For example, when transmitting data from the first server 200 to the client 100 through streaming, the first server 200 may transmit segments equal to the buffer size. Therefore, segments corresponding to the size of the buffer of the client 100 may be transmitted from the first server 200 to the client 100.
- the second server 1200 determines whether segments are transmitted through some network connections of the plurality of network connections 50 based on the determined number information of the plurality of network connections 50 and size information of the transmitted segments. You can judge.
- a detailed method of determining whether segments are transmitted through only some network connections of the plurality of network connections 50 by the first server 200 is the same as that of Equations 1 and 2 described above with reference to FIG. 4.
- the second server 1200 In operation 1330, at a predicted buffering timing, the second server 1200 generates scheduling information for allocating segments allocated to some network connections to each of the plurality of network connections 50.
- the second server 1200 may obtain the number R of the remaining segments based on the size information of the buffer and the number information of the plurality of network connections 50 based on Equation 1 described above.
- the second server 1200 may generate scheduling information for changing the size of the remaining segment so that one remaining segment may be allocated to each of the calculated number of network connections.
- the method of generating scheduling information by the second server 1200 may correspond to the method of generating scheduling information by the client 100 in operation 330 of FIG. 2.
- the second server 1200 transmits the scheduling information generated to the server 200.
- the server 200 may generate sub-segments by changing the size of the segments so that the segments are allocated to each of the plurality of network connections 50 based on the scheduling information received from the second server 1200. For example, if there are two network connections calculated in the segment, the second server 1200 may divide the remaining segment into sub-segments having a half size.
- the first server 200 may allocate a plurality of sub-segments generated as a result of dividing the remaining segment to each of the plurality of network connections 50.
- the first server 200 may shorten the time required to transmit the media content to the client 100 by dividing the remaining segments and allocating the remaining segments to each of the plurality of network connections 50.
- FIG. 14 is a diagram for describing a method of scheduling transmission and reception of media content by the second server 1200 according to an exemplary embodiment.
- the second server 1200 may have a lookup in which a relationship between the number of the plurality of network connections 50 and the size of a buffer of the client 100 and the size of segments allocated to each of the plurality of network connections 50 is defined. Scheduling information can be generated from the table.
- the second server 1200 monitors a network state to check the number N of the plurality of network connections 50 capable of transmitting and receiving media content between the client 100 and the first server 200, and the client Information about the size S of the buffer 100 may be obtained.
- the second server 1200 obtains segment size information for allocating segments to each of the plurality of network connections 50 from the lookup table. Can be extracted.
- the second server 1200 may shorten the time required to generate the scheduling information by extracting the segment size information from the lookup table.
- the lookup table may also include information on scheduling effects.
- the second server 1200 may determine whether the transmission time is shortened. If the second server 1200 according to an embodiment determines that there is no effect due to scheduling, the second server 1200 may transmit the segment to the client 100 without scheduling the segments.
- the lookup table may include information on whether a scheduling effect exists. In this case, the second server 1200 may generate scheduling information based on information on whether there is a scheduling effect extracted from the lookup table without a separate calculation process.
- 15 is a flowchart illustrating a method of determining whether a scheduling effect exists when the second server 1200 schedules transmission and reception of media content, according to an exemplary embodiment.
- the second server 1200 determines a plurality of network connections 50 capable of receiving media content between the client 100 and the server 200.
- the second server 1200 may obtain the number information of the determined plurality of network connections 50 by monitoring the network condition established between the client 100 and the first server 200.
- Step 1510 may correspond to step 1310.
- the second server 1200 predicts a buffering timing transmitted through some network connections among the plurality of network connections 50 in which segments transmitted based on the size of the buffer of the client 100 are determined.
- Step 1020 may correspond to step 820.
- the second server 1200 generates scheduling information for allocating the remaining segments allocated to the some network connections to each of the plurality of network connections at the predicted buffering timing.
- the scheduling information may include information about the number of network connections allocated to one remaining segment in order to allocate the remaining segments to each of the plurality of network connections.
- Information about the number of network connections allocated to one remaining segment is based on Equation 1 and Equation 2 described above with reference to FIG. 4, the number of network connections 50, and size information of a buffer of the client 100. Can be calculated.
- the second server 1200 may determine a difference between a first transmission time during which segments are transmitted through some network connections and a second transmission time in response to a plurality of network connections 50 based on the generated scheduling information. Determines whether the value exceeds the threshold.
- the second server 1200 may determine that there is an effect of shortening the buffering time due to scheduling. Whether the difference between the first transmission time and the second transmission time exceeds a threshold may be determined based on Equation 3 described above.
- the second server 1200 transmits the scheduling information generated to the first server 200.
- the first server 1200 may transmit the scheduling information to the first server 200.
- the first server 200 may allocate the divided segments to each of the plurality of network connections 50 and transmit them to the client 100.
- the second server 1200 that schedules transmission and reception of media content may include a controller 1210, a scheduler 1230, and a communicator 1230.
- the controller 1210 typically controls the overall operation of the client 100 that schedules the reception of the media content.
- the controller 1210 may control the scheduler 1220, the communication unit 1230, and the like overall by executing programs stored in a memory (not shown).
- the controller 1210 determines a plurality of network connections 50 capable of receiving media content between the first server 200 and the client 100.
- the controller 1210 may monitor a network condition established between the client 100 and the server 200 to determine a plurality of network connections 50 connecting the client 100 and the server 200.
- the controller 1210 may obtain the number information of the determined plurality of network connections 50.
- the controller 1210 may predict an effect according to the scheduling information generated by the scheduler 1220.
- the control unit 1210 receives a first reception time during which segments of the media content are received through some network connection and a second reception time during which the segments of the media content are received via the plurality of network connections 50 based on scheduling information in which the segments of the media content are generated. It may be determined whether the difference exceeds the threshold, and the effect according to the scheduling information may be predicted. For example, if the difference between the first reception time and the second reception time exceeds a preset threshold, the controller 1210 determines that there is an effect of shortening the time for receiving segments of the media content by generating scheduling information. can do.
- the scheduler 1220 predicts a buffering timing received through some network connections of the plurality of network connections 50 in which segments of media content received in units of a buffer size of the client 100 are determined.
- the scheduler 2120 generates scheduling information for allocating segments of media content allocated to some network connections to each of the plurality of network connections, at the predicted buffering timing.
- the scheduler 1220 is configured to allocate segments of the media content allocated to some network connections to each of the plurality of network connections based on the number of the plurality of network connections 50 and the size of the buffer of the client 100. The number of network connections allocated to the segment of media content may be determined.
- the scheduler 1220 may extract scheduling information corresponding to the number of the plurality of network connections 50 and the size of the buffer of the client 100 based on the pre-stored lookup table.
- the communication unit 1230 transmits the scheduling information generated to the first server 200.
- the first server 200 changes sizes of segments of predetermined media content based on scheduling information received from the communication unit 1230.
- the first server 200 may transmit the sub-segments generated as a result of changing the size of the segments to the client 100 through each of the plurality of network connections 50.
- the device comprises a processor, a memory for storing and executing program data, a permanent storage such as a disk drive, a communication port for communicating with an external device, a user interface such as a touch panel, a key, a button and the like.
- a user interface such as a touch panel, a key, a button and the like.
- Methods implemented by software modules or algorithms may be stored on a computer readable recording medium as computer readable codes or program instructions executable on the processor.
- the computer-readable recording medium may be a magnetic storage medium (eg, read-only memory (ROM), random-access memory (RAM), floppy disk, hard disk, etc.) and an optical reading medium (eg, CD-ROM). ) And DVD (Digital Versatile Disc).
- the computer readable recording medium can be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.
- the medium is readable by the computer, stored in the memory, and can be executed by the processor.
- the invention can be represented by functional block configurations and various processing steps. Such functional blocks may be implemented in various numbers of hardware or / and software configurations that perform particular functions.
- the present invention relates to integrated circuit configurations such as memory, processing, logic, look-up table, etc., which may execute various functions by the control of one or more microprocessors or other control devices. It can be adopted.
- the present invention includes various algorithms implemented in data structures, processes, routines or other combinations of programming constructs, including C, C ++ It may be implemented in a programming or scripting language such as Java, an assembler, or the like.
- the functional aspects may be implemented with an algorithm running on one or more processors.
- the present invention may employ the prior art for electronic environment setting, signal processing, and / or data processing.
- Terms such as “mechanism”, “element”, “means”, “configuration” can be used widely and are not limited to mechanical and physical configurations. The term may include the meaning of a series of routines of software in conjunction with a processor or the like.
- connection or connection members of the lines between the components shown in the drawings by way of example shows a functional connection and / or physical or circuit connections, in the actual device replaceable or additional various functional connections, physical It may be represented as a connection, or circuit connections.
- such as "essential”, “important” may not be a necessary component for the application of the present invention.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Between Computers (AREA)
Abstract
클라이언트와 서버간의 미디어 컨텐츠를 수신 가능한 복수의 네트워크 연결들을 결정하고, 클라이언트의 버퍼의 크기 단위로 수신되는 미디어 컨텐츠의 세그먼트들이 결정된 복수의 네트워크 연결들 중 일부 네트워크 연결을 통해 수신되는 버퍼링 타이밍을 예측하여, 예측된 버퍼링 타이밍에서, 일부 네트워크 연결에 할당되는 미디어 컨텐츠의 세그먼트들을 복수의 네트워크 연결들 각각에 할당하는 스케쥴링 정보를 생성하고, 서버에 생성된 스케쥴링 정보를 전송하는 클라이언트가 미디어 컨텐츠의 수신을 스케쥴링 하는 방법이 개시된다.
Description
본 발명은 미디어 컨텐츠의 송수신을 스케쥴링 하는 방법, 장치 및 시스템에 관한 것으로서, 보다 상세하게는, 클라이언트가 미디어 컨텐츠의 수신을 스케쥴링 하는 방법 및 그 클라이언트, 서버가 미디어 컨텐츠의 송신을 스케쥴링 하는 방법 및 그 서버, 제 2 서버가 미디어 컨텐츠의 송수신을 스케쥴링 하는 방법 및 그 제 2 서버 및 미디어 컨텐츠의 송수신을 스케쥴링 하는 시스템에 관한 것이다.
무선 통신 네트워크의 발달로, 사용자들은 다양한 유형의 미디어 컨텐츠를 서버로부터 제공받아 이용할 수 있다. 미디어 컨텐츠의 경우, 스트리밍을 통해, 서버로부터 사용자의 디바이스들로 전송될 수 있다. 미디어 컨텐츠를 스트리밍 하는 경우에 있어서, 미디어 컨텐츠를 버퍼링 하는데 소요되는 시간은 미디어 컨텐츠의 제공에 관한 품질을 결정하는데 중요한 요소 중 하나이다.
최근에는 미디어 컨텐츠를 스트리밍하는 데 있어, 버퍼링에 소요되는 시간을 줄이기 위한 다양한 연구가 진행되고 있다. 특히, 서버와 사용자의 단말기 간에 적어도 하나의 네트워크 연결을 통해 송수신되는 미디어 컨텐츠를 효율적으로 스케쥴링 하는 방법에 대한 연구가 활발하게 이루어지고 있다.
본 발명은 클라이언트와 서버간에 미디어 컨텐츠를 송수신하는데 있어서, 네트워크 연결을 통해 서버로부터 클라이언트로 전송되는 미디어 컨텐츠를 스케쥴링 하여, 클라이언트가 미디어 컨텐츠를 수신하는데 소요되는 시간을 줄이기 위한 미디어 컨텐츠의 송수신을 스케쥴링 하는 방법, 장치 및 시스템에 관한 것이다.
클라이언트와 서버간의 미디어 컨텐츠를 수신 가능한 복수의 네트워크 연결들을 결정하고, 클라이언트의 버퍼의 크기 단위로 수신되는 미디어 컨텐츠의 세그먼트들이 결정된 복수의 네트워크 연결들 중 일부 네트워크 연결을 통해 수신되는 버퍼링 타이밍을 예측하여, 예측된 버퍼링 타이밍에서, 일부 네트워크 연결에 할당되는 미디어 컨텐츠의 세그먼트들을 복수의 네트워크 연결들 각각에 할당하는 스케쥴링 정보를 생성하고, 서버에 생성된 스케쥴링 정보를 전송하는 클라이언트가 미디어 컨텐츠의 수신을 스케쥴링 하는 방법이 개시된다.
도 1은 일 실시예에 따른, 미디어 컨텐츠의 송수신을 스케쥴링 하는 시스템을 설명하기 위한 개념도이다.
도 2는 일 실시예에 따른 클라이언트가 미디어 컨텐츠를 수신하기 위한 스케쥴링을 수행하는 방법을 설명하기 위한 흐름도이다.
도 3은 일 실시예에 따른 클라이언트가 미디어 컨텐츠의 수신에 대한 스케쥴링 효과를 예측하여, 스케쥴링 여부를 결정하는 방법을 설명하기 위한 흐름도이다.
도 4는 일 실시예에 따른 클라이언트가 버퍼의 크기 및 복수의 네트워크 연결들의 개수를 기초로 미디어 컨텐츠를 수신하는데 걸리는 시간을 예측하는 방법을 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 클라이언트가 룩업테이블을 이용하여, 스케쥴링 정보를 생성하는 방법을 설명하기 위한 도면이다.
도 6은 일 실시예에 따른 클라이언트가 생성된 스케쥴링 정보에 기초하여 서버로부터 미디어 컨텐츠를 수신하는 방법을 설명하기 위한 흐름도이다.
도 7은 일 실시예에 따른 미디어 컨텐츠의 수신을 스케쥴링 하는 클라이언트의 블록도이다.
도 8은 다른 실시예에 따른 서버에서 미디어 컨텐츠의 송신을 스케쥴링 하는 방법을 설명하기 위한 흐름도이다.
도 9는 일 실시예에 따른 서버가 룩업테이블을 이용하여, 미디어 컨텐츠의 전송을 스케쥴링하는 방법을 설명하기 위한 도면이다.
도 10은 일 실시예에 따른 서버가 스케쥴링 효과가 존재하는지 여부를 판단하고, 판단 결과에 기초하여 스케쥴링을 수행하는 방법을 설명하기 위한 흐름도이다.
도 11은 일 실시예에 따라 미디어 컨텐츠의 전송을 스케쥴링하는 서버의 블록도이다.
도 12는 다른 실시예에 따른, 미디어 컨텐츠의 송수신을 스케쥴링 하는 시스템을 설명하기 위한 개념도이다.
도 13은 일 실시예에 따른 제 2 서버가 미디어 컨텐츠를 수신하기 위한 스케쥴링 정보를 생성하는 방법을 설명하기 위한 흐름도이다.
도 14는 일 실시예에 따른 제 2 서버가 룩업테이블을 이용하여, 미디어 컨텐츠의 송수신을 스케쥴링하는 방법을 설명하기 위한 도면이다.
도 15는 일 실시예에 따른 제 2 서버가 미디어 컨텐츠의 송수신을 스케쥴링 하는 경우, 스케쥴링 효과가 존재하는지 여부를 판단하는 방법을 설명하기 위한 흐름도이다.
도 16은 일 실시예에 따른 미디어 컨텐츠의 송수신을 스케쥴링 하는 제 2 서버의 블록도이다.
일 실시예에 따른 클라이언트가 미디어 컨텐츠의 수신을 스케쥴링 하는 방법은 클라이언트와 서버간의 미디어 컨텐츠를 수신 가능한 복수의 네트워크 연결들을 결정하는 단계; 상기 클라이언트의 버퍼의 크기 단위로 수신되는 상기 미디어 컨텐츠의 세그먼트들이 상기 결정된 복수의 네트워크 연결들 중 일부 네트워크 연결을 통해 수신되는 버퍼링 타이밍을 예측하는 단계; 상기 예측된 버퍼링 타이밍에서, 상기 일부 네트워크 연결에 할당되는 상기 미디어 컨텐츠의 세그먼트들을 상기 복수의 네트워크 연결들 각각에 할당하는 스케쥴링 정보를 생성하는 단계; 및 상기 서버에 상기 생성된 스케쥴링 정보를 전송하는 단계를 포함한다.
일 실시예에 따른 클라이언트가 미디어 컨텐츠의 수신을 스케쥴링 하는 방법에 있어서, 상기 스케쥴링 정보는, 상기 일부 네트워크 연결에 상기 미디어 컨텐츠의 세그먼트들이 할당되는 경우, 상기 미디어 컨텐츠의 세그먼트들의 크기를 변경하는 요청을 포함한다.
일 실시예에 따른 클라이언트가 미디어 컨텐츠의 수신을 스케쥴링 하는 방법에 있어서, 상기 스케쥴링 정보는, 상기 미디어 컨텐츠의 세그먼트들을 상기 복수의 네트워크 연결들 각각에 할당 가능한 세그먼트의 크기 정보를 포함한다.
일 실시예에 따른 클라이언트가 미디어 컨텐츠의 수신을 스케쥴링 하는 방법에 있어서, 상기 스케쥴링 정보를 생성하는 단계는, 상기 미디어 컨텐츠의 세그먼트들이 상기 일부 네트워크 연결들을 통해 수신되는 제 1 수신 시간과 상기 미디어 컨텐츠의 세그먼트들이 상기 복수의 네트워크 연결들을 통해 수신되는 제 2 수신 시간을 비교하는 단계를 포함하고, 상기 생성된 스케쥴링 정보를 전송하는 단계는, 상기 제 1 수신 시간 및 상기 제 2 수신 시간을 비교한 결과에 기초하여, 상기 생성된 스케쥴링 정보를 전송하는 단계를 포함한다.
일 실시예에 따른 클라이언트가 미디어 컨텐츠의 수신을 스케쥴링 하는 방법에 있어서, 상기 스케쥴링 요청을 전송하는 단계는, 상기 제 1 수신 시간이 상기 제 2 수신 시간 보다 임계값 이상인 경우, 상기 서버에 상기 스케쥴링 요청을 전송하는 단계를 더 포함한다.
일 실시예에 따른 클라이언트가 미디어 컨텐츠의 수신을 스케쥴링 하는 방법에 있어서, 상기 스케쥴링 정보를 생성하는 단계는, 상기 복수의 네트워크 연결들의 개수 및 상기 버퍼의 크기와 상기 복수의 네트워크 연결들 각각에 할당되는 미디어 컨텐츠의 세그먼트의 크기와의 관계가 정의되어 있는 룩업테이블로부터 상기 미디어 컨텐츠의 세그먼트의 크기에 관한 정보를 추출하는 단계를 포함한다.
일 실시예에 따른 클라이언트가 미디어 컨텐츠의 수신을 스케쥴링 하는 방법은 상기 전송된 스케쥴링 정보에 기초하여 상기 미디어 컨텐츠를 수신하는 단계를 더 포함한다.
일 실시예에 따른 클라이언트가 미디어 컨텐츠의 수신을 스케쥴링 하는 방법에 있어서, 상기 미디어 컨텐츠를 수신하는 단계는, 상기 미디어 컨텐츠의 세그먼트들이 상기 서버에서 상기 생성된 스케쥴링 정보에 기초하여 분할된 결과 생성된 서브 세그먼트들을 수신하는 단계를 포함한다.
일 실시예에 따른 클라이언트가 미디어 컨텐츠의 수신을 스케쥴링 하는 방법에 있어서, 상기 서브 세그먼트들을 수신하는 단계는, 상기 복수의 네트워크 연결들 각각으로부터 동일한 개수의 적어도 하나의 서브 세그먼트를 수신한다.
일 실시예에 따른 클라이언트가 미디어 컨텐츠의 수신을 스케쥴링 하는 방법에 있어서, 상기 적어도 하나의 서브 세그먼트를 수신하는 단계는, 상기 복수의 네트워크 연결들 각각의 데이터 전송 속도가 상이한 경우, 상기 복수의 네트워크 연결들 간의 데이터 전송 속도의 비율에 기초하여, 상기 복수의 네트워크 연결들 각각에 할당되는 서브 세그먼트의 개수를 결정하는 단계를 포함한다.
일 실시예에 따른 서버가 미디어 컨텐츠의 수신을 스케쥴링 하는 방법은, 클라이언트와 서버간의 미디어 컨텐츠를 수신 가능한 복수의 네트워크 연결들을 결정하는 단계; 상기 클라이언트의 버퍼의 크기 단위로 수신되는 상기 미디어 컨텐츠의 세그먼트들이 상기 결정된 복수의 네트워크 연결들 중 일부 네트워크 연결을 통해 수신되는 버퍼링 타이밍을 예측하는 단계; 상기 예측된 버퍼링 타이밍에서, 상기 일부 네트워크 연결에 할당되는 상기 미디어 컨텐츠의 세그먼트들이 상기 복수의 네트워크 연결들 각각에 할당되도록 스케쥴링 하는 단계를 포함한다.
일 실시예에 따른 제 2 서버가 미디어 컨텐츠의 송수신을 스케쥴링을 하는 방법은, 클라이언트와 제 1 서버간의 미디어 컨텐츠를 수신 가능한 복수의 네트워크 연결들을 결정하는 단계; 상기 클라이언트의 버퍼의 크기 단위로 상기 클라이언트에 수신되는 상기 미디어 컨텐츠의 세그먼트들이 상기 결정된 복수의 네트워크 연결들 중 일부 네트워크 연결을 통해 수신되는 버퍼링 타이밍을 예측하는 단계; 상기 예측된 버퍼링 타이밍에서, 상기 일부 네트워크 연결에 할당되는 상기 미디어 컨텐츠의 세그먼트들을 상기 복수의 네트워크 연결들 각각에 할당하는 스케쥴링 정보를 생성하는 단계; 및 상기 제 1 서버에 상기 생성된 스케쥴링 정보를 전송하는 단계를 포함한다.
일 실시예에 따른 미디어 컨텐츠의 수신을 스케쥴링 하는 클라이언트는 클라이언트와 서버간의 미디어 컨텐츠를 수신 가능한 복수의 네트워크 연결들을 결정하는 제어부; 상기 클라이언트의 버퍼의 크기 단위로 수신되는 상기 미디어 컨텐츠의 세그먼트들이 상기 확인된 복수의 네트워크 연결들 중 일부 네트워크 연결을 통해 수신되는 버퍼링 타이밍을 예측하고, 상기 예측된 버퍼링 타이밍에서, 상기 일부 네트워크 연결에 할당되는 상기 미디어 컨텐츠의 세그먼트들을 상기 복수의 네트워크 연결들 각각에 할당하는 스케쥴링 정보를 생성하는 스케쥴러; 및 상기 생성된 스케쥴링 정보를 상기 서버에 전송하는 통신부를 포함한다.
일 실시예에 따른 미디어 컨텐츠의 송신을 스케쥴링 하는 서버는, 클라이언트와 서버간의 미디어 컨텐츠를 수신 가능한 복수의 네트워크 연결들을 결정하는 제어부; 상기 클라이언트의 버퍼의 크기 단위로 수신되는 상기 미디어 컨텐츠의 세그먼트들이 상기 결정된 복수의 네트워크 연결들 중 일부 네트워크 연결을 통해 수신되는 버퍼링 타이밍을 예측하는고, 상기 예측된 버퍼링 타이밍에서, 상기 일부 네트워크 연결에 할당되는 상기 미디어 컨텐츠의 세그먼트들이 상기 복수의 네트워크 연결들 각각에 할당되도록 스케쥴링 하는 스케쥴러를 포함한다.
일 실시예에 따른 미디어 컨텐츠의 송수신을 스케쥴링 하는 제 2 서버는 클라이언트와 제 1 서버간의 미디어 컨텐츠를 수신 가능한 복수의 네트워크 연결들을 결정하는 제어부; 상기 클라이언트의 버퍼의 크기 단위로 상기 클라이언트에 수신되는 상기 미디어 컨텐츠의 세그먼트들이 상기 결정된 복수의 네트워크 연결들 중 일부 네트워크 연결을 통해 수신되는 버퍼링 타이밍을 예측하고, 상기 예측된 버퍼링 타이밍에서 상기 일부 네트워크 연결에 할당되는 상기 미디어 컨텐츠의 세그먼트들을 상기 복수의 네트워크 연결들 각각에 할당하는 스케쥴링 정보를 생성하는 스케쥴러; 및 상기 제 1 서버에 상기 생성된 스케쥴링 정보를 전송하는 통신부를 포함한다.
일 실시예에 따른 미디어 컨텐츠의 송수신을 스케쥴링 하는 시스템은 클라이언트의 버퍼의 크기 단위로 상기 클라이언트에 수신되는 상기 미디어 컨텐츠의 세그먼트들이 상기 클라이언트와 서버간의 미디어 컨텐츠를 수신 가능한 복수의 네트워크 연결들 중 일부 네트워크 연결을 통해 수신되는 버퍼링 타이밍을 예측하는 단계; 상기 예측된 버퍼링 타이밍에서, 상기 일부 네트워크 연결에 할당되는 상기 미디어 컨텐츠의 세그먼트들을 상기 복수의 네트워크 연결들 각각에 할당하는 스케쥴링 정보를 생성하는 단계; 상기 서버에 상기 생성된 스케쥴링 정보를 전송하는 단계; 및 상기 서버가 상기 전송된 스케쥴링 정보에 기초하여, 분할된 미디어 컨텐츠의 세그먼트들를 포함한다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 1은 일 실시예에 따른, 미디어 컨텐츠의 송수신을 스케쥴링 하는 시스템(10)을 설명하기 위한 개념도이다. 도 1을 참고하면, 미디어 컨텐츠의 송수신을 스케쥴링하는 시스템(10, 이하 스케쥴링 시스템)은 클라이언트 디바이스(100) 및 서버(200)를 포함할 수 있다.
도 1에 도시된 스케쥴링 시스템(10)에는 본 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 1에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
일 실시예에 따르면, 클라이언트(100)는 서버(200)와 데이터를 송수신한다. 예를 들어, 클라이언트(100)는 서버(200)와 미디어 컨텐츠를 송수신할 수 있다. 다만, 이는 일 실시예일 뿐, 클라이언트(100)는 서버(200) 이외에도 프록시 서버와 같은 다른 디바이스와 통신할 수 있다. 또한, 클라이언트(100)가 서버(200)와 송수신 가능한 데이터는 미디어 컨텐츠에 한정되지 않으나, 본 명세서에서는 설명의 편의상 데이터를 미디어 컨텐츠로 설명하도록 한다.
한편, 클라이언트(100)는 서버(200)로부터 복수의 네트워크 연결들(50)을 통해 스트리밍 방식으로 미디어 컨텐츠를 수신할 수 있다. 클라이언트(100)는 서버(200)로부터 스트리밍 방식으로 미디어 컨텐츠를 수신하기 위해, 미디어 컨텐츠를 저장 가능한 버퍼를 포함한다. 다만, 이는 일 실시예일 뿐, 미디어 컨텐츠를 저장 가능한 버퍼는 클라이언트(100)의 외부에 존재할 수도 있다.
또한, 클라이언트(100)는 서버(200)측의 미디어 컨텐츠 전송을 스케쥴링(scheduling) 하기 위한 스케쥴링 정보를 생성한다. 일 실시예에 따른 클라이언트(100)는 서버(200)와의 복수의 네트워크 연결들(50)의 개수 또는 클라이언트(100)의 버퍼의 크기에 기초하여, 스케쥴링 정보를 생성할 수 있다. 클라이언트(100)가 스케쥴링 정보를 생성하는 방법에 대해서는 도 2를 참고하여, 구체적으로 후술하도록 한다.
클라이언트(100)는 다양한 형태로 구현될 수 있다. 예를 들어, 본 명세서에서 기술되는 클라이언트(100)는 휴대폰, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 태블릿 PC 등이 있을 수 있으나, 이에 한정되는 것은 아니다.
일 실시예에 따른 서버(200)는 클라이언트(100)에 미디어 컨텐츠를 전송한다. 서버(200)는 서버(200)의 내부 또는 외부에 저장되어 있는 미디어 컨텐츠를 서버(200)와 클라이언트(100)간의 복수개의 네트워크 연결들(50)을 통해, 클라이언트(100)에 전송할 수 있다.
또한, 서버(200)는 복수의 네트워크 연결들(50)의 개수 또는 클라이언트(100)의 버퍼의 크기에 기초하여, 생성된 스케쥴링 정보에 따라 클라이언트(100)에 미디어 컨텐츠를 전송할 수 있다. 예를 들어, 서버(200)는 생성된 스케쥴링 정보에 따라 클라이언트(100)에 미디어 컨텐츠를 전송하는 경우, 미디어 컨텐츠가 전송되는 단위인 세그먼트의 크기를 결정할 수 있다. 서버(200)가 생성된 스케쥴링 정보에 따라 클라이언트(100)에 미디어 컨텐츠를 전송하는 방법에 대해서는 도 2 내지 도 4를 참고하여 구체적으로 후술하도록 한다.
일 실시예에 따르면, 스케쥴링 정보는 클라이언트(100)에서 생성되어 서버(200)에 전송될 수 있다. 다만, 이는 일 실시예일 뿐, 본 발명이 이에 한정되는 것은 아니다. 다른 실시예에 따르면, 서버(200)는 복수의 네트워크 연결들(50)의 개수 또는 획득된 클라이언트(100)의 버퍼 크기 정보에 기초하여 스케쥴링 정보를 생성할 수 있다. 또한, 또 다른 실시예에 따르면 서버(200)는 프록시 서버와 같은 다른 디바이스에서 복수의 네트워크 연결들(50)의 개수 또는 클라이언트(100)의 버퍼 크기 정보에 기초하여 생성된 스케쥴링 정보를 획득할 수도 있다.
도 2는 일 실시예에 따른 클라이언트(100)가 미디어 컨텐츠를 수신하기 위한 스케쥴링 정보를 서버(200)에 전송하는 방법을 설명하기 위한 흐름도이다.
단계 210에서, 클라이언트(100)는 서버(200)와 클라이언트(100)간의 미디어 컨텐츠를 수신 가능한 복수의 네트워크 연결들(50)을 결정한다. 클라이언트(100)는 클라이언트(100)와 서버(200)간에 설정된 네트워크의 상황을 모니터링 하여, 클라이언트(100)와 서버(200)를 연결하는 복수의 네트워크 연결들(50)을 결정할 수 있다. 클라이언트(100)는 결정된 복수의 네트워크 연결들(50)의 개수 정보를 획득할 수 있다.
단계 220에서, 클라이언트(100)는 클라이언트(100)의 버퍼의 크기 단위로 수신되는 미디어 컨텐츠의 세그먼트들이 결정된 복수의 네트워크 연결들(50) 중 일부 네트워크 연결을 통해 수신되는 버퍼링 타이밍을 예측한다.
클라이언트(100)가 스트리밍을 통해 서버(200)로부터 미디어 컨텐츠를 수신하는 경우, 클라이언트(100)가 버퍼링 모드에 들어가면, 클라이언트(100)는 버퍼의 크기만큼 미디어 컨텐츠를 수신한 후, 다시 재생 모드로 전환된다. 클라이언트(100)는 버퍼의 크기 및 복수의 네트워크 연결들(50)의 개수를 기초로 버퍼링 모드에서 미디어 컨텐츠를 수신하는데 걸리는 시간을 예측할 수 있다.
또한, 클라이언트(100)는 서버(200)와의 복수의 네트워크 연결들(50) 각각에 세그먼트(이하, 세그먼트)들이 할당되는지 여부를 확인할 수도 있다. 여기에서, 세그먼트는 서버(200)로부터 클라이언트(100)에 미디어 컨텐츠가 전송되는 단위일 수 있다. 다만, 이는 본 발명의 일 실시예일 뿐, 전송되는 미디어 컨텐츠의 단위가 세그먼트에 한정되는 것은 아니다.
클라이언트(100)와 서버(200)간에 복수의 네트워크 연결들(50) 각각에 세그먼트들이 할당되는 경우가 일부 네트워크 연결들에 세그먼트들이 할당되는 경우에 비해, 미디어 컨텐츠를 수신하는데 걸리는 시간이 상대적으로 적을 수 있다.
이하에서는 도 4를 참고하여, 클라이언트(100)가 버퍼의 크기 및 복수의 네트워크 연결들(50)의 개수를 기초로 미디어 컨텐츠를 수신하는데 걸리는 시간을 예측하는 방법에 대해 구체적으로 설명하도록 한다.
도 4의 (a)에는, 클라이언트(100)와 서버(200)간에 복수의 네트워크 연결들의 개수가 4개이고, 6개의 기설정된 크기의 세그먼트들이 전송되는 경우, 클라이언트(100)가 세그먼트들을 수신하는데 걸리는 시간에 관한 그래프가 도시되어 있다. 여기에서, 6개의 기설정된 크기의 세그먼트들은 클라이언트(100)가 버퍼링 모드에서 재생 모드로 전환되기 전 수신하는 것으로, 클라이언트(100)의 버퍼의 크기와 대응되는 크기를 갖을 수 있다.
도 4의 (a)의 그래프를 참고하면, U 단위 시간 동안에는 복수의 네트워크 연결들(제 1 연결, 제 2 연결, 제 3 연결 및 제 4 연결) 각각에 모두 버퍼링 모드에서 재생 모드로 전환하기 위해 필요한 세그먼트가 할당된다. 한편, 이후의 U 단위 시간(U~2U) 동안에는 서버(200)로부터 전송되는 버퍼링 모드에서 재생 모드로 전환하기 위해 필요한 6개의 세그먼트 중에서 남은 2개의 세그먼트가 제 1 연결 및 제 2 연결에만 각각 할당된다. 여기에서, 남은 2개의 세그먼트는 복수의 네트워크 연결들(50) 각각에 할당되지 않고, 일부 네트워크 연결들에 할당되는 세그먼트로서, 본 명세서에서는 이러한 세그먼트를 잔여 세그먼트로 지칭하여 설명하도록 한다.
복수의 네트워크 연결들(제 1 연결, 제 2 연결, 제 3 연결 및 제 4 연결) 중에서 일부 네트워크 연결들에만(제 1 연결 및 제 2 연결) 세그먼트가 할당되는 경우, 나머지 네트워크 연결들은 버퍼링 모드에서 재생 모드로 전환하기 위한 세그먼트의 전송에 관여하지 않게 된다. 따라서, 클라이언트(100)에 전송되는 세그먼트들의 분배가 효율적으로 이루어 지지 않아 버퍼링 모드 에서 재생 모드로 전환되는데 더 오랜 시간이 소요되게 된다.
한편, 도 4의 (b)의 그래프를 참고하면, U 단위 시간 동안에는 도 4의 (a)와 같이 복수의 네트워크 연결들(제 1 연결, 제 2 연결, 제 3 연결 및 제 4 연결) 각각에 모두 버퍼링 모드에서 재생 모드로 전환하기 위해 필요한 세그먼트가 할당된다. 하지만, U 단위 시간 이후에는 기설정된 세그먼트의 크기를 변경하여, 복수의 네트워크 연결들 각각에 할당함으로써, 나머지 2개의 세그먼트들을 전송하는데 걸리는 시간이 0.5U로 단축되는 것을 확인할 수 있다.
다시 도 2를 참고하여 설명하면, 일 실시예에 따른 클라이언트(100)는 버퍼링 모드에서 재생 모드로 전환되는 시간을 최소화하기 위해 다음 수학식 1에 기초하여, 세그먼트들이 일부 네트워크 연결에 각각 할당되는 타이밍을 예측할 수 있다.
[수학식 1]
상기의 수학식 1에서, S는 클라이언트(100)의 버퍼의 크기, N은 복수의 네트워크 연결들(50)의 개수이다. 수학식 1에서, A는 복수의 네트워크 연결들(50)을 이용하여, 클라이언트(100)의 버퍼에 세그먼트를 모두 전송하는데 필요한 단위 시간에서 1 단위 시간을 감소시킨 값이다. 여기에서, 1 단위 시간은 기설정된 크기의 세그먼트를 네트워크 연결을 통해 서버(200)에서 클라이언트(100)에 전송하는데 걸리는 시간이다. 또한, R은 A단위 시간이 경과한 후에, 버퍼링 모드에서 재생 모드로 전환하기 위해, 클라이언트(100)가 수신해야 하는 잔여 세그먼트의 개수이다.
일 실시예에 따른 클라이언트(100)는 클라이언트(100)의 버퍼의 크기 S와 복수의 네트워크 연결들(50)의 개수 N에 기초하여, 산출된 R값이 0이 아닌 경우, 버퍼링 모드에서 재생 모드로 전환하기 위해 소요되는 시간 중 마지막 단위 시간에 일부 네트워크 연결들에 세그먼트가 할당된다는 것을 확인할 수 있다.
예를 들어, 클라이언트(100)의 버퍼의 크기가 6이고, 복수의 네트워크 연결들(50)의 개수가 4개인 경우, 수학식 1에 기초하여 A와 R을 산출하면, 클라이언트(100)는 제 1 단위 시간(A 단위 시간)이 지나고 제 2 단위 시간에서, 2(R)개의 잔여 세그먼트를 수신할 수 있다. 클라이언트(100)는 제 2 단위 시간에서 일부 네트워크 연결들에만 할당되는 잔여 세그먼트들이 존재한다는 사실을 예측할 수 있다.
단계 230에서, 클라이언트(100)는 예측된 버퍼링 타이밍에서, 일부 네트워크 연결에 할당되는 잔여 세그먼트들을 복수의 네트워크 연결들 각각에 할당하는 스케쥴링 정보를 생성한다. 여기에서, 스케쥴링 정보에는 일부 네트워크 연결에 할당되는 잔여 세그먼트들을 복수의 네트워크 연결들(50) 각각에 할당하기 위한 세그먼트의 크기 정보가 포함될 수 있다. 예를 들어, 크기 정보는 일부 네트워크 연결에 할당되는 잔여 세그먼트들을 복수의 네트워크 연결들(50) 각각에 할당하기 위한 서브 세그먼트의 크기 정보를 포함할 수 있다.
일 실시예에 따른 세그먼트들을 복수의 네트워크 연결들(50) 각각에 할당하기 위한 서브 세그먼트의 크기 정보는 다음의 수학식 2에 기초하여 결정될 수 있다.
[수학식 2]
상기의 수학식 2에서, N은 복수의 네트워크 연결들(50)의 개수이고, R은 A단위 시간이 경과한 후에, 버퍼링 모드에서 재생 모드로 전환하기 위해, 클라이언트(100)가 수신해야 하는 세그먼트의 개수이다. 여기에서, A는 전술한 바와 같이 복수의 네트워크 연결들(50)을 이용하여, 클라이언트(100)의 버퍼에 세그먼트를 모두 전송하는데 필요한 단위 시간에서 1 단위 시간을 감소시킨 값이다. 수학식 2를 연산한 결과 산출되는 D는 복수의 네트워크 연결들 각각에서 R개의 잔여 세그먼트들을 수신하기 위해 잔여 세그먼트 별로 할당되는 네트워크 연결의 수를 의미한다.
예를 들어, 클라이언트(100)의 버퍼의 크기가 6이고, 복수의 네트워크 연결들(50)의 개수가 4개인 경우, N은 4, A는 1 및 R은 2의 값을 갖는다. 또한, D는 상기 수학식 2에 기초하여 2의 값을 갖는다. 이는 2개의 잔여 세그먼트들을 4개의 복수의 네트워크 연결들 각각을 이용하여 전송하기 위해, 한 개의 잔여 세그먼트에 할당되는 네트워크 연결의 개수가 2개임을 의미한다.
단계 240에서, 클라이언트(100)는 서버(200)에 생성된 스케쥴링 정보를 전송한다. 일 실시예에 따른 서버(200)는 클라이언트(100)로부터 수신한 스케쥴링 정보에 기초하여, 기설정된 세그먼트들의 크기를 변경한다. 서버(200)에서 스케쥴링 정보에 기초하여, 생성되는 변경된 크기의 서브 세그먼트들은 복수의 네트워크 연결들 각각에 할당될 수 있다.
예를 들어, 스케쥴링 정보에는 복수의 네트워크 연결들 각각에서 일부 네트워크 연결에 할당되는 잔여 세그먼트를 수신하기 위해 잔여 세그먼트 별로 할당되는 네트워크 연결의 수에 대한 정보를 포함할 수 있다. 잔여 세그먼트 별로 할당되는 네트워크 연결의 수에 대한 정보가 2인 경우, 서버(200)는 하나의 잔여 세그먼트가 2개의 네트워크 연결들을 통해 클라이언트(100)에 전송되도록 잔여 세그먼트의 크기를 변경할 수 있다.
도 3은 일 실시예에 따른 클라이언트(100)가 미디어 컨텐츠의 수신에 대한 스케쥴링 효과를 예측하여, 스케쥴링 여부를 결정하는 방법을 설명하기 위한 흐름도이다.
단계 310에서, 클라이언트(100)는 서버(200)와 클라이언트(100)간의 미디어 컨텐츠를 수신 가능한 복수의 네트워크 연결들(50)을 결정한다. 일 실시예에 따른 클라이언트(100)는 결정된 복수의 네트워크 연결들(50)의 개수 정보를 획득할 수 있다. 단계 310은 전술한 도 2의 단계 210에 대응될 수 있다.
단계 320에서, 클라이언트(100)는 클라이언트(100)의 버퍼의 크기 단위로 수신되는 세그먼트들이 결정된 복수의 네트워크 연결들(50) 중 일부 네트워크 연결을 통해 수신되는 버퍼링 타이밍을 예측한다. 단계 320은 전술한 도 2의 단계 220에 대응될 수 있다.
단계 330에서, 클라이언트(100)는 예측된 버퍼링 타이밍에서, 일부 네트워크 연결에 할당되는 잔여 세그먼트들을 복수의 네트워크 연결들 각각에 할당하는 스케쥴링 정보를 생성한다. 여기에서, 스케쥴링 정보에는 일부 네트워크 연결에 할당되는 잔여 세그먼트들을 복수의 네트워크 연결들(50) 각각에 할당하기 위한 세그먼트의 크기 정보가 포함될 수 있다. 단계 330은 전술한 도 2의 단계 230에 대응될 수 있다.
단계 340에서, 클라이언트(100)는 잔여 세그먼트들이 일부 네트워크 연결을 통해 수신되는 제 1 수신 시간과 생성된 스케쥴링 정보에 기초하여 복수의 네트워크 연결들(50)을 통해 수신되는 제 2 수신 시간의 차이가 임계값을 초과하는지 여부를 판단한다.
클라이언트(100)는 제 1 수신 시간과 제 2 수신 시간의 차이가 임계값을 초과하는 경우, 스케쥴링 정보를 생성함으로써 세그먼트들을 수신하는 시간을 단축하는 효과가 있다고 판단할 수 있다. 제 1 수신 시간과 제 2 수신 시간의 차이가 임계값을 초과하는지 여부는 다음의 수학식 3에 의해 결정될 수 있다.
[수학식 3]
상기의 수학식 3에서, N은 복수의 네트워크 연결들(50)의 개수 및 S는 버퍼의 크기를 의미한다. 수학식 3에 의해 산출되는 E는 스케쥴링을 통해 잔여 세그먼트들을 수신하는 시간이 단축되는 효과를 나타내는 파라미터이다.
E 가 임계값 1보다 큰 경우, 클라이언트(100)는 스케쥴링 정보를 생성함으로써, 잔여 세그먼트들을 수신하는 시간을 단축하는 효과가 있다고 판단할 수 있다. 한편, 임계값 1은 본 발명의 일 실시예일 뿐, 임계값은 다양한 값으로 설정될 수 있다.
단계 350에서, 클라이언트(100)는 생성된 스케쥴링 정보를 서버(200)에 전송한다. 일 실시예에 따른 클라이언트(100)는 스케쥴링 정보를 생성함으로써 잔여 세그먼트들을 수신하는 시간을 단축하는 효과가 있다고 판단되는 경우, 생성된 스케쥴링 정보를 서버(200)에 전송할 수 있다.
한편, 클라이언트(100)는 단계 340에서, 판단한 결과 제 1 수신 시간과 제 2 수신 시간의 차이가 임계값을 초과하지 않는 경우 스케쥴링 정보를 서버(200)에 전송하지 않을 수 있다. 클라이언트(100)는 스케쥴링 효과를 예측하여, 스케쥴링을 수행할 지 여부를 결정함으로써, 미디어 컨텐츠의 수신을 스케쥴링하여 소요되는 시간을 줄일 수 있다.
도 5는 일 실시예에 따른 클라이언트(100)가 룩업테이블을 이용하여, 스케쥴링 정보를 생성하는 방법을 설명하기 위한 도면이다.
클라이언트(100)는 복수의 네트워크 연결들(50)의 개수 및 클라이언트(100)의 버퍼의 크기와 복수의 네트워크 연결들 각각에 할당되는 세그먼트의 크기와의 관계가 정의되어 있는 룩업테이블로부터 스케쥴링 정보를 생성할 수 있다.
예를 들어, 클라이언트(100)는 네트워크 상태를 모니터링하여, 서버(200)와의 복수의 네트워크 연결들(50)의 개수 N을 확인하고, 클라이언트(100)의 버퍼의 크기 S에 대한 정보를 획득할 수 있다. 클라이언트(100)는 룩업테이블로부터 복수의 네트워크 연결들(50)이 N이고, 버퍼의 크기가 S일 때, 복수의 네트워크 연결들(50) 각각에 세그먼트를 할당하기 위한 세그먼트의 크기 정보를 추출할 수 있다. 클라이언트(100)는 룩업테이블로부터 세그먼트의 크기 정보를 추출함으로써, 스케쥴링 정보를 생성하는데 소요되는 시간을 단축할 수 있다.
다른 실시예에 따르면, 룩업테이블에는 스케쥴링 효과에 대한 정보도 포함될 수 있다. 클라이언트(100)는 미리 저장되어 있는 룩업테이블로부터 복수의 네트워크 연결들(50)의 개수 및 클라이언트(100)의 버퍼의 크기에 대응되는 스케쥴링 효과에 관한 정보를 추출함으로써, 스케쥴링 여부를 결정할지 판단하는데 소요되는 시간을 단축할 수도 있다.
한편, 룩업테이블은 클라이언트(100)의 내부에 저장될 수도 있고, 클라이언트(100)와 통신 가능한 외부 디바이스에 저장될 수도 있다.
도 6은 일 실시예에 따른 클라이언트(100)가 생성된 스케쥴링 정보에 기초하여 서버(200)로부터 미디어 컨텐츠를 수신하는 방법을 설명하기 위한 흐름도이다.
단계 610에서, 클라이언트(100)는 서버(200)와 클라이언트(100)간의 미디어 컨텐츠를 수신 가능한 복수의 네트워크 연결들(50)을 결정한다. 일 실시예에 따른 클라이언트(100)는 결정된 복수의 네트워크 연결들(50)의 개수 정보를 획득할 수 있다. 단계 610은 전술한 도 3의 단계 310에 대응될 수 있다.
단계 620에서, 클라이언트(100)는 클라이언트(100)의 버퍼의 크기 단위로 수신되는 세그먼트들이 결정된 복수의 네트워크 연결들(50) 중 일부 네트워크 연결을 통해 수신되는 버퍼링 타이밍을 예측한다. 단계 620은 전술한 도 3의 단계 320에 대응될 수 있다.
단계 630에서, 클라이언트(100)는 예측된 버퍼링 타이밍에서, 복수의 네트워크 연결들의 데이터 전송 속도에 기초하여 일부 네트워크 연결에 할당되는 잔여 세그먼트들을 복수의 네트워크 연결들(50) 각각에 할당하는 스케쥴링 정보를 생성한다. 여기에서, 스케쥴링 정보에는 일부 네트워크 연결에 할당되는 잔여 세그먼트들을 복수의 네트워크 연결들(50) 각각에 할당하기 위한 잔여 세그먼트들의 크기 정보가 포함될 수 있다.
일 실시예에 따른 클라이언트(100)는 복수의 네트워크 연결들(50) 각각의 데이터 전송 속도간의 차이가 기설정된 값 미만인 경우에는 전술한 수학식 1 및 수학식 2에 기초하여, 세그먼트 별로 할당되는 네트워크 연결의 수를 결정할 수 있다. 세그먼트의 크기가 결정된 네트워크 연결의 수에 기초하여 변경된 결과 생성된 서브 세그먼트들은 복수의 네트워크 연결들(50)각각에 할당될 수 있다.
한편, 클라이언트(100)는 복수의 네트워크 연결들(50) 각각의 데이터 전송 속도 간의 차이가 기설정된 값 이상인 경우에는, 복수의 네트워크 연결들 간의 데이터 전송 속도의 비율에 기초하여 스케쥴링 정보를 생성할 수 있다. 복수의 네트워크 연결들(50)간에 전송 속도 간의 차이가 기설정된 값 이상인 경우, 복수의 네트워크 연결들(50) 각각에 세그먼트들을 할당하기 위한 스케쥴링 정보는 다음의 수학식 4 내지 수학식 6에 기초하여 생성될 수 있다.
[수학식 4]
[수학식 5]
[수학식 6]
전술한 수학식 4에서 는 i번째 네트워크 연결의 데이터 전송 속도 및 은 복수의 네트워크 연결들(50) 중에서 최소 데이터 전송 속도를 나타낸다. 한편, H는 복수의 네트워크 연결들(50)에 대해 최소 데이터 전송 속도를 기준으로, 결정된 가상 네트워크 연결들의 개수이다.
또한, 수학식 5를 참고하면, S는 클라이언트(100)의 버퍼의 크기, A는 가상 네트워크 연결들을 이용하여, 클라이언트(100)의 버퍼에 세그먼트를 모두 전송하는데 필요한 단위 시간에서 1 단위 시간을 감소시킨 값이다. 여기에서, 1 단위 시간은 기설정된 크기의 세그먼트를 네트워크 연결을 통해 서버(200)에서 클라이언트(100)에 전송하는데 걸리는 시간이다. 또한, R은 A단위 시간이 경과한 후에, 버퍼링 모드에서 재생 모드로 전환하기 위해, 클라이언트(100)가 수신해야 하는 잔여 세그먼트의 개수이다.
한편, 수학식 6을 참고하면, D는 동일한 단위 시간 안에 R개의 잔여 세그먼트들을 모두 수신하기 위해, 각각의 잔여 세그먼트에 할당되는 가상 네트워크 연결의 개수이다. 또한, 는 동일한 단위 시간 안에 R 개의 잔여 세그먼트들을 모두 다운받기 위해, i번째 네트워크 연결에 할당되는 서브 세그먼트의 크기를 나타낸다.
단계 640에서, 클라이언트(100)는 생성된 스케쥴링 정보를 서버(200)에 전송한다. 일 실시예에 따른 클라이언트(100)는 스케쥴링 정보를 생성함으로써 세그먼트들을 수신하는 시간을 단축하는 효과가 있다고 판단되는 경우, 생성된 스케쥴링 정보를 서버(200)에 전송할 수 있다. 단계 640은 전술한 도 3의 단계 350에 대응될 수 있다.
단계 650에서, 클라이언트(100)는 전송된 스케쥴링 정보에 기초하여 미디어 컨텐츠를 수신한다.
서버(200)는 클라이언트(100)로부터 수신한 스케쥴링 정보에 기초하여, 잔여 세그먼트들의 크기를 변경함으로써 서브 세그먼트들을 생성할 수 있다. 여기에서, 스케쥴링 정보에는 복수의 네트워크 연결들 각각에서 R개의 세그먼트를 수신하기 위해 세그먼트 별로 할당되는 네트워크 연결의 수에 대한 정보가 포함될 수 있다. 서버(200)는 기설정된 크기를 갖는 세그먼트를 할당되는 네트워크 연결의 수로 나누어 서브 세그먼트들을 생성할 수 있다.
한편, 클라이언트(100)는 스케쥴링 정보에 기초하여, 서버(200)에서 기설정된 크기의 세그먼트들의 크기를 변경한 결과 생성되는 서브 세그먼트들을 수신할 수 있다.
도 7은 일 실시예에 따른 미디어 컨텐츠의 수신을 스케쥴링 하는 클라이언트(100)의 블록도이다. 도 7을 참고하면, 미디어 컨텐츠의 수신을 스케쥴링하는 클라이언트(100)는 제어부(110), 스케쥴러(120) 및 통신부(130)를 포함할 수 있다.
도 7에 도시된 미디어 컨텐츠의 수신을 스케쥴링 하는 클라이언트(100)에는 본 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 7에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
제어부(110)는, 통상적으로 미디어 컨텐츠의 수신을 스케쥴링하는 클라이언트(100)의 전반적인 동작을 제어한다. 예를 들어, 제어부(110)는, 메모리(미도시)에 저장된 프로그램들을 실행함으로써, 스케쥴러(120) 및 통신부(130) 등을 전반적으로 제어할 수 있다.
제어부(110)는 서버(200)와 클라이언트(100)간의 미디어 컨텐츠를 수신 가능한 복수의 네트워크 연결들(50)을 결정한다. 제어부(110)는 클라이언트(100)와 서버(200)간에 설정된 네트워크의 상황을 모니터링 하여, 클라이언트(100)와 서버(200)를 연결하는 복수의 네트워크 연결들(50)을 결정할 수 있다. 제어부(110)는 결정된 복수의 네트워크 연결들(50)의 개수 정보를 획득할 수 있다.
제어부(110)는 스케쥴러(120)에서 생성된 스케쥴링 정보에 따른 효과를 예측할 수도 있다. 제어부(110)는 세그먼트들이 일부 네트워크 연결을 통해 수신되는 제 1 수신 시간과 세그먼트들이 생성된 스케쥴링 정보에 기초하여 복수의 네트워크 연결들(50)을 통해 수신되는 제 2 수신 시간의 차이가 임계값을 초과하는지 여부를 판단하여, 스케쥴링 정보에 따른 효과를 예측할 수 있다. 예를 들어, 제어부(110)는 제 1 수신 시간과 제 2 수신 시간의 차이가 기설정된 임계값을 초과하는 경우, 스케쥴링 정보를 생성함으로써 세그먼트들을 수신하는 시간을 단축하는 효과가 있다고 판단할 수 있다.
스케쥴러(120)는 클라이언트(100)의 버퍼의 크기 단위로 수신되는 세그먼트들이 결정된 복수의 네트워크 연결들(50) 중 일부 네트워크 연결을 통해 수신되는 버퍼링 타이밍을 예측한다.
또한, 스케쥴러(120)는 예측된 버퍼링 타이밍에서, 일부 네트워크 연결에 할당되는 잔여 세그먼트들을 복수의 네트워크 연결들 각각에 할당하는 스케쥴링 정보를 생성한다. 스케쥴러(120)는 복수의 네트워크 연결들(50)의 개수 및 클라이언트(100)의 버퍼의 크기에 기초하여, 일부 네트워크 연결에 할당되는 세그먼트들을 복수의 네트워크 연결들 각각에 할당하기 위해 하나의 잔여 세그먼트에 할당되는 네트워크 연결의 개수를 결정할 수 있다.
한편, 스케쥴러(120)는 기저장된 룩업테이블에 기초하여, 별도의 연산 과정 없이 복수의 네트워크 연결들(50)의 개수 및 클라이언트(100)의 버퍼의 크기에 대응되는 스케쥴링 정보를 추출할 수도 있다.
다른 실시예에 따르면, 기저장된 룩업테이블에는 복수의 네트워크 연결들(50)의 개수 및 클라이언트(100)의 버퍼의 크기에 대응되는 스케쥴링 효과에 대한 정보가 포함될 수 있다. 일 실시예에 따른 제어부(110)는 스케쥴링 효과가 존재하는지 여부를 확인하기 위한 연산을 수행할 필요 없이 룩업테이블에서, 버퍼의 크기 및 복수의 네트워크 연결들(50)의 개수에 대응되는 스케쥴링 효과 정보를 추출하여, 스케쥴링의 효과가 존재하는지 여부를 판단할 수 있다.
통신부(130)는 서버(200)에 생성된 스케쥴링 정보를 전송한다. 일 실시예에 따른 서버(200)는 클라이언트(100)로부터 수신한 스케쥴링 정보에 기초하여, 기설정된 잔여 세그먼트들의 크기를 변경한다. 서버(200)에서 스케쥴링 정보에 기초하여, 세그먼트들의 크기를 변경한 결과 생성되는 미디어 컨텐츠의 서브 세그먼트들은 복수의 네트워크 연결들 각각에 할당될 수 있다. 통신부(130)는 복수의 네트워크 연결들 각각에 할당된 서브 세그먼트들을 수신할 수 있다.
도 8은 다른 실시예에 따른 서버(200)에서 미디어 컨텐츠의 송신을 스케쥴링 하는 방법을 설명하기 위한 흐름도이다.
단계 810에서, 서버(200)는 클라이언트(100)와 서버(200)간의 미디어 컨텐츠를 수신 가능한 복수의 네트워크 연결들(50)을 결정한다. 서버(200)는 클라이언트(100)와 서버(200)간에 설정된 네트워크의 상황을 모니터링 하여, 클라이언트(100)와 서버(200)를 연결하는 복수의 네트워크 연결들(50)을 결정할 수 있다. 또한, 서버(200)는 결정된 복수의 네트워크 연결들(50)의 개수 정보를 획득할 수 있다.
단계 820에서, 서버(200)는 클라이언트(100)의 버퍼의 크기 단위로 전송되는 세그먼트들이 결정된 복수의 네트워크 연결들(50) 중 일부 네트워크 연결을 통해 전송되는 버퍼링 타이밍을 예측한다. 일 실시예에 따른 서버(200)는 클라이언트(100)의 버퍼의 크기 정보를 획득할 수 있다. 서버(200)에서 스트리밍을 통해 클라이언트(100)에 세그먼트들을 전송하는 경우, 서버(200)는 클라이언트(100)의 버퍼 크기 만큼의 세그먼트들을 전송할 수 있다. 서버(200)는 획득한 클라이언트(100)의 버퍼의 크기 정보를 통해, 클라이언트(100)에 전송하는 세그먼트들의 개수를 결정할 수 있다.
서버(200)는 결정된 복수의 네트워크 연결들(50)의 개수 정보 및 전송되는 세그먼트들의 크기 정보에 기초하여, 복수의 네트워크 연결들(50) 중 일부 네트워크 연결을 통해 세그먼트들이 전송되는지 여부를 판단할 수 있다. 서버(200)가 복수의 네트워크 연결들(50) 중 일부 네트워크 연결만을 통해 세그먼트들이 전송되는지 판단하는 구체적인 방법은 도 4를 참고하여, 전술한 수학식 1 및 수학식 2와 동일하다.
단계 830에서, 서버(200)는 예측된 버퍼링 타이밍에서, 일부 네트워크 연결에 할당되는 세그먼트들이 복수의 네트워크 연결들(50) 각각에 할당되도록 스케쥴링 한다. 서버(200)는 전술한 수학식 1에 기초하여, 버퍼의 크기 정보와 복수의 네트워크 연결들(50)의 개수 정보를 기초로, 잔여 세그먼트들의 개수(R)를 획득할 수 있다. 서버(200)는 전술한 수학식 2에 기초하여, 잔여 세그먼트들 각각에 할당되는 네트워크 연결들의 개수를 산출할 수 있다.
서버(200)는 산출된 개수의 네트워크 연결들 각각에 하나의 잔여 세그먼트가 할당될 수 있도록 잔여 세그먼트의 크기를 변경할 수 있다. 예를 들어, 하나의 잔여 세그먼트에 산출된 개수의 네트워크 연결들이 2개인 경우, 서버(200)는 잔여 세그먼트의 절반의 크기를 갖는 서브 세그먼트를 생성할 수 있다.
일 실시예에 따른 서버(200)는 잔여 세그먼트를 분할한 결과 생성되는 복수의 서브 세그먼트들을 복수의 네트워크 연결들(50) 각각에 할당할 수 있다. 서버(200)는 잔여 세그먼트들을 분할하여, 복수의 네트워크 연결들(50) 각각에 할당함으로써, 미디어 컨텐츠를 클라이언트(100)에 전송하는데 소요되는 시간을 단축할 수 있다.
도 9는 일 실시예에 따른 서버(200)가 룩업테이블을 이용하여, 미디어 컨텐츠의 전송을 스케쥴링하는 방법을 설명하기 위한 도면이다.
서버(200)는 복수의 네트워크 연결들(50)의 개수 및 클라이언트(100)의 버퍼의 크기와 복수의 네트워크 연결들(50) 각각에 할당되는 세그먼트들의 크기와의 관계가 정의되어 있는 룩업테이블로부터 스케쥴링 정보를 생성할 수 있다.
예를 들어, 서버(200)는 네트워크 상태를 모니터링하여, 클라이언트(100)와의 복수의 네트워크 연결들(50)의 개수 N을 확인하고, 클라이언트(100)의 버퍼의 크기 S에 대한 정보를 획득할 수 있다. 서버(200)는 룩업테이블로부터 복수의 네트워크 연결들(50)이 N이고, 버퍼의 크기가 S일 때, 복수의 네트워크 연결들(50) 각각에 세그먼트들을 할당하기 위한 세그먼트의 크기 정보를 추출할 수 있다. 서버(200)는 룩업테이블로부터 세그먼트의 크기 정보를 추출함으로써, 스케쥴링 정보를 생성하는데 소요되는 시간을 단축할 수 있다.
다른 실시예에 따르면, 룩업테이블에는 스케쥴링 효과에 대한 정보도 포함될 수 있다. 서버(200)는 클라이언트(100)에 세그먼트들을 스케쥴링하여 전송하는 경우, 전송 시간이 단축되는지 여부를 판단할 수 있다. 일 실시예에 따른 서버(200)는 스케쥴링으로 인한 효과가 존재하지 않는다고 판단하는 경우에는 세그먼트들을 스케쥴링 하지 않고, 클라이언트(100)에 전송할 수 있다. 룩업테이블에 복수의 네트워크 연결들(50)이 N이고, 버퍼의 크기가 S일 때, 스케쥴링 효과가 존재하는지 여부에 대한 정보가 포함될 수 있다. 이러한 경우, 서버(200)는 별도의 연산과정 없이 룩업테이블로부터 추출된 스케쥴링 효과가 존재하는지 여부에 대한 정보에 기초하여, 세그먼트들을 스케쥴링하여, 클라이언트(100)에 전송할 것인지 여부를 결정할 수 있다.
한편, 서버(200)가 룩업테이블을 이용하지 않고 스케쥴링 효과가 존재하는지 여부를 판단하는 방법에 대해서는 도 10을 참고하여, 다음에서 구체적으로 설명하도록 한다.
도 10은 일 실시예에 따른 서버(200)가 스케쥴링 효과가 존재하는지 여부를 판단하고, 판단 결과에 기초하여 스케쥴링을 수행하는 방법을 설명하기 위한 흐름도이다.
단계 1010에서, 서버(200)는 클라이언트(100)와 서버(200)간의 미디어 컨텐츠를 수신 가능한 복수의 네트워크 연결들(50)을 결정한다. 서버(200)는 클라이언트(100)와 서버(200)간에 설정된 네트워크의 상황을 모니터링 하여, 결정된 복수의 네트워크 연결들(50)의 개수 정보를 획득할 수 있다. 단계 1010은 단계 810과 대응될 수 있다.
단계 1020에서, 서버(200)는 클라이언트(100)의 버퍼의 크기 단위로 전송되는 세그먼트들이 결정된 복수의 네트워크 연결들(50) 중 일부 네트워크 연결을 통해 전송되는 버퍼링 타이밍을 예측한다. 단계 1020은 단계 820과 대응될 수 있다.
단계 1030에서, 서버(200)는 예측된 버퍼링 타이밍에서 일부 네트워크 연결에 할당되는 잔여 세그먼트들을 복수의 네트워크 연결들 각각에 할당하는 스케쥴링 정보를 생성한다. 스케쥴링 정보에는 잔여 세그먼트들을 복수의 네트워크 연결들 각각에 할당하기 위해, 하나의 잔여 세그먼트에 할당되는 네트워크 연결들의 개수에 대한 정보가 포함될 수 있다. 하나의 잔여 세그먼트에 할당되는 네트워크 연결들의 개수에 대한 정보는 도 4에서 설명한 수학식 1 및 수학식 2와 복수의 네트워크 연결들(50)의 개수 및 클라이언트(100)의 버퍼의 크기 정보에 기초하여 산출될 수 있다.
단계 1040에서, 서버(200)는 세그먼트들이 일부 네트워크 연결을 통해 전송되는 제 1 전송 시간과 생성된 스케쥴링 정보에 기초하여 복수의 네트워크 연결들(50)을 통해 전송되는 제 2 전송 시간의 차이가 임계값을 초과하는지 여부를 판단한다.
서버(200)는 제 1 전송 시간과 제 2 전송 시간의 차이가 임계값을 초과하는 경우, 스케쥴링으로 인한 버퍼링 시간의 단축 효과가 있는 것으로 판단할 수 있다. 제 1 전송 시간과 제 2 전송 시간의 차이가 임계값을 초과하는지 여부는 전술한 수학식 3에 기초하여 결정될 수 있다.
단계 1050에서, 서버(200)는 분할된 세그먼트들을 복수의 네트워크 연결들(50) 각각에 할당한다. 서버(200)는 제 1 전송 시간과 제 2 전송 시간의 차이가 임계값을 초과하는 경우, 스케쥴링 정보에 포함된 하나의 잔여 세그먼트에 할당되는 네트워크 연결들의 개수 정보에 기초하여, 잔여 세그먼트들을 분할할 수 있다. 서버(200)는 분할된 세그먼트들을 복수의 네트워크 연결들(50) 각각에 할당하여 클라이언트(100)에 전송할 수 있다.
도 11은 일 실시예에 따라 미디어 컨텐츠의 전송을 스케쥴링하는 서버(200)의 블록도이다.
제어부(1010)는 클라이언트(100)와 서버(200)간의 미디어 컨텐츠를 수신 가능한 복수의 네트워크 연결들(50)을 결정한다. 제어부(1010)는 클라이언트(100)와 서버(200)간에 설정된 네트워크의 상황을 모니터링 하여, 클라이언트(100)와 서버(200)를 연결하는 복수의 네트워크 연결들(50)을 결정할 수 있다. 또한, 제어부(1010)는 결정된 복수의 네트워크 연결들(50)의 개수 정보를 획득할 수 있다.
스케쥴러(1020)는 클라이언트(100)의 버퍼의 크기 단위로 전송되는 세그먼트들이 결정된 복수의 네트워크 연결들(50) 중 일부 네트워크 연결을 통해 전송되는 버퍼링 타이밍을 예측한다. 일 실시예에 따른 스케쥴러(1020)는 클라이언트(100)의 버퍼의 크기 정보를 획득할 수 있다. 서버(200)에서 스트리밍을 통해 클라이언트(100)에 세그먼트들을 전송하는 경우, 서버(200)는 클라이언트(100)의 버퍼 크기만큼의 세그먼트들을 전송할 수 있다. 스케쥴러(1020)는 획득한 클라이언트(100)의 버퍼의 크기 정보를 통해, 클라이언트(100)에 전송하는 세그먼트들의 개수를 결정할 수 있다.
스케쥴러(1020)는 결정된 복수의 네트워크 연결들(50)의 개수 정보 및 전송되는 세그먼트들의 크기 정보에 기초하여, 복수의 네트워크 연결들(50) 중 일부 네트워크 연결을 통해 세그먼트들이 전송되는지 여부를 판단할 수 있다.
스케쥴러(1020)는 예측된 버퍼링 타이밍에서, 일부 네트워크 연결에 할당되는 잔여 세그먼트들이 복수의 네트워크 연결들(50) 각각에 할당되도록 스케쥴링 한다. 스케쥴러(1020)는 전술한 수학식 1에 기초하여, 버퍼의 크기 정보와 복수의 네트워크 연결들(50)의 개수 정보를 기초로, 잔여 세그먼트들의 개수(R)를 획득할 수 있다.
스케쥴러(1020)는 산출된 개수의 네트워크 연결들 각각에 하나의 잔여 세그먼트가 할당될 수 있도록 잔여 세그먼트의 크기를 변경할 수 있다. 예를 들어, 하나의 잔여 세그먼트에 산출된 개수의 네트워크 연결들이 2개인 경우, 스케쥴러(1020)는 잔여 세그먼트가 절반의 크기를 갖도록 서브 세그먼트로 분할할 수 있다.
또한 스케쥴러(1020)는 잔여 세그먼트를 분할한 결과 생성되는 복수의 서브 세그먼트들을 복수의 네트워크 연결들(50) 각각에 할당할 수 있다.
도 12는 다른 실시예에 따른, 미디어 컨텐츠의 송수신을 스케쥴링 하는 시스템(20)을 설명하기 위한 개념도이다. 도 12를 참고하면, 미디어 컨텐츠의 송수신을 스케쥴링하는 시스템(20, 이하 스케쥴링 시스템)은 클라이언트 디바이스(100), 제 1 서버(도 1의 서버와 대응, 200) 및 제 2 서버(1200)를 포함할 수 있다.
도 12에 도시된 스케쥴링 시스템(20)에는 본 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 12에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
일 실시예에 따르면, 클라이언트(100)는 제 1 서버(200) 및 제 2 서버(1200)와 데이터를 송수신한다. 예를 들어, 클라이언트(100)는 서버(200)와 미디어 컨텐츠를 송수신할 수 있다. 또한 클라이언트(100)는 제 2 서버(1200)에 미디어 컨텐츠의 송수신을 스케쥴링 하기 위해 필요한 정보를 전송할 수 있다. 예를 들어, 클라이언트(100)는 제 2 서버(1200)에 클라이언트(100)의 버퍼의 크기에 대한 정보를 전송할 수 있다.
한편, 클라이언트(100)는 서버(200)로부터 복수의 네트워크 연결들(50)을 통해 스트리밍 방식으로 미디어 컨텐츠를 수신할 수 있다. 클라이언트(100)는 제 1 서버(200)로부터 스트리밍 방식으로 미디어 컨텐츠를 수신하기 위해, 미디어 컨텐츠를 저장 가능한 버퍼를 포함한다.
클라이언트(100)는 다양한 형태로 구현될 수 있다. 예를 들어, 본 명세서에서 기술되는 클라이언트(100)는 휴대폰, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 태블릿 PC 등이 있을 수 있으나, 이에 한정되는 것은 아니다.
일 실시예에 따른 제 1 서버(200)는 클라이언트(100)에 미디어 컨텐츠를 전송한다. 제 1 서버(200)는 제 1 서버(200)의 내부 또는 외부에 저장되어 있는 미디어 컨텐츠를 제 1 서버(200)와 클라이언트(100)간의 복수개의 네트워크 연결들(50)을 통해, 클라이언트(100)에 전송할 수 있다.
또한, 제 1 서버(200)는 제 2 서버(1200)와 통신할 수 있다. 제 1 서버(200)는 제 2 서버(1200)로부터 수신한 스케쥴링 정보에 기초하여, 미디어 컨텐츠의 전송 단위인 세그먼트의 크기를 결정할 수 있다. 이에 대해서는 도 13을 참고하여, 구체적으로 후술하도록 한다.
일 실시예에 따른 제 2 서버(1200)는 클라이언트(100) 및 제 1 서버(200)와 각각 통신할 수 있다. 예를 들어, 제 2 서버(1200)는 클라이언트(100)로부터 클라이언트(100)의 버퍼의 크기 정보를 획득할 수 있다. 또한, 제 2 서버(1200)는 클라이언트(100) 또는 제 1 서버(200)로부터 클라이언트(100)와 제 1 서버(200)간에 미디어 컨텐츠를 송수신 가능한 복수의 네트워크 연결들(50)의 개수에 대한 정보를 획득할 수 있다.
제 2 서버(1200)는 획득한 클라이언트(100)의 버퍼의 크기 정보 및 복수의 네트워크 연결들(50)의 개수 정보에 기초하여, 제 1 서버(200)로부터 클라이언트(100)에 전송되는 세그먼트들이 복수의 네트워크 연결들(50) 각각에 할당되도록 스케쥴링 정보를 생성할 수 있다. 제 2 서버(1200)가 스케쥴링 정보를 생성하는 방법에 대해서는 도 13을 참고하여 구체적으로 설명하도록 한다.
한편, 제 2 서버(1200)는 생성된 스케쥴링 정보를 제 1 서버(200)에 전송할 수 있다. 제 1 서버(200)는 제 2 서버(1200)로부터 수신한 스케쥴링 정보에 기초하여 세그먼트들을 복수의 네트워크 연결들(50) 각각에 할당할 수 있다.
도 13은 일 실시예에 따른 제 2 서버(1200)가 미디어 컨텐츠를 수신하기 위한 스케쥴링 정보를 생성하는 방법을 설명하기 위한 흐름도이다.
단계 1310에서, 제 2 서버(1200)는 클라이언트(100)와 제 1 서버(200)간의 미디어 컨텐츠를 수신 가능한 복수의 네트워크 연결들(50)을 결정한다. 제 2 서버(1200)는 클라이언트(100)와 제 1 서버(200)간에 설정된 네트워크의 상황을 모니터링 할 수 있다. 제 2 서버(1200)는 모니터링 결과, 클라이언트(100)와 서버(200)를 연결하는 복수의 네트워크 연결들(50)의 개수 정보를 획득할 수 있다.
단계 1320에서, 제 2 서버(1200)는 클라이언트(100)의 버퍼의 크기 단위로 전송되는 세그먼트들이 결정된 복수의 네트워크 연결들(50) 중 일부 네트워크 연결을 통해 전송되는 버퍼링 타이밍을 예측한다. 일 실시예에 따른 제 2 서버(1200)는 획득한 클라이언트(100)의 버퍼의 크기 정보에 기초하여 제 1 서버(200)로부터 클라이언트(100)에 전송되는 세그먼트들의 크기에 대한 정보를 획득할 수 있다. 예를 들어, 스트리밍을 통해, 제 1 서버(200)에서 클라이언트(100)로 데이터를 전송하는 경우, 제 1 서버(200)는 버퍼 크기만큼의 세그먼트들을 전송할 수 있다. 따라서, 클라이언트(100)의 버퍼의 크기만큼의 세그먼트들이 제 1 서버(200)로부터 클라이언트(100)로 전송될 수 있다.
제 2 서버(1200)는 결정된 복수의 네트워크 연결들(50)의 개수 정보 및 전송되는 세그먼트들의 크기 정보에 기초하여, 복수의 네트워크 연결들(50) 중 일부 네트워크 연결을 통해 세그먼트들이 전송되는지 여부를 판단할 수 있다. 제 1 서버(200)가 복수의 네트워크 연결들(50) 중 일부 네트워크 연결만을 통해 세그먼트들이 전송되는지 판단하는 구체적인 방법은 도 4를 참고하여, 전술한 수학식 1 및 수학식 2와 동일하다.
단계 1330에서, 제 2 서버(1200)는 예측된 버퍼링 타이밍에서, 일부 네트워크 연결에 할당되는 세그먼트들을 복수의 네트워크 연결들(50) 각각에 할당하는 스케쥴링 정보를 생성한다. 제 2 서버(1200)는 전술한 수학식 1에 기초하여, 버퍼의 크기 정보와 복수의 네트워크 연결들(50)의 개수 정보를 기초로, 잔여 세그먼트들의 개수(R)를 획득할 수 있다.
제 2 서버(1200)는 산출된 개수의 네트워크 연결들 각각에 하나의 잔여 세그먼트가 할당될 수 있도록 잔여 세그먼트의 크기를 변경하기 위한 스케쥴링 정보를 생성할 수 있다. 단계 1330에서, 제 2 서버(1200)가 스케쥴링 정보를 생성하는 방법은 도 2의 단계 330에서, 클라이언트(100)가 스케쥴링 정보를 생성하는 방법과 대응될 수 있다.
단계 1340에서, 제 2 서버(1200)는 서버(200)에 생성된 스케쥴링 정보를 전송한다. 서버(200)는 제 2 서버(1200)로부터 수신한 스케쥴링 정보에 기초하여, 세그먼트들이 복수의 네트워크 연결들(50) 각각에 할당되도록 세그먼트들의 크기를 변경하여 서브 세그먼트들을 생성할 수 있다. 예를 들어, 세그먼트에 산출된 개수의 네트워크 연결들이 2개인 경우, 제 2 서버(1200)는 잔여 세그먼트를 절반의 크기를 갖는 서브 세그먼트로 분할할 수 있다.
일 실시예에 따른 제 1 서버(200)는 잔여 세그먼트를 분할한 결과 생성되는 복수의 서브 세그먼트들을 복수의 네트워크 연결들(50) 각각에 할당할 수 있다. 제 1 서버(200)는 잔여 세그먼트들을 분할하여, 복수의 네트워크 연결들(50) 각각에 할당함으로써, 미디어 컨텐츠를 클라이언트(100)에 전송하는데 소요되는 시간을 단축할 수 있다.
도 14는 일 실시예에 따른 제 2 서버(1200)가 룩업테이블을 이용하여, 미디어 컨텐츠의 송수신을 스케쥴링하는 방법을 설명하기 위한 도면이다.
제 2 서버(1200)는 복수의 네트워크 연결들(50)의 개수 및 클라이언트(100)의 버퍼의 크기와 복수의 네트워크 연결들(50) 각각에 할당되는 세그먼트들의 크기와의 관계가 정의되어 있는 룩업테이블로부터 스케쥴링 정보를 생성할 수 있다.
예를 들어, 제 2 서버(1200)는 네트워크 상태를 모니터링하여, 클라이언트(100)와 제 1 서버(200)간의 미디어 컨텐츠를 송수신 가능한 복수의 네트워크 연결들(50)의 개수 N을 확인하고, 클라이언트(100)의 버퍼의 크기 S에 대한 정보를 획득할 수 있다. 제 2 서버(1200)는 룩업테이블로부터 복수의 네트워크 연결들(50)이 N이고, 버퍼의 크기가 S일 때, 복수의 네트워크 연결들(50) 각각에 세그먼트들을 할당하기 위한 세그먼트의 크기 정보를 추출할 수 있다. 제 2 서버(1200)는 룩업테이블로부터 세그먼트의 크기 정보를 추출함으로써, 스케쥴링 정보를 생성하는데 소요되는 시간을 단축할 수 있다.
다른 실시예에 따르면, 룩업테이블에는 스케쥴링 효과에 대한 정보도 포함될 수 있다. 제 2 서버(1200)는 클라이언트(100)에 세그먼트들을 스케쥴링하여 전송하는 경우, 전송 시간이 단축되는지 여부를 판단할 수 있다. 일 실시예에 따른 제 2 서버(1200)는 스케쥴링으로 인한 효과가 존재하지 않는다고 판단하는 경우에는 세그먼트들을 스케쥴링 하지 않고, 클라이언트(100)에 전송할 수 있다. 룩업테이블에 복수의 네트워크 연결들(50)이 N이고, 버퍼의 크기가 S일 때, 스케쥴링 효과가 존재하는지 여부에 대한 정보가 포함될 수 있다. 이러한 경우, 제 2 서버(1200)는 별도의 연산과정 없이 룩업테이블로부터 추출된 스케쥴링 효과가 존재하는지 여부에 대한 정보에 기초하여, 스케쥴링 정보를 생성할 수 있다.
한편, 제 2 서버(1200)가 룩업테이블을 이용하지 않고 스케쥴링 효과가 존재하는지 여부를 판단하는 방법에 대해서는 도 15을 참고하여, 다음에서 구체적으로 설명하도록 한다.
도 15는 일 실시예에 따른 제 2 서버(1200)가 미디어 컨텐츠의 송수신을 스케쥴링 하는 경우, 스케쥴링 효과가 존재하는지 여부를 판단하는 방법을 설명하기 위한 흐름도이다.
단계 1510에서, 제 2 서버(1200)는 클라이언트(100)와 서버(200)간의 미디어 컨텐츠를 수신 가능한 복수의 네트워크 연결들(50)을 결정한다. 제 2 서버(1200)는 클라이언트(100)와 제 1 서버(200)간에 설정된 네트워크의 상황을 모니터링 하여, 결정된 복수의 네트워크 연결들(50)의 개수 정보를 획득할 수 있다. 단계 1510은 단계 1310과 대응될 수 있다.
단계 1520에서, 제 2 서버(1200)는 클라이언트(100)의 버퍼의 크기 단위로 전송되는 세그먼트들이 결정된 복수의 네트워크 연결들(50) 중 일부 네트워크 연결을 통해 전송되는 버퍼링 타이밍을 예측한다. 단계 1020은 단계 820과 대응될 수 있다.
단계 1530에서, 제 2 서버(1200)는 예측된 버퍼링 타이밍에서 일부 네트워크 연결에 할당되는 잔여 세그먼트들을 복수의 네트워크 연결들 각각에 할당하는 스케쥴링 정보를 생성한다. 스케쥴링 정보에는 잔여 세그먼트들을 복수의 네트워크 연결들 각각에 할당하기 위해, 하나의 잔여 세그먼트에 할당되는 네트워크 연결들의 개수에 대한 정보가 포함될 수 있다. 하나의 잔여 세그먼트에 할당되는 네트워크 연결들의 개수에 대한 정보는 도 4에서 설명한 수학식 1 및 수학식 2와 복수의 네트워크 연결들(50)의 개수 및 클라이언트(100)의 버퍼의 크기 정보에 기초하여 산출될 수 있다.
단계 1540에서, 제 2 서버(1200)는 세그먼트들이 일부 네트워크 연결을 통해 전송되는 제 1 전송 시간과 생성된 스케쥴링 정보에 기초하여 복수의 네트워크 연결들(50)을 통해 전송되는 제 2 전송 시간의 차이가 임계값을 초과하는지 여부를 판단한다.
제 2 서버(1200)는 제 1 전송 시간과 제 2 전송 시간의 차이가 임계값을 초과하는 경우, 스케쥴링으로 인한 버퍼링 시간의 단축 효과가 있는 것으로 판단할 수 있다. 제 1 전송 시간과 제 2 전송 시간의 차이가 임계값을 초과하는지 여부는 전술한 수학식 3에 기초하여 결정될 수 있다.
단계 1550에서, 제 2 서버(1200)는 제 1 서버(200)에 생성된 스케쥴링 정보를 전송한다. 제 1 서버(1200)는 제 1 전송 시간과 제 2 전송 시간의 차이가 임계값을 초과하는 경우, 스케쥴링 정보를 제 1 서버(200)에 전송할 수 있다. 제 1 서버(200)는 분할된 세그먼트들을 복수의 네트워크 연결들(50) 각각에 할당하여 클라이언트(100)에 전송할 수 있다.
도 16은 일 실시예에 따른 미디어 컨텐츠의 송수신을 스케쥴링 하는 제 2 서버(1200)의 블록도이다. 도 16을 참고하면, 미디어 컨텐츠의 수신을 스케쥴링하는 제 2 서버(1200)는 제어부(1210), 스케쥴러(1230) 및 통신부(1230)를 포함할 수 있다.
도 16에 도시된 미디어 컨텐츠의 송수신을 스케쥴링 하는 제 2 서버(1200)에는 본 실시예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 16에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
제어부(1210)는, 통상적으로 미디어 컨텐츠의 수신을 스케쥴링하는 클라이언트(100)의 전반적인 동작을 제어한다. 예를 들어, 제어부(1210)는, 메모리(미도시)에 저장된 프로그램들을 실행함으로써, 스케쥴러(1220) 및 통신부(1230) 등을 전반적으로 제어할 수 있다.
제어부(1210)는 제 1 서버(200)와 클라이언트(100)간의 미디어 컨텐츠를 수신 가능한 복수의 네트워크 연결들(50)을 결정한다. 제어부(1210)는 클라이언트(100)와 서버(200)간에 설정된 네트워크의 상황을 모니터링 하여, 클라이언트(100)와 서버(200)를 연결하는 복수의 네트워크 연결들(50)을 결정할 수 있다. 제어부(1210)는 결정된 복수의 네트워크 연결들(50)의 개수 정보를 획득할 수 있다.
제어부(1210)는 스케쥴러(1220)에서 생성된 스케쥴링 정보에 따른 효과를 예측할 수도 있다. 제어부(1210)는 미디어 컨텐츠의 세그먼트들이 일부 네트워크 연결을 통해 수신되는 제 1 수신 시간과 미디어 컨텐츠의 세그먼트들이 생성된 스케쥴링 정보에 기초하여 복수의 네트워크 연결들(50)을 통해 수신되는 제 2 수신 시간의 차이가 임계값을 초과하는지 여부를 판단하여, 스케쥴링 정보에 따른 효과를 예측할 수 있다. 예를 들어, 제어부(1210)는 제 1 수신 시간과 제 2 수신 시간의 차이가 기설정된 임계값을 초과하는 경우, 스케쥴링 정보를 생성함으로써 미디어 컨텐츠의 세그먼트들을 수신하는 시간을 단축하는 효과가 있다고 판단할 수 있다.
스케쥴러(1220)는 클라이언트(100)의 버퍼의 크기 단위로 수신되는 미디어 컨텐츠의 세그먼트들이 결정된 복수의 네트워크 연결들(50) 중 일부 네트워크 연결을 통해 수신되는 버퍼링 타이밍을 예측한다.
또한, 스케쥴러(2120)는 예측된 버퍼링 타이밍에서, 일부 네트워크 연결에 할당되는 미디어 컨텐츠의 세그먼트들을 복수의 네트워크 연결들 각각에 할당하는 스케쥴링 정보를 생성한다. 스케쥴러(1220)는 복수의 네트워크 연결들(50)의 개수 및 클라이언트(100)의 버퍼의 크기에 기초하여, 일부 네트워크 연결에 할당되는 미디어 컨텐츠의 세그먼트들을 복수의 네트워크 연결들 각각에 할당하기 위해 하나의 미디어 컨텐츠의 세그먼트에 할당되는 네트워크 연결의 개수를 결정할 수 있다.
한편, 스케쥴러(1220)는 기저장된 룩업테이블에 기초하여, 별도의 연산 과정 없이 복수의 네트워크 연결들(50)의 개수 및 클라이언트(100)의 버퍼의 크기에 대응되는 스케쥴링 정보를 추출할 수도 있다.
통신부(1230)는 제 1 서버(200)에 생성된 스케쥴링 정보를 전송한다. 일 실시예에 따른 제 1 서버(200)는 통신부(1230)로부터 수신한 스케쥴링 정보에 기초하여, 기설정된 미디어 컨텐츠의 세그먼트들의 크기를 변경한다. 제 1 서버(200)는 세그먼트들의 크기를 변경한 결과 생성되는 서브 세그먼트들을 복수의 네트워크 연결들(50) 각각을 통해 클라이언트(100)에 전송할 수 있다.
본 발명에 따른 장치는 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 저장부(permanent storage), 외부 장치와 통신하는 통신 포트, 터치 패널, 키(key), 버튼 등과 같은 사용자 인터페이스 장치 등을 포함할 수 있다. 소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 상기 프로세서상에서 실행 가능한 컴퓨터가 읽을 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체 상에 저장될 수 있다. 여기서 컴퓨터가 읽을 수 있는 기록 매체로 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다.
본 발명에서 인용하는 공개 문헌, 특허 출원, 특허 등을 포함하는 모든 문헌들은 각 인용 문헌이 개별적으로 및 구체적으로 병합하여 나타내는 것 또는 본 발명에서 전체적으로 병합하여 나타낸 것과 동일하게 본 발명에 병합될 수 있다.
본 발명의 이해를 위하여, 도면에 도시된 바람직한 실시 예들에서 참조 부호를 기재하였으며, 본 발명의 실시 예들을 설명하기 위하여 특정 용어들을 사용하였으나, 특정 용어에 의해 본 발명이 한정되는 것은 아니며, 본 발명은 당업자에 있어서 통상적으로 생각할 수 있는 모든 구성 요소들을 포함할 수 있다.
본 발명은 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 발명은 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 본 발명에의 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 발명은 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 발명은 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. "매커니즘", "요소", "수단", "구성"과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.
본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, "필수적인", "중요하게" 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.
본 발명의 명세서(특히 특허청구범위에서)에서 “상기”의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 본 발명에서 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 적용한 발명을 포함하는 것으로서(이에 반하는 기재가 없다면), 발명의 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 마지막으로, 본 발명에 따른 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 따라 본 발명이 한정되는 것은 아니다. 본 발명에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 본 발명을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 본 발명의 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.
Claims (15)
- 클라이언트와 서버간의 미디어 컨텐츠를 수신 가능한 복수의 네트워크 연결들을 결정하는 단계;상기 클라이언트의 버퍼의 크기 단위로 수신되는 상기 미디어 컨텐츠의 세그먼트들이 상기 결정된 복수의 네트워크 연결들 중 일부 네트워크 연결을 통해 수신되는 버퍼링 타이밍을 예측하는 단계;상기 예측된 버퍼링 타이밍에서, 상기 일부 네트워크 연결에 할당되는 상기 미디어 컨텐츠의 세그먼트들을 상기 복수의 네트워크 연결들 각각에 할당하는 스케쥴링 정보를 생성하는 단계; 및상기 서버에 상기 생성된 스케쥴링 정보를 전송하는 단계를 포함하는 클라이언트가 미디어 컨텐츠의 수신을 스케쥴링 하는 방법.
- 제 1 항에 있어서, 상기 스케쥴링 정보를 생성하는 단계는,상기 미디어 컨텐츠의 세그먼트들이 상기 일부 네트워크 연결들을 통해 수신되는 제 1 수신 시간과 상기 미디어 컨텐츠의 세그먼트들이 상기 복수의 네트워크 연결들을 통해 수신되는 제 2 수신 시간을 비교하는 단계를 포함하고,상기 생성된 스케쥴링 정보를 전송하는 단계는,상기 제 1 수신 시간 및 상기 제 2 수신 시간을 비교한 결과에 기초하여, 상기 생성된 스케쥴링 정보를 전송하는 단계를 포함하는 클라이언트가 미디어 컨텐츠의 수신을 스케쥴링 하는 방법.
- 제 1항에 있어서,상기 전송된 스케쥴링 정보에 기초하여 상기 미디어 컨텐츠를 수신하는 단계를 더 포함하는 클라이언트가 미디어 컨텐츠의 수신을 스케쥴링 하는 방법.
- 제 3 항에 있어서, 상기 미디어 컨텐츠를 수신하는 단계는,상기 미디어 컨텐츠의 세그먼트들이 상기 서버에서 상기 생성된 스케쥴링 정보에 기초하여 분할된 결과 생성된 서브 세그먼트들을 수신하는 단계를 포함하는 클라이언트가 미디어 컨텐츠의 수신을 스케쥴링 하는 방법.
- 제 4항에 있어서, 상기 적어도 하나의 서브 세그먼트를 수신하는 단계는,상기 복수의 네트워크 연결들 각각의 데이터 전송 속도가 상이한 경우, 상기 복수의 네트워크 연결들 간의 데이터 전송 속도의 비율에 기초하여, 상기 복수의 네트워크 연결들 각각에 할당되는 서브 세그먼트의 개수를 결정하는 단계를 포함하는 클라이언트가 미디어 컨텐츠의 수신을 스케쥴링 하는 방법.
- 클라이언트와 서버간의 미디어 컨텐츠를 수신 가능한 복수의 네트워크 연결들을 결정하는 단계;상기 클라이언트의 버퍼의 크기 단위로 수신되는 상기 미디어 컨텐츠의 세그먼트들이 상기 결정된 복수의 네트워크 연결들 중 일부 네트워크 연결을 통해 수신되는 버퍼링 타이밍을 예측하는 단계;상기 예측된 버퍼링 타이밍에서, 상기 일부 네트워크 연결에 할당되는 상기 미디어 컨텐츠의 세그먼트들이 상기 복수의 네트워크 연결들 각각에 할당되도록 스케쥴링 하는 단계를 포함하는 서버가 미디어 컨텐츠의 송신을 스케쥴링 하는 방법.
- 제 6항에 있어서, 상기 스케쥴링 하는 단계는,상기 일부 네트워크 연결에 상기 미디어 컨텐츠의 세그먼트들이 할당되는 경우, 상기 미디어 컨텐츠의 세그먼트들의 크기를 상기 복수의 네트워크 연결들 각각에 할당 가능한 크기로 변경하는 단계를 포함하는 서버가 미디어 컨텐츠의 송신을 스케쥴링 하는 방법.
- 제 6 항에 있어서, 상기 스케쥴링 하는 단계는,상기 미디어 컨텐츠의 세그먼트들이 상기 일부 네트워크 연결들을 통해 수신되는 제 1 수신 시간과 상기 미디어 컨텐츠의 세그먼트들이 상기 복수의 네트워크 연결들을 통해 수신되는 제 2 수신 시간을 비교하는 단계; 및상기 제 1 수신 시간과 상기 제 2 수신 시간을 비교한 결과에 기초하여, 상기 미디어 컨텐츠의 세그먼트들이 상기 복수의 네트워크 연결들 각각에 할당되도록 스케쥴링 하는 단계를 포함하는 서버가 미디어 컨텐츠의 송신을 스케쥴링 하는 방법.
- 클라이언트와 제 1 서버간의 미디어 컨텐츠를 수신 가능한 복수의 네트워크 연결들을 결정하는 단계;상기 클라이언트의 버퍼의 크기 단위로 상기 클라이언트에 수신되는 상기 미디어 컨텐츠의 세그먼트들이 상기 결정된 복수의 네트워크 연결들 중 일부 네트워크 연결을 통해 수신되는 버퍼링 타이밍을 예측하는 단계;상기 예측된 버퍼링 타이밍에서, 상기 일부 네트워크 연결에 할당되는 상기 미디어 컨텐츠의 세그먼트들을 상기 복수의 네트워크 연결들 각각에 할당하는 스케쥴링 정보를 생성하는 단계; 및상기 제 1 서버에 상기 생성된 스케쥴링 정보를 전송하는 단계를 포함하는 제 2 서버가 미디어 컨텐츠의 송수신을 스케쥴링 하는 방법.
- 제 9 항에 있어서, 상기 스케쥴링 정보는,상기 미디어 컨텐츠의 세그먼트들을 상기 복수의 네트워크 연결들 각각에 할당 가능한 세그먼트의 크기 정보를 포함하는 제 2 서버가 미디어 컨텐츠의 송수신을 스케쥴링 하는 방법.
- 제 9 항에 있어서, 상기 스케쥴링 정보를 생성하는 단계는,상기 미디어 컨텐츠의 세그먼트들이 상기 일부 네트워크 연결들을 통해 수신되는 제 1 수신 시간과 상기 미디어 컨텐츠의 세그먼트들이 상기 복수의 네트워크 연결들을 통해 수신되는 제 2 수신 시간을 비교하는 단계를 포함하고,상기 생성된 스케쥴링 정보를 전송하는 단계는,상기 제 1 수신 시간 및 상기 제 2 수신 시간을 비교한 결과에 기초하여, 상기 생성된 스케쥴링 정보를 전송하는 단계를 포함하는 제 2 서버가 미디어 컨텐츠의 송수신을 스케쥴링 하는 방법.
- 클라이언트와 서버간의 미디어 컨텐츠를 수신 가능한 복수의 네트워크 연결들을 결정하는 제어부;상기 클라이언트의 버퍼의 크기 단위로 수신되는 상기 미디어 컨텐츠의 세그먼트들이 상기 확인된 복수의 네트워크 연결들 중 일부 네트워크 연결을 통해 수신되는 버퍼링 타이밍을 예측하고, 상기 예측된 버퍼링 타이밍에서, 상기 일부 네트워크 연결에 할당되는 상기 미디어 컨텐츠의 세그먼트들을 상기 복수의 네트워크 연결들 각각에 할당하는 스케쥴링 정보를 생성하는 스케쥴러; 및상기 생성된 스케쥴링 정보를 상기 서버에 전송하는 통신부를 포함하는 미디어 컨텐츠의 수신을 스케쥴링 하는 클라이언트.
- 클라이언트와 서버간의 미디어 컨텐츠를 수신 가능한 복수의 네트워크 연결들을 결정하는 제어부;상기 클라이언트의 버퍼의 크기 단위로 수신되는 상기 미디어 컨텐츠의 세그먼트들이 상기 결정된 복수의 네트워크 연결들 중 일부 네트워크 연결을 통해 수신되는 버퍼링 타이밍을 예측하고, 상기 예측된 버퍼링 타이밍에서, 상기 일부 네트워크 연결에 할당되는 상기 미디어 컨텐츠의 세그먼트들이 상기 복수의 네트워크 연결들 각각에 할당되도록 스케쥴링 하는 스케쥴러를 포함하는 미디어 컨텐츠의 송신을 스케쥴링 하는 서버.
- 클라이언트와 제 1 서버간의 미디어 컨텐츠를 수신 가능한 복수의 네트워크 연결들을 결정하는 제어부;상기 클라이언트의 버퍼의 크기 단위로 상기 클라이언트에 수신되는 상기 미디어 컨텐츠의 세그먼트들이 상기 결정된 복수의 네트워크 연결들 중 일부 네트워크 연결을 통해 수신되는 버퍼링 타이밍을 예측하고, 상기 예측된 버퍼링 타이밍에서 상기 일부 네트워크 연결에 할당되는 상기 미디어 컨텐츠의 세그먼트들을 상기 복수의 네트워크 연결들 각각에 할당하는 스케쥴링 정보를 생성하는 스케쥴러; 및상기 제 1 서버에 상기 생성된 스케쥴링 정보를 전송하는 통신부를 포함하는 미디어 컨텐츠의 송수신을 스케쥴링 하는 제 2 서버.
- 제 1항의 방법을 수행하는 프로그램이 기록된 컴퓨터 판독이 가능한 기록매체.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201580026989.6A CN106416273B (zh) | 2014-05-20 | 2015-05-19 | 对媒体内容的发送和接收进行调度的方法、设备和系统 |
EP15796789.4A EP3148201B1 (en) | 2014-05-20 | 2015-05-19 | Method, device, and system for scheduling transmission and reception of media contents |
US15/312,059 US10630744B2 (en) | 2014-05-20 | 2015-05-19 | Method, device, and system for scheduling transmission and reception of media contents |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140060486A KR102216125B1 (ko) | 2014-05-20 | 2014-05-20 | 미디어 컨텐츠의 송수신을 스케쥴링 하는 방법, 장치 및 시스템 |
KR10-2014-0060486 | 2014-05-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2015178669A1 true WO2015178669A1 (ko) | 2015-11-26 |
Family
ID=54554270
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2015/005016 WO2015178669A1 (ko) | 2014-05-20 | 2015-05-19 | 미디어 컨텐츠의 송수신을 스케쥴링 하는 방법, 장치 및 시스템 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10630744B2 (ko) |
EP (1) | EP3148201B1 (ko) |
KR (1) | KR102216125B1 (ko) |
CN (1) | CN106416273B (ko) |
WO (1) | WO2015178669A1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220130394A (ko) * | 2021-03-18 | 2022-09-27 | 삼성전자주식회사 | 복수의 미디어 스트림을 전송하는 전자 장치 및 그 방법 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100924309B1 (ko) * | 2009-06-04 | 2009-11-02 | 전자부품연구원 | 시간확장성과 버퍼상태판단을 통한 품질 적응적 멀티미디어 데이터 스트리밍 방법 및 시스템 |
KR20100059117A (ko) * | 2008-11-26 | 2010-06-04 | 에스케이텔레콤 주식회사 | 컨텐츠 분산형 스트리밍 시스템, 캐시서버 및 컨텐츠 스트리밍 방법 |
KR20100058786A (ko) * | 2008-11-25 | 2010-06-04 | 에스케이텔레콤 주식회사 | 컨텐츠 분산 저장형 멀티미디어 스트리밍 시스템 및 방법 |
KR20120011774A (ko) * | 2010-07-29 | 2012-02-08 | 한국전자통신연구원 | 전송 스케쥴링 방법 |
KR20130053230A (ko) * | 2011-11-15 | 2013-05-23 | 삼성전자주식회사 | 무선 통신 시스템에서 자원 할당 스케줄링 방법 및 장치 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7594250B2 (en) * | 1992-04-02 | 2009-09-22 | Debey Henry C | Method and system of program transmission optimization using a redundant transmission sequence |
US7716312B2 (en) * | 2002-11-13 | 2010-05-11 | Avid Technology, Inc. | Method and system for transferring large data files over parallel connections |
DE112005001581T5 (de) * | 2004-07-07 | 2007-05-24 | MeshNetworks, Inc., Maitland | System und Verfahren zum Auswählen von stabilen Routen in drahtlosen Netzwerken |
US7719967B2 (en) * | 2005-09-28 | 2010-05-18 | Netapp, Inc. | Cumulative TCP congestion control |
US7783773B2 (en) | 2006-07-24 | 2010-08-24 | Microsoft Corporation | Glitch-free media streaming |
EP2095255B1 (en) | 2006-11-30 | 2014-07-23 | Speedbit Ltd. | Accelerated multimedia file download and playback |
CN101622846B (zh) * | 2007-03-01 | 2013-02-27 | 艾利森电话股份有限公司 | 下载的多媒体文件的比特流组合 |
US8060653B2 (en) * | 2007-04-23 | 2011-11-15 | Ianywhere Solutions, Inc. | Background synchronization |
KR100971351B1 (ko) * | 2008-10-22 | 2010-07-20 | 성균관대학교산학협력단 | 씨에이알과 서브 채널을 이용한 근접 주문형 비디오 전송방법 |
US8386621B2 (en) * | 2010-03-12 | 2013-02-26 | Netflix, Inc. | Parallel streaming |
WO2011150644A1 (zh) * | 2010-12-17 | 2011-12-08 | 华为技术有限公司 | 一种启动阶段的流媒体数据获取、发送方法及装置 |
EP2477397A1 (en) * | 2011-01-12 | 2012-07-18 | Nxp B.V. | Handling the initialization for HTTP streaming of multimedia files via parallel TCP connections |
US8897753B2 (en) * | 2011-10-12 | 2014-11-25 | Motorola Mobility Llc | Method for retrieving content by a wireless communication device having first and second radio access interfaces, wireless communication device and communication system |
US20130311614A1 (en) * | 2012-05-21 | 2013-11-21 | Motorola Mobility, Inc. | Method for retrieving content and wireless communication device for performing same |
US9369513B2 (en) * | 2013-04-12 | 2016-06-14 | Futurewei Technologies, Inc. | Utility-maximization framework for dynamic adaptive video streaming over hypertext transfer protocol in multiuser-multiple input multiple output long-term evolution networks |
US20140317060A1 (en) * | 2013-04-18 | 2014-10-23 | Intronis, Inc. | Remote backup of large files |
-
2014
- 2014-05-20 KR KR1020140060486A patent/KR102216125B1/ko active IP Right Grant
-
2015
- 2015-05-19 WO PCT/KR2015/005016 patent/WO2015178669A1/ko active Application Filing
- 2015-05-19 EP EP15796789.4A patent/EP3148201B1/en active Active
- 2015-05-19 US US15/312,059 patent/US10630744B2/en active Active
- 2015-05-19 CN CN201580026989.6A patent/CN106416273B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100058786A (ko) * | 2008-11-25 | 2010-06-04 | 에스케이텔레콤 주식회사 | 컨텐츠 분산 저장형 멀티미디어 스트리밍 시스템 및 방법 |
KR20100059117A (ko) * | 2008-11-26 | 2010-06-04 | 에스케이텔레콤 주식회사 | 컨텐츠 분산형 스트리밍 시스템, 캐시서버 및 컨텐츠 스트리밍 방법 |
KR100924309B1 (ko) * | 2009-06-04 | 2009-11-02 | 전자부품연구원 | 시간확장성과 버퍼상태판단을 통한 품질 적응적 멀티미디어 데이터 스트리밍 방법 및 시스템 |
KR20120011774A (ko) * | 2010-07-29 | 2012-02-08 | 한국전자통신연구원 | 전송 스케쥴링 방법 |
KR20130053230A (ko) * | 2011-11-15 | 2013-05-23 | 삼성전자주식회사 | 무선 통신 시스템에서 자원 할당 스케줄링 방법 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
EP3148201B1 (en) | 2020-04-15 |
EP3148201A4 (en) | 2017-11-29 |
KR20150133551A (ko) | 2015-11-30 |
EP3148201A1 (en) | 2017-03-29 |
CN106416273A (zh) | 2017-02-15 |
CN106416273B (zh) | 2019-11-26 |
KR102216125B1 (ko) | 2021-02-16 |
US20170111420A1 (en) | 2017-04-20 |
US10630744B2 (en) | 2020-04-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2015020471A1 (en) | Method and apparatus for distributing data in hybrid cloud environment | |
WO2015041436A1 (en) | Method of managing control right, client device therefor, and master device therefor | |
WO2015016627A1 (ko) | 동일한 네트워크 상의 복수개의 ap 장치 중 하나의 ap 장치와 단말기를 연결하는 방법 및 장치 | |
WO2018076861A1 (zh) | 数据传输的控制方法、装置、存储介质、服务器及系统 | |
WO2020071809A1 (en) | Method and apparatus for enhanced assertion management in cloud media processing | |
WO2018076868A1 (zh) | 一种数据同步方法、装置、系统、存储介质和服务器 | |
WO2015026058A1 (en) | Method, terminal, and system for reproducing content | |
WO2018076889A1 (zh) | 数据备份的方法、装置、系统、存储介质及服务器 | |
WO2018076841A1 (zh) | 数据分享方法、装置、存储介质及服务器 | |
WO2018028128A1 (zh) | 一种上行数据的信息反馈方法及相关设备 | |
WO2018076867A1 (zh) | 数据备份的删除方法、装置、系统、存储介质和服务器 | |
WO2018076433A1 (zh) | 多开应用程序方法、多开应用程序装置及终端 | |
WO2018076829A1 (zh) | 终端数据的处理方法、装置、系统、存储介质及服务器 | |
WO2016032291A1 (en) | Method and apparatus for transmitting and receiving data cross-reference to related applications | |
WO2018076840A1 (zh) | 数据分享方法、装置、存储介质及服务器 | |
WO2016148449A1 (ko) | 공유 리소스 액세스 중재 방법 및 이를 수행하기 위한 공유 리소스 액세스 중재 장치 및 공유 리소스 액세스 중재 시스템 | |
WO2018076869A1 (zh) | 一种数据备份方法、装置、存储介质和电子设备 | |
WO2014077458A1 (ko) | 통신망의 종류를 구분하는 방법 및 이를 이용한 콘텐츠 제공 방법 | |
WO2017090931A1 (ko) | 이벤트 관리 서비스를 제공하는 전자 장치 및 방법 | |
WO2018161588A1 (zh) | 广播接收者队列调整方法、装置、存储介质及电子设备 | |
WO2018076873A1 (zh) | 数据分享方法、装置、介质、电子设备及系统 | |
WO2014129865A1 (en) | Dynamic buffering method and apparatus for providing streaming service | |
WO2020222347A1 (ko) | 가상 머신 배치 방법 및 이를 구현하는 가상 머신 배치 장치 | |
WO2024112108A1 (ko) | 실시간 drm 기반 영상 스트리밍 시스템 및 그의 영상 스트리밍 방법 | |
WO2010071303A2 (ko) | 데이터 전송 방법 및 장치 |
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: 15796789 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 15312059 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
REEP | Request for entry into the european phase |
Ref document number: 2015796789 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2015796789 Country of ref document: EP |