PROCESSING SYSTEM AND METHOD FOR LIVE VIDEO STREAMING BASED ON NETWORK CODING AND CONTENT DISTRIBUTION NETWORK

20170347130 ยท 2017-11-30

    Inventors

    Cpc classification

    International classification

    Abstract

    The present invention provides a processing system and method for live video streaming based on network coding and content distribution network, applied in video streaming over a network. The processing system comprises a live broadcast source station, at least one edge server and a plurality of player nodes. The live broadcast source station generates a streaming video file and sends to the edge server, at which network coding is performed to output coded information to the player node. The data amount received by each of the player nodes is less than the original streaming file. The player nodes exchange the coded information with each other. A decoding process is performed when a player node accumulates enough coded information. If a player node cannot accumulate enough coded information, more coded information will be requested from the edge server until the streaming video file is decodable.

    Claims

    1. A processing system for live video streaming based on network coding and content distribution network, the processing system being applied in live video streaming over a network, comprising: a live broadcast source station, for receiving an audio video signal and generating a streaming video file; at least one edge server, connected to the live broadcast source station, for receiving the streaming video file from the live broadcast source station, performing network coding on the streaming video file and outputting a plurality of pieces of coded information; and a plurality of player nodes, each connected to the edge server via the network, the player nodes being connected to each other via the network, for receiving the pieces of coded information from the edge server and exchanging the coded information with each other; wherein each of the player nodes keeps accumulating the coded information until an amount of pieces of received coded information reaches a decoding threshold, the player nodes decode the pieces of received coded information and output the streaming video file, and if the amount of pieces of received coded information is less than the decoding threshold, the player nodes request more of the pieces of coded information from the edge server until the streaming video file is decodable.

    2. The processing system of claim 1, wherein each of the player nodes receives at least one of the pieces of coded information of the streaming video file, and all of the pieces of coded information are different.

    3. The processing system of claim 2, wherein each of the pieces of coded information received by each of the player nodes is smaller than the uncoded streaming video file.

    4. The processing system of claim 2, wherein the encoding processing comprises: segmenting the streaming video file into a plurality of clips by linear network coding; and performing random linear combination on the clips over a Galois Field to output the pieces of coded information.

    5. The processing system of claim 1, wherein each of the player nodes forwards the pieces of coded information to another player node directly from the edge server but not from other player nodes.

    6. The processing system of claim 1, wherein any of the player nodes is selected as a target node, and the target node receives the pieces of coded information from the edge server but not from other player nodes or other target nodes and transmits the pieces of received coded information to the other player nodes.

    7. A processing method for live video streaming based on network coding and content distribution network, the processing method being applied in live video streaming over a network, comprising steps of: a live broadcast source station receiving an audio video signal and generating a streaming video file; at least one edge server receiving the streaming video file from the live broadcast source station; the edge server performing a network coding program on the streaming video file and outputting a plurality of pieces of coded information; the edge server sending the pieces of coded information to an assigned player node among a plurality of player nodes; the player nodes exchanging the pieces of coded information with each other; each of the player nodes accumulating the coded information and determining whether an amount of the pieces of received coded information reaches a decoding threshold; and if the amount of the pieces of received coded information reaches the decoding threshold, the player nodes decodes the pieces of received coded information by a decoding process program and outputs the streaming video file; or if the amount of the pieces of received coded information is less than the decoding threshold, the player nodes request more of the pieces of coded information from the edge server until the streaming video file is decodable.

    8. The processing method of claim 7, wherein each of the player nodes connected to the edge server exchanges the pieces of coded information with each other by forwarding the pieces of coded information to another player node directly from the edge server but not from other player nodes.

    9. The processing method of claim 7, wherein any of the player nodes is selected as a target node, and the target node receives the pieces of coded information from the edge server but not from other player nodes or other target nodes and transmits the pieces of received coded information to the other player nodes.

    Description

    BRIEF DESCRIPTION OF THE DRAWINGS

    [0013] The figures described herein, as a constituting part of the present invention, provide further understanding of the present invention. The schematic embodiments and illustrations are used to explain the present invention, but not to impose improper limitations to the present invention.

    [0014] FIG. 1A is a block diagram of the content distribution network according to the prior art;

    [0015] FIG. 1B is a block diagram of player nodes and video files according to the prior art;

    [0016] FIG. 1C is a block diagram of segmented streaming video file according to the prior art;

    [0017] FIG. 2A is a block diagram of the content distribution network according to an embodiment of the present invention;

    [0018] FIG. 2B is a block diagram of the edge server according to an embodiment of the present invention;

    [0019] FIG. 2C is a block diagram of the player node according to an embodiment of the present invention;

    [0020] FIG. 3 is a flow chart depicting the operation according to an embodiment of the present invention;

    [0021] FIG. 4A is a block diagram depicting outputting of the streaming video file according to an embodiment of the present invention;

    [0022] FIG. 4B is a block diagram depicting decoding of the coded information and outputting of the streaming video file according to an embodiment of the present invention; and

    [0023] FIG. 5 is a block diagram of the system configuration according to another embodiment of the present invention.

    DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

    [0024] Please follow the explanations with the figures and embodiments to get a full understanding of the application, and to further apply the technical means to solve the related problems to achieve desired effects.

    [0025] Please refer to FIG. 2A, FIG. 2B, FIG. 2C, the processing system 200 for live video streaming based on network coding and content distribution network according to an embodiment of the present invention comprises a sampling terminal 210, a live broadcast source station 220, at least one edge server 230, and a plurality of player nodes 240.

    [0026] The live broadcast source station 220 is connected to the sampling terminal 210 and at least one of the edge servers 230 via the network. The edge server 230 is connected to at least one of the player nodes 240. The live broadcast source station 220 comprises a first processing module 221, a first memory module 222, a first network module 223 and a video buffer 224. The edge server 230 comprises a second processing module 231, a second memory module 232 and a second network module 233. The player node 240 comprises a third processing module 241, a third memory module 242 and a third network module 243.

    [0027] The first processing module 221 is electrically connected to the first memory module 222, the first network module 223 and the video buffer 224. The second processing module 231 is electrically connected to the second memory module 232 and the second network module 233. The third processing module 241 is electrically connected to the third memory module 242 and the third network module 243. The second network module 233 is connected to the first network module 223 and the third network module 243 via the network. The second network module 233 receives a file request notification and a streaming video file 235 from the live broadcast source station 220. The third network module 243 receives the coded information 244 from the edge server 230 or the coded information from other player nodes 240. The second memory module 232 records the network coding program 234 and the streaming video file 235. The third memory module 242 stores the coded information 244 and the decoding process program 245.

    [0028] To understand the operation of the embodiments of the present invention more clearly, please refer to FIG. 3. The processing method for live video streaming of the present invention comprises the following steps:

    [0029] Step S310: a live broadcast source station receiving an audio video signal from a sampling terminal;

    [0030] Step S320: a live broadcast source station receiving the audio video signal and generating a streaming video file;

    [0031] Step S330: an edge server receiving the streaming video file from the live broadcast source station;

    [0032] Step S340: the edge server performing a network coding program on the streaming video file and outputting a plurality of pieces of coded information;

    [0033] Step S350: the edge server sending each of the pieces of coded information to an assigned player node;

    [0034] Step S360: each of the player nodes receiving the coded information from other player nodes connected to the edge server, accumulating the coded information and determining whether the amount of pieces of the received coded information reaches a decoding threshold;

    [0035] Step S370: if the amount of pieces of the received coded information reaches the decoding threshold, the player node decoding the pieces of received coded information by a decoding process program and outputting the streaming video file; or

    [0036] Step S380: if the amount of pieces of the coded information received is less than the decoding threshold, the player node requesting more coded information from the edge server until the streaming video file is decodable.

    [0037] First, the first memory module 222 stores the received audio video signal 250. The first processing module 221 transcodes and packages the audio video signal 250, caches the generated streaming video file 235 in the module 222, and synchronizes the content from the buffer 222 to at least one of the edge servers 230 via the network module 223.

    [0038] The edge server 230 receives the streaming video file 235. The second processing module 231 performs network coding on the streaming video file 235. The network coding program 234 is used to perform coding to a fixed-length streaming video file 235 and output multiple pieces of coded information 244.

    [0039] The network coding program 234 of the present embodiment is to process the entire streaming video file 235. The network coding program 234 segments the streaming video file into multiple equal-sized clips. The coding process is comprised of but not limited to: selecting multiple clips randomly, and performing random linear combination on the clips over a Galois Field to output a piece of coded information 244. The size of a piece of coded information 244 is identical to the size of a clip.

    [0040] Unlike the physical segmentation method in the prior art, the network coded streaming video file 235 is not segmented into data blocks at fixed offsets, but is encoded to different pieces of the coded information 244. The edge server 230 of the present embodiment can be regarded as the source of a network coding architecture, the player node 240 can be regarded as the channel of the network coding architecture. The edge server 230 performs network coding on the streaming video file, and then sends the generated coded information 244 to the connected player node 240. In other words, the transmission of the coded information 244 in the present embodiment adopts network coding transmission.

    [0041] The amount of pieces of the coded information 244 is associated with the amount of the player nodes 240 connected to the edge server 230. In general, the amount of pieces of the coded information 244 is no less than the amount of the player nodes 240, allowing each player node 240 to receive one or more pieces of the coded information 244. Although the network coding in the present embodiment can output multiple pieces of code information 244, not all of the pieces of coded information 244 are needed in the decoding process as in the prior art. As long as a sufficient amount of pieces of coded information 244 is received, the player node 240 can decode the streaming video file 235 according to the coded information 244. Herein, the amount is defined as a decoding threshold. Conversely, if the amount of pieces of the received coded information 244 accumulated by the player node is less than the decoding threshold, the player node 240 requests more coded information from the edge sever 230. In other words, the player nodes 240 connected to the edge sever 230 exchange the coded information with each other.

    [0042] After the coded information 244 is received by its assigned player node 240, the third processing module 241 of the player node 240 requests more coded information 244 from adjacent player nodes 240, as shown in FIG. 4A. For example, the edge server 220 is connected to five player nodes 240, namely a player node A, a player node B, a player node C, a player node D, and a player node E. The player node A receives coded information a, the player node B receives coded information b, the player node C receives coded information c, the player node D receives coded information d, the player node E receives coded information e.

    [0043] The player node A requests the coded information b, c, d, and e from the player nodes B, C, D, and E. Assuming that the decoding threshold is three in this example; in other words, as long as the player node A receives at least three pieces of coded information arbitrarily, the streaming video file 235 can be decoded. For example: the player node A receives the coded information b, d, e. The player node A can perform a decoding process program 245 based on the coded information b, d, e, and output the streaming video file 235, as shown in FIG. 4B.

    [0044] FIG. 5 shows a block diagram of the system configuration according to another embodiment of the present invention. In this embodiment, a processing system 500 comprises a sampling terminal 510, a live broadcast source station 520, a plurality of edge servers 530, a plurality of player nodes 540 and a plurality of target nodes 550. The live broadcast source station 520 is connected to the sampling terminal 510 and the edge servers 530 respectively via the network. Each of the edge severs 530 is connected to the player nodes 540 and at least one target node 550 via the network. The connection and configuration among the sampling terminal 510, player nodes 540, edge servers 530 and target nodes 550 are identical to that as mentioned above, so no redundant detail is to be repeated herein. In this embodiment, the target node 550 is externally connected to the edge server 530, and is not chosen from the current player nodes 540. The function of the target node 550 is that the target node 550 neither exchanges the coded information 244 with other target nodes 550 nor downloads the coded information 244 from other player nodes 540; instead, the target node 550 receives the coded information 244 from the edge server 530 and transmits the received coded information 244 to other player nodes 540. The target node 550 can increase the chance of receiving valid coded information 244 by the player nodes 540, and make the player nodes 540 improve the fluency of playback.

    [0045] Therefore, if the player node encounters errors (e.g. network packet loss) when receiving other coded information, the player node can request the coded information from other player nodes. The player node would not receive the coded information with duplicated contents. As compared to the conventional technology, the present invention can decrease error occurrence rate in repeated requests, and accelerate the transmission and decoding of data.

    [0046] While the exemplary embodiments have been described in connection with a number of embodiments and implementations, the exemplary embodiments are not so limited but cover various obvious modifications and equivalent arrangements, which fall within the purview of the appended claims. Although features of the exemplary embodiments are expressed in certain combinations among the claims, it is contemplated that these features can be arranged in any combination and order.