The present application is related to and claims the priority under 35 U.S.C. §119(a) to Korean Application Serial No. 10-2013-0125216, which was filed in the Korean Intellectual Property Office on Oct. 18, 2013, the entire content of which is hereby incorporated by reference.
The present disclosure relates to a method and apparatus for transmitting and receiving multimedia data in a communication system.
As various types of contents increase and high-capacity contents, such as High Definition (HD) contents, Ultra High Definition (UHD) contents, increase, data congestion becomes worse over a network. Due to the situation, the contents that a transmitter sends is not normally transferred to a receiver, and a part of the contents is lost on route. In general, data is transmitted based on a packet unit, and the data loss occurs based on a packet unit. Accordingly, the receiver fails to receive a packet due to the data loss on the network, and thus, may be unaware of the data in the lost packet. Therefore, it may cause deterioration of audio quality, degradation of video image quality or an image breaking, an omission of a subtitle, a loss of a file, and the like making an inconvenience for a user. Due to the above reasons, there is a desire for a method of restoring the data loss occurring on the network.
As one of the methods, raptor codes may be used, which is one of the channel coding methods, and has an advantage of freely adjusting a code rate which indicates a ratio of an amount of encoded data to existing information. The raptor code operates based on a block unit, and has the advantage of randomly selecting source symbols and generating a huge amount of encoded symbols. The raptor code may execute complete decoding without an error when a predetermined amount of encoded symbol is received, irrespective of the order of reception or a loss. A method of determining a code rate in consideration of a wireless network state, using the raptor code, a scheme of transmitting data encoded based on the determined code rate over a network, and the like have been provided.
However, the conventional technologies do not consider the selection of an effective parameter of a raptor code. The complexity of the raptor code is significantly changed based on a parameter, and may also be changed based on the performance of a device implementing the same. Also, the parameter may need to be changed dynamically based on a network state. When the parameter is inappropriately selected, effective network transmission may be impossible.
To address the above-discussed deficiencies, it is a primary object to provide a method and apparatus for stably transmitting and receiving multimedia data using a raptor code in a mobile communication system that is based on a wireless multiple-path environment.
The present disclosure provides a method and apparatus for dynamically selecting an optimal parameter without user settings in a mobile communication system that is based on a wireless multiple-path environment.
In accordance with an aspect of the present disclosure, a method of transmitting multimedia data in a mobile communication system is provided. The method includes: setting a size of a source symbol and the number of source symbols to initial values; determining a packet distribution vector by a Path Cost Indicator (PCI); determining a code rate based on the packet distribution vector; calculating a penalty function based on the code rate; determining, for each block, a size of a source symbol and the number of source symbols, having the lowest penalty function value; and transmitting encoded multimedia data based on the size of the source symbol and the number of source symbols.
In accordance with another aspect of the present disclosure, a multimedia data transmitting apparatus in a mobile communication system is provided. The apparatus includes: a controller to set the size of a source symbol and the number of source symbols to initial values, to determine a packet distribution vector by a Path Cost Indicator (PCI), to determine a code rate based on the packet distribution vector, to calculate a penalty function based on the code rate, and to determine, for each block, the size of a source symbol and the number of the source symbols, having the lowest penalty function value; and a transmitting unit to transmit encoded multimedia data based on the size of the source symbol and the number of the source symbols.
In accordance with another aspect of the present disclosure, a method of receiving multimedia data in a mobile communication system is provided. The method includes: demodulating multimedia data transmitted from a transmitter; determining a size of a source symbol and the number of source symbols, for each block, from the decoded multimedia data; decoding the multimedia data based on the determined size of the source symbol and the determined number of source symbols, wherein determining of the size of the source symbol and the number of source symbols for each block comprises: determining a packet distribution vector by a Path Cost Indicator (PCI), determining a code rate based on the packet distribution vector, calculating a penalty function based on the code rate, and determining, for each block, a size of source symbol and the number of the source symbols, having the lowest penalty function value.
In accordance with another aspect of the present disclosure, a multimedia data receiving apparatus in a mobile communication system is provided. The apparatus includes: a demodulator to demodulate multimedia data transmitted from a transmitter; a controller to determine a size of a source symbol and the number of source symbols for each block, from the demodulated multimedia data; and a decoder to decode the multimedia data based on the determined size of the source symbol and the determined number of source symbols, wherein the controller determines a packet distribution vector by a Path Cost Indicator (PCI), determines a code rate based on the packet distribution vector, calculates a penalty function based on the code rate, and determines, for each block, a size of a source symbol and the number of the source symbols, having the lowest penalty function value, so as to determine the size of the source symbol and the number of the source symbols for each block.
The present disclosure may stably provide multimedia data using a raptor code, in a mobile communication system that is based on a wireless multiple-path environment.
The present disclosure may stably provide multimedia data by dynamically selecting an optimal parameter without user settings in a mobile communication system that is based on a wireless multiple-path environment.
The present disclosure may restore a packet loss caused by interference of a wireless channel, using a raptor code.
Before undertaking the DETAILED DESCRIPTION below, it may be advantageous to set forth definitions of certain words and phrases used throughout this patent document: the terms “include” and “comprise,” as well as derivatives thereof, mean inclusion without limitation; the term “or,” is inclusive, meaning and/or; the phrases “associated with” and “associated therewith,” as well as derivatives thereof, may mean to include, be included within, interconnect with, contain, be contained within, connect to or with, couple to or with, be communicable with, cooperate with, interleave, juxtapose, be proximate to, be bound to or with, have, have a property of, or the like; and the term “controller” means any device, system or part thereof that controls at least one operation, such a device may be implemented in hardware, firmware or software, or some combination of at least two of the same. It should be noted that the functionality associated with any particular controller may be centralized or distributed, whether locally or remotely. Definitions for certain words and phrases are provided throughout this patent document, those of ordinary skill in the art should understand that in many, if not most instances, such definitions apply to prior, as well as future uses of such defined words and phrases.
For a more complete understanding of the present disclosure and its advantages, reference is now made to the following description taken in conjunction with the accompanying drawings, in which like reference numerals represent like parts:
The terms and words used in this specification and claims should not be construed as limited to the common or lexical definitions, and should be interpreted as definitions and conceptions corresponding to the spirit and scope of the present disclosure based on the principle that inventors may pertinently define conceptions of the terms in order to describe their own disclosures in the best way. An embodiment of the present disclosure provides a stable multimedia data providing method using a raptor code in a wireless multiple-path environment. In this instance, for the effective use of a raptor code, the complexity of a raptor code is determined based on a performance of a device that executes encoding, and an optimal raptor code parameter, which smoothly provides multimedia data is determined based on a multiple-network state. Through the above, the present disclosure may dynamically select an optimal parameter so as to stably provide multimedia, without user settings, in various devices and rapidly varying network circumstances.
An embodiment of the present disclosure uses systematic raptor codes, as shown in
A system structure according to an embodiment of the present disclosure is as shown in
The diagram 200 is not limited to a Multipath Multimedia Transport Protocol (MPMTP) shim layer, and may be applied to a layer of a communication system of a multiple-path environment. The system according to an embodiment of the present disclosure uses a Transfer Control Protocol (TCP) for transferring an importable control message, and may use a User Datagram Protocol (UDP) for actual data transmission. UDP ports may be generated as many as the number of multiple paths that are used, and used for transmitting data. As illustrated in
In the MPMTP, TCP-friendly rate control (TFRC) is used for controlling a transmission rate of a UDP subflow. The TFRC is an algorithm that provides a transmission rate for a real-time network application.
The transmission rate trTFRC determined by the TFRC may be expressed by the following Equation 1.
Here, r denotes a Round Trip Time (RTT), Psize denotes a size of a packet, and p denotes a Packet Loss Rate (PLR) between 0 and 1. However, the TFRC may not be applied to a wireless network environment.
The PLR p in Equation 1 calculates only the packets that are lost due to the network congestion. However, the packet loss caused by wireless channel errors may unfairly limit a transmission rate through wireless networks. Therefore, the MPMTP uses a loss difference algorithm called Spike to distinguish the congestion and the wireless loss. Spike distinguishes a type of loss using a Relative One-way Trip Time (ROTT) in a receiver. The ROTT indicates a packet transmission time that is taken for transmitting a packet from a transmitter to a receiver. According to Spike, when a measured ROTT is greater than Bspikestart, it is estimated that the loss is caused by congestion. Conversely, when the measured ROTT is less than Bspikeend, it is estimated that the loss is caused by a wireless channel error. In Spike, Bspikestart and Bspikeend are defined as shown in Equation 2.
B
spikestart=rottmin+α·(rottmax−rottmin),
B
spikeend=rottmin+β·(rottmax−rottmin), [Equation 2]
In Equation 2, α and β are constant values between 0 and 1, and rottmin and rottmax indicate the lowest ROTT and the highest ROTT, observed so far. In the MPMTP, a receiver feeds two types of PLR back to a transmitter using Spike. The PLR is generated by a network congestion plrc and a network channel error plrW. The transmitter controls the TFRC based on plrc, and determines a code rate of a raptor code using plrW.
The packet of
The packet of
Although a few of encoded symbols are lost during a transmission process through a network when the generated encoded symbols are transmitted to a receiving side, the raptor code may restore an original source symbol when at least a predetermined amount of encoded symbol is received. The number of encoded symbols (k′) that is required or used to successfully restore k source symbols in a source block is defined by Equation 3.
k′=(1+δ)·k [Equation 3]
In Equation 3, δ denotes a symbol overhead, and is a real number, which generally has a small value. The above equation indicates that all of the source symbols are smoothly restored through encoded symbols of which the number is slightly greater than the number of the source symbols. The code rate (c) is defined by the following Equation 4.
c=k/n [Equation 4]
In Equation 4, k denotes the number of source symbols, and n denotes the number of encoded symbols.
As illustrated in
When the number of source symbols is k, and the code rate is c, the number of times of XOR of the CCP matrix GCCP
When a size of a symbol is s based on Equation 5 and Equation 6, the raptor encoding time may be calculated as shown in Equation 7 and Equation 8.
enctime(s,k,c)=γcoefenc(s)·XORbyteenc(s,k,c) [Equation 7]
XORbyteenc(s,k,c)=s·(XORCCP
In Equation 8, XORbyteenc(s,k,c) denotes an amount of byte on which XOR is executed for raptor encoding, and in Equation 7, γcoefenc(s) is an XOR operation coefficient for encoding and is different based on the hardware performance of a device that executes raptor encoding.
A system according to an embodiment of the present disclosure calculates an XOR operation coefficient before communication begins.
When the number of source symbols is s and the code rate is c, the number of times of XOR of the CCP matrix (GCCP
gijCCPCCP
When a size of a symbol is s based on Equation 9 and Equation 10, the raptor encoding time may be calculated as shown in Equation 11 and Equation 12.
byte
dec(s,k)=s·(CCP
time(s,k)=γcoefdec(s)·bytedec(s,k) [Equation 12]
In Equation 11, γcoefdec(s) denotes an XOR operation coefficient for decoding, and is different based on the hardware performance of a device that executes raptor decoding. γcoefdec(s) may be previously calculated in a receiving side, and subsequently, may be transmitted to a transmitting side, during an MPMTP handshake.
In Equation 11, bytedec(s,k) denotes an approximated amount of byte on which XOR is executed for raptor decoding. A system according to an embodiment of the present disclosure calculates an XOR operation coefficient before communication begins.
As illustrated in
(1) General packet distribution: A general packet scheduler 710 schedules a general packet to be transmitted through a path having the lowest Path Cost Indicator (PCI). In the transmission of a jth block, a PCI of an ith path is defined by the following Equation 13.
A packet scheduling vector for general data is determined by the PCI.
In Equation 13, Psize denotes a size of a packet, iTFRC denotes a bandwidth of the ith path, di denotes a delay of the ith path, plriW denotes a PLR of the ith path.
nbuf
(s,k)=(ps1,ps2, . . . ,psp
In Equation 14, psi denotes an index of a path through which the ith packet is to be transmitted, and pnum(s,k) denotes the number of packets in a source block ┌(s·k)/Psize┐.
(2) Redundant packet distribution: A redundant packet scheduler 720 schedules a redundant packet to be transmitted using a weighted round robin scheme based on a packet distribution vector of the general packet. A weight of the ith path of the jth block is determined as follows.
When the weight of the path is determined based on Equation 15, the packet scheduler transmit the redundant packet based on the weighted round robin, as shown in
4. Determination of Raptor Code Rate
A raptor code rate is determined based on a packet distribution vector of a general packet and a PLR of each path. The PLR of each path is based on Gaussian distribution. An embodiment of the present disclosure suggests a method of measuring a PLR based on a packet distribution vector before determining a code rate. It is assumed that each path is independently separated in a system according to an embodiment of the present disclosure. In this instance, the PLR of the ith path is modeled in a normal distribution as shown in Equation 17.
PLRi˜N(μPLR
In Equation 17, PLRi denotes a PLR random parameter of the ith path, and μPLR
In Equation 18, Npath denotes the number of available paths.
A PLR (plrtotal({right arrow over (PS)})) may be calculated by applying Q function to Equation 18 and considering all of the paths within an error rate of ρerr, as shown in Equation 19.
A decoding failure rate of a raptor code may be calculated based on the total PLR calculated in Equation 19. When a size of a symbol is s, the number of source symbols is k, and a code rate is c, the raptor decoding failure rate (φdec(s,k,c,{right arrow over (PS)}) may be estimated using a binomial distribution, as shown in Equation 20.)
In Equation 20, φdec(s,k,c,{right arrow over (PS)}) denotes a decoding failure rate of a raptor code, pmin(s,k) denotes the number of packets required or used for successful raptor decoding, and penc(s,k,c) denotes the number of packets in an encoded block.
The raptor code rate may be determined based on the decoding failure rate of the raptor code, as shown in Equations 21 and Equation 22.
In Equation 22, Φmax denotes an allowable raptor decoding failure rate.
5. Determination of a Raptor Encoding Parameter
A size of a symbol and the number of source symbols included in a block, which are raptor encoding parameters, may significantly affect the raptor encoding performance. The number of source symbols is determined based on the performance of a device, a network state, and a buffer state of a receiving end. The size of the symbol and the number of source symbols included in a block according to an embodiment of the present disclosure are determined by Equation 23. That is, the size s of the symbol and the number k of the symbols that minimize or sufficiently reduce a cost function Ω(s,k) may be determined by Equation 23.
In Equation 24, enctime(s,k,c({right arrow over (PS)}(s,k))) denotes a raptor encoding time, time(s,k) denotes an approximated raptor decoding time in a receiving side, and χ is constant between 0 and 1.
In Equation 24, Ssise denotes a set of available symbol sizes and is expressed as Ssize={s0size, s1size, . . . , s|S
PF(s,k)=Ω(s,k)+λ·max (ψ(s,k),0) [Equation 25]
In Equation 26, λ denotes a Lagrange multiplier. s and k that satisfy the constraint of Equation 23 and simultaneously minimize or sufficiently reduce the penalty function PF(s,k), may be the optimal raptor encoding parameters.
6. Raptor Encoding Parameter Determining Algorithm
Hereinafter, s denotes Sisize, k denotes Sinum, and Ci denotes a code rate, that is, c.
The penalty function Ω(s,k) is expressed in a form of a convex function. Accordingly, optimal values may be obtained by repeatedly executing a process that selects s and k which have the lowest penalty function value from among s and k values from any s and k values to adjacent s and k values included in Ssize and Knum
In operation 801, a controller sets s, k, and λ values to values determined in a previous block. In operation 803, the controller determines whether a current block is a first block. When the block is different from the first block, the controller executes operation 801. However, when the block is the first block, the controller set the s, k, λ values to initial values, that is, s0size, k0num, and λinit. A set Vvisit of visited symbol parameters and a set Vend of candidate symbol parameters are empty. When s and k are included in Vvisit, the controller skips operation 807. Conversely, when s and k are not included in Vvisit, the controller determines a packet distribution vector {right arrow over (PS)}(s,k) of a source symbol based on the PCI (Equation 13). In operation 809, the controller determines an optimal code rate c({right arrow over (PS)}(s,k)) of which a raptor decoding failure rate is less than or equal to Φmax, based on the determined
In operation 811, the controller calculates a penalty function Ω(s,k) based on the value c(
After selecting the s and k values, the controller determines whether s and k are identical to previous values in operation 815. When the values are identical to the previous values, the controller terminates the algorithm. When the values are different from the previous values, the controller repeats operations from operation 801 with respect to the selected s and k (or adjacent s and k).
When a general unsystematic fountain code, excluding the raptor code, is used, a method of calculating complexity will be described with reference to
Referring to
When the number of source symbols is Sinum and a code rate is Ci, the number of times of XOR of the LT matrix (GLT
When a size of a symbol is Sisize based on Equation 28, the LT encoding time may be calculated as shown in Equation 29 and Equation 30.
enctime(sisize,sinum,ci)=γcoefenc(sisize)·XORbyteenc(si,sinum,ci) [Equation 29]
XORbyteenc(sisize,sinum,ci)=sisize·XORLT
In Equation 29, γcoefenc(sisize) denotes an XOR operation coefficient for encoding, and is different based on the hardware performance of a device that executes LT encoding. A system according to an embodiment of the present disclosure calculates an XOR operation coefficient before communication begins.
When the number of source symbols is sinum and a code rate is Ci, the number of times of XOR of the LT matrix (GLT
When a size of a symbol is Sisize based on Equation 31, an LT decoding time may be calculated as shown in Equation 32 and Equation 33.
dectime(sisize,sinum)=γcoefdec(sisize)·XORbytedec(sisize,sinum) [Equation 32]
XORbytedec(sisize,sinum)=sisize·XORLT
In Equation 32, γcoefdec(sisize) denotes an XOR operation coefficient for decoding, and is different based on the hardware performance of a device that executes LT decoding. A system according to an embodiment of the present disclosure calculates an XOR operation coefficient before communication begins.
A transmitter for LT decoding may fail to calculate XORLT
byte
dec(sisize,sinum)=sisize·LT
time(sisize,sinum)=γcoefdec(sisize)·bytedec(sisize,sinum) [Equation 34]
A system according to an embodiment of the present disclosure may have various network interfaces, such as 3G, LTE, and the like, in addition to WiFi. In those circumstances, when an image is not smoothly streamed through a single network due to a great number of users, the image may be stably streamed using multiple paths. The present disclosure may use a raptor code to restore a packet loss caused by interference of a wireless channel, so as to satisfy the request from a user, and may set an optimal raptor encoding parameter based on a user terminal or network environments, so as to smoothly stream an image, as compared to the conventional technologies.
Although the method has been described based on the specific embodiments, the method may be implemented as computer readable codes in a computer readable recording medium. The computer-readable recording medium includes all types of recording devices which store data readable by a computer system. Examples of the computer-readable recording medium include a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, an optical data storage device, and the like, and includes implementations in the form of a carrier wave (for example, transmission through the Internet). The computer readable recording medium may be dispersed to computer systems connected to one another through a network, and store and execute computer readable codes in a dispersion manner. Further, functional programs, codes and code segments for the implementation of the embodiments may be easily inferred by programmers in the art which the present disclosure pertains to.
Although the present disclosure has been described with an exemplary embodiment, various changes and modifications may be suggested to one skilled in the art. It is intended that the present disclosure encompass such changes and modifications as fall within the scope of the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
10-2013-0125216 | Oct 2013 | KR | national |