Description
METHOD AND SYSTEM FOR ENHANCING TRANSMISSION RELIABILITY OF VIDEO INFORMATION OVER WIRELESS
CHANNELS
Technical Field
[1] The present invention relates to transmission of video information and in particular to enhancing transmission reliability of video information. Background Art
[2] With the proliferation of high quality video, an increasing number of electronic devices (e.g., consumer electronics devices) utilize high definition (HD) video which can require multiple gigabit per second (Gbps ) in bandwidth for transmission. As such, when transmitting such HD video between devices, conventional transmission approaches compress the HD video to a fraction of its size to lower the required transmission bandwidth. The compressed video is then decompressed for consumption. However, with each compression and subsequent decompression of the video data, some data can be lost and the picture quality can be reduced.
[3] The High-Definition Multimedia Interface (HDMI) specification allows the transfer of uncompressed HD signals between devices via a cable. While consumer electronics makers are beginning to offer HDMI-compatible equipment, there is not yet a suitable wireless (e.g., radio frequency (RF)) technology that is capable of transmitting uncompressed HD video signals. Wireless local area network (WLAN) and similar technologies can suffer interference issues when several devices are connected which do not have the bandwidth to carry the uncompressed HD signal, and do not provide an air interface to transmit uncompressed video over 60 GHz band. Disclosure of Invention Technical Solution
[4] A method and system for enhancing transmission reliability of video information over a wireless channel is provided. Advantageous Effects
[5] the present invention further allows selective retransmission of video data based on human perceptual importance of such data.
[6] Therefore, in the case of retransmission according to an embodiment of the present invention, the MSBs are given the highest retransmission preference to conserve bandwidth and reduce retransmission delay.
[7] As is known to those skilled in the art, the aforementioned example architectures described above, according to the present invention, can be implemented in many
ways, such as program instructions for execution by a processor, as logic circuits, as an application specific integrated circuit, as firmware, etc. The present invention has been described in considerable detail with reference to certain preferred versions thereof; however, other versions are possible. Therefore, the spirit and scope of the appended claims should not be limited to the description of the preferred versions contained herein.
Description of Drawings [8] Fig. 1 shows an example of a data packet including a payload of uncompressed video pixel components that has a bit complemented in transmission from a sender to a receiver over a wireless channel. [9] Fig. 2 shows a data packet with a payload comprising multiple sub-packets and multiple CRCs, for enhancing transmission reliability of uncompressed video packets over wireless channels, according to an embodiment of the present invention. [10] Fig. 3 shows sub-packet padding, according to an embodiment of the present invention. [11] Fig. 4 shows a data packet with a payload comprising multiple sub-packets, according to an embodiment of the present invention. [12] Fig. 5 shows a CRC Control Field in the Media Access Control (MAC) header of the data packet of Fig. 2, according to an embodiment of the present invention. [13] Fig. 6 shows another CRC Control Field in the MAC header of the data packet of
Fig. 2, according to an embodiment of the present invention. [14] Fig. 7 shows the details of a sub-packet in Fig. 2, according to an embodiment of the present invention. [15] Fig. 8 shows the details of a CRC calculation for the sub-packet in Fig. 7, according to an embodiment of the present invention. [16] Fig. 9 shows a timing diagram of an immediate retransmission method, according to an embodiment of the present invention. [17] Fig. 10 shows a retransmitted sub-packet, according to an embodiment of the present invention.
[18] Fig. 11 shows a flowchart of a sub-packetization process by the sender, for constructing each sub-packet in the packet of Fig. 2, according to an embodiment of the present invention. [19] Fig. 12 shows a flowchart for sub-packet processing in a receiver and generating a responsive ACK packet (frame), according to an embodiment of the present invention. [20] Fig. 13 shows an example of an ACK packet, according to the present invention.
[21] Fig. 14 shows a flowchart of a retransmission process implemented by the sender, according to an embodiment of the present invention. [22] Fig. 15 shows a functional block diagram of a wireless communication system im-
plementing data packet transmission, according to an embodiment of the present invention.
Best Mode
[23] The video information includes pixels, each having a plurality of components and each component including video information bits that are places in sub-packets within a packet. Error detection information is determined for one or more sub-packets, and placed in the packet. Then the packet is transmitted from a transmitter to a receiver over a wireless channel, wherein the receiver uses the error detection information per sub-packet to check for transmission errors and request retransmission of erroneous video information bits based on their perceptual importance.
[24] In one embodiment, this is achieved by sub-packetizing video information in each packet, and providing error detection/correction information including multiple cyclic redundancy code (CRC) checks, per sub-packet in each packet.
[25] Upon receiving each packet, the receiver detects error based on the multiple CRC checks per sub-packet, and transmits an acknowledgment (ACK) packet to the sender, indicating such errors. The sender then selectively retransmits the information in the sub-packets received in error based on perceptual importance of such information.
[26] These and other features, aspects and advantages of the present invention will become understood with reference to the following description, appended claims and accompanying figures. Mode for Invention
[27] This application claims priority from U.S. Provisional Patent Application Serial
Number 60/787,250, filed on March 29, 2006, incorporated herein by reference.
[28] The present invention provides a method and system for enhancing transmission reliability of video information packets from a sender to a receiver over wireless channels (e.g., RF). In one embodiment, this is achieved by sub-packetizing uncompressed video information in each packet, and providing error detection/correction information, such as multiple CRC checks, per sub-packet in each packet.
[29] Even if a wireless medium has enough bandwidth to support uncompressed HD
1080p video, in case of transmission errors in some video packets, it is not desirable to retransmit entire uncompressed video streams. Typically, a video frame of pixels is divided into multiple scan lines. Each scan line contains an integer number of pixels, which are denoted by a number of pixel components. Quantization for pixel depth, or bits per pixel component (bitplane), may be 8-bit, 10-bit, 12-bit or 16-bit values. A pixel component contains either a color component (chrominance) or a luminance component of the video. Considering an 8-bit quantization and a 60 frames/second, a one second long uncompressed video (1080p) segment can be expressed as 60 x 3 x 8
x 1420 x 1080 = 2.98 gigabits. Typically, it is not possible to retransmit the entire stream from a sender (transmitter) to a receiver without violating the presentation deadline of a sink device such as a TV display.
[30] Accordingly, the present invention further allows selective retransmission of video data based on human perceptual importance of such data. Given a frame of video pixels, wherein each pixel comprises multiple components (e.g., R, G, B), different bits of each pixel component do not equally affect the video quality. For example, a most significant bit (MSB) largely affects the uncompressed video quality, and therefore has a higher perceptual importance, compared to a least significant bit (LSB). Therefore, in the case of retransmission according to an embodiment of the present invention, the MSBs are given the highest retransmission preference to conserve bandwidth and reduce retransmission delay.
[31] Example implementations of the present invention are now described. In many wireless communication systems, a frame structure is used for data transmission between a transmitter and a receiver. For example, the IEEE 802.11 standard uses frame aggregation in a Media Access Control (MAC) layer and a physical (PHY) layer. In a typical transmitter, a MAC layer receives a MAC Service Data Unit (MSDU) and attaches a MAC header thereto, in order to construct a MAC Protocol Data Unit (MPDU). The MAC header includes information such a source addresses (SA) and a destination address (DA). The MPDU is a part of a PHY Service Data Unit (PSDU) and is transferred to a PHY layer in the transmitter to attach a PHY header (i.e., PHY preamble) thereto to construct a PHY Protocol Data Unit (PPDU). The PHY header includes parameters for determining a transmission scheme including a coding/ modulation scheme.
[32] Before transmission as a packet from a transmitter to a receiver, a preamble is attached to the PPDU, wherein the preamble can include channel estimation and synchronization information.
[33] Fig. 1 presents an example of a conventional data packet 1, including a payload 2 of
M uncompressed video pixel components, each component having an N bit bitplane, that is transmitted from a sender (e.g., uncompressed video stream source) to a receiver (e.g., uncompressed video stream sink) over a wireless channel. In addition to including the payload 2, the packet 1 includes a CRC value in a CRC field 4 for the video pixels, and the usual physical layer header (PHY HDR) 6 and MAC layer header (MAC HDR) 8.
[34] In one example, during transmission, a MSB 7 of an N bit pixel component 9 in the payload 2 is complemented (i.e., corrupted), causing a CRC error at the receiver. In another example, during transmission, a LSB 5 of an N bit pixel component 9 in the payload 2 is complemented, causing a CRC error at the receiver. Since the CRC value
comprises a checksum over the entire payload, it is not feasible to determine at the receiver whether the MSBs or the LSBs are corrupted. Moreover, retransmission of the payload when the LSB is complemented can be futile since a corrected LSB does not provide any discernable improvement to received video quality.
[35] A transmission packet according to an embodiment of the present invention includes a payload of M pixel components, each pixel component comprising N bits, and the P = M x N payload bits are divided into K sub-packets of L bits each. Each sub-packet comprises a sub-packet header, a payload and a CRC sub-field, such that the sub- packet header includes a sequence number indicating the order of the corresponding sub-packet in the packet. The sequence number is assigned in monotonically increasing order starting from zero, whereby the sequence number of a first sub-packet is 0, and the sequence number of a K sub-packet is K - 1. The packet includes multiple CRC fields corresponding to the multiple sub-packets, wherein the CRC value for each sub- packet in a corresponding CRC sub-field in the packet.
[36] Each sub-packet includes a plurality of subsets of bits in the sub-packet, wherein a
CRC value for the information bits in each sub-packet is determined by further determining a CRC sub-value for each subset of bits, thereby generating a plurality of CRC sub-values for the corresponding plurality of subsets of bits.
[37] The sender provides a CRC Control Field in a MAC header of the packet to signal the receiver how the sub-packets are formed for CRC computation and error detection at the receiver. The CRC Control Field includes: a CRC Count (CRCC) field that indicates the number of CRC values for the packet or per sub-packet, and a CRCBitmap field comprises an array of N bits, each of which corresponds to one of t he N bitplanes of a pixel, wherein a MSB of the CRCBitmap corresponds to a MSB bitplane, zero entries in the CRCBitmap identify bitplanes that are excluded from the CRC computation, and non-zero entries identify bitplanes that are included in the CRC computation.
[38] Upon receiving a packet, based on the CRC values in the packet, the receiver determines corrupted information in each sub-packet, and generates an ACK packet to indicate the corrupted information to the sender. The ACK packet is transmitted to the sender, wherein based on the ACK packet, the sender generates a retransmit packet including information bits that are indicated as corrupted in the last packet by the ACK packet, and transmits the retransmit packet to the receiver.
[39] The retransmit packet includes information bits that are indicated as corrupted in the last packet by the ACK packet, based on human perceptual importance of such information. Preferably, the retransmit packet includes only information bits that have high perceptual importance. For example, the retransmit packet includes only the MSBs of a corrupt sub-packet.
[40] Fig. 2 shows an example transmission packet 10 according to the present invention, wherein an uncompressed video payload 2 of P = M x N bits is divided into K sub- packets 12 (i.e., Sub-packet 0, ..., Sub-packet K-I) of L bits each in the packet 10, for transmission to a wireless receiver over a channel (wherein M represents the number of pixel components, and N represents the number of bits in the bitplane of each pixel component). The sender and the receiver negotiate the value of L during a connection set-up phase therebetween. In one example, a video stream represents multiple pixels, each pixel having three components (e.g., R, G, B or Y, Cb, Cr), each component having multiple bits (e.g., classified as MSBs and LSBs), wherein in each sub-packet, the MSBs and LSBs can be separated or mixed together. In one example, each incoming information bit is placed into the sub-packet with available space to carry more bits. Then, when the sub-packet is full, the incomings are placed into a next sub- packet. In another example, it is also possible to place incoming bits within similar perceptual importance into the same sub-packet (e.g., one sub-packet with only MSBs, another with only LSBs, etc.). In yet another example, information bits with different perceptual importance can be mixed together in a sub-packet.
[41] The packet 12 further includes a PHY HDR 16 and a MAC HDR 18. Each sub- packet 12 further includes multiple CRC values for the video payload stored therein (e.g., Fig. 7, CRC and CRC described further below). The CRC values correspond to different bitplanes in a sub-packet payload (e.g., Fig. 1, CRC for the MSBs and CRC for the LSBs, described further below).
[42] The last sub-packet 12 in the packet 10 can be less than L bits, wherein as shown by example in Fig. 3, the sender adds some padding bits 13 to the last sub-packet 12, to make the length of the last sub-packet 12 equal to L bits. The sender informs the receiver of the padding by including a delimiter 15 before the padding bits 13, wherein the delimiter 15 is known to the receiver. This allows the receiver to ignore the padding bits 13.
[43] Fig. 4 shows another example packet 20 according to the present invention, wherein the sender can include K uncompressed video sub-packets 25 in the packet 20, each sub-packet 25 is L bits long, and the last packet includes padding data as necessary to bring it up to L bits. Thus, the total length of the payload is K x L = P bits.
[44] Referring to Fig. 5, the sender further places a CRC Control Field 21 in the MAC
HDR 18 of the packet 10 in Fig. 2 (or packet 20 in Fig. 4) which indicates the structure of CRC information for the sub-packets 12. The receiver uses the information in the CRC Control Field 21 for CRC error detection, as described further below. As shown in Fig. 5, the CRC Control Field 21 includes a CRC Count (CRCC) field 22 that indicates the number of CRC values used for each sub-packet 12 of the payload in packet 10.
[45] In this example, the CRCC field 22 is 4 bits long. The CRC Control Field 21 further includes a CRCBitmap field 23 which defines which bitplanes of the payload data in a sub-packet each CRC value corresponds to. In this example, the CRCBitmap field 23 comprises an array of N bits, each of which corresponds to one of the N bitplanes of a pixel (typical value for N is 8, 10, 12 or 16). The MSB of the CRCBitmap corresponds to the MSB bitplane. The zero entries in the CRCBitmap identify bitplanes that are excluded from the CRC computation, while non-zero entries identify bitplanes that are to be included.
[46] For each sub-packet, each possible bitplane combination may be selected. Alternatively, bitplanes may be selected in conjunction with an Unequal Error Protection (UEP) mode. The CRCBitmap is repeated CRCC times (CRCC x N long), which indicates the number of bitplane combinations selected.
[47] Fig. 6 shows an example of a CRC Control Field 21 including a CRCC field 22 and two CRCBitmap fields 23 A and 23B, whereby the CRCC field 22 is set to 2, indicating that a sub-packet includes two CRC values for its payload (e.g., sub-packet 12 in Fig. 7 includes CRC and CRC for a payload 29). The first CRCBitmap 23A in Fig. 6 indicates that m MSBs out of N bitplanes in the sub-packet payload are used to compute a first CRC value for a sub-packet payload. The second CRCBitmap 23B indicates that r LSBs out of N bitplanes in the sub-packet payload are used to compute a second CRC value for the sub-packet payload. The values of m and r are negotiated by the sender and the receiver during the connection set-up phase.
[48] Fig. 7 shows further details of each sub-packet 12 that is formed by the sender in the packet 10. Each sub-packet 12 includes a sub-packet header 28, a payload 29 and a CRC sub-field 30. The sub-packet header 28 includes a sequence number subfield 27 which is M bits, such that 2M > K, indicating the sequential order of the corresponding sub-packet 12 in the packet 10. For each sub-packet 12, the corresponding sequence number 27 is assigned in monotonically increasing order starting from zero. Thus, the sequence number of the first sub-packet 12 is 0, and the sequence number of K sub- packet 12 is K - 1. The CRC sub-field 30 includes a CRC value in a field 30A and a second CRC value in a field 30B, which are each S bits long.
[49] As shown diagrammatically in Fig. 8, the first CRC value CRC is computed over X
MSBs of the L bit sub-packet 12, and the second CRC value CRC is computed over Y LSBs of the same L bit sub-packet 12. The first CRCBitmap 23A (Fig. 6) indicates to the receiver the pattern of data in the sub-packet payload for which CRC is computed. The second CRCBitmap 23B (Fig. 6) indicates to the receiver the pattern of data in the sub-packet payload for which CRC is computed. For CRC computation, bits are not physically re-organized. Assuming, j pixel components in a video sub-packet 12, the relationship between m, r, L, X and Y can be expressed as:
[50] X = j x m (l)
[51] Y = J x r (2)
[52] L = X + Y (3)
[53] For application of UEP to a sub-packet payload, the sender uses a similar coding rate for the CRC values as well as the payload data.
[54] In the above example, a sub-packet includes two subsets of bits, one subset X bits long, and another subset Y bits long, wherein a CRC value is calculated for each subset. The above example is applicable for calculating a number h of CRC values CRC (i = 1, ..., h, wherein h > 2), for the information bits in each sub-packet 12. In that case, each sub-packet includes h > 2 subsets SS (i = 1, ..., h) and each subset is B (i = 1, ..., h) bits in length. Each CRC value CRC is calculated as over the bits B in a corresponding subset SS of the L bits in the sub-packet 12, wherein L = B +, ... +, B i 1 h
. For example, in Fig. 8, h = 2, B = X, B = Y, wherein CRC is computed over B bits of the L bit sub-packet, and CRC is computed over B bits of the L bit sub-packet.
[55] Upon receiving the packet 10, the receiver performs CRC checks, and forms an ACK packet using a bitmap of K bits. For example, when bit i in the ACK bitmap is set to that the MSBs of the i ' sub-packet 12 in the packet 10 are successfully received according to the CRC check by the receiver. When bit i in the ACK bitmap is set to zero, it indicates that the MSBs of the i ' sub-packet are received in error. Thus, the ACK packet indicates the receipt status of the MSBs of the sub-packets 12 in the packet 10 to the sender. In this example, the ACK packet does not indicate the status of the LSBs of the sub-packets 12. For example, if the MSBs of a sub-packet 12 are correctly received based on the CRC check at the receiver using CRC (30A in Fig. 8), but the LSBs of the sub-packet 12 are incorrectly received based on the CRC check at the receiver using the CRC (30B in Fig. 8), the receiver sets the corresponding bit in the K bit ACK bitmap to '1.' This effectively signals the sender that a retransmission of the sub-packet is not necessary because the correctly received MSBs provide most of the perceptually important video information. This alleviates the need for retransmission of the LSBs which may not add much to the perceptual quality of the video information, thereby saving time and channel bandwidth. Table 1 below further describes the rules for setting the ACK bitmap.
[56] Table 1: Rules for setting a bit corresponding to the sub-packet in the bitmap
[57] [Table 1] [Table ]
[58] Upon receiving an ACK packet from the sender in response to transmission of a packet 10, the sender selectively retransmits erroneous MSBs based on their perceptual importance. During retransmission, the sender retransmits a new packet including the MSBs of a sub-packet 12 of the previously transmitted packet 10 that is indicated by the ACK bitmap in the ACK packet as erroneously received at the receiver. The sender does not include the LSBs in the retransmitted packet.
[59] Because the sender selectively retransmits the erroneously received bits based on perceptual importance, the bandwidth required to support retransmissions is reduced. The sender retransmits only the erroneous MSBs as indicated by the ACK bitmap in the ACK packet. Because retransmissions introduce additional delay which negatively affects isochronous streams, such as uncompressed video streams, selective retransmission according to the present invention significantly reduces delay without degrading video quality.
[60] Further, the receiver can partially recover the erroneous LSBs of a sub-packet 12 by reusing correctly received LSBs from adjacent sub-packets 12 in the packet 10. Similarly, if the receiver determines that retransmission of the erroneous MSBs in a sub-packet 12 cannot be received within the packet deadline (i.e., the time to display the packet or video pixels), the receiver can reuse correctly received MSBs from adjacent sub-packets in the packet 10 instead of the erroneous MSBs in the sub-packet 12.
[61] When based on the ACK packet from the receiver it becomes necessary for the sender to retransmit a correct copy of erroneously received data. In one example, the sender retransmits sub-packets by immediate retransmission of the corrupted data to the receiver in a retransmission packet, as shown by the timing diagram in Fig. 9, according to the present invention. At time Tl the sender sends a packet 10 of uncompressed video pixel data (along with CRC fields) to the receiver, and at time T2 the receiver sends back an ACK packet 1OA to the sender, indicating the corrupted data. Upon receiving an ACK packet from the receiver, the sender invokes essentially
immediate retransmission of the corrupted data in a retransmission sub-packet 1OR at time T3.
[62] As shown by example in Fig. 10, the retransmitted sub-packet 1OR includes a sequence number field 32 which is copied from the sequence number sub-field 27 of the originally transmitted sub-packet 12. The sub-packet 1OR further includes a payload 34 comprising of only the MSBs of the original payload 29 are included in the retransmitted sub-packet 1OR. The sub-packet 1OR further includes a CRC value CRCl in a CRC field 36 for the payload 34. As described further below, in one example, the sub-packet 1OR can be part of a general retransmit packet which includes one or more retransmit sub-packets 1OR.
[63] Fig. 11 shows an example flowchart of a sub-packetization process 40 by the sender, for constructing each sub-packet 12 in a MAC packet 10 (Fig. 7), comprising the steps of:
[64] Step 42: Construct a new sub-packet 12 for the MAC packet 10, including a sub- packet header 28, and add a sequence number of the sub-packet 12 in the sequence number field 27.
[65] Step 44: Compute a first CRC (CRC ) over X MSBs of sub-packet payload 29, and compute a second CRC (CRC ) over Y MSBs of sub-packet payload 29.
[66] Step 46: Determine if this is the last sub-packet for the MAC packet 10? Is not, go to step 49, otherwise go to step 48.
[67] Step 48: Add delimiter 15 (Fig. 3) to the sub-packet 12.
[68] Step 49: Provide the MAC packet 10 to a PHY layer of the sender to send to the receiver.
[69] After all of the sub-packets 12 for the MAC packet 10 are constructed, a CRC
Control Field 21 is placed in the MAC HDR 18 of the MAC packet 10, and the (MAC) packet 10 is then transmitted from the sender to the receiver over a wireless channel. In another implementation, rather than placing a CRC Control Field 21 in the MAC HDR 18 of the MAC packet 10, the sender and the receiver negotiate a CRC Control Field by exchanging management or control frames. Whenever the sender or receiver wishes to change the CRC Control Field, they exchange another set of control or management frames to successfully negotiate a new value for the CRC Control Field.
[70] Fig. 12 shows an example flowchart of a process 50 at the receiver for checking each sub-packet 12 in a received MAC packet 10, to generate an ACK packet 1OA (Fig. 13) in response, comprising the steps of:
[71] Step 52: Compute a CRC check over X MSBs of the received sub-packet 12.
[72] Step 53: Based on the computed CRC, determine if the X MSBs were received successfully? If yes, then go to step 55, otherwise go to step 54.
[73] Step 54: Set the corresponding bit in the ACK bitmap of the ACK packet to O'.
[74] Step 55: Set the corresponding bit in the ACK bitmap of the ACK packet to T.
[75] Fig. 14 shows a flowchart of an example retransmission process 56 implemented by the sender after sending a packet to the receiver. The sender constructs a retransmit packet including one or more retransmit sub-packets 1OR, according to the steps of:
[76] Step 57 : Receive an ACK packet from the receiver.
[77] Step 58 : Construct an initial retransmit packet, and set an index F (non-zero) to the number of sub-packets which are acknowledged in the ACK packet. In order to meet the playback deadline per packet at the receiver, a re-transmit packet 1OR has higher priority than a normal transmit packet 10 packet. Further, a packet which has been retransmitted more times has higher priority than a packet which has been re-transmitted less times or one that has not been retransmitted yet.
[78] Step 60 : If F > 0, then go to step 62, otherwise go to step 70.
[79] Step 62 : Based on the ACK packet, determine if the F sub-packet in the last transmitted packet requires retransmission? If yes, go to step 64, otherwise go to step 68.
[80] Step 64 : Determine if there is sufficient time left to re-transmit the F sub-packet based on the receiver side playback deadline for each sub-packet? If not, go to step 70, otherwise, go to step 66.
[81] Step 66 : Include the F sub-packet in the retransmit packet.
[82] Step 68 : Decrement F (e.g., by one), and go back to step 60.
[83] Step 70 : Send a retransmit packet to the PHY layer for transmission to the receiver.
[84] In another example, the sender invokes delayed retransmissions of corrupted data.
Initially the sender sends Q packets 10 of video pixel data with CRC fields to the receiver, the receiver transmits back Q corresponding ACK packets to the sender, and the sender receives Q corresponding ACK packets from the receiver. As such, the sender collects Q ACK packets. Based on the collected ACK packets, the sender determines the sub-packets in the last Q packets that need retransmissions. Then, the sender begins a retransmission phase by retransmitting the corrupted sub-packets from the highest priority sub-packet in perceptual importance, and continues until it can retransmit other sub-packets in order of priority in perceptual importance, without violating the receiver's presentation deadline.
[85] The sender includes the necessary signaling information in retransmissions so that the receiver can determine which sub-packets are retransmitted and to which packets they belong to. Assuming N bits per pixel component and retransmission after Q packets, at most N x Q bits are needed to signal the presence/absence of each sub- packet in said retransmissions.
[86] Fig. 15 shows a functional block diagram of an example wireless communication system 100 implementing data packet transmission, wherein each packet comprises
multiple sub-packets, multiple CRCs and selective retransmissions, for enhancing transmission reliability of uncompressed video packets over wireless channels, according to an embodiment of the present invention. The system 100 includes a wireless sender 102 and a wireless receiver 104. The sender 102 includes a PHY layer 106 and a MAC layer 108. Similarly, the receiver 104 includes a PHY layer 114 and a MAC layer 116. The PHY and MAC layers provide wireless communication between the sender 102 and the receiver 104 via antennas through wireless medium 101.
[87] The sender 102 further includes a sub-packetization module 110 that receives uncompressed video from higher levels (e.g., a video source such as a HDVD player), and generates sub-packets of uncompressed video from the uncompressed video pixels, as described above, according to the present invention. The sender 102 further includes a CRC generation module 112 that generates said CRC Control Field and CRC values, as described above. The generated sub-packets along with the CRC Control Field and CRC values are placed in a packet 10 by the MAC layer 108, and transmitted by the PHY layer 106. The sender 102 further includes a retransmission controller 113 that implements the retransmission of corrupted data, as described above according to the present invention.
[88] In the wireless receiver 104, the PHY/MAC layers 114/116, process each received packet. The receiver 104 further includes a CRC validation and error detection module 117 that uses the CRC Control Field and CRC values per packet to validate the CRC value and detect errors in the sub-packets in each packet accordingly. The receiver 104 further includes an ACK frame generation module 118 that in conjunction with the MAC layer generates said ACK packet to indicate to the sender which sub-packets in a packet are corrupted. The receiver 104 further includes an error correction module 119 that receives retransmitted sub-packets from the sender and provides corrected uncompressed video pixels to higher layers for consumption (e.g., display).
[89] Though in Fig. 15, modules 117, 118 and 114 in the receiver 104 are shown separate from the MAC layers 116, one or more of the modules 117, 118 and 114 can be a component of the MAC layer 116. Similarly, one or more of the modules 110, 112 and 113 in the sender can be a component of the MAC layer 108.