Robust retransmission topology using error correction
By transmitting supplemental data packets with error correction codes, wireless communication robustness is enhanced, addressing packet loss and interference issues in wireless devices.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- BOSE CORP
- Filing Date
- 2022-06-29
- Publication Date
- 2026-06-30
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
Wireless devices experience packet loss and transmission failures due to increased distance and environmental interference, leading to degraded wireless communication quality.
Transmitting data packets on a first isochronous stream and supplemental data packets at the same time interval, using error correction codes to reconstruct or extend missing data packets, and optionally enhancing received data quality.
Improves wireless communication robustness by enabling better retransmission using correctly received packets, maintaining data integrity and quality without modifying Bluetooth broadcaster sinks.
Smart Images

Figure 0007882936000001 
Figure 0007882936000002 
Figure 0007882936000003
Abstract
Description
Technical Field
[0001] Cross - Reference to Related Applications This application claims priority to U.S. Patent Application No. 17 / 366,613, filed on July 2, 2021, entitled "Robust Retransmission Topologies Using Error Correction", the entire disclosure of which is incorporated herein by reference.
Background Art
[0002] Aspects and implementations of the present disclosure generally relate to systems and methods for transmitting and receiving wireless data streams, for example, for transmitting and receiving wireless data streams between wireless devices.
[0003] Wireless systems, such as wireless multi - speaker systems, wireless headphones or headsets, or any system including a broadcast device and a receiving device, typically transmit and receive a stream of data packets within a wireless connection between the devices of the system. Wireless devices may experience losses on the wireless connection, such as packet loss, transmission failures, and re - transmission failures, when the connection is at the limit of its link budget or when interference is present. For example, when the wireless devices of a system move apart from each other and the distance between the source device and the sink device increases, packet loss may increase due to the distance between the devices. Similarly, in situations where the devices of the system are subject to other forms of environmental interference, such as the presence of multiple other wireless communications in the vicinity, the presence of an object (e.g., a user's body or a wall) that may reduce the signal strength between the devices, the link budget is burdened and ultimately the quality degrades.
Summary of the Invention
Means for Solving the Problems
[0004] This disclosure provides a method and system for improving the robustness of wireless communications. The provided method and system transmits data packets on a first isochronous stream and transmits one or more supplemental data packets at the same time interval. The one or more supplemental data packets are used to reconstruct and / or extend at least a portion of one or more data packets from a plurality of data packets already transmitted. Alternatively, the one or more supplemental data packets are used to create and / or extend at least a portion of one or more data packets from a plurality of data packets to be received during the next isochronous interval. The method and system described herein enables improved robustness by allowing better retransmission using correctly received packets, and the method described herein works with any Bluetooth broadcaster sink without modification.
[0005] This disclosure includes broadcasting audio data in a first isochronous stream while also broadcasting a separate data stream containing error correction codes for the audio stream. With the configuration described herein, each sink device can utilize correctly received packets from the audio stream in combination with the error correction codes to compute missing audio data. Alternatively, the separate data stream may contain additional audio data to enhance the quality of already received data. For example, a sink device can utilize correctly received packets or at least a portion of correctly received packets (e.g., one or more frames of audio data) to compute missing portions of packets or entire missing packets.
[0006] This system and method can utilize hard block code or soft block code, and the error correction code can be calculated based on discrete left-channel and right-channel audio streams. Furthermore, the error correction code can be transmitted before the transmission of one or more packets used to calculate a given error correction code packet, or considerably after the transmission of such packets (e.g., pre-transmission or post-transmission). Moreover, the concepts described herein can be extended to non-broadcast scenarios, such as when using connected isochronous streams.
[0007] In one embodiment, a method for improving wireless communication, the method comprising: transmitting an isochronous stream comprising a plurality of data packets transmitted within a first isochronous interval or using a first frequency; and transmitting one or more supplemental data packets within the first isochronous interval and at a second frequency that is temporally shifted relative to the plurality of data packets or is different from the first frequency, wherein the one or more supplemental data packets are used to reproduce and / or extend at least a portion of one or more data packets of a plurality of data packets received during the first isochronous interval, or the one or more supplemental data packets are used to create and / or extend at least a portion of one or more data packets of a plurality of data packets received during the first isochronous interval or during a second isochronous interval after the first isochronous interval.
[0008] In one embodiment, one or more supplemental data packets are used to reconstruct at least a portion of one or more data packets from a plurality of data packets, and the one or more supplemental data packets include an error correction code associated with at least one of the data packets from the plurality of data packets.
[0009] In one embodiment, the error correction code is associated with at least one packet from a plurality of data packets received within a first isochronous interval and with at least one packet from a plurality of data packets transmitted within a second isochronous interval.
[0010] In one embodiment, each of a plurality of data packets contains one or more audio frames of encoded audio data, and one or more supplemental data packets are used to reconstruct at least one of the one or more audio frames.
[0011] In one embodiment, the plurality of data packets include a first plurality of data packets associated with a left channel audio stream and a second plurality of data packets associated with a right channel audio stream, wherein one or more supplemental data packets, the first supplemental data packet, is associated with the first plurality of data packets, and one or more supplemental data packets, the second supplemental data packet, is associated with the second plurality of data packets.
[0012] In one embodiment, one or more supplemental data packets are used to extend at least a portion of one or more data packets among a plurality of data packets, and the one or more supplemental data packets include additional data relating to at least one of the packets among the plurality of data packets.
[0013] In one embodiment, the isochronous stream is a broadcast isochronous stream or a connected isochronous stream.
[0014] In one embodiment, the isochronous stream is a connected isochronous stream, and the method further includes confirming that it has been successful to recover one or more data packets from a plurality of data packets based on one or more supplemental data packets.
[0015] In one embodiment, one or more supplemental data packets are transmitted within an isochronous stream, or within another isochronous stream that is temporally related to an isochronous stream.
[0016] In one embodiment, one or more supplemental data packets are encrypted.
[0017] In one embodiment, one or more data packets among a plurality of data packets are encrypted using a first encryption key pair, and one or more supplemental data packets are encrypted using a second encryption key pair different from the first encryption key pair.
[0018] In another example, a system is provided for improving wireless communication, the system including a source device which transmits an isochronous stream to at least one sink device, comprising a plurality of data packets transmitted within a first isochronous interval or using a first frequency, the source device configured to transmit one or more supplemental data packets to at least one sink device within the first isochronous interval and at a second frequency different from the first frequency, the one or more supplemental data packets being used to recreate and / or extend at least a portion of one or more data packets of a plurality of data packets received during the first isochronous interval, or the one or more supplemental data packets being used to create and / or extend at least a portion of one or more data packets of a plurality of data packets received during the first isochronous interval or during a second isochronous interval after the first isochronous interval.
[0019] In one embodiment, one or more supplemental data packets are used to reconstruct at least a portion of one or more data packets from a plurality of data packets, and the one or more supplemental data packets include an error correction code associated with at least one of the data packets from the plurality of data packets.
[0020] In one embodiment, the error correction code is associated with at least one packet from a plurality of data packets received within a first isochronous interval and with at least one packet from a plurality of data packets transmitted within a second isochronous interval.
[0021] In one embodiment, each of a plurality of data packets contains one or more audio frames of encoded audio data, and one or more supplemental data packets are used to reconstruct at least one of the one or more audio frames.
[0022] In one embodiment, the plurality of data packets include a first plurality of data packets associated with a left channel audio stream and a second plurality of data packets associated with a right channel audio stream, wherein one or more supplemental data packets, the first supplemental data packet, is associated with the first plurality of data packets, and one or more supplemental data packets, the second supplemental data packet, is associated with the second plurality of data packets.
[0023] In one embodiment, one or more supplemental data packets are used to extend at least a portion of one or more data packets among a plurality of data packets, and the one or more supplemental data packets include additional data relating to at least one of the packets among the plurality of data packets.
[0024] In one embodiment, the isochronous stream is a broadcast isochronous stream or a connected isochronous stream.
[0025] In one embodiment, the isochronous stream is a connected isochronous stream, and the source device is further configured to verify that it has successfully recovered one or more data packets from a plurality of data packets based on one or more supplemental data packets.
[0026] In one aspect, one or more supplementary data packets are transmitted within an isochronous stream or within another isochronous stream that is temporally related to the isochronous stream.
[0027] In one aspect, one or more supplementary data packets are encrypted.
[0028] In one aspect, one or more of the plurality of data packets are encrypted using a first encryption key pair, and one or more supplementary data packets are encrypted using a second encryption key pair different from the first encryption key pair.
[0029] These and other aspects of various embodiments will become apparent from and be elucidated with reference to the embodiments described hereinafter.
Brief Description of the Drawings
[0030] In the drawings, the same reference numerals generally refer to the same parts throughout different figures. Also, the drawings are not necessarily to scale; instead, generally, emphasis is placed on illustrating the principles of the various embodiments. [Figure 1] It is a schematic diagram of a system according to the present disclosure. [Figure 2] It is a schematic diagram of the components of a source device according to the present disclosure. [Figure 3] It is a schematic diagram of the components of a sink device according to the present disclosure. [Figure 4A] It is a schematic diagram of a wireless broadcast topology according to the present disclosure. [Figure 4B] It is a schematic diagram of a wireless broadcast topology according to the present disclosure. [Figure 5] It is a schematic diagram of a wireless broadcast topology according to the present disclosure. [Figure 6] It is a schematic diagram of a wireless broadcast topology according to the present disclosure. [Figure 7] It is a schematic diagram of a logical stack including a schematic interface according to the present disclosure. [Figure 8] This diagram shows the steps of the method relating to this disclosure. [Modes for carrying out the invention]
[0031] This disclosure provides a method and system for improving the robustness of wireless communications. The provided method and system transmits data packets on a first isochronous stream and transmits one or more supplemental data packets at the same time interval. The one or more supplemental data packets are used to reconstruct and / or extend at least a portion of one or more data packets from a plurality of data packets already transmitted. Alternatively, the one or more supplemental data packets are used to create and / or extend at least a portion of one or more data packets from a plurality of data packets to be received during the next isochronous interval. The method and system described herein enables improved robustness by allowing better retransmission using correctly received packets, and the method described herein works with any Bluetooth broadcaster sink without modification.
[0032] Where used in this disclosure, the term “wearable audio device” is intended to mean a device that fits around, on, inside, or near the ear (including open-ear audio devices worn on the user’s head or shoulder) and radiates acoustic energy into or toward the ear, in addition to its ordinary meaning or meaning known to those skilled in the art. Wearable audio devices may also be referred to as headphones, earphones, earpieces, headsets, earbuds, or sports headphones, and may be wired or wireless. A wearable audio device includes an acoustic driver that converts audio signals into acoustic energy. This acoustic driver may be housed in an earcup. While some of the following figures and descriptions show a single wearable audio device having a pair of earcups (each containing an acoustic driver), it should be understood that a wearable audio device may be a single standalone unit having only one earcup. Each earcup of a wearable audio device can be mechanically connected to another earcup or headphone, for example, by a headband and / or by leads that transmit audio signals to an acoustic transducer within the earcup or headphone. A wearable audio device may include components for wirelessly receiving audio signals. A wearable audio device may include components for an active noise reduction (ANR) system. A wearable audio device may also include other functions, such as a microphone, so that the device can function as a headset. Figure 1 shows examples of in-ear headphones, eyeglasses, and over-ear headsets, but in other examples, a wearable audio device can be an on-ear, around-ear, behind-ear, or near-ear headset.In some examples, wearable audio devices can be open-ear devices that include acoustic drivers that radiate acoustic energy towards the ear while leaving the ear open to the ear environment and surroundings.
[0033] As used in this disclosure, the term “connected isochronous stream” is intended to mean, for example, an isochronous data stream utilizing a pre-established point-to-point communication link via LE audio between a source device (also known as a central device or master device) and one or more audio devices (also known as peripheral devices or slave devices). In other words, a connected isochronous stream can provide an isochronous audio stream utilizing at least one established trusted communication channel and / or at least one verified communication channel between the source device and each of any audio devices.
[0034] As used in this application, the term “broadcast isochronous stream” is intended to include its ordinary meaning or the meaning known to those skilled in the art, as well as to refer to an isochronous data stream between a source device transmitting data and an audio device receiving data, where there is no need to establish a pre-established communication link and no need for acknowledgments or denials to be transmitted or received.
[0035] Please read the following description with reference to Figures 1 to 8. Figure 1 is a schematic diagram of the components of System 100 relating to this disclosure. In some examples, System 100 includes a source device 102 and at least one sink device 104. Furthermore, in some examples as shown in Figure 1, System 100 includes a plurality of sink devices 104A to 104C (collectively referred to as “sink device 104” or “plural sink devices 104”). The source device 102 is intended to be a device capable of establishing a wireless connection, e.g., a wireless connection 132 (described later), with at least one sink device 104. Although illustrated as a smartphone, please understand that the source device 102 can be selected from at least one of the following devices: a tablet, a smart hub, a media hub, a stereo hub, a soundbar, a headphone case, or any device capable of transmitting or broadcasting wireless data (described later) to at least one sink device 104. Furthermore, although illustrated as a pair of true wireless earphones 104A, a glasses-type device 104B, and an over-ear headset 104C, it should be understood that the sink device 104 can be selected from at least one of the following: a smartphone, tablet, smart hub, media hub, stereo hub, soundbar, headphone case, or any device capable of receiving wireless data (described later) from the source device 102. In some examples, each sink device 104 is intended to be a device capable of rendering audible acoustic energy based on the wireless data received from the source device 102, for example, a device capable of rendering audio data. In some examples, as described later, the source device 102 is configured to send one or more supplemental packets 140 (described later) to each sink device 104, which may include audio data and error correction and / or additional codes for restoration and / or enhancement before rendering.
[0036] As schematically shown in Figure 2, the source device 102 includes a source controller 106, which includes a source processor 108 and a source memory 110, each configured to execute and store a plurality of non-temporary computer-readable source instructions 112, respectively, in order to perform various functions of the source device 102 as described herein. The source controller 106 also includes a source communication module 114 configured to transmit and / or receive wireless data, for example, data associated with at least one of a plurality of wireless data streams, e.g., a plurality of wireless connections 132, as described later. To this end, the source communication module 114 may include at least one radio or antenna, e.g., a source radio 116, capable of transmitting and receiving wireless data. In some examples, in addition to at least one radio (e.g., a source radio 116), the source communication module 114 may include some form of automated gain control (AGC), modulator and / or demodulator, and potentially a discrete processor for bit processing, electrically connected to the source processor 108 and the source memory 110, to assist in transmitting and / or receiving wireless data.
[0037] As shown in Figure 3, each sink device 104 may include a sink controller 118, which includes a sink processor 120 and a sink memory 122, each configured to execute and store a plurality of non-temporary computer-readable sink instructions 124, respectively, in order to perform various functions of each sink device 104 as described herein. Each sink controller 118 may also include a sink communication module 126 configured to transmit and / or receive wireless data, for example, data associated with a wireless connection 132, at least one of a plurality of wireless data streams, as described later. To this end, each sink communication module 126 may include at least one radio or antenna, for example, a sink radio 128, capable of transmitting and receiving wireless data. In some examples, in addition to at least one radio (for example, a sink radio 128), the sink communication module 126 may include some form of automated gain control (AGC), modulator and / or demodulator, and potentially a discrete processor for bit processing, electrically connected to the sink processor 120 and the sink memory 122, in order to assist in transmitting and / or receiving wireless data. As shown in Figure 3, each sink device 104 is electrically connected to the sink processor 120 and the sink memory 122 and may also include at least one speaker, i.e., a sink speaker 130, which is, for example, a loudspeaker or acoustic transducer, configured to electromechanically convert electrical signals into audible acoustic energy in the environment surrounding each sink device, such as audio playback. In some examples, the electrical signals and audible acoustic energy are associated with data contained in a wireless connection 132 (described later). Furthermore, although not shown, each sink controller 118 may include one or more clocks or timing circuits configured to maintain independent time during the operation of the system 100.
[0038] Each device in system 100, namely source device 102 and each sink device 104, can use their respective communication modules to establish one or more wireless connections 132A-132C (collectively referred to as "wireless connections 132") between source device 102 and each sink device 104. Each wireless connection 132 can be used to transmit and / or receive wireless data via one or more wireless data streams between source device 102 and each sink device 104. In some examples, each data stream is an isochronous data stream 136A-136C (collectively referred to as "isochronous data streams 136" or "isochronous streams 136"), for example, a connected isochronous stream using the LE audio standard. In other examples, as will be described later, the isochronous data streams 136 are broadcast isochronous streams, for example, source device 102 is configured to broadcast one or more isochronous streams 136 that are received by one or more sink devices 104. For example, source device 102 may be configured to generate, broadcast, or, in some cases, wirelessly transmit one or more wireless data streams to be received by each sink device 104. It should be understood that the streams established through each wireless connection 132 may use various wireless data protocols, standards, or transmission methods, such as the Bluetooth Low Energy protocol, the Bluetooth Low Energy ISO Transport protocol, or the LE audio standard. In some examples, these protocols are used to transmit, receive, or, in some cases, audio data, for example, data used by the sink device 104 to generate audible acoustic energy in the form of audio playback. However, it should be understood that these protocols are not limited to the transmission of audio data and may include other types of data.
[0039] As shown in Figures 4A to 6, each isochronous stream 136 includes one or more packets from a plurality of data packets 138A to 138D (collectively referred to as "data packets 138") and / or one or more packets from a plurality of supplemental data packets 140A to 140H (collectively referred to as "supplemental packets 140"). The data packets 138 may include data transmitted by the source device 102 to one or more sink devices 104 as described herein and used by one or more sink devices 104 to generate or render audible acoustic energy, such as audio playback. In other words, the data packets 138 may include audio data and / or one or more frames of audio data that can be used to generate audible acoustic energy using the sink speaker 130 of each of the sink devices 104 described above. For this purpose, the data packets 138 may be framed packets or unframed packets. For example, framed packets may include a header and a payload, while unframed packets do not include a packet header. In some examples, the header may include fields for segmentation header data and time offset data, and the payload may include encoded wireless data to be transferred from one device to the other. For example, if the data to be transferred is audio data relating to one or more audio files, the payload may include audio data in the form of one or more frames of encoded audio data. In a non-framed configuration, during the initial negotiation of the wireless connection 132, the source controller 106 and each sink controller 118 may negotiate and agree on parameters that would normally be specified in the header of each packet, so that each device knows what data types and parameters will be used when transmitting and receiving data, making the inclusion of a header redundant and unnecessary.
[0040] Each supplemental packet 140, in addition to being framed or unframed, may include data intended to correct, restore, or extend data transmitted in one or more of the multiple data packets 138. For example, as will be described in detail later, each supplemental packet 140 may include error correction code intended to assist each sink device 104 in restoring or reproducing at least a portion of one or more data packets 138 that were not successfully received from one or more isochronous streams 136. Alternatively or additionally, each supplemental data packet may include additional data related to one or more data packets 138 that were successfully received from one or more isochronous streams 136, which each sink device 104 can use to extend the data already received. For example, if data packet 138 contains audio data or frames of audio data encoded at a lower bitrate or lower quality (e.g., 72kbps), supplemental packet 140 can provide additional audio data (e.g., 72kbps) that effectively increases the bitrate and therefore increases the quality of the decoded audio for each frame (e.g., to 144kbps). It should be understood that supplemental packet 140 is encrypted so that only authorized sink devices 104 can access the error correction or error extension capabilities provided by supplemental packet 140.
[0041] As will be discussed later, in some examples, supplemental packet 140 includes an error correction code. In some examples, the error correction code can be selected from any hard-decision block code, for example, at least one of Reed-Solomon coding, multidimensional parity, or Hamming coding. Convolutional coding can also be used, but this leads to soft-decision, and it should be understood that this can improve error correction performance at the expense of artifacts, such as audio artifacts, when soft-decision leads to inaccurate results. Furthermore, for the selected block code, the parity format used can be a Redundant Array of Independent Disks (RAID) 5 and RAID 6, as it does not require large memory and processing on the decoder side, for example, the sink controller 118 side.
[0042] As shown in Figures 4A to 6 illustrating one exemplary configuration, data packets 138 and supplemental packets 140 are transmitted via one or more isochronous streams, for example, streams that transmit packets during predetermined isochronous time intervals along time T, for example, isochronous intervals 142A to 142D (collectively referred to as “isochronous intervals 142”). Each isochronous interval 142 may contain multiple isochronous events and isochronous sub-events, which divide and subdivide each Bluetooth isochronous interval based on the initial negotiation of a given wireless connection. Furthermore, data packets 138 and supplemental packets 140 can be transmitted within the same isochronous stream 136 or within different isochronous streams 136, for example, via different frequencies or channels. In the example shown in Figure 4A, data packet 138 is transmitted on a first isochronous stream 136A using a first frequency 144, and supplemental data packet 140 is transmitted on a second isochronous stream 136B using a second frequency 146, which is different from the first frequency 144. As shown in Figures 4A and 4B, the supplemental packet 140 transmitted via the second isochronous stream 136B is temporally shifted relative to the data packet 138 transmitted via the first isochronous stream 136A. This temporal shift, which prevents overlap between packets in each stream, ensures that both the first isochronous stream 136A and the second isochronous stream 136B can be generated by the same radio, for example, source radio 116.
[0043] Referring particularly to Figure 4A, which shows an example of system 100, source device 102 is configured to transmit multiple data packets 138A-138D at a first frequency 144 via a first broadcast isochronous stream 136A. Furthermore, source device 102 is also configured to transmit multiple supplemental data packets 140 at a second frequency 146, different from the first frequency 144, via a second broadcast isochronous stream 136B. Specifically, as shown in the figure, within a first isochronous interval 142A, source device 102 is configured to transmit a first data packet 138A (Schematically shown in Figure 4A as a shaded rectangle with the number "1") and one or more retransmission packets (Schematically shown in Figure 4A as white rectangles with the number "1") containing the same payload as the first data packet 138A. Following the transmission of both the first data packet 138A and the retransmission packet associated with the first data packet 138A, within the first broadcast isochronous stream 136A, the source device 102 is also configured to transmit one or more supplemental packets 140, i.e., supplemental packets 140A and 140B, via the second broadcast isochronous stream 136B. As described above, each of the supplemental packets 140A and 140B may include an error correction code calculated based on one or more data packets 138, which is used by one or more sink devices 104 to restore or reproduce the data packet 138. Alternatively, as described above, the supplemental packets 140A and 140B may include additional data, such as additional audio data or audio frames, used to extend or add to the data successfully acquired in the first data packet 138A, for example.Furthermore, similar to the packets transmitted during the first isochronous interval 142A, the source device 102 is configured to transmit the second data packet 138B, the third data packet 138C, and the fourth data packet 138D (all shown in Figure 4A as shaded rectangles numbered 2 to 4, respectively) during the second isochronous interval 142B, the third isochronous interval 142C, and the fourth isochronous interval 142D, respectively. In addition, each packet is followed by one or more retransmitted packets (shown in Figure 4A as white rectangles numbered 2 to 4, respectively). Furthermore, within the second isochronous stream 136B, during each isochronous interval 142, the source device 102 is configured to transmit one or more supplemental packets 140, for example, supplemental packets 140C and 140D during the second isochronous interval 142B, supplemental packets 140E and 140F during the third isochronous interval 142C, and supplemental packets 140G and 140H during the fourth isochronous interval 142D. Supplemental packets 140A to 140H are shown as boxes with crosshatching. It should also be understood that supplemental packets 140A to 140H are also temporally shifted relative to the data packets 138 and their respective retransmission packets so that there is no overlap between the data packets and the supplemental packets. Thus, a single radio, i.e., the source radio 116, can broadcast the data packets 138, their respective retransmission packets, and the supplemental packets 140.
[0044] Figure 4B shows an example of a system 100 that includes the recovery of missing data packets using supplemental packets 140 having error correction codes. As shown in the figure, each supplemental packet 140 may include an error correction code calculated using data from one or more data packets 138A to 138D. For example, as shown in the figure, the first data packet 138A and the second data packet 138B are received successfully, but the third data packet 138C is lost (indicated in Figure 4B by solid lines "X" on the third data packet 138C and its respective retransmission packets). Furthermore, supplemental packets 140A to 140D are transmitted via a second broadcast isochronous stream 136B. Supplemental packet 140C may contain an error correction code calculated using data packets 138A-138B. The error correction code in supplemental data packet 140C is used to calculate and restore the missing packet (e.g., 138C) and pass the data from the missing packet to the sink device 104 for use in decoding the first isochronous stream 136A. In other words, the error correction code in supplemental packet 140C can reconstruct the missing or lost data packet 140C using the data from the first data packet 138A, the second data packet 138B, and supplemental packet 138C (indicated by the arrows in Figure 4B). It should be understood that the error correction code in a given supplemental packet 140 can be calculated using one or more data packets 138. For example, although not shown, supplemental packets 140A and / or 140B can be calculated based on two data packets, namely the first data packet 138A and the second data packet 138B. Therefore, if at least one of these data packets and one of the supplemental packets are successfully received, the missing data packets can be recovered. Furthermore, it should be understood that within a second isochronous stream 136B, multiple supplemental packets 140 are transmitted within a single isochronous interval, for example, supplemental packets 140A and 140B are transmitted within a first isochronous interval 142A.In this example, supplemental packet 140A may contain error correction codes or additional data used to extend one or more packets 138, and supplemental packet 140B is a retransmission of supplemental packet 140A, i.e., supplemental packet 140B has the same payload as supplemental packet 140A.
[0045] As shown in Figure 5, the multiple data packets 138 include a first set of multiple data packets 148A-148D (collectively referred to as the "first set of multiple data packets 148") and a second set of multiple data packets 150A-150D (collectively referred to as the "second set of multiple data packets 150"). As illustrated, the first set of multiple data packets 148 are transmitted via a first isochronous stream, i.e., a first broadcast isochronous stream 136A, and the second set of multiple data packets 150 are transmitted via a second isochronous stream, i.e., a second broadcast isochronous stream 136B. It should be understood that the first broadcast isochronous stream 136A is transmitted using a first frequency 144, and the second broadcast isochronous stream 136B is transmitted using a second frequency 146, which is different from the first frequency 144. In addition, the second set of multiple packets 150 are temporally shifted relative to the first set of multiple packets 148 so as not to overlap in the airtime used to transmit each of the multiple packets. Thus, both the first set of multiple data packets 148 and the second set of multiple data packets 150 can be transmitted using a single radio, for example, the source radio 116. The first set of multiple data packets 148 contains audio data or frames of audio data associated with the left channel audio stream, and the second set of multiple data packets 150 contains audio data or frames of audio data associated with the right channel audio stream. In other words, for stereo applications, the left channel audio is transmitted over a separate channel or frequency, and the right channel audio is transmitted over another separate channel or frequency. As in Figures 4A to 4B, the first set of multiple data packets 148A to 148D and the second set of multiple data packets 150A to 150D are shown as shaded boxes numbered 1 to 4, respectively. Furthermore, the retransmitted packets associated with each of these packets are shown as white boxes numbered 1 to 4, respectively. Furthermore, supplemental data packets 140A-140H are shown as boxes with crosshatching.
[0046] Similar to the supplemental packets 140 described above with respect to Figures 4A and 4B, supplemental data packets 140 are transmitted over yet another separate channel or frequency. For example, a third isochronous stream, i.e., a third broadcast isochronous stream 136C, is used to transmit supplemental data packets 140 over a third frequency 152, which is different from the first frequency 144 and the second frequency 146. Furthermore, supplemental packets 140 are temporally offset or shifted relative to both the first plurality of packets 148 and the second plurality of packets 150. By temporally shifting the first plurality of packets 148, the second plurality of packets 150, and the supplemental packets 140 relative to each other, so that none of these packets are transmitted simultaneously, all three isochronous streams 136A to 136C can be transmitted using a single radio, for example, a source radio 116.
[0047] In the example shown in Figure 5, it should be understood that supplemental packets 140A to 140H may include error correction codes calculated based on one or more packets from the first set of packets 148 and / or one or more packets from the second set of packets 150. For example, within each isochronous interval, one or more data packets from the first set of packets 148 and two retransmission packets associated with each respective data packet 148 are transmitted within the first broadcast isochronous stream 136A, and one or more data packets from the second set of packets 150 and two retransmission packets associated with each respective data packet 150 are transmitted within the second broadcast isochronous stream 136B. Following the transmission of these data packets and their respective retransmission packets, within each isochronous interval 142, two supplemental packets 140 are transmitted via the third broadcast isochronous stream 136C. Within each isochronous interval, one of two supplemental packets 140 may contain an error correction code calculated based on one or more packets from a first set of packets 148, and the other supplemental packet 140 may contain an error correction code calculated based on one or more packets from a second set of packets 150. In other words, within each isochronous interval 142, two supplemental packets 140 are transmitted. The error correction code in one of the two supplemental packets is calculated based on the packets associated with the left channel audio stream, and the error correction code in the other supplemental packet is calculated based on the packets associated with the right channel audio stream. For example, as shown in Figure 5, supplemental packet 140C may contain an error correction code calculated based on data packets 148A and 148B, and supplemental packet 140D may contain an error correction code calculated based on data packets 150A and 150B. In this way, if either packet 148A or 148B is lost and the other is successfully received, supplemental packet 140C can recover or reconstruct the lost packet. Similarly, if either packet 150A or 150B is lost and the other is received successfully, supplemental packet 140D can recover or reconstruct the lost packet.
[0048] As shown in Figure 6, a supplement packet can be transmitted prior to or after one or more corresponding data packets. For example, as shown in the figure, supplement packet 140A (shown as a cross-hatched rectangle with the letter "R") may contain an error correction code calculated based on the data of the first packet 138A and the second packet 138B. Since supplement packet 140A is transmitted in time between the first packet 138A and the second packet 138B, supplement packet 140A is said to be pre-transmitted, i.e., transmitted in time before at least one packet whose error correction code was calculated. Thus, the first supplement packet 140 transmitted within each isochronous interval 142 is a pre-transmitted packet having an error correction code calculated based on the packet transmitted immediately before it and the packet transmitted immediately after it within the first isochronous stream 136A. For example, supplement packet 140C is calculated based on data packets 138B and 138C, and supplement packet 140E is calculated based on data packets 140C and 140D. It should be understood that the illustrated supplement packets each contain a letter displayed on a representative rectangle, indicating the progression through a sequential order of packets having alphabetical order. For example, supplement packets 140A, 140C, and 140E contain sequential payloads indicated as R, S, and T to indicate that each of these supplement packets is in logical alphabetical order relative to one another. To enhance the robustness of the system described herein, a second supplement packet 140 transmitted within each isochronous interval 142 is a post-transmission packet or post-retransmission packet, in that each post-retransmission packet is calculated based on one or more packets transmitted considerably earlier than the post-retransmission packet. For example, as illustrated, the payload associated with the retransmitted packet is shifted in time so that the retransmitted payload is one or more perfect isochronic intervals in the future with respect to the data packet used to calculate the error correction code it holds.For example, as shown in Figure 6, each second supplemental packet 140 transmitted within each isochronous interval 142 is calculated based on data packets transmitted at least two isochronous intervals prior to the transmission of the corresponding supplemental packet 140. Specifically, as illustrated, supplemental data packets 140F are labeled with "R" to indicate that the payload within that supplemental packet is identical to the payload in supplemental packet 140A, and that the error correction codes within these packets are calculated based on the data in packets 138A and 138B. Thus, the post-transmission of this payload occurs two isochronous intervals later with respect to the data packets used to calculate the error codes contained therein.
[0049] This exemplary pre-transmission and post-transmission configuration is advantageous in situations where packet loss is common or at the end of a particular link budget for a wireless connection as described herein. For example, if a given connection is interfered with within a certain isochronic interval, both data packets 138 and supplemental packets 140 may be lost, which could help recover those data packets. By providing several isochronic intervals for post-transmission in the future, the likelihood that all initially lost packets will be recoverable once the interference that caused the initial packet loss has resolved and a sufficiently large buffer is provided is increased. For example, as illustrated, if interference or other factors cause data packet 138A and supplemental packets 140A and 140B to be lost or missing, a post-transmission packet 140F containing the same payload as the lost packet 140A is transmitted at a different time in the future when the interference is likely to have resolved, and the post-transmissioned supplemental data is used together with packet 138B to recover the lost packet 138A.
[0050] In some cases, packet recovery using the methods described herein is iterative. For example, referring to Figure 6, if packets 138A, 138B, and 140A are lost due to interference or other environmental factors, the system and methods described herein can begin by recovering packet 138B using data from received packet 138C and received supplement packet 140C. Once packet 138B is recovered, system 100 can recover the first packet 138A using the recovered packet 138B and subsequent transmission packet 140F.
[0051] As described above, it should be understood that the broadcast streams described herein can utilize encryption to prevent unauthorized users from accessing the error correction and enhancement capabilities described herein. For example, source controller 106 may take encoded data transmitted over the broadcast isochronous stream associated with supplemental packet 140 and encrypt each packet before broadcasting. Each key of the key pair used to encrypt the data may be sent to authorized sink device 104 before the stream starts so that the sink controller 118 of an authorized device can decrypt the decrypted data provided in the supplemental stream. In this way, for unauthorized users or unauthorized devices, the data associated with the first broadcast isochronous stream 136A is still available, but the increased robustness created by the use of error correction codes and / or the increased quality of transmitting additional audio data within supplemental packet 140 are not available. In other words, in this example, the broadcast stream data associated with data packet 138 is not encrypted, but the broadcast stream data associated with supplemental data packet 140 is encrypted. In another example, both the broadcast stream data associated with data packet 138 and the broadcast stream data associated with supplemental data packet 140 are encrypted. For example, the broadcast stream associated with data packet 138 uses a first encryption key pair KP1 (schematically shown in Figures 2 and 3), while the broadcast stream associated with supplemental packet 140 uses a second encryption key pair KP2, which is different from the first encryption key pair KP1.In this way, data associated with the first broadcast isochronous stream 136A is available to unauthorized users or devices as long as the user or device has access to each key of the first encryption key pair KP1 used to decrypt the data associated with the data packet 138; however, the improved robustness and / or improved quality of transmitting additional audio data within the supplemental packet 140, generated by the use of error correction codes, are only available if the user or device has access to each key of the second encryption key pair KP2 used to decrypt the data associated with the supplemental data packet 140.
[0052] Furthermore, although shown as separate streams, it should be understood that the data packets 138 and supplement packets 140 described herein are transmitted within the same isochronous stream. Referring to Figure 4A, for example, packet 138A and its respective retransmission packets are transmitted within a first isochronous interval 142A. Immediately after the last retransmitted packet, within the first isochronous interval 142A, the system 100 can transmit supplement packets 140A and 140B. Supplement packets 140A and 140B are temporally shifted relative to packet 138A and its respective retransmission packets, so that all packets can be transmitted using a single radio, for example, source radio 116. In this example, it should be understood that a packet header is likely to be required to instruct the sink controller 118 of each sink device 104 about the type of data being transmitted in each packet of the first isochronous stream 136A. Furthermore, the examples provided herein illustrate the use of data contained in one or more supplemental packets transmitted via a second broadcast isochronous stream to restore, reconstruct, or extend data transmitted via a first broadcast isochronous stream. It should be understood that each packet 138 (or packets 148 and 150) may contain multiple frames of audio data. Therefore, error correction codes and / or additional data provided in supplemental packet 140 are calculated based on or applied to individual frames of data, rather than on the entire packet. In other words, one or more supplemental data packets 140 are used to reconstruct and / or extend at least a portion (one or more frames) of one or more data packets 138 (or packets 148 and 150) of a plurality of data packets.
[0053] While the above description provides for multiple broadcast isochronous streams, it should be understood that a similar concept can be employed on non-broadcast systems, for example, using a connected isochronous stream between source device 102 and each sink device 104. When applied to non-broadcast scenarios, e.g., connected isochronous streams, the system may include an additional interface to source controller 106 to indicate packets that need to be acknowledged by source controller 106 but do not require time to receive. In the non-broadcast example, the system described herein includes acknowledging the successful recovery or reproduction of one or more of the multiple data packets 138. Thus, the system described allows sink device 104 to reproduce a packet that it had difficulty receiving and sends an acknowledgment of the successful recovery of that packet so that the system can continue transmitting the next packet required by the sink device.
[0054] Figure 7 shows a simplified implementation of the system and method described herein. For example, an advantage of the configuration disclosed herein is that it does not require any modification to the Bluetooth radio or controller currently used by the source and sink devices for audio transmission. For example, the implementation described herein can be realized by creating an interface between an Isochronous Adaptation Layer (ISOAL) and the conventional LC3 encoder / decoder and I2S serial bus interface of typical audio source and sink devices. This interface is represented by a rectangle labeled “hook” in Figure 7. Furthermore, when packets are pre-calculated, the system can use this interface to indicate to the source controller 106 which packets of the first isochronous stream 136A to pre-pick. The same interface is also required when error correction codes are transmitted post-transmission and are not needed.
[0055] Figure 8 shows steps of a preferred method 200 according to the present disclosure. Method 200 includes, for example, transmitting an isochronous stream 136A including a plurality of data packets 138 (or 148 and 150) transmitted within a first isochronous interval 142A or using a first frequency 144 (step 202), transmitting one or more supplemental data packets 140 within the first isochronous interval 142A and at a second frequency 146 that is temporally shifted relative to the plurality of data packets 138 (or 148 and 150) or at a second frequency 146 different from the first frequency 144 (step 204), and one or more Supplemental data packets 140 are used to reproduce and / or expand at least a portion of one or more data packets 138 of a plurality of data packets 138 received during a first isochronism interval 142A, or one or more supplemental data packets 140 are used to generate and / or expand at least a portion of one or more data packets of a plurality of data packets 138 received during a first isochronism interval 142A or during a second isochronism interval 142B after the first isochronism interval 142A. Optionally, method 200 also includes confirming the successful reception of one or more supplemental data packets 140 (step 206).
[0056] All definitions defined and used herein should be understood to govern dictionary definitions, definitions in documents incorporated by reference, and / or the ordinary meanings of the defined terms.
[0057] As used herein and in the claims, the indefinite articles "a" and "an" should be understood to mean "at least one" unless otherwise explicitly indicated.
[0058] As used herein and in the claims, the phrase “and / or” should be understood to mean “either or both” of the elements thus combined, that is, elements that exist concomitantly in some cases and separately in others. Multiple elements listed in “and / or” should be interpreted in the same way, that is, “one or more” of the elements thus combined. Other elements may exist optionally, in addition to the elements specifically identified by the “and / or” clause, whether related to or unrelated to the specifically identified elements.
[0059] Where used herein and in the claims, “or” should be understood to have the same meaning as “and / or” as defined above. For example, when separating items within a list, “or” or “and / or” should be interpreted as inclusive, that is, including at least one of the number of elements or list, but also including more than one, and optionally including items not in the additional list. “One of” or “exactly one of” or, where used in the claims, “consisting of” should be explicitly indicated elsewhere, mean including exactly one element of the number of elements or list. In general, where used herein, the term “or” should be interpreted only as indicating an exclusive choice (i.e., “one or the other, but not both”) when preceded by an exclusive term such as “either,” “one of,” “one of,” or “exactly one of.”
[0060] As used herein and in the claims, the phrase “at least one” with respect to a list of one or more elements should be understood to mean at least one element selected from any one or more elements in the list of elements, but not necessarily including at least one of each and all elements specifically listed in the list of elements, nor excluding any combination of elements in the list of elements. This definition also allows for the optional existence of elements other than those specifically identified in the list of elements to which the phrase “at least one” refers, whether related to or unrelated to the specifically identified elements.
[0061] Unless otherwise explicitly indicated, in any method claimed herein that includes more than one step or action, the order of the steps or actions of the method is not necessarily limited to the order in which the steps or actions of the method are enumerated.
[0062] In the claims and in the above specification, all transitional phrases such as “comprising,” “including,” “carrying,” “having,” “containing,” “involving,” “holding,” and “composed of” should be understood as unrestrictive, that is, including but not limiting. Only the transitional phrases “consisting of” and “consisting essentially of” are restrictive or semi-restrictive, respectively.
[0063] The above-described examples of the subject matter can be implemented in any of many ways. For example, in some embodiments, they can be implemented in hardware, software, or a combination thereof. If at least a portion of any embodiment is implemented as software, the software code can run on any suitable processor or set of processors, whether provided on a single device or computer, or distributed across multiple devices / computers.
[0064] This disclosure may be implemented as a system, method, and / or computer program product, at any level of technical detail that may be anticipated. The computer program product may include a computer-readable storage medium (or media) having computer-readable program instructions that cause a processor to execute aspects of the present invention.
[0065] A computer-readable storage medium can be a tangible device capable of holding and storing instructions for use by an instruction execution device. A computer-readable storage medium may, but is not limited to, electronic storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any preferred combination thereof. A non-exhaustive list of more specific examples of computer-readable storage media includes: portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM, or flash memory), static random access memory (SRAM), compact disc read-only memory (CD-ROM), digital versatile disk (DVD), memory sticks, floppy disks, punch cards, or mechanically encoded devices on which instructions are recorded, as well as any preferred combination thereof. As used herein, a computer-readable storage medium is not interpreted as a freely propagating electromagnetic wave such as radio waves, an electromagnetic wave propagating through a transmission medium such as a waveguide (for example, an optical pulse passing through an optical fiber cable), or a transient signal such as an electrical signal transmitted through a wire.
[0066] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device, or to an external computer or external storage device, via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network may include copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface of each computing / processing device receives the computer-readable program instructions from the network, transfers these computer-readable program instructions, and stores them in a computer-readable storage medium within the respective computing / processing device.
[0067] The computer-readable program instructions for performing the operations of this disclosure may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-setting data, integrated circuit configuration data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk and C++, procedural programming languages such as the C programming language, or similar programming languages. The computer-readable program instructions may be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or to an external computer (for example, via the Internet using an Internet service provider). In some examples, electronic circuits, including, for instance, programmable logic circuits, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), may execute computer-readable program instructions by personalizing the electronic circuit using state information of computer-readable program instructions in order to perform aspects of the present disclosure.
[0068] Aspects of the present disclosure are described herein with reference to illustrative flowcharts and / or block diagrams of the methods, apparatus (systems), and computer program products described herein. It will be understood that each block in the illustrative flowcharts and / or block diagrams, and combinations of blocks in the illustrative flowcharts and / or block diagrams, can be implemented by computer-readable program instructions.
[0069] Computer-readable program instructions may be provided to a processor of a dedicated-purpose computer or other programmable data processing device to manufacture a machine, thereby creating means for performing functions / operations specified in one or more blocks of a flowchart and / or block diagram, through which the instructions executed via the processor of the computer or other programmable data processing device. Furthermore, these computer-readable program instructions may be stored in a computer-readable storage medium that can be instructed to function in a particular way to a computer, programmable data processing device, and / or other device, thereby including a computer-readable storage medium in which the instructions are stored in a manufactured article having instructions that perform a manner of function / operation specified in a flowchart and / or block diagram or block.
[0070] Furthermore, computer-readable program instructions can be loaded into a computer, other programmable data processing equipment, or other device to generate a process executed by the computer for a series of operational steps to be performed on the computer, other programmable equipment, or other device, thereby enabling the instructions executed on the computer, other programmable equipment, or other device to perform functions / operations specified in one or more blocks of a flowchart and / or block diagram.
[0071] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of assumed implementations of the systems, methods, and computer program products in the various examples of this disclosure. In this regard, each block in the flowchart or block diagram may correspond to a module, segment, or portion of an instruction, containing one or more executable instructions for performing a specified logical function. In some alternative implementations, the functions described in a block may occur in the order shown in the figure. For example, two consecutively shown blocks may actually be executed substantially simultaneously, or, in some cases, the blocks may be executed in reverse order depending on the function involved. Furthermore, it should be noted that each block in the block diagrams and / or flowchart illustrations, and combinations of blocks in the block diagrams and / or flowchart illustrations, may be implemented in a dedicated hardware-based system that performs a specific function or operates or executes a combination of dedicated hardware and computer instructions.
[0072] Other implementations are within the scope of the following claims, as well as any other claims to which the applicant may have rights.
[0073] While various examples have been described and illustrated in this specification, those skilled in the art will readily conceive of various other means and / or structures to implement functions and / or results and / or advantages described herein, and each of such modifications and / or variations will be considered within the scope of the examples described herein. More generally, those skilled in the art will readily understand that all parameters, dimensions, materials and configurations described herein are illustrative, and furthermore, that actual parameters, dimensions, materials and / or configurations will depend on the specific application or the application in which the teachings of the present invention are used. Those skilled in the art will be able to recognize or confirm many equivalents to the specific examples described herein simply by performing routine experiments. Therefore, it should be understood that the examples described herein are presented for illustrative purposes only, and that examples can be implemented in ways other than those explicitly described and claimed, within the scope of the appended claims and their equivalents. The examples in this disclosure cover each individual feature, system, article, material, kit and / or method described herein. Furthermore, any combination of two or more such features, systems, articles, materials, kits, and / or methods is included within the scope of the invention of this disclosure, provided that such features, systems, articles, materials, kits, and / or methods are not mutually inconsistent. [Explanation of symbols]
[0074] 100 Systems 102 Source Device 104 (Multiple) Sink Devices 104A, 104B, 104C sink devices 106 Source Controller 108 source processors 110 Source Memory 112 Multiple source instructions 114 Source Communication Module 116 Source Radio 118 Sync Controller 120 Sync Processors 122 Sync Memory 124 Multiple sink instructions 126 Sync Communication Module 128 Sink radio 130 ThinkSpeaker 132 Multiple Wireless Connections 132A, 132B, 132C Wireless Connection 134 Multiple wireless data streams 136 Multiple isochronous streams 138 Multiple data packets 140 Multiple supplemental packets 148 The first multiple packets 150 Second set of multiple packets KP1 First encryption key pair KP2 Second encryption key pair
Claims
1. A method for improving wireless communication in a source device, wherein the method is: Transmitting an isochronous stream containing multiple data packets transmitted using a first frequency within a first isochronous interval, This includes transmitting one or more supplemental data packets within the first isochronous interval at a second frequency different from the first frequency, The one or more supplemental data packets are used to reconstruct at least a portion of one or more of the data packets of the plurality of data packets received during the first isochronic interval, or The one or more supplemental data packets are used to reconstruct at least a portion of one or more of the data packets of the plurality of data packets received during the first isochronous interval or during a second isochronous interval following the first isochronous interval. A method wherein the one or more supplemental data packets include an error correction code associated with at least one of the plurality of data packets.
2. The method according to claim 1, wherein the error correction code is associated with at least one packet from the plurality of data packets received within the first isochronous interval and is associated with at least one packet from the plurality of data packets transmitted within the second isochronous interval.
3. The method according to claim 1, wherein each of the plurality of data packets includes one or more audio frames of encoded audio data, and the one or more supplemental data packets are used to reproduce at least one of the one or more audio frames.
4. The method according to claim 1, wherein the plurality of data packets include a first plurality of data packets associated with a left channel audio stream and a second plurality of data packets associated with a right channel audio stream, the first supplemental data packet of the one or more supplemental data packets is associated with the first plurality of data packets, and the second supplemental data packet of the one or more supplemental data packets is associated with the second plurality of data packets.
5. A method for improving wireless communication in a source device, wherein the method is: Transmitting an isochronous stream containing multiple data packets transmitted within a first isochronous interval or using a first frequency, This includes transmitting one or more supplemental data packets within the first isochronous interval and at a second frequency that is temporally shifted relative to the plurality of data packets or at a second frequency different from the first frequency, The one or more supplemental data packets are used to extend at least a portion of one or more of the data packets among the plurality of data packets. A method wherein the one or more supplemental data packets include additional data used to extend one or more of the data packets.
6. The method according to claim 1 or 5, wherein the isochronous stream is a broadcast isochronous stream or a connected isochronous stream.
7. The isochronous stream is a connected isochronous stream, and the method is The method according to claim 6, further comprising confirming the success of restoring one or more data packets from the plurality of data packets based on the one or more supplemental data packets.
8. The method according to claim 1 or 5, wherein the one or more supplemental data packets are transmitted within the isochronous stream or within another isochronous stream that is time-related to the isochronous stream.
9. The method according to claim 1 or 5, wherein one or more supplemental data packets are encrypted.
10. The method according to claim 9, wherein one or more of the plurality of data packets are encrypted using a first encryption key pair, and one or more supplemental data packets are encrypted using a second encryption key pair different from the first encryption key pair.
11. A system for improving wireless communication, wherein the system is Within a first isochronous interval, an isochronous stream containing multiple data packets transmitted using a first frequency is transmitted to at least one sink device. Within the first isochronous interval, one or more supplemental data packets are transmitted to the at least one sink device at a second frequency different from the first frequency. The source device is configured as follows: The one or more supplemental data packets are used to reconstruct at least a portion of one or more of the data packets of the plurality of data packets received during the first isochronic interval, or The one or more supplemental data packets are used to reconstruct at least a portion of one or more of the data packets of the plurality of data packets received during the first isochronous interval or during a second isochronous interval following the first isochronous interval. The system includes one or more supplemental data packets, each containing an error correction code associated with at least one of the data packets.
12. The system according to claim 11, wherein the error correction code is associated with at least one packet from the plurality of data packets received within the first isochronous interval and is associated with at least one packet from the plurality of data packets transmitted within the second isochronous interval.
13. The system according to claim 11, wherein each of the plurality of data packets includes one or more audio frames of encoded audio data, and the one or more supplemental data packets are used to reproduce at least one of the one or more audio frames.
14. The system according to claim 11, wherein the plurality of data packets include a first plurality of data packets associated with a left channel audio stream and a second plurality of data packets associated with a right channel audio stream, the first supplemental data packet of the one or more supplemental data packets is associated with the first plurality of data packets, and the second supplemental data packet of the one or more supplemental data packets is associated with the second plurality of data packets.
15. A system for improving wireless communication, wherein the system is An isochronous stream, including multiple data packets transmitted within a first isochronous interval or using a first frequency, is transmitted to at least one sink device. One or more supplemental data packets are transmitted to the at least one sink device within the first isochronous interval and at a second frequency that is temporally shifted relative to the plurality of data packets or at a second frequency different from the first frequency. The source device is configured as follows: The one or more supplemental data packets are used to extend at least a portion of one or more data packets among the multiple data packets. The system wherein the one or more supplemental data packets include additional data used to extend one or more of the data packets.
16. The system according to claim 11 or 15, wherein the isochronous stream is a broadcast isochronous stream or a connected isochronous stream.
17. The isochronous stream is a connected isochronous stream, and the source device is The system according to claim 16, further configured to confirm the success of restoring one or more data packets from the plurality of data packets based on the one or more supplemental data packets.
18. The system according to claim 11 or 15, wherein the one or more supplemental data packets are transmitted within the isochronous stream or within another isochronous stream that is time-related to the isochronous stream.
19. The system according to claim 11 or 15, wherein one or more supplemental data packets are encrypted.
20. The system according to claim 19, wherein one or more of the plurality of data packets are encrypted using a first encryption key pair, and one or more supplemental data packets are encrypted using a second encryption key pair different from the first encryption key pair.