Techniques for bit rate control in wireless communications
By dynamically controlling the wake-up duration in wireless devices and adjusting the bit rate, the problem of shortening battery life in wireless communication systems is solved, and efficient battery life management and high-quality data transmission are achieved.
Patent Information
- Application Number
- CN202380065140.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-09-19
- Filing Date
- 2023-09-05
- Publication Date
- 2025-04-18
AI Technical Summary
When existing wireless communication systems support high bit rate data transmission, it is easy to shorten the battery life of wireless devices, especially when power-intensive XPAN interfaces are used.
By implementing dynamic control of wake-up duration in wireless devices, the average wake-up duration is calculated, and the bit rate of the real-time stream is adjusted according to the difference from the target wake-up duration to optimize battery life and maintain high-quality service.
Effectively extends the battery life of wireless devices, while ensuring the quality of high bit rate data transmission, avoiding the conflict between battery life and quality of service.
Smart Images

Figure CN119856476A_ABST
Abstract
Description
[0001] Cross-references
[0002] This application claims priority to U.S. patent application No. 17 / 947,653, entitled “TECHNIQUES FOR BITRATE CONTROL IN WIRELESS COMMUNICATIONS,” filed by Patra et al. on September 19, 2022, which is assigned to the assignee of this application and is expressly incorporated herein by reference. Background Art
[0003] The following relates to wireless communications, including techniques for bit rate control in wireless communications.
[0004] Wireless communication systems are widely deployed to provide various types of communication content, such as voice, video, packet data, messaging, broadcast, etc. These systems can be multiple access systems capable of supporting communication with multiple users by sharing available system resources (e.g., time, frequency, and power). A wireless network (e.g., a WLAN, such as a Wi-Fi (e.g., an Institute of Electrical and Electronics Engineers (IEEE) 802.11) network) may include an access point (AP) that can communicate with one or more stations (STAs) or mobile devices. An AP can be coupled to a network such as the Internet and can enable mobile devices to communicate via the network (or communicate with other devices coupled to the access point). A wireless device can communicate bidirectionally with a network device. For example, in a WLAN, a STA can communicate with an associated AP via a downlink (DL) and an uplink (UL). A DL (or forward link) may refer to a communication link from an AP to a station, and a UL (or reverse link) may refer to a communication link from a station to an AP.
[0005] In some wireless communication systems, such as in a Wi-Fi network, a wireless device may be operable to send data at a relatively high rate (e.g., 192 Kbps). In some examples, an extended personal area network (XPAN) interface may be implemented directly between a wireless device (such as a STA) and a peripheral device (e.g., a headset, a virtual reality headset, a sensor, etc.) in a peer-to-peer (P2P) flow. However, supporting the XPAN interface may be power intensive for the wireless device and may adversely affect the battery life of the wireless device (e.g., the operable duration between recharges). Summary of the invention
[0006] The described techniques relate to improved methods, systems, devices, or apparatuses that support techniques for bit rate control in wireless communications. In general, the described techniques provide for determining a wake-up duration of a wireless device (such as a STA or a peripheral device) within an interval, and comparing the wake-up duration to an average wake-up duration of one or more previous intervals. For example, the wireless device may calculate a moving average of one or more previous wake-up durations, and may modify the bit rate for subsequent communications based on a difference between the average wake-up duration and a target wake-up duration. Additionally or alternatively, the wireless device may identify a burst mode, a scheduling mode, or both associated with one or more APs during the wake-up duration to determine inefficient use of the wake-up duration. That is, the wireless device may identify underutilized bursts (e.g., bursts having a relatively short length), and may adjust the bit rate to meet a target wake-up duration (e.g., reduce the wake-up duration).
[0007] A method for wireless communication is described. The method may include determining an average wake-up duration of a wireless device within a time window based on one or more wake-up durations of the wireless device over one or more previous time windows, modifying a bit rate of a real-time stream at the wireless device based on the average wake-up duration and a threshold time period, and transmitting the real-time stream according to the modified bit rate.
[0008] An apparatus for wireless communication is described. The apparatus may include a processor, a memory coupled to the processor, and instructions stored in the memory. The instructions are executable by the processor to cause the apparatus to determine an average wake-up duration of a wireless device within a time window based on one or more wake-up durations of the wireless device over one or more previous time windows, modify a bit rate of a real-time stream at the wireless device based on the average wake-up duration and a threshold time period, and transmit the real-time stream according to the modified bit rate.
[0009] Another apparatus for wireless communication is described. The apparatus may include means for determining an average wake-up duration of a wireless device within a time window based on one or more wake-up durations of the wireless device over one or more previous time windows, means for modifying a bit rate of a real-time stream at the wireless device based on the average wake-up duration and a threshold time period, and means for transmitting the real-time stream according to the modified bit rate.
[0010] A non-transitory computer-readable medium storing code for wireless communication is described. The code may include instructions executable by a processor to: determine, within a time window, an average wake-up duration of a wireless device based on one or more wake-up durations of the wireless device over one or more previous time windows, modify a bit rate of a real-time stream at the wireless device based on the average wake-up duration and a threshold time period, and transmit the real-time stream according to the modified bit rate.
[0011] Some examples of the methods, apparatus, and non-transitory computer-readable media described herein may also include operations, features, components, or instructions for determining a target wake-up duration for the real-time stream, and comparing the average wake-up duration to the target wake-up duration, wherein modifying the bit rate of the real-time stream may be based on the comparison.
[0012] Some examples of the methods, apparatus, and non-transitory computer-readable media described herein may also include operations, features, components, or instructions for determining that the average wake-up duration may be shorter than the target wake-up duration, wherein modifying the bit rate of the real-time stream includes increasing the bit rate of the real-time stream.
[0013] Some examples of the methods, apparatus, and non-transitory computer-readable media described herein may also include operations, features, components, or instructions for determining that the average wake-up duration may be longer than the target wake-up duration, wherein modifying the bitrate of the real-time stream includes reducing the bitrate of the real-time stream.
[0014] In some examples of the methods, apparatus, and non-transitory computer-readable media described herein, the target wake-up duration can be based on a latency threshold for the real-time stream, a quality threshold for the real-time stream, a power budget for the wireless device, or any combination thereof.
[0015] Some examples of the methods, apparatuses, and non-transitory computer-readable media described herein may also include operations, features, components, or instructions for: Modifying the bit rate of the real-time stream may be based on a congestion level of a channel associated with the real-time stream.
[0016] In some examples of methods, apparatus, and non-transitory computer-readable media described herein, determining the average wake-time service period utilization duration may include operations, features, components, or instructions for determining a moving average of the number of the one or more previous wake-up durations.
[0017] In some examples of the methods, apparatus, and non-transitory computer-readable media described herein, determining the average wake-up time service period utilization duration may include operations, features, components, or instructions for determining an average duration for a first recipient device associated with the real-time stream, and determining an average wake-up duration for a second recipient device associated with the real-time stream.
[0018] Some examples of the methods, apparatus, and non-transitory computer-readable media described herein may also include operations, features, components, or instructions for: inputting one or more parameters associated with a first recipient device into an encoder associated with the wireless device, and inputting one or more parameters associated with a second recipient device into an encoder associated with the wireless device, wherein modifying the bit rate of the real-time stream can be based on inputting one or more parameters associated with the first recipient device and one or more parameters associated with the second recipient device into the encoder.
[0019] In some examples of the methods, apparatus, and non-transitory computer-readable media described herein, the one or more parameters include supported bit rates, access time, a received signal strength indicator, the average wake-up duration, a number of attempts to reestablish connection with the wireless device, a number of discarded packets, or any combination thereof.
[0020] Some examples of the methods, apparatus, and non-transitory computer-readable media described herein may also include operations, features, components, or instructions for determining a start time of the wake-up duration for the second recipient device, wherein the start time may be offset from a target wake-up duration.
[0021] In some examples of the methods, apparatus, and non-transitory computer-readable media described herein, the first recipient device includes a left earphone and the second recipient device includes a right earphone.
[0022] In some examples of the methods, apparatus, and non-transitory computer-readable media described herein, a wireless device may connect to a home access point in a home network or a set of access points in a mesh home network.
[0023] In some examples of the methods, apparatus, and non-transitory computer-readable media described herein, the real-time stream includes an audio stream, a video stream, a phone call, haptic feedback, or any combination thereof.
[0024] A method for wireless communication at a first wireless device is described. The method may include receiving a set of multiple data bursts from a second wireless device in an awake duration and according to a scheduling pattern, wherein each data burst in the set of multiple data bursts includes a set of data packets, determining the scheduling pattern of the second wireless device based on receiving the set of multiple data bursts, and reducing the awake duration of the first wireless device based on modifying a bit rate of the first wireless device and the scheduling pattern of the second wireless device.
[0025] An apparatus for wireless communication at a first wireless device is described. The apparatus may include a processor, a memory coupled to the processor, and instructions stored in the memory. The instructions are executable by the processor to cause the apparatus to receive a set of multiple data bursts from a second wireless device during a wake-up duration and according to a scheduling pattern, wherein each data burst in the set of multiple data bursts includes a set of data packets, determine the scheduling pattern of the second wireless device based on receiving the set of multiple data bursts, and reduce the wake-up duration of the first wireless device based on modifying a bit rate of the first wireless device and the scheduling pattern of the second wireless device.
[0026] Another apparatus for wireless communication at a first wireless device is described. The apparatus may include means for receiving a set of a plurality of data bursts from a second wireless device in an awake duration and according to a scheduling pattern, wherein each data burst in the set of a plurality of data bursts includes a set of data packets, means for determining the scheduling pattern of the second wireless device based on receiving the set of a plurality of data bursts, and means for reducing the awake duration of the first wireless device based on modifying a bit rate of the first wireless device and the scheduling pattern of the second wireless device.
[0027] A non-transitory computer-readable medium storing code for wireless communication at a first wireless device is described. The code may include instructions executable by a processor to: receive a set of multiple data bursts from a second wireless device in an awake duration and according to a scheduling pattern, wherein each data burst in the set of multiple data bursts includes a set of data packets, determine the scheduling pattern of the second wireless device based on receiving the set of multiple data bursts, and reduce the awake duration of the first wireless device based on modifying a bit rate of the first wireless device and the scheduling pattern of the second wireless device.
[0028] Some examples of the methods, apparatus, and non-transitory computer-readable media described herein may also include operations, features, components, or instructions for determining an average burst length of the set of the multiple data bursts in the wake-up duration, wherein determining the scheduling mode may be based on determining the average burst length.
[0029] Some examples of the methods, apparatus, and non-transitory computer-readable media described herein may also include operations, features, components, or instructions for determining a first power usage value associated with receiving each data burst in the set of multiple data bursts, and determining a second power usage value associated with avoiding receiving a last data burst in the set of multiple data bursts, wherein reducing the wake-up duration of the first wireless device can be based on determining the first power usage value and the second power usage value.
[0030] Some examples of the methods, apparatus, and non-transitory computer-readable media described herein may also include operations, features, components, or instructions for excluding a last data burst in a set of multiple data bursts in a wake-up duration based on a scheduling pattern, wherein determining an average burst length of the set of multiple data bursts includes determining an average burst length of a remaining number of data bursts in the set of multiple data bursts in the wake-up duration.
[0031] Some examples of the methods, apparatus, and non-transitory computer-readable media described herein may also include operations, features, components, or instructions for determining an average burst length of a last data burst in a set of multiple previous wake-up durations, wherein excluding a last data burst in a set of multiple data bursts in a wake-up duration may be based on the average burst length.
[0032] Some examples of the methods, apparatus, and non-transitory computer-readable media described herein may also include operations, features, components, or instructions for: Reducing the wake-up duration of the first wireless device may be based on an average burst length of the last burst being shorter than an average burst length of a remaining number of data bursts.
[0033] Some examples of the methods, apparatuses, and non-transitory computer-readable media described herein may also include operations, features, components, or instructions for: Reducing the wake-up duration of the first wireless device may be based on a threshold quality loss for the first wireless device.
[0034] Some examples of the methods, apparatuses, and non-transitory computer-readable media described herein may also include operations, features, components, or instructions for determining a maximum burst size, wherein reducing the wake-up duration of the first wireless device may be based on the maximum burst size.
[0035] Some examples of the methods, apparatus, and non-transitory computer-readable media described herein may also include operations, features, components, or instructions for receiving an indication of a modified bit rate of the first wireless device from at least one peripheral device, wherein the modified bit rate may be based on a set of the plurality of data bursts, and wherein reducing the wake-up duration of the first wireless device may be based on receiving the indication of the modified bit rate. BRIEF DESCRIPTION OF THE DRAWINGS
[0036] Figure 1 An example of a wireless communication system supporting techniques for bit rate control in wireless communications in accordance with aspects of the present disclosure is shown.
[0037] Figure 2A and Figure 2B An example of a wireless communication system supporting techniques for bit rate control in wireless communications in accordance with one or more aspects of the present disclosure is shown.
[0038] Figure 3 An example of a timing diagram supporting techniques for bit rate control in wireless communications in accordance with one or more aspects of the present disclosure is shown.
[0039] Figure 4 An example of a system diagram supporting techniques for bit rate control in wireless communications in accordance with one or more aspects of the present disclosure is shown.
[0040] Figure 5 An example of a timing diagram supporting techniques for bit rate control in wireless communications in accordance with one or more aspects of the present disclosure is shown.
[0041] Figure 6 An example of a process flow supporting techniques for bit rate control in wireless communications in accordance with one or more aspects of the present disclosure is shown.
[0042] Figure 7 An example of a process flow supporting techniques for bit rate control in wireless communications in accordance with one or more aspects of the present disclosure is shown.
[0043] Figure 8 and Fig. 9 A block diagram of a device supporting techniques for bit rate control in wireless communications in accordance with one or more aspects of the present disclosure is shown.
[0044] Fig.10 A block diagram of a communication manager supporting techniques for bit rate control in wireless communications is shown in accordance with one or more aspects of the present disclosure.
[0045] Fig.11A diagram of a system including devices supporting techniques for bit rate control in wireless communications is shown in accordance with one or more aspects of the present disclosure.
[0046] Figures 12 to 15 A flow chart illustrating a method of supporting techniques for bit rate control in wireless communications in accordance with one or more aspects of the present disclosure is shown. DETAILED DESCRIPTION
[0047] In some wireless communication systems (such as Wi-Fi networks), wireless devices may be operable to send data at a relatively high rate (e.g., 192 Kbps). For example, a wireless device may utilize an extended personal area network (XPAN) interface to communicate with one or more other wireless devices at a faster rate (e.g., to achieve lossless real-time streaming). The XPAN interface may support a computer network that connects computers or devices within an extended range. In some examples, the XPAN interface may be implemented directly between a wireless device (e.g., a station (STA), a mobile device, a client device, a soft access point (AP), a group peer-to-peer (P2P) owner, etc.) and a peripheral device (e.g., a headset, a virtual reality headset, a sensor, etc.) in a P2P stream. Additionally or alternatively, the XPAN interface may be implemented by an AP, which may stream data to a STA and peripheral devices. By utilizing the XPAN interface, a wireless device may provide an enhanced user experience (by enabling a user to move or increasing the operable range of movement for a home or office scenario) compared to other interfaces (e.g., Bluetooth). In some examples, use of the XPAN interface may cause adverse effects associated with the battery life of the wireless device (e.g., the operable duration between recharges). For example, communicating in a congested channel (e.g., a relatively large number of wireless devices using channel resources), switching from a first home network (e.g., a mesh network) to a second home network, or both, while maintaining a relatively high quality of service (QoS) provided by the XPAN interface (e.g., lossless streaming) may be associated with (e.g., limiting or reducing) the battery life of the wireless device.
[0048] In order to support power saving of the wireless device, such as by extending battery life, the wireless device may mitigate or reduce the duration corresponding to the active (e.g., turned-on) state of the wireless device. That is, the wireless device may periodically wake up (e.g., become active) within a portion of the interval. Additionally or alternatively, the wireless device may determine a target wake-up duration within the interval (e.g., a target wake-up duration that supports power saving). In some examples, the target wake-up duration of the interval (e.g., an 802.11ax target wake-up time (TWT) service period of a service interval or a wake-up duration of an interval implemented using any power saving protocol) may correspond to an active duration for a peripheral device (such as an audio device connected to the wireless device). The wireless device may compare the target wake-up duration with the average wake-up duration of one or more previous intervals. For example, the wireless device may calculate a moving average of one or more previous wake-up durations, and may modify the bit rate for subsequent communications based on the difference between the average wake-up duration and the target wake-up duration. Additionally or alternatively, the wireless device may identify a burst mode, a scheduling mode, or both of one or more APs (e.g., a single AP, a set of APs in a mesh network) to determine inefficient use of power within the wake-up duration of the interval. In some instances, the wireless device can identify underutilized bursts (eg, bursts having relatively short lengths) and can adjust the bit rate to meet the target wakeup duration or reduce the wakeup duration (eg, not including the underutilized bursts).
[0049] Aspects of the present disclosure are initially described in the context of wireless communication systems. Aspects of the present disclosure are further illustrated and described with reference to timing diagrams, system diagrams, and process flows. Aspects of the present disclosure are further illustrated and described with reference to apparatus diagrams, system diagrams, and flow charts related to techniques for bit rate control in wireless communications.
[0050] Figure 1A wireless local area network (WLAN) 100 (also referred to as a Wi-Fi network) configured according to various aspects of the present disclosure is shown. The WLAN 100 may include an AP 105 and a plurality of associated STAs 115, which may represent devices such as mobile stations, personal digital assistants (PDAs), other handheld devices, netbooks, notebook computers, tablet computers, laptop computers, display devices (e.g., TVs, computer monitors, etc.), printers, etc. The AP 105 and associated stations 115 may represent a BSS or ESS. The various STAs 115 in the network are able to communicate with each other through the AP 105. Also shown is a coverage area 110 of the AP 105, which may represent a BSS of the WLAN 100. An extended network station (not shown) associated with the WLAN 100 may be connected to a wired or wireless distribution system, which may allow multiple APs 105 to be connected in an ESS.
[0051] Although not in Figure 1 105 , but a STA 115 may be located at the intersection of more than one coverage area 110 and may be associated with more than one AP 105. A collection of a single AP 105 and associated STAs 115 may be referred to as a BSS. An ESS is a collection of connected BSSs. A distribution system (not shown) may be used to connect the APs 105 in an ESS. In some cases, the coverage area 110 of an AP 105 may be divided into sectors (also not shown). The WLAN 100 may include different types of APs 105 (e.g., metropolitan area networks, home networks, etc.) with varying and overlapping coverage areas 110. Two STAs 115 may also communicate directly via a direct wireless link 125, regardless of whether the two STAs 115 are in the same coverage area 110. Examples of direct wireless links 120 may include Wi-Fi direct connections, Wi-Fi tunnel direct link establishment (TDLS) links, and other group connections. The STA 115 and the AP 105 may communicate according to WLAN radio and baseband protocols for the physical layer and the MAC layer from IEEE 802.11 and versions including but not limited to 802.11b, 802.11g, 802.11a, 802.11n, 802.11ac, 802.11ad, 802.11ah, 802.11ax, 802.11ay, 802.11ba, 802.11be, etc. In other implementations, a peer-to-peer connection or an ad hoc network may be implemented within the WLAN 100.
[0052] In some cases, a STA 115 (or AP 105) may be detected by the central AP 105, but not by other STAs 115 in the coverage area 110 of the central AP 105. For example, one STA 115 may be at one end of the coverage area 110 of the central AP 105, while another STA 115 may be at the other end. Therefore, two STAs 115 may communicate with the AP 105, but may not receive the transmission of the other STA 115. This may result in conflicting transmissions of the two STAs 115 in a contention-based environment (e.g., CSMA / CA) because the STAs 115 may not avoid transmitting over each other. A STA 115 whose transmission is not identifiable but within the same coverage area 110 may be referred to as a hidden node. CSMA / CA may be supplemented by exchanging an RTS packet sent by a transmitting STA 115 (or AP 105) and a CTS packet sent by a receiving STA 115 (or AP 105). This can alert other devices within range of the sender and receiver that they are not transmitting for the duration of the primary transmission. RTS / CTS can therefore help mitigate the hidden node problem.
[0053] In some examples, a wireless device (e.g., STA 115 or other wireless device) may determine a target wake-up duration within a given interval (e.g., to support power conservation). For example, the wireless device may determine the duration that a peripheral device remains active for communication within the interval. In some examples, the target wake-up duration may correspond to a target turn-on time for a peripheral device within the interval. The wireless device may then compare the target wake-up duration with the average wake-up duration of one or more previous intervals. For example, the wireless device may calculate a moving average of one or more previous wake-up durations, and may reduce the bit rate for subsequent communications (e.g., real-time streaming) based on the average wake-up duration exceeding the target wake-up duration. In some other cases, the wireless device may identify a burst mode, a scheduling mode, or both of one or more second wireless devices (e.g., a home AP 105 in a home network, a collection of APs 105 in a mesh home network) within the wake-up duration to determine inefficient use of power. That is, the wireless device may identify underutilized bursts (e.g., bursts with a relatively short length) within the wake-up duration, and may adjust the bit rate to meet the target wake-up duration (e.g., excluding underutilized bursts from the wake-up duration).
[0054] Figure 2A and Figure 2BAn example of wireless communication systems 201 and 202 that support techniques for bit rate control in wireless communications according to one or more aspects of the present disclosure is shown. The wireless communication systems 201 and 202 may implement aspects of the wireless communication system 100. For example, the wireless communication systems 201 and 202 may be implemented by the AP 105-a and the STA 115-a, which may be as described with reference to FIG. Figure 1 An example of an AP 105 and a STA 115 is described. In some cases, the AP 105-a and the STA 115-a can communicate via a communication link 210 (e.g., communication link 210-a and communication link 210-b), the STA 115-a and the peripheral device 205 can communicate via a communication link 215, and the AP 105-a and the peripheral device 205 can communicate via a communication link 220.
[0055] Wireless communication systems 201 and 202 may support real-time streaming (eg, direct P2P streaming) between devices via an XPAN interface. Figure 2A As shown, the wireless communication system 201 can be an example of a directional network topology (e.g., a public network) that can support real-time streaming (e.g., audio streaming, video streaming, phone calls, tactile feedback, etc.) between the STA 115-a and the peripheral device 205 (e.g., a headset set). That is, the STA 115-a can receive data from the AP 105-a via the communication link 210-a (e.g., a 5GHz 35Mbps communication link), and then can stream the data to the peripheral device 205 via the communication link 215. Additionally or alternatively, Figure 2B The illustrated wireless communication system 202 may be an example of a home network topology (eg, a private network) that may support real-time streaming between an AP 105 - a and a peripheral device 205 via a communication link 220 (eg, a Wi-Fi link).
[0056] In some examples, lossless streaming (e.g., 192Kbps 24-bit streaming) can be realized via XPAN interface streaming data. For example, XPAN interface can support communication with relatively more available bandwidth (e.g., compared with Bluetooth Classic system or Bluetooth low energy system), and Wi-Fi link (e.g., with relatively higher bandwidth) can be utilized to communicate via data burst (e.g., 100ms burst). However, using XPAN interface to carry out real-time streaming may cause the change of battery life of the equipment being communicated. For example, peripheral device 205 can be an example of equipment (e.g., audio headset) with relatively low battery capacity, and may experience reduced or limited battery life due to receiving data via XPAN interface. In addition, communicating via congested channel, switching between each home network topology (e.g., mesh network) or both may affect (e.g., reduce or limit) the battery life of peripheral device 205.
[0057] By implementing the techniques described herein, a wireless device (e.g., STA 115-a or AP 105-a) may be operable to improve (e.g., maintain or enhance) the battery life of the wireless device, the device receiving the real-time stream (e.g., peripheral device 205), or both, while maintaining the QoS associated with the XPAN interface (e.g., lossless). For example, the wireless device (e.g., STA 115-a) may modify the bit rate of the real-time stream sent to the peripheral device 205, which may support consistent battery life for the peripheral device 205. Additionally or alternatively, the wireless device (e.g., peripheral device 205) may receive one or more data burst sets from one or more second wireless devices (e.g., AP 105-a, a set of APs 105) during one or more intervals (e.g., 100 ms), and may determine a scheduling mode for the one or more second wireless devices. That is, the peripheral device 205 may identify inefficient use of resources (e.g., talk time) based on the scheduling mode, and may modify (e.g., terminate, reduce the bit rate, or both) communications with the AP 105-a accordingly. Additionally or alternatively, the peripheral device 205 may indicate inefficient resource usage to a connected wireless device (eg, an encoder sent to the STA 115 - a ).
[0058] Figure 3 An example of a timing diagram 300 that supports techniques for bit rate control in wireless communications according to one or more aspects of the present disclosure is shown. In some cases, the timing diagram 300 can be implemented by aspects of wireless communication systems 201 and 202, such as with reference to Figure 2A and Figure 2BFor example, timing diagram 300 may illustrate a beacon interval 305 (e.g., a TWT service period, a power saving protocol interval, etc.) during which an AP 105 (e.g., AP 105-a) may perform operations according to timeline 310-a and a wireless device (e.g., STA 115-a) may perform operations according to timeline 310-b. In some examples, the wireless devices may perform operations at different times than shown in timing diagram 300, or may be aligned differently.
[0059] In some examples, the AP 105 (e.g., operating according to the timeline 310-a) may initiate a beacon interval 305 by sending a beacon or a broadcast or multicast signal 315, and may subsequently broadcast a wake-up schedule during a broadcast interval 320. That is, the AP 105 may schedule one or more STAs 115 or other wireless devices using a time period or set of time periods during which a corresponding set of wireless devices (e.g., ten STAs 115) will wake up to exchange frames with other wireless devices. During responder power management (PM) 325, the AP 105 may wake up wireless devices (e.g., STAs 115 or other wireless devices) scheduled before wireless devices operating according to the timeline 310-b. In some cases, the AP 105 may initiate an N time unit wake-up interval 330 during which wireless devices operating according to the timeline 310-b will exchange data 385 with the AP 105. That is, the AP 105 may configure the wireless device to wake up for N time units (e.g., N milliseconds) to perform communications. The N time unit wake-up interval 330 may include a data portion 335 and a no downlink (DL) portion 340, which may represent a first portion of the N time unit wake-up interval 330 for data communications and a second portion of the N time unit wake-up interval 330 without data communications, respectively. In some cases, during the responder PM duration 345, the AP 105 may communicate with one or more other sets of wireless devices scheduled after the wireless device operating according to the timeline 310-b (e.g., in one or more subsequent wake-up interval durations). In some examples, the AP 105 may be a soft AP 105, which may run on a client device (e.g., a mobile phone).
[0060] In some examples, a wireless device (e.g., a STA 115 or other wireless device) may perform operations according to timeline 310-b concurrently with the AP 105 performing operations according to timeline 310-a. For example, the wireless device may be activated during a wake-up duration 350, which may be aligned with a beacon or broadcast or multicast signal 315 transmitted by the AP 105. The wireless device may then be deactivated during a sleep duration 355, which may correspond to a broadcast interval 320 and a responder PM 325 (e.g., activating other STAs 115) performed by the AP 105. In some cases, the wireless device may be activated during a wake-up interval 360, which may be an example of an N-time unit wake-up interval 330 scheduled by the AP 105. The wireless device may exchange data 385 with the AP 105 during the wake-up duration 365, and may subsequently receive an end of service period (EOSP) message 370 from the AP 105 terminating the wake-up interval 360. In some examples (such as when operating according to the 802.11ax TWT protocol), the wireless device may calculate an average wake-up duration utilization during the averaging duration 375 (e.g., the portion of the wake-up duration during which data is transmitted). That is, the wireless device may use one or more previous wake-up durations 365 (e.g., from the corresponding previous beacon interval 305) and the length of the corresponding wake-up interval 360 to calculate an average (e.g., a moving average) wake-up duration utilization. In some cases, the average wake-up duration utilization may be different from the negotiated wake-up interval duration. For example, the AP 105 may configure the wake-up interval to be N time units (e.g., 10 ms), and the wireless device may determine that the average wake-up duration utilization is less than N time units (e.g., 7 ms). In such an example, the wireless device may wake up (e.g., remain active) throughout the wake-up interval 360, despite not transmitting data during a portion of the wake-up interval 360, which may increase power consumption at the wireless device. After the averaging duration 375, the wireless device may be deactivated for the remainder of the beacon interval 305 (e.g., while the AP 105 performs one or more remaining wake-up intervals).
[0061] In some cases, a wireless device (e.g., STA 115 or other wireless device) may modify the bit rate of a real-time stream (e.g., sent to a peripheral device) based on calculating an average wake-up duration utilization. The wireless device may adjust the bit rate of the real-time stream to support a consistent wake-up (e.g., turn-on) duration for transmitting data packets. That is, the bit rate of the real-time stream may be associated with the wake-up duration (e.g., within a burst interval) for maintaining lossless streaming. For example, a real-time stream sampled at 96kHz may support a bit rate of 2Mbps, which may correspond to a data payload of 25KB within a burst interval of 100ms. In some cases, the wireless device may identify a modulation and coding scheme (MCS) level for the real-time stream, which may be associated with the condition of the wireless channel for the real-time stream. The MCS level may correspond to the time taken for the receiving device to successfully receive a data payload (e.g., 25KB) that satisfies lossless streaming. For example, a higher MCS level may support communication in a congested channel (e.g., a higher number of devices sending data in less time). Thus, by modifying the bit rate of the audio stream (and therefore modifying the data payload of the burst interval), the wireless device can modify (e.g., reduce or extend) the wake-up duration of a peripheral device (e.g., a device receiving the real-time stream) while maintaining the same MCS level based on the wireless channel.
[0062] In order to support consistent wake-up duration and battery life for peripheral devices, the wireless device may determine a target wake-up duration for transmission of a real-time stream. In some examples, the wireless device may determine a target wake-up duration within an interval (e.g., wake-up interval 360) based on a latency threshold for the real-time stream, a quality threshold for the real-time stream, a power budget for the wireless device, or any combination thereof. For example, the wireless device may determine a target wake-up duration that supports high-speed communication (e.g., reduced latency), supports lossless streaming (e.g., improved quality), or both. Additionally or alternatively, the wireless device may determine a target wake-up duration that supports relatively low power consumption at the wireless device and at the peripheral device. In some examples, the target wake-up duration may correspond to a sampling rate of the real-time stream. For example, a 96kHz sampling rate or a 48kHz sampling rate may correspond to a first target wake-up duration (e.g., a 10ms wake-up duration or a wake-up duration less than 10ms), and a 192kHz sampling rate may correspond to a second target wake-up duration (e.g., a 22ms wake-up duration). In some cases, the second target wake-up duration may support lossless streaming at a high sampling rate in a wireless channel with relatively low congestion (e.g., used by a small number of communication devices).
[0063] In some examples, the wireless device can determine a difference between an average wake-up duration within an interval (e.g., wake-up interval 360) and a target wake-up duration, and can modify the bit rate of the real-time stream based on the difference. For example, the wireless device can determine that the average wake-up duration is shorter than the target wake-up duration, and can increase the bit rate of the real-time stream (e.g., increase the average wake-up duration). Alternatively, the wireless device can determine that the average wake-up duration is longer than the target wake-up duration (e.g., due to high channel congestion), and can reduce the bit rate of the real-time stream (e.g., reduce the average wake-up duration). By adjusting the average wake-up duration (e.g., to be closer to the target wake-up duration), the wireless device and peripheral devices can consume less power while maintaining a high QoS for the real-time stream.
[0064] Figure 4 An example of a system diagram 400 supporting techniques for bit rate control in wireless communications according to one or more aspects of the present disclosure is shown. The system diagram 400 may include the following: Figure 3 For example, the system diagram 400 may include an encoder 405, a Wi-Fi system on chip (SoC) 410, and a connection agent 415, each of which may be a component of a wireless device (e.g., STA 115) that calculates the average wake-up duration, as described with reference to Figure 3 In some examples, encoder 405 can implement a codec for generating a bit rate for a real-time stream.
[0065] The components of the system diagram 400 may input data, output data, or both to support bit rate modification of a real-time stream at a wireless device, among other operations. For example, an encoder 405 implementing a codec may receive a data set 420-a for a first receiver device associated with a real-time stream and a data set 420-b for a second receiver device associated with the real-time stream from a Wi-Fi SoC 410. In some cases, the data set 420 may indicate environmental changes perceived by the respective receiver devices (e.g., location changes between the wireless device and the receiver device), such as a transmission data rate 425, an access time 430, a received signal strength indicator (RSSI) 435, an average wake-up duration 440, a number of retried connections, or a number of dropped packets 445, or any combination thereof. Additionally or alternatively, the encoder 405 may receive one or more system parameters associated with a wireless link for the real-time stream, which may include an auxiliary listening system (ALS) 450, a wake-up interval window synchronization 455, a sink bit rate feedback 460, an operating band 465, a topology mode 470, a burst interval 475, or any combination thereof. In some examples, encoder 405 may output data indication 480 to connection agent 415 , which may include the encoded data, the adjusted data, and the number of audio frame samples.
[0066] In some examples, the wireless devices associated with system diagram 400 may be configured to communicate with one another based on the reference Figure 3The technology described above can be used to modify the bit rate of the real-time stream. That is, the wireless device can determine the average wake-up duration of the real-time stream, and can modify the bit rate of the real-time stream according to the difference between the average wake-up duration and the target wake-up duration (e.g., to improve battery life, maintain lossless streaming, or both). In some cases, when determining the average wake-up duration, the wireless device can consider the average wake-up duration of one or more recipient devices associated with the real-time stream. For example, if the wireless device is sending a real-time stream to a set of audio earbuds, the encoder 405 can receive a data set 420-a associated with the left earphone (e.g., a first recipient device), and can receive a data set 420-b associated with the right earphone (e.g., a second recipient device). In some such examples, the data set 420 may include parameters associated with the corresponding recipient device, which can support the modification of the bit rate of the real-time stream. For example, the encoder 405 can receive a transmission data rate 425 for each recipient device, which can indicate the bit rate supported by the corresponding recipient device. Additionally, the encoder may receive access time 430 (e.g., 99% (P99) latency percentage), RSSI 435 (e.g., quality of a wireless link between a wireless device and a receiver device), and number of retry connections or number of dropped packets 445, each of which may indicate a dynamic change to the environment as perceived by the receiver device. In some examples, encoder 405 may receive an average wake-up duration 440 for each respective receiver device, which may support precise bit rate modifications over time. That is, access time 430, RSSI 435, and number of retry connections or number of dropped packets 445 may support reactive (e.g., corrective) changes to the bit rate of a real-time stream (e.g., due to changes in the environment), while average wake-up duration 440 may support long-term optimization of the bit rate of the real-time stream (e.g., due to a larger number of samples used for the average).
[0067] In some examples, the encoder 405 can modify the bit rate of the real-time stream based on one or more system parameters associated with the wireless link for the real-time stream. For example, the encoder 405 can receive ALS 450 data (e.g., to support output audio enhancement), wake-up interval synchronization 455 (e.g., to align the wake-up duration with the wake-up interval scheduled by the AP 105), sink bit rate feedback 460, operating band 465 (e.g., 5 GHz band or 2.4 GHz band), topology or mode 470 (e.g., home network, mesh home network, etc.), burst interval 475 (e.g., 100 ms burst interval), or any combination thereof. The encoder 405 can use one or more of the received parameters (e.g., parameters associated with the wireless link, parameters associated with one or more recipient devices, or both) to determine the bit rate modification for the real-time stream, and can send a data indication 480 to the connection agent 415. That is, the encoder 405 can indicate the number of samples of the encoded data (e.g., according to the modified bit rate), the adjusted data, and the audio frame to the connection agent 415. In some examples, after receiving the data indication 480, the connection agent 415 can calculate the data relative to the timing synchronization function (TSF) of the wireless channel. The real-time stream can then be sent to one or more recipient devices. In some examples, such as a mono type stream, the first recipient device and the second recipient device can receive the data according to an offset. For example, the first recipient device can receive the real-time stream at a first time, and the second recipient device can receive the real-time stream at a second time that is offset from the first time by the target wake-up duration.
[0068] Figure 5 An example of a timing diagram 500 that supports techniques for bit rate control in wireless communications according to one or more aspects of the present disclosure is shown. The timing diagram 500 may be represented by reference to Figure 2A and Figure 2B The timing diagram 500 may be implemented by various aspects of the wireless communication systems 201 and 202 described herein. For example, the timing diagram 500 may be implemented by a wireless device (e.g., STA 115 or other wireless device) communicating with a second wireless device (e.g., AP 105 via communication link 210), as described with reference to FIG. Figure 2A and Figure 2BIn some examples, the timing diagram 500 may illustrate a wake-up duration 505, which may be an example of a duration that a wireless device (and peripheral devices) is active (e.g., to communicate data with the AP 105 and other wireless devices). In some examples, the wake-up duration 505 may be a wake-up duration for an 802.11ax TWT service period of a service interval or an interval in a power saving protocol. In some examples, the wake-up duration 505 may be configured to support a target battery life of a receiving device (e.g., STA 115, peripheral receiving device).
[0069] During the wake-up duration 505, the wireless device may receive burst 510-a, burst 510-b, and burst 510-c, each of which may be an example of a data packet sent within a short interframe space (SIFS) duration. That is, due to regulatory or fair airtime constraints (e.g., established by a network, a government entity, etc.), the AP 105 may divide the data for the wireless device into one or more bursts. For example, to support communication with multiple wireless devices (e.g., STA 115 or other wireless devices), the AP 105 may communicate with the wireless device during burst 510, and may communicate with one or more different wireless devices during one or more contention periods 515 (e.g., intervals between data bursts). However, as the number of devices connected to the AP 105 (e.g., a home AP 105 or a set of APs 105 in a mesh network) increases, the airtime allocated for the data burst may be limited. For example, the AP 105 may send a data burst of a first duration (e.g., a 10ms burst) in an idle channel, and may send a data burst of a second duration (e.g., a burst of less than 10ms) in a congested channel. Thus, the bit rate of the data bursts may be modified so that data is successfully transmitted in one or more data bursts within the wake-up duration 505 (eg, to maintain a target battery life).
[0070] Additionally or alternatively, the wireless device may determine a scheduling pattern of the AP 105 to support modifying (e.g., reducing) the wake-up duration 505. That is, the wireless device may use one or more previous wake-up durations 505 to model a pattern of bursts 510 and contention periods 515, and may use the pattern to identify one or more underutilized bursts 510 (e.g., a burst 510 with relatively less data at the end of the wake-up duration 505). For example, the wireless device may determine based on the scheduling pattern of the AP 105 that the last burst 510-c includes less data than the previous data bursts 510 (e.g., bursts 510-a and bursts 510-b). In some examples, the wireless device may reduce a codec bit rate for receiving data based on determining the underutilized bursts 510-c to reduce the length of the wake-up duration 505. For example, the wireless device may reduce the codec bit rate so that the data fits into bursts 510-a and 510-b (e.g., receiving data without receiving burst 510-c), which may support power conservation while maintaining similar audio quality.
[0071] In some examples, to determine the scheduling pattern of the AP 105, the wireless device may calculate one or more metrics associated with the wake-up duration 505. For example, the wireless device may use one or more previous wake-up durations 505 to calculate a first average corresponding to the length of each burst 510 except the last burst (e.g., the average length of burst 510-a and burst 510-b), and may calculate a second average corresponding to the length of the last burst 510 (e.g., the average length of burst 510-c). In some such examples, the wireless device may calculate a third average corresponding to the contention period 515 (e.g., the inter-burst delay due to contention and AP 105 scheduling). By determining the first average, the second average, the third average, or any combination thereof, the wireless device may model the scheduling pattern and determine whether to receive the last burst 510 or terminate the wake-up duration 505 before receiving burst 510-c. That is, the wireless device may compare the average length of the last burst 510-c with the average length of the remaining bursts 510, and may reduce the codec bit rate to eliminate the last burst 510-c in the wake-up duration 505 when determining that the average length of the last burst 510-c is shorter than the average length of the remaining bursts 510. Additionally or alternatively, the wireless device may identify a first power usage value associated with each of the received bursts 510, and may identify a second power usage value associated with avoiding receiving the last burst 510-c of the wake-up duration. The wireless device may determine whether to reduce the wake-up duration 505 in advance based on a difference between the first power usage value and the second power usage value and a comparison of the difference with a target battery life of the wireless device or a peripheral device. In some other examples, the wireless device may identify a threshold quality loss of a real-time stream, and may determine whether to avoid receiving the last burst 510-c based on comparing the threshold and the quality loss associated with avoiding receiving the last burst 510-c. In another embodiment, the wireless device may determine whether to reduce the codec bit rate to reduce the wake-up duration 505 based on the maximum size of the burst 510.
[0072] In some examples (such as Figure 2A In the wireless communication system 201 shown, the calculated average burst length (e.g., the average of burst 510-a, burst 510-b, and burst 510-c) can be transmitted to the encoder of STA 115-a (e.g., via communication link 215). That is, the average calculation can be performed by peripheral device 205 and then transmitted to the encoder of STA 115-a. In some cases, peripheral device 205 can also transmit a desired codec bit rate to STA 115-a, which can be based on the average burst length.
[0073] Figure 6 An example of a process flow 600 for supporting techniques for bit rate control in wireless communications according to one or more aspects of the present disclosure is shown. In some examples, the process flow 600 can implement aspects of the wireless communication system 100 and the wireless communication systems 201 and 202. In addition, the process flow 600 can illustrate that a wireless device 601 (e.g., a STA 115 or other wireless device) performs a bit rate control according to a reference. Figure 3 and Figure 4 The process flow 600 may illustrate an example of a wireless device 601 modifying the bit rate of a real-time stream sent to a peripheral device 205-a to support a wake-up duration of the peripheral device 205-a according to a target wake-up duration (e.g., corresponding to power conservation). The following alternative examples may be implemented, in which some of the processes are performed in a different order than described or are not performed. In some cases, the processes may include additional features not mentioned below, or further processes may be added.
[0074] At 605, the peripheral device 205-a may optionally send one or more parameters associated with the peripheral device 205-a to the wireless device 601. For example, the peripheral device 205-a may send a supported bit rate, an access time, a received signal strength indicator, an average wake-up duration, a number of attempts to reestablish a connection with the wireless device, a number of dropped packets, or any combination thereof for the peripheral device 205-a. In some examples, such as when the peripheral device 205-a is an example of a set of earbuds, the peripheral device 205-a may send a first set of parameters corresponding to a first receiving component (e.g., a left earphone) and may send a second set of parameters corresponding to a second receiving component (e.g., a right earphone).
[0075] At 610, the wireless device 601 may determine an average wake-up duration for a real-time stream, which may be an example of an audio stream, a video stream, a phone call, tactile feedback, etc. In some cases, the wireless device 601 may determine the average wake-up duration using one or more parameters associated with the peripheral device 205-a, one or more previous wake-up durations, or both. For example, the wireless device 601 may calculate a moving average of the number of previous wake-up durations to determine the average wake-up duration. In some cases, the wireless device 601 may also determine the average wake-up duration using an average duration indicated by the peripheral device 205-a.
[0076] At 615, the wireless device 601 may determine a target wakeup duration for the real-time stream. In some examples, the target wakeup duration may be associated with a congestion level of a channel for the real-time stream, a latency threshold for the real-time stream, a quality threshold for the real-time stream, a power budget for the wireless device 601 and the peripheral device 205-a, or any combination thereof. Additionally or alternatively, the target wakeup duration may represent a negotiated or scheduled duration of an activity interval corresponding to the wireless device 601.
[0077] At 620, the wireless device 601 can modify the bit rate of the real-time stream based on comparing the average wake-up duration to the target wake-up duration. For example, the wireless device 601 can determine that the average wake-up duration (e.g., the average actual wake-up duration or the average utilized wake-up duration) is shorter than the target wake-up duration, and can increase the bit rate of the real-time stream to increase the average wake-up duration (e.g., closer to the target wake-up duration). In some other examples, the wireless device 601 can determine that the average wake-up duration is longer than the target wake-up duration, and can reduce the bit rate of the real-time stream to increase the average wake-up duration.
[0078] At 625 , the wireless device 601 may send the real-time stream to the peripheral device 205 - a according to the modified bit rate, which may support power conservation at the peripheral device 205 - a while maintaining a high QoS for the real-time stream.
[0079] Figure 7 An example of a process flow 700 supporting techniques for bit rate control in wireless communications in accordance with one or more aspects of the present disclosure is shown. In some examples, the process flow 700 can implement aspects of the wireless communication system 100 and the wireless communication systems 201 and 202. In addition, the process flow 700 can illustrate an example of a wireless device 701 (e.g., a STA 115 or other wireless device) reducing a wake-up duration according to a scheduling mode of an AP 105-b. For example, the process flow 700 can illustrate that the wireless device 701 determines one or more metrics of a data burst within the wake-up duration to determine a scheduling mode that can support early termination of the wake-up duration. The following alternative examples can be implemented in which some of the processes are performed or not performed in a different order than described. In some cases, the process may include additional features not mentioned below, or further processes may be added.
[0080] At 705, the AP 105-b may send a plurality of sets of data bursts corresponding to the corresponding wake-up durations to the wireless device 701. That is, the wireless device 701 may receive a set of data bursts (e.g., each data burst including a plurality of data packets) at each wake-up duration of an interval (e.g., 100 ms), and may receive data at the plurality of wake-up durations and the corresponding intervals.
[0081] At 710, the wireless device 701 may determine one or more average values associated with the data bursts. For example, the wireless device 701 may determine a first average length corresponding to the data bursts excluding the last data burst of each wake-up duration, and may determine a second average length corresponding to the last data burst. Additionally or alternatively, the wireless device 701 may determine a third average length corresponding to an inter-burst delay (e.g., a time period during which the AP 105-b communicates with other wireless devices). The wireless device 701 may use the one or more average values to determine whether to receive the last burst of the wake-up duration. For example, the wireless device 701 may determine that the last burst of the wake-up duration has a much lower length than the remaining bursts of the wake-up duration, and may reduce the codec bit rate based on the determination so that the data fits the remaining bursts of the wake-up duration (e.g., avoiding receiving the last burst).
[0082] At 715, the wireless device 701 may optionally determine a power usage value associated with receiving each burst in the wake-up duration and a power usage value associated with avoiding receiving the last burst of the wake-up duration. For example, the wireless device 701 may determine that not receiving the last burst of the wake-up duration consumes significantly less power than receiving each burst of the wake-up duration, and may modify the codec bit rate for the real-time stream (e.g., to avoid receiving the last burst based on the determination).
[0083] At 720, the wireless device 701 may determine a scheduling pattern for the AP 105-b. That is, the wireless device 701 may use one or more averages associated with the data bursts of the wake-up duration to model the scheduling pattern of the AP 105-b. In some cases, the wireless device 701 may identify a threshold quality loss for the real-time stream and may compare the threshold quality loss to a quality loss associated with avoiding receiving the last burst of the wake-up duration. For example, the wireless device 701 may determine to avoid receiving the last burst of the wake-up duration based on the quality loss associated with avoiding receiving the last burst of the wake-up duration being less than the threshold quality loss.
[0084] At 725, the wireless device 701 can reduce the bit rate of the real-time stream to reduce the awake duration of the wireless device 701 (and associated peripheral devices) before the awake duration ends. For example, the wireless device 701 can determine to avoid receiving the last burst of the awake duration, and can instead reduce the codec bit rate to accommodate the data in the second-to-last burst of the awake duration (from the underutilized burst). By reducing the awake duration, the wireless device 701 can consume less power while maintaining a relatively high QoS for the real-time stream.
[0085] Figure 8 A block diagram 800 of a device 805 supporting techniques for bit rate control in wireless communications according to one or more aspects of the present disclosure is shown. The device 805 may be an example of aspects of a STA as described herein. The device 805 may include a receiver 810, a transmitter 815, and a communication manager 820. The device 805 may also include a processor. Each of these components may communicate with each other (e.g., via one or more buses).
[0086] The receiver 810 may provide means for receiving information (such as packets, user data, control information, or any combination thereof) associated with various information channels (e.g., control channels related to techniques for bit rate control in wireless communications, data channels, information channels). The information may be communicated to other components of the device 805. The receiver 810 may utilize a single antenna or a collection of multiple antennas.
[0087] The transmitter 815 may provide means for transmitting signals generated by other components of the device 805. For example, the transmitter 815 may transmit information associated with various information channels (e.g., control channels, data channels, information channels related to techniques for bit rate control in wireless communications), such as packets, user data, control information, or any combination thereof. In some examples, the transmitter 815 may be co-located with the receiver 810 in a transceiver module. The transmitter 815 may utilize a single antenna or a collection of multiple antennas.
[0088] The communication manager 820, the receiver 810, the transmitter 815, or various combinations thereof, or various components thereof may be examples of means for performing various aspects of the techniques for bit rate control in wireless communications as described herein. For example, the communication manager 820, the receiver 810, the transmitter 815, or various combinations thereof, or components thereof may support methods for performing one or more functions described herein.
[0089] In some examples, the communication manager 820, the receiver 810, the transmitter 815, or various combinations or components thereof can be implemented in hardware (e.g., in a communication management circuit). The hardware may include a processor, a DSP, a CPU, an ASIC, an FPGA or other programmable logic device, a microcontroller, discrete gate or transistor logic, discrete hardware components, or any combination thereof configured to or otherwise support components for performing the functions described in the present disclosure. In some examples, a processor and a memory coupled to the processor can be configured to perform one or more functions described herein (e.g., by executing instructions stored in the memory by the processor).
[0090] Additionally or alternatively, in some examples, the communication manager 820, the receiver 810, the transmitter 815, or various combinations or components thereof may be implemented in code executed by a processor (e.g., as communication management software or firmware). If implemented in code executed by a processor, the functions of the communication manager 820, the receiver 810, the transmitter 815, or various combinations or components thereof may be performed by a general purpose processor, a DSP, a CPU, an ASIC, an FPGA, a microcontroller, or any combination of these or other programmable logic devices (e.g., configured as or otherwise supporting components for performing the functions described in the present disclosure).
[0091] In some examples, the communication manager 820 can be configured to perform various operations (e.g., receive, obtain, monitor, output, send) using or otherwise in cooperation with the receiver 810, the transmitter 815, or both. For example, the communication manager 820 can receive information from the receiver 810, send information to the transmitter 815, or integrate with the receiver 810, the transmitter 815, or a combination of the two to obtain information, output information, or perform various other operations as described herein.
[0092] The communication manager 820 may support wireless communications according to examples as disclosed herein. For example, the communication manager 820 may be configured to or otherwise support components for determining an average wake-up duration of the wireless device based on one or more average wake-up durations of the wireless device over one or more previous time windows. The communication manager 820 may be configured to or otherwise support components for modifying a bit rate of a real-time stream at the wireless device based on the average wake-up duration and a threshold time period. The communication manager 820 may be configured to or otherwise support components for sending the real-time stream according to the modified bit rate.
[0093] Additionally or alternatively, the communication manager 820 may support wireless communications at a first wireless device according to examples disclosed herein. For example, the communication manager 820 may be configured to or otherwise support a component for receiving a set of a plurality of data bursts from a second wireless device in a wake-up duration and according to a scheduling mode, wherein each data burst in the set of a plurality of data bursts includes a set of data packets. The communication manager 820 may be configured to or otherwise support a component for determining a scheduling mode for a second wireless device based on receiving the set of a plurality of data bursts. The communication manager 820 may be configured to or otherwise support a component for reducing a wake-up duration of the first wireless device based on modifying a bit rate of the first wireless device and a scheduling mode of the second wireless device.
[0094] By including or configuring a communication manager 820 according to the examples described herein, the device 805 (e.g., a processor that controls or is otherwise coupled to the receiver 810, the transmitter 815, the communication manager 820, or a combination thereof) can support techniques for reduced power consumption at the STA 115 and peripheral devices, thereby enhancing battery life while maintaining a relatively high QoS for real-time streams, which can improve the user experience.
[0095] Fig. 9 A block diagram 900 of a device 905 supporting techniques for bit rate control in wireless communications according to one or more aspects of the present disclosure is shown. The device 905 may be an example of aspects of the device 805 or STA 115 as described herein. The device 905 may include a receiver 910, a transmitter 915, and a communication manager 920. The device 905 may also include a processor. Each of these components may communicate with each other (e.g., via one or more buses).
[0096] The receiver 910 may provide means for receiving information (such as packets, user data, control information, or any combination thereof) associated with various information channels (e.g., control channels related to techniques for bit rate control in wireless communications, data channels, information channels). The information may be delivered to other components of the device 905. The receiver 910 may utilize a single antenna or a collection of multiple antennas.
[0097] The transmitter 915 may provide means for transmitting signals generated by other components of the device 905. For example, the transmitter 915 may transmit information associated with various information channels (e.g., control channels, data channels, information channels related to techniques for bit rate control in wireless communications), such as packets, user data, control information, or any combination thereof. In some examples, the transmitter 915 may be co-located with the receiver 910 in a transceiver module. The transmitter 915 may utilize a single antenna or a collection of multiple antennas.
[0098] The device 905 or its various components may be examples of components for performing various aspects of the technology for bit rate control in wireless communication as described herein. For example, the communication manager 920 may include an averaging component 925, a flow control component 930, a flow transmission component 935, a data receiving component 940, a processing component 945, a termination component 950, or any combination thereof. The communication manager 920 may be an example of various aspects of the communication manager 820 as described herein. In some examples, the communication manager 920 or its various components may be configured to use or otherwise cooperate with the receiver 910, the transmitter 915, or both to perform various operations (e.g., receive, obtain, monitor, output, send). For example, the communication manager 920 may receive information from the receiver 910, send information to the transmitter 915, or integrate with the receiver 910, the transmitter 915, or both to obtain information, output information, or perform various other operations as described herein.
[0099] The communication manager 920 may support wireless communications according to examples as disclosed herein. The averaging component 925 may be configured to or otherwise support components for determining an average wake-up duration of the wireless device based on one or more wake-up durations of the wireless device over one or more previous time windows. The stream control component 930 may be configured to or otherwise support components for modifying a bit rate of a real-time stream at the wireless device based on the average wake-up duration and a threshold time period. The stream transmission component 935 may be configured to or otherwise support components for transmitting the real-time stream according to the modified bit rate.
[0100] Additionally or alternatively, the communication manager 920 may support wireless communications at a first wireless device according to examples disclosed herein. The data receiving component 940 may be configured to or otherwise support components for receiving a set of a plurality of data bursts from a second wireless device in a wake-up duration and according to a scheduling mode, wherein each data burst in the set of a plurality of data bursts includes a set of data packets. The processing component 945 may be configured to or otherwise support components for determining a scheduling mode for a second wireless device based on receiving the set of a plurality of data bursts. The termination component 950 may be configured to or otherwise support components for reducing a wake-up duration of the first wireless device based on modifying a bit rate of the first wireless device and a scheduling mode of the second wireless device.
[0101] Fig.10A block diagram 1000 of a communication manager 1020 supporting techniques for bit rate control in wireless communications according to one or more aspects of the present disclosure is shown. The communication manager 1020 may be an example of aspects of the communication manager 820, the communication manager 920, or both as described herein. The communication manager 1020 or its various components may be examples of components for performing various aspects of the techniques for bit rate control in wireless communications as described herein. For example, the communication manager 1020 may include an averaging component 1025, a flow control component 1030, a flow transmission component 1035, a data receiving component 1040, a processing component 1045, a termination component 1050, a power analysis component 1055, or any combination thereof. Each of these components may communicate with each other directly or indirectly (e.g., via one or more buses).
[0102] The communication manager 1020 may support wireless communications according to examples as disclosed herein. The averaging component 1025 may be configured to or otherwise support components for determining an average wake-up duration of the wireless device based on one or more wake-up durations of the wireless device over one or more previous time windows. The stream control component 1030 may be configured to or otherwise support components for modifying a bit rate of a real-time stream at the wireless device based on the average wake-up duration and a threshold time period. The stream transmission component 1035 may be configured to or otherwise support components for transmitting the real-time stream according to the modified bit rate.
[0103] In some examples, processing component 1045 can be configured to or otherwise support components for determining a target activity duration for a real-time stream. In some examples, processing component 1045 can be configured to or otherwise support components for comparing the average wake-up duration to the target activity duration, wherein modifying the bit rate of the real-time stream is based on the comparison.
[0104] In some examples, processing component 1045 can be configured to or otherwise support components for determining that the average wake duration is shorter than a target activity duration, wherein modifying the bit rate of the real-time stream includes increasing the bit rate of the real-time stream.
[0105] In some examples, processing component 1045 can be configured to or otherwise support components for determining that the average wake duration is longer than the target activity duration, wherein modifying the bit rate of the real-time stream includes reducing the bit rate of the real-time stream.
[0106] In some examples, the target activity duration is based on a latency threshold for the real-time stream, a quality threshold for the real-time stream, a power budget for the wireless device, or any combination thereof. In some examples, modifying the bit rate of the real-time stream is based on a congestion level of a channel associated with the real-time stream. In some examples, to support determining an average wake-up duration, the averaging component 1025 can be configured as or otherwise support a component for determining a moving average of a number of one or more wake-up durations.
[0107] In some examples, to support determining the average wake-up duration, averaging component 1025 can be configured or otherwise support means for determining an average wake-up duration for a first recipient device associated with the real-time stream. In some examples, to support determining the average wake-up duration, averaging component 1025 can be configured or otherwise support means for determining an average wake-up duration for a second recipient device associated with the real-time stream.
[0108] In some examples, the data receiving component 1040 may be configured to or otherwise support components for inputting one or more parameters associated with the first recipient device to an encoder associated with the wireless device. In some examples, the data receiving component 1040 may be configured to or otherwise support components for inputting one or more parameters associated with the second recipient device to an encoder associated with the wireless device, wherein modifying the bit rate of the real-time stream is based on inputting one or more parameters associated with the first recipient device and one or more parameters associated with the second recipient device to the encoder. In some examples, the data receiving component 1040 may be configured to or otherwise support components for receiving an indication of a modified bit rate for the first wireless device from at least one peripheral device, wherein the modified bit rate is based at least in part on a plurality of data bursts, and wherein reducing the wake-up duration of the first wireless device is based at least in part on receiving the indication of the modified bit rate.
[0109] In some examples, the one or more parameters include supported bit rates, access time, received signal strength indicator, average wake-up duration, number of attempts to reestablish connection with the wireless device, number of dropped packets, or any combination thereof.
[0110] In some examples, processing component 1045 can be configured to or otherwise support means for determining a start time for the wake-up duration for the second recipient device, wherein the start time is offset from the target activity duration.
[0111] In some examples, the first recipient device includes a left earphone and the second recipient device includes a right earphone. In some examples, the wireless device is connected to a home access point in a home network or a set of access points in a mesh home network. In some examples, the real-time stream includes at least one of an audio stream, a video stream, a phone call, tactile feedback, or any combination thereof.
[0112] Additionally or alternatively, the communication manager 1020 may support wireless communications at a first wireless device according to examples disclosed herein. The data receiving component 1040 may be configured to or otherwise support components for receiving a set of a plurality of data bursts from a second wireless device in a wake-up duration and according to a scheduling mode, wherein each data burst in the set of a plurality of data bursts comprises a set of data packets. The processing component 1045 may be configured to or otherwise support components for determining a scheduling mode for a second wireless device based on receiving the set of a plurality of data bursts. The terminating component 1050 may be configured to or otherwise support components for reducing a wake-up duration of the first wireless device based on modifying a bit rate of the first wireless device and a scheduling mode of the second wireless device.
[0113] In some examples, averaging component 1025 can be configured to or otherwise support means for determining an average burst length for a set of multiple data bursts in the wake-up duration, wherein determining the scheduling mode is based on determining the average burst length.
[0114] In some examples, the power analysis component 1055 can be configured to or otherwise support components for determining a first power usage value associated with receiving each data burst in the set of the plurality of data bursts. In some examples, the power analysis component 1055 can be configured to or otherwise support components for determining a second power usage value associated with avoiding receiving a last data burst in the set of the plurality of data bursts, wherein the wake-up duration of the first wireless device is reduced based on modifying a bit rate of the first wireless device and a scheduling mode of the second wireless device.
[0115] In some examples, processing component 1045 may be configured to or otherwise support components for excluding a last data burst in a set of multiple data bursts in a wake-up duration based on a scheduling pattern, wherein determining an average burst length of the set of multiple data bursts includes determining an average burst length of a remaining number of data bursts in the set of multiple data bursts in the wake-up duration.
[0116] In some examples, termination component 1050 may be configured as or otherwise support components for determining an average burst length of a last data burst in a set of multiple previous wake-up durations, wherein excluding the last data burst in the set of multiple data bursts in the wake-up durations is based on the average burst length.
[0117] In some examples, reducing the active duration of the first wireless device before the wake-up duration ends is based on an average burst length of the last burst being shorter than an average burst length of the remaining number of data bursts. In some examples, reducing the active duration of the first wireless device before the wake-up duration ends is based on a threshold quality loss for the first wireless device. In some examples, the processing component 1045 can be configured to or otherwise support components for determining a maximum burst size, wherein reducing the wake-up duration of the first wireless device before the wake-up duration ends is based on the maximum burst size.
[0118] Fig.11 A diagram of a system 1100 including a device 1105 supporting techniques for bit rate control in wireless communications according to one or more aspects of the present disclosure is shown. The device 1105 may be an example of a device 805, a device 905, or a STA as described herein or include components of a device 805, a device 905, or a STA as described herein. The device 1105 may include components for two-way voice and data communications, including components for sending and receiving communications, such as a communication manager 1120, an I / O controller 1110, a transceiver 1115, an antenna 1125, a memory 1130, code 1135, and a processor 1140. These components may be in electronic communication or otherwise coupled (e.g., operatively, communicatively, functionally, electronically, electrically) via one or more buses (e.g., a bus 1145).
[0119] I / O controller 1110 can manage input and output signals for device 1105. I / O controller 1110 can also manage peripheral devices that are not integrated into device 1105. In some cases, I / O controller 1110 can represent a physical connection or port to an external peripheral device. In some cases, I / O controller 1110 can utilize an operating system, such as or another known operating system. In some other cases, I / O controller 1110 may represent or interact with a modem, keyboard, mouse, touch screen, or similar device. In some cases, I / O controller 1110 may be implemented as part of a processor (such as processor 1140). In some cases, a user may interact with device 1105 via I / O controller 1110 or via hardware components controlled by I / O controller 1110.
[0120] In some cases, the device 1105 may include a single antenna 1125. However, in some other cases, the device 1105 may have more than one antenna 1125, which may be capable of concurrently sending or receiving multiple wireless transmissions. The transceiver 1115 may communicate bidirectionally via one or more antennas 1125, a wired or wireless link, as described herein. For example, the transceiver 1115 may represent a wireless transceiver and may communicate bidirectionally with another wireless transceiver. The transceiver 1115 may also include a modem to modulate packets and provide the modulated packets to one or more antennas 1125 for transmission, and demodulate packets received from the one or more antennas 1125. The transceiver 1115 or the transceiver 1115 and the one or more antennas 1125 may be examples of transmitters 815, transmitters 915, receivers 810, receivers 910, or any combination thereof, or components thereof as described herein.
[0121] Memory 1130 may include RAM and ROM. Memory 1130 may store computer-readable, computer-executable code 1135 including instructions that, when executed by processor 1140, cause device 1105 to perform various functions described herein. In some cases, memory 1130 may contain BIOS, etc., which may control basic hardware or software operations, such as interaction with peripheral components or devices.
[0122] The processor 1140 may include an intelligent hardware device (e.g., a general-purpose processor, a DSP, a CPU, a microcontroller, an ASIC, an FPGA, a programmable logic device, a discrete gate or transistor logic component, a discrete hardware component, or any combination thereof). In some cases, the processor 1140 may be configured to operate a memory array using a memory controller. In some other cases, the memory controller may be integrated into the processor 1140. The processor 1140 may be configured to execute computer-readable instructions stored in a memory (e.g., memory 1130) to enable the device 1105 to perform various functions (e.g., functions or tasks that support techniques for bit rate control in wireless communications). For example, the device 1105 or a component of the device 1105 may include a processor 1140 and a memory 1130 coupled to or coupled to the processor 1140, and the processor 1140 and the memory 1130 are configured to perform the various functions described herein.
[0123] The communication manager 1120 may support wireless communications according to examples as disclosed herein. For example, the communication manager 1120 may be configured to or otherwise support components for determining an average wake-up duration of the wireless device based on one or more wake-up durations of the wireless device over one or more previous time windows. The communication manager 1120 may be configured to or otherwise support components for modifying a bit rate of a real-time stream at the wireless device based on the average wake-up duration and a threshold time period. The communication manager 1120 may be configured to or otherwise support components for sending the real-time stream according to the modified bit rate.
[0124] Additionally or alternatively, the communication manager 1120 may support wireless communications at a first wireless device according to examples disclosed herein. For example, the communication manager 1120 may be configured to or otherwise support a component for receiving a set of a plurality of data bursts from a second wireless device in a wake-up duration and according to a scheduling mode, wherein each data burst in the set of a plurality of data bursts includes a set of data packets. The communication manager 1120 may be configured to or otherwise support a component for determining a scheduling mode for a second wireless device based on receiving the set of a plurality of data bursts. The communication manager 1120 may be configured to or otherwise support a component for reducing a wake-up duration of the first wireless device based on modifying a bit rate of the first wireless device and a scheduling mode of the second wireless device.
[0125] By including or configuring a communication manager 1120 according to examples described herein, the device 1105 can support techniques for reduced power consumption at the STA 115 and peripheral devices, thereby extending battery life while maintaining a relatively high QoS for real-time streams, which can improve the user experience.
[0126] Fig.12 A flow chart illustrating a method 1200 for supporting techniques for bit rate control in wireless communications according to one or more aspects of the present disclosure is shown. The operations of the method 1200 may be implemented by a STA or a component thereof as described herein. For example, the operations of the method 1200 may be implemented by a STA or a component thereof as described with reference to Figures 1 to 11 In some examples, the STA may execute a set of instructions to control the functional elements of the STA to perform the described functions. Additionally or alternatively, the STA may use dedicated hardware to perform aspects of the described functions.
[0127] At 1205, the method may include determining an average wake-up duration of the wireless device based on one or more wake-up durations of the wireless device over one or more previous time windows. The operations of 1205 may be performed according to examples disclosed herein. In some examples, aspects of the operations of 1205 may be performed as described in reference to Fig.10 The described averaging component 1025 performs.
[0128] At 1210, the method may include modifying a bit rate of a real-time stream at the wireless device based on the average wake-up duration and the threshold time period. The operations of 1210 may be performed according to examples disclosed herein. In some examples, aspects of the operations of 1210 may be performed as described with reference to Fig.10 The described flow control component 1030 is executed.
[0129] At 1215, the method may include sending the real-time stream according to the modified bit rate. The operations of 1215 may be performed according to the examples disclosed herein. In some examples, aspects of the operations of 1215 may be performed as described with reference to Fig.10 The described stream sending component 1035 is executed.
[0130] Fig.13 A flow chart illustrating a method 1300 for supporting techniques for bit rate control in wireless communications according to one or more aspects of the present disclosure is shown. The operations of the method 1300 may be implemented by a STA or a component thereof as described herein. For example, the operations of the method 1300 may be implemented by a STA or a component thereof as described with reference to Figures 1 to 11 In some examples, the STA may execute a set of instructions to control the functional elements of the STA to perform the described functions. Additionally or alternatively, the STA may use dedicated hardware to perform aspects of the described functions.
[0131] At 1305, the method may include determining an average wake-up duration of the wireless device based on one or more wake-up durations of the wireless device over one or more previous time windows. The operations of 1305 may be performed according to examples disclosed herein. In some examples, aspects of the operations of 1305 may be performed as described in reference to Fig.10 The described averaging component 1025 performs.
[0132] At 1310, the method may include determining a target activity duration for the real-time stream. The operations of 1310 may be performed according to examples disclosed herein. In some examples, aspects of the operations of 1310 may be performed as described with reference to Fig.10 The processing component 1045 described above is executed.
[0133] At 1315, the method may include comparing the average wake duration to the target activity duration. The operations of 1315 may be performed according to examples disclosed herein. In some examples, aspects of the operations of 1315 may be described by referring to Fig.10 The processing component 1045 described above is executed.
[0134] At 1320, the method may include modifying a bit rate of a real-time stream at the wireless device based on the average wake-up duration and the threshold time period. In some examples, modifying the bit rate of the real-time stream is based on the comparison. The operations of 1320 may be performed according to examples disclosed herein. In some examples, aspects of the operations of 1320 may be as described with reference to Fig.10 The described flow control component 1030 is executed.
[0135] At 1325, the method may include sending the real-time stream according to the modified bit rate. The operations of 1325 may be performed according to the examples disclosed herein. In some examples, aspects of the operations of 1325 may be performed as described with reference to Fig.10 The described stream sending component 1035 is executed.
[0136] Fig.14 A flow chart illustrating a method 1400 for supporting techniques for bit rate control in wireless communications according to one or more aspects of the present disclosure is shown. The operations of the method 1400 may be implemented by a STA or a component thereof as described herein. For example, the operations of the method 1400 may be implemented by a STA or a component thereof as described with reference to Figures 1 to 11 In some examples, the STA may execute a set of instructions to control the functional elements of the STA to perform the described functions. Additionally or alternatively, the STA may use dedicated hardware to perform aspects of the described functions.
[0137] At 1405, the method may include receiving a set of multiple data bursts from a second wireless device during the wake-up duration and according to the scheduling pattern, wherein each data burst in the set of multiple data bursts includes a set of data packets. The operations of 1405 may be performed according to examples disclosed herein. In some examples, aspects of the operations of 1405 may be performed as described with reference to Fig.10 The data receiving component 1040 described above is executed.
[0138] At 1410, the method may include determining a scheduling mode for a second wireless device based on receiving the set of the plurality of data bursts. The operations of 1410 may be performed according to examples disclosed herein. In some examples, aspects of the operations of 1410 may be performed as described with reference to Fig.10 The processing component 1045 described above is executed.
[0139] At 1415, the method may include reducing the wake-up duration of the first wireless device based on modifying the bit rate of the first wireless device and the scheduling mode of the second wireless device. The operations of 1415 may be performed according to examples disclosed herein. In some examples, aspects of the operations of 1415 may be performed as described with reference to Fig.10 The termination component 1050 described above is executed.
[0140] Fig.15 A flow chart illustrating a method 1500 for supporting techniques for bit rate control in wireless communications according to one or more aspects of the present disclosure is shown. The operations of the method 1500 may be implemented by a STA or a component thereof as described herein. For example, the operations of the method 1500 may be implemented by a STA or a component thereof as described with reference to Figures 1 to 11 In some examples, the STA may execute a set of instructions to control the functional elements of the STA to perform the described functions. Additionally or alternatively, the STA may use dedicated hardware to perform aspects of the described functions.
[0141] At 1505, the method may include receiving a set of multiple data bursts from a second wireless device during the wake-up duration and according to a scheduling pattern, wherein each data burst in the set of multiple data bursts includes a set of data packets. The operations of 1505 may be performed according to examples disclosed herein. In some examples, aspects of the operations of 1505 may be performed as described with reference to Fig.10 The data receiving component 1040 described above is executed.
[0142] At 1510, the method may include determining a scheduling mode for a second wireless device based on receiving the set of the plurality of data bursts. The operations of 1510 may be performed according to examples disclosed herein. In some examples, aspects of the operations of 1510 may be performed as described with reference to Fig.10 The processing component 1045 described above is executed.
[0143] At 1515, the method may include determining an average burst length of the set of the plurality of data bursts in the wake-up duration, wherein determining the scheduling mode is based on determining the average burst length. The operations of 1515 may be performed according to examples disclosed herein. In some examples, aspects of the operations of 1515 may be performed as described in reference to Fig.10 The described averaging component 1025 performs.
[0144] At 1520, the method may include reducing the wake-up duration of the first wireless device based on modifying the bit rate of the first wireless device and the scheduling mode of the second wireless device. The operations of 1520 may be performed according to examples disclosed herein. In some examples, aspects of the operations of 1520 may be performed as described with reference to Fig.10 The termination component 1050 described above is executed.
[0145] The following provides an overview of various aspects of the present disclosure:
[0146] Aspect 1: A method for wireless communication, comprising: determining an average wake-up duration of a wireless device within a time window at least in part based on one or more wake-up durations of the wireless device in one or more previous time windows, modifying a bit rate of a real-time stream at the wireless device at least in part based on the average wake-up duration and a threshold time period, and sending the real-time stream according to the modified bit rate.
[0147] Aspect 2: The method according to Aspect 1 also includes: comparing the average wake-up duration with the target wake-up duration to determine the target wake-up duration of the real-time stream, wherein modifying the bit rate of the real-time stream is at least partially based on the comparison.
[0148] Aspect 3: The method according to Aspect 2 further includes: determining that the average wake-up duration is shorter than the target wake-up duration, wherein modifying the bit rate of the real-time stream includes increasing the bit rate of the real-time stream.
[0149] Aspect 4: The method according to Aspect 2 further includes: determining that the average wake-up duration is longer than the target wake-up duration, wherein modifying the bit rate of the real-time stream includes reducing the bit rate of the real-time stream.
[0150] Aspect 5: A method according to any one of Aspects 2 to 4, wherein the target wake-up duration is at least partially based on a latency threshold for the real-time stream, a quality threshold for the real-time stream, a power budget for the wireless device, or any combination thereof.
[0151] Aspect 6: The method according to any one of aspects 1 to 5, wherein modifying the bit rate of the real-time stream is based at least in part on a congestion level of a channel associated with the real-time stream.
[0152] Aspect 7: The method according to any one of aspects 1 to 6, wherein determining the average wake-up time service period utilization duration comprises: determining a moving average of the number of the one or more previous wake-up durations.
[0153] Aspect 8: A method according to any one of Aspects 1 to 7, wherein determining the average wake-up time service period utilization duration further includes: determining the average duration of a first recipient device associated with the real-time stream; and determining the average wake-up duration of a second recipient device associated with the real-time stream.
[0154] Aspect 9: The method according to Aspect 8 further includes: inputting one or more parameters associated with the first recipient device into an encoder associated with the wireless device, and inputting one or more parameters associated with the second recipient device into an encoder associated with the wireless device, wherein modifying the bit rate of the real-time stream is at least partially based on inputting one or more parameters associated with the first recipient device and one or more parameters associated with the second recipient device into the encoder.
[0155] Aspect 10: A method according to Aspect 9, wherein the one or more parameters include supported bit rates, access time, received signal strength indicator, average wake-up duration, number of attempts to reestablish connection with the wireless device, number of discarded packets, or any combination thereof.
[0156] Aspect 11: The method according to any one of aspects 8 to 10 further comprises: determining a start time of the wake-up duration of the second recipient device, wherein the start time is offset from the target wake-up duration.
[0157] Aspect 12: The method according to any one of aspects 8 to 11, wherein the first recipient device comprises a left earphone and the second recipient device comprises a right earphone.
[0158] Aspect 13: The method according to any one of aspects 1 to 12, wherein the wireless device is connected to a home access point in a home network or a set of access points in a mesh home network.
[0159] Aspect 14: The method according to any one of Aspects 1 to 13, wherein the real-time stream comprises an audio stream, a video stream, a phone call, tactile feedback, or any combination thereof.
[0160] Aspect 15: A method for wireless communication at a first wireless device, comprising: receiving multiple data bursts from a second wireless device during a wake-up duration and according to a scheduling pattern, wherein each of the multiple data bursts includes a set of data packets, determining the scheduling pattern of the second wireless device based at least in part on receiving the multiple data bursts; and reducing the wake-up duration of the first wireless device based at least in part on modifying the bit rate of the first wireless device and the scheduling pattern of the second wireless device.
[0161] Aspect 16: The method according to aspect 15 also includes: determining an average burst length of the multiple data bursts in the wake-up duration, wherein determining the scheduling mode is at least partially based on determining the average burst length.
[0162] Aspect 17: The method according to Aspect 16 also includes: determining a first power usage value associated with receiving each data burst in the multiple data bursts; and determining a second power usage value associated with avoiding receiving the last data burst in the multiple data bursts, wherein reducing the wake-up duration of the first wireless device is at least partially based on determining the first power usage value and the second power usage value.
[0163] Aspect 18: The method according to any one of Aspects 16 to 17 further includes: excluding the last data burst of the multiple data bursts in the wake-up duration based at least in part on the scheduling mode, wherein determining the average burst length of the multiple data bursts includes determining the average burst length of the remaining number of data bursts in the multiple data bursts in the wake-up duration.
[0164] Aspect 19: The method according to Aspect 18 also includes: determining an average burst length of the last data burst in multiple previous wake-up durations, wherein excluding the last data burst in the multiple data bursts in the wake-up duration is at least partially based on the average burst length.
[0165] Aspect 20: The method of aspect 19, wherein reducing the wake-up duration of the first wireless device is based at least in part on an average burst length of the last burst being shorter than an average burst length of the remaining number of data bursts.
[0166] Aspect 21: The method according to any one of aspects 15 to 20, wherein reducing the wake-up duration of the first wireless device is based at least in part on a threshold quality loss for the first wireless device.
[0167] Aspect 22: The method according to any one of aspects 15 to 21, further comprising: determining a maximum burst size, wherein reducing the wake-up duration of the first wireless device is based at least in part on the maximum burst size.
[0168] Aspect 23: The method according to any one of Aspects 15 to 22 further includes: receiving an indication of a modified bit rate of the first wireless device from at least one peripheral device, wherein the modified bit rate is at least partially based on the multiple data bursts, and wherein reducing the wake-up duration of the first wireless device is at least partially based on receiving the indication of the modified bit rate.
[0169] Aspect 24: An apparatus for wireless communication, comprising: a processor; a memory coupled to the processor; and instructions stored in the memory and executable by the processor to cause the apparatus to perform the method of any one of Aspects 1 to 14.
[0170] Aspect 25: An apparatus for wireless communication, comprising at least one component for performing the method as described in any one of Aspects 1 to 14.
[0171] Aspect 26: A non-transitory computer-readable medium storing code for wireless communication, the code comprising instructions executable by a processor to perform the method according to any one of aspects 1 to 14.
[0172] Aspect 27: An apparatus for wireless communication at a first wireless device, comprising: a processor; a memory coupled to the processor; and instructions stored in the memory and executable by the processor to cause the apparatus to perform any of the methods of Aspects 15 to 23.
[0173] Aspect 28: An apparatus for wireless communication at a first wireless device, comprising at least one component for performing the method as described in any one of aspects 15 to 23.
[0174] Aspect 29: A non-transitory computer-readable medium storing code for wireless communication at a first wireless device, the code comprising instructions executable by a processor to perform the method according to any one of aspects 15 to 23.
[0175] It should be noted that the methods described herein describe possible implementations, and that operations and steps may be rearranged or otherwise modified, and that other implementations are possible. Furthermore, aspects from two or more methods may be combined.
[0176] The technology described herein can be used in various wireless communication systems, such as code division multiple access (CDMA), time division multiple access (TDMA), frequency division multiple access (FDMA), orthogonal frequency division multiple access (OFDMA), single carrier frequency division multiple access (SC-FDMA) and other systems. The terms "system" and "network" are usually used interchangeably. Code division multiple access (CDMA) systems can implement radio technologies such as CDMA2000, Universal Terrestrial Radio Access (UTRA), etc. CDMA2000 covers IS-2000, IS-95 and IS-856 standards. IS-2000 versions are usually referred to as CDMA2000 1X, 1X, etc. IS-856 (TIA-856) is usually referred to as CDMA20001xEV-DO, high rate packet data (HRPD), etc. UTRA includes broadband CDMA (WCDMA) and other variants of CDMA. Time division multiple access (TDMA) systems can implement radio technologies such as global system for mobile communications (GSM). An Orthogonal Frequency Division Multiple Access (OFDMA) system may implement wireless technologies such as Ultra Mobile Broadband (UMB), Evolved UTRA (E-UTRA), IEEE 802.11 (Wi-Fi), IEEE 802.16 (WiMAX), IEEE 802.20, Flash-OFDM, and the like.
[0177] One or more wireless communication systems described herein may support synchronous or asynchronous operation. For synchronous operation, stations may have similar frame timing, and transmissions from different stations may be approximately aligned in time. For asynchronous operation, stations may have different frame timing, and transmissions from different stations may not be aligned in time. The techniques described herein may be used for synchronous or asynchronous operation.
[0178] DL transmissions described herein may also be referred to as forward link transmissions, and uplink (UL) transmissions may also be referred to as reverse link transmissions. Each communication link described herein - including, for example, Figure 1 and the wireless communication systems 100 and 200 of FIG. 2 —may include one or more carriers, wherein each carrier may be a signal composed of a plurality of subcarriers (eg, waveform signals of different frequencies).
[0179] The descriptions set forth herein in conjunction with the accompanying drawings describe example configurations and do not represent all examples that can be implemented or fall within the scope of the claims. The term "exemplary" as used herein means "used as an example, instance, or illustration," rather than "preferred" or "better than other examples." The detailed description includes specific details for providing an understanding of the described techniques. However, these techniques may be practiced without these specific details. In some examples, well-known structures and devices are shown in block diagram form to avoid obscuring the concepts of the described examples.
[0180] In the drawings, similar components or features may have the same reference number. In addition, various components of the same type may be distinguished by following the reference number with a dash and a second reference that distinguishes between the similar components. If only the first reference number is used in the specification, the description applies to any of the similar components having the same first reference number, regardless of the second reference number.
[0181] The information and signals described herein may be represented using any of a variety of different techniques and technologies. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be mentioned throughout the specification may be represented by voltage, current, electromagnetic waves, magnetic fields or magnetic particles, optical fields or optical particles, or any combination thereof.
[0182] The various illustrative blocks and modules described in conjunction with the disclosure herein may be implemented or executed with a general purpose processor, a DSP, an ASIC, an FPGA or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, but in an alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. The processor may also be implemented as a combination of computing devices (e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, a combination of one or more microprocessors and a DSP core, or any other such configuration).
[0183] The functions described herein can be implemented in hardware, software executed by a processor, firmware, or any combination thereof. If implemented in software executed by a processor, the functions can be stored on a computer-readable medium or transmitted via a computer-readable medium as one or more instructions or codes. Other examples and implementations are within the scope of the present disclosure and the appended claims. For example, due to the nature of software, the functions described herein can be implemented using software, hardware, firmware, hard wiring, or any combination of these executed by a processor. The features that implement the functions can also be physically located at various locations, including being distributed so that the parts that implement the functions are implemented at different physical locations. In addition, as used herein (including claims), as used in a list of items (e.g., a list of items ending with phrases such as "at least one of ..." or "one or more of ..."), "or" indicates an inclusive list, so that, for example, a list of at least one of A, B, or C means A or B or C or AB or AC or BC or ABC (e.g., A and B and C). In addition, as used herein, the phrase "based on" should not be interpreted as a reference to a closed conditional set. For example, without departing from the scope of the present disclosure, an exemplary step described as "based on condition A" may be based on both condition A and condition B. In other words, as used herein, the phrase "based on" should be interpreted in the same manner as the phrase "based at least in part on."
[0184] Computer readable medium includes both non-transitory computer storage medium and communication medium, and communication medium includes any medium that promotes computer program to be transmitted from one place to another place.Non-transitory storage medium can be any available medium that can be accessed by general or special computer.As an example and not limitation, non-transitory computer readable medium can include RAM, ROM, electrically erasable programmable read-only memory (EEPROM), compact disk (CD) ROM or other optical disk storage, disk storage or other magnetic storage device, or can be used to carry or store instruction or data structure form of desired program code means and can be accessed by general or special computer or general or special processor any other non-transitory medium.In addition, any connection is appropriately referred to as computer readable medium.For example, if software is sent from website, server or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL) or wireless technology (such as infrared, radio and microwave), coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL) or wireless technology (such as infrared, radio and microwave) are included in the definition of medium. As used herein, disk and disc include CDs, laser discs, optical discs, digital versatile discs (DVDs), floppy disks and Blu-ray discs where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above are also included within the scope of computer-readable media.
[0185] The description herein is provided to enable those skilled in the art to make or use the present disclosure. Various modifications to the present disclosure will be apparent to those skilled in the art, and the general principles defined herein may be applied to other variations without departing from the scope of the present disclosure. Therefore, the present disclosure is not limited to the examples and designs described herein, but is intended to conform to the widest range consistent with the principles and novel features disclosed herein.
Claims
1. A device for wireless communication, comprising: processor; a memory coupled to the processor; as well as instructions stored in the memory and executable by the processor to cause the apparatus to: determining an average wake-up duration of the wireless device within the time window based at least in part on one or more wake-up durations of the wireless device over one or more previous time windows; modifying a bit rate of a real-time stream at the wireless device based at least in part on the average wake-up duration and a threshold time period; as well as The real-time stream is sent according to the modified bit rate.
2. The device according to claim 1, wherein: The instructions are also executable by the processor to cause the apparatus to: determining a target wakeup duration for the real-time stream; as well as The average wakeup duration is compared to the target wakeup duration, wherein modifying the bitrate of the real-time stream is based at least in part on the comparison.
3. The device according to claim 2, wherein: The instructions are also executable by the processor to cause the apparatus to: It is determined that the average wakeup duration is shorter than the target wakeup duration, wherein modifying the bitrate of the real-time stream includes increasing the bitrate of the real-time stream.
4. The device according to claim 2, wherein: The instructions are also executable by the processor to cause the apparatus to: It is determined that the average wakeup duration is longer than the target wakeup duration, wherein modifying the bitrate of the real-time stream includes decreasing the bitrate of the real-time stream.
5. The device according to claim 2, wherein: The target wakeup duration is based at least in part on a latency threshold for the real-time stream, a quality threshold for the real-time stream, a power budget for the wireless device, or any combination thereof.
6. The device according to claim 1, wherein: Modifying the bit rate of the real-time stream is based at least in part on a congestion level of a channel associated with the real-time stream.
7. The device according to claim 1, wherein: The instructions for determining the average wake-up duration are executable by the processor to cause the apparatus to: A moving average of the number of the one or more previous wake durations is determined.
8. The device according to claim 1, wherein: The instructions for determining the average wake-up duration are also executable by the processor to cause the apparatus to: determining an average duration for a first recipient device associated with the real-time stream; as well as An average wake-up duration of a second recipient device associated with the real-time stream is determined.
9. The device according to claim 8, wherein: The instructions are also executable by the processor to cause the apparatus to: inputting one or more parameters associated with the first recipient device into an encoder associated with the wireless device; One or more parameters associated with the second recipient device are input to the encoder associated with the wireless device, wherein modifying the bit rate of the real-time stream is based at least in part on inputting one or more parameters associated with the first recipient device and one or more parameters associated with the second recipient device into the encoder.
10. The device according to claim 9, wherein: The one or more parameters include supported bit rates, access time, a received signal strength indicator, the average wake-up duration, a number of attempts to reestablish a connection with the wireless device, a number of dropped packets, or any combination thereof.
11. The device according to claim 8, wherein: The instructions are also executable by the processor to cause the apparatus to: A start time of a wake-up duration for the second recipient device is determined, wherein the start time is offset from a target wake-up duration.
12. The device according to claim 8, wherein: The first receiver device includes a left earphone and the second receiver device includes a right earphone.
13. The device according to claim 1, wherein: The wireless device is connected to a home access point in a home network or a collection of access points in a mesh home network.
14. The device according to claim 1, wherein: The real-time stream includes an audio stream, a video stream, a phone call, tactile feedback, or any combination thereof.
15. An apparatus for wireless communication at a first wireless device, comprising: processor; a memory coupled to the processor; as well as instructions stored in the memory and executable by the processor to cause the apparatus to: receiving a plurality of data bursts from a second wireless device during the wake-up duration and according to the scheduling pattern, wherein each data burst of the plurality of data bursts comprises a set of data packets; determining the scheduling mode for the second wireless device based at least in part on receiving the plurality of data bursts; as well as The wake-up duration of the first wireless device is reduced based at least in part on modifying a bit rate of the first wireless device and the scheduling mode of the second wireless device.
16. The device according to claim 15, wherein: The instructions are also executable by the processor to cause the apparatus to: An average burst length of the plurality of data bursts in the wake-up duration is determined, wherein determining the scheduling mode is based at least in part on determining the average burst length.
17. The device according to claim 16, wherein: The instructions are also executable by the processor to cause the apparatus to: determining a first power usage value associated with receiving each of the plurality of data bursts; and A second power usage value associated with avoiding receiving a last data burst of the plurality of data bursts is determined, wherein reducing the wakeup duration of the first wireless device is based at least in part on determining the first power usage value and the second power usage value.
18. The device according to claim 16, wherein: The instructions are also executable by the processor to cause the apparatus to: A last data burst of the plurality of data bursts in the wake-up duration is excluded based at least in part on the scheduling pattern, wherein determining an average burst length of the plurality of data bursts comprises determining an average burst length of a remaining number of data bursts in the plurality of data bursts in the wake-up duration.
19. The device according to claim 18, wherein: The instructions are also executable by the processor to cause the apparatus to: An average burst length of last data bursts in a plurality of previous wake-up durations is determined, wherein excluding the last data burst in the plurality of data bursts in the wake-up duration is based at least in part on the average burst length.
20. The device according to claim 19, wherein Reducing the wake-up duration of the first wireless device is based at least in part on an average burst length of a last burst being shorter than an average burst length of the remaining number of data bursts.
21. The device according to claim 15, wherein: Reducing the wake-up duration of the first wireless device is based at least in part on a threshold quality loss of the first wireless device.
22. The device according to claim 15, wherein: The instructions are also executable by the processor to cause the apparatus to: A maximum burst size is determined, wherein reducing the wake-up duration of the first wireless device is based at least in part on the maximum burst size.
23. The device according to claim 15, wherein: The instructions are also executable by the processor to cause the apparatus to: An indication of a modified bit rate of the first wireless device is received from at least one peripheral device, wherein the modified bit rate is based at least in part on the plurality of data bursts, and wherein reducing the wake-up duration of the first wireless device is based at least in part on receiving the indication of the modified bit rate.
24. A method for wireless communication, comprising: determining an average wake-up duration of the wireless device within the time window based at least in part on one or more wake-up durations of the wireless device over one or more previous time windows; modifying a bit rate of a real-time stream at the wireless device based at least in part on the average wake-up duration and a threshold time period; as well as The real-time stream is sent according to the modified bit rate.
25. The method according to claim 24, further comprising: determining a target wakeup duration for the real-time stream; as well as The average wakeup duration is compared to the target wakeup duration, wherein modifying the bitrate of the real-time stream is based at least in part on the comparison.
26. The method according to claim 25, further comprising: It is determined that the average wakeup duration is shorter than the target wakeup duration, wherein modifying the bitrate of the real-time stream includes increasing the bitrate of the real-time stream.
27. The method of claim 25, further comprising: It is determined that the average wakeup duration is longer than the target wakeup duration, wherein modifying the bitrate of the real-time stream includes decreasing the bitrate of the real-time stream.
28. A method for wireless communication at a first wireless device, comprising: receiving a plurality of data bursts from a second wireless device during the wake-up duration and according to the scheduling pattern, wherein each data burst of the plurality of data bursts comprises a set of data packets; determining the scheduling mode for the second wireless device based at least in part on receiving the plurality of data bursts; as well as The wake-up duration of the first wireless device is reduced based at least in part on modifying a bit rate of the first wireless device and the scheduling mode of the second wireless device.
29. The method according to claim 28, further comprising: An average burst length of the plurality of data bursts in the wake-up duration is determined, wherein determining the scheduling mode is based at least in part on determining the average burst length.
30. The method of claim 29, further comprising: determining a first power usage value associated with receiving each of the plurality of data bursts; as well as A second power usage value associated with avoiding receiving a last data burst of the plurality of data bursts is determined, wherein reducing the wakeup duration of the first wireless device is based at least in part on determining the first power usage value and the second power usage value.