WO2010139265A1 - 基于前向纠错的重传方法、设备和通信系统 - Google Patents

基于前向纠错的重传方法、设备和通信系统 Download PDF

Info

Publication number
WO2010139265A1
WO2010139265A1 PCT/CN2010/073425 CN2010073425W WO2010139265A1 WO 2010139265 A1 WO2010139265 A1 WO 2010139265A1 CN 2010073425 W CN2010073425 W CN 2010073425W WO 2010139265 A1 WO2010139265 A1 WO 2010139265A1
Authority
WO
WIPO (PCT)
Prior art keywords
source data
lost
symbol
received
client
Prior art date
Application number
PCT/CN2010/073425
Other languages
English (en)
French (fr)
Inventor
鲁亚东
陈兵
艾常权
张卫娥
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to EP10782969.9A priority Critical patent/EP2437421B1/en
Publication of WO2010139265A1 publication Critical patent/WO2010139265A1/zh
Priority to US13/309,351 priority patent/US9100180B2/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1812Hybrid protocols; Hybrid automatic repeat request [HARQ]
    • H04L1/1819Hybrid protocols; Hybrid automatic repeat request [HARQ] with retransmission of additional or different redundancy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1621Group acknowledgement, i.e. the acknowledgement message defining a range of identifiers, e.g. of sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1812Hybrid protocols; Hybrid automatic repeat request [HARQ]
    • H04L1/1816Hybrid protocols; Hybrid automatic repeat request [HARQ] with retransmission of the same, encoded, message
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1835Buffer management
    • H04L1/1845Combining techniques, e.g. code combining

Definitions

  • Embodiments of the present invention relate to the field of communication transmission, and in particular, a retransmission method based on forward error correction, a client device, a server, and a communication system.
  • Background technique
  • Packet-switched networks are being used to transport streaming media content, and video and audio data is transmitted from a media server to multiple recipients, including computer terminals and set-top boxes, and the like.
  • packet switching network there is a packet loss.
  • FEC Forward Error Correction
  • ARQ Automatic Retransmission Request
  • the transmitting end transmits the source data packets PKT1, ⁇ 2, ⁇ 3, ... carrying the media data, and simultaneously caches the media data packets in the retransmission module. Because each streaming media packet has a life cycle, these media data packets need only be cached for a certain period of time. All or part of the source data packet is FEC-encoded to generate a certain ratio of FEC check data packets RPKT1, RPKT2, ..., which are sent to the receiving end together with the corresponding source data packet. When a packet loss occurs after the media stream is transmitted through the network, the receiving end attempts an FEC decoding operation to recover the lost source data packet.
  • the recovered source data packet is sent to the upper layer application; if the decoding fails, the FEC check data packet is discarded, and a retransmission request is sent to the repair module, requesting retransmission of the lost source data packet.
  • the repair module receives the retransmission request and determines whether the retransmission request is valid by estimating the play time of the source data packets that are required to be retransmitted; if valid, the requested source data packet is sent to the receiving end.
  • Receiving The terminal receives the retransmitted source packet and sends it to the upper application.
  • An embodiment of the present invention provides a retransmission method based on forward error correction, and on the other hand, can implement a client device, a server, and a communication system based on forward error correction retransmission, which can effectively utilize the client to receive the retransmission.
  • Data reduce network resources occupied by retransmissions.
  • Source data payload When the received source data packet is lost, determining whether the received source data payload and the verification data can be used to decode all the lost data.
  • the received source data payload and the check data are used to determine the source data symbols required to decode all the lost source data payloads; requesting retransmission of the required source data Source data symbol.
  • Another method for retransmission based on the forward error correction includes: receiving, by the server, a packet loss situation that is fed back by the client, where the packet loss situation includes a packet loss situation and a school corresponding to the source data of the client device.
  • the packet loss situation corresponding to the data is detected; wherein, the packet loss situation is caused by the client receiving the lost source data packet, and the received source data payload and the check data cannot be used to decode all the lost source data.
  • the server determines the source data symbols required to decode all the lost source data payloads of the client according to the packet loss situation fed back by the client;
  • the server sends the required source data symbols to the client.
  • a first receiving module configured to receive a source data packet carrying a payload of the source data and a verification data packet carrying the verification data
  • a judging module configured to determine whether the received source can be utilized when the source data packet is lost Data payload and check data decode all lost source data payloads
  • a determining module configured to determine, by using the received source data payload and the check data, the source data symbols required to decode all the lost source data payloads if the lost source data payload cannot be decoded;
  • the first sending module is configured to send a retransmission request message to the server, requesting to retransmit all or part of the required source data symbols.
  • the communication system provided by the embodiment of the present invention includes the client device and the server.
  • the server includes: a second receiving module, configured to receive a retransmission request message sent by the client device, where the retransmission request message is carried The ESI of the source data symbol to be retransmitted by the client device; the second reconstruction module is configured to generate the reconstructed data block by using the source data payload carried in all the source data packets in the cache for a period of time; And the method for extracting the source data symbol to be retransmitted from the reconstructed data block according to the ESI of the source data symbol to be retransmitted; the second sending module, configured to send the extracted source data symbol to be retransmitted to Client device.
  • the fourth receiving module is configured to receive a feedback message that is sent by the client device and that is configured to carry the packet loss situation of the client device, where the retransmission request message carries the packet loss corresponding to the source data of the client device and the corresponding data of the verification data. Packet loss situation; wherein, the packet loss condition is caused by the client when the received source data packet is lost, and the received source data payload and the check data cannot be used to decode all the lost source data payloads, Server sends
  • a fourth determining module configured to determine, according to a packet loss situation fed back by the client device, a source data symbol required to decode all lost source data payloads of the client device; and a fourth sending module, configured to use the required source All or part of the data symbol is sent to the client device.
  • Another communication system provided by the embodiment of the present invention includes the foregoing server and client device;
  • the client device includes: a third receiving module, configured to receive a source data packet carrying a payload of the source data and a verification data packet carrying the verification data; and a third determining module, configured to: when the source data packet is lost, Determining whether the received source data payload and the check data can be used to decode all the lost source data payloads; the third sending module is configured to send the carrying client to the server if the lost source data payload cannot be decoded Feedback message of the packet loss of the end device.
  • the received source data payload and the check data are used to determine Decoding all the source data symbols required for the lost source data payload, and requesting to retransmit all or part of the required source data symbols. Therefore, the technical solution provided by the embodiments of the present invention can fully utilize the received data packets.
  • the source data payload and check data improve the utilization of data symbols, P is less waste of data, and since the required source data symbols are generally less than the missing source data symbols, the required source is retransmitted. When the data symbol is retransmitted only the part of the missing source data symbol, the bandwidth overhead can be reduced.
  • FIG. 1 is a flowchart of a method for retransmission based on forward error correction according to Embodiment 1 of the present invention
  • FIG. 2 is a schematic structural diagram of a source data block in a method according to Embodiment 1 of the present invention
  • FIG. 3 is a schematic structural diagram of reconstructing a data block in a method according to Embodiment 1 of the present invention.
  • FIG. 4 is a schematic diagram of a matrix of a forward error correction pattern in the method according to Embodiment 1 of the present invention.
  • 5a is a schematic diagram of a lost moment P car A in the method according to the first embodiment of the present invention.
  • 5b to 5d are schematic diagrams of a full rank matrix B in the method according to the first embodiment of the present invention.
  • FIG. 5e is a schematic diagram of another type of loss matrix A' in the method according to the first embodiment of the present invention
  • FIG. 6 is a schematic diagram of a retransmission request message in the method according to the first embodiment of the present invention.
  • FIG. 7 is a flowchart of a method for retransmission based on forward error correction according to Embodiment 2 of the present invention.
  • FIG. 8a is a schematic diagram of a NACK format in a method according to Embodiment 2 of the present invention.
  • FIG. 8b is a schematic diagram of an RTCP extended packet in a method according to Embodiment 2 of the present invention.
  • FIG. 8c is a diagram showing the format of the report blocks of the RTCP extended text in the method according to the second embodiment of the present invention. Intention
  • FIG. 9a is a schematic structural diagram of a communication system according to Embodiment 3 of the present invention.
  • FIG. 9b is a schematic structural diagram of a client in a communication system according to Embodiment 3 of the present invention.
  • FIG. 9c is a schematic structural diagram of a retransmission device in a communication system according to Embodiment 3 of the present invention
  • FIG. 10a is a schematic structural diagram of a communication system according to Embodiment 4 of the present invention.
  • FIG. 1 is a schematic structural diagram of a third client in a communication system according to Embodiment 4 of the present invention
  • FIG. 10c is a schematic structural diagram of a third retransmission device in a communication system according to Embodiment 4 of the present invention.
  • an embodiment of the present invention provides a retransmission method based on forward error correction, and the method includes the following steps:
  • Step 10 Receive a source data packet carrying the payload of the source data and a verification data packet carrying the verification data.
  • One source data packet may carry one or more source data payloads
  • one verification data packet may carry one or Multiple verification data.
  • one source data block includes a plurality of source data, each source data may occupy one or more symbols (Symbol) storage space, and source data of one symbol is referred to as a source data symbol;
  • the source data block is a storage area composed of a plurality of symbols.
  • the source data block is constructed by filling the source data into the source data block in units of symbols, that is, the source data is written into the storage area of the source data block in units of symbols. in.
  • Figure 2 shows A source data block is generated.
  • Each row of the source data block represents fixed-length data.
  • the data of each row is called a symbol, and each symbol corresponds to an ESI (Encoding Symbol ID), and each symbol corresponds to it.
  • ESI Encoding Symbol ID
  • ESI is used to identify; ESI is an identifier agreed by the sending and receiving parties, which can be numbered according to the agreed rules, for example, using a code table or sequentially incrementing or decrementing from an initial value.
  • the ESI in Figure 2 exemplarily uses the natural number order number.
  • a column of numbers to the left of the source data block (1, 2, ⁇ K, ⁇ +1, ⁇ +2, ⁇ , ... ⁇ + ⁇ ) is the ESI corresponding to each symbol.
  • each source data may include: a flow label F of a flow (flow) where the source data payload is located, a length value L of the source data payload, and a data area D filling the source data payload, Filling the padding area P of the remaining bits; wherein, the padding area P is optional, when the data area D just fills the last symbol, the last symbol occupied by the source data has no padding area P (refer to the symbol in FIG. 2) M-1) ; When there is only one stream, the stream label F is also optional.
  • the first source data includes symbol 1 (ie, line 1, ESI is a symbol of 1) and symbol 2; and another source data in the source data block includes symbol 1:, symbol K +1 and the symbol K+2.
  • the source data payload in a source data is called a source data payload, that is, each source data includes a source data payload; a source data number, and a source data payload can correspond to one or more source data symbols.
  • the transmitting end performs forward error correction coding on the source data symbols in the constructed source data block to generate one or more parity data, where the forward error correction coding can use various forward error correction coding algorithms.
  • the present invention is not limited to this; wherein different source data symbols can be separately verified to generate multiple check data, and different check data is obtained by forward error correction coding by different source data symbols, or All source data symbols in the source data block generate one parity data, or one or more parity data is generated according to certain rules (such as a forward error correction pattern).
  • the check data may also be added to the end of the source data block. Each check data may occupy a storage space of one or more symbols, and the check data of one symbol is called a check data symbol. .
  • the M-1 line is the source data
  • the last added source data symbol in the block adds one or more generated check numbers to the M rows to the M+n rows of the source data block.
  • the check data symbols and the source data symbols are in sequential ESI.
  • the numbering rule; or, after generating the check data, the check data may be used as a separate check data block, and the check data block adopts a different SBN (Source Block Number) than the source data block constructed above.
  • the check data may adopt an independent ESI numbering rule, and the check data symbol corresponds to the same SBN as the source data symbol in the source data block constructed above, for example, SBN is 1
  • the ESI of the source data symbols in the source data block is 1 to 100, and the check data generated by using these source data symbols occupies 20 symbols, and the ESI of the 20 check data symbols is 1 to 20, thus, 100
  • the source data symbols and the 20 check data symbols correspond to the same SBN, and the SBNs of both are both 1, and a certain identifier can be used to distinguish the source data symbols and the check data symbols corresponding to the same SBN.
  • the source data packet and the check data packet are respectively sent through different ports, so that the port number corresponding to the payload of the source data is different from the port number corresponding to the check data, so that the receiving end can distinguish the corresponding SBN by the port number.
  • Source data payload and parity data are respectively sent through different ports, so that the port number corresponding to the payload of the source data is different from the port number corresponding to the check data, so that the receiving end can distinguish the corresponding SBN by the port number.
  • a source data includes a source data payload that can be carried in one
  • one or more check data symbols included in one check data may be carried in a check data packet, for example, the source data payload included in the first source data in FIG. 2 (ie, the first data packet)
  • the source data symbol 1 of the row and the source data payload filled in the data area D of the source data symbol 2 of the second row are carried in a source packet.
  • multiple source data payloads may also be carried in one source data packet, and multiple calibration data may also be carried in a verification data packet, which is not limited herein.
  • Step 11 When the source data packet is lost, it is judged whether the received source data payload and the check data can be used to decode all the lost source data payload.
  • Determining that the source packet is lost may be: The receiving end utilizes the carried in the received source packet The source data payload generates a reconstructed data block. If the reconstructed data block is missing part of the source data payload, the source data packet is lost, and the missing source data payload (ie, the lost source) in the reconstructed data block can be further determined. ESI of the source data symbol corresponding to the data payload; or, if the sequence number of the received source packet is not continuous, the source packet is lost.
  • determining whether the received source data payload and the check data can be used to decode all the lost source data payload may be: source data symbols corresponding to the lost source data payload If the number is greater than the number of received check data symbols, it is determined that the received source data payload and the check data symbol cannot be used to decode all the lost source data payloads. Conversely, when less than or equal to, the number is determined.
  • the reconstructed data block adopts the same structure as the source data block, and is also a storage area composed of a plurality of symbols. Referring to FIG. 3, the storage space including the plurality of symbols in the reconstructed data block, the storage space of each symbol A source data symbol or a check data symbol can be written. One source data or one check data can occupy one or more symbol storage spaces.
  • the storage space of each symbol corresponds to one ESI, that is, each ESI specifies a weight. Construct a position in the data block.
  • the receiving end generates the reconstructed data block by using the source data payload carried in the received source data packet, which may be: according to the ESI of the first source data symbol in the source data symbol corresponding to the received source data payload, each source The data payload is filled in the reconstructed data block by using the position specified by the ESI of the first source data symbol corresponding to the payload of the source data as a starting position, thereby generating a reconstructed data block.
  • the reconstructed data block is missing part of the source data payload: If there is a null symbol between the source data in the reconstructed data block, it is determined that the reconstructed data block is missing part of the source data payload; or if the total length of the source data in the reconstructed data block is smaller than the source data block If the total length of the intermediate source data is determined, the reconstructed data block is missing part of the source data payload; or, if the last empty symbol in the reconstructed data block, it is determined that the reconstructed data block is missing part of the source data. Net load.
  • the total length of the source data in the source data block may be represented by the number of source data symbols in the source data block or the number of bytes of the source data in the source data block, which may be transmitted by the transmitting end to the receiving end through the data packet, or by the transmitting end. It is agreed with the receiving end or by the forward error correction pattern.
  • the following example illustrates how to determine the ESI of the source data symbol corresponding to the missing source data payload (ie, the lost source data payload) in the reconstructed data block.
  • the transmitting end sends four source data packets, and the receiving end only receives three source data packets; the first source data symbol corresponding to the source data payload carried in the first source data packet received by the receiving end
  • the ESI is 1, the ESI of the first source data symbol corresponding to the payload of the source data carried in the second source data packet is 4, and the first source corresponding to the payload of the source data carried in the third source data packet
  • the ESI of the data symbol is 8; the receiving end is based on the ESI of the first source data symbol corresponding to the source data payload carried in the received first source data packet (the ESI is 1), with the symbol 1 as the starting position.
  • the source data payload corresponding to the data symbol 7 is lost during transmission, and the receiving end fails to receive the source data payload corresponding to the source data symbol 6 and the source data symbol 7.
  • the total length of the source data in the source data block may be used. Determining the last source data symbol missing in the reconstructed data block; for example, referring to the reconstructed data block shown in FIG. 3, if the total length of the source data in the source data block is 8 symbols, reconstructing the data block The last source data symbol is not missing, so only the source data symbol 6 and the source data symbol 7 are missing from the reconstructed data block.
  • the reconstructed data block is missing.
  • the last source data symbol missing in the reconstructed data block may be determined according to the ESI of the last source data symbol in the source data block.
  • the ESI of the last source data symbol in the source data block can be transmitted by the transmitting end to the receiving end through the data packet, or when the check data symbol and the source data symbol adopt the sequential ESI numbering rule, the first check is performed
  • the ESI of the data symbol is subtracted by a numbering step to obtain the ESI of the last source data symbol; for example, referring to the reconstructed data block shown in FIG. 3, if the ESI of the first parity data symbol is 10, then the last The ESI of a source data symbol is 9.
  • the storage location corresponding to the source data symbol with the ESI of 9 in the reconstructed data block is empty, and the last empty symbol in the reconstructed data block (source data symbol 9)
  • the last source data symbol 9 is missing from the reconstructed data block, so that the source data symbol 6, the source data symbol 7, and the source data symbol 9 are missing in total in the reconstructed data block.
  • the reconstruction of the data block corresponding to the verification data may be similar to the generation of the reconstructed data block of the source data, and the deletion of the verification data in the data block corresponding to the verification data may be adopted and determined to be lost.
  • the source data symbol is similarly.
  • each check data symbol is filled in a position specified by ESI in the data block corresponding to the check data, thereby generating a data block corresponding to the check data; or, according to the received ESI of the first check data symbol in each check packet, one or more check data symbols in each check packet, with the first check data in the check packet
  • the position specified by the ESI of the symbol is used as the starting position, and one or more check data symbols in the check data packet are sequentially filled into the data block corresponding to the check data, thereby generating data corresponding to the check data.
  • the data block corresponding to the check data may be a block different from the reconstructed data block of the source data, and the two are independent of each other, and each adopts an independent ESI numbering rule; or, the data block corresponding to the check data may be the source.
  • a portion of the reconstructed data block of data for example, with reference to the reconstructed data block shown in Figure 2, the check data symbols and the source data symbols are in sequential ESI numbering rules.
  • the receiving end and the transmitting end have the same forward error correction pattern (FEC Scheme), and the forward error correction pattern is a specification of a specific forward error correction code.
  • the forward error correction pattern is used for forward error correction coding and decoding, and the forward error correction pattern can be represented by a matrix or a vector group; wherein, one row or one column in the matrix corresponds to one parity data, and the row or column represents The corresponding check data is generated, or one row vector or one column vector in the vector group corresponds to one check data, and the one row vector or one column vector indicates the manner in which the corresponding check data is generated. Referring to FIG. 4, FIG. 4, FIG.
  • FIG. 4 is a schematic diagram showing a forward error correction pattern in a matrix form, wherein one row of the forward error correction pattern matrix corresponds to one parity data, and three calibration data are used.
  • the element in the matrix indicates whether the source data symbol corresponding to the element is used to generate the check data corresponding to the element; in the forward error correction pattern matrix of FIG. 4, an exemplary assumption is that when the value of the element is 1, the use is performed.
  • the source data symbol corresponding to the element is used to generate check data corresponding to the element.
  • the source data symbol corresponding to the element is not used to generate check data corresponding to the element, for example, forward error correction.
  • the element value of row 3 and column 1 of the pattern matrix is 1, it means that the third check data is generated by using the first source data symbol (ie, source data symbol 1), and all the elements in the third row can be combined.
  • the third check data is generated by forward error correction coding by source data symbol 1, source data symbol 2, and source data symbol 8.
  • the value of the element is not limited to 0, 1, Use any two different values or symbols to indicate whether the source data symbol corresponding to the element is used to generate the check data corresponding to the element.
  • the current error correction pattern is in the form of a matrix
  • each source data symbol corresponds to a column of the forward error correction pattern matrix, and the number of source data symbols in the source data block is equal to the number of columns of the forward error correction pattern matrix; or, the current error correction pattern is in the form of a matrix, and each The source data symbols correspond to one row of the forward error correction pattern matrix, and the number of source data symbols in the source data block is equal to the number of rows of the forward error correction pattern matrix; or, the current error correction pattern is in the form of a column vector group (ie, each The column vector corresponds to one parity data), and each source data symbol corresponds to an element of the same position of each column vector in the forward error correction pattern column vector group, and the number of source data symbols in the source data block is equal to the column vector group
  • the dimension of each column vector; or, the current error correction pattern is in the form of a row vector group (ie, each row vector corresponds to one parity data), and each source data symbol corresponds to a forward error
  • the number of source data symbols in the source data block is equal to the dimension of each row vector in the row vector group.
  • each source data symbol corresponds to one column of the matrix, and the number of columns of the forward error correction pattern matrix is 9, and the number of source data symbols in the source data block is 9, that is, there are 9 sources in the source data block.
  • the data symbol, the ESI of the nine source data symbols is 1 to 9; at this time, taking the reconstructed data block of FIG. 3 as an example, the ESI of the source data symbols existing in the reconstructed data block is 1 to 5, 8.
  • the source data symbol 6, the source data symbol 7, and the source data symbol 9 are missing in total in the reconstructed data block.
  • Step 12 If all the lost source data payloads cannot be decoded, use the received source data payload and the check data to determine the source data symbols required to decode all the lost source data payloads;
  • the source data symbols can be represented by their corresponding ESIs.
  • determining the source data symbols required to decode all lost source data payloads may be: After generating the reconstructed data block, using the received source data payload corresponding to The source data symbol (hereinafter referred to as the received source data symbol) and the received check data symbol decode the source data symbol corresponding to the partially lost source data payload by forward error correction (hereinafter referred to as the lost source data symbol).
  • the decoded source data symbols are referred to as recovered source data symbols, and the source data symbols other than the recovered source data symbols are removed from the lost source data symbols as required to decode all lost source data payloads.
  • a source data symbol wherein the required source data symbol cannot be recovered by forward error correction decoding using the received source data symbol and the check data symbol; or, the received source data symbol is used to determine the missing source data symbol And determining, by using the received forward error correction pattern and the missing source data symbol, the minimum repair source data symbol set, and using the minimum repair source data symbol set as the decoded source data payload The required source data symbol. It should be noted that in most cases, the required source data symbols are part of the missing source data symbols; in rare cases, for example, the received parity data symbols are completely unusable for decoding loss.
  • the source data symbol (ie, the received parity data symbol has no parity relationship with the missing source data symbol), may cause the required source data symbols to be all of the missing source data symbols, since the probability of occurrence is very small It can be ignored, and therefore, the technical solution of the present invention is universal and versatile.
  • the missing source data symbols are source data symbol 6, source data symbol 7, and source data symbol 9, each of which includes a check data symbol
  • the three check data are check data symbol 1, check data symbol 2 and check data symbol 3, respectively
  • the source data symbol determines that the minimum repair source data symbol set may be:
  • the first to third lines of the forward error correction pattern matrix ie, the check data symbol 1, the checksum Data symbol 2 and check data symbol 3 correspond to three rows
  • columns 6, 7, and 9 in rows 1 to 3 ie, source data symbol 6, source data symbol 7, and source data symbol 9 correspond to three).
  • the elements of the column are taken out to form a missing matrix A as shown in Fig. 5a (Figs. 5a to 5d mark the ESI number of the source data symbol corresponding to each column of the missing matrix A), and the missing matrix A is used to indicate the received Check data symbols and missing source data symbols Corresponding relationship; find the largest linearly independent group of the row vector of the missing matrix A (ie, the vector consisting of some elements from the vector corresponding to the check data symbols 1, 2, 3) (ie, the row vector (0 1 1), (1 1 0) ) , the rank of the largest linearly independent group is 2, so 1 (the dimension of the vector minus the rank 2 of the largest linearly independent group) vector is required to form a full rank matrix; Based on the maximum linearly independent group of the row vector group of the missing matrix A, the unit row vector is added to generate the full rank matrix B, where the unit vector is added because the unit vector is the simplest, and of course, the non-unit vector can also be used.
  • the three-dimensional unit row vector has three (1 0 0), (0 1 0), (0 0 1), you can randomly and sequentially select one from the above three unit row vectors.
  • the linear irrelevant group is combined to generate a third-order matrix, and then it is judged whether the generated third-order matrix is full rank, and one or more source data symbols corresponding to the element whose value of the unit vector added in the full rank matrix B is 1 is the minimum repair source data.
  • the minimum repair source data symbol set at this time For the source data symbol 6 (ie, the source data symbol corresponding to the element with a value of 1 in the row vector (1 0 0)), similarly, when generating the full rank matrix B as shown in Figure 5c, the minimum repair source data symbol at this time 7 is a combined source data symbols, when generating the full-rank matrices B 5d in the figure, in this case a minimum set of data symbols for the source data symbols repairing source 9.
  • the receiving end only receives part of the check data, for example Only the check data symbol 1 and the check data symbol 3 are received, and the first row and the third row of the forward error correction pattern matrix (ie, the two rows corresponding to the check data symbol 1 and the check data symbol 3) are valid.
  • the missing matrix A as shown in Fig. 5e is formed, and then the largest linearly independent group of the row vector group of the missing matrix A is obtained.
  • determining the minimum repair source data symbol set by using the forward error correction pattern and the missing source data symbol corresponding to the received check data symbol may also be: adding the missing source data symbol in the forward error correction pattern, The least amount of the added missing source data symbols corresponding to the error correction pattern matrix can be used as the minimum repair source data symbol set.
  • Adding the missing source data symbols in the forward error correction pattern may specifically be: First, adding any one of the missing source data symbols in the forward error correction pattern (ie, assuming that any of the missing source data symbols are received) a), and then determine whether the forward error correction pattern matrix is solvable when a missing source data symbol is added (ie, if one of the missing source data symbols is received, can the actual use be utilized?
  • the missing source data symbols are source data symbol 6, source data symbol 7, and source data symbol 9, and received three.
  • the check data symbols are check data symbol 1, check data symbol 2 and check data symbol 3 respectively; first, source data symbol 6, source data symbol 7, and source data symbol 9 are respectively added in the forward error correction pattern And it can be judged that when any one of the source data symbol 6, the source data symbol 7, and the source data symbol 9 is added in the forward error correction pattern, the forward error correction pattern matrix can be solved, so the minimum repair source data symbol
  • the set may be any of source data symbol 6, source data symbol 7, and source data symbol 9.
  • Step 13 Request to retransmit all or part of the required source data symbols.
  • the source data symbols required by the receiving end to request retransmission may be: request to retransmit all required source data symbols; or, request Retransmitting a portion of the required source data symbols, for example, only retransmits the portion of the source data symbols corresponding to the important data in the desired source data symbols, where the important data may be I-frame data in the video stream.
  • the receiving end may send a retransmission request to the retransmission device (which may be a retransmission server or other network node having a function of responding to the retransmission request) to obtain all or part of the required source data symbols.
  • the receiving end can be based on the received source data symbols, the received parity data symbols, and the required retransmissions required for reception.
  • the source data symbol is subjected to forward error correction decoding to decode all or part of the important missing source data symbols, thereby obtaining the required source data.
  • the format of the retransmission request packet may be in the form shown in FIG. 6.
  • the SBN indicates the source data block label of the code symbol to be retransmitted, and the ESC (coding symbol count) indicates that The number of retransmitted coded symbols, ESI indicates the coded symbol identifier of the coded symbol to be retransmitted, and one retransmission request may include one or more ESIs (ESI1, ESI2, ESIn in Figure 6), padding is a padding bit .
  • the retransmission device may adopt a flexible manner when transmitting the data symbol that is required to be retransmitted: the retransmission device sends the retransmitted coding symbol to the receiving end once or repeatedly.
  • the retransmission device performs forward check coding on the coded symbols that require retransmission, generates new check data, and sends the coded symbols requiring retransmission and the new check data to the receiving end, so that even the code requiring retransmission is required.
  • the symbol is lost when it is sent to the receiving end, and the receiving end may also recover the lost coded symbol that is retransmitted according to the new check data.
  • the received source data payload and the check data are used to determine that all the lost source data is decoded.
  • the embodiment of the present invention provides another retransmission method based on forward error correction, and the method includes the following steps:
  • Step 70 The client receives the source data packet carrying the payload of the source data and carries the check data.
  • Check packet one source packet can carry one or more source data payloads, and one check packet can carry one or more check data.
  • Step 71 When the source data packet is lost, the client determines whether the lost source data payload can be decoded by using the received source data payload and the check data.
  • Step 72 If the lost source data payload cannot be decoded, the client feeds back the packet loss condition to the retransmission device.
  • the client may report the packet loss condition to the retransmission device, which may be: the client feeds back the packet loss corresponding to the source data to the retransmission device, and the packet loss situation corresponding to the verification data.
  • the packet loss corresponding to the source data may be expressed as follows: the sequence number of the source packet received by the client, or the sequence number of the source packet lost by the client, or the ESI of the source data symbol received by the client, or The ESI of the source data symbol lost by the client;
  • the packet loss corresponding to the check data may be expressed as follows: the sequence number of the check packet received by the client, or the sequence number of the check packet lost by the client, Or ESI of the check data symbol received by the client, or ESI of the check data symbol lost by the client.
  • the ESI of the source data symbol received or lost by the client and the ESI of the check data symbol may be determined by using the reconstructed data block, and after the reconstructed data block is generated, the source data symbol existing in the reconstructed data block is reconstructed.
  • the check data symbol is the source data symbol or the check data symbol received by the client, and the reconstructed data block is missing.
  • the symbol, source data symbol or check data symbol can be represented by the ESI corresponding to the symbol.
  • NACK Negative ACKnowledgment
  • IsSrc 1 Byte, 1 indicates the source data, 0 indicates the check data; startEsi: 2 bytes, indicating the starting ESI of the missing symbol; count: 2 bytes, indicating the number of consecutive symbols lost from startEsi; isSrc, startEsi, count
  • the constituent triples can appear multiple times in the message to indicate the loss of the source data or the check data.
  • the RTCP Real-Time Transport Control Protocol
  • the general format of the extended packet can be as shown in Figure 8b. Blocks are used to feedback packet loss.
  • the specific format of the report blocks can be referred to Figure 8c, where type-specific: defaults to 0; block length: indicates the size of the report blocks; SBN: indicates the SBN of the missing symbols; srcCount: indicates how many of the 4 ⁇ texts exist (begin-Src- ESI, src_count) Binary group, one such group represents the loss of a continuous symbol in the source block; RbCount: indicates how many (begin-Rb-ESI, rb-count) binary groups exist in the message, One such binary group represents the loss of a contiguous symbol in the check block; begin_ Src_ ESI: ESI of the first symbol in a consecutive missing symbol in the source data block; src_count: a segment in the source data block The number of consecutive missing symbols; begin- Rb—ESI: the ESI of the first symbol in a consecutive missing symbol in the parity block; rb—count: a consecutive missing symbol in the parity block Number.
  • Step 73 The retransmission device determines, according to the packet loss situation fed back by the client, the source data symbol required to decode all the lost source data payload of the client; wherein, the required source data symbol can be represented by its corresponding ESI. .
  • the retransmission device stores all the source data packets in a period of time and all the verification data packets in the period of time; thus, when receiving the packet loss situation fed back by the client, the retransmission device knows that the client receives the packet.
  • the serial number of the source data packet or the serial number of the lost source data packet can determine the serial number of the source data packet lost by the client or the source data packet received by the client according to the serial number of all the source data packets.
  • the serial number afterwards, the retransmission device can generate a complete reconstructed data block without missing data by using the saved source data packet, and according to the data symbol without missing (ie, the lost source data symbol) and the source data received by the client.
  • the source data symbol corresponding to the source data payload in the packet (that is, the received source data symbol). Or because of the weight
  • the transmission device stores all the source data packets for a period of time. Therefore, the retransmission device can use the source data packet to generate a complete reconstructed data block without missing, so as to obtain the ESI of the source data symbols of all the source data packets;
  • the retransmission device knows the ESI of the source data symbol received by the client or the ESI of the missing source data symbol, and can determine the source data symbol or client lost by the client according to the ESI of the source data symbol of all the source data packets.
  • the manner in which the check data symbol lost by the client or the check data symbol received by the client is determined is similar to the manner in which the source data symbol is determined, and details are not described herein again.
  • the retransmission device can then use the source data symbols received by the client and the parity data symbols received by the client to determine the source data symbols required to decode all of the lost source data payloads of the client.
  • the retransmission device uses the source data symbol received by the client and the check data symbol received by the client to determine a source data symbol required to decode all the lost source data payloads.
  • Step 74 The retransmission device retransmits all or part of the required source data symbols to the client.
  • the retransmission device may adopt a flexible manner when transmitting all or part of the required source data symbols:
  • the retransmission device sends all or part of the required source data symbols to the client once or repeatedly. Multiple times; or, the retransmission device performs forward check coding on all or part of the required source data symbols, generates new check data, and sends all or part of the required source data symbols to the client and the new one.
  • the data is verified so that even if the required source data symbols sent by the retransmission device are lost when sent to the client, the client may recover the missing source data symbols based on the new parity data.
  • the client when the client cannot use the received source data payload and the check data to decode all the lost source data payloads, the client feeds back the packet loss situation to the retransmission device, and then the retransmission device utilizes the client.
  • the source data payload and check data received by the terminal determine the solution
  • the source data symbol of the source data payload is lost, and all or part of the required source data symbol is sent to the client. Therefore, the technical solution provided by the embodiment of the present invention can fully utilize the received data packet.
  • Source data payload and check data improve data symbol utilization, reduce data waste, and send the required source data symbols because the required source data symbols are generally less than the missing source data symbols. Only the part of the lost source data symbol is retransmitted, which can reduce the bandwidth overhead.
  • Embodiment 3 since the required source data symbol is determined by the retransmission server, the client only needs to feedback the packet loss situation, so the technical solution of the embodiment of the present invention can be compatible with the existing client, and only needs to upgrade the retransmission. The device is ready to improve system compatibility.
  • the present embodiment provides a communication system capable of performing retransmission based on forward error correction, and the system includes:
  • the media server 90 is configured to send a source data packet carrying the payload of the source data and a verification data packet carrying the verification data to the client 91, and send the source data packet carrying the payload of the source data to the retransmission device 92, or
  • the transmitting device 92 sends a source data packet carrying the payload of the source data and a verification data packet carrying the verification data;
  • the client 91 is configured to receive a source data packet carrying the payload of the source data and a verification data packet carrying the verification data.
  • a source data packet carrying the payload of the source data
  • a verification data packet carrying the verification data.
  • the retransmission device 92 is configured to buffer all the source data packets in a period of time; and send all or part of the required source data symbols to the client 91 according to all or part of the required source data symbols requested by the client 91 to be retransmitted. section.
  • the client 91 may use all or part of the required source data symbols as the source data symbols to be retransmitted, and carry the ESI of the source data symbols to be retransmitted in the retransmission request message.
  • the retransmission device 92 After receiving the retransmission request message, the retransmission device 92 sends the source data symbols corresponding to the ESI of the source data symbols to be retransmitted to the client 91 according to the ESI of the source data symbols to be retransmitted.
  • the client 91 may include: a first receiving module 911, configured to receive a source data packet carrying a payload of the source data and a verification data packet carrying the verification data; and a determining module 912, configured to be the source data.
  • a first receiving module 911 configured to receive a source data packet carrying a payload of the source data and a verification data packet carrying the verification data
  • a determining module 912 configured to be the source data.
  • the packet is lost, it is determined whether the received source data payload and the check data can be used to decode all the lost source data payloads; and the determining module 913 is configured to use if all the lost source data payloads cannot be decoded.
  • the received source data payload and the check data determine the source data symbols required to decode all the lost source data payloads; the first sending module 914 is configured to send a retransmission request message to the retransmission device 92, requesting heavy Pass all or part of the required source data symbol.
  • the client 91 may further include: a first reconstruction module 910, configured to generate a reconstructed data block by using a source data payload carried in the received source data packet.
  • the determining module 912 may further include: a first determining unit 9121, configured to: when the number of source data symbols (hereinafter referred to as lost source data symbols) corresponding to the lost source data payload is greater than the received check data symbol The quantity is judged to be unable to decode all the lost source data payloads by using the received source data payload and the check data symbols, and conversely, when less than or equal to, it is determined that all the lost source data payloads can be decoded. And/or, the second determining unit 9122 is configured to perform forward error correction decoding by using the source data symbol (hereinafter referred to as the received source data symbol) and the check data symbol corresponding to the received source data payload.
  • the received source data symbol hereinafter referred to as the received source data symbol
  • the determining module 913 may further include: a first determining unit 9131, configured to: after the generated reconstructed data block, use the received source data symbol and the received check data symbol to decode the partially lost by forward error correction Source data symbols, undecoded lost source data symbols as source data symbols required to decode all lost source data payloads; and/or second determining unit 9132 for determining with the received source data symbols The lost source data symbol, determining a minimum repair source data symbol set by using the forward error correction pattern and the missing source data symbol corresponding to the received check data symbol, and using the minimum repair source data symbol set as the decoding all lost The source data symbol required for the source data payload.
  • the retransmission device 92 may include: a second receiving module 921, configured to receive a retransmission request message sent by the client 91, where the retransmission request message carries a source to be retransmitted determined by the client 91.
  • the ESI of the data symbol the cache module 922 is configured to buffer all the source data packets in a period of time; the second reconstruction module 923 is configured to generate the weight of the source data payload carried in all the source data packets in the cache for a period of time.
  • an extracting module 924 configured to extract a source data symbol to be retransmitted from the reconstructed data block according to an ESI of the source data symbol to be retransmitted; and a second sending module 925, configured to extract the The retransmitted source data symbol is sent to the client 91.
  • the retransmission device 92 may further include: a verification module 926, configured to perform forward error correction coding on the extracted source data symbols to be retransmitted, and generate corresponding verification data.
  • the second sending module 925 is further configured to send the corresponding check data to the client 91.
  • the system of this embodiment is used to perform the forward error correction based retransmission method of the first embodiment.
  • the functions of the devices of the system and the functions of the modules of the respective devices reference may be made to the related content of the first embodiment. , I won't go into details here.
  • the client when the client cannot decode all the lost source data payloads by using the received source data payload and the check data, the client determines the total loss of the decoding by using the received source data payload and the check data.
  • the provided technical solution can make full use of the source data payload and the check data in the received data packet, improve the utilization of data symbols, reduce the waste of data, and generally reduce the data source symbols by less than the lost source.
  • the data symbol therefore, only retransmits the portion of the lost source data symbol when retransmitting the required source data symbol, which can reduce the bandwidth overhead.
  • Another communication system is provided, which is capable of performing retransmission based on forward error correction.
  • the system includes:
  • the third client 81 is configured to receive a source data packet carrying the payload of the source data and a verification data packet carrying the verification data.
  • the source data packet is lost, determine whether the received source data payload and the calibration source can be utilized.
  • the data is decoded to decode all the lost source data payloads; if all the lost source data payloads cannot be decoded, the packet loss situation is fed back to the retransmission device 82;
  • the third retransmission device 82 is configured to buffer all source data packets and check data packets in a period of time; according to the packet loss condition fed back by the third client 81, determine a source required to decode all the lost source data payloads. Data symbols; all or part of the required source data symbols are sent to the third client 81.
  • the third client 81 may include: a third receiving module 811, configured to receive a source data packet carrying a source data payload and a verification data packet carrying the verification data; and a third determining module 812, When the source data packet is lost, it is determined whether the source data payload and the check data received by itself can be used to decode all the lost source data payloads; and the third sending module 813 is configured to: if all the lost data cannot be decoded When the source data payload is loaded, the packet loss condition is fed back to the retransmission device 82.
  • the client 81 may further include: a third reconstruction module 810, configured to generate a reconstructed data block by using a source data payload carried in the received source data packet.
  • the third determining module 812 may further include: a third determining unit 8121, where the number of source data symbols (hereinafter referred to as lost source data symbols) corresponding to the source data payload lost by itself is greater than the received school If the number of data symbols is checked, it is determined that the received source data payload and the check data symbol cannot be used to decode all of the lost source data payloads. Otherwise, when it is less than or equal to, it is determined that it can decode itself. All the lost source data payloads; and/or, the fourth determining unit 8122, is configured to utilize source data symbols (hereinafter referred to as received source data symbols) and check data corresponding to the source data payload received by itself. The symbol performs forward error correction decoding.
  • a third determining unit 8121 where the number of source data symbols (hereinafter referred to as lost source data symbols) corresponding to the source data payload lost by itself is greater than the received school If the number of data symbols is checked, it is determined that the received source data payload and the check data
  • Source data payload conversely, if all source data symbols corresponding to the lost source data payload cannot be solved , It is determined not decoded lost all their source data payloads.
  • the third retransmission device 82 may include: a fourth receiving module 821, configured to receive, by the third client 81, a feedback message carrying a packet loss situation of the third client 81, the retransmission request message
  • the packet loss situation corresponding to the source data of the third client 81 and the packet loss situation corresponding to the check data are carried in the fourth determining module 824, configured to determine the decoding according to the packet loss situation fed back by the third client 81.
  • the third retransmission device 82 may further include: a fourth cache module 822, configured to cache all source data packets in a period of time; and a fourth reconstruction module 823, configured to carry all the source data packets in the cache for a period of time
  • the source data payload generates a reconstructed data block;
  • a fourth extraction module 825 is configured to extract the required source data symbols from the reconstructed data block according to the required ESI of the source data symbols. After determining the source data symbols required to decode all the lost source data payloads, the required source data symbols may be obtained in various manners, and are not limited to the above-mentioned extraction from the reconstructed data blocks, for example, directly Source packet corresponding to the required source data symbol Get the required source data symbol in .
  • the third retransmission device 82 may further include: a fourth verification module 827, configured to perform forward error correction coding on the extracted source data symbols to generate corresponding verification data.
  • the fourth sending module 826 is further configured to send the corresponding check data to the third client 81.
  • the fourth determining module 824 may further include: a third determining unit 8241, configured to determine source data received by the third client 81 according to the packet loss situation fed back by the third client 81 after the reconstructed data block is generated.
  • the symbol and the check data symbol received by the third client 81, the source data symbol received by the third client 81 and the check data symbol received by the third client 81 are partially lost by forward error correction.
  • Source data symbols, undecoded lost source data symbols as source data symbols required to decode all lost source data payloads; and/or fourth determining unit 8242 for loss of feedback from the third client 81 The packet case determines the source data symbol lost by the third client 81 and the check data symbol received by the third client 81, and the forward error correction pattern and the loss corresponding to the check data symbol received by the third client 81.
  • the source data symbol, the minimum repair source data symbol set is determined, and the minimum repair source data symbol set is used as a decoding source for all lost source data payloads. Source data symbols.
  • the system of this embodiment is used to perform the forward error correction based retransmission method of the second embodiment.
  • the functions of the devices of the system and the functions of the modules of the device refer to the related content of the second embodiment. , I won't go into details here.
  • the client when the client cannot use the received source data payload and the check data to decode all the lost source data payloads, the client feeds back the packet loss situation to the retransmission device, and then the retransmission device utilizes the client.
  • the source data payload and the check data received by the terminal determine the source data symbols required to decode all the lost source data payloads, and transmit all or part of the required source data symbols to the client. Therefore, the present invention
  • the technical solution provided by the embodiment can fully utilize the source data payload and the check data in the received data packet, improve the utilization of the data symbols, reduce the waste of data, and generally reduce the loss of data due to the required source data symbols.
  • the device is ready to improve system compatibility.
  • a person skilled in the art can understand that all or part of the process of implementing the above embodiment method can be completed by a computer program to instruct related hardware, and the program can be stored in a computer readable storage medium. In execution, the flow of an embodiment of the methods as described above may be included.
  • the storage medium may be a magnetic disk, an optical disk, a read-only memory (ROM), or a random access memory (RAM).

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Description

基于前向纠错的重传方法、 设备和通信系统 本申请要求于 2009 年 6 月 1 日提交中国专利局、 申请号为 200910107560.6, 发明名称为 "基于前向纠错的重传方法、 设备和通信系 统" 的中国专利申请的优先权, 在先申请文件的内容通过引用结合在本申 请中。 技术领域
本发明实施例涉及通信传输领域, 尤其是基于前向纠错的重传方法、 客户端设备、 服务器及通信系统。 背景技术
包交换网络正在被用来传输流媒体内容, 视频和音频数据从一个媒体 服务器传输到多个接收者, 接收者包括计算机终端和机顶盒等等。 包交换 网络中存在着丢包的情况, 为了有效保证流媒体服务的质量, 现有技术中 提供了一种将 FEC( Forward Error Correction,前向纠错)和 ARQ( Automatic Retransmission Request, 自动重传请求 )结合起来的混合 ( Hybrid )方案来 传输流媒体内容。
在 FEC和 ARQ的混合传输方案中, 发送端发送承载媒体数据的源数 据包 PKT1、 ΡΚΤ2、 ΡΚΤ3……, 同时将这些媒体数据包缓存在重传模块中。 因为每个流媒体数据包都有生存周期, 所以这些媒体数据包只需缓存一定 时间即可。对源数据包的全部或者部分进行 FEC编码,生成一定比率的 FEC 校验数据包 RPKT1、 RPKT2... ..., 这些校验数据包会与相应的源数据包一 起发送到接收端。 当媒体流经过网络传输后发生丢包时, 接收端会尝试进 行 FEC解码操作来恢复丢失的源数据包。 如果解码成功, 则将恢复出来的 源数据包送往上层应用; 如果解码失败, 则丢弃 FEC校验数据包, 同时向 修复模块发送重传请求, 要求重传丢失的源数据包。 修复模块接收到这些 重传请求, 通过估算这些被要求重传的源数据包的播放时间来判断这些重 传请求是否有效; 如果有效, 则将所请求的源数据包发送给接收端。 接收 端接收到重传的源数据包, 送往上层应用。
在现有技术的 FEC和 ARQ的混合传输方案中, 当 FEC解码失败时, 相应的校验数据包完全被丢弃, 而重传所有丢失的源数据包, 这样就造成 了数据的很大浪费, 同时重传所有丢失的源数据包也会占用网络资源, 增 大传输带宽。
发明内容
本发明实施例一方面提供了基于前向纠错的重传方法, 另一方面能够 实现基于前向纠错重传的客户端设备、 服务器和通信系统, 既能够有效的 利用客户端接收到的数据, 减小重传占用的网络资源。
本发明实施例提供的一种基于前向纠错的重传方法, 包括:
接收携带源数据净载荷的源数据包和携带校验数据的校验数据包; 当接收的源数据包有丢失时, 判断是否能够利用接收到的源数据净载 荷和校验数据解码出全部丢失的源数据净载荷;
如果不能解码出全部丢失的源数据净载荷, 则利用接收到的源数据净 载荷和校验数据, 确定出解码全部丢失的源数据净载荷所需的源数据符号; 请求重传该所需的源数据符号。
本发明实施例提供的另一种基于前向纠错的重传方法, 包括: 服务器接收客户端反馈的丢包情况, 所述丢包情况包括客户端设备的 源数据对应的丢包情况和校验数据对应的丢包情况; 其中, 所述丢包情况 由客户端在接收的源数据包有丢失时, 且不能利用接收到的源数据净载荷 和校验数据解码出全部丢失的源数据净载荷时, 向服务器发送;
服务器根据客户端反馈的丢包情况, 确定出解码客户端的全部丢失的 源数据净载荷所需的源数据符号;
服务器向客户端发送所需的源数据符号。
本发明实施例提供的一种客户端设备, 包括:
第一接收模块, 用于接收携带源数据净载荷的源数据包和携带校验数 据的校验数据包;
判断模块, 用于当源数据包有丢失时, 判断是否能够利用接收到的源 数据净载荷和校验数据解码出全部丢失的源数据净载荷;
确定模块, 用于如果不能解码出全部丢失的源数据净载荷, 则利用接 收到的源数据净载荷和校验数据, 确定出解码全部丢失的源数据净载荷所 需的源数据符号;
第一发送模块, 用于向服务器发送重传请求消息, 请求重传所需的源 数据符号的全部或部分。
本发明实施例提供的一种通信系统, 包括上述的客户端设备和服务器; 所述服务器包括: 第二接收模块, 用于接收客户端设备发送的重传请 求消息, 该重传请求消息中携带了客户端设备确定的要重传的源数据符号 的 ESI; 第二重构模块, 用于利用缓存的一段时间内的全部源数据包中携带 的源数据净载荷生成重构数据块; 提取模块, 用于根据要重传的源数据符 号的 ESI, 从重构数据块中提取出要重传的源数据符号; 第二发送模块, 用 于将提取出的要重传的源数据符号发送给客户端设备。
本发明实施例提供的一种服务器, 包括:
第四接收模块, 用于接收客户端设备发送的携带客户端设备的丢包情 况的反馈消息, 该重传请求消息中携带了客户端设备的源数据对应的丢包 情况和校验数据对应的丢包情况; 其中, 所述丢包情况由客户端在接收的 源数据包有丢失时, 且不能利用接收到的源数据净载荷和校验数据解码出 全部丢失的源数据净载荷时, 向服务器发送;
第四确定模块, 用于根据客户端设备反馈的丢包情况, 确定出解码客 户端设备的全部丢失的源数据净载荷所需的源数据符号; 第四发送模块, 用于将所需的源数据符号的全部或部分发送给客户端设备。
本发明实施例提供的另一种通信系统, 包括上述的服务器和客户端设 备;
所述客户端设备包括: 第三接收模块, 用于接收携带源数据净载荷的 源数据包和携带校验数据的校验数据包; 第三判断模块, 用于当源数据包 有丢失时, 判断是否能够利用接收到的源数据净载荷和校验数据解码出全 部丢失的源数据净载荷; 第三发送模块, 用于如果不能解码出全部丢失的 源数据净载荷时, 向服务器发送携带客户端设备的丢包情况的反馈消息。 由以上技术方案可知, 本实施例中, 在利用接收到的源数据净载荷和 校验数据不能解码出全部丢失的源数据净载荷时, 利用接收到的源数据净 载荷和校验数据确定出解码全部丢失的源数据净载荷所需的源数据符号, 并请求重传该所需的源数据符号的全部或部分, 因此, 本发明实施例提供 的技术方案能够充分利用接收的数据包中的源数据净载荷和校验数据, 提 高了数据符号的利用率, P争低了数据的浪费, 并且由于所需的源数据符号 一般少于丢失的源数据符号, 因此在重传所需的源数据符号时只重传了丢 失的源数据符号的部分, 能够减少带宽的开销。 附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对 实施例或现有技术描述中所需要使用的附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅是本发明的一些实施例, 对于本领域普通技术人员 来讲, 在不付出创造性劳动性的前提下, 还可以根据这些附图获得其他的 附图。
图 1为本发明实施例一的基于前向纠错的重传方法流程图;
图 2为本发明实施例一的方法中源数据块的构造示意图;
图 3为本发明实施例一的方法中重构数据块的构造示意图;
图 4为本发明实施例一的方法中前向纠错图样矩阵示意图;
图 5a为本发明实施例一的方法中丢失矩 P车 A示意图;
图 5b至图 5d为本发明实施例一的方法中满秩矩阵 B示意图;
图 5e为本发明实施例一的方法中另一种丢失矩阵 A' 示意图; 图 6为本发明实施例一的方法中重传请求报文示意图;
图 7为本发明实施例二的基于前向纠错的重传方法流程图;
图 8a为本发明实施例二的方法中 NACK格式示意图;
图 8b为本发明实施例二的方法中 RTCP扩展报文示意图;
图 8c为本发明实施例二的方法中 RTCP扩展 文的 report blocks格式示 意图;
图 9 a为本发明实施例三的通信系统的结构示意图;
图 9b为本发明实施例三的通信系统中客户端的结构示意图;
图 9c为本发明实施例三的通信系统中重传设备的结构示意图; 图 10a为本发明实施例四的通信系统的结构示意图;
图 1 Ob为本发明实施例四的通信系统中第三客户端的结构示意图; 图 10c为本发明实施例四的通信系统中第三重传设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图, 对本发明实施例中的技术方案 进行清楚、 完整地描述, 显然, 所描述的实施例仅仅是本发明一部分实 施例, 而不是全部的实施例。 基于本发明中的实施例, 本领域普通技术 人员在没有作出创造性劳动前提下所获得的所有其他实施例, 都属于本 发明保护的范围。
实施例一
如附图 1所示,本发明实施例提供了一种基于前向纠错的重传方法, 该方法包括以下步骤:
步骤 10:接收携带源数据净载荷的源数据包和携带校验数据的校验 数据包; 一个源数据包中可以携带一个或多个源数据净载荷, 一个校验 数据包中可以携带一个或多个校验数据。
在发送端构造的源数据块中, 一个源数据块包括多个源数据, 每个 源数据可以占用一个或多个符号 (Symbol ) 的存储空间, 一个符号的源 数据称为一个源数据符号;源数据块就是由多个符号组成的一个存储区, 构造源数据块就是将源数据以符号为存储单位填入源数据块中, 即将源 数据以符号为存储单位写入源数据块的存储区中。 参考附图 2, 图 2示 出了一个源数据块, 源数据块的每一行表示固定长度的数据, 每一行的 数据称为一个符号, 每一个符号对应一个 ESI ( Encoding Symbol ID, 编 码符号标识) , 每个符号用其对应的 ESI来标识; ESI是收发双方约定 的一种标识, 可以按照约定的规则编号, 例如使用码表或者从一个初值 开始顺序递增或递减, 图 2中的 ESI示例性的使用了自然数顺序编号, 源数据块左边的一列数字 ( 1, 2, 〜K, Κ+1 , Κ+2, 〜Μ, ...Μ+η ) 即 为每个符号对应的 ESI。 在图 2的源数据块中, 每个源数据可以包括: 源数据净载荷所在的流(flow ) 的流标号 F, 源数据净载荷的长度值 L, 填充源数据净载荷的数据区 D, 填充剩余位的填充区 P; 其中, 填充区 P 为可选的, 当数据区 D正好填满最后一个符号时, 该源数据占用的最后 一个符号中没有填充区 P (参考图 2中的符号 M-1 ) ; 当只有一个流时, 流标号 F也是可选的。 在图 2的源数据块中, 第一个源数据包括符号 1 (即第 1行, ESI为 1的符号)和符号 2; 而源数据块中的另一个源数据 包括符号1:、 符号 K+1和符号 K+2。 一个源数据中的源数据净载荷称为 一个源数据净载荷, 即每个源数据包括一个源数据净载荷; 一个源数据 号, 一个源数据净载荷可以对应一个或多个源数据符号。
之后, 发送端对构造的源数据块中的源数据符号, 进行前向纠错编 码, 生成一个或多个校验数据, 这里的前向纠错编码可以使用各种前向 纠错编码算法, 对此本发明不做限定; 其中, 可以对不同的源数据符号 分别进行校验生成多个校验数据, 不同的校验数据由不同的源数据符号 进行前向纠错编码获得, 或者, 对源数据块中的全部源数据符号生成一 个校验数据, 或者, 按照一定的规则 (例如前向纠错图样) 生成一个或 多个校验数据。 在生成校验数据之后, 可以将校验数据也增加到源数据 块的最后, 每个校验数据可以占用一个或多个符号的存储空间, 一个符 号的校验数据称为一个校验数据符号。 参考图 2, 如果 M-1行是源数据 块中最后添加的源数据符号, 则将生成的一个或多个校验数增加到源数 据块的 M行至 M+n行中, 此时, 校验数据符号和源数据符号采用顺序 的 ESI编号规则; 或者, 生成校验数据后, 校验数据可以作为单独的一 个校验数据块, 该校验数据块采用与上述构造的源数据块不同的 SBN ( Source Block Number, 源数据块标号) 来区分; 或者, 生成校验数据 后, 校验数据可以采用独立的 ESI编号规则, 此时校验数据符号与上述 构造的源数据块中的源数据符号对应相同的 SBN, 例如, SBN为 1的源 数据块中的源数据符号的 ESI为 1至 100, 而利用这些源数据符号生成 的校验数据占用了 20个符号, 这 20个校验数据符号的 ESI为 1至 20, 这样, 100个源数据符号和 20个校验数据符号对应了相同的 SBN, 两者 的 SBN都是 1, 可以采用一定的标识来区别这些对应相同 SBN的源数 据符号和校验数据符号 (例如, 通过不同的端口分别发送源数据包和校 验数据包,使源数据净载荷对应的端口号与校验数据对应的端口号不同, 这样,接收端就可以通过端口号区分对应相同 SBN的源数据净载荷和校 验数据) 。
最后, 发送端将源数据净载荷携带在源数据包发送至接收端, 将校 验数据携带在校验数据包发送至接收端; 其中, 一个源数据包括的一个 源数据净载荷可以携带在一个源数据包中, 一个校验数据包括的一个或 多个校验数据符号可以携带在一个校验数据包中, 例如, 将图 2中第一 个源数据包括的源数据净载荷 (即第 1行的源数据符号 1和第 2行的源 数据符号 2的数据区 D中填充的源数据净载荷)携带在一个源数据包中 发送。 当然, 多个源数据净载荷也可以携带在一个源数据包中, 多个校 验数据也可以携带在一个校验数据包中, 在此不做限定。
步骤 11 : 当源数据包有丢失时, 判断是否能够利用接收到的源数据 净载荷和校验数据解码出全部丢失的源数据净载荷。
确定源数据包有丢失可以是: 接收端利用接收的源数据包中携带的 源数据净载荷生成重构数据块, 如果重构数据块缺失了部分源数据净载 荷, 则源数据包有丢失, 并且可以进一步确定重构数据块中缺失的源数 据净载荷 (即丢失的源数据净载荷)对应的源数据符号的 ESI; 或者, 接收的源数据包的序列号不连续, 则源数据包有丢失。
在生成重构数据块后, 判断是否能够利用接收到的源数据净载荷和 校验数据解码出全部丢失的源数据净载荷的方法, 可以是: 当丢失的源 数据净载荷对应的源数据符号的数量大于接收到的校验数据符号的数 量, 则判断为不能利用接收到的源数据净载荷和校验数据符号解码出全 部丢失的源数据净载荷, 反之, 当小于或等于时, 则判断为能够解码出 全部丢失的源数据净载荷; 或者, 利用接收到的源数据净载荷对应的源 数据符号和校验数据符号, 进行前向纠错解码, 如果能够解出丢失的源 数据净载荷对应的全部源数据符号, 则判断为能够利用接收到的源数据 净载荷和校验数据符号解码出全部丢失的源数据净载荷, 反之, 如果不 能解出丢失的源数据净载荷对应的全部源数据符号, 则判断为不能解码 出全部丢失的源数据净载荷。
其中, 重构数据块采用与源数据块相同的结构, 也是由多个符号组 成的一个存储区, 参考附图 3, 重构数据块中包括多个符号的存储空间, 每个符号的存储空间可以写入一个源数据符号或一个校验数据符号, 一 个源数据或一个校验数据可以占用一个或多个符号的存储空间, 每个符 号的存储空间对应一个 ESI, 即每个 ESI指定了重构数据块中的一个位 置。 接收端利用接收的源数据包中携带的源数据净载荷生成重构数据块 可以是: 根据接收到的源数据净载荷对应的源数据符号中第一个源数据 符号的 ESI, 将每个源数据净载荷, 以该源数据净载荷对应的第一个源 数据符号的 ESI指定的位置作为起始位置, 填入重构数据块, 从而生成 重构数据块。 之后, 判断重构数据块是否缺失了部分源数据净载荷: 如 果重构数据块中的源数据之间有为空的符号, 则判断为重构数据块缺失 了部分源数据净载荷; 或者, 如果重构数据块中的源数据的总长度小于 源数据块中源数据的总长度, 则判断为重构数据块缺失了部分源数据净 载荷; 或者, 如果重构数据块中的最后有为空的符号, 则判断为重构数 据块缺失了部分源数据净载荷。 源数据块中源数据的总长度可以用源数 据块中源数据符号的数量或源数据块中源数据的字节数来表示, 可以由 发送端通过数据包传输至接收端, 或者由发送端和接收端约定, 或者由 前向纠错图样来确定。
下面举例说明如何确定重构数据块中缺失的源数据净载荷 (即丢失 的源数据净载荷)对应的源数据符号的 ESI。 例如, 发送端发送了四个 源数据包, 而接收端只接收到三个源数据包; 接收端接收到的第一个源 数据包中携带的源数据净载荷对应的第一个源数据符号的 ESI是 1, 第 二个源数据包中携带的源数据净载荷对应的第一个源数据符号的 ESI是 4, 第三个源数据包中携带的源数据净载荷对应的第一个源数据符号的 ESI是 8;接收端根据接收到的第一个源数据包中携带的源数据净载荷对 应的第一个源数据符号的 ESI (该 ESI是 1 ) , 以符号 1作为起始位置, 将第一个源数据包中的一个源数据净载荷填入重构数据块的符号 1、 符 号 2、 符号 3对应的存储空间, 参考附图 3, 类似的, 把第二个源数据包 中的一个源数据净载荷填入重构数据块的符号 4、 符号 5对应的存储空 间, 把第三个源数据包中的一个源数据净载荷填入重构数据块的符号 8 对应的存储空间; 最终,生成如图 3所示的重构数据块,其中, ESI为 6、 7的两个符号对应的存储空间为空(即重构数据块中缺失了源数据符号 6 和源数据符号 7 ) , 表示与源数据符号 6和源数据符号 7对应的源数据 净载荷在传输过程中丢失了, 接收端未能接收到源数据符号 6和源数据 符号 7对应的源数据净载荷。 另外, 如果传输过程中源数据块的最后的 一个或多个源数据净载荷丢失了, 则可以根据源数据块中源数据的总长 度确定重构数据块中缺失的最后的源数据符号; 例如, 参考附图 3示出 的重构数据块, 如果源数据块中源数据的总长度为 8个符号, 则重构数 据块中最后的源数据符号没有缺失, 从而重构数据块中只缺失了源数据 符号 6和源数据符号 7, 如果源数据块中源数据的总长度为 9个符号, 则重构数据块中缺失了最后的源数据符号 9, 从而重构数据块中总共缺 失了源数据符号 6、 源数据符号 7、 源数据符号 9。 或者, 如果传输过程 中源数据块的最后的一个或多个源数据净载荷丢失了, 则可以根据源数 据块中最后一个源数据符号的 E S I确定重构数据块中缺失的最后的源数 据符号, 其中, 源数据块中最后一个源数据符号的 ESI可以由发送端通 过数据包传输至接收端, 或当校验数据符号和源数据符号采用顺序的 ESI编号规则时, 将第一个校验数据符号的 ESI减去一个编号步长即可 得到最后一个源数据符号的 ESI; 例如, 参考附图 3示出的重构数据块, 如果第一个校验数据符号的 ESI为 10, 则最后一个源数据符号的 ESI为 9, 此时, 重构数据块中 ESI为 9的源数据符号对应的存储位置为空, 则 重构数据块中的最后有为空的符号 (源数据符号 9 ) , 重构数据块中缺 失了最后的源数据符号 9, 从而重构数据块中总共缺失了源数据符号 6、 源数据符号 7和源数据符号 9。
校验数据对应的数据块(即校验数据块) 的重构可以类似于上述源 数据的重构数据块的生成, 校验数据对应的数据块中校验数据的缺失可 以采用与确定丢失的源数据符号类似的方式。 例如, 根据接收到的校验 数据符号的 ESI,将每个校验数据符号填入校验数据对应的数据块中 ESI 指定的位置, 从而生成校验数据对应的数据块; 或者, 根据接收到的每 个校验数据包中第一个校验数据符号的 ESI, 将每个校验数据包中的一 个或多个校验数据符号, 以该校验数据包中的第一个校验数据符号的 ESI 指定的位置作为起始位置, 顺序将该校验数据包中的一个或多个校 验数据符号填入校验数据对应的数据块, 从而生成校验数据对应的数据 块。 其中, 校验数据对应的数据块可以是与上述源数据的重构数据块不 同的块, 两者相互独立, 各自采用独立的 ESI编号规则; 或者, 校验数 据对应的数据块可以是上述源数据的重构数据块的一部分, 例如, 参考 图 2示出的重构数据块, 校验数据符号和源数据符号采用顺序的 ESI编 号规则。
接收端和发送端具有相同的前向纠错图样(FEC Scheme ) , 前向纠 错图样是一种特定的前向纠错码的规范。 前向纠错图样用于进行前向纠 错编码和解码, 前向纠错图样可以用矩阵或向量组的形式表示; 其中, 矩阵中的一行或一列对应一个校验数据, 这一行或一列表示对应的校验 数据的生成方式, 或者, 向量组中的一个行向量或一个列向量对应一个 校验数据,这一个行向量或一个列向量表示对应的校验数据的生成方式。 参考图 4, 图 4示意性的给出了一个以矩阵形式表示的前向纠错图样, 其中, 该前向纠错图样矩阵中的一行对应一个校验数据, 共有 3个校验 数据, 源数据块中共有 9个源数据符号, 每个源数据符号对应前向纠错 图样矩阵中的一列 (图 4标出了前向纠错图样矩阵的每列对应的源数据 符号的 ESI编号) , 矩阵中的元素表示是否采用了该元素对应的源数据 符号来生成该元素对应的校验数据; 在图 4的前向纠错图样矩阵中, 示 例性假设当元素的值为 1时表示采用了该元素对应的源数据符号来生成 该元素对应的校验数据, 当元素的值为 0时表示未采用该元素对应的源 数据符号来生成该元素对应的校验数据, 例如, 前向纠错图样矩阵第 3 行第 1列的元素值为 1, 则表示第 3个校验数据采用了第 1个源数据符 号(即源数据符号 1 )来生成, 综合第 3行所有的元素, 可以看出, 第 3 个校验数据是由源数据符号 1、 源数据符号 2和源数据符号 8进行前向 纠错编码生成的; 当然, 可以理解的是, 元素的取值不限于 0、 1, 可以 用任意两个不同的数值或符号来表示是否采用了该元素对应的源数据符 号来生成该元素对应的校验数据。 其中, 当前向纠错图样为矩阵形式, 且每个源数据符号对应前向纠错图样矩阵的一列, 则源数据块中源数据 符号的数量等于前向纠错图样矩阵的列数; 或者, 当前向纠错图样为矩 阵形式, 且每个源数据符号对应前向纠错图样矩阵的一行, 则源数据块 中源数据符号的数量等于前向纠错图样矩阵的行数; 或者, 当前向纠错 图样为列向量组形式 (即每个列向量对应一个校验数据) , 且每个源数 据符号对应前向纠错图样列向量组中每个列向量相同位置的一个元素, 则源数据块中源数据符号的数量等于列向量组中每个列向量的维数; 或 者,当前向纠错图样为行向量组形式(即每个行向量对应一个校验数据), 且每个源数据符号对应前向纠错图样行向量组中每个行向量相同位置的 一个元素, 则源数据块中源数据符号的数量等于行向量组中每个行向量 的维数。 例如, 参考图 4, 每个源数据符号对应矩阵的一列, 前向纠错 图样矩阵的列数为 9, 则源数据块中源数据符号的数量为 9, 即源数据块 中有 9个源数据符号, 这 9个源数据符号的 ESI为 1至 9; 此时, 还以 图 3的重构数据块为例, 重构数据块中存在的源数据符号的 ESI为 1至 5、 8, 从而重构数据块中总共缺失了源数据符号 6、 源数据符号 7、 源数 据符号 9。
步骤 12: 如果不能解码出全部丢失的源数据净载荷, 则利用接收到 的源数据净载荷和校验数据, 确定出解码全部丢失的源数据净载荷所需 的源数据符号; 其中, 所需的源数据符号可以用其对应的 ESI来表示。
利用接收到的源数据净载荷和校验数据, 确定出解码全部丢失的源 数据净载荷所需的源数据符号可以是: 在生成重构数据块后, 利用接收 到的源数据净载荷对应的源数据符号(以下简称为接收到的源数据符号) 和接收到的校验数据符号通过前向纠错解码出部分丢失的源数据净载荷 对应的源数据符号 (以下简称为丢失的源数据符号) , 将这些解码出的 源数据符号称为恢复的源数据符号, 将丢失的源数据符号中除去恢复的 源数据符号之外的源数据符号作为解码全部丢失的源数据净载荷所需的 源数据符号, 其中, 该所需的源数据符号不能利用接收到的源数据符号 和校验数据符号通过前向纠错解码恢复; 或者, 利用接收到的源数据符 号确定出丢失的源数据符号, 通过接收到的校验数据符号对应的前向纠 错图样和丢失的源数据符号, 确定出最小修复源数据符号集合, 以该最 小修复源数据符号集合作为解码全部丢失的源数据净载荷所需的源数据 符号。 需要说明的是, 在绝大多数情况下, 所需的源数据符号是丢失的 源数据符号的部分; 在极少数情况下, 例如, 接收到的校验数据符号都 完全不能用于解码丢失的源数据符号 (即接收到的校验数据符号与丢失 的源数据符号没有校验关系) , 可能导致所需的源数据符号是丢失的源 数据符号的全部, 由于这种情况出现的概率非常小, 可以忽略, 因此, 本发明的技术方案是具有普适性和通用性的。
其中, 以图 3的重构数据块和图 4的前向纠错图样为例, 假设丢失 的源数据符号为源数据符号 6、 源数据符号 7和源数据符号 9,每个校验 数据包括一个校验数据符号, 三个校验数据分别为校验数据符号 1、 校 验数据符号 2和校验数据符号 3, 则通过接收到的校验数据符号对应的 前向纠错图样和丢失的源数据符号确定出最小修复源数据符号集合可以 是: 当接收端收到了全部三个校验数据时, 则前向纠错图样矩阵的第 1 至 3行(即校验数据符号 1、 校验数据符号 2和校验数据符号 3对应的 三行) 均有效, 将第 1至 3行中第 6、 7、 9列 (即源数据符号 6、 源数 据符号 7和源数据符号 9对应的三列)的元素取出, 形成如附图 5a所示 的丢失矩阵 A (图 5a至 5d标出了丢失矩阵 A的每列对应的源数据符号 的 ESI编号) , 丢失矩阵 A用来表示接收到的校验数据符号和丢失的源 数据符号的对应关系; 求出丢失矩阵 A的行向量(即从校验数据符号 1、 2、 3对应的向量中截取了部分元素组成的向量)组的最大线性无关组(即 行向量 (0 1 1)、 (1 1 0) ) , 该最大线性无关组的秩为 2, 因此还需要 1 (向 量的维数 3减去最大线性无关组的秩 2 ) 个向量才能组成满秩矩阵; 在 求出丢失矩阵 A的行向量组的最大线性无关组基础上, 增加单位行向量 来生成满秩矩阵 B, 这里增加单位向量是因为单位向量最简单, 当然也 可以采用非单位向量, 本发明对此不做限定; 因为三维的单位行向量有 (1 0 0)、 (0 1 0)、 (0 0 1)三个, 所以可以从这三个单位行向量中随机或顺 序选择一个与上述最大线性无关组组合生成三阶矩阵, 然后判断生成的 三阶矩阵是否满秩, 满秩矩阵 B中增加的单位向量的值为 1的元素对应 的一个或多个源数据符号即为最小修复源数据符号集合, 最终, 可能生 成的满秩矩阵 B有三种情况, 分别如图 5b、 图 5c、 图 5d所示, 当生成 如图 5b的满秩矩阵 B时, 此时的最小修复源数据符号集合为源数据符 号 6 (即行向量 (1 0 0)中值为 1的元素对应的源数据符号) , 同理, 当 生成如图 5c的满秩矩阵 B时, 此时的最小修复源数据符号集合为源数 据符号 7, 当生成如图 5d的满秩矩阵 B时, 此时的最小修复源数据符号 集合为源数据符号 9。 另外, 在上面通过接收到的校验数据符号对应的 前向纠错图样和丢失的源数据符号确定出最小修复源数据符号集合的过 程中, 如果接收端只收到了部分校验数据时, 例如只收到了校验数据符 号 1和校验数据符号 3, 则前向纠错图样矩阵的第 1行和第 3行(即校 验数据符号 1和校验数据符号 3对应的两行)有效, 此时形成如附图 5e 所示的丢失矩阵 A,, 之后求丢失矩阵 A,的行向量组的最大线性无关组。
另外, 通过接收到的校验数据符号对应的前向纠错图样和丢失的源 数据符号确定出最小修复源数据符号集合也可以是: 在前向纠错图样中 递加丢失的源数据符号, 以前向纠错图样矩阵可解时对应的最少的递加 的丢失的源数据符号作为最小修复源数据符号集合。 在前向纠错图样中 递加丢失的源数据符号具体可以是: 首先, 在前向纠错图样中增加丢失 的源数据符号中的任一个 (即假设收到了丢失的源数据符号中的任一 个) , 然后判断在增加了一个丢失的源数据符号时, 前向纠错图样矩阵 是否可解 (即假设收到了丢失的源数据符号中的一个时, 能否利用实际 收到的源数据符号、 收到的校验数据符号和假设收到的丢失的源数据符 号中的一个, 恢复出全部丢失的源数据符号) , 如果可解, 则将可解时 对应的新增加的一个丢失的源数据符号作为最小修复源数据符号集合; 如果无论增加丢失的源数据符号中的哪一个前向纠错图样矩阵都不可 解, 则在前向纠错图样中增加丢失的源数据符号中的任两个 (即假设收 到了丢失的源数据符号中的任两个) , 然后判断在增加了两个丢失的源 数据符号时, 前向纠错图样矩阵是否可解, 如果可解, 则将可解时对应 的新增加的两个丢失的源数据符号作为最小修复源数据符号集合;否则, 继续提高在前向纠错图样中增加的丢失的源数据符号的数量,以此类推。 举例而言, 以图 3的重构数据块和图 4的前向纠错图样为例, 假设丢失 的源数据符号为源数据符号 6、 源数据符号 7和源数据符号 9, 收到的三 个校验数据符号分别为校验数据符号 1、 校验数据符号 2和校验数据符 号 3; 首先, 在前向纠错图样中分别增加源数据符号 6、 源数据符号 7 和源数据符号 9, 并且可以判断出当在前向纠错图样中增加源数据符号 6、源数据符号 7和源数据符号 9的任一个时,前向纠错图样矩阵都可解, 所以, 最小修复源数据符号集合可以为源数据符号 6、 源数据符号 7和 源数据符号 9的任一个。
步骤 13: 请求重传所需的源数据符号的全部或部分。
在步骤 12 中确定出解码全部丢失的源数据符号所需的源数据符号 后, 接收端请求重传所需的源数据符号可以是: 请求重传全部的所需的 源数据符号; 或者, 请求重传所需的源数据符号的一部分, 例如, 只要 求重传所需的源数据符号中重要数据对应的那部分源数据符号, 这里的 重要数据可以是视频流中的 I帧数据。 接收端可以向重传设备(该重传 设备可以是重传服务器或者其他具有响应重传请求功能的网络节点)发 送重传请求, 以获取所需的源数据符号的全部或部分。 之后, 接收端可 以根据接收的源数据符号、 接收的校验数据符号和接收的重传的所需的 源数据符号, 进行前向纠错解码, 解码出全部或者部分重要的丢失的源 数据符号, 从而获得所需的源数据。 其中, 请求重传时, 重传请求的报 文格式可以是图 6所示的形式, SBN表示要重传的编码符号所在的源数 据块标号, ESC ( encoding symbol count, 编码符号数)表示要重传的编 码符号的个数, ESI 表示要重传的编码符号的编码符号标识, 一个重传 请求中可以包括一个或多个 ESI (图 6中的 ESI1, ESI2, ESIn ) , padding是填充位。
其中, 重传设备在接收到重传请求后, 在发送要求重传的数据符号 时, 可以采用灵活的方式: 重传设备将要求重传的编码符号向接收端发 送一次或者重复发送多次; 或者, 重传设备对要求重传的编码符号进行 前向校验编码, 生成新的校验数据, 向接收端发送要求重传的编码符号 和新的校验数据, 这样即使要求重传的编码符号在向接收端发送时有丢 失, 接收端也可能根据新的校验数据恢复丢失的要求重传的编码符号。
本实施例中, 在利用接收到的源数据净载荷和校验数据不能解码出 全部丢失的源数据净载荷时, 利用接收到的源数据净载荷和校验数据确 定出解码全部丢失的源数据净载荷所需的源数据符号, 并请求重传该所 需的源数据符号的全部或部分, 因此, 本发明实施例提供的技术方案能 够充分利用接收的数据包中的源数据净载荷和校验数据, 提高了数据符 号的利用率, 降低了数据的浪费, 并且由于所需的源数据符号一般少于 丢失的源数据符号, 因此在重传所需的源数据符号时只重传了丢失的源 数据符号的部分, 能够减少带宽的开销。 实施例二
如附图 7所示, 本发明实施例提供了另一种基于前向纠错的重传方 法, 该方法包括以下步骤:
步骤 70:客户端接收携带源数据净载荷的源数据包和携带校验数据 的校验数据包; 一个源数据包中可以携带一个或多个源数据净载荷, 一 个校验数据包中可以携带一个或多个校验数据。
步骤 71 : 当源数据包有丢失时, 客户端判断是否能够利用接收到的 源数据净载荷和校验数据解码出全部丢失的源数据净载荷。
步骤 72: 如果不能解码出全部丢失的源数据净载荷, 客户端向重传 设备反馈丢包情况。
在步骤 72中,客户端向重传设备反馈丢包情况可以是:客户端向重 传设备反馈源数据对应的丢包情况, 和校验数据对应的丢包情况。 源数 据对应的丢包情况可以用如下方式表示: 客户端接收到的源数据包的序 列号, 或客户端丢失的源数据包的序列号, 或客户端接收到的源数据符 号的 ESI,或客户端丢失的源数据符号的 ESI; 校验数据对应的丢包情况 可以用如下方式表示: 客户端接收到的校验数据包的序列号, 或客户端 丢失的校验数据包的序列号, 或客户端接收到的校验数据符号的 ESI, 或客户端丢失的校验数据符号的 ESI。 其中, 客户端接收到的或丢失的 源数据符号的 ESI和校验数据符号的 ESI可以利用重构数据块来确定, 在生成了重构数据块后, 重构数据块中存在的源数据符号或校验数据符 号即为客户端接收到的源数据符号或校验数据符号, 重构数据块中缺失
符号, 源数据符号或校验数据符号可以利用符号对应的 ESI来表示。
客户端向重传设备反馈丢包情况时, 可以直接反馈已经收到了哪些 符号(源数据符号和校验数据符号) , 也可以通过 NACK反馈缺失了哪 些符号。 下面以 NACK ( Negative ACKnowledgment, 否定回答)举例说 明, 参考图 8a, 其中, Type: 1 byte, 表示报文类型; SBN: 2 bytes, 表 示反馈的是哪个源数据块的丢包情况; IsSrc: 1 byte, 1表示源数据, 0 表示校验数据; startEsi: 2 bytes, 表示丢失的符号的起始 ESI; count: 2 bytes,表示从 startEsi开始连续丢失的符号的数目; isSrc, startEsi, count 组成三元组可以在报文中多次出现, 用来表示源数据或校验数据的丢失 情况。 另外, 客户端向重传设备反馈丢包情况时, 可以采用 RTCP ( Real-time Transport Control Protocol, 实时传输控制协议 )扩展 4艮文反 馈; 扩展报文一般格式可以如图 8b所示, 其中 report blocks用于反馈丢 包情况。 report blocks的具体格式可以参考图 8c, 其中, type- specific: 默认为 0; block length: 表示 report blocks大小; SBN: 表示丢失符号的 SBN; srcCount: 表示 4艮文中存在多少个 (begin— Src— ESI, src— count)二元 组, 一个这种二元组表示源块中一段连续符号的丢失; RbCount: 表示 报文中存在多少个 (begin— Rb—ESI, rb— count)二元组, 一个这种二元组表 示校验块中一段连续符号的丢失; begin— Src— ESI: 源数据块中一段连续 的丢失的符号中第一个符号的 ESI; src— count: 源数据块中一段连续的 丢失的符号的个数; begin— Rb—ESI: 校验数据块中一段连续的丢失的符 号中第一个符号的 ESI; rb— count: 校验数据块中一段连续的丢失的符号 的个数。
步骤 73: 重传设备根据客户端反馈的丢包情况, 确定出解码客户端 的全部丢失的源数据净载荷所需的源数据符号; 其中, 所需的源数据符 号可以用其对应的 ESI来表示。
重传设备上保存有一段时间内的全部源数据包, 和该一段时间内的 全部校验数据包; 从而在接收到客户端反馈的丢包情况时, 只要重传设 备得知客户端接收到的源数据包的序列号或丢失的源数据包的序列号, 就可以根据全部源数据包的序列号, 确定出客户端丢失的源数据包的序 列号或客户端接收到的源数据包的序列号; 之后, 重传设备可以采用保 存的源数据包生成完整的没有缺失的重构数据块, 并根据该没有缺失的 数据符号 (即丢失的源数据符号) 和客户端接收到的源数据包中的源数 据净载荷对应的源数据符号 (即接收到的源数据符号) 。 或者, 因为重 传设备上保存有一段时间内的全部源数据包, 所以, 重传设备可以采用 源数据包生成完整的没有缺失的重构数据块, 来获知全部源数据包的源 数据符号的 ESI; 从而只要重传设备得知客户端接收到的源数据符号的 ESI或丢失的源数据符号的 ESI,就可以根据全部源数据包的源数据符号 的 ESI, 确定出客户端丢失的源数据符号或客户端接收到的源数据符号。 确定出客户端丢失的校验数据符号或客户端接收到的校验数据符号的方 式, 与源数据符号的确定方式相似, 这里不再赘述。
然后, 重传设备可以利用客户端接收到的源数据符号和客户端接收 到的校验数据符号, 确定出解码客户端的全部丢失的源数据净载荷所需 的源数据符号。 其中, 重传设备利用客户端接收到的源数据符号和客户 端接收到的校验数据符号, 确定出解码全部丢失的源数据净载荷所需的 源数据符号的方法, 可以参考实施例一步骤 12中的相关内容,这里不再 赘述。
步骤 74: 重传设备向客户端重传所需的源数据符号的全部或部分。 在步骤 74中, 重传设备在发送所需的源数据符号的全部或部分时, 可以采用灵活的方式: 重传设备将所需的源数据符号的全部或部分向客 户端发送一次或者重复发送多次; 或者, 重传设备对所需的源数据符号 的全部或部分进行前向校验编码, 生成新的校验数据, 向客户端发送所 需的源数据符号的全部或部分和新的校验数据, 这样即使重传设备发送 的所需的源数据符号在向客户端发送时有丢失, 客户端也可能根据新的 校验数据恢复丢失的所需的源数据符号。
本实施例中与实施例一中相似的步骤可以参考实施例一的相关内 容。
本实施例中, 在客户端利用接收到的源数据净载荷和校验数据不能 解码出全部丢失的源数据净载荷时, 客户端向重传设备反馈丢包情况, 之后, 重传设备利用客户端接收到的源数据净载荷和校验数据确定出解 码全部丢失的源数据净载荷所需的源数据符号, 并发送该所需的源数据 符号的全部或部分给客户端, 因此, 本发明实施例提供的技术方案能够 充分利用接收的数据包中的源数据净载荷和校验数据, 提高了数据符号 的利用率, 降低了数据的浪费, 并且由于所需的源数据符号一般少于丢 失的源数据符号, 因此在发送所需的源数据符号时只重传了丢失的源数 据符号的部分, 能够减少带宽的开销。 另外, 由于所需的源数据符号是 由重传服务器确定的, 客户端仅需反馈丢包情况即可, 所以本发明实施 例的技术方案能够与现有的客户端兼容, 只需升级重传设备即可, 提高 了系统兼容性。 实施例三
如图 9a本实施例提供了一种通信系统,该系统能够完成基于前向纠 错的重传, 该系统包括:
媒体服务器 90, 用于向客户端 91发送携带源数据净载荷的源数据 包和携带校验数据的校验数据包;向重传设备 92发送携带源数据净载荷 的源数据包,或向重传设备 92发送携带源数据净载荷的源数据包和携带 校验数据的校验数据包;
客户端 91,用于接收携带源数据净载荷的源数据包和携带校验数据 的校验数据包; 当源数据包有丢失时, 判断是否能够利用接收到的源数 据净载荷和校验数据解码出全部丢失的源数据净载荷; 如果不能解码出 全部丢失的源数据净载荷, 则利用接收到的源数据净载荷和校验数据, 确定出解码全部丢失的源数据净载荷所需的源数据符号; 并向重传设备 92请求重传所需的源数据符号的全部或部分;
重传设备 92,用于缓存一段时间内的全部源数据包;根据客户端 91 请求重传的所需的源数据符号的全部或部分,向客户端 91发送所需的源 数据符号的全部或部分。 其中,在请求重传时,客户端 91可以将所需的源数据符号的全部或 部分作为要重传的源数据符号, 将要重传的源数据符号的 ESI携带在重 传请求消息中发送给重传设备 92; 重传设备 92接收到重传请求消息后, 根据要重传的源数据符号的 ESI, 将这些要重传的源数据符号的 ESI对 应的源数据符号发送给客户端 91。
如图 9b所示, 客户端 91可以包括: 第一接收模块 911, 用于接收 携带源数据净载荷的源数据包和携带校验数据的校验数据包; 判断模块 912, 用于当源数据包有丢失时, 判断是否能够利用接收到的源数据净载 荷和校验数据解码出全部丢失的源数据净载荷; 确定模块 913, 用于如 果不能解码出全部丢失的源数据净载荷, 则利用接收到的源数据净载荷 和校验数据, 确定出解码全部丢失的源数据净载荷所需的源数据符号; 第一发送模块 914, 用于向重传设备 92发送重传请求消息, 请求重传所 需的源数据符号的全部或部分。客户端 91还可以进一步包括: 第一重构 模块 910, 用于利用接收的源数据包中携带的源数据净载荷生成重构数 据块。
其中, 判断模块 912可以进一步包括: 第一判断单元 9121, 用于当 丢失的源数据净载荷对应的源数据符号(以下简称为丢失的源数据符号) 的数量大于接收到的校验数据符号的数量, 则判断为不能利用接收到的 源数据净载荷和校验数据符号解码出全部丢失的源数据净载荷, 反之, 当小于或等于时, 则判断为能够解码出全部丢失的源数据净载荷; 和 / 或, 第二判断单元 9122, 用于利用接收到的源数据净载荷对应的源数据 符号 (以下简称为接收到的源数据符号) 和校验数据符号, 进行前向纠 错解码, 如果能够解出丢失的源数据净载荷对应的全部源数据符号, 则 判断为能够利用接收到的源数据净载荷和校验数据符号解码出全部丢失 的源数据净载荷, 反之, 如果不能解出丢失的源数据净载荷对应的全部 源数据符号, 则判断为不能解码出全部丢失的源数据净载荷。 其中, 确定模块 913可以进一步包括: 第一确定单元 9131, 用于在 生成重构数据块后, 利用接收到的源数据符号和接收到的校验数据符号 通过前向纠错解码出部分丢失的源数据符号, 未解码出的丢失的源数据 符号作为解码全部丢失的源数据净载荷所需的源数据符号; 和 /或, 第二 确定单元 9132, 用于利用接收到的源数据符号确定出丢失的源数据符 号, 通过接收到的校验数据符号对应的前向纠错图样和丢失的源数据符 号, 确定出最小修复源数据符号集合, 以该最小修复源数据符号集合作 为解码全部丢失的源数据净载荷所需的源数据符号。
如图 9c所示, 重传设备 92可以包括: 第二接收模块 921, 用于接 收客户端 91发送的重传请求消息, 该重传请求消息中携带了客户端 91 确定的要重传的源数据符号的 ESI; 缓存模块 922, 用于缓存一段时间内 的全部源数据包; 第二重构模块 923, 用于利用缓存的一段时间内的全 部源数据包中携带的源数据净载荷生成重构数据块; 提取模块 924, 用 于根据要重传的源数据符号的 ESI, 从重构数据块中提取出要重传的源 数据符号; 第二发送模块 925, 用于将提取出的要重传的源数据符号发 送给客户端 91。
重传设备 92还可以包括: 校验模块 926, 用于对提取出的要重传的 源数据符号进行前向纠错编码, 生成相应的校验数据。 此时, 第二发送 模块 925, 还用于将生成相应的校验数据发送给客户端 91。
本实施例的系统, 用于执行实施例一的基于前向纠错的重传方法, 本实施例的系统的各个设备、 以及各个设备的模块的功能的实现方式可 以参考实施例一的相关内容, 这里不再赘述。
本实施例中, 客户端在利用接收到的源数据净载荷和校验数据不能 解码出全部丢失的源数据净载荷时, 利用接收到的源数据净载荷和校验 数据确定出解码全部丢失的源数据净载荷所需的源数据符号, 并向重传 设备请求重传该所需的源数据符号的全部或部分, 因此, 本发明实施例 提供的技术方案能够充分利用接收的数据包中的源数据净载荷和校验数 据, 提高了数据符号的利用率, 降低了数据的浪费, 并且由于所需的源 数据符号一般少于丢失的源数据符号, 因此在重传所需的源数据符号时 只重传了丢失的源数据符号的部分, 能够减少带宽的开销。 实施例四
如图 10a本实施例提供了另一种通信系统, 该系统能够完成基于前 向纠错的重传, 该系统包括:
第三媒体服务器 80, 用于向第三客户端 81发送携带源数据净载荷 的源数据包和携带校验数据的校验数据包;向第三重传设备 82发送携带 源数据净载荷的源数据包和携带校验数据的校验数据包;
第三客户端 81,用于接收携带源数据净载荷的源数据包和携带校验 数据的校验数据包; 当源数据包有丢失时, 判断是否能够利用接收到的 源数据净载荷和校验数据解码出全部丢失的源数据净载荷; 如果不能解 码出全部丢失的源数据净载荷, 向重传设备 82反馈丢包情况;
第三重传设备 82, 用于缓存一段时间内的全部源数据包和校验数据 包; 根据第三客户端 81反馈的丢包情况,确定出解码全部丢失的源数据 净载荷所需的源数据符号;向第三客户端 81发送所需的源数据符号的全 部或部分。
如图 10b所示, 第三客户端 81可以包括: 第三接收模块 811, 用于 接收携带源数据净载荷的源数据包和携带校验数据的校验数据包; 第三 判断模块 812, 用于当源数据包有丢失时, 判断是否能够利用自身接收 到的源数据净载荷和校验数据解码出全部丢失的源数据净载荷; 第三发 送模块 813, 用于如果不能解码出全部丢失的源数据净载荷时, 向重传 设备 82反馈丢包情况。客户端 81还可以进一步包括:第三重构模块 810, 用于利用接收的源数据包中携带的源数据净载荷生成重构数据块。 其中, 第三判断模块 812可以进一步包括: 第三判断单元 8121, 用 于当自身丢失的源数据净载荷对应的源数据符号 (以下简称为丢失的源 数据符号) 的数量大于自身接收到的校验数据符号的数量, 则判断为不 能利用接收到的源数据净载荷和校验数据符号解码出自身的全部丢失的 源数据净载荷, 反之, 当小于或等于时, 则判断为能够解码出自身的全 部丢失的源数据净载荷; 和 /或, 第四判断单元 8122, 用于利用自身接收 到的源数据净载荷对应的源数据符号(以下简称为接收到的源数据符号) 和校验数据符号, 进行前向纠错解码, 如果能够解出丢失的源数据净载 荷对应的全部源数据符号, 则判断为能够利用接收到的源数据净载荷和 校验数据符号解码出自身的全部丢失的源数据净载荷, 反之, 如果不能 解出丢失的源数据净载荷对应的全部源数据符号, 则判断为不能解码出 自身的全部丢失的源数据净载荷。
如图 10c所示, 第三重传设备 82可以包括: 第四接收模块 821, 用 于接收第三客户端 81发送的携带第三客户端 81的丢包情况的反馈消息, 该重传请求消息中携带了第三客户端 81 的源数据对应的丢包情况和校 验数据对应的丢包情况; 第四确定模块 824, 用于根据第三客户端 81反 馈的丢包情况,确定出解码第三客户端 81的全部丢失的源数据净载荷所 需的源数据符号; 第四发送模块 826, 用于将提取出的所需的源数据符 号的全部或部分发送给第三客户端 81。
第三重传设备 82还可以包括: 第四缓存模块 822, 用于缓存一段时 间内的全部源数据包; 第四重构模块 823, 用于利用缓存的一段时间内 的全部源数据包中携带的源数据净载荷生成重构数据块; 第四提取模块 825 , 用于根据所需的源数据符号的 ESI, 从重构数据块中提取出所需的 源数据符号。 其中, 在确定出解码全部丢失的源数据净载荷所需的源数 据符号后, 获取所需的源数据符号可以有多种方式, 不限于上述的从重 构数据块中提取, 例如, 可以直接从所需的源数据符号对应的源数据包 中获取所需的源数据符号。
第三重传设备 82还可以包括: 第四校验模块 827, 用于对提取出的 所需的源数据符号进行前向纠错编码, 生成相应的校验数据。 此时, 第 四发送模块 826, 还用于将生成相应的校验数据发送给第三客户端 81。
其中, 第四确定模块 824可以进一步包括: 第三确定单元 8241, 用 于在生成重构数据块后,根据第三客户端 81反馈的丢包情况确定出第三 客户端 81接收到的源数据符号和第三客户端 81接收到的校验数据符号, 利用第三客户端 81接收到的源数据符号和第三客户端 81接收到的校验 数据符号通过前向纠错解码出部分丢失的源数据符号, 未解码出的丢失 的源数据符号作为解码全部丢失的源数据净载荷所需的源数据符号; 和 / 或, 第四确定单元 8242, 用于 居第三客户端 81反馈的丢包情况确定 出第三客户端 81丢失的源数据符号和第三客户端 81接收到的校验数据 符号,通过第三客户端 81接收到的校验数据符号对应的前向纠错图样和 丢失的源数据符号, 确定出最小修复源数据符号集合, 以该最小修复源 数据符号集合作为解码全部丢失的源数据净载荷所需的源数据符号。
本实施例的系统, 用于执行实施例二的基于前向纠错的重传方法, 本实施例的系统的各个设备、 以及各个设备的模块的功能的实现方式可 以参考实施例二的相关内容, 这里不再赘述。
本实施例中, 客户端在利用接收到的源数据净载荷和校验数据不能 解码出全部丢失的源数据净载荷时, 客户端向重传设备反馈丢包情况, 之后, 重传设备利用客户端接收到的源数据净载荷和校验数据确定出解 码全部丢失的源数据净载荷所需的源数据符号, 并发送该所需的源数据 符号的全部或部分给客户端, 因此, 本发明实施例提供的技术方案能够 充分利用接收的数据包中的源数据净载荷和校验数据, 提高了数据符号 的利用率, 降低了数据的浪费, 并且由于所需的源数据符号一般少于丢 失的源数据符号, 因此在发送所需的源数据符号时只重传了丢失的源数 据符号的部分, 能够减少带宽的开销。 另外, 由于所需的源数据符号是 由重传服务器确定的, 客户端仅需反馈丢包情况即可, 所以本发明实施 例的技术方案能够与现有的客户端兼容, 只需升级重传设备即可, 提高 了系统兼容性。 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分 流程, 是可以通过计算机程序来指令相关的硬件来完成, 所述的程序可 存储于一计算机可读取存储介质中, 该程序在执行时, 可包括如上述各 方法的实施例的流程。 其中, 所述的存储介质可为磁碟、 光盘、 只读存 储记忆体( Read-Only Memory, ROM )或随机存储记忆体( Random Access Memory, RAM ) 等。
总之, 以上所述仅为本发明的较佳实施例而已, 并非用于限定本发 明的保护范围。 凡在本发明的精神和原则之内, 所作的任何修改、 等同 替换、 改进等, 均应包含在本发明的保护范围之内。

Claims

权利要求
1、 一种基于前向纠错的重传方法, 其特征在于, 包括:
接收携带源数据净载荷的源数据包和携带校验数据的校验数据包; 当接收的源数据包有丢失时, 判断是否能够利用接收到的源数据净 载荷和校验数据解码出全部丢失的源数据净载荷;
如果不能解码出全部丢失的源数据净载荷, 则利用接收到的源数据 净载荷和校验数据, 确定出解码全部丢失的源数据净载荷所需的源数据 符号;
请求重传该所需的源数据符号。
2、 如权利要求 1所述的方法, 其特征在于, 所述判断是否能够利用 接收到的源数据净载荷和校验数据解码出全部丢失的源数据净载荷是: 当丢失的源数据符号的数量大于接收到的校验数据符号的数量, 则 判断为不能利用接收到的源数据净载荷和校验数据符号解码出全部丢失 的源数据净载荷;
或者, 利用接收到的源数据符号和接收到的校验数据符号, 进行前 向纠错解码, 如果不能恢复出全部丢失的源数据符号, 则判断为不能利 用接收到的源数据净载荷和校验数据符号解码出全部丢失的源数据净载 荷。
3、 如权利要求 1所述的方法, 其特征在于, 接收的源数据包有丢失 的判断方法是:
利用接收的源数据包中携带的源数据净载荷生成重构数据块, 如果 重构数据块缺失了源数据符号, 则源数据包有丢失;
或者, 如果接收端接收的源数据包的序列号不连续, 则源数据包有 丢失。
4、 如权利要求 1所述的方法, 其特征在于, 所述利用接收到的源数 据净载荷符号和校验数据符号, 确定出解码全部丢失的源数据净载荷符 号所需的源数据符号是:
生成重构数据块后, 利用接收到的源数据符号和接收到的校验数据 符号通过前向纠错解码恢复出部分丢失的源数据符号, 将未恢复出的丢 失的源数据符号作为解码全部丢失的源数据净载荷所需的源数据符号; 或者, 利用接收到的源数据符号确定出丢失的源数据符号, 通过接 收到的校验数据符号对应的前向纠错图样和丢失的源数据符号, 确定出 最小修复源数据符号集合, 以该最小修复源数据符号集合作为解码全部 丢失的源数据净载荷所需的源数据符号。
5、 如权利要求 4所述的方法, 其特征在于, 所述通过接收到的校验 数据符号对应的前向纠错图样和丢失的源数据符号, 确定出最小修复源 数据符号集合是:
从前向纠错图样矩阵中, 获取接收到的校验数据符号和丢失的源数 据符号同时对应的元素, 形成表征源数据符号丢失情况的丢失矩阵; 确 定所述丢失矩阵中校验数据符号对应的最大线性无关组; 将所述最大线 性无关组与单位向量组合生成满秩矩阵; 将生成满秩矩阵时增加的单位 向量对应的丢失的源数据符号作为最小修复源数据符号集合;
或者, 在前向纠错图样中递加丢失的源数据符号, 以前向纠错图样 矩阵可解时对应的最少的递加的丢失的源数据符号作为最小修复源数据 符号集合。
6、 如权利要求 1至 5任一项所述的方法, 其特征在于, 所述请求重 传该所需的源数据符号是:
请求重传全部的所需的源数据符号;
或者, 请求重传所需的源数据符号中重要数据对应的一部分源数据 符号。
7、 一种基于前向纠错的重传方法, 其特征在于, 包括: 服务器接收客户端反馈的丢包情况, 所述丢包情况包括客户端设备 的源数据对应的丢包情况和校验数据对应的丢包情况; 其中, 所述丢包 情况由客户端在接收的源数据包有丢失时, 且不能利用接收到的源数据 净载荷和校验数据解码出全部丢失的源数据净载荷时, 向服务器发送; 服务器根据客户端反馈的丢包情况, 确定出解码客户端的全部丢失 的源数据净载荷所需的源数据符号;
服务器向客户端发送所需的源数据符号。
8、 如权利要求 7所述的方法, 其特征在于, 客户端判断是否能够利 用接收到的源数据净载荷和校验数据解码出全部丢失的源数据净载荷 是:
当客户端丢失的源数据符号的数量大于客户端接收到的校验数据符 号的数量, 则判断为不能利用客户端接收到的源数据净载荷和校验数据 符号解码出全部丢失的源数据净载荷;
或者, 利用客户端接收到的源数据符号和客户端接收到的校验数据 符号, 进行前向纠错解码, 如果不能恢复出客户端丢失的全部源数据符 号, 则判断为不能利用客户端接收到的源数据净载荷和校验数据符号解 码出全部丢失的源数据净载荷。
9、 如权利要求 7所述的方法, 其特征在于, 客户端接收的源数据包 有丢失的判断方法是:
利用客户端接收的源数据包中携带的源数据净载荷生成重构数据 块, 如果重构数据块缺失了源数据符号, 则源数据包有丢失;
或者, 如果客户端接收端接收的源数据包的序列号不连续, 则源数 据包有丢失。
10、 如权利要求 7所述的方法, 其特征在于, 所述服务器根据客户 端反馈的丢包情况, 确定出解码客户端的全部丢失的源数据净载荷符号 所需的源数据符号是:
生成重构数据块后, 服务器根据客户端反馈的丢包情况确定出客户 端接收到的源数据符号和客户端接收到的校验数据符号; 利用客户端接 收到的源数据符号和客户端接收到的校验数据符号通过前向纠错解码恢 复出部分丢失的源数据符号, 将未恢复出的丢失的源数据符号作为解码 客户端的全部丢失的源数据净载荷所需的源数据符号;
或者, 服务器根据客户端反馈的丢包情况确定出客户端丢失的源数 据符号和客户端接收到的校验数据符号; 通过客户端接收到的校验数据 符号对应的前向纠错图样和客户端丢失的源数据符号, 确定出最小修复 源数据符号集合, 以该最小修复源数据符号集合作为解码客户端的全部 丢失的源数据净载荷所需的源数据符号。
1 1、 如权利要求 10所述的方法, 其特征在于, 所述通过客户端接收 到的校验数据符号对应的前向纠错图样和客户端丢失的源数据符号, 确 定出最小修复源数据符号集合是:
从前向纠错图样矩阵中, 获取客户端接收到的校验数据符号和客户 端丢失的源数据符号同时对应的元素, 形成表征源数据符号丢失情况的 丢失矩阵; 确定所述丢失矩阵中校验数据符号对应的最大线性无关组; 将所述最大线性无关组与单位向量组合生成满秩矩阵; 将生成满秩矩阵 时增加的单位向量对应的客户端丢失的源数据符号作为最小修复源数据 符号集合;
或者, 在前向纠错图样中递加客户端丢失的源数据符号, 以前向纠 错图样矩阵可解时对应的最少的递加的客户端丢失的源数据符号作为最 小修复源数据符号集合。
12、 如权利要求 7至 11任一项所述的方法, 其特征在于, 所述服务 器向客户端发送所需的源数据符号是:
发送全部的所需的源数据符号; 或者,发送所需的源数据符号中重要数据对应的一部分源数据符号。
13、 如权利要求 12所述的方法, 其特征在于, 所述方法还包括: 对要发送的所需的源数据符号进行前向纠错编码, 生成新的校验数 据, 发送所述要发送的所需的源数据符号和所述新的校验数据;
或者, 将要发送的所需的源数据符号发送一次, 或重复发送多次。
14、如权利要求 7至 11任一项所述的方法, 其特征在于, 所述丢包 情况包括源数据对应的丢包情况和校验数据对应的丢包情况;
所述源数据对应的丢包情况是:客户端接收到的源数据包的序列号, 或客户端丢失的源数据包的序列号, 或客户端接收到的源数据符号的
ESI, 或客户端丢失的源数据符号的 ESI;
所述校验数据对应的丢包情是: 客户端接收到的校验数据包的序列 号, 或客户端丢失的校验数据包的序列号, 或客户端接收到的校验数据 符号的 ESI, 或客户端丢失的校验数据符号的 ESI。
15、 一种客户端设备, 其特征在于, 包括: 第一接收模块, 用于接收携带源数据净载荷的源数据包和携带校验 数据的校验数据包; 判断模块, 用于当源数据包有丢失时, 判断是否能够利用接收到的 源数据净载荷和校验数据解码出全部丢失的源数据净载荷; 确定模块, 用于如果不能解码出全部丢失的源数据净载荷, 则利用 接收到的源数据净载荷和校验数据, 确定出解码全部丢失的源数据净载 荷所需的源数据符号; 第一发送模块, 用于向服务器发送重传请求消息, 请求重传所需的 源数据符号的全部或部分。
16、如权利要求 15所述的客户端设备, 其特征在于, 所述判断模块 进一步包括:
第一判断单元, 用于当丢失的源数据符号的数量大于接收到的校验 数据符号的数量, 则判断为不能利用接收到的源数据净载荷和校验数据 符号解码出全部丢失的源数据净载荷; 和 /或,
第二判断单元, 用于利用接收到的源数据符号和接收到的校验数据 符号, 进行前向纠错解码, 如果不能恢复出全部丢失的源数据符号, 则 判断为不能解码出全部丢失的源数据净载荷。
17、 如权利要求 15所述的客户端设备, 其特征在于, 所述确定模块 进一步包括:
第一确定单元, 用于在生成重构数据块后, 利用接收到的源数据符 号和接收到的校验数据符号通过前向纠错解码出部分丢失的源数据符 号, 将未解码出的丢失的源数据符号作为解码全部丢失的源数据净载荷 所需的源数据符号; 和 /或,
第二确定单元, 用于利用接收到的源数据符号确定出丢失的源数据 符号, 通过接收到的校验数据符号对应的前向纠错图样和丢失的源数据 符号, 确定出最小修复源数据符号集合, 以该最小修复源数据符号集合 作为解码全部丢失的源数据净载荷所需的源数据符号。
18、 一种通信系统, 其特征在于, 包括权利要求 15至 17任一项所 述的客户端设备和服务器;
所述服务器包括: 第二接收模块, 用于接收客户端设备发送的重传 请求消息, 该重传请求消息中携带了客户端设备确定的要重传的源数据 符号的 ESI; 第二重构模块, 用于利用缓存的一段时间内的全部源数据 包中携带的源数据净载荷生成重构数据块; 提取模块, 用于根据要重传 的源数据符号的 ESI, 从重构数据块中提取出要重传的源数据符号; 第 二发送模块, 用于将提取出的要重传的源数据符号发送给客户端设备。
19、 一种服务器, 其特征在于, 包括:
第四接收模块, 用于接收客户端设备发送的携带客户端设备的丢包 情况的反馈消息, 该重传请求消息中携带了客户端设备的源数据对应的 丢包情况和校验数据对应的丢包情况; 其中, 所述丢包情况由客户端在 接收的源数据包有丢失时, 且不能利用接收到的源数据净载荷和校验数 据解码出全部丢失的源数据净载荷时, 向服务器发送;
第四确定模块, 用于根据客户端设备反馈的丢包情况, 确定出解码 客户端设备的全部丢失的源数据净载荷所需的源数据符号; 第四发送模 块, 用于将所需的源数据符号的全部或部分发送给客户端设备。
20、 如权利要求 19所述的服务器, 其特征在于, 所述第四确定模块 进一步包括:
第三确定单元, 用于在生成重构数据块后, 根据客户端设备反馈的 丢包情况确定出客户端设备接收到的源数据符号和客户端设备接收到的 校验数据符号; 利用客户端设备接收到的源数据符号和客户端设备接收 到的校验数据符号通过前向纠错解码出部分丢失的源数据符号, 将未解 码出的丢失的源数据符号作为解码客户端设备的全部丢失的源数据净载 荷所需的源数据符号; 和 /或,
第四确定单元, 用于根据客户端设备反馈的丢包情况确定出客户端 设备丢失的源数据符号和客户端设备接收到的校验数据符号; 通过客户 端设备接收到的校验数据符号对应的前向纠错图样和客户端设备丢失的 源数据符号, 确定出最小修复源数据符号集合, 以该最小修复源数据符 号集合作为解码客户端设备的全部丢失的源数据净载荷所需的源数据符 号。
21、 一种通信系统, 其特征在于, 包括权利要求 19或 20所述的服 务器和客户端设备;
所述客户端设备包括: 第三接收模块, 用于接收携带源数据净载荷 的源数据包和携带校验数据的校验数据包; 第三判断模块, 用于当源数 据包有丢失时, 判断是否能够利用接收到的源数据净载荷和校验数据解 码出全部丢失的源数据净载荷; 第三发送模块, 用于如果不能解码出全 部丢失的源数据净载荷时, 向服务器发送携带客户端设备的丢包情况的 反馈消息。
22、如权利要求 21所述的系统, 其特征在于, 所述第三判断模块进 一步包括:
第三判断单元, 用于当客户端设备丢失的源数据符号的数量大于客 户端设备接收到的校验数据符号的数量, 则判断为不能利用接收到的源 数据净载荷和校验数据符号解码出客户端设备的全部丢失的源数据净载 ; 和 /或,
第四判断单元, 用于利用客户端设备接收到的源数据符号和客户端 设备接收到的校验数据符号, 进行前向纠错解码, 如果不能恢复出全部 丢失的源数据符号, 则判断为不能解码出客户端设备的全部丢失的源数 据净载荷。
PCT/CN2010/073425 2009-06-01 2010-06-01 基于前向纠错的重传方法、设备和通信系统 WO2010139265A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP10782969.9A EP2437421B1 (en) 2009-06-01 2010-06-01 Method, device and communication system for retransmitting based on forward error correction
US13/309,351 US9100180B2 (en) 2009-06-01 2011-12-01 Method, device and communication system for retransmission based on forward error correction

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN200910107560.6 2009-06-01
CN2009101075606A CN101902315B (zh) 2009-06-01 2009-06-01 基于前向纠错的重传方法、设备和通信系统

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/309,351 Continuation US9100180B2 (en) 2009-06-01 2011-12-01 Method, device and communication system for retransmission based on forward error correction

Publications (1)

Publication Number Publication Date
WO2010139265A1 true WO2010139265A1 (zh) 2010-12-09

Family

ID=43227539

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2010/073425 WO2010139265A1 (zh) 2009-06-01 2010-06-01 基于前向纠错的重传方法、设备和通信系统

Country Status (4)

Country Link
US (1) US9100180B2 (zh)
EP (1) EP2437421B1 (zh)
CN (1) CN101902315B (zh)
WO (1) WO2010139265A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10218467B2 (en) 2009-12-23 2019-02-26 Pismo Labs Technology Limited Methods and systems for managing error correction mode
US9787501B2 (en) 2009-12-23 2017-10-10 Pismo Labs Technology Limited Methods and systems for transmitting packets through aggregated end-to-end connection
JP2013013003A (ja) * 2011-06-30 2013-01-17 Brother Ind Ltd データ処理装置、データ処理方法、およびデータ処理プログラム
KR101961736B1 (ko) * 2012-04-23 2019-03-25 삼성전자 주식회사 통신 시스템에서 패킷 송수신 장치 및 방법
CN106034011A (zh) * 2015-03-11 2016-10-19 中国移动通信集团四川有限公司 一种组播传输质量保障的控制方法及系统
GB2542219B (en) * 2015-04-24 2021-07-21 Pismo Labs Technology Ltd Methods and systems for estimating missing data
CN106230562B (zh) * 2015-07-31 2019-11-15 北京智谷睿拓技术服务有限公司 数据重传方法、数据恢复方法、及其装置
JP6227616B2 (ja) * 2015-10-23 2017-11-08 ファナック株式会社 通信システム
CN107102908B (zh) * 2016-02-19 2021-02-19 阿里巴巴集团控股有限公司 数据校验方法、数据容错方法及装置
CN105743614B (zh) * 2016-04-01 2019-05-24 网宿科技股份有限公司 数据的传输方法和装置
CN107347048B (zh) * 2016-05-04 2021-04-30 北京京东尚科信息技术有限公司 数据校验的方法、装置及系统
CN107733551B (zh) * 2016-08-11 2021-02-23 华为技术有限公司 一种数据传输方法、装置和系统
CN107257265B (zh) * 2017-04-27 2019-09-20 深圳市鹏创软件有限公司 实时传输数据流前向纠错方法、系统、装置及存储介质
CN108667563B (zh) * 2018-01-19 2021-05-11 唐桥科技(杭州)有限公司 一种前向纠错包个数获取方法及装置
CN109412753A (zh) * 2018-10-25 2019-03-01 网易(杭州)网络有限公司 数据传输方法及装置、电子设备以及存储介质
CN111262658B (zh) * 2020-02-11 2022-09-16 平安科技(深圳)有限公司 基于fec的重传方法、装置及可读存储介质
CN111800233B (zh) * 2020-07-03 2023-10-24 南京天同之卜科技有限公司 一种提高导航探空仪数据传输成功率的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020114283A1 (en) * 2000-08-30 2002-08-22 The Chinese University Of Hong Kong System and method for error-control for multicast video distribution
CN101043296A (zh) * 2007-04-28 2007-09-26 华为技术有限公司 请求重传数据的方法、数据重传方法和数据传输系统
CN101340271A (zh) * 2007-07-02 2009-01-07 株式会社Ntt都科摩 混合自动请求重传方法、发射机、接收机和通信系统
CN101562152A (zh) * 2009-05-21 2009-10-21 深圳华映显示科技有限公司 主动元件阵列基板的制造方法

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4888767A (en) * 1984-12-25 1989-12-19 Nec Corporation Repeat request signal transmission method for multi-station packet communication
US5600663A (en) * 1994-11-16 1997-02-04 Lucent Technologies Inc. Adaptive forward error correction system
US6079042A (en) * 1995-04-27 2000-06-20 The Trustees Of The Stevens Institute Of Technology High integrity transport for time critical multimedia networking applications
EP1040611B1 (en) * 1997-12-12 2002-06-05 3Com Corporation A forward error correction system for packet based real-time media
US6243846B1 (en) * 1997-12-12 2001-06-05 3Com Corporation Forward error correction system for packet based data and real time media, using cross-wise parity calculation
US6145109A (en) * 1997-12-12 2000-11-07 3Com Corporation Forward error correction system for packet based real time media
US6278716B1 (en) 1998-03-23 2001-08-21 University Of Massachusetts Multicast with proactive forward error correction
US6289054B1 (en) * 1998-05-15 2001-09-11 North Carolina University Method and systems for dynamic hybrid packet loss recovery for video transmission over lossy packet-based network
US6421387B1 (en) * 1998-05-15 2002-07-16 North Carolina State University Methods and systems for forward error correction based loss recovery for interactive video transmission
US6104757A (en) * 1998-05-15 2000-08-15 North Carolina State University System and method of error control for interactive low-bit rate video transmission
US6490705B1 (en) * 1998-10-22 2002-12-03 Lucent Technologies Inc. Method and apparatus for receiving MPEG video over the internet
DE69927339T2 (de) * 1998-11-30 2006-06-22 Matsushita Electric Industrial Co., Ltd., Kadoma Datenübertragungverfahren
KR100539864B1 (ko) * 2001-07-25 2005-12-28 삼성전자주식회사 부호분할다중접속 이동통신시스템에서 고속 데이터의 재전송장치 및 방법
US20030039226A1 (en) * 2001-08-24 2003-02-27 Kwak Joseph A. Physical layer automatic repeat request (ARQ)
KR100827147B1 (ko) * 2001-10-19 2008-05-02 삼성전자주식회사 부호분할다중접속 이동통신시스템에서 고속 데이터의효율적 재전송 및 복호화를 위한 송,수신장치 및 방법
JP4116470B2 (ja) * 2002-03-06 2008-07-09 ヒューレット・パッカード・カンパニー メディア・ストリーミング配信システム
KR100458878B1 (ko) * 2002-05-03 2004-12-03 학교법인 경희대학교 Fec 코딩 방식에 기초한 가변길이 패킷 송수신 방법
KR100537499B1 (ko) * 2002-07-26 2005-12-19 삼성전자주식회사 전송제어 파라미터 생성방법 및 프레임 특성에 따른선택적 자동 재전송 방법
JP4454320B2 (ja) * 2004-01-09 2010-04-21 富士通株式会社 伝送装置、伝送制御プログラム、及び伝送方法
JP4506185B2 (ja) * 2004-02-06 2010-07-21 ソニー株式会社 受信装置および方法、並びにプログラム
US7328393B2 (en) * 2004-04-13 2008-02-05 Cisco Technology, Inc. Forward error correction in packet networks
JP4405875B2 (ja) * 2004-08-25 2010-01-27 富士通株式会社 エラー訂正用データの生成方法及び生成装置並びに生成プログラム及び同プログラムを格納したコンピュータ読み取り可能な記録媒体
US7533324B2 (en) * 2004-09-22 2009-05-12 Kencast, Inc. System, method and apparatus for FEC encoding and decoding
US20060224745A1 (en) * 2005-04-01 2006-10-05 Sharpe Randall B Error recovery mechanism and network element comprising same
EP1791285A1 (en) * 2005-11-29 2007-05-30 Alcatel Lucent Hybrid ARQ apparatus and corresponding method, wherein the FEC redundancy is adapted based on the number of retransmissions of a packet
WO2008014419A2 (en) 2006-07-26 2008-01-31 Lai Shui T Intrastromal surgery correcting low order and high order aberrations of the eye
US7733913B1 (en) * 2006-07-31 2010-06-08 Hewlett-Packard Development Company, L.P. Striping data over transmission channels
US7958426B2 (en) * 2006-08-25 2011-06-07 Innovation Specialists, Llc Distributed block coding (DBC)
WO2008033645A2 (en) 2006-09-11 2008-03-20 Cisco Technology, Inc. Hybrid correction scheme for dropped packets
FR2906428A1 (fr) * 2006-09-26 2008-03-28 Canon Kk Procede, dispositif et application logicielle pour la transmission de paquets de donnees dands un systeme de communication.
JP5224731B2 (ja) * 2007-06-18 2013-07-03 キヤノン株式会社 映像受信装置及び映像受信装置の制御方法
US7930617B1 (en) * 2007-06-20 2011-04-19 Rockwell Collins, Inc. Sliding window block codes for cross-packet coding
JP5075536B2 (ja) * 2007-09-03 2012-11-21 株式会社東芝 Fec送信処理装置、ならびにfec送信処理のための方法およびプログラム
KR101129260B1 (ko) * 2007-09-12 2012-03-27 디지털 파운튼, 인크. 신뢰성 있는 통신들을 가능하게 하는 소스 식별 정보 생성 및 통신
US20090103635A1 (en) * 2007-10-17 2009-04-23 Peshala Vishvajith Pahalawatta System and method of unequal error protection with hybrid arq/fec for video streaming over wireless local area networks
BRPI0722125B1 (pt) * 2007-10-23 2020-03-03 Interdigital Ce Patent Holdings Método, sistema e aparelho para correção de erro de encaminhamento adaptativo com pedido de repetição automática combinada para multitransmissão confiável em redes de área local sem fio
US8230316B2 (en) * 2008-01-25 2012-07-24 Nevion Usa, Inc. Forward error correction for burst and random packet loss for real-time multi-media communication
JP5109787B2 (ja) * 2008-05-02 2012-12-26 富士通株式会社 データ伝送システム、プログラム及び方法
EP2134018A1 (en) * 2008-05-23 2009-12-16 Deutsches Zentrum für Luft- und Raumfahrt e.V. Method for recovery of lost and/ or corrupted data
JP5094593B2 (ja) * 2008-06-27 2012-12-12 キヤノン株式会社 送信装置、受信装置、及び方法、プログラム
US9312989B2 (en) * 2008-07-07 2016-04-12 Cisco Technology, Inc. Importance-based FEC-aware error-repair scheduling

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020114283A1 (en) * 2000-08-30 2002-08-22 The Chinese University Of Hong Kong System and method for error-control for multicast video distribution
CN101043296A (zh) * 2007-04-28 2007-09-26 华为技术有限公司 请求重传数据的方法、数据重传方法和数据传输系统
CN101340271A (zh) * 2007-07-02 2009-01-07 株式会社Ntt都科摩 混合自动请求重传方法、发射机、接收机和通信系统
CN101562152A (zh) * 2009-05-21 2009-10-21 深圳华映显示科技有限公司 主动元件阵列基板的制造方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2437421A4 *

Also Published As

Publication number Publication date
US9100180B2 (en) 2015-08-04
CN101902315B (zh) 2013-04-17
CN101902315A (zh) 2010-12-01
EP2437421A4 (en) 2012-04-04
EP2437421B1 (en) 2016-04-27
EP2437421A1 (en) 2012-04-04
US20120079339A1 (en) 2012-03-29

Similar Documents

Publication Publication Date Title
WO2010139265A1 (zh) 基于前向纠错的重传方法、设备和通信系统
RU2611975C2 (ru) Устройство и способ передачи и приема пакетов в системе вещания и связи
EP1771964B1 (en) Point-to-point repair request mechanism for point-to-multipoint transmission systems
JP3571918B2 (ja) 符号伝送方法、送信装置、受信装置および通信システム
JP5650332B2 (ja) 集約されたパケットの送信におけるパケットレベル消去保護コーディング
US6675346B2 (en) Code transmission scheme for communication system using error correcting codes
KR101366332B1 (ko) 통신 시스템에서의 데이터 블록 재전송 방법
US8386901B2 (en) Method, device and software application for transmitting data packets in a communication system
RU2469482C2 (ru) Способ и система для передачи данных в сети передачи данных
CN109714130B (zh) 一种基于喷泉码的文件传输方法
CN105306165A (zh) 数据发送方法及装置
KR20060120248A (ko) 손실 부분들의 식별 및 재전송
BRPI0722125B1 (pt) Método, sistema e aparelho para correção de erro de encaminhamento adaptativo com pedido de repetição automática combinada para multitransmissão confiável em redes de área local sem fio
WO2010124651A1 (zh) 前向纠错方法、装置和系统
CN101286819B (zh) 一种数据接收方法及装置
CN102104463B (zh) 数据报文请求重传方法及装置
WO2011079777A1 (zh) 数据传输的方法和网络侧设备
CN102752184A (zh) 用于实时多播业务的数据通信系统及其方法
JP5236735B2 (ja) 送信機及び受信機間の改良されたデータ構造境界同期
CN108769000B (zh) 一种用于深空环境的高效流媒体传输方法
WO2022105753A1 (zh) 网络数据编码传输方法及装置
CN103067130B (zh) 基于联合行列校验码和rs码的丢包恢复技术的无线通信方法
Qin et al. Joint generation network coding in unreliable wireless networks
Gasiba et al. Enhanced system design for download and streaming services using Raptor codes
Lochina et al. aENAC, University of Toulouse, Toulouse, France, bUniversite de la Reunion, Saint-Denis Reunion, France, cThales Communications, Colombes, France

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: 10782969

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2010782969

Country of ref document: EP