Distribution server, distribution system and distribution program
The distribution system optimizes bandwidth allocation based on bit rate ratios for multiple viewing terminals, addressing unequal buffer accumulation and freezing issues in video distribution systems, thereby enhancing service quality and stability.
Patent Information
- Application Number
- JP2021019134
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-02-09
- Publication Date
- 2025-01-21
- Estimated Expiration
- 2041-02-09
AI Technical Summary
Existing video distribution methods using HTTP ABR (Adaptive-Bit-Rate) technologies like MPEG-DASH struggle to allocate bandwidth efficiently among viewing terminals with varying bit rates, leading to unstable playback due to unequal buffer accumulation and increased freezing, especially in networks with limited bandwidth.
A distribution system that includes a distribution server with a request receiving unit, priority calculation unit, and switch with priority control function, which allocates communication bandwidth based on the bit rate ratio of segment requests from multiple viewing terminals, marking IP packets with priority values to ensure fair allocation and minimize buffer exhaustion.
The system improves overall service quality by synchronizing download progress rates and minimizing buffer differences among terminals, reducing freezing and enhancing the viewing experience across terminals with different bit rates.
Smart Images

Figure 0007618459000001 
Figure 0007618459000002 
Figure 0007618459000003
Abstract
Description
[Technical field]
[0001] The present invention relates to a system for distributing video to a plurality of viewing terminals. [Background technology]
[0002] Packet-switched networks such as the Internet are best-effort networks, and it is known that the throughput of the receiving terminal varies depending on the traffic flowing through the network. For this reason, in services such as VoIP where real-time performance is important, priority control (QoS) is used to ensure the stability of the service by securing a constant communication bandwidth for the receiving terminal. Furthermore, Patent Documents 1 and 2 propose a high-quality delivery method in which a priority is assigned to highly important video data or retransmission data on a frame-by-frame basis.
[0003] In video distribution, if the throughput is sufficient for the video bit rate, the viewing buffer increases to ensure the stability of the video. However, if the throughput is insufficient, the viewing buffer becomes depleted and rebuffering occurs. Therefore, the current mainstream OTT (Over The Top) streaming video delivery is delivery using the HTTP ABR (Adaptive-Bit-Rate) method, including MPEG-DASH. ABR is a technology that prepares multiple video streams with different quality levels at different bit rates for the same video content, and divides each of them into units called segments that are separated by a fixed time interval, allowing seamless viewing while switching between qualities. This allows the viewing device to select a segment with the appropriate quality for the current network situation, making it possible to watch high-quality video according to the network conditions while suppressing freezing of video playback. [Prior art documents] [Patent documents]
[0004] [Patent Document 1] JP 2006-166453 A [Patent Document 2] JP 2010-28378 A Summary of the Invention [Problem to be solved by the invention]
[0005] Video distribution methods that use HTTP as a communication protocol, such as MPEG-DASH, use TCP in the transport layer, so in networks with limited bandwidth, the throughput of the total bandwidth is divided equally among each viewing terminal. This is a characteristic of the TCP design concept, and is optimized from the perspective of fair use of bandwidth. However, the equal division of throughput in video distribution has been an issue from the perspective of quality of service (QoE) for all viewing terminals.
[0006] For example, in video distribution where the distribution bandwidth is not sufficiently secured for the number of viewing terminals, if there are multiple terminals viewing videos with different bit rates, the playback buffer of the terminal viewing the video with a lower bit rate is more likely to fill up, allowing for stable viewing, but the playback buffer of the terminal viewing the video with a higher bit rate is less likely to fill up, making it more likely to freeze. In such a situation, it is necessary to allocate a bandwidth to each terminal according to the bitrate, but if the bandwidth limit for each terminal is simply set to the bitrate, the bandwidth will be wasted if the distribution bandwidth is sufficient, and conversely, if the distribution bandwidth is insufficient, the bandwidth limit will not be set according to the bitrate ratio. In other words, the issue was how to implement distribution control according to the bitrate ratio regardless of the traffic situation while making effective use of the bandwidth.
[0007] In addition, if the video encoding method used for ABR distribution is not completely CBR (Constant Bit Rate), the bitrate will differ on a segment-by-segment basis even within a stream of the same quality, which posed a challenge as to how to achieve dynamic bandwidth allocation on a segment-by-segment basis.
[0008] The methods of Patent Documents 1 and 2 perform priority processing focusing on the importance of video data frames or retransmission packets, but neither method determines the priority by focusing on the relationship between the bit rate of the own terminal and the bit rate of other terminals, and therefore cannot solve these problems.
[0009] An object of the present invention is to provide a distribution system that can improve the service quality of all terminals when there are multiple terminals that watch videos with different bit rates. [Means for solving the problem]
[0010] The distribution server of the present invention comprises a request receiving unit that receives segment requests from a plurality of viewing terminals; a priority calculation unit that sets the priority of the segment with the highest bit rate to the maximum value based on a mutual comparison result of the bit rates of each of the segments requested from the plurality of viewing terminals, and determines the priority of a segment with a lower bit rate to be lower; and a data sending unit that sends packets of segment data having data indicating the priority stored in the header to a switch having a priority control function that allocates communication bandwidth based on the priority.
[0011] The distribution server may further include a request management unit that notifies the priority calculation unit of segment information of a request received by the request receiving unit within a predetermined time period after the data sending unit sends out a packet.
[0012] When the request management unit receives the next request from all of the multiple viewing terminals that requested segments of the packet after the data sending unit has sent a packet, the request management unit may notify the priority calculation unit of the segment information of the request received by the request receiving unit regardless of the elapsed time.
[0013] The priority calculation section may determine one of a plurality of priorities according to a ratio of a bit rate to a maximum value.
[0014] The distribution system of the present invention comprises the distribution server, a switch having a priority control function that allocates communication bandwidth based on the priority, and a plurality of viewing terminals that sequentially request segments of video data from the distribution server.
[0015] The viewing terminal may add the segments to a playback buffer in the order in which the segments have been completely downloaded.
[0016] A distribution program according to the present invention causes a computer to function as the distribution server. Effect of the Invention
[0017] According to the present invention, when there are a plurality of terminals for viewing videos with different bit rates, it is possible to improve the service quality of all the terminals. [Brief description of the drawings]
[0018] [Figure 1] 1 is a diagram showing an overall configuration of a distribution system and a video distribution flow in an embodiment. [Diagram 2] FIG. 10 is a diagram illustrating an example of a definition of a priority of a segment in an embodiment. [Diagram 3] FIG. 2 is a diagram illustrating a functional configuration of a distribution server in the embodiment. [Figure 4] FIG. 11 is a diagram showing a processing flow of a distribution server in an embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0019] An example of an embodiment of the present invention will now be described. FIG. 1 is a diagram showing the overall configuration of a distribution system 1 according to this embodiment and a video distribution flow.
[0020] The distribution system 1 is composed of a video distribution server 10, a switch 21 having a priority control (QoS) function connected to the distribution server 10, a switch 22 connected to the switch 21, and a group of viewing terminals 30 connected to the switch 22. At this time, since traffic is concentrated between the switch 21 and the switch 22, it is assumed that the link between the switch 21 and the switch 22 is a bottleneck link in the network for the group of audio-visual terminals 30. It is assumed that the bandwidth of other links is sufficient.
[0021] Note that a plurality of distribution servers 10 may be provided in order to distribute traffic among the distribution server 10 and the links between the distribution servers 10 and the switch 21. Also, it is assumed that a plurality of video data pieces having different qualities are stored in the distribution server 10 in segments separated by a certain time (e.g., 2 seconds).
[0022] First, each viewing terminal 30 sequentially requests segments of video data to be viewed from the distribution server 10 (1). The timing of this request is arbitrary, but is generally the point at which reception of the previous segment is completed.
[0023] The distribution server 10 calculates the priority (described later) according to the bit rate of the requested segment (2), and marks the priority of each segment on the IP packet that transmits the segment (3). In addition, if there are multiple distribution servers 10, the transmission timing is synchronized (4).
[0024] When the distribution servers 10 start transmitting prioritized segments all at once (5), the switch 21 executes priority control based on the priority of the IP packets (6).
[0025] In this embodiment, an example will be shown in which flow-based Weighted Fair Queuing (WFQ) is used as the priority control executed by the switch 21. In WFQ, the switch 21 classifies flows based on information in the source IP address, destination IP address, source port number, destination port number, protocol type, and ToS (Type of Service) field, and dynamically creates a queue for each flow.The switch 21 then changes the queue weight according to the IP Precedence value stored in the ToS field, which is part of the IP packet header, schedules the transmission order of packets in the queue according to the weight, and determines the transmission amount.
[0026] FIG. 2 is a diagram illustrating an example of the definition of segment priority in this embodiment. Here, the correspondence between the 8-bit ToS field value (hereinafter, ToS value), the IP Precedence represented by the most significant 3 bits of the value, and the weight is shown. Note that this correspondence is merely an example, and there may be variations depending on the implementation of the switch 21.
[0027] The IP Precedence, which indicates the priority, takes an integer value from 0 to 7, and the weight is, for example, 2 15 It is calculated as / (IP Precedence+1). The switch 21 performs priority processing inversely proportional to the weight. For example, when the bandwidth of the sending link is 5 Mbps, the bandwidth allocated to each flow's weight is determined as follows: Flow 1 (weight: 10920, bandwidth: 3Mbps) Flow 2 (weight: 32768, bandwidth: 1Mbps) Flow 3 (weight: 32768, bandwidth: 1Mbps)
[0028] Incidentally, the priority control of the switch 21 determines the processing priority of a packet according to the ToS value of the IP packet in which segment data is stored, as described above, but the method is not limited to WFQ.
[0029] FIG. 3 is a diagram showing the functional configuration of the distribution server 10 in this embodiment. The distribution server 10 is an information processing device equipped with a control unit, a memory unit, and various interfaces, and the various functions of this embodiment are realized by the control unit executing software (distribution program) stored in the memory unit.
[0030] The control unit of distribution server 10 includes a request receiving unit 11, a request management unit 12, a data information management unit 13, a ToS value calculation unit 14 (priority calculation unit), a data store unit 15, and a data sending unit 16.
[0031] The request receiving unit 11 receives requests for segments from a plurality of audiovisual terminals 30 and registers the request information in the request managing unit 12 .
[0032] The request management unit 12 manages, as request information, the current request for which no segments have been sent up to now and requests for segments sent previously by the data sending unit 16, and notifies the data store unit 15 of the current request information.
[0033] Furthermore, the request management unit 12 sets a timer to measure a predetermined time (for example, 100 ms) after receiving a transmission completion notification from the data transmission unit 16. When the timer times out or when the request management unit 12 receives the current request from all the viewing terminals 30 that sent the segments in the previous request, the request management unit 12 notifies the ToS value calculation unit 14 of the segment information of the current request that it is holding. At this time, if the timer has been set, it is canceled.
[0034] The data information management section 13 holds bit rate information of all segments that can be requested by the audiovisual terminal 30, and notifies the ToS value calculation section 14 of the bit rate information requested by the ToS value calculation section 14.
[0035] The ToS value calculation unit 14 requests the bit rate information of the segment requested by the viewing terminal 30 from the data information management unit 13, and calculates the ToS value to be added to the IP header based on the mutual comparison result of the bit rate information. The ToS value calculation unit 14 notifies the data transmission unit 16 of the calculation result. At this time, the ToS value calculation unit 14 sets the priority of the segment with the highest bit rate included in the current request as the maximum value, and determines the priority to be lower for segments with lower bit rates, and then calculates the ToS value corresponding to this priority. For example, the ToS value calculation unit 14 may determine one of a number of priorities according to the ratio of the bit rate to the maximum value.
[0036] Here, an example will be given of the above-mentioned priority level, IP Precedence, and a method of determining the corresponding ToS value. The bit rate of the segment with the highest bit rate among the requests from the viewing terminal 30 is set as BR max The ToS value calculation unit 14 determines the IP Precedence to be assigned to this segment to be 7, which is the highest priority. Also, B.R. base =BR max The bit rate of each segment requested this time and the IP precedence to be added are set to BR i , I.P.P. i Here, i is an identification number that is assigned sequentially in the order of requests.
[0037] The ToS value calculation unit 14 calculates the IP precedence to be assigned to each segment using the Gaussian symbol [] as follows: IPP i =max([(BR i / BR base )+0.5]-1,0) It is decided that 0 <BR i <BR max Therefore, 0≦IPP i <= 7. Calculated IPP i ToS value corresponding to IPP i By storing this value in the ToS field in the IP header of the segment to be sent, priority can be given according to the bit rate.
[0038] The data store unit 15 transfers the segment data corresponding to the request notified by the request management unit 12 to the data transmission unit 16 .
[0039] The data sending unit 16 stores the ToS value calculated by the ToS value calculation unit 14 in the header of the IP packet, and sends the IP packet of the segment data to the switch 21.
[0040] By operating each of these functional units, the distribution server 10 receives requests from all viewing terminals 30 that are playing video, or requests until the timer expires, and then refers to the bit rate information of the corresponding segment and calculates a priority for each viewing terminal based on the bit rate ratio. Then, distribution server 10 marks the IP packets of the segment to be sent with a ToS value that matches the priority control (QoS) function of switch 21 and corresponds to the priority in the ToS field of the IP header, and starts sending them all at once. This makes it possible to allocate a bandwidth to each audiovisual terminal 30 on a segment-by-segment basis in accordance with the ratio of the bit rates of the segments.
[0041] Each viewing terminal 30 adds segment data to the playback buffer piecemeal, starting from the part that has been downloaded, even while the segment is being downloaded, rather than adding the segment data to the playback buffer after the download of the segment is completed. This process can be performed, for example, on the Web, by using the Fetch API. The two effects of adding playback buffers in a piecemeal manner and allocating bandwidth according to the ratio of segment bit rates minimize the difference in playback buffer accumulation between multiple viewing terminals 30, thereby minimizing the risk of buffer depletion for the entire service.
[0042] FIG. 4 is a diagram showing a processing flow of the distribution server 10 in this embodiment. This process (a cycle of steps S1 to S6) is repeatedly executed when the service of the distribution system 1 is started, and the system is always in a standby state for receiving a request until the service is ended.
[0043] In step S1, the request management unit 12 sets a timer (for example, 100 ms).
[0044] In step S2, the request management unit 12 waits until the timer times out or until it receives requests from all terminals that sent the previous request. If there was no previous request and there is at least one new request, the process immediately proceeds to step S3.
[0045] In step S3, the request management unit 12 determines whether or not a request has been made. If the determination is YES, the process proceeds to step S4, and if the determination is NO, the process returns to step S1.
[0046] In step S4, the ToS value calculation unit 14 calculates a ToS value to be assigned to the segment corresponding to the current request. The current request is a request that has been received up to step S3 and for which the corresponding segment has not yet been sent, and requests received after this are managed as requests to be sent next.
[0047] In step S5, the data transmission unit 16 stores the corresponding ToS value in the IP header of the IP packet including the segment data, and starts transmitting the IP packet corresponding to the current request.
[0048] In step S6, when the data transmission unit 16 has completed transmission of all IP packets corresponding to the current request, it notifies the request management unit 12 of the completion of transmission, thereby completing one cycle corresponding to the current request.
[0049] In this processing example, in step S2, the process immediately transitions to step S3 in response to a new request, but it is also possible to wait until a timeout occurs. Furthermore, requests that are not received before the timeout due to, for example, a processing delay at the viewing terminal 30 or differences in segment length (time) are processed in the next cycle, and segments corresponding to multiple requests are sent synchronously to the viewing terminal 30 in each cycle.
[0050] According to this embodiment, based on the results of mutual comparison of the bit rates of each segment requested from multiple viewing terminals, the distribution server 10 sets the priority of the segment with the highest bit rate to the maximum value, and determines the priority of the segment with a lower bit rate, and sends packets of segment data with data indicating this priority stored in the header to a switch having a priority control function that allocates communication bandwidth based on the priority.
[0051] Therefore, when there are multiple viewing terminals 30 viewing videos with different bit rates, the distribution server 10 can synchronize the download progress rate of each video segment by allocating the communication bandwidth according to the bit rates. As a result, the service quality of the entire video distribution service can be improved by suppressing freezing during video viewing. In addition, even if the encoding method is not completely CBR and the bit rates of time-series segments of the same content are different, the distribution server 10 sets priorities on a segment-by-segment basis, making it possible to synchronize the download progress rate of the video.
[0052] After transmitting the packets, the distribution server 10 compares the segment information of the requests received within a predetermined time period, thereby appropriately allocating the communication bandwidth to each viewing terminal 30 according to the bit rate.
[0053] Furthermore, after transmitting a packet, when the distribution server 10 receives subsequent requests from all of the multiple viewing terminals that have requested segments of that packet, it calculates priorities based on the segment information of these requests, regardless of the amount of time that has elapsed. Therefore, the distribution server 10 can efficiently process requests for sequential segments with reduced waiting time.
[0054] The distribution server 10 determines one of a number of priorities according to the ratio of the bit rate to the maximum value. This allows the distribution server 10 to allocate communication bands to the multiple viewing terminals 30 efficiently and without waste.
[0055] The audio-visual terminal 30 adds the segments to the playback buffer in the order in which they have been downloaded. This reduces the waiting time until content is added to the playback buffer, reduces the difference in buffer amount between audio-visual terminals 30, and improves the overall service quality.
[0056] Although the embodiments of the present invention have been described above, the present invention is not limited to the above-described embodiments. Furthermore, the effects described in the above-described embodiments are merely a list of the most preferable effects resulting from the present invention, and the effects of the present invention are not limited to those described in the embodiments.
[0057] In this embodiment, the configuration and operation of the distribution system 1 have been mainly described, but the present invention is not limited to this and may be configured as a method or program for distributing video having each component.
[0058] Furthermore, the functions of the distribution system 1 may be realized by recording a program for realizing the functions of the distribution system 1 on a computer-readable recording medium, and having a computer system read and execute the program recorded on the recording medium.
[0059] The term "computer system" here includes hardware such as the OS and peripheral devices. Additionally, "computer-readable recording media" refers to portable media such as flexible disks, optical magnetic disks, ROMs, and CD-ROMs, as well as storage devices such as hard disks built into computer systems.
[0060] Furthermore, the term "computer-readable recording medium" may include a recording medium that dynamically stores a program for a short period of time, such as a communication line when transmitting a program via a network such as the Internet or a communication line such as a telephone line, and a recording medium that stores a program for a certain period of time, such as a volatile memory in a computer system that serves as a server or client in such a case. The above program may be a program for realizing part of the above-mentioned functions, or may be a program that can realize the above-mentioned functions in combination with a program already recorded in the computer system. [Explanation of symbols]
[0061] 1. Distribution System 10. Distribution Server 11 Request Receiving Unit 12 Request Management Department 13 Data Information Management Department 14 ToS value calculation unit (priority calculation unit) 15 Data Store Section 16 Data transmission section 21 Switch 22 Switch 30 Viewing Devices
Claims
1. a request receiving unit that receives requests for segments from a plurality of viewing terminals; a priority calculation unit that, based on a result of mutual comparison of bit rates of each of the segments requested from the plurality of viewing terminals, sets a priority of the segment with the highest bit rate as the maximum priority and determines a lower priority for the segment with a lower bit rate; a data sending unit that sends packets of segment data having data indicating the priority stored in a header to a switch having a priority control function that allocates a communication bandwidth based on the priority.
2. 2. The distribution server according to claim 1, further comprising a request management unit that notifies said priority calculation unit of segment information of a request received by said request receiving unit within a predetermined time period after said data sending unit sends out a packet.
3. The distribution server of claim 2, wherein when the request management unit receives the next request from all of the plurality of viewing terminals that requested segments of the packet after the data sending unit has sent the packet, the request management unit notifies the priority calculation unit of the segment information of the request received by the request receiving unit regardless of the elapsed time.
4. 4. The distribution server according to claim 1, wherein the priority calculation unit determines one of a plurality of priorities according to a ratio of a bit rate to a maximum value.
5. A distribution server according to any one of claims 1 to 4; a switch having a priority control function for allocating a communication band based on the priority; A distribution system including a plurality of viewing terminals that sequentially request segments of video data from the distribution server.
6. 6. The delivery system according to claim 5, wherein the viewing terminal adds to the playback buffer portions of the segments in order starting from those portions that have been completely downloaded.
7. A distribution program for causing a computer to function as the distribution server according to any one of claims 1 to 4.
Citation Information
Patent Citations
Apparatus and method for transmitting multimedia content via network
JP2006166453A
Communication apparatus and communication method
JP2010028378A
Information processing device, information processing method, and program
JP2014093655A
Signaling of segment characteristics related to streaming media data over a network
JP2015501090A
Adaptive Streaming Aware Network Nodes, Clients, and Methods Using Priority Marking
JP2015521434A