Broadcast channel mask modification based on advertisement packet feedback
Patent Information
- Application Number
- PCT/US2025/016487
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-02-19
- Publication Date
- 2026-08-27
Smart Images

Figure US2025016487_27082026_PF_FP_ABST
Abstract
Description
BROADCAST CHANNEL MASK MODIFICATION BASED ON ADVERTISEMENT PACKET FEEDBACK BACKGROUND
[0001] Some user equipment (UE) is configured to concurrently provide an audio stream to two or more receiver devices, such as earbuds, headphones, speakers, and the like, by broadcasting packets of the audio stream on one or more isochronous channels according to a channel mask. These broadcast packets of the audio stream are then receivable by any number of receiver devices within the broadcast range. However, because the packets of the audio stream are broadcast rather than sent over an established connection, the UE is unable to receive data from the devices subscribed to the broadcast such as data indicating a quality of reception by the receiver devices, preferences of the devices, or both. As such, the UE is further unable to modify the broadcast of the audio stream based on the needs or preferences of these devices.BRIEF DESCRIPTION OF THE DRAWINGS
[0001] The present disclosure may be better understood, and its numerous features and advantages are made apparent to those skilled in the art by referencing the accompanying drawings. The use of the same reference symbols in different drawings indicates similar or identical items.
[0002] FIG. 1 is a block diagram of a user equipment (UE) broadcast framework configured to adjust a broadcast channel mask based on advertisement packets from one or more receiver devices, in accordance with some embodiments.
[0003] FIG. 2 is a block diagram of an example advertisement packet broadcast by a receiver device, in accordance with some embodiments.
[0004] FIG. 3 is a sequence diagram of an example operation for determining the channel masks and broadcast subscriber data of receiver devices during an audio stream broadcast, in accordance with some embodiments.
[0005] FIG. 4 is a flow diagram of an example operation for modifying a broadcast channel mask based on the weighted channel masks of one or more receiver devices, in accordance with some embodiments.
[0006] FIG. 5 is a block diagram of an example tracking circuitry configured to implement a trained machine-learning model that modifies a broadcast channel mask based on the broadcast subscriber data and channel masks of one or more receiver devices, in accordance with some embodiments.
[0007] FIG. 6 is a flow diagram of an example method for adjusting a broadcast channel mask based on advertisement packets from one or more receiver devices, in accordance with some embodiments.DETAILED DESCRIPTION
[0008] Systems and techniques disclosed herein include user equipment (LIE), such as compute-enabled phones (i.e. , smartphones), tablet computers, personal computers, compute-enabled wearable devices, Internet of Things (loT) devices, laptop computer, routers, mobile hotspot devices, automotive devices, manufacturing devices, and the like, configured to broadcast an audio stream such that multiple receiver devices within the range of the broadcast receive the audio stream. This audio stream, for example, includes a series of packets representing audio to be output by one or more receiver devices. To broadcast the audio stream, a UE uses one or more isochronous channels to broadcast packets of the audio stream based on one or more certain communication protocols, for example, Bluetooth® Low Energy communication protocol (Bluetooth LE), so that the packets of the audio stream are receivable within a certain range (e.g., the distance from the UE at which packets broadcast by the UE are receivable by a receiver device). Additionally, to broadcast the audio stream, the UE uses a broadcast channel mask that indicates which isochronous channels (e.g., respective ranges of frequencies) are to broadcast packets of the audio stream. In response to receiving one or more packets of the audio stream broadcast by the UE, a receiver device is configured to output the audio in the received packets. Such receiver devices, for example, include portable devices having one or more output devices (e.g., speakers) such as wireless headphones, wireless earbuds, wireless in-ear monitors, wireless over-ear headphones, wirelesson-ear headphones, bone-conduction headphones, wireless speakers, wireless hearing aids, and the like.
[0009] However, because the UE broadcasts the audio stream for receipt by any receiver device within range rather than transmitting the audio stream to receiver devices that have established a connection with the UE, the UE is unable to receive data from the receiver devices that represents the quality of the broadcast audio stream received by the receiver devices, preferences of the receiver devices, or both. For example, the UE conventionally is unable to receive data indicating how choppy the received audio stream is (e.g., how much stuttering is in the audio stream), a respective packet error rate (PER) for the received audio stream, the number of times the receiver device was out of sync with the broadcast audio stream, the channel masks associated with (e.g., used by) the receiver devices, the transmission power of packets for the receiver devices, or any combination thereof, to name a few. As such, the UE is further unable to adjust the broadcast of the audio based on the quality of the broadcast audio stream received by the receiver devices, preferences of the receiver devices, or both. As an example, the UE is unable to adjust the channel mask used to broadcast the audio stream based on the channel masks of the receiver devices, respective signal strengths (e.g., respective received signal strength indicators (RSSIs) of the receiver devices, the respective PERs of the receiver devices for the receiver audio stream, or any combination thereof.
[0010] As such, systems and techniques disclosed herein are directed toward adjusting the channel mask used to broadcast an audio stream based on advertisement signals broadcast by receiver devices receiving the broadcast audio stream. For example, a UE is configured to first broadcast packets of an audio stream on one or more isochronous channels based on a channel mask such that one or more receiver devices within range receive at least a portion of the audio stream (e.g., at least a portion of the packets of the audio stream). In response to receiving one or more packets of the broadcast audio stream, a receiver device is configured to begin periodically broadcasting (e.g., every second) an advertisement packet indicating link status data associated with the received audio stream. Such link status data includes, for example, how choppy the received audio stream is for a corresponding receiver device, a PER for a corresponding receiver device, thenumber of times a corresponding receiver device was out of sync with the broadcast audio stream, or any combination thereof, to name a few. As an example, the advertisement packet of a corresponding receiver device includes one or more data blocks indicating the advertisement packet includes link status data, the broadcast identifier (ID) of the corresponding receiver device, the link status data for the corresponding receiver device, the channel mask associated with (e.g., used by, preferred by) the corresponding device, and the power level at which the advertisement signal was broadcast. Further, in response to broadcasting one or more packets of the audio stream, the UE is configured to periodically listen for advertisement signals broadcast by any receiver device. The UE then identifies the receiver devices that are actively receiving the broadcast audio stream and one or more metrics for the link status (e.g., broadcast subscriber data) between the UE and the identified receiver devices. For example, in response to detecting an advertisement packet indicating that the advertisement signal includes link status data, the UE determines that the receiver device identified in the advertisement packet is actively receiving the broadcast audio stream and, for example, adds data representing the receiver device to a list of receiver devices current receiving subscribed to the audio stream (e.g., a broadcast subscriber list).
[0011] For each receiver device identified in this list, the UE determines the channel mask associated with the receiver device and broadcast subscriber data representing a link quality (e.g., PER, RSSI) between the UE and the receiver device. For example, the UE identifies the PER and channel mask of a receiver device as the PER and channel mask indicated in a received advertisement signal of the receiver device. Further, the UE determines the RSSI of the receiver device based on the transmit power level indicated in the advertisement packet of the receiver device. The UE then weighs each determined channel mask based on the determined broadcast subscriber data representing a link quality between the UE and a corresponding receiver device. As an example, the UE assigns a predetermined weight to a channel mask based on the PER, RSSI, or both of the receiver device associated with the channel mask. After weighing each channel mask, the UE modifies the broadcast channel mask based on the weighted channel masks. For example, the UE combines two or more weighted channel masks, selects one or more channel masks based on their corresponding weights, or both to produce a modified broadcast channel mask.As another example, the UE provides the channel masks, PERs, and RSSIs of each receiver device to a trained machine-learning model configured to receive the channel masks, PERs, and RSSIs as inputs and output a modified channel mask. Such a trained machine-learning model, for example, includes one or more supervised models, unsupervised models, reinforcement models, neural networks (recurrent neural networks, convolutional neural networks), large language models, multimedia large language models, natural language models, deep-learning models, federated learning models, or any combination thereof. After producing a modified broadcast channel mask, the UE then begins broadcasting one or more additional packets of the audio stream based on the modified broadcast channel mask.
[0012] In this way, the UE is configured to modify the broadcast channel mask for the audio stream based on the link quality and preferences of the receiver devices subscribed to the audio stream. For example, because the receiver devices are configured to begin broadcasting an advertisement signal including link status data in response to receiving the audio stream, the UE is enabled to receive data indicating the link statuses of the receiver devices even though there is no direct connection between the UE and receiver devices. Further, due to the UE being enabled to receive this link status data from the receiver devices, the UE is able to modify the broadcast channel mask of the audio stream based on the link quality, preferences, or both of the receiver devices which helps improve reception of the audio stream by the receiver devices when compared to UEs that use a predetermined channel mask to broadcast an audio stream.
[0013] As used herein, the term “circuitry” includes hardwired circuitry, programmable circuitry, or a combination thereof. For example, circuitry may include circuitry of an application-specific integrated circuit (ASIC) that is hardwired or hardcoded to perform corresponding functions, one or more processors that execute software stored in one or more memories or other storage media to perform corresponding functions, programmable logic that has been programmed to perform corresponding functions, or some combination thereof.
[0014] Referring now to FIG. 1 , a block diagram of a UE broadcast framework 100 configured to adjust a broadcast channel mask based on advertisement packets from one or more receiver devices is presented, in accordance with some embodiments. Inembodiments, UE broadcast framework 100 includes UE 102 configured to broadcast an audio stream 115 such that the broadcast audio stream (represented in FIG. 1 as broadcast audio stream 135) is received by one or more receiver devices 112. For example, UE 102 broadcasts one or more packets of an audio stream 115 such that the one or more packets of the broadcast audio stream 135 are received by one or more receiver devices 112 within the range of the broadcast (e.g., the distance from UE in which one or more packets of the broadcast audio stream 135 are receivable). UE 102, for example, includes a smartphone, tablet computer, personal computer, laptop computer, compute-enabled wearable device (e.g., smartwatch, fitness tracker, smart bracelet), loT device, router, mobile hotspot device, an automotive device, a manufacturing device, or any combination thereof, to name a few.Additionally, such an audio stream 115, for example, includes one or more packets that include data representing audio to be output by one or more receiver devices 112. To broadcast an audio stream 115, UE 102 includes broadcast circuitry 104 configured to broadcast one or more packets of the audio stream 115 using one or more isochronous channels 105 (e.g., broadcast isochronous channels). As an example, broadcast circuitry 104 includes one or more isochronous channels 105 over which broadcast circuitry 104 broadcasts packets of an audio stream 115 based on one or more communication protocols (e.g., a Bluetooth low energy communication protocol). An isochronous channel 105, for example, is configured to broadcast one or packets of an audio stream 115 using a corresponding range of frequencies (e.g., 2MHz range of frequencies) such that the broadcast packets are receivable by receiver devices 112 within the range of the broadcast. Additionally, according to embodiments, broadcast circuitry 104 is configured to broadcast one or more packets of an audio stream 115 based on a broadcast channel mask 125. This broadcast channel mask 125, for example, indicates which isochronous channels 105 of the broadcast circuitry 104 are to broadcast one or more packets for one or more audio streams 115. As an example, broadcast circuitry 104 is configured to broadcast one or more packets of an audio stream 115 on certain isochronous channels as indicated by the broadcast channel mask 125.
[0015] A receiver device 112, for example, includes a portable device configured to receive packets of a broadcast audio stream 135 using one or more communication protocols (e.g., Bluetooth LE) and to output audio represented by the receivedpackets. For example, a receiver device 112 includes one or more wireless headphones, wireless earbuds, wireless in-ear monitors, wireless over-ear headphones, wireless on-ear headphones, bone-conduction headphones, wireless speakers, wireless hearing aids, and the like. In some embodiments, a receiver device 112 includes a paired device (e.g., one device of a pair of devices), such as one earbud of a pair of earbuds, while in other embodiments, a receiver device includes a singular device such as headphones. In response to receiving one or more packets of a broadcast audio stream 135, a receiver device 112 is configured to output the audio represented by the received packets using one or output devices 114 that include, for example, speakers, audio monitors, or the like. Though the example embodiment presented in FIG. 1 shows three receiver devices (112-1 , 112-2, 112-N) representing an N integer number (where N>0) of receiver devices as receiving at least a portion of broadcast audio stream 135 (e.g., being within the broadcast range of UE 102), in other embodiments, any non-zero integer number of receiver devices receiving at least a portion of broadcast audio stream 135.
[0016] Further, in embodiments, one more receiver devices 112 are configured to broadcast one or more advertisement packets 145 in response to receiving one or more packets of broadcast audio stream 135. As an example, in response to receiving packets of broadcast audio stream 135, a receiver device 112 first determines link status data 165 based on the received packets of broadcast audio stream 135. This link status data 165 indicates the strength of the link between the receiving device 112 and UE 102 (e.g., the UE 102 that broadcasts the audio stream 115). That is to say, the link status data 165 indicates how well the receiving device 112 is receiving packets of the broadcast audio stream 135. Such link status data 165 includes, for example, how choppy the received audio stream 115 is for the receiver device 112 (e.g., how many interruptions there were in outputting the audio represented by the audio stream 115 over a predetermined period of time), a PER for the receiver device 112 over a predetermined period of time, the number of times the receiver device 112 was out of sync with the broadcast audio stream 135 over a predetermined period of time, or any combination thereof, to name a few. As an example, link status data 165 indicates how many interruptions there were in outputting the audio represented by the audio stream 115 (e.g., choppy count), PER, the number of times the receiver device 112 was out of sync with the broadcast audiostream 135, or any combination thereof over a period of one second. After determining link status data 165 based on the received packets of the broadcast audio stream 135, the receiver device 112 generates an advertisement packet 145 including data (e.g., one or more data blocks) indicating, for example, that the advertisement packet 145 includes link status data 165 for the broadcast audio stream 135 (e.g., that the advertisement packet 145 is based on the broadcast audio stream 135), an identifier for the receiving device 112 (e.g., a broadcast ID of the receiving device 112), determined link status data 116 over a predetermined period of time (e.g., one second), a channel mask associated with (e.g., used by, preferred by) the receiving device 112, the power level at which the advertisement packet 145 is transmitted, or any combination thereof.
[0017] In response to generating an advertisement packet 145, a transmitter 116 of the receiver device 112 broadcasts the advertisement packet 145 such that the broadcast advertisement packet 155 is receivable by UE 102. According to embodiments, after generating a first advertisement packet 145 including link status data 165, the receiver device 112 continues to periodically generate and broadcast advertisement packets 145 such that each advertisement packet 145 includes link status data 165 representing a corresponding period between the broadcast of the advertisement packets 145. For example, each advertisement packet 145 to be broadcast includes link status data 165 associated with a period of time between the most recent broadcast of an advertisement packet 145 and the broadcast of the advertisement packet 145 to be broadcast. According to embodiments, as an example, receiver device 112 is configured to broadcast advertisement packets 145 every second such that each broadcast advertisement packet 155 includes link status data 165 associated with a corresponding period of time between the broadcast of the advertisement packets 145. In embodiments, a transmitter 116 is configured to continue periodically broadcasting such advertisement packets 145 including link status data 165 until a predetermined amount of time has elapsed, the receiver device 112 stops receiving packets of the broadcast audio stream 135, a predetermined number of packets of the broadcast audio stream 135 are not receiving within a predetermined period of time, or any combination thereof.
[0018] In embodiments, UE 102 includes tracking circuitry 106 configured to periodically listen for advertisement packets 145 broadcast by one or more receiver devices 112 (e.g., listen for broadcast advertisement packets 155). For example, UE 102 listens for broadcast advertisement packets 155 each time a predetermined period of time (e.g., one second) elapses. In response to detecting a broadcast advertisement packet 155, tracking circuitry 106 first determines the receiver device 112 associated with the broadcast advertisement packet 155. As an example, tracking circuitry 106 identifies the receiver device 112 based on the identifier for the receiving device 112 (e.g., broadcast ID) indicated in the broadcast advertisement packet 155. After identifying the receiver device 112 associated with the detected broadcast advertisement packet 155, the tracking circuitry 106 adds data identifying the receiver device 112 (e.g., a broadcast ID of the receiver device 112) to a broadcast subscriber list 175. This broadcast subscriber list 175, for example, includes data identifying the receiver devices 112 that are currently subscribed to (e.g., receiving one or more packets of) the broadcast audio stream 135. In embodiments, after adding data identifying a receiver device 112 to the broadcast subscriber list 175, tracking circuitry 106 is configured to generate broadcast subscriber data 185 for that receiver device 112 based on one or more received broadcast advertisement packets 155 identifying the receiver device. Such broadcast subscriber data 185, for example, represents a link quality between UE 102 and a corresponding receiver device 112. As an example, broadcast subscriber data 185 includes an RSSI for the receiver device 112 at one or more times, an average RSSI of the receiver device 112 over a predetermined period of time, a PER of the receiver device 112 at one or more times, an average PER of the receiver device 112 over a predetermined period of time, or any combination thereof.
[0019] As an example, fora receiver device 112, tracking circuitry 106 is configured to determine one or more PERs at corresponding times, average PERs over corresponding predetermined periods of time, or both for the receiver device 112 based on the PERs indicated in one or more received broadcast advertisement packets 155 associated with the receiver device. As another example, for a receiver device 112, tracking circuitry 106 is configured to determine one or more RSSIs at corresponding times, one or more average RSSIs over corresponding predetermined periods of time, or both for the receiver device 112 based on the transmission power(e.g., the transmission power of the advertisement packets 145) indicated in one or more received broadcast advertisement packets 155 associated with the receiver device 112. When generating broadcast subscriber data 185 for a receiver device 112 identified in the broadcast subscriber list 175, tracking circuitry 106 is also configured to identify the channel mask associated with the receiver device 112 as the channel mask indicated in one or more received broadcast advertisement packets 155 associated with the receiver device.
[0020] In embodiments, tracking circuitry 106 is configured to modify the broadcast channel mask 125 used to broadcast one or more audio streams 115 based on the broadcast advertisement packets 145 from the receiver devices 112. For example, for each receiver device 112 identified in the broadcast subscriber list 175, tracking circuitry 106 first identifies the channel masks, one or more PERs (e.g., PERs at corresponding times, average PERs over corresponding periods of time), one or more RSSIs (e.g., RSSIs at corresponding times, average RSSIs over corresponding periods of times), or any combination thereof based on one or more broadcast advertisement packets 145 of the receiver device 112. The tracking circuitry 106 then weighs the respective channel mask associated with each identified receiver device 112 based on one or more PERs, RSSIs, or both of the receiver device 112 (e.g., weights the channel mask associated with each identified receiver device 112 based on corresponding link status data 165 indicated in a broadcast advertisement packet 155 of the receiver device 112). As an example, tracking circuitry 106 determines a corresponding predetermined weight for a channel mask of a receiver device 112 based on whether a PER (e.g., PER at a corresponding time, average PER over a corresponding period of time) of the receiver device 112 is equal to or above a PER threshold value, the PER of the receiver device 112 is below the PER threshold value, an RSSI (e.g., RSSI ata corresponding time, average RSSI over a corresponding period of time) of the receiver device 112 is equal to or above an RSSI threshold value, the RSSI value of the receiver device 112 is lower than the RSSI threshold value, or any combination thereof.
[0021] According to embodiments, for example, in response to the PER of a receiver device 112 being below the PER threshold value and the RSSI of the receiver device 112 being below the RSSI threshold value, tracking circuitry 106determines a first predetermined weight for the channel mask of the receiver device 112. Further, in response to the PER of a receiver device 112 being below the PER threshold value and the RSSI of the receiver device 112 being equal to or above the RSSI threshold value, tracking circuitry 106 determines a second predetermined weight for the channel mask of the receiver device 112. Additionally, the tracking circuitry 106, in response to the PER of a receiver device 112 being equal to or above the PER threshold value and the RSSI of the receiver device 112 being below the RSSI threshold value, determines a third predetermined weight for the channel mask of the receiver device 112. Also, in response to the PER of a receiver device 112 being equal to or above the PER threshold value and the RSSI of the receiver device 112 being equal or above the RSSI threshold value, tracking circuitry 106 determines a fourth predetermined weight for the channel mask of the receiver device 112. After determining the weight for a channel mask, tracking circuitry 106 applies the weight to the channel mask to produce a weighted channel mask. Tracking circuitry 106 then produces a modified broadcast channel mask by, for example, combining two or more weighted channel masks, selecting one or more channel masks based on their corresponding weights, or both. The broadcast circuitry 104 then broadcasts one or more additional packets of the audio stream 115 based on the modified broadcast channel mask.
[0022] In this way, tracking circuitry 106 is enabled to modify the broadcast channel mask 125 based on the link quality between the UE 102 and the receiver devices 112 identified in the broadcast subscriber list 175 (e.g., the receiver devices 112 identified as receiving the broadcast audio stream 135). As an example, due to tracking circuitry 106 determining RSSIs and PERs of the receiver devices 112 based on the broadcast advertisement packets 155, tracking circuitry 106 is enabled to assign lower weights (e.g., weights indicating less importance) to channel masks of receiver devices 112 closer to the UE 102 (e.g., as indicated by RSSIs equal to or above the threshold and PER lower than a threshold) and increased weights (e.g., weights indicating greater importance) to channel masks of receiver devices 112 suffering from a bad channel map (e.g., as indicated by RSSIs equal to or above the threshold and PER equal to or higher than a threshold), channel masks of receiver devices 112 farther from the UE 102 (e.g., as indicated by RSSIs lower than a threshold), or both. By assigning weights in this matter, tracking circuitry 106 helps ensure that aresulting modified broadcast channel map generated from these weighted channel maps helps increase the link quality between the UE 102 and receiver devices 112 suffering from a bad channel map, farther from the UE 102, or both and helps ensure the fidelity of the broadcast audio stream 135 received by these receiver devices 112.
[0023] In embodiments, UE 102 includes a memory 108 that includes a storage, random-access memory (RAM) (e.g., static RAM, dynamic RAM), or both storing executable instructions, data, or both used by broadcast circuitry 104, tracking circuitry 106, or both to broadcast one or more audio streams 115, listen for one or more broadcast advertisement packets 155, update a broadcast subscriber list 175, determine broadcast subscriber data 185, update broadcast channel mask 125, or any combination thereof, to name a few. As an example, according to some embodiments, memory 108 is configured to store data representing broadcast channel mask 125, one or more audio streams 115, broadcast subscriber list 175, broadcast subscriber data 185, a modified broadcast channel mask, or any combination thereof. Further, in some embodiments, memory 108 stores executable instructions that, when executed by one or more processors 110 (e.g., central processing units, graphics processing units, microprocessors) of UE 102, cause the processors 110 to broadcast one or more audio streams 115, listen for one or more broadcast advertisement packets 155, update a broadcast subscriber list 175, determine broadcast subscriber data 185, update broadcast channel mask 125, or any combination thereof, to name a few. Additionally, one or more processors 110, in some embodiments, implement at least a portion of broadcast circuitry 104, tracking circuitry 106, or both.
[0024] Referring now to FIG. 2, an example advertisement packet 200 broadcast by a receiver device is presented, in accordance with embodiments. In embodiments, example advertisement packet 200 is implemented in example UE broadcast framework as an advertisement packet 145 broadcast by a receiver device 112 (e.g., broadcast advertisement signal 155) in response to receiving one or more packets of a broadcast audio stream 135. Example advertisement packet 200, as an example, is implemented within the payload of a packet and includes an advertisement status data block 205, broadcast identification data block 215, link status data block 225, channel mask data block 235, and advertisement transmission data block 245, or anycombination thereof. According to embodiments, two or more data blocks 205, 215, 225, 235, 245 of example advertisement packet 200 have the same size (e.g., in octets), two or more data blocks 205, 215, 225, 235, 245 of example advertisement packet 200 have different sizes, or both. As an example, in some embodiments, advertisement status data block 205 has a size of two octets, broadcast identification data block 215 has a size of three octets, link status data block 225 has a size of six octets, channel mask data block 235 has a size of five octets, and advertisement transmission data block 345 has a size of one octet.
[0025] The advertisement status data block 205 of example advertisement packet 200 includes, for example, data indicating that example advertisement packet 200 (e.g., a packet including example advertisement packet 200) includes link status data 165 for a corresponding receiver device 112. That is to say, advertisement status data block 205 includes data indicating that the example advertisement packet 200 includes data representing the strength of the link between a corresponding receiving device 112 (e.g., the receiving device 112 that generated example advertisement packer 200) and a UE 102 broadcasting an audio stream 115. In embodiments, for example, advertisement status data block 205 includes data indicating a universally unique identifier (IIUID) indicating that the example advertisement packet 200 includes data representing the strength of the link between a corresponding receiving device 112 and a UE 102 broadcasting an audio stream 115. Further, the broadcast identification data block 215 includes data identifying a corresponding receiving device 112. As an example, the broadcast identification data block 215 includes a broadcast ID for a corresponding receiving device 112. The link status data block 225 of example advertisement packet 200 includes data indicating the link status data block 225 for a corresponding receiver device 112. That is to say, link status data block 225 includes data representing how choppy a received audio stream 115 is for a corresponding receiver device 112 over a predetermined amount of time (e.g., one second), a PER for a corresponding receiver device 112 over a predetermined amount of time, the number of times the receiver device 112 was out of sync with the broadcast audio stream 135 over a predetermined period of time, or any combination thereof, to name a few.
[0026] Additionally, a channel mask data block 235 of example advertisement packet 200 includes data representing a channel mask used by a corresponding receiver device 112, preferred by a corresponding receiver device 112, or both to receive a broadcast audio stream 135. Such a channel mask used by a corresponding receiver device 112, preferred by a corresponding receiver device 112, or both to receive a broadcast audio stream 135 indicates which channels (e.g., isochronous channels) of a receiver device 112 are to listen for and receive packets of broadcast audio streams 135. In embodiments, the advertisement transmission data block 245 includes data indicating the transmission power at which a corresponding receiver device 112 (e.g., the transmitter 116 of the receiver device 112) will broadcast the example advertisement packet 200.
[0027] Referring now to FIG.3, an example operation 300 for determining the channel masks and link qualities of receiver devices during an audio stream broadcast is presented, in accordance with embodiments. In embodiments, example operation 300 is implemented at least in part by UE 102 and one or more receiver devices 112. Though the example embodiment presented in FIG. 3 shows the example operation 300 as being implemented at least in part by three receiver devices (112-1, 112-2, 112-N) representing an N integer number (where N>0) of receiver devices, in other embodiments, example operation 300 can be implemented at least in part by any non-zero integer number of receiver devices 112. According to embodiments, at block 305 of example operation 300, UE 102 begins broadcasting an audio stream 115. For example, UE 102 uses one or more isochronous channels 105 to broadcast one or more packets of an audio stream 115 based on a broadcast channel mask 125. After UE 102 broadcasts one or more packets of an audio stream 115, one or more packets of the broadcast audio stream 135 are received by one or more receiver devices 112. In response to receiving one or more packets of the broadcast audio stream 135, each receiver device 112, at a corresponding block 315-1, 315-2, 315-N, is configured to begin broadcasting an advertisement packet 145 that includes link status data 165. For example, at block 315-1 , a first receiver device 112-2 is configured to determine link status data 165 indicating how choppy the received broadcast audio stream 135 is for the first receiver device 112 over a predetermined amount of time (e.g., one second), a PER for the first receiver device 112 over a predetermined amount of time, the number of times the first receiverdevice 112 was out of sync with the broadcast audio stream 135 over a predetermined period of time, or any combination thereof, to name a few. The first receiver device 112-1 then generates an advertisement packet 145 that includes data indicating that the advertisement packet 145 includes link status data 165, a channel mask associated with (e.g., used by, preferred by) the first receiver device 112-1, the determined link status data 165, and the transmission power at which the first receiver device 112 with broadcast the advertisement packet 145.
[0028] After generating a respective advertisement packet 145, each receiver device 112 transmits its respective advertisement packet 145 (represented in FIG. 3 as broadcast advertisement packets 155-1, 155-2 155-N). Further, each receiver device 112 continues to periodically generate and broadcast advertisement packets 145 including link status data 165 until a predetermined amount of time has elapsed, the receiver device 112 stops receiving packets of the broadcast audio stream 135, a predetermined number of packets of the broadcast audio stream 135 are not received within a predetermined period of time, or any combination thereof. In embodiments, at block 325, UE 102 is configured to determine channel masks and broadcast subscriber data 185 for one or more receiver devices 112 identified in a broadcast advertisement packet 155. As an example, in response to broadcasting one or more packets of an audio stream 115, at block 325, UE 102 is configured to periodically listen for one or more broadcast advertisement packets 155 (e.g., UE 102 is configured to periodically listen for advertisement packets 145 including link status data 165). In response to receiving a broadcast advertisement packet 155, UE 102 is configured to add the receiver device 112 identified in the broadcast advertisement packet 155 to a broadcast subscriber list 175 that indicates the receiver devices 112 currently receiving packets of the broadcast audio stream 135. Further, in response to receiving a broadcast advertisement packet 155, UE 102 determines broadcast subscriber data 185 associated with the receiver device 112 identified in the received broadcast advertisement packet 155. For example, UE 102 determines one or more PERs at certain times, average PERs over certain predetermined periods of time, RSSIs at certain times, average RSSIs over certain predetermined periods of time, or any combination thereof associated with the receiver device 112 based on the link status data 165 in the broadcast advertisement packet 155 of the receiver device 112. Further, at block 325, the UE 102 determines the channel mask used by,preferred by, or both a receiver device 112 based on the channel mask indicated in the broadcast advertisement packet 155 of the receiver device 112. According to embodiments, UE 102 then uses the broadcast subscriber data 185 and channel masks of the receiver devices 112 identified in the broadcast subscriber list 175 to update the broadcast channel mask 125 used to broadcast packets of the audio stream 115.
[0029] For example, referring now to FIG. 4, an example operation 400 for modifying a broadcast channel mask based on the weighted channel masks of one or more receiver devices is presented, in accordance with embodiments. In embodiments, example operation 400 is implemented at least in part by tracking circuitry 106. Example operation 400 includes, at block 405, tracking circuitry 106 receiving one or more broadcast advertisement packets 155 from one or more receiver devices 112. For example, in embodiments, tracking circuitry 106 is configured to listen for and receive broadcast advertisement packets 155 each time a predetermined period of time elapses (e.g., one second). For each received broadcast advertisement packet 155 indicating that it includes link status data 116 (e.g., each received broadcast advertisement packet 155 including an advertisement status data block 205), at block 415, tracking circuitry 106 is configured to determine the receiver device 112 identified in the broadcast advertisement packet 155. As an example, tracking circuitry 106 identifies a receiver device 112 based on the broadcast identification data block 215 (e.g., data indicating a broadcast ID) of a received broadcast advertisement packet 155. After determining the receiver device 112 identified in a received broadcast advertisement packet 155, tracking circuitry 106 adds data indicating the receiver device 112 (e.g., a broadcast ID) to the broadcast subscriber list 175. Further, at block 415, for each receiver device 112 identified in a received broadcast advertisement packet 155, tracking circuitry 106 determines corresponding broadcast subscriber data 185 and a receiver channel mask 435 based on a received broadcast advertisement packet 155 identifying the receiver device 112. For example, tracking circuitry 106 determines broadcast subscriber data 185 including one or more PERs at certain times, average PERs over corresponding periods of time, RSSIs at certain times, average RSSIs over corresponding periods of time, or any combination thereof for a corresponding receiver device 112 based on the link status data 165 (e.g., link status data block205) and the transmission power level (e.g., advertisement transmission data block 245) indicated in one or more received broadcast advertisement packets 155 identifying the receiver device 112.
[0030] Further, still referring to block 415, tracking circuitry 106 determines a receiver channel mask 435 for a receiver device 112 based on the channel mask indicated in (e.g., based on the channel mask data block 235 included in) a received broadcast advertisement packet 155 identifying the receiver device 112. A receiver channel mask 435, for example, represents the channel mask used by, preferred by, or both a corresponding receiver device 112 when receiving a broadcast audio stream 135. After determining broadcast subscriber data 185 and receiver channel masks 435 for one or more receiver devices 112 identified by received broadcast advertisement packets 155, at block 445, tracking circuitry 106 determines a respective channel mask weight 475 for each receiver device 112 identified in the broadcast subscriber list 175. Each channel mask weight 475, for example, represents a predetermined value assigned to a receiver device 112 based on a link quality between the receiver device 112 and the UE 102 broadcasting an audio stream 115. For example, for each receiver device 112 identified in the broadcast subscriber list 175, tracking circuitry 106 determines a corresponding channel mask weight 475 based on certain metrics indicated in the broadcast subscriber data 185 of the receiver device 112. In embodiments, for example, tracking circuitry 106 determines a corresponding channel mask weight 475 based on one or more PERs, RSSIs, or both indicated in the broadcast subscriber data 185 of the receiver device 112.
[0031] As an example, in response to a respective PER (e.g., PER at a certain time, average PER over a certain period of time) of a receiver device 112 being less than a PER threshold 455 and a respective RSSI (e.g., RSSI at a certain time, average RSSI over a certain period of time) being less than an RSSI threshold 465, tracking circuitry assigns a first channel mask weight to the receiver device 112 (e.g., to the receiver channel mask 475 of the receiver device). Further, in response to the PER of a receiver device 112 being less than a PER threshold and an RSSI of the receiver device 112 being equal to or greater than the RSSI threshold 465, tracking circuitry 106 assigns a second channel mask weight to the receiver device. Yet further, inresponse to the PER of the receiver device 112 being equal to or greater than the PER threshold 455 and the RSSI of the receiver device 112 being less than the RSSI threshold 465 tracking circuitry 106 assigns a third channel mask weight to the receiver device 112. Additionally, in response to the PER of the receiver device 112 being equal to or greater than the PER threshold 455 and the RSSI of the receiver device 112 being equal to or greater than the RSSI threshold 465 tracking circuitry 106 assigns a fourth channel mask weight to the receiver device 112. According to embodiments, at least one of the first, second, third, or fourth channel mask weights is different from at least one other of the first, second third, or fourth channel masks, at least one of the first, second, third, or fourth channel masks weights is the same as at least one other of the first, second third, or fourth channel masks, or both.
[0032] At block 485, after assigning a respective channel mask weight 475 to each receiver device 112 identified in the broadcast subscriber list 175, tracking circuitry 106 weights the receiver channel masks 435 of the receiver devices 112 using corresponding channel mask weights 475 (e.g., channel masks weights 475 assigned to the same receiver device 112) to produce weighted channel masks 495 (e.g., produce one or more weighted receiver channel masks). Tracking circuitry 106 then, at block 403, modifies the broadcast channel mask 125 used to broadcast packets of the audio stream 115 based on the weighted channel masks 495. As an example, tracking circuitry 106 combines two or more weighted channel masks 495, selects one or more weighted channel masks 495, or both to produce a modified broadcast channel mask 413. Tracking circuitry 106 then updates the broadcast channel mask 125 based on the modified broadcast channel mask 413 and broadcast circuitry 104 continues broadcasting packets of the audio stream 115 based on the updated broadcast channel mask 125. For example, in embodiments, tracking circuitry 106 updates the broadcast channel mask 125 to match the modified broadcast channel mask 413.
[0033] Referring now to FIG. 5, an example tracking circuitry 500 configured to implement a trained machine-learning model to modify a broadcast channel mask based on broadcast subscriber data and channel masks of one or more receiver devices is presented, in accordance with embodiments. In embodiments, example tracking circuitry 500 is implemented in UE broadcast framework 100 as trackingcircuitry 106. Example tracking circuitry 500 is configured to periodically listen for one or more broadcast advertisement packets 155 from one or more receiver devices 112. In response to detecting and receiving a broadcast advertisement packet 155, example tracking circuitry 500 identifies the receiver device 112 indicated in the broadcast advertisement packet 155 (e.g., in a broadcast identification data block 215 of the broadcast advertisement packet 155) and adds data indicating the identified receiver device 112 to the broadcast subscriber list 175. Further, in response to detecting and receiving a broadcast advertisement packet 155 identifying a receiver device 112, example tracking circuitry 500 generates broadcast subscriber data 185 for the identified receiver device 112 based on the broadcast advertisement packet 155 (e.g., based on the link status data block 225 and advertisement transmission data block 245 of the broadcast advertisement packet 155). As an example, tracking circuitry 500 generates broadcast subscriber data 185 for the receiver device 112 indicating one or more PERs at certain times, average PERs over corresponding periods of time, RSSIs at certain times, average RSSIs over corresponding periods of time, or any combination thereof.
[0034] Additionally, in response to detecting and receiving a broadcast advertisement packet 155 identifying a receiver device 112, example tracking circuitry 500 is configured to determine the receiver channel mask 435 based on the broadcast advertisement packet 155 (e.g., based on the channel mask data block 235 of the broadcast advertisement packet 155). After determining respective broadcast subscriber data 185 and a respective receiver channel mask 435 for each receiver device 112 identified in a received broadcast advertisement packet 155, the broadcast subscriber list 175, or both, example tracking circuitry 500 provides at least a portion of the broadcast subscriber data 185 and the receiver channel mask 435 of the identified receiver devices 112 as inputs to a trained machine-learning model 518 implemented at least in part by example tracking circuitry 500. As an example, tracking circuitry 500 provides one or more PERs, average PERs, RSSIs, average RSSIs, and receiver channel masks 435 of the identified receiver devices 112 as inputs to the trained machine-learning model 518.
[0035] The trained machine-learning model 518, for example, includes one or more supervised models, unsupervised models, reinforcement models, neural networks(recurrent neural networks, convolutional neural networks), large language models, multimedia large language models, natural language models, deep-learning models, federated learning models, or any combination thereof configured to receive broadcast subscriber data 185 (e.g., PERs, averages PERs, RSSIs, average RSSIs) and receiver channel masks 435 of one or more receiver devices 112 as inputs and provide a new broadcast channel mask 525 as an output according to the weights and parameters of the trained machine-learning model 518. In response to receiving a portion of the broadcast subscriber data 185 and the receiver channel mask 435 of the identified receiver devices 112 as inputs, the trained machine-learning model 518 outputs a new broadcast channel mask 525 used to update the broadcast channel mask 125. This new broadcast channel mask 525, for example, indicates which isochronous channels 105 of broadcast circuitry 104 are to be used when broadcasting packets of an audio stream 115. In response to the trained machinelearning model producing the new broadcast channel mask 525, broadcast circuitry 104 begins broadcasting packets of an audio stream 115 using isochronous channels 105 as indicated by the new broadcast channel mask 525.
[0036] Referring now to FIG. 6, an example method 600 for adjusting a broadcast channel mask based on advertisement packets from one or more receiver devices is presented, in accordance with embodiments. In embodiments, example method is implemented at least in part by UE 102. For example, at block 605 of example method 600, UE 102 is configured to broadcast one or more packets of an audio stream 115 based on a broadcast channel mask 125 such that one or more packets of a broadcast audio stream 135 are receivable by one or more receiver devices 112 in a broadcast range (e.g., the distance from the UE at which packets broadcast by the UE are receivable by a receiver device). As an example, UE 102 broadcasts one or more packets of the audio stream 115 on one or more isochronous channels 105 as indicated by the broadcast channel mask 125. After broadcasting one or more packets of an audio stream 115, at block 610, UE 102 is configured to receive one or more broadcast advertisement packets 155 including respective link status data 165 for one or more receiver devices 112. As an example, in response to receiving one or more packets of a broadcast audio stream 135, a receiver device is configured to periodically broadcast an advertisement packet 145 that identifies itself as including link status data 165 that indicates the strength of the link between the receivingdevice 112 and UE 102. Further, in response to broadcasting one or more packets of an audio stream 115, UE 102 is configured to periodically listen for and receive broadcast advertisement packets 155 that identify themselves as including link status data 165.
[0037] For each received broadcast advertisement packet identifying itself as including link status data 165, at block 615, UE 102 first determines the receiver device 112 identified (e.g., by a broadcast identification block 215) in the received broadcast advertisement packet and adds data indicating the receiver device 112 to the broadcast subscriber list 175. Additionally, for each received broadcast advertisement packet 155 identifying itself as including link status data 165, UE 102 determines broadcast subscriber data 185 for the receiver device 112 identified in the received broadcast advertisement packet 155 based on the link status data 165, transmission power, or both indicated in the received broadcast advertisement packet 155. For example, UE 102 determines one or more PERs at certain times, average PERs over corresponding periods of time, RSSIs at certain times, average RSSis over corresponding periods of time, or any combination thereof based on the link status data 165, transmission power, or both indicated in the received broadcast advertisement packet 155. According to embodiments, UE 102 also, for each received broadcast advertisement packet identifying itself as including link status data 165, determines the receiver channel mask 435 for the receiver device 112 identified in the received broadcast advertisement packet 155 (e.g., based on the channel mask data block 235 of the received broadcast advertisement packet 155). After determining respective broadcast subscriber data 185 and receiver channel masks 435 for each receiver device 112 identified in the received broadcast advertisement packets 155, the broadcast subscriber list 175, or both, at block 620, UE 102 assigns a corresponding channel mask weights 475 to each receiver channel mask 435 based on at least a portion of the broadcast subscriber data 185 associated with the receiver channel mask 435 (e.g., associated with the same receiver device 112).
[0038] For example, UE 102 assigns a corresponding channel mask weight 475 to a receiver channel mask 435 based on a comparison of a respective PER (e.g., PER at a corresponding time, average PER over a corresponding period of time), RSSI (e.g., RSSI at a corresponding time, average RSSI over a corresponding period of time), orany combination thereof indicated in associated broadcast subscriber data 185 to one or more thresholds (e.g., PER threshold 455, RSSI threshold 465). Still referring to block 620, after determining a corresponding channel mask weight 475 for each receiver channel mask 435, UE 102 weighs each receiver channel mask 435 based on its assigned channel mask weight 475 to produce one or more weighted channel masks 495. UE 102 then, at block 625, modifies the broadcast channel mask 125 used to broadcast packets of the audio stream 115 based on the weighted channel masks 495. As an example, UE 102 combines two or more weighted channel masks 495, selects one or more weighted channel masks 495, or both to produce a modified broadcast channel mask 413. UE 102 then begins broadcasting packets of the audio stream on one or more isochronous channels 105 as indicated by the modified broadcast channel mask 413.
[0039] In some embodiments, certain aspects of the techniques described above may be implemented by one or more processors of a processing system executing software. The software comprises one or more sets of executable instructions stored or otherwise tangibly embodied on a non-transitory computer-readable storage medium. The software can include the instructions and certain data that, when executed by the one or more processors, manipulate the one or more processors to perform one or more aspects of the techniques described above. The non-transitory computer-readable storage medium can include, for example, a magnetic or optical disk storage device, solid-state storage devices such as Flash memory, a cache, random access memory (RAM) or another non-volatile memory device or devices, and the like. The executable instructions stored on the non-transitory computer-readable storage medium may be in source code, assembly language code, object code, or other instruction format that is interpreted or otherwise executable by one or more processors.
[0040] A computer-readable storage medium may include any storage medium, or combination of storage media, accessible by a computer system during use to provide instructions and / or data to the computer system. Such storage media can include but is not limited to, optical media (e.g., compact disc (CD), digital versatile disc (DVD), Blu-Ray disc), magnetic media (e.g., floppy disc, magnetic tape, or magnetic hard drive), volatile memory (e.g., random access memory (RAM) orcache), non-volatile memory (e g., read-only memory (ROM) or Flash memory), or microelectromechanical systems (MEMS)-based storage media. The computer-readable storage medium may be embedded in the computing system (e.g., system RAM or ROM), fixedly attached to the computing system (e.g., a magnetic hard drive), removably attached to the computing system (e.g., an optical disc or Universal Serial Bus (USB)-based Flash memory) or coupled to the computer system via a wired or wireless network (e.g., network accessible storage (NAS)).
[0041] Note that not all of the activities or elements described above in the general description are required, that a portion of a specific activity or device may not be required, and that one or more further activities may be performed, or elements included, in addition to those described. Still further, the order in which activities are listed is not necessarily the order in which they are performed. Also, the concepts have been described with reference to specific embodiments. However, one of ordinary skill in the art appreciates that various modifications and changes can be made without departing from the scope of the present disclosure as set forth in the claims below. Accordingly, the specification and figures are to be regarded in an illustrative rather than a restrictive sense, and all such modifications are intended to be included within the scope of the present disclosure.
[0042] Benefits, other advantages, and solutions to problems have been described above with regard to specific embodiments. However, the benefits, advantages, solutions to problems, and any feature(s) that may cause any benefit, advantage, or solution to occur or become more pronounced are not to be construed as a critical, required, or essential feature of any or all the claims. Moreover, the particular embodiments disclosed above are illustrative only, as the disclosed subject matter may be modified and practiced in different but equivalent manners apparent to those skilled in the art having the benefit of the teachings herein. No limitations are intended to the details of construction or design herein shown, other than as described in the claims below. It is therefore evident that the particular embodiments disclosed above may be altered or modified and all such variations are considered within the scope of the disclosed subject matter. Accordingly, the protection sought herein is as set forth in the claims below.
Claims
WHAT IS CLAIMED IS:
1. A method comprising:broadcasting, by a user equipment (UE), a first packet of an audio stream based on a broadcast channel mask;concurrently with broadcasting the audio stream, receiving, by the UE, a plurality of advertisement packets, each packet identifying respective link status data and a respective receiver channel mask for a corresponding receiver device;weighing each channel mask identified in the plurality of advertisement packets based on corresponding link status data identified in the plurality of advertisement packets to produce a plurality of weighted channel masks;modifying the broadcast channel mask based on the plurality of weighted channel masks; andbroadcasting, by the UE, a second packet of the audio stream based on the modified broadcast channel mask.
2. The method of claim 1 , wherein the UE broadcasts the packet of the audio stream on one or more isochronous channels based on the broadcast channel mask and broadcast the second packet of the audio stream on the one or more isochronous channels based on the modified broadcast channel mask.
3. The method of either claims 1 or 2, further comprising:adding data indicating each receiver device identified in the plurality of advertisement packets to a broadcast subscriber list; and for each receiver device identified in the broadcast subscriber list, generating broadcast subscriber data representing a quality of a link between the receiver device and the UE.
4. The method of any of claims 1 to 3, further comprising:for each receiver device identified in the plurality of advertisement packets, determining a respective packet error rate (PER) and received signalstrength indicator (RSSI) based on an advertisement packet of the plurality of advertisement packets identifying the receiver device.
5. The method of claim 4, further comprising:for each receiver device identified in the plurality of advertisement packets, determining a respective channel mask weight based on a comparison of the respective PER and RSSI of the receiver device to one or more thresholds.
6. The method of any of claims 1 to 5, wherein modifying the broadcast channel mask based on the plurality of weighted channel masks comprises combining two or more weighted channel masks of the plurality of weighted channel masks to produce the modified broadcast channel mask.
7. The method of any of claims 1 to 6, further comprising:in response to receiving one or more packets of the audio stream, broadcasting, by a receiver device, an advertisement packet of the plurality of advertisement packets identifying link status data and a receiver channel mask for the receiver device.
8. The method of any of claims 1 to 7, wherein each advertisement packet of the plurality of advertisement packets further includes a broadcast identifier of a corresponding receiver device.
9. A method, comprising:broadcasting, by a user equipment (LIE) one or more packets of an audio stream on one or more isochronous channels based on a broadcast channel mask;receiving, by the UE, an advertisement packet broadcast by a receiver device subscribed to the audio stream, the advertisement packet indicating a receiver channel mask for the receiver device;modifying the broadcast channel mask based on the receiver channel mask of the receiver device; andbroadcasting, by the UE, one or more additional packets of the audio stream on the one or more isochronous channels based on the modified broadcast channel mask.
10. The method of claim 9, further comprising:determining a packet error rate (PER) and a received signal strength indicator (RSSI) for the receiver device based on the advertisement packet.
11. The method of claim 10, wherein modifying the broadcast channel mask based on the receiver channel mask of the receiver device comprises: providing the PER, RSSI, and channel mask of the receiver device to a trained machine-learning model as an input, wherein the trained machinelearning model receives one or more PERs, RSSIs, and channel masks an input and provides the modified broadcast channel mask as an output.
12. The method of any of claims 9 to 11 , wherein modifying the broadcast channel mask based on the receiver channel mask of the receiver device comprises: assigning a weight to the receiver channel mask of the receiver device based on the PER and RSSI of the receiver device to produce a weighted receiver channel mask; andmodifying the broadcast channel mask based on the weighted receiver channel mask.
13. The method of any of claims 9 to 12, further comprising:in response to receiving the advertisement packet broadcast by the receiver device, adding data indicating the receiver device to a broadcast subscriber list identifying a plurality of receiver devices subscribed to the audio stream.
14. The method of any of claims 9 to 13, further comprising:in response to receiving one or more packets of the audio stream, broadcasting, by the receiver device, the advertisement packet, whereinthe advertisement packet indicates link status data for the receiver device and a transmission power.
15. The method of claim 14, wherein the link status data includes the PER of the receiver device.
16. The method of claim 14, further comprising:determining, by the UE, the RSSI based on the transmission power indicated in the advertisement packet.
17. The method of any of claims 1 to 16, wherein the UE comprises at least one of a smartphone, tablet computer, router, or hotspot.
18. The method of any of claims 1 to 17, wherein the UE broadcasts the audio stream based on a Bluetooth Low Energy communication protocol.
19. The method of any of claims 1 to 18, further comprising:in response to broadcasting at least a portion of the audio stream, periodically listening, by the UE, for one or more advertisement packets.
20. A system comprising:a user equipment (UE) including:one or more processors; anda memory coupled to the one or more processors and storing executable instructions configured to manipulate the one or more processors to perform the method of any of claims 1 to 19.