DESCRIPTION
COMMUNICATION METHOD, SYSTEM AND DEVICE
The invention relates to a method of communicating information, to a device for use in a communication system, and to a communication system comprising such a device. The invention is particularly, but not exclusively, suitable for use in the communication of information from a single device to a plurality of devices.
A known way of encoding information is illustrated in Figure 1. Information is encoded in data packets, each data packet comprising a code word of an inner code having k symbols for information I and r parity check symbols P, which may include, for example, a cyclic redundancy checksum (CRC). Each row of Figure 1 represents a data packet and the total amount of information occupies k' such data packets, as represented by the upper k' rows in Figure 1. To the k' data packets are added further packets k'+1 to N which contain parity check symbols P' which encode the symbols of the upper k' rows of Figure 1 to form an outer code. In this way the outer code encodes a plurality of data packets. After transmission of the resulting group of N data packets through a noisy channel, error detection and/or error correction can be performed on each information carrying data packet using the inner code parity check symbols P, and error correction can be performed across all the data packets using the outer code. The objective of such a coding scheme is to combine the capability of the inner and outer codes, enabling errors that cannot be fully corrected by one code to be corrected by the other code or the combination of codes. Either the inner code or outer code may be decoded first by a receiving device. Such a coding scheme is under consideration, for example, for providing a Multi-Media Broadcast and Multicast Service (MBMS) for the Universal Mobile Telecommunication System (UMTS). In such a broadcast or
multicast service the data packets will be broadcast over a Radio Access Network (RAN) to large numbers of users in each coverage cell, and so the transmission power cannot be set individually for each user. Typically it may be desired to be able to provide the MBMS in 90% of the coverage area of each cell. This means that a high power level, for example 30% of available base station transmit power, will be needed for the MBMS in order to ensure that the users near the edge of the cell can receive the data packets with a sufficiently low error ratio. A powerful coding scheme such as that described above with reference to Figure 1 can contribute to reducing the transmit power requirement. On occasions that the combined error correcting power of the inner and outer codes is insufficient to correct all the errors occurring during transmission, it is desirable to retransmit one or more data packets to give a receiving device another chance to decode the information. When there is a single receiving device, the receiving device can transmit a positive acknowledgment (ACK) or a negative acknowledgement (NACK) for each data packet to indicate to the sending device whether or not that data packet has been successfully received, and consequently whether or not a retransmission of that data packet is required. This approach can result in a large number of acknowledgements being transmitted. Alternatively, to reduce the number of acknowledgements transmitted, the receiving device can transmit a single ACK or NACK to indicate whether or not the whole group of N data packets has been successfully received, and consequently whether or not a retransmission of the whole group of N data packets is required. However, this may result in the retransmission of some data packets that have already been successfully decoded. The number of data packets retransmitted can be reduced if a selective retransmission scheme is employed in which a receiving device transmits an indication of which data packets it has failed to decode successfully after decoding both the inner and outer codes, and the sending device retransmits only those indicated data packets.
When providing a broadcast service such as MBMS, it is not desirable for each receiving device to transmit an ACK or NACK for every data packet, or for every group of N data packets, that it receives. For a large number of users in a cell, this could result in a large amount of interference. Consequently, one way of operating is to refrain from sending ACKs, but to assume that a receiving device has received a data packet, or group of data packets, correctly unless it transmits a NACK. An object of the invention is to reduce the amount of transmission in a communication system. According to a first aspect of the invention there is provided a method of communicating information from a first device to a second device, comprising: encoding information in a group of data packets, wherein each data packet comprises an inner error detection or correction code and the group comprises an outer error correction code; transmitting the group of data packets from the first device; receiving the group of data packets at the second device; decoding the group of data packets using the inner and outer codes to recover the information; if a plurality of the data packets are undecodable such that the information is not recovered, determining a subset of the plurality of undecodable data packets which would, if each data packet of the subset were decodable, enable the information to be recovered; and retransmitting the subset of data packets from the first device. Either the second device (also referred to as the receiving device) may transmit an indication of the plurality of undecodable data packets, and the first device (also referred to as the sending device) determines the subset of those data packets to be retransmitted, or the second device may determine the subset of the undecodable data packets and transmit an indication of the subset to the first device. According to a second aspect of the invention there is provided a device for sending data in a communication system, comprising: encoding means for
encoding information in a group of data packets, wherein each data packet comprises an inner error detection or correction code and the group comprises an outer error correction code; transmitter means for transmitting the encoded information; receiver means for receiving an indication of a plurality of data packets that are undecodable by a receiving device; processing means for determining a subset of the plurality of undecodable data packets which would, if each data packet of the subset were decodable, enable the information to be recovered by the receiving device; and wherein the transmitter means is adapted to transmit the determined subset of data packets. According to a third aspect of the invention there is provided a device for receiving data in a communication system in which information is encoded in a group of data packets, wherein each data packet comprises an inner error detection or correction code and the group comprises an outer error correction code, the device comprising: receiving means for receiving the group of data packets; decoding means for decoding the group of data packets using the inner and outer codes to recover the information; processing means adapted to, if a plurality of data packets are undecodable such that the information is not recovered, determine a subset of the plurality of undecodable data packets which would, if each data packet of the subset were decodable, enable the information to be recovered; and transmitting means for transmitting from the second device an indication of the subset of data packets. According to a fourth aspect of the invention there is provided a communication system comprising a device in accordance with the second aspect of the invention for sending data and a further device for receiving the data and requesting retransmission of undecodable data packets. According to a fifth aspect of the invention there is provided a communication system comprising a device in accordance with the third aspect of the invention for receiving data and a further device for sending the data and retransmitting requested data packets. The invention is based on the realisation that it is not necessary to retransmit every undecodable data packet, but that retransmission of merely a
subset of the undecodable data packets is sufficient because the combination of the inner and outer codes can enable previously undecodable data packets to become decodable after retransmission of the subset. In this way, the invention enables a reduction in the amount of transmission in a communication system.
The invention will now be described, by way of example only, with reference to the accompanying drawings wherein: Figure 1 illustrates information encoded with an inner code and an outer code; Figure 2 is a flow chart illustrating a method of communicating information; Figure 3 is a block schematic diagram of a device for sending data; Figure 4 is a block schematic diagram of a device for receiving data; Figure 5 is a block schematic diagram of a communication system comprising the device of Figure 3; and Figure 6 is a block schematic diagram of a communication system comprising the device of Figure 4. Referring to Figure 2, a method of communicating information from a first, sending device to a second, receiving device commences at step 110 where, at the sending device, information is encoded with an inner error detection or correction code and then at step 120 the encoded data is further encoded with an outer error correction code, resulting in a group of data packets. At step 130 the group of data packets is transmitted by the sending device, and at step 140 the transmitted data packets are received by the receiving device. At step 150 the inner codes of the received data packets are decoded by the receiving device, and then at step 160 the outer code of the received data packets is decoded.
At step 170 the receiving device determines whether all of the transmitted data packets have been decoded successfully, including data packets decoded successfully from any previous transmissions, such that the information, either the whole information or a predetermined amount, can be recovered. If all of the transmitted data packets have been decoded successfully, then the process ends at step 180. If a plurality of the transmitted data packets are undecodable due to transmission errors, including data packets decoded from any previous transmissions, such that the information cannot be recovered, then at step 190 a subset of the plurality of undecodable data packets is determined which would, if each data packet of the subset were decodable, enable the information to be recovered. Step 190 may be performed either by the sending device, in response to the receiving device transmitting an indication of the plurality of undecodable data packets, or by the receiving device, in which case the receiving device transmits to the sending device an indication of the data packets in the subset. The subset may, depending on the extent of the errors, comprise only one data packet. If only one of the transmitted data packets is undecodable, then determination of the subset is trivial and only that data packet is retransmitted. After step 190, flow loops back to step 130 where the subset of data packets for retransmission, each data packet being already encoded using the inner code, is transmitted. The looping continues until a predetermined criterion is satisfied. The criterion may be, for example: all or a predetermined amount of the information has been recovered, all or a predetermined percentage of data packets have been successfully decoded, or a maximum number of retransmissions has been made, or a time limit expires. Optionally, depending on the type of coding employed, at the receiving device the inner code may be decoded before the outer code, in which case
the order of steps 150 and 160 is reversed. Additionally or alternatively, the order of steps 110 and 120 may be reversed in the sending device. Referring to Figure 3, a device 200 for sending data comprises a first encoder 220 for receiving information on an input 210 and encoding the information in data packets using an inner error detection or correction code. An output of the first encoder 220 is coupled to an input of a second encoder 230 which receives the encoded data packets from the first encoder 220 and encodes the data packets using an outer error correction code, and delivers a group of data packets to a transmitter 240 for transmission via an antenna 250. There is a receiver 260 for receiving, from a receiving device that receives the transmission, an indication of a plurality of the data packets that are undecodable by the receiving device, taking into account data packets decoded successfully from any previous transmissions. The receiver 260 is coupled to a processing means 270 for processing the received indication. It determines a subset of the plurality of undecodable data packets which would, if each data packet of the subset were decodable, enable the whole information, or a predetermined amount of the information, to be recovered successfully by the receiving device. The processing means 270 is coupled to the transmitter 240 for transmitting the encoded, determined subset of data packets. Referring to Figure 4, a device 300 for receiving data comprises a receiver 320 coupled to an antenna 310 for receiving a group of data packets, wherein each data packet comprises information encoded in an inner error detection or correction code and the group comprises an outer error correction code. An output of the receiver 320 is coupled to an input of a first decoder 330 for decoding either the inner or outer code. An output of the second decoder 330 is coupled to an input of a second decoder 340 for decoding the other code (outer or inner). An output of the second decoder 340 is coupled to a processing means 350. If a plurality of the data packets are undecodable such that the whole of the information, or a predetermined amount of the information, is not successfully recovered, including data packets decoded
successfully from any previous transmissions, the processing means 350 determines a subset of the plurality of undecodable data packets which would, if each data packet of the subset were decodable, enable the information to be recovered successfully. The processing means 350 is coupled to a transmitter 360 for transmitting via the antenna 310 an indication of the subset of data packets. Referring to Figure 5, there is illustrated a communication system 400 comprising the sending device 200 of Figure 3 and a receiving device 410. In this embodiment, the receiving device 410 determines, and transmits an indication of, which received data packets are undecodable, taking account of data packets received in any previous transmission, and the sending device 200 determines which subset of those undecodable data packets is retransmitted. In one such embodiment of the invention the receiving device 410 does not transmit a NACK for a group of data packets until the decoding operation on both the inner and the outer codes has been carried out for the group of data packets. If the combined codes fail to correct all the errors in the group of data packets, the receiving device 410 then determines which of the constituent data packets are undecodable, indicated for example by an incorrect CRC check in the data packets, and transmits a multi-bit NACK codeword. This NACK codeword gives the sending device the identity of only those received data packets that were undecodable. Referring to Figure 6, there is illustrated a communication system comprising the receiving device 300 of Figure 4 and a sending device 510. In this embodiment, the receiving device 300 determines which subset of the undecodable data packets is to be retransmitted, taking account of data packets received in any previous transmission, and the transmits an indication of those data packets to the sending device 510 in order to request retransmission. The sending device 510 retransmits those requested data packets. In a communication system comprising a plurality of receiving devices,
300 or 410, receiving the same data, a sending device 200 may compile a list
of the data packets identified by the various receiving devices, 300 or 410, as being undecodable, and then select for retransmission a subset of the undecodable data packets in the compiled list sufficient to enable each receiving device, 300 or 410, or a plurality of the receiving devices to complete decoding of the full set of N data packets using the inner and outer codes. As an example of how the subset of undecodable data packets is selected, consider the situation in which there are e undecodable data packets after the inner and outer codes have been decoded, and the outer code is capable of correcting any t errors (e> t ) in each code word of the outer code. Then, rather than retransmitting all e undecodable data packets, the retransmitted subset could comprise any e-t of the undecodable data packets. Provided that all e-t of the retransmitted data packets are decodable, all of the t non-retransmitted undecodable data packets will then become decodable by applying the error correction capability of the outer code. Alternatively, to provide a margin of safety in case not all retransmitted data packets are decodable, the subset may comprise more than e-t of the undecodable data packets, but fewer than e. In this case, provided after retransmission of the subset no more than t of the data packets remain undecodable using the inner code, these remaining undecodable data packets can be decoded successfully using the outer code. Furthermore, if the outer code is capable of correcting some combinations of more than t errors in each code word of the outer code, then by using the knowledge of which error combinations are correctable, and the knowledge of which data packets are undecodable, the subset of undecodable data packets may be selected to take advantage of the maximum error correcting capability of the outer code, thereby minimising the number of data packets retransmitted. In a typical MBMS service at 64kbps, data is packaged into physical layer data packets each lasting 20ms. Each such packet includes FEC (Forward Error Correction) symbols and a CRC. Sixteen such data packets (k-16) are grouped together and processed by a (28,16) Reed Solomon code
to produce 12 more packets of parity data, which are transmitted after the 16 data packets (N=28). The receiving device 410 receives, and attempts to decode, each physical layer data packet individually. If the CRC fails for one or more of the 16 data packets, the receiving device 410 then proceeds to use the parity information from the Reed Solomon code to attempt to recover the corrupt packets. If this process does not result in the remaining CRCs of the physical layer data packets passing, the receiving device 410 transmits a multi-bit NACK indication to the sending device 200. In this example, a NACK codeword containing 4 information bits per physical layer packet would be sufficient to indicate unambiguously to the sending device 200 the identity of the physical layer data packets which have failed. The sending device 200 then selects the subset to encode and retransmit. The NACK codeword may itself be protected with an error-correcting code and/or a CRC. The number of bits required for the NACK codeword may be reduced by signalling only an indication of which sub-groups of the group of N data packets contain errors. For example, if the 16 data packets were considered as 8 sub-groups of 2, a 3-bit codeword per sub-group would suffice for the NACK. The number of bits required for the NACK is therefore a trade-off between the signalling energy required for the NACKs and the number of data packets which have to be retransmitted. Note that any physical layer data packets which are retransmitted could be retransmitted as part of the next group of data packets. Optionally, all receiving devices 410 could be required to transmit their NACKs before all the parity data packets have been transmitted. In reliable radio channels, this could allow the sending device 200 to avoid transmitting the last few parity data blocks if no NACKs were received. Optionally the receiving devices in a cell are sub-divided into groups, each of which is allocated a specific time period in which to transmit their NACKs. The time periods are arranged sequentially in a time-division manner. If during one of the earlier time periods the sending device detects a NACK for
a particular physical layer data packet or sub-group of data packets, it can indicate to all receiving devices that the relevant data packet or packets will be retransmitted, so that receiving devices which have been assigned to subsequent time periods do not need to transmit NACK for those packets. Optionally, the inner and outer codes may comprise a block code or a convolutional code, or another type of code, including a composite of more than one code. Optionally, a second outer code may be used to further encode the retransmitted data packets. Although the invention has been described in relation to wireless communication, the invention is not limited to use in wireless communication. In the present specification and claims the word "a" or "an" preceding an element does not exclude the presence of a plurality of such elements. Further, the word "comprising" does not exclude the presence of other elements or steps than those listed. From reading the present disclosure, other modifications will be apparent to persons skilled in the art. Such modifications may involve other features which are already known in the art of coding, retransmission protocols and point-to-multipoint communications, and which may be used instead of or in addition to features already described herein.