Electronic device, method, and non-transitory computer-readable storage medium for controlling transmission of packet for audio output
The electronic device efficiently controls packet transmission for audio output by prioritizing essential data packets and adaptively managing transmissions based on reception status, ensuring reliable delivery and enhanced audio quality.
Patent Information
- Application Number
- PCT/KR2024/014030
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-12-01
- Filing Date
- 2024-09-13
- Publication Date
- 2025-05-30
AI Technical Summary
Existing technologies face challenges in efficiently controlling the transmission of packets for audio output in wireless environments, particularly in ensuring reliable delivery and adapting to reception status.
An electronic device with a communication circuit for Bluetooth is programmed to transmit packets sequentially, prioritizing essential data packets and optionally transmitting auxiliary data packets only after receiving an acknowledgement for the essential packets. If no acknowledgement is received within a certain time, the device cancels the transmission of the current set of packets and proceeds with transmitting packets for subsequent audio outputs.
This approach ensures reliable transmission of essential audio data by prioritizing acknowledgements and adaptively managing packet transmission based on reception status, thereby minimizing sound cutoffs and enhancing audio quality.
Smart Images

Figure KR2024014030_30052025_PF_FP_ABST
Abstract
Description
Electronic device, method, and non-transitory computer-readable storage medium for controlling transmission of packets for audio output
[0001] The following descriptions relate to electronic devices, methods, and non-transitory computer-readable storage media for controlling the transmission of packets for audio output.
[0002] Bluetooth® (or legacy Bluetooth® (or classic Bluetooth)) is a short-range wireless technology standard used for exchanging data between electronic devices. Bluetooth can be provided on the ISM (industrial, scientific, and medical) radio band. For example, Bluetooth can be used to exchange text information, voice information, and / or audio information through wireless communication between electronic devices.
[0003] The above information may be provided as background art to aid in understanding the present disclosure. No claim or determination is made as to whether any of the above-described matters constitute prior art related to the present disclosure.
[0004] An electronic device within a wireless environment is described. The electronic device may include a communication circuit for Bluetooth. The electronic device may include a memory. The memory may store instructions for controlling the communication circuit to first transmit, from among a first set of packets to be sequentially transmitted to an external electronic device via a communication link between the external electronic device and the electronic device for output of a first audio, a first packet including data essential for the output of the first audio. The memory may store instructions for controlling the communication circuit to transmit, from among one or more remaining packets of the first set, a second packet including data optional for the output of the first audio based on receiving an acknowledgement packet for the first packet from the external electronic device before a usable time for the transmission of the first packet and one or more retransmissions of the first packet has elapsed. The memory may store instructions for controlling the communication circuit to cancel transmission of the first set of packets based on not receiving the confirmation packet from the external electronic device until the time elapses, and to transmit, using the communication circuit, a third packet including data essential for outputting the second audio from among the second set of packets to be sequentially transmitted to the external electronic device through the communication link for outputting the second audio following the first audio.
[0005] A method is described. The method can be executed in an electronic device in a wireless environment including a communication circuit for Bluetooth. The method can include an operation of first transmitting, using the communication circuit, a first packet including data essential for the output of the first audio, from among a first set of packets to be sequentially transmitted to an external electronic device through a communication link between the external electronic device and the electronic device for output of the first audio. The method can include an operation of transmitting, using the communication circuit, a second packet including data optional for the output of the first audio, from among one or more remaining packets of the first set, based on receiving an acknowledgement packet for the first packet from the external electronic device before a usable time for the transmission of the first packet and one or more retransmissions of the first packet has elapsed. The method may include canceling transmission of the first set of packets based on not receiving the confirmation packet from the external electronic device until the time elapses, and transmitting, using the communication circuit, a third packet, from among a second set of packets to be sequentially transmitted to the external electronic device via the communication link for output of second audio following the first audio, that includes data essential for output of the second audio.
[0006] A non-transitory computer-readable storage medium is described. The non-transitory computer-readable storage medium can store one or more programs. The one or more programs can include instructions that, when executed by an electronic device having a communication circuit for Bluetooth, cause the electronic device to first transmit, using the communication circuit, a first packet containing data essential for outputting the first audio, from among a first set of packets to be sequentially transmitted to an external electronic device through a communication link between the external electronic device and the electronic device for outputting the first audio. The one or more programs may include instructions that, when executed by the electronic device, cause the electronic device to transmit, using the communication circuitry, a second packet, including optional data for the output of the first audio, from among one or more remaining packets of the first set, based on receiving an acknowledgment packet for the first packet from the external electronic device before a usable time for the transmission of the first packet and one or more retransmissions of the first packet has elapsed. The one or more programs may include instructions that, when executed by the electronic device, cause the electronic device to cancel transmitting the packets of the first set, based on not receiving the acknowledgment packet from the external electronic device until the elapsed time, and to transmit, using the communication circuitry, a third packet, including data essential for the output of the second audio, from among a second set of packets to be sequentially transmitted to the external electronic device via the communication link for output of second audio following the first audio.
[0007] Figure 1 illustrates an example of a wireless environment including electronic devices and external electronic devices.
[0008] Figure 2 is a simplified block diagram of an exemplary electronic device.
[0009] FIG. 3 is a flowchart illustrating an exemplary method executed within an electronic device to control transmission of packets for audio output.
[0010] FIG. 4 is a flowchart illustrating an exemplary method executed within an electronic device to utilize information determined to control transmission of packets for audio output.
[0011] FIG. 5 illustrates an exemplary method for generating service data units (SDUs) used to generate packets to be transmitted to external electronic devices.
[0012] Figure 6 illustrates an exemplary method for storing SDUs in a buffer.
[0013] FIG. 7 is a flowchart illustrating an exemplary method executed within an electronic device to adaptively change another packet for transmission to an external electronic device based on the reception status of a packet transmitted to the external electronic device.
[0014] FIGS. 8 to 11 illustrate exemplary methods for adaptively changing other packets for transmission to an external electronic device depending on the reception status of packets transmitted to the external electronic device.
[0015] Figures 12 to 14 illustrate exemplary methods for transmitting acknowledgement packets and unacknowledged packets to an electronic device.
[0016] FIGS. 15 to 18 illustrate exemplary methods for controlling a buffer to adaptively change another packet for transmission to an external electronic device depending on the reception status of a packet transmitted to the external electronic device.
[0017] FIG. 19 illustrates an exemplary method for decoding packets received from an electronic device within an external electronic device.
[0018] FIG. 20 is a block diagram of an electronic device within a network environment according to various embodiments.
[0019] Figure 1 illustrates an example of a wireless environment including electronic devices and external electronic devices.
[0020] Referring to FIG. 1, a wireless environment (100) may include an electronic device (101) and an external electronic device (111).
[0021] The electronic device (101) may be a device that transmits a packet to an external electronic device (111) to output audio using the external electronic device (111). The electronic device (101) may be a device that receives one or more user inputs that are caused to output audio using the external electronic device (111). As a non-limiting example, the electronic device (101), unlike the external electronic device (111), may include a display for displaying visual information and receiving touch input. The electronic device (101) may operate as an audio source device within a wireless environment (100). The electronic device (101) may operate as a central device within the wireless environment (100).
[0022] The electronic device (101) may establish a communication link (131) between the electronic device (101) and the external electronic device (111) for communication with the external electronic device (111). For example, the electronic device (101) may transmit packets to the external electronic device (111) through the communication link (131) for outputting audio using the external electronic device (111). As a non-limiting example, the output of the audio (or streaming of the audio) may be provided via A2DP (advanced audio distribution profile). As a non-limiting example, the communication link (131) may include an ACL (asynchronous connection-less) link.
[0023] The electronic device (101) may be a portable electronic device (or mobile electronic device), such as a smartphone, a tablet device, or a laptop computer. However, the present invention is not limited thereto. The electronic device (101) may be a (primarily) stationary electronic device, such as a desktop computer or a stationary audio output device (e.g., an audio player including a digital-analog-converter (DAC)).
[0024] The external electronic device (111) may be a device that outputs audio using a packet received from the electronic device (101) through a communication link (131). The external electronic device (111) may include a communication circuit for receiving the packet. The communication circuit may include a communication circuit for Bluetooth. The external electronic device (111) may be a device that decodes the packet or data obtained from the packet to output the audio. The external electronic device (111) may include a speaker for outputting the audio. The external electronic device (111) may operate as an audio sink device within a wireless environment (100). The external electronic device (111) may operate as a peripheral device within the wireless environment (100).
[0025] For example, the external electronic device (111) can establish a communication link (131) with the electronic device (101). As a non-limiting example, the communication link (131) can be established based on a connection request transmitted from the external electronic device (111) to the electronic device (101) based on recognizing that a door of a device (e.g., a cradle) usable for charging a rechargeable battery of the external electronic device (111) changes from a closed state to an open state while the device is storing the external electronic device (111). As a non-limiting example, the communication link (131) may be established based on a packet advertised from the external electronic device (111) based on recognizing that the state of the door of the device (111) changes from the closed state to the open state while the device (111) is housed in the external electronic device (111), thereby recharging the rechargeable battery of the external electronic device (111). For example, the external electronic device (111) may receive packets for audio output from the electronic device (101) via the communication link (131). For example, the external electronic device (111) may output audio based on decoding the packets or data obtained from the packets.
[0026] The external electronic device (111) may be a wearable electronic device, such as earphones or headphones. However, the present invention is not limited thereto. The external electronic device (111) may be a device mounted on an object, such as a portable amplifier (or speaker) or a stationary amplifier.
[0027] The wireless environment (100) may further include another external electronic device (112). For example, the other external electronic device (112) may be identical to or similar to the external electronic device (111). As a non-limiting example, the other external electronic device (112) may be paired with the external electronic device (111). For example, audio output through the external electronic device (111) and audio output through the other external electronic device (112) may provide stereophonic sound. For example, the other external electronic device (112) may establish a communication link (132) between the external electronic device (111) and the other external electronic device (112). As a non-limiting example, the communication link (132) may be established based on a device (e.g., a cradle) capable of charging the rechargeable batteries of the external electronic device (111) and the other external electronic device (112) recognizing that the state of the door of the device changes from a closed state to an open state while the external electronic device (111) and the other external electronic device (112) are housed therein. For example, within the relationship between the external electronic device (111) and the other external electronic device (112), the external electronic device (111) may have a primary role and the other external electronic device (112) may have a secondary role. However, the present invention is not limited thereto. For example, depending on the state of the battery of the external electronic device (111) and / or the state of the battery of the other external electronic device (112), the other external electronic device (112) may have a primary role and the external electronic device (111) may have a secondary role.
[0028] As a non-limiting example, another external electronic device (112) having a secondary role may monitor, verify, recognize, or sniff the communication link (131) (or the status of the communication link (131)) using connection information of the communication link (131) received from the external electronic device (111) via the communication link (132), as indicated by arrow (134). For example, the other external electronic device (112) may obtain packets transmitted from the electronic device (101) to the external electronic device (111) via the communication link (131) to output audio through the sniffing. For example, the other external electronic device (112) may decode the packets or data obtained from the packets. For example, the other external electronic device (112) may output audio based on the data. However, the present invention is not limited thereto. For example, the other external electronic device (112) may output audio based on receiving from the external electronic device (111) via the communication link (132) at least some of the packets provided from the electronic device (101) to the external electronic device (111) via the communication link (131). As another example, the other external electronic device (112) may output audio based on receiving packets transmitted from the electronic device (101) via the communication link (133) between the electronic device (101) and the other external electronic device (112) to output audio.
[0029] The operations for signaling between the electronic device (101) and the external electronic device (111) exemplified below can also be applied to operations for signaling between the electronic device (101) and another external electronic device (112).
[0030] As a non-limiting example, the electronic device (101) may schedule the transmission of packets to the external electronic device (111) via the communication link (131) to output audio from the external electronic device (111) via A2DP. For example, the electronic device (101) may transmit one (a) of the packets to the external electronic device (111) via the communication link (131). The packet may be successfully received by the external electronic device (111), but may not be successfully received by the external electronic device (111). For example, if reception of the packet fails, the external electronic device (111) may transmit a non-acknowledgement packet to the electronic device (101) via the communication link (131) or may not transmit an acknowledgment packet to the electronic device (101) via the communication link (131). For example, if the flush timeout value of the packet is infinite, the electronic device (101) may continue to retransmit the packet until it recognizes that the packet has been successfully received by the external electronic device (111). For example, if another packet among the packets has a higher priority than the packet, transmitting the other packet to the external electronic device (111) through the communication link (131) may not even be attempted due to the continuous execution of the retransmission of the packet. For example, since the continuous execution of the retransmission of the packet may deprive the other packet of a transmission opportunity, a method may be required in the wireless environment (100) to provide more transmission opportunities to packets with higher priorities. The method may be implemented through components of the electronic device (101). The components are exemplified in the description of FIG. 2.
[0031] Figure 2 is a simplified block diagram of an exemplary electronic device.
[0032] Referring to FIG. 2, the electronic device (101) may include a processor (210), a memory (220), and a communication circuit (230).
[0033] The processor (210) may be used to execute the operations of the electronic device (101) exemplified in the descriptions of FIGS. 3 to 19. For example, the processor (210) may include at least a portion of the processor (2020) of FIG. 20 or correspond to at least a portion of the processor (2020) of FIG. 20. For example, the processor (210) may include one or more processors, including an application processor (AP) and / or a communication processor (CP). For example, the processor (210) may be implemented as a single chip, such as a system on chip (SoC), or may be implemented as multiple chips. For example, the processor (210) may be implemented as a single integrated circuit (or integrated circuitry), or may be implemented as multiple integrated circuits. For example, the processor (210) may be arranged in a distributed manner within the electronic device (101).
[0034] The memory (220) may (at least temporarily) store instructions for executing operations of the electronic device (101) exemplified in the descriptions of FIGS. 3 to 19. The instructions may be executed by the processor (210). The instructions may be included in one or more programs stored in the memory (220). For example, the memory (220) may include at least a portion of the memory (2030) of FIG. 20 (or at least a portion of the non-volatile memory (2034)) or may correspond to at least a portion of the memory (2030) of FIG. 20 (or at least a portion of the non-volatile memory (2034)). For example, the memory (220) may include a main memory (e.g., a random access memory (RAM), a register for the processor (210), a cache for the processor (210), a register for the communication circuit (230), a buffer (or soft buffer) for the communication circuit (230), and / or an auxiliary memory (e.g., a hard disk drive (HDD), a solid state drive (SSD)) of the electronic device (101) within the electronic device (101). For example, the memory (220) may be implemented as a single chip or may be implemented as multiple chips. For example, the memory (220) may be implemented as a single integrated circuit or may be implemented as multiple integrated circuits. For example, the memory (220) may be arranged in a distributed manner within the electronic device (101).
[0035] The communication circuit (230) can be used to support Bluetooth communication (e.g., legacy Bluetooth communication (or classic Bluetooth communication and / or BLE (Bluetooth low energy)) between the electronic device (101) and another electronic device (e.g., external electronic device (111)). For example, the communication circuit (230) can include at least a part of the communication module (2090) (or wireless communication module (2092)) of FIG. 20, or can correspond to at least a part of the communication module (2090) (or wireless communication module (2092)) of FIG. 20. For example, the communication circuit (230) can include a communication circuit for Bluetooth. For example, the communication circuit (230) can be used to establish a communication link (131). For example, the communication circuit (230) can be used to transmit a packet to the external electronic device (111) via the communication link (131). For example, the communication The circuit (230) may be used to receive packets from an external electronic device (111) via a communication link (131). For example, the communication circuit (230) may be used to further support other communication techniques (e.g., Wi-Fi (wireless fidelity) communication techniques) that are distinct from the Bluetooth communication technique. For example, the communication circuit (230) may be implemented as a single chip or may be implemented as multiple chips. For example, the communication circuit (230) may be implemented as a single integrated circuit or may be implemented as multiple integrated circuits. For example, the communication circuit (230) may be arranged in a distributed manner within the electronic device (101).
[0036] The components of the electronic device (101) illustrated above can be used to execute (or perform) the operations of the electronic device (101) illustrated in the descriptions of FIGS. 3 to 19.
[0037] FIG. 3 is a flowchart illustrating an exemplary method executed within an electronic device to control transmission of packets for audio output.
[0038] Referring to FIG. 3, in operation 301, the electronic device (101) may establish a communication link (131) with an external electronic device (111). For example, operation 301 may be executed by executing instructions stored in the memory (220). For example, the instructions may be executed by the processor (210). For example, operation 301 may be executed using the communication circuit (230). As a non-limiting example, operation 301 may be executed according to the method exemplified in the description of FIG. 1.
[0039] In operation 303, the electronic device (101) may detect an event. For example, operation 303 may be executed by executing instructions stored in the memory (220). For example, the instructions may be executed by the processor (210).
[0040] The above event may represent an event that causes execution of operation 305 and / or operation 307. The above event may be defined within the electronic device (101) to execute transmission (or differential transmission) (or adaptive transmission) (or selective transmission) executed in operation 307 using information determined (or acquired) (or identified) (or generated) (or scheduled) in operation 305.
[0041] For example, the event may include receiving (or recognizing) (or identifying) (or confirming) (or obtaining) a user request (e.g., a request to output lossless audio using an external electronic device (111). As a non-limiting example, the event may include receiving a touch input on an executable object (e.g., an executable object within a user interface of a software application for playing music) that indicates playing music set to output lossless audio while the communication link (131) is maintained. As a non-limiting example, the event may include recognizing (or identifying) (or obtaining) a voice command (e.g., “play music”) received via a microphone of the electronic device (101) while the communication link (131) is maintained.
[0042] For example, the event may include receiving a user input for executing a software application for playing music. As a non-limiting example, the event may include receiving a touch input on an icon (or item) (or object) (or executable object) representing the software application while the communication link (131) is maintained. As a non-limiting example, the event may include receiving (or recognizing) (or identifying) (or obtaining) a voice command (e.g., “Run Samsung Music”) through a microphone of the electronic device (101) indicating execution of the software application while the communication link (131) is maintained.
[0043] For example, the event may include receiving (or recognizing) (or confirming) (or identifying) (or obtaining) a request from an external electronic device (111) (or another external electronic device (112)). As a non-limiting example, the event may include receiving the request transmitted from the external electronic device (111) via the communication link (131) in response to a user input of pressing a button exposed through a portion of the housing of the external electronic device (111) (or a user input on a touch area formed on the housing of the external electronic device (111). As a non-limiting example, the event may include receiving the request transmitted from the external electronic device (111) via the communication link (131) in response to a voice command obtained through a microphone of the external electronic device (111) (e.g., “play music”).
[0044] For example, the event may include recognizing (or confirming) (or identifying) a change in the state of the wireless environment (100). As a non-limiting example, the event may include recognizing that the state of the communication link (131) has changed. As a non-limiting example, the event may include confirming a decrease in the reception rate of packets transmitted through the communication link (131).
[0045] In operation 305, the electronic device (101) may determine (or identify) (or obtain) (or define) information for an audio service to be provided through an external electronic device (111) based on (or in response to) the event. For example, operation 305 may be executed by executing instructions stored in the memory (220). For example, the instructions may be executed by the processor (210). For example, the information determined in operation 305 may be transmitted from the electronic device (101) to the external electronic device (111) via the communication link (131). However, the present invention is not limited thereto.
[0046] For example, the information for the audio service determined in operation 305 may include information about a codec used (or to be used) for the audio service, information about the number of one (or single) set of packets for outputting audio to be transmitted to an external electronic device (111) for the audio service (or information about the number of one set of SDUs (service data units) for generating one set of packets for outputting audio to be transmitted to an external electronic device (111) for the audio service, respectively) (or information about the number of groups each including one set of packets (or one set of SDUs) for outputting audio to be transmitted to an external electronic device (111) for the audio service), information about the size of each of one set of packets (or one set of SDUs) for outputting audio to be transmitted to an external electronic device (111) for the audio service (or one set of Information about the bit rate of each of the packets (or a set of SDUs)), information about the time (or maximum time) available for transmission (and / or one or more retransmissions) of each of the set of packets for output of audio to be transmitted to the external electronic device (111) for the audio service (or information about the time available for transmission of each of the packets included in each of the groups) (e.g., a flush timeout value and / or a maximum number of retransmissions (or count)), and / or information about a method of decoding the packets to be transmitted to the external electronic device (111) for the audio service.
[0047] For example, a set of packets for outputting audio to be transmitted to an external electronic device (111) for the audio service may have different priorities. For example, a first packet of the packets of the set may have a first priority, and a second packet of the packets of the set may have a second priority. For example, the first packet of the packets of the set may include mandatory (or essential) data for outputting the audio, and the second packet of the packets of the set may include optional data for outputting the audio. For example, if the external electronic device (111) does not receive the first packet of the packets of the set from the electronic device (101), the external electronic device (111) may not output the audio even if it receives one or more remaining packets (e.g., including the second packet) of the packets of the set from the electronic device (101). For example, the first packet among the packets of the set may include data (or core audio data) that is (necessarily) required for restoration of the audio stored (or at least temporarily stored) within the electronic device (101), and the second packet among the packets of the set may include data (or extension data) for enhancing the quality of the audio output through the external electronic device (111) (e.g., data for additional sound quality improvement and / or additional sound field effect).
[0048] In operation 307, the electronic device (101) may transmit packets for the audio service to the external electronic device (111) via the communication link (131) according to the information determined in operation 305. For example, operation 307 may be executed by executing instructions stored in the memory (220). For example, the instructions may be executed by the processor (210). For example, operation 307 may be executed using the communication circuit (230).
[0049] For example, the electronic device (101) may perform differential transmission (or selective transmission) (or adaptive transmission) to the external electronic device (111) for the audio service through the operations exemplified in the descriptions of FIGS. 4 to 19. For example, the electronic device (101) may perform the differential transmission so that a packet having a first priority among a set of packets for outputting audio to be transmitted to the external electronic device (111) for the audio service has more transmission opportunities than other packets having a second priority lower than the first priority among the packets in the set. For example, the electronic device (101) may classify SDUs for generating packets to be transmitted to the external electronic device (111) for the audio service into a plurality of groups, and may perform the differential transmission so that packets obtained from SDUs in a first group having a first priority among the plurality of groups have more transmission opportunities than packets obtained from SDUs in a second group having a second priority lower than the first priority among the plurality of groups. The differential transmission is exemplified in more detail in the description of FIG. 4.
[0050] FIG. 4 is a flowchart illustrating an exemplary method executed within an electronic device to utilize information determined to control transmission of packets for audio output.
[0051] Referring to FIG. 4, in operation 401, the electronic device (101) may obtain SDUs according to the information for the audio service determined in operation 305. For example, operation 401 may be executed by executing instructions stored in the memory (220). For example, the instructions may be executed by the processor (210).
[0052] For example, the electronic device (101) can obtain (or generate) encoded data by encoding data for a sound source within the electronic device (101) using a codec for the audio service (e.g., the codec exemplified in the description of operation 305). For example, the encoded data can include data essential for audio output (e.g., core data) and auxiliary data for audio output (e.g., extension data (or residual data)). For example, the electronic device (101) can obtain the SDUs from the encoded data.
[0053] In operation 403, the electronic device (101) may classify the SDUs acquired in operation 401 into multiple groups according to the information for the audio service determined in operation 305. For example, operation 403 may be executed by executing instructions stored in the memory (220). For example, the instructions may be executed by the processor (210).
[0054] For example, a first group among the plurality of groups may have a first priority. For example, a second group among the plurality of groups may have a second priority lower than the first priority. For example, some of the SDUs containing data essential for audio output may be classified into the first group, and other some of the SDUs containing auxiliary data for audio output may be classified into the second group. Classifying the SDUs into the plurality of groups in operation 403 is exemplified in the description of FIG. 5.
[0055] FIG. 5 illustrates an exemplary method for generating service data units (SDUs) used to generate packets to be transmitted to an external electronic device.
[0056] Referring to FIG. 5, chart (500) illustrates a method of classifying acquired SDUs into multiple groups. The horizontal axis of chart (500) represents time.
[0057] For example, the plurality of groups may include a first group (560) for SDUs having a first priority, a second group (570) for SDUs having a second priority lower than the first priority, and a third group (580) for SDUs having a third priority lower than the second priority.
[0058] For example, the electronic device (101) may classify the SDU (500-1) into a first group (560) based on acquiring the SDU (500-1) including essential data for outputting the first audio (or may include the SDU (500-1) in the first group (560)). For example, the electronic device (101) may classify the SDU (520-1) into a third group (580) based on acquiring the SDU (520-1) including auxiliary data for outputting the first audio after classifying the SDU (500-1) into the first group (560) (or after acquiring the SDU (500-1)). As a non-limiting example, the data in the SDU (520-1) may be available for applying an effect (e.g., sound quality improvement and / or sound field effect) to the first audio.
[0059] For example, the electronic device (101) may classify the SDU (500-2) into the first group (560) based on acquiring the SDU (500-2) that includes essential data for outputting the second audio following the first audio after classifying the SDU (520-1) into the third group (580) (or after acquiring the SDU (520-1)). For example, the electronic device (101) may classify the SDU (520-2) into the third group (580) based on acquiring the SDU (520-2) that includes auxiliary data for outputting the second audio after classifying the SDU (500-2) into the first group (560). As a non-limiting example, the data in the SDU (520-2) may be available for applying an effect to the second audio.
[0060] For example, the electronic device (101) may classify the SDU (500-3) into the first group (560) based on obtaining the SDU (500-3) containing essential data for outputting the third audio following the second audio after classifying the SDU (520-2) into the third group (580). For example, the electronic device (101) may classify the SDU (510-1) into the second group (570) based on obtaining the SDU (510-1) containing auxiliary data for outputting the first audio to the third audio, respectively, after classifying the SDU (500-3) into the first group (560). As a non-limiting example, the data in the SDU (510-1) may be available for applying an effect to each of the first audio to the third audio, respectively. For example, the electronic device (101) may classify the SDU (520-3) into the third group (580) based on classifying the SDU (510-1) into the second group (570) and then obtaining the SDU (520-3) containing auxiliary data for outputting the third audio. The data in the SDU (520-3) may be available for applying effects to the third audio.
[0061] For example, the electronic device (101) may classify the SDU (500-4) into the first group (560) based on obtaining the SDU (500-4) that includes essential data for outputting the fourth audio following the third audio after classifying the SDU (520-3) into the third group (580). For example, the electronic device (101) may classify the SDU (520-4) into the third group (580) based on obtaining the SDU (520-4) that includes auxiliary data for outputting the fourth audio after classifying the SDU (500-4) into the first group (560). The data in the SDU (520-4) may be available for applying an effect to the fourth audio.
[0062] For example, the electronic device (101) may classify the SDU (500-5) into the first group (560) based on obtaining the SDU (500-5) containing essential data for outputting the fifth audio following the fourth audio after classifying the SDU (520-4) into the third group (580). For example, the electronic device (101) may classify the SDU (520-5) into the third group (580) based on obtaining the SDU (520-5) containing auxiliary data for outputting the fifth audio after classifying the SDU (500-5) into the first group (560). The data in the SDU (520-5) may be available for applying an effect to the fifth audio.
[0063] For example, the electronic device (101) may classify the SDU (500-6) into the first group (560) based on obtaining the SDU (500-6) containing essential data for outputting the sixth audio following the fifth audio after classifying the SDU (520-5) into the third group (580). For example, the electronic device (101) may classify the SDU (510-2) into the second group (570) based on obtaining the SDU (510-2) containing auxiliary data for outputting the fourth audio to the sixth audio, respectively, after classifying the SDU (500-6) into the first group (560). For example, the data in the SDU (510-2) may be available for applying an effect to each of the fourth audio to the sixth audio, respectively. For example, the electronic device (101) may classify the SDU (520-6) into the third group (580) based on classifying the SDU (510-2) into the second group (570) and then obtaining the SDU (520-6) containing auxiliary data for outputting the sixth audio. The data in the SDU (520-6) may be available for applying an effect to the sixth audio.
[0064] For example, the electronic device (101) may classify the SDU (500-7) into the first group (560) based on obtaining the SDU (500-7) that includes essential data for outputting the seventh audio following the sixth audio after classifying the SDU (520-6) into the third group (580). For example, the electronic device (101) may classify the SDU (520-7) into the third group (580) based on obtaining the SDU (520-7) that includes auxiliary data for outputting the seventh audio after classifying the SDU (500-7) into the first group (560). The data in the SDU (520-7) may be available for applying an effect to the seventh audio.
[0065] For example, the electronic device (101) may classify the SDU (500-8) into the first group (560) based on obtaining the SDU (500-8) containing essential data for outputting the eighth audio following the seventh audio after classifying the SDU (520-7) into the third group (580). For example, the electronic device (101) may classify the SDU (520-8) into the third group (580) based on obtaining the SDU (520-8) containing auxiliary data for outputting the eighth audio after classifying the SDU (500-8) into the first group (560). The data in the SDU (520-5) may be available for applying an effect to the eighth audio.
[0066] For example, the electronic device (101) may classify the SDU (500-9) into the first group (560) based on obtaining the SDU (500-9) containing essential data for outputting the ninth audio following the eighth audio after classifying the SDU (520-8) into the third group (580). For example, the electronic device (101) may classify the SDU (510-3) into the second group (570) based on obtaining the SDU (510-3) containing auxiliary data for outputting each of the seventh audio to the ninth audio after classifying the SDU (500-9) into the first group (560). For example, the data in the SDU (510-3) may be available for applying an effect to each of the seventh audio to the ninth audio. For example, the electronic device (101) may classify the SDU (520-9) into a third group (580) based on obtaining the SDU (520-9) containing auxiliary data for outputting the ninth audio after classifying the SDU (510-3) into a second group (570). The data in the SDU (520-9) may be available for applying an effect to the ninth audio.
[0067] Referring back to FIG. 4, the type of data in each of the SDUs included in a first group among the plurality of groups may be different from the type of data in each of the SDUs included in a second group among the plurality of groups having a lower priority than the priority of the first group. For example, the type of data in each of the SDUs included in a third group among the plurality of groups having a lower priority than the priority of the second group may be different from the type of data in each of the SDUs in the first group and the type of data in each of the SDUs in the second group. For example, the type of data in each of the SDUs in the first group may be core data, which is essential data for audio output, the type of data in each of the SDUs in the second group may be first extension data, which is auxiliary data for audio output, and the type of data in each of the SDUs in the third group may be second extension data, which is auxiliary data for audio output and has a lower priority than the priority of the first extension data.
[0068] For example, the size of each of the SDUs included in the first group among the plurality of groups may be larger than the size of each of the SDUs included in the second group among the plurality of groups. For example, the size of each of the SDUs included in the third group among the plurality of groups may be smaller than the size of each of the SDUs included in the second group among the plurality of groups.
[0069] For example, the SDU interval for each of the SDUs included in the first group among the plurality of groups may be (substantially) the same as the SDU interval for each of the SDUs included in the second group among the plurality of groups and the SDU interval for each of the SDUs included in the third group among the plurality of groups.
[0070] For another example, the SDU interval for each of the SDUs included in the first group among the plurality of groups may be different from at least one of the SDU interval for each of the SDUs included in the second group among the plurality of groups or the SDU interval for each of the SDUs included in the third group among the plurality of groups. For example, the SDU interval for each of the SDUs included in the second group among the plurality of groups may be different from the SDU interval for each of the SDUs included in the third group.
[0071] For example, since the size of each of the SDUs in the first group is greater than the size of each of the SDUs in the second group, and the SDU interval for each of the SDUs in the first group is the same as the SDU interval for each of the SDUs in the second group, the bit rate for each of the SDUs in the first group may be higher than the bit rate for each of the SDUs in the second group. For example, since the size of each of the SDUs in the second group is greater than the size of each of the SDUs in the third group, and the SDU interval for each of the SDUs in the second group is the same as the SDU interval for each of the SDUs in the third group, the bit rate for each of the SDUs in the second group may be higher than the bit rate for each of the SDUs in the third group. However, the present invention is not limited thereto.
[0072] For example, the transmission opportunities of packets (e.g., protocol data units (PDUs)) obtained from each of the SDUs within the first group may be greater than the transmission opportunities of packets obtained from each of the SDUs within the second group. For example, the transmission opportunities of the packets obtained from each of the SDUs within the second group may be greater than the transmission opportunities of packets obtained from each of the SDUs within the third group. For example, the time allocated for transmission of the packets obtained from each of the SDUs within the first group and one or more retransmissions of the packets obtained from each of the SDUs within the first group may be greater than the time allocated for transmission of the packets obtained from each of the SDUs within the second group and one or more retransmissions of the packets obtained from each of the SDUs within the second group. For example, the time allocated for transmission of the packet obtained from each of the SDUs within the second group and one or more retransmissions of the packet obtained from each of the SDUs within the second group may be longer than the time allocated for transmission of the packet obtained from each of the SDUs within the third group and one or more retransmissions of the packet obtained from each of the SDUs within the third group.
[0073] For example, the flush timeout value of the packet obtained from each of the SDUs in the first group may be greater than the flush timeout value of the packet obtained from each of the SDUs in the second group. For example, the flush timeout value of the packet obtained from each of the SDUs in the second group may be greater than the flush timeout value of the packet obtained from each of the SDUs in the third group. For example, the flush timeout value of the packet obtained from each of the SDUs in the first group, the flush timeout value of the packet obtained from each of the SDUs in the second group, and the flush timeout value of the packet obtained from each of the SDUs in the third group may each be determined according to a jitter buffer depth. For example, the flush timeout value of the packet obtained from each of the SDUs in the first group may be a value corresponding to a predetermined ratio of the jitter buffer depth (e.g., approximately 2 / 3 of the jitter buffer depth). For example, the flush timeout value of the packet obtained from each of the SDUs in the second group may be a value obtained by subtracting the SDU interval for each of the SDUs included in the first group from the flush timeout value of the packet obtained from each of the SDUs in the first group. For example, the flush timeout value of the packet obtained from each of the SDUs in the third group may be a value obtained by subtracting the SDU interval for each of the SDUs included in the second group from the flush timeout value of the packet obtained from each of the SDUs in the second group.For example, the electronic device (101) can enhance the quality of audio output according to the audio service within the external electronic device (111) by setting a flush timeout value for each of the plurality of groups according to the jitter buffer depth. As a non-limiting example, the electronic device (101) can reduce sound interruption that occurs within the external electronic device (111) in relation to the audio service by setting a flush timeout value for each of the plurality of groups according to the jitter buffer depth.
[0074] For example, the maximum number of retransmissions (or counter) of the packet obtained from each of the SDUs within the first group may be greater than the maximum number of retransmissions of the packet obtained from each of the SDUs within the second group. For example, the maximum number of retransmissions (or counter) of the packet obtained from each of the SDUs within the second group may be greater than the maximum number of retransmissions of the packet obtained from each of the SDUs within the third group.
[0075] The above examples can be expressed as shown in Table 1 below.
[0076]
[0077] When the flush timeout value of Table 1 is used for each of the multiple groups, the maximum number of retransmissions of Table 1 may not be used for each of the multiple groups. When the maximum number of retransmissions of Table 1 is used for each of the multiple groups, the flush timeout value of Table 1 may not be used for each of the multiple groups.
[0078] Referring again to FIG. 4, in operation 405, the electronic device (101) may store the SDUs classified into the plurality of groups in a buffer for the communication circuit (230). For example, operation 405 may be executed by executing instructions stored in the memory (220). For example, the instructions may be executed by the processor (210). For example, the instructions may also be executed by the communication circuit (230) under the control of the processor (210).
[0079] For example, the buffer may be implemented in hardware or software. Storing the SDUs within the buffer is exemplified in the description of FIG. 6.
[0080] Figure 6 illustrates an exemplary method for storing SDUs in a buffer.
[0081] Referring to FIG. 6, the electronic device (101) may have a buffer for each of the plurality of groups. For example, as in state (600), the electronic device (101) may have a buffer (610) for a first group (560) among the plurality of groups, a buffer (620) for a second group (570) among the plurality of groups, and a buffer (630) for a third group (580) among the plurality of groups.
[0082] For example, the buffer (610) may be used to (at least temporarily) store SDUs classified into the first group (560). For example, the SDUs classified into the first group (560) may be sequentially stored in the buffer (610). For example, SDUs (500-1) to SDUs (500-9) may be stored in the buffer (610) according to the order in which the SDUs (500-1) to SDUs (500-9) are acquired (or the order in which the SDUs (500-1) to SDUs (500-9) are classified into the first group (560)). For example, the SDU stored first in the buffer (610) may be read first by the electronic device (101) (or the communication circuit (230)) (or the processor (210)). For example, SDU (500-1) stored in buffer (610) can be read by electronic device (101) (or communication circuit (230)) (or processor (210)) with priority over SDU (500-2) to SDU (500-9) stored in buffer (610).
[0083] For example, the buffer (620) may be used to (at least temporarily) store SDUs classified into the second group (570). For example, the SDUs classified into the second group (570) may be sequentially stored in the buffer (620). For example, SDUs (510-1) to SDUs (510-3) may be stored in the buffer (620) according to the order in which the SDUs (510-1) to SDUs (510-3) are acquired (or the order in which the SDUs (510-1) to SDUs (510-3) are classified into the second group (570)). For example, the SDU stored first in the buffer (620) may be read first by the electronic device (101) (or the communication circuit (230)) (or the processor (210)). For example, SDU (510-1) stored in buffer (620) can be read by electronic device (101) (or communication circuit (230)) (or processor (210)) with priority over SDU (510-2) to SDU (510-3) stored in buffer (620).
[0084] For example, the buffer (630) may be used to (at least temporarily) store SDUs classified into the third group (580). For example, the SDUs classified into the third group (580) may be sequentially stored in the buffer (630). For example, SDUs (520-1) to SDUs (520-9) may be stored in the buffer (630) according to the order in which the SDUs (520-1) to SDUs (520-9) are acquired (or the order in which the SDUs (520-1) to SDUs (520-9) are classified into the third group (580)). For example, the SDU stored first in the buffer (630) may be read first by the electronic device (101) (or the communication circuit (230)) (or the processor (210)). For example, SDU (520-1) stored in buffer (630) can be read by electronic device (101) (or communication circuit (230)) (or processor (210)) with priority over SDU (530-2) to SDU (530-9) stored in buffer (630).
[0085] The electronic device (101) may have one buffer (or a single buffer). For example, as in state (650), the electronic device (101) may have a buffer (660).
[0086] For example, the electronic device (101) may store the SDUs in the buffer (660) according to the order in which the SDUs are acquired. For example, the electronic device (101) may store SDUs (500-1) to SDUs (500-9), SDUs (510-1) to SDUs (510-3), and SDUs (520-1) to SDUs (520-9) in the buffer (660) according to the order indicated by the chart (500) of FIG. 5. For example, the SDUs stored first in the buffer (660) may be read first by the electronic device (101) (or the communication circuit (230)) (or the processor (210)). For example, the SDU (500-1) stored in the buffer (660) can be read by the electronic device (101) (or the communication circuit (230)) (or the processor (210)) with priority over the remaining SDUs stored in the buffer (660).
[0087] Referring back to FIG. 4, in operation 407, the electronic device (101) may execute transmissions of packets using SDUs stored in the buffer according to the information for the audio service determined in operation 305. For example, operation 407 may be executed by executing instructions stored in the memory (220). For example, the instructions may be executed by the processor (210). For example, the instructions may be executed by the communication circuit (230) under the control of the processor (210). For example, the instructions may be executed using the communication circuit (230). Operation 407 is illustrated in more detail in the description of FIG. 7.
[0088] FIG. 7 is a flowchart illustrating an exemplary method executed within an electronic device to adaptively change another packet for transmission to an external electronic device based on the reception status of a packet transmitted to the external electronic device.
[0089] Referring to FIG. 7, in operation 701, the electronic device (101) may first transmit, using the communication circuit (230), a first packet including data essential for outputting the first audio, from among a first set of packets to be sequentially transmitted to the external electronic device (111) via the communication link (131) for outputting the first audio. For example, operation 701 may be executed by executing instructions stored in the memory (220). For example, the instructions may be executed by the processor (210). For example, the instructions may be executed by the communication circuit (230) under the control of the processor (210). For example, the instructions may be executed using the communication circuit (230).
[0090] For example, the packets of the first set may include a first packet (e.g., a packet obtained from SDU (500-1)) which is one packet of a first group of packets having a first priority among the plurality of groups, and a second packet (e.g., a packet obtained from SDU (520-1)) which is one packet of a second group of packets having a second priority lower than the first priority among the plurality of groups. For example, the first set may represent a set of packets included in one transport block defined for decoding executed within the external electronic device (111) for the output of the first audio. However, the present invention is not limited thereto.
[0091] For example, each of the packets of the first set and the packets of the second set exemplified in operation 707 may be obtained to output each of the first audio and the second audio using an external electronic device (111) via A2DP.
[0092] For example, since the first packet has the highest priority among the packets of the first set, the electronic device (101) may transmit the first packet before transmitting one or more remaining packets of the first set (e.g., including the second packet). For example, the one or more remaining packets of the first set may be available to enhance the quality of the first audio output through the external electronic device (111).
[0093] For example, transmitting the one or more remaining packets of the first set (e.g., including the second packet) may not be performed within the electronic device (101) until an acknowledgment packet for the first packet is received, based on the information determined in operation 305. For example, the electronic device (101) may refrain from transmitting the one or more remaining packets of the first set until the acknowledgment packet is received. For example, if the first packet is not received by the external electronic device (111), since the external electronic device (111) cannot output the first audio even if it receives the one or more remaining packets of the first set, the electronic device (101) may refrain from, postpone, skip, bypass, or omit transmitting the one or more remaining packets of the first set until the acknowledgment packet is received.
[0094] In operation 703, the electronic device (101) may verify, identify, determine, recognize, or monitor whether it receives the acknowledgment packet for the first packet before a usable time elapses for the transmission of the first packet (e.g., transmitting the first packet in operation 701) and one or more retransmissions of the first packet (e.g., executing under the condition that the acknowledgment packet for the first packet transmitted in operation 701 is not received from the external electronic device (111). For example, operation 703 may be executed by executing instructions stored in the memory (220). For example, the instructions may be executed by the processor (210). For example, the instructions may be executed by the communication circuit (230) under the control of the processor (210). For example, the instructions may be executed using the communication circuit (230).
[0095] For example, operation 703 may be executed based on the information for the audio service determined in operation 305. For example, the time may correspond to a flush timeout value defined for the first group to which the first packet belongs (or the first group including the first group) according to operation 305. For example, the time may correspond to a maximum number of retransmissions (or counter) defined for the first group to which the first packet belongs according to operation 305.
[0096] Operation 703 can be implemented in various ways. For example, the electronic device (101) can determine whether the confirmation packet is received before the flush timeout of the first packet (e.g., the flush timeout according to the flush timeout value defined for the first group) elapses, and can determine whether the confirmation packet is received before the time elapses. As another example, the electronic device (101) can determine whether the confirmation packet is received before the number of one or more retransmissions of the first packet, which are executed based on not receiving the confirmation packet for the first packet transmitted in operation 701 from the external electronic device (111), reaches a reference number (e.g., the maximum number of retransmissions defined for the first group).
[0097] For example, the electronic device (101) may execute operation 705 on the condition that the confirmation packet is received before the time elapses, and otherwise execute operation 707.
[0098] In operation 705, the electronic device (101) may transmit, using the communication circuit (230), a second packet including incidental data for the output of the first audio from among the one or more remaining packets of the first set based on receiving the confirmation packet from the external electronic device (111) before the time elapses. For example, operation 705 may be executed by executing instructions stored in the memory (220). For example, the instructions may be executed by the processor (210). For example, the instructions may be executed by the communication circuit (230) under the control of the processor (210). For example, the instructions may be executed using the communication circuit (230).
[0099] For example, the electronic device (101) may transmit the second packet based on receiving the confirmation packet from the external electronic device (111) before the flush timeout of the first packet.
[0100] For another example, the electronic device (101) may execute one or more retransmissions of the first packet based on not receiving an acknowledgment packet for the first packet transmitted in operation 701. For example, the electronic device (101) may transmit the second packet based on receiving the acknowledgment packet before the number of the one or more retransmissions of the first packet reaches the reference number.
[0101] For example, because the priority of the second packet is lower than the priority of the first packet, the time available for the transmission of the second packet and one or more retransmissions of the second packet may be shorter than the time available for the transmission of the first packet and one or more retransmissions of the first packet.
[0102] In operation 707, the electronic device (101), based on not receiving the confirmation packet from the external electronic device (111) until the time elapses, cancels transmitting the packets of the first set, and first transmits, using the communication circuit (230), a third packet, which includes data essential for outputting the second audio, from among the packets of the second set to be sequentially transmitted to the external electronic device (111) via the communication link (131) for outputting the second audio following the first audio. For example, operation 707 may be executed by executing instructions stored in the memory (220). For example, the instructions may be executed by the processor (210). For example, the instructions may be executed by the communication circuit (230) under the control of the processor (210). For example, the above instructions can be executed using a communication circuit (230).
[0103] Operation 707 can be implemented in various ways. For example, the electronic device (101) may cancel transmission of the packets of the first set and transmit the third packet among the packets of the second set first based on not receiving the confirmation packet until the flush timeout of the first packet. For another example, the electronic device (101) may cancel transmission of the packets of the first set and transmit the third packet among the packets of the second set first based on not receiving the confirmation packet until the number of the one or more retransmissions of the first packet reaches the reference number.
[0104] For example, canceling transmission of the first set of packets may include removing a schedule for transmitting the first set of packets. For example, canceling transmission of the first set of packets may include discarding the first set of packets from a buffer for the communication circuitry (230). For example, canceling transmission of the first set of packets may include giving up transmitting the first set of packets. For example, canceling transmission of the first set of packets may include refraining from transmitting the first set of packets. For example, canceling transmission of the first set of packets may include terminating transmission of the first set of packets. Canceling transmission of the first set of packets may include ceasing transmission of the first set of packets. For example, canceling transmission of said first set of said packets may indicate that none of said first set of said packets were received by the external electronic device (111).
[0105] Cancellation of transmission of the packets of the first set may be implemented in various ways. For example, the electronic device (101) may cancel transmission of the packets of the first set by discarding the second packet before the flush timeout of the first packet and discarding the first packet in response to the flush timeout of the first packet.
[0106] For example, the packets of the second set may include a third packet (e.g., a packet obtained from SDU (500-2)), which is one packet of the first group of packets having the first priority among the plurality of groups, and a fourth packet (e.g., a packet obtained from SDU (520-2)), which is one packet of the second group of packets having the second priority among the plurality of groups. For example, the second set may represent a set of packets included in one transport block defined for decoding executed within the external electronic device (111) for the output of the second audio. However, the present invention is not limited thereto.
[0107] For example, since the third packet has the highest priority among the packets of the second set, the electronic device (101) may transmit the third packet before transmitting one or more remaining packets of the second set (e.g., including the fourth packet). For example, transmitting the one or more remaining packets of the second set (e.g., including the fourth packet) may not be performed within the electronic device (101) until an acknowledgement packet for the third packet is received, based on the information determined in operation 305. For example, the electronic device (101) may refrain from transmitting the one or more remaining packets of the second set until the acknowledgement packet is received. For example, if the third packet is not received by the external electronic device (111), the external electronic device (111) cannot output the second audio even if it receives the one or more remaining packets of the second set, so the electronic device (101) may refrain from, delay, skip, bypass, or omit transmitting the one or more remaining packets of the second set until the confirmation packet is received.
[0108] Although not shown in FIG. 7, for example, the electronic device (101) may, based on not receiving an acknowledgment packet for the first packet from the external electronic device (111) until the time available for the transmission of the first packet and the one or more retransmissions of the first packet (or the longest time allocated for the transmission of the first packet and the one or more retransmissions of the first packet) has elapsed before transmitting the third packet, transmit a packet replacing the first packet to the external electronic device (111) via the communication link (131) using the communication circuit (230). For example, transmitting the packet replacing the first packet may be performed prior to transmitting the third packet in operation 707 based on determining that the acknowledgment packet for the first packet has not been received in operation 703. For example, the packet may have a sequence number that is the same as the sequence number of the first packet. For example, the length of the packet may be 0. For example, the LLID (logical link identifier) code of the payload header of the packet may be '0b01'. For example, the electronic device (101) may first transmit the third packet having a sequence number (e.g., '1') different from the sequence number (e.g., '0') of the first packet among the packets of the second set based on receiving a confirmation packet for the packet from an external electronic device (111) through a communication link (131).
[0109] For example, since the first SDU (e.g., SDU (500-1) used to generate the first packet and the second SDU (e.g., SDU (500-2) used to generate the third packet) belong to the first group, the bit rate for the first SDU may be the same as the bit rate for the second SDU.
[0110] The operations of the electronic device (101) shown in the description of FIG. 7 may also be expressed as in the description of FIGS. 8 to 11.
[0111] FIGS. 8 to 11 illustrate exemplary methods for adaptively changing other packets for transmission to an external electronic device depending on the reception status of packets transmitted to the external electronic device.
[0112] Referring to FIG. 8, the electronic device (101) may first transmit a packet (801) corresponding to the first packet among the first set of packets illustrated in operation 701 to the external electronic device (111). For example, the external electronic device (111) may transmit an unconfirmed packet (803) indicating that the packet (801) was not successfully received to the electronic device (101), or may not transmit an unconfirmed packet (803) for the packet (801) to the electronic device (101) due to non-reception of the packet (801).
[0113] For example, the electronic device (101) may perform one or more retransmissions of the packet (801) within a time interval (804) based on receiving an unacknowledged packet (803) from an external electronic device (111) within a time interval (802) or not receiving an acknowledgement packet and an unacknowledged packet (803) for the packet (801) within a time interval (802) from the external electronic device (111). For example, the electronic device (101) may maintain the one or more retransmissions of the packet (801) until it receives the acknowledgement packet for the packet (801).
[0114] For example, the electronic device (101) can check whether the confirmation packet for the packet (801) is received within a time interval (800) starting from a timing (890) of first transmitting the packet (801). For example, the length of the time interval (800) may correspond to a flush timeout value of the packet (801) (or the first group to which the packet (801) belongs) (or the first set to which the packet (801) belongs). For example, the timing (891), which is the end timing of the time interval (800), may correspond to the timing of the flush timeout of the packet (801).
[0115] Although not shown in FIG. 8, the electronic device (101) may, in response to a flush timeout of packet (801), forgo transmitting the packets of the first set. For example, the electronic device (101) may forgo transmitting the packets of the first set for a transmission opportunity of packet (809). For example, the electronic device (101) may discard the packet (801) based on determining that the acknowledgement packet for the packet (801) is not received within the time interval (800). For example, the packet (801) may be flushed on the condition that the acknowledgement packet for the packet (801) is not received within the time interval (800). For example, the packets of the first set may be flushed on the condition that the acknowledgement packet for the packet (801) is not received within the time interval (800).
[0116] For example, in response to the flush timeout of the packet (801), the electronic device (101) may replace the packet (801) and transmit a packet (805) having a sequence number of the packet (801) and a length of 0 to the external electronic device (111). For example, the packet (805) may be transmitted to notify the external electronic device (111) that the packet (801) is flushed. For example, the LLID code in the payload header of the packet (805) may be '0b01'. For example, the external electronic device (111) may transmit an unacknowledged packet (807) to the electronic device (101) indicating that the packet (805) was not successfully received, or may not transmit an unacknowledged packet (807) for the packet (805) to the electronic device (101) due to non-reception of the packet (805).
[0117] For example, the electronic device (101) may perform one or more retransmissions of the packet (805) based on receiving an unacknowledged packet (807) for the initially transmitted packet (805) or failing to receive an acknowledgement packet (806) and an unacknowledged packet (807) for the initially transmitted packet (805). For example, the electronic device (101) may maintain the one or more retransmissions of the packet (805) until receiving an acknowledgement packet (806) for the packet (805).
[0118] For example, the external electronic device (111) may, within a time interval (808), in response to a retransmission of the packet (805), transmit an acknowledgement packet (806) for the packet (805) to the electronic device (101). The electronic device (101), in response to the acknowledgement packet (806) received from the external electronic device (111), may first transmit a packet (809) corresponding to the third packet among the second set of packets illustrated in operation 707 to the external electronic device (111). The packet (809) may have a different sequence number that is distinct from the sequence numbers of each of the packets (801) and the packet (805).
[0119] For example, upon transmission of packet (809), the flush timeout value of packet (809) (or the flush timeout value of the first group to which packet (809) belongs) may be activated. For example, in response to the start of the transmission of packet (809), a time interval corresponding to the flush timeout value of packet (809), such as time interval (800), may be determined (set).
[0120] For example, the external electronic device (111) may transmit an acknowledgement packet (811) to the electronic device (101) indicating that the packet (809) has been successfully received. For example, the electronic device (101) may, in response to the acknowledgement packet (811), transmit a packet (813) corresponding to the fourth packet, from among the one or more remaining packets of the second set, that includes auxiliary data for the output of the second audio, to the external electronic device (111). For example, the external electronic device (111) may transmit an acknowledgement packet (815) to the electronic device (101) indicating the successful reception of the packet (813).
[0121] Referring to FIG. 9, the electronic device (101) may first transmit a packet (801) corresponding to the first packet among the first set of packets illustrated in operation 701 to the external electronic device (111). For example, the external electronic device (111) may transmit an unconfirmed packet (803) indicating that the packet (801) was not successfully received to the electronic device (101), or may not transmit an unconfirmed packet (803) for the packet (801) to the electronic device (101) due to non-reception of the packet (801).
[0122] For example, the electronic device (101) may retransmit the packet (801) to the external electronic device (111) based on receiving an unconfirmed packet (803) from the external electronic device (111) or not receiving an acknowledgement packet (901) and an unconfirmed packet (803) for the packet (801) within a time interval (802) from the external electronic device (111). For example, the external electronic device (111) may transmit an acknowledgement packet (901) for the packet (801) to the electronic device (101) in response to successfully receiving the packet (801).
[0123] For example, the electronic device (101) can determine whether it receives the confirmation packet for the packet (801) within a time interval (800) starting from a timing (890) of initially transmitting the packet (801). For example, the length of the time interval (800) may correspond to a flush timeout value of the packet (801) (or the first group to which the packet (801) belongs) (or the packets of the first set). For example, the timing (891), which is the end timing of the time interval (800), may correspond to the timing of the flush timeout of the packet (801) (or the flush timeout of the packets of the first set).
[0124] For example, the electronic device (101) may, in response to an acknowledgement packet (901) received within the time interval (800), transmit a packet (902) corresponding to the second packet from among one or more remaining packets of the first set to the external electronic device (111). For example, the external electronic device (111) may transmit an unacknowledged packet (904) to the electronic device (101) indicating that the packet (902) was not successfully received, or may not transmit an unacknowledged packet (904) for the packet (902) to the electronic device (101) due to non-reception of the packet (902).
[0125] For example, the electronic device (101) may perform one or more retransmissions of the packet (902) based on receiving an unacknowledged packet (904) from an external electronic device (111) within a time interval (903) or not receiving an acknowledgement packet and an unacknowledged packet (904) for the packet (902) within a time interval (903) from the external electronic device (111).
[0126] Although not illustrated in FIG. 9, the electronic device (101) may give up transmitting the one or more remaining packets of the first set based on not receiving the acknowledgment packet for the packet (902) by timing (891), which is the end timing of the time interval (800) (or in response to a flush timeout of the packet (902). As a non-limiting example, the flush timeout value of the packet (902) may correspond to time interval (990) or time interval (995). For example, the start timing of time interval (990) may correspond to the start timing of transmission of the packet (902) (e.g., the start timing of time interval (903)), and the end timing of time interval (990) may correspond to timing (891), which is the end timing of the time interval (800). For example, the timing of the flush timeout of the packet (902) may correspond to the timing of the flush timeout of the packet (801), and the flush timeout value of the packet (902) may be shorter than the flush timeout value of the packet (801). As another example, the start timing of the time interval (995) may correspond to the start timing of the retransmission of the packet (801), which is the earliest timing at which the packet (902) can be transmitted, and the end timing of the time interval (995) may correspond to the timing (891), which is the end timing of the time interval (800). For example, the timing of the flush timeout of the packet (902) may correspond to the timing of the flush timeout of the packet (801), and the flush timeout value of the packet (902) may be shorter than the flush timeout value of the packet (801). For example, the electronic device (101) may replace the packet (902) and transmit a packet (905) having the sequence number of the packet (902) and length 0 to the external electronic device (111) based on not receiving the confirmation packet for the packet (902) by the timing (891) which is the end timing of the time interval (990).For example, packet (905) may be transmitted to notify external electronic device (111) that packet (902) is flushed. For example, the LLID code in the payload header of packet (905) may be '0b01'. For example, external electronic device (111) may transmit an unacknowledged packet (907) to electronic device (101) indicating that packet (905) was not successfully received, or may not transmit an unacknowledged packet (907) for packet (905) to electronic device (101) due to non-reception of packet (905).
[0127] For example, the electronic device (101) may perform one or more retransmissions of the packet (905) based on receiving an unacknowledged packet (907) for the initially transmitted packet (905) or failing to receive an acknowledgment packet (909) and an unacknowledged packet (907) for the initially transmitted packet (905). For example, the electronic device (101) may maintain the one or more retransmissions of the packet (905) until it receives an acknowledgment packet (909) for the packet (905).
[0128] For example, the external electronic device (111) may, within the time interval (911), in response to a retransmission of the packet (905), transmit an acknowledgement packet (909) for the packet (905) to the electronic device (101). The electronic device (101), in response to the acknowledgement packet (909) received from the external electronic device (111), may first transmit, to the external electronic device (111), a packet (809) corresponding to the third packet among the packets of the second set illustrated in operation 707. The packet (809) may have a different sequence number that is distinct from the sequence numbers of each of the packets (902) and the packet (905).
[0129] For example, the external electronic device (111) may transmit an acknowledgement packet (811) to the electronic device (101) indicating that the packet (809) has been successfully received. For example, the electronic device (101) may, in response to the acknowledgement packet (811), transmit a packet (813) corresponding to the fourth packet, from among the one or more remaining packets of the second set, that includes auxiliary data for the output of the second audio, to the external electronic device (111). For example, the external electronic device (111) may transmit an acknowledgement packet (815) to the electronic device (101) indicating the successful reception of the packet (813).
[0130] Referring to FIG. 10, the electronic device (101) may first transmit a packet (801) corresponding to the first packet among the first set of packets illustrated in operation 701 to the external electronic device (111). For example, the external electronic device (111) may transmit an unconfirmed packet (803) indicating that the packet (801) was not successfully received to the electronic device (101), or may not transmit an unconfirmed packet (803) for the packet (801) to the electronic device (101) due to non-reception of the packet (801).
[0131] For example, the electronic device (101) may retransmit the packet (801) to the external electronic device (111) based on receiving an unconfirmed packet (803) from the external electronic device (111) or failing to receive an acknowledgement packet (901) for the packet (801) and an unconfirmed packet (803) for the packet (801) from the external electronic device (111). For example, the external electronic device (111) may transmit an acknowledgement packet (901) for the packet (801) to the electronic device (101) in response to successfully receiving the packet (801).
[0132] For example, the electronic device (101) can determine whether it receives the confirmation packet for the packet (801) within a time interval (800) starting from a timing (890) of initially transmitting the packet (801). For example, the length of the time interval (800) may correspond to a flush timeout value of the packet (801) (or the first group to which the packet (801) belongs) (or the packets of the first set). For example, the timing (891), which is the end timing of the time interval (800), may correspond to the timing of the flush timeout of the packet (801) (or the flush timeout of the packets of the first set).
[0133] For example, the electronic device (101) may, in response to an acknowledgement packet (901) received within the time interval (800), transmit a packet (902) corresponding to the second packet from among one or more remaining packets of the first set to the external electronic device (111). For example, the external electronic device (111) may transmit an acknowledgement packet (1001) to the electronic device (101) indicating that the packet (902) has been successfully received.
[0134] As a non-limiting example, the flush timeout value of packet (902) may correspond to time interval (990) or time interval (995). For example, the start timing of time interval (990) may correspond to the start timing of transmission of packet (902) (e.g., the start timing of time interval (1083)), and the end timing of time interval (990) may correspond to timing (891), which is the end timing of time interval (800). For example, the timing of the flush timeout of packet (902) may correspond to the timing of the flush timeout of packet (801), and the flush timeout value of packet (902) may be shorter than the flush timeout value of packet (801). For another example, the start timing of the time interval (995) may correspond to the start timing of the retransmission of the packet (801), which is the earliest timing at which the packet (902) can be transmitted, and the end timing of the time interval (995) may correspond to the timing (891), which is the end timing of the time interval (800). For example, the timing of the flush timeout of the packet (902) may correspond to the timing of the flush timeout of the packet (801), and the flush timeout value of the packet (902) may be shorter than the flush timeout value of the packet (801).
[0135] For example, the electronic device (101) may, in response to an acknowledgement packet (1001) received within the time interval (800), transmit to the external electronic device (111) a packet (1002) containing auxiliary data for the output of the first audio, having a priority lower than each of packets (801) and (902), from among one or more remaining packets of the first set. For example, the external electronic device (111) may transmit to the electronic device (101) an acknowledgement packet (1003) indicating that the packet (1002) has been successfully received.
[0136] For example, the electronic device (101) may, in response to an acknowledgement packet (1003) received within the time interval (800), transmit a packet (1004) containing auxiliary data for the output of the first audio to the external electronic device (111) with a priority lower than the priorities of each of packet (801), packet (902), and packet (1002) from among one or more remaining packets of the first set. For example, the external electronic device (111) may transmit an unacknowledged packet (1005) to the electronic device (101) indicating that the packet (1004) was not successfully received, or may not transmit an unacknowledged packet (1005) for the packet (1004) to the electronic device (101) due to non-reception of the packet (1004).
[0137] For example, the electronic device (101) may perform one or more retransmissions of the packet (1004) based on not receiving the acknowledgement packet for the initially transmitted packet (1004).
[0138] Although not shown in FIG. 10, the electronic device (101) may give up transmitting one or more remaining packets of the first set based on not receiving the acknowledgement packet for the packet (1004) by timing (891), which is the end timing of the time interval (800) (or in response to a flush timeout of the packet (1004)). For example, the timing of the flush timeout of the packet (1004) may correspond to the timing of the flush timeout of the packet (801), and the flush timeout value of the packet (1004) may be shorter than the flush timeout value of the packet (801) (e.g., corresponding to the length of the time interval (800)), the flush timeout value of the packet (902) (e.g., corresponding to the length of the time interval (990) or the time interval (995)), and the flush timeout value of the packet (1002) (e.g., corresponding to the length of the time interval (1095) or the time interval (990)). For example, the flush timeout value of the packet (1004) may correspond to the length of the time interval (1090) or the length of the time interval (1095).
[0139] For example, based on not receiving the above-described confirmation packet for the packet (1004) by timing (891), which is the end timing of the time interval (800), the electronic device (101) may replace the packet (1004) and transmit a packet (1006) having a sequence number of the packet (1004) and a length of 0 to the external electronic device (111). For example, the packet (1006) may be transmitted to notify the external electronic device (111) that the packet (1004) is flushed. For example, the LLID code in the payload header of the packet (1006) may be '0b01'. For example, the external electronic device (111) may transmit an unacknowledged packet (1007) to the electronic device (101) indicating that the packet (1006) was not successfully received, or may not transmit an unacknowledged packet (1007) for the packet (1006) to the electronic device (101) due to non-reception of the packet (1006).
[0140] For example, the electronic device (101) may perform one or more retransmissions of the packet (1006) based on receiving an unacknowledged packet (1007) for the initially transmitted packet (1006) or failing to receive an acknowledgment packet (1009) and an unacknowledged packet (1007) for the initially transmitted packet (1006). For example, the electronic device (101) may maintain the one or more retransmissions of the packet (1006) until it receives an acknowledgment packet (1009) for the packet (1006).
[0141] For example, the external electronic device (111) may, within a time interval (1010), in response to a retransmission of the packet (1006), transmit an acknowledgement packet (1009) for the packet (1006) to the electronic device (101). The electronic device (101) may, in response to the acknowledgement packet (1009) received from the external electronic device (111), first transmit a packet (809) corresponding to the third packet among the packets of the second set illustrated in operation 707 to the external electronic device (111). The packet (809) may have a different sequence number that is distinct from the sequence numbers of each of the packets (1004) and the packet (1006).
[0142] For example, the external electronic device (111) may transmit an acknowledgement packet (811) to the electronic device (101) indicating that the packet (809) has been successfully received. For example, the electronic device (101) may, in response to the acknowledgement packet (811), transmit a packet (813) corresponding to the fourth packet, from among the one or more remaining packets of the second set, that includes auxiliary data for the output of the second audio, to the external electronic device (111). For example, the external electronic device (111) may transmit an acknowledgement packet (815) to the electronic device (101) indicating the successful reception of the packet (813).
[0143] For example, the transmission illustrated in the description of FIG. 7 may be executed through a maximum number of retransmissions.
[0144] Referring to FIG. 11, the electronic device (101) may first transmit a packet (801) corresponding to the first packet among the first set of packets illustrated in operation 701 to the external electronic device (111). For example, the external electronic device (111) may transmit an unconfirmed packet (803) indicating that the packet (801) was not successfully received to the electronic device (101), or may not transmit an unconfirmed packet (803) for the packet (801) to the electronic device (101) due to non-reception of the packet (801).
[0145] For example, the electronic device (101) may execute one or more retransmissions of the packet (801) based on receiving an unacknowledged packet (803) from the external electronic device (111) or failing to receive an acknowledgement packet (901) and an unacknowledged packet (803) for the packet (801) from the external electronic device (111). As a non-limiting example, the maximum number of retransmissions defined for the first group associated with the packet (801) may be 6. For example, the electronic device (101) may maintain the one or more retransmissions of the packet (801) until the number of the one or more retransmissions of the packet (801) reaches the maximum number of retransmissions of 6.
[0146] For example, the electronic device (101) may transmit a packet (902) corresponding to the second packet from among the one or more remaining packets of the first set to the external electronic device (111) based on receiving an acknowledgement packet (901) for the packet (801) from the external electronic device (111) before the number of the one or more retransmissions of the packet (801) reaches 6. For example, the external electronic device (111) may transmit an unacknowledged packet (904) to the electronic device (101) indicating that the packet (902) was not successfully received, or may not transmit an unacknowledged packet (904) for the packet (902) to the electronic device (101) due to non-reception of the packet (902).
[0147] For example, the electronic device (101) may execute one or more retransmissions of the packet (902) based on receiving an unacknowledged packet (904) from the external electronic device (111) or failing to receive an acknowledgement packet and an unacknowledged packet (904) for the packet (902) from the external electronic device (111). As a non-limiting example, the maximum number of retransmissions defined for the second group associated with the packet (902) may be 2. For example, the electronic device (101) may maintain the one or more retransmissions of the packet (902) until the number of the one or more retransmissions of the packet (801) reaches the maximum number of retransmissions, which is 2.
[0148] For example, based on not receiving the acknowledgement packet for the packet (902) from the external electronic device (111) until the number of said one or more retransmissions of the packet (902) reaches 2, the packet (902) may be replaced and a packet (905) having the sequence number of the packet (902) and length 0 may be transmitted to the external electronic device (111). For example, the packet (905) may be transmitted to notify the external electronic device (111) that the packet (902) is flushed. For example, the LLID code in the payload header of the packet (905) may be '0b01'. For example, the external electronic device (111) may transmit an acknowledgement packet (909) to the electronic device (101) indicating that the packet (905) was successfully received.
[0149] Although not shown in FIG. 11, the electronic device (101) may give up transmitting one or more remaining packets of the first set based on not receiving the acknowledgement packet for the packet (902) from the external electronic device (111) until the number of the one or more retransmissions reaches 2.
[0150] For example, in response to an acknowledgement packet (909) received from an external electronic device (111), the electronic device (101) may first transmit, to the external electronic device (111), a packet (809) corresponding to the third packet among the second set of packets illustrated in operation 707. The packet (809) may have a different sequence number that is distinct from the sequence numbers of each of the packets (902 and 905). For example, the external electronic device (111) may transmit, to the electronic device (101), an unacknowledged packet (1101) indicating that the packet (809) was not successfully received, or may not transmit, to the electronic device (101), an unacknowledged packet (1101) for the packet (809) due to non-reception of the packet (809).
[0151] For example, the electronic device (101) may execute one or more retransmissions of the packet (809) based on receiving an unacknowledged packet (1101) from the external electronic device (111) or failing to receive an acknowledgement packet and an unacknowledged packet (1101) for the packet (809) from the external electronic device (111). As a non-limiting example, since the maximum number of retransmissions defined for the first group associated with the packet (809) is 6, the electronic device (101) may maintain the one or more retransmissions of the packet (809) until the number of the one or more retransmissions of the packet (809) reaches the maximum number of retransmissions, which is 6.
[0152] For example, based on not receiving the acknowledgement packet for the packet (809) from the external electronic device (111) until the number of the one or more retransmissions of the packet (809) reaches 6, the packet (809) may be replaced and a packet (1102) having the sequence number of the packet (809) and length 0 may be transmitted to the external electronic device (111). For example, the packet (1102) may be transmitted to notify the external electronic device (111) that the packet (809) is flushed. For example, the LLID code in the payload header of the packet (1102) may be '0b01'. For example, the external electronic device (111) may transmit an acknowledgement packet (1103) to the electronic device (101) indicating that the packet (1102) was successfully received.
[0153] Although not shown in FIG. 11, the electronic device (101) may give up transmitting the second set of packets based on not receiving the acknowledgement packet for the packet (809) from the external electronic device (111) until the number of the one or more retransmissions of the packet (809) reaches 6.
[0154] For example, in response to an acknowledgement packet (1103) received from an external electronic device (111), the electronic device (101) may first transmit, to the external electronic device (111), a packet (1104) having the highest priority among a third set of packets to be transmitted to the external electronic device (111) via the communication link (131) for outputting a third audio following the second audio (e.g., the maximum number of retransmissions defined for the first group associated with packet (1104) is 6). The packet (1104) may include data essential for outputting the third audio. The packet (1104) may have a different sequence number that is distinct from the sequence numbers of each of packet (809) and packet (1102). For example, the external electronic device (111) may transmit an acknowledgement packet (1105) to the electronic device (101) indicating that the packet (1104) has been successfully received.
[0155] For example, the electronic device (101) may first transmit a packet (1106) containing auxiliary data for the output of the third audio from among one or more remaining packets of the third set based on receiving an acknowledgement packet (1105) from the external electronic device (111) before retransmission of the packet (1104) is performed. For example, the packet (1106) may have a different sequence number that is distinct from the sequence number of the packet (1104). For example, the external electronic device (111) may transmit an acknowledgement packet (1107) to the electronic device (101) indicating that the packet (1106) has been successfully received.
[0156] For example, the electronic device (101) may first transmit a packet (1108) containing auxiliary data for the output of the third audio from among one or more remaining packets of the third set based on receiving an acknowledgement packet (1107) from the external electronic device (111) before retransmission of the packet (1106). For example, the priority of the packet (1108) may be lower than the priority of the packet (1106). For example, the external electronic device (111) may transmit an unacknowledged packet (1109) to the electronic device (101) indicating that the packet (1108) was not successfully received, or may not transmit an unacknowledged packet (1109) for the packet (1108) to the electronic device (101) due to non-reception of the packet (1108).
[0157] For example, the electronic device (101) may perform one or more retransmissions of the packet (1108) based on receiving an unacknowledged packet (1109) from the external electronic device (111) or failing to receive an acknowledgement packet (1110) and an unacknowledged packet (1109) for the packet (1108) from the external electronic device (111). As a non-limiting example, the maximum number of retransmissions defined for the third group associated with the packet (1108) may be 1. For example, the electronic device (101) may maintain the one or more retransmissions of the packet (1108) until the number of the one or more retransmissions of the packet (1108) reaches the maximum number of retransmissions, which is 1.
[0158] For example, based on not receiving the acknowledgement packet for the packet (1108) from the external electronic device (111) until the number of the one or more retransmissions of the packet (1108) reaches 1, the packet (1108) may be replaced and a packet (1110) having a sequence number of the packet (1108) and a length of 0 may be transmitted to the external electronic device (111). For example, the packet (1110) may be transmitted to notify the external electronic device (111) that the packet (1108) is flushed. For example, the LLID code in the payload header of the packet (1110) may be '0b01'. For example, the external electronic device (111) may transmit the acknowledgement packet (1111) to the electronic device (101) indicating that the packet (1110) was successfully received.
[0159] Although not shown in FIG. 11, the electronic device (101) may give up transmitting the third set of packets based on not receiving the acknowledgement packet for the packet (1108) from the external electronic device (111) until the number of the one or more retransmissions of the packet (1108) reaches 1.
[0160] For example, in response to an acknowledgement packet (1111) received from an external electronic device (111), the electronic device (101) may first transmit to the external electronic device (111) a packet (1112) having the highest priority among the fourth set of packets to be transmitted to the external electronic device (111) via the communication link (131) for outputting the fourth audio following the third audio (e.g., the maximum number of retransmissions defined for the first group associated with the packet (1112) is 6). The packet (1112) may include data essential for outputting the fourth audio. The packet (1112) may have a different sequence number that is distinct from the sequence numbers of each of the packets (1108) and the packet (1110). For example, the external electronic device (111) may transmit an acknowledgement packet (1113) to the electronic device (101) indicating that the packet (1112) has been successfully received.
[0161] The method of transmitting confirmed packets and unconfirmed packets exemplified in the above description can be implemented in various ways within a wireless environment (100). The method of transmitting confirmed packets and unconfirmed packets is exemplified in the descriptions of FIGS. 12 to 14.
[0162] Figures 12 to 14 illustrate exemplary methods for transmitting acknowledgement packets and unacknowledged packets to an electronic device.
[0163] Referring to FIG. 12, the electronic device (101) may transmit a packet (1200) to an external electronic device (111) via a communication link (131) according to the methods exemplified above. For example, the external electronic device (111) may successfully receive the packet (1200) from the electronic device (101) via the communication link (131), as indicated by an indication (1201). For example, in response to the packet (1200) from the electronic device (101), the external electronic device (111) may transmit an acknowledgement packet (1203) to the electronic device (101) via the communication link (131), indicating that the packet (1200) has been successfully received. For example, an external electronic device (111) may transmit a confirmation packet (1203) to an electronic device (101) via a communication link (131) before confirming whether another external electronic device (112) has received a packet (1200) via a communication link (132). For example, the electronic device (101) may receive a confirmation packet (1203) from an external electronic device (111) via a communication link (131).
[0164] For example, the other external electronic device (112), unlike the external electronic device (111), may not successfully receive the packet (1200), as indicated by the indication (1202). As a non-limiting example, the other external electronic device (112) may fail to sniff the packet (1200) transmitted from the electronic device (101) to the external electronic device (111) via the communication link (131).
[0165] For example, based on transmitting a confirmation packet (1203) to the electronic device (101), the external electronic device (111) may transmit a packet (1204) to another external electronic device (112) via the communication link (132) to confirm whether the other external electronic device (112) has received the packet (1200). For example, the other external electronic device (112) may receive the packet (1204) from the external electronic device (111) via the communication link (132).
[0166] For example, another external electronic device (112) may, in response to packet (1204), transmit a packet (1205) to the external electronic device (111) via the communication link (132) indicating a failure to successfully receive packet (1200). For example, the external electronic device (111) may receive packet (1205) from another external electronic device (112) via the communication link (132).
[0167] For example, the external electronic device (111) may, in response to packet (1205), transmit a packet (1200) received from the electronic device (101) to another external electronic device (112) via the communication link (132). For example, the other external electronic device (112) may successfully receive the packet (1200) from the external electronic device (111) via the communication link (132), as indicated by indication (1207). For example, the other external electronic device (112) may transmit a packet (1208) to the external electronic device (111) via the communication link (132), indicating that it successfully received the packet (1200). For example, the external electronic device (111) may receive the packet (1208) from another external electronic device (112) via the communication link (132).
[0168] Meanwhile, the electronic device (101) may transmit the packet (1209) to the external electronic device (111) via the communication link (131) according to the methods exemplified above. For example, the external electronic device (111) may not receive the packet (1209) due to transmitting the packet (1200) to another external electronic device (112). For example, since the packet (1209) is not received by the external electronic device (111), the external electronic device (111) may not transmit the acknowledgement packet (1213) for the packet (1209) from the electronic device (101) and the unacknowledged packet for the packet (1209) to the electronic device (101), as indicated by the indication (1210).
[0169] For example, the electronic device (101) may retransmit the packet (1209) to the external electronic device (111) over the communication link (131) based on determining that it has not received an acknowledgment packet (1213) for the packet (1209). For example, the external electronic device (111) may successfully receive the packet (1209) from the external electronic device (111) over the communication link (131), as indicated by the indication (1211). For example, the external electronic device (111) may, in response to the packet (1209) from the electronic device (101), transmit an acknowledgment packet (1213) to the electronic device (101) over the communication link (131) indicating that it has successfully received the packet (1209). For example, the external electronic device (111) may transmit a confirmation packet (1213) to the electronic device (101) via the communication link (131) before confirming whether another external electronic device (112) has received the packet (1209) using the communication link (132). For example, the electronic device (101) may receive the confirmation packet (1213) from the external electronic device (111) via the communication link (131).
[0170] For example, another external electronic device (112) may successfully receive a packet (1209) from the electronic device (101), as indicated by indication (1212). As a non-limiting example, another external electronic device (112) may sniff a packet (1209) transmitted from the electronic device (101) to the external electronic device (111) via the communication link (131).
[0171] Referring to FIG. 13, the electronic device (101) may transmit a packet (1200) to an external electronic device (111) via a communication link (131) according to the methods exemplified above. For example, the external electronic device (111) may successfully receive the packet (1200) from the electronic device (101) via the communication link (131), as indicated by an indication (1201). For example, another external electronic device (112) may successfully receive the packet (1200) according to the methods exemplified above, as indicated by an indication (1301). For example, the other external electronic device (112), in response to successfully receiving the packet (1200), may transmit a signal (1302) to the external electronic device (111) via the communication link (132), indicating that the packet (1200) has been successfully received. For example, the external electronic device (111) can transmit a confirmation packet (1303) for the packet (1200) to the electronic device (101) via the communication link (131) based on the packet (1200) and signal (1302) successfully received by the external electronic device (111). For example, the electronic device (101) can receive the confirmation packet (1303) from the external electronic device (111) via the communication link (131).
[0172] For example, based on receiving a confirmation packet (1303), the electronic device (101) may transmit a packet (1209) to the external electronic device (111) via the communication link (131) according to the methods exemplified above. For example, the external electronic device (111) may successfully receive the packet (1209) from the external electronic device (111) via the communication link (131), as indicated by indication (1304). For example, another external electronic device (112), unlike the external electronic device (111), may not successfully receive the packet (1209), as indicated by indication (1305). As a non-limiting example, the other external electronic device (112) may fail to sniff the packet (1209) transmitted from the electronic device (101) to the external electronic device (111) via the communication link (131).
[0173] For example, whether another external electronic device (112) successfully received the packet (1209) may not be transmitted to the external electronic device (111) due to another external electronic device (112) not successfully receiving the packet (1209). For example, the external electronic device (111) may transmit an unacknowledged packet (1306) for the packet (1209) to the electronic device (101) via the communication link (131) based on determining that a signal from another external electronic device (112), such as signal (1302), is not received. For example, the external electronic device (111) may transmit an unacknowledged packet (1306) to the electronic device (101) based on determining that the packet (1209) was not normally received by both the external electronic device (111) and the other external electronic device (112).
[0174] Referring to FIG. 14, the electronic device (101) may transmit a packet (1200) to an external electronic device (111) via a communication link (131) according to the methods exemplified above. For example, the external electronic device (111) may successfully receive the packet (1200) from the electronic device (101) via the communication link (131), as indicated by an indication (1201). For example, the external electronic device (111) may, in response to the packet (1200) from the electronic device (101), transmit an acknowledgement packet (1400) to the electronic device (101) via the communication link (131), indicating that the packet (1200) has been successfully received. For example, the electronic device (101) may receive the acknowledgement packet (1400) from the external electronic device (111), as indicated by an indication (1401). For example, the other external electronic device (112) may successfully receive the packet (1200) from the electronic device (101) according to the methods exemplified above, as indicated by the indication (1301). For example, the other external electronic device (112) may, in response to the packet (1200) from the electronic device (101), transmit an acknowledgement packet (1403) to the electronic device (101) indicating the successful reception of the packet (1200). For example, the electronic device (101) may receive the acknowledgement packet (1403) from the other external electronic device (112), as indicated by the indication (1402). For example, the electronic device (101) may receive an acknowledgement packet or an unacknowledged packet from each of the external electronic device (111) and the other external electronic device (112), unlike the operations exemplified within the descriptions of FIGS. 12 and 13 .
[0175] For example, the electronic device (101) may, in response to the confirmation packet (1400) and the confirmation packet (1403) received from the external electronic device (111) and another external electronic device (112), respectively, transmit a packet (1209) to the external electronic device (111) via the communication link (131) according to the methods exemplified above. For example, the external electronic device (111) may successfully receive the packet (1209) from the external electronic device (111) via the communication link (131), as indicated by the indication (1201). For example, the external electronic device (111) may, in response to the packet (1209) from the electronic device (101), transmit an confirmation packet (1410) to the electronic device (101) via the communication link (131) indicating the successful reception of the packet (1209). For example, the electronic device (101) may receive a confirmation packet (1410) from an external electronic device (111). For example, another external electronic device (112) may not successfully receive the packet (1209) according to the methods exemplified above, as indicated by the indication (1305). For example, because the other external electronic device (112) did not successfully receive the packet (1209), the other external electronic device (112) may not transmit an confirmation packet for the packet (1209) to the electronic device (101).
[0176] As a non-limiting example, but not shown in FIG. 14, the electronic device (101) may perform a retransmission of the packet (1209) because the electronic device (101) has not received the confirmation packet for the packet (1209) from another external electronic device (112).
[0177] The transmission methods of the packets exemplified above can be executed through control of a buffer for the communication circuit (230). The control of the buffer is exemplified in the descriptions of FIGS. 15 to 18.
[0178] FIGS. 15 to 18 illustrate exemplary methods for controlling a buffer to adaptively change another packet for transmission to an external electronic device depending on the reception status of a packet transmitted to the external electronic device.
[0179] Referring to FIG. 15, the electronic device (101) may store, within a buffer for the communication circuit (230), using the processor (210), a first set (1501) of SDUs to be transmitted to an external electronic device (111) via a communication link (131) for outputting the first audio, within a first SDU interval (1581). For example, the SDUs of the first set (1501) may have different priorities. For example, among the SDUs of the first set (1501), SDU (1501-1) may have the highest priority. For example, among the SDUs of the first set (1501), SDU (1501-1) may include data essential for outputting the first audio. For example, the SDUs of the first set (1501) may be sequentially stored in the buffer according to priority within the first SDU interval (1581). As another example, the SDUs of the first set (1501) may be stored in the buffer simultaneously within the first SDU interval (1581).
[0180] For example, the electronic device (101) can obtain a packet (1511-1) corresponding to the SDU (1501-1) using the communication circuit (230). For example, the electronic device (101) can first transmit the packet (1511-1) to the external electronic device (111). For example, the external electronic device (111) can transmit an unconfirmed packet (1590) indicating that the packet (1511-1) was not successfully received to the electronic device (101), or not transmit an unconfirmed packet (1590) for the packet (1511-1) to the electronic device (101) due to non-reception of the packet (1511-1).
[0181] For example, the electronic device (101) may execute one or more retransmissions of the packet (1511-1) based on receiving an unacknowledged packet (1590) from the external electronic device (111) or failing to receive an acknowledgement packet (1592) and an unacknowledged packet (1590) from the external electronic device (111). For example, the electronic device (101) may maintain the one or more retransmissions of the packet (1511-1) until it receives an acknowledgement packet for the packet (1511-1) within a time interval (1570) corresponding to a flush timeout value of the packets of the first set (or packet (1511-1)).
[0182] For example, the electronic device (101) may store, within a buffer for the communication circuit (230), a second set (1502) of SDUs to be transmitted to the external electronic device (111) via the communication link (131) for outputting the second audio, within a second SDU interval (1582) following the first SDU interval (1581), using the processor (210). For example, the length of the second SDU interval (1582) may be the same as the length of the first SDU interval (1581). For example, the SDUs of the second set (1502) may have different priorities. For example, the SDUs of the second set (1502) may be stored while the acknowledgment packet for the packet (1511-1) is not received.
[0183] For example, the electronic device (101) may store, within a buffer for the communication circuit (230), using the processor (210), the SDUs of the third set (1503) to be transmitted to the external electronic device (111) via the communication link (131) for outputting the third audio, within a third SDU interval (1583) following the second SDU interval (1582). For example, the length of the third SDU interval (1583) may be the same as the length of the second SDU interval (1582). For example, the SDUs of the third set (1502) may have different priorities. For example, the SDUs of the third set (1503) may be stored while the acknowledgment packet for the packet (1511-1) is not received.
[0184] For example, the electronic device (101) may store, within a buffer for the communication circuit (230), using the processor (210), the SDUs of the fourth set (1504) to be transmitted to the external electronic device (111) via the communication link (131) for output of the fourth audio, within the fourth SDU interval (1584) following the third SDU interval (1583). For example, the length of the fourth SDU interval (1584) may be the same as the length of the third SDU interval (1583). For example, the SDUs of the fourth set (1504) may have different priorities. For example, the SDUs of the fourth set (1504) may be stored while the acknowledgment packet for the packet (1511-1) is not received.
[0185] For example, the electronic device (101) may store, within a buffer for the communication circuit (230), using the processor (210), the SDUs of the fifth set (1505) to be transmitted to the external electronic device (111) via the communication link (131) for outputting the fifth audio, within the fifth SDU interval (1585) following the fourth SDU interval (1584). For example, the length of the fifth SDU interval (1585) may be the same as the length of the fourth SDU interval (1584). For example, the SDUs of the fifth set (1505) may have different priorities. For example, the SDUs of the fifth set (1505) may be stored while the acknowledgment packet for the packet (1511-1) is not received.
[0186] For example, the electronic device (101) may, based on the acknowledgement packet for the packet (1511-1) that has not been received by the end timing of the time interval (1570), replace the packet (1511-1) and transmit a packet (1591) having a sequence number of the packet (1511-1) and a length of 0 to the external electronic device (111). For example, the external electronic device (111) may, based on successfully receiving the packet (1591), transmit an acknowledgement packet (1592) for the packet (1591) to the electronic device (101) via the communication link (131).
[0187] For example, the electronic device (101) may remove the SDUs of the first set (1501) from the buffer based on the acknowledgement packet for the packet (1511-1) that has not been received by the end timing of the time interval (1570).
[0188] For example, the electronic device (101) may store, within a buffer for the communication circuit (230), using the processor (210), the SDUs of the sixth set (1506) to be transmitted to the external electronic device (111) via the communication link (131) for output of the sixth audio, within the sixth SDU interval (1586) following the fifth SDU interval (1585). For example, the length of the sixth SDU interval (1586) may be the same as the length of the fifth SDU interval (1585). For example, the SDUs of the sixth set (1506) may have different priorities. As a non-limiting example, the SDUs of the sixth set (1506) may be stored after the SDUs of the first set (1501) are discarded.
[0189] For example, the operations of FIG. 15, which discard a set of SDUs based on the end timing of a time interval (1570), may be replaced with other operations. For example, the electronic device (101) may sequentially discard a set of SDUs whenever it fails to receive an acknowledgment packet for a packet transmitted from the electronic device (101) to the external electronic device (111). Such an operation is exemplified in the description of FIG. 16.
[0190] Referring to FIG. 16, the electronic device (101) may store, within a buffer for the communication circuit (230), using the processor (210), a first set (1601) of SDUs to be transmitted to the external electronic device (111) via the communication link (131) for outputting the first audio, within a first SDU interval (1681). For example, the SDUs of the first set (1601) may have different priorities. For example, among the SDUs of the first set (1601), SDU (1601-1) may have the highest priority. For example, among the SDUs of the first set (1601), SDU (1601-1) may include data essential for outputting the first audio. For example, the SDUs of the first set (1601) may have different flush timeout timings. For example, the SDUs of the first set (1601) may include SDUs (1601-1) to (1601-5). For example, SDUs (1601-5) may be flushed before SDUs (1601-1) to (1601-4) are flushed, SDUs (1601-4) may be flushed before SDUs (1601-1) to (1601-3) are flushed, SDUs (1601-3) may be flushed before SDUs (1601-1) to (1601-2) are flushed, and SDUs (1601-2) may be flushed before SDUs (1601-1) to (1601-2) are flushed.
[0191] For example, the electronic device (101) can obtain a packet (1611-1) corresponding to the SDU (1601-1) using the communication circuit (230). For example, the electronic device (101) can first transmit the packet (1611-1) to the external electronic device (111). For example, the electronic device (101) can transmit an unconfirmed packet (1690) indicating that the packet (1611-1) was not successfully received to the electronic device (101), or not transmit an unconfirmed packet (1690) for the packet (1611-1) to the electronic device (101) due to non-reception of the packet (1611-1).
[0192] For example, the electronic device (101) may execute one or more retransmissions of the packet (1611-1) based on receiving an unacknowledged packet (1690) from the external electronic device (111) or failing to receive an acknowledgment packet and an unacknowledged packet (1690) for the packet (1611-1) from the external electronic device (111). For example, the electronic device (101) may maintain the one or more retransmissions of the packet (1611-1) until it receives an acknowledgment packet for the packet (1611-1) within a time interval (1670) corresponding to a flush timeout value of the first set of packets (or packet (1611-1)).
[0193] For example, in response to a flush timeout of SDU (1601-5), the electronic device (101) may discard SDU (1601-5) within a second SDU interval (1682) having a length equal to the length of the first SDU interval (1681). For example, the electronic device (101) may discard SDU (1601-5) within the second SDU interval (1682) because the opportunity to transmit a packet from SDU (1601-5) has been lost due to an acknowledgment packet (1690) not being received within the first SDU interval (1681).
[0194] For example, the electronic device (101) may store, within a buffer for the communication circuit (230), using the processor (210), the SDUs of the second set (1602) to be transmitted to the external electronic device (111) via the communication link (131) for outputting the second audio, within the second SDU interval (1682). For example, the SDUs of the second set (1602) may have different priorities. For example, the SDUs of the second set (1602) may have different flush timeout timings. For example, the flush timeout timing of each of the SDUs of the second set (1602) may correspond to the flush timeout timing of each of the SDUs of the first set (1601).
[0195] For example, the electronic device (101) may discard SDUs (1601-4) and SDUs (1602-5) within a third SDU interval (1683) having a length equal to the length of the second SDU interval (1682), in response to a flush timeout of SDUs (1601-4) and a flush timeout of SDUs (1602-5) that occurred while an acknowledgment packet (1690) for one or more retransmissions of packets (1611-1) was not received. For example, because the opportunity to transmit packets from SDU (1601-4) and packets from SDU (1602-5) respectively has been lost due to an unreceived acknowledgement packet (1690) within the second SDU interval (1682), the electronic device (101) may discard SDU (1601-4) and SDU (1602-5) within the third SDU interval (1683).
[0196] For example, the electronic device (101) may store, within a buffer for the communication circuit (230), using the processor (210), within a third SDU interval (1683) the SDUs of the third set (1603) to be transmitted to the external electronic device (111) via the communication link (131) for outputting the third audio. For example, the SDUs of the third set (1603) may have different priorities. For example, the SDUs of the third set (1603) may have different flush timeout timings. For example, the flush timeout timing of each of the SDUs of the third set (1603) may correspond to the flush timeout timing of each of the SDUs of the first set (1601).
[0197] For example, the electronic device (101) may discard SDUs (1601-3), SDUs (1602-4), and SDUs (1603-5) within a fourth SDU interval (1684) having a length equal to the length of the third SDU interval (1683), in response to a flush timeout of SDUs (1601-3), a flush timeout of SDUs (1602-4), and a flush timeout of SDUs (1603-5) that are caused while an acknowledgment packet (1690) is not received for one or more retransmissions of packets (1611-1). For example, because the opportunity to transmit packets from SDU (1601-3), SDU (1602-4), and SDU (1603-5) has been lost due to an unreceived acknowledgement packet (1690) within the third SDU interval (1683), the electronic device (101) may discard SDU (1601-3), SDU (1602-4), and SDU (1603-5) within the fourth SDU interval (1684).
[0198] For example, the electronic device (101) may store, within a buffer for the communication circuit (230), using the processor (210), the SDUs of the fourth set (1604) to be transmitted to the external electronic device (111) via the communication link (131) for outputting the fourth audio, within the fourth SDU interval (1684). For example, the SDUs of the fourth set (1604) may have different priorities. For example, the SDUs of the fourth set (1604) may have different flush timeout timings. For example, the flush timeout timing of each of the SDUs of the fourth set (1604) may correspond to the flush timeout timing of each of the SDUs of the first set (1601).
[0199] For example, the electronic device (101) may discard SDUs (1601-2), SDUs (1602-3), SDUs (1603-4), and SDUs (1604-5) within a fifth SDU interval (1685) having a length equal to the length of the fourth SDU interval (1684), in response to a flush timeout of SDUs (1601-2), a flush timeout of SDUs (1602-3), a flush timeout of SDUs (1603-4), and a flush timeout of SDUs (1604-5) that are caused while an acknowledgment packet (1690) for one or more retransmissions of packets (1611-1) is not received. For example, because the opportunity to transmit each of the packets from SDU (1601-2), SDU (1602-3), SDU (1603-4), and SDU (1604-5) has been lost due to an acknowledgment packet (1690) not being received within the fourth SDU interval (1684), the electronic device (101) may discard SDU (1601-2), SDU (1602-3), SDU (1603-4), and SDU (1604-5) within the fifth SDU interval (1685).
[0200] For example, the electronic device (101) may store, within a buffer for the communication circuit (230), using the processor (210), within a fifth SDU interval (1685) the SDUs of the fifth set (1605) to be transmitted to the external electronic device (111) via the communication link (131) for outputting the fifth audio. For example, the SDUs of the fifth set (1605) may have different priorities. For example, the SDUs of the fifth set (1605) may have different flush timeout timings. For example, the flush timeout timing of each of the SDUs of the fifth set (1605) may correspond to the flush timeout timing of each of the SDUs of the first set (1601).
[0201] For example, the electronic device (101) may discard SDUs (1601-1), SDUs (1602-2), SDUs (1603-3), SDUs (1604-4), and SDUs (1605-5) within a sixth SDU interval (1686) having a length equal to the length of the fifth SDU interval (1685), in response to a flush timeout of SDUs (1601-1), a flush timeout of SDUs (1602-2), a flush timeout of SDUs (1603-3), a flush timeout of SDUs (1604-4), and a flush timeout of SDUs (1605-5) that are caused while an acknowledgment packet (1690) for one or more retransmissions of packets (1611-1) is not received. For example, because the opportunity to transmit each of the packets from SDU (1601-1), SDU (1602-2), SDU (1603-3), SDU (1604-4), and SDU (1605-5) has been lost due to an acknowledgment packet (1690) not being received within the fifth SDU interval (1685), the electronic device (101) may discard SDU (1601-1), SDU (1602-2), SDU (1603-3), SDU (1604-4), and SDU (1605-5) within the sixth SDU interval (1686).
[0202] For example, the electronic device (101) may store, within a buffer for the communication circuit (230), using the processor (210), the SDUs of the sixth set (1606) to be transmitted to the external electronic device (111) via the communication link (131) for outputting the sixth audio, within the sixth SDU interval (1686). For example, the SDUs of the sixth set (1606) may have different priorities. For example, the SDUs of the sixth set (1606) may have different flush timeout timings. For example, the flush timeout timing of each of the SDUs of the sixth set (1606) may correspond to the flush timeout timing of each of the SDUs of the first set (1601).
[0203] For example, in response to a flush timeout of an SDU (1601-1) that occurs while an acknowledgment packet (1690) is not received for one or more retransmissions of the packet (1611-1), the electronic device (101) may replace the packet (1611-1) and transmit a packet (1691) having a sequence number of the packet (1611-1) and a length of 0 to the external electronic device (111). For example, the external electronic device (111) may transmit an unacknowledged packet (1692) to the electronic device (101) indicating that the packet (1691) was not successfully received, or may not transmit an unacknowledged packet (1692) to the electronic device (101) due to non-reception of the packet (1691).
[0204] For example, the electronic device (101) may perform a retransmission of the packet (1691) based on receiving an unconfirmed packet (1692) or not receiving an unconfirmed packet (1692). For example, the external electronic device (111) may transmit an acknowledgement packet (1693) to the electronic device (101) indicating successful reception of the packet (1691) based on receiving a retransmitted packet (1691) from the electronic device (101).
[0205] For example, the electronic device (101) may transmit a packet (1612-1) from an SDU (1602-1) to the external electronic device (111) within the sixth SDU interval (1686) based on receiving an acknowledgement packet (1693) within the sixth SDU interval (1686). For example, the external electronic device (111) may transmit an acknowledgement packet (1694) to the electronic device (101) indicating successful reception of the packet (1612-1) based on receiving the packet (1612-1) transmitted from the electronic device (101).
[0206] For example, while providing the audio service using an external electronic device (111), the electronic device (101) may adjust the priority of a task for the audio service according to the number of SDUs containing data essential for audio output. This operation is exemplified in the description of FIG. 17.
[0207] Referring to FIG. 17, while providing the audio service using an external electronic device (111), the electronic device (101) can adjust the priority of the task for the audio service according to the number of SDUs containing data essential for audio output, stored in the buffer for the communication circuit (230).
[0208] For example, the electronic device (101) may determine that the number of SDUs, including data essential for outputting audio, stored in the buffer, such as an indication (1701), while the audio service is being provided, is 3. As a non-limiting example, the electronic device (101) may change the value (1700) indicating the priority of the task from 15 to 11 to lower the priority of the task, as indicated by an arrow (1702), based on determining that the number is 3.
[0209] For example, the electronic device (101) may determine that the number is 1, as indicated by indication (1703), while the audio service is being provided with the priority corresponding to the value (1700) of 11. As a non-limiting example, the electronic device (101) may change the value (1700) from 11 to 7 to lower the priority of the task, as indicated by arrow (1704), based on determining that the number is 1 (or determining a decrease in the number).
[0210] For example, the electronic device (101) may determine that the number is 3, as indicated by the indication (1705), while the audio service is provided with the priority corresponding to the value (1700) of 7. As a non-limiting example, the electronic device (101) may change the value (1700) from 7 to 11 to increase the priority of the task, as indicated by the arrow (1706), based on determining that the number is 3 (or determining an increase in the number).
[0211] For example, the electronic device (101) may determine that the number is 5, as indicated by an indication (1707), while the audio service is being provided with the priority corresponding to a value (1700) of 11. As a non-limiting example, the electronic device (101) may change the value (1700) from 11 to 15 to increase the priority of the task, as indicated by an arrow (1708), based on determining that the number is 5 (or determining an increase in the number).
[0212] For example, the electronic device (101) may discard SDUs containing auxiliary data for audio output stored in the buffer for the communication circuit (230) in response to the occurrence of another task having a higher priority than the priority of the task for the audio service. This operation is exemplified in the description of FIG. 18.
[0213] Referring to FIG. 18, the electronic device (101) may, while the audio service is being provided, detect the occurrence of another task (1800) with a higher priority than the task for the audio service. For example, the other task (1800) may be interference with the task. For example, the other task (1800) may include transmitting or receiving a signal on a frequency (or frequency band) corresponding to the frequency (or frequency band) of packets for the audio service. For example, the other task (1800) may be a task executed via Wi-Fi and / or a task executed via Bluetooth.
[0214] For example, in response to detecting another task (1800) having a higher priority than the priority of the task, the electronic device (101) may discard SDUs (1812) containing auxiliary data for audio output from among the SDUs stored in the buffer for the communication circuit (230), as indicated by arrow (1801). For example, the electronic device (101) may maintain storing SDUs (1811) containing essential data for audio output from among the SDUs stored in the buffer for the communication circuit (230), in order to maintain providing the audio service.
[0215] An external electronic device (111) can decode packets received in response to transmission from the electronic device (101) exemplified above, in order to provide the audio service. The decoding is exemplified in the description of FIG. 19.
[0216] FIG. 19 illustrates an exemplary method for decoding packets received from an electronic device within an external electronic device.
[0217] Referring to FIG. 19, the external electronic device (111) may receive all of the first set of packets for outputting the first audio from the electronic device (101) via the communication link (131) at a timing (1991). For example, all of the packets of the first set may be stored in a buffer within the external electronic device (111) used for the audio service. For example, the external electronic device (111) may store the first set (1901) of data corresponding to each of the packets of the first set in the buffer. For example, the data of the first set (1901) may include data (1901-1) having a first priority, data (1901-2) having a second priority lower than the first priority, data (1901-3) having a third priority lower than the second priority, data (1901-4) having a fourth priority lower than the third priority, and data (1901-5) having a fifth priority lower than the fourth priority.
[0218] For example, the external electronic device (111) may receive, from the electronic device (101) via the communication link (131), all of the second set of packets for outputting the second audio following the first audio. For example, all of the packets of the second set may be stored in a buffer within the external electronic device (111) used for the audio service. For example, the external electronic device (111) may store, in the buffer, the second set (1902) of data corresponding to each of the packets of the second set. For example, the data of the second set (1902) may include data (1902-1) having the first priority, data (1902-2) having the second priority lower than the first priority, data (1902-3) having the third priority lower than the second priority, data (1902-4) having the fourth priority lower than the third priority, and data (1902-5) having the fifth priority lower than the fourth priority.
[0219] For example, the external electronic device (111) may receive a portion of a third set of packets for outputting a third audio following the second audio from the electronic device (101) via the communication link (131). For example, the portion of the packets of the third set may be stored in a buffer within the external electronic device (111) used for the audio service. For example, the external electronic device (111) may store a third set (1903) of data corresponding to the portion of the packets of the third set in the buffer. For example, the data of the first set (1903) may include data (1903-1) having the first priority and data (1903-2) having the second priority lower than the first priority.
[0220] For example, the external electronic device (111) may receive a portion of a fourth set of packets for outputting the fourth audio following the third audio from the electronic device (101) via the communication link (131). For example, the portion of the packets of the fourth set may be stored in a buffer within the external electronic device (111) used for the audio service. For example, the external electronic device (111) may store a fourth set (1904) of data corresponding to the portion of the packets of the fourth set in the buffer. For example, the data of the fourth set (1904) may include data (1904-1) having the first priority, data (1904-2) having the second priority lower than the first priority, data (1904-3) having the third priority lower than the second priority, and data (1904-4) having the fourth priority lower than the third priority.
[0221] For example, the external electronic device (111) may receive a portion of a fifth set of packets for outputting the fifth audio following the fourth audio from the electronic device (101) via the communication link (131). For example, the portion of the packets of the fifth set may be stored in a buffer within the external electronic device (111) used for the audio service. For example, the external electronic device (111) may store a fifth set (1905) of data corresponding to the portion of the packets of the fifth set in the buffer. For example, the data of the fifth set (1905) may include data (1905-1) having the first priority, data (1905-2) having the second priority lower than the first priority, and data (1905-3) having the third priority lower than the second priority.
[0222] For example, the external electronic device (111) may receive a portion of a sixth set of packets for outputting the sixth audio following the fifth audio from the electronic device (101) via the communication link (131). For example, the portion of the packets of the sixth set may be stored in a buffer within the external electronic device (111) used for the audio service. For example, the external electronic device (111) may store the data of the sixth set (1906) corresponding to the portion of the packets of the sixth set in the buffer. For example, the data of the sixth set (1906) may include only data (1906-1) having the first priority.
[0223] For example, the external electronic device (111) may receive a portion of a seventh set of packets for outputting the seventh audio following the sixth audio from the electronic device (101) via the communication link (131). For example, the portion of the packets of the seventh set may be stored in a buffer within the external electronic device (111) used for the audio service. For example, the external electronic device (111) may store the seventh set (1907) of data corresponding to the portion of the packets of the seventh set in the buffer. For example, the data of the seventh set (1907) may include only data (1907-1) having the first priority.
[0224] For example, the external electronic device (111) may receive a portion of an eighth set of packets for outputting the eighth audio following the seventh audio from the electronic device (101) via the communication link (131). For example, the portion of the packets of the eighth set may be stored in a buffer within the external electronic device (111) used for the audio service. For example, the external electronic device (111) may store the data of the eighth set (1908) corresponding to the portion of the packets of the eighth set in the buffer. For example, the data of the eighth set (1908) may include only data (1908-1) having the first priority.
[0225] For example, the external electronic device (111) may start outputting the first audio at timing (1992). For example, the external electronic device (111) may output the first audio based on decoding the data of the first set (1901).
[0226] For example, the external electronic device (111) can output the second audio based on decoding the data of the second set (1902). For example, the external electronic device (111) can output the third audio based on decoding the data of the third set (1903). For example, the external electronic device (111) can output the fourth audio based on decoding the data of the fourth set (1904). For example, the external electronic device (111) can output the fifth audio based on decoding the data of the fifth set (1905). For example, the external electronic device (111) can output the sixth audio based on decoding the data of the sixth set (1906). For example, the external electronic device (111) can output the seventh audio based on decoding the data of the seventh set (1907). For example, the external electronic device (111) can output the eighth audio based on decoding the data of the eighth set (1908).
[0227] For example, since all of the data of the first set (1901) to the data of the eighth set (1908) include data having the first priority, the external electronic device (111) can output the first audio to the eighth audio without any sound interruption.
[0228] The operations of the electronic device (101) exemplified above can be executed by the electronic device (2001) exemplified in the description of FIG. 20. The operations of the external electronic device (111) exemplified above can be executed by the electronic device (2002) exemplified in the description of FIG. 20.
[0229] FIG. 20 is a block diagram of an electronic device (2001) within a network environment (2000) according to various embodiments. Referring to FIG. 20, in the network environment (2000), the electronic device (2001) may communicate with the electronic device (2002) via a first network (2098) (e.g., a short-range wireless communication network), or may communicate with at least one of the electronic device (2004) or the server (2008) via a second network (2099) (e.g., a long-range wireless communication network). According to one embodiment, the electronic device (2001) may communicate with the electronic device (2004) via the server (2008). According to one embodiment, the electronic device (2001) may include a processor (2020), a memory (2030), an input module (2050), an audio output module (2055), a display module (2060), an audio module (2070), a sensor module (2076), an interface (2077), a connection terminal (2078), a haptic module (2079), a camera module (2080), a power management module (2088), a battery (2089), a communication module (2090), a subscriber identification module (2096), or an antenna module (2097). In some embodiments, the electronic device (2001) may omit at least one of these components (e.g., the connection terminal (2078)), or may have one or more other components added. In some embodiments, some of these components (e.g., sensor module (2076), camera module (2080), or antenna module (2097)) may be integrated into a single component (e.g., display module (2060)).
[0230] The processor (2020) may, for example, execute software (e.g., a program (2040)) to control at least one other component (e.g., a hardware or software component) of the electronic device (2001) connected to the processor (2020) and perform various data processing or operations. According to one embodiment, as at least a part of the data processing or operations, the processor (2020) may store commands or data received from other components (e.g., a sensor module (2076) or a communication module (2090)) in the volatile memory (2032), process the commands or data stored in the volatile memory (2032), and store the resulting data in the non-volatile memory (2034). According to one embodiment, the processor (2020) may include a main processor (2021) (e.g., a central processing unit or an application processor) or a secondary processor (2023) (e.g., a graphics processing unit, a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor) that can operate independently or together with the main processor (2021). For example, when the electronic device (2001) includes the main processor (2021) and the secondary processor (2023), the secondary processor (2023) may be configured to use less power than the main processor (2021) or to be specialized for a given function. The secondary processor (2023) may be implemented separately from the main processor (2021) or as a part thereof.
[0231] The auxiliary processor (2023) may control at least a portion of functions or states associated with at least one component (e.g., the display module (2060), the sensor module (2076), or the communication module (2090)) of the electronic device (2001), for example, on behalf of the main processor (2021) while the main processor (2021) is in an inactive (e.g., sleep) state, or together with the main processor (2021) while the main processor (2021) is in an active (e.g., application execution) state. In one embodiment, the auxiliary processor (2023) (e.g., an image signal processor or a communication processor) may be implemented as a part of another functionally related component (e.g., a camera module (2080) or a communication module (2090)). In one embodiment, the auxiliary processor (2023) (e.g., a neural network processing unit) may include a hardware structure specialized for processing artificial intelligence models. The artificial intelligence models may be generated through machine learning. This learning can be performed, for example, on the electronic device (2001) itself where the artificial intelligence model is executed, or can be performed through a separate server (e.g., server (2008)). The learning algorithm can include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but is not limited to the examples described above. The artificial intelligence model can include multiple artificial neural network layers.The artificial neural network may be one of a deep neural network (DNN), a convolutional neural network (CNN), a recurrent neural network (RNN), a restricted Boltzmann machine (RBM), a deep belief network (DBN), a bidirectional recurrent deep neural network (BRDNN), a deep Q-network, or a combination of two or more of the above, but is not limited to the examples described above. In addition to, or alternatively to, a hardware structure, an artificial intelligence model may include a software structure.
[0232] The memory (2030) can store various data used by at least one component (e.g., the processor (2020) or the sensor module (2076)) of the electronic device (2001). The data can include, for example, software (e.g., the program (2040)) and input data or output data for commands related thereto. The memory (2030) can include volatile memory (2032) or non-volatile memory (2034).
[0233] The program (2040) may be stored as software in memory (2030) and may include, for example, an operating system (2042), middleware (2044), or an application (2046).
[0234] The input module (2050) can receive commands or data to be used in a component of the electronic device (2001) (e.g., a processor (2020)) from an external source (e.g., a user) of the electronic device (2001). The input module (2050) can include, for example, a microphone, a mouse, a keyboard, a key (e.g., a button), or a digital pen (e.g., a stylus pen).
[0235] The audio output module (2055) can output audio signals to the outside of the electronic device (2001). The audio output module (2055) can include, for example, a speaker or a receiver. The speaker can be used for general purposes, such as multimedia playback or recording playback. The receiver can be used to receive incoming calls. In one embodiment, the receiver can be implemented separately from the speaker or as part of the speaker.
[0236] The display module (2060) can visually provide information to an external party (e.g., a user) of the electronic device (2001). The display module (2060) may include, for example, a display, a holographic device, or a projector and a control circuit for controlling the device. In one embodiment, the display module (2060) may include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of a force generated by the touch.
[0237] The audio module (2070) can convert sound into an electrical signal, or vice versa. According to one embodiment, the audio module (2070) can acquire sound through the input module (2050), output sound through the sound output module (2055), or an external electronic device (e.g., electronic device (2002)) (e.g., speaker or headphone) directly or wirelessly connected to the electronic device (2001).
[0238] The sensor module (2076) can detect the operating status (e.g., power or temperature) of the electronic device (2001) or the external environmental status (e.g., user status) and generate an electrical signal or data value corresponding to the detected status. According to one embodiment, the sensor module (2076) can include, for example, a gesture sensor, a gyro sensor, a barometric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, a temperature sensor, a humidity sensor, or an illuminance sensor.
[0239] The interface (2077) may support one or more designated protocols that may be used to directly or wirelessly connect the electronic device (2001) to an external electronic device (e.g., the electronic device (2002)). In one embodiment, the interface (2077) may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
[0240] The connection terminal (2078) may include a connector through which the electronic device (2001) may be physically connected to an external electronic device (e.g., the electronic device (2002)). In one embodiment, the connection terminal (2078) may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (e.g., a headphone connector).
[0241] The haptic module (2079) can convert electrical signals into mechanical stimuli (e.g., vibration or movement) or electrical stimuli that a user can perceive through tactile or kinesthetic sensations. In one embodiment, the haptic module (2079) may include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
[0242] The camera module (2080) can capture still images and videos. In one embodiment, the camera module (2080) may include one or more lenses, image sensors, image signal processors, or flashes.
[0243] The power management module (2088) can manage power supplied to the electronic device (2001). According to one embodiment, the power management module (2088) can be implemented as, for example, at least a part of a power management integrated circuit (PMIC).
[0244] A battery (2089) may power at least one component of the electronic device (2001). In one embodiment, the battery (2089) may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.
[0245] The communication module (2090) may support the establishment of a direct (e.g., wired) communication channel or a wireless communication channel between the electronic device (2001) and an external electronic device (e.g., electronic device (2002), electronic device (2004), or server (2008)), and the performance of communication through the established communication channel. The communication module (2090) may operate independently from the processor (2020) (e.g., application processor) and may include one or more communication processors that support direct (e.g., wired) communication or wireless communication. According to one embodiment, the communication module (2090) may include a wireless communication module (2092) (e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module (2094) (e.g., a local area network (LAN) communication module, or a power line communication module). Any of these communication modules may communicate with an external electronic device (2004) via a first network (2098) (e.g., a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network (2099) (e.g., a long-range communication network such as a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., a LAN or WAN)). These various types of communication modules may be integrated into a single component (e.g., a single chip) or implemented as multiple separate components (e.g., multiple chips). The wireless communication module (2092) may use subscriber information (e.g., an international mobile subscriber identity (IMSI)) stored in the subscriber identification module (2096) to identify or authenticate the electronic device (2001) within a communication network such as the first network (2098) or the second network (2099).
[0246] The wireless communication module (2092) can support 5G networks and next-generation communication technologies following the 4G network, such as NR access technology (new radio access technology). NR access technology can support high-speed transmission of high-capacity data (eMBB (enhanced mobile broadband)), minimizing terminal power and connecting multiple terminals (mMTC (massive machine type communications)), or high reliability and low latency (URLLC (ultra-reliable and low-latency communications)). The wireless communication module (2092) can support, for example, a high-frequency band (e.g., mmWave band) to achieve a high data transmission rate. The wireless communication module (2092) can support various technologies for securing performance in high-frequency bands, such as beamforming, massive multiple-input and multiple-output (MIMO), full dimensional MIMO (FD-MIMO), array antenna, analog beam-forming, or large scale antenna. The wireless communication module (2092) can support various requirements specified in the electronic device (2001), an external electronic device (e.g., the electronic device (2004)), or a network system (e.g., the second network (2099)). According to one embodiment, the wireless communication module (2092) can support a peak data rate (e.g., 20 Gbps or more) for eMBB realization, a loss coverage (e.g., 164 dB or less) for mMTC realization, or a U-plane latency (e.g., 0.5 ms or less for downlink (DL) and uplink (UL), or 1 ms or less for round trip) for URLLC realization.
[0247] The antenna module (2097) can transmit or receive signals or power to or from an external device (e.g., an external electronic device). In one embodiment, the antenna module (2097) may include an antenna including a radiator formed of a conductor or a conductive pattern formed on a substrate (e.g., a PCB). In one embodiment, the antenna module (2097) may include a plurality of antennas (e.g., an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network, such as the first network (2098) or the second network (2099), may be selected from the plurality of antennas, for example, by the communication module (2090). A signal or power may be transmitted or received between the communication module (2090) and an external electronic device via the at least one selected antenna. In some embodiments, in addition to the radiator, another component (e.g., a radio frequency integrated circuit (RFIC)) may be additionally formed as a part of the antenna module (2097).
[0248] According to various embodiments, the antenna module (2097) may form a mmWave antenna module. In one embodiment, the mmWave antenna module may include a printed circuit board, an RFIC disposed on or adjacent a first side (e.g., a bottom side) of the printed circuit board and capable of supporting a designated high frequency band (e.g., a mmWave band), and a plurality of antennas (e.g., an array antenna) disposed on or adjacent a second side (e.g., a top side or a side side) of the printed circuit board and capable of transmitting or receiving signals in the designated high frequency band.
[0249] At least some of the above components can be interconnected and exchange signals (e.g., commands or data) with each other via a communication method between peripheral devices (e.g., a bus, GPIO (general purpose input and output), SPI (serial peripheral interface), or MIPI (mobile industry processor interface)).
[0250] According to one embodiment, commands or data may be transmitted or received between the electronic device (2001) and an external electronic device (2004) via a server (2008) connected to a second network (2099). Each of the external electronic devices (2002 or 2004) may be the same or a different type of device as the electronic device (2001). According to one embodiment, all or part of the operations executed in the electronic device (2001) may be executed in one or more of the external electronic devices (2002, 2004, or 2008). For example, when the electronic device (2001) is to perform a certain function or service automatically or in response to a request from a user or another device, the electronic device (2001) may, instead of or in addition to executing the function or service itself, request one or more external electronic devices to perform the function or at least a part of the service. One or more external electronic devices that receive the request may execute at least a portion of the requested function or service, or an additional function or service related to the request, and transmit the result of the execution to the electronic device (2001). The electronic device (2001) may process the result as is or additionally and provide it as at least a portion of a response to the request. For this purpose, cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology may be used, for example. The electronic device (2001) may provide an ultra-low latency service by using distributed computing or mobile edge computing, for example. In another embodiment, the external electronic device (2004) may include an Internet of Things (IoT) device. The server (2008) may be an intelligent server utilizing machine learning and / or a neural network.According to one embodiment, an external electronic device (2004) or server (2008) may be included within the second network (2099). The electronic device (2001) may be applied to intelligent services (e.g., smart homes, smart cities, smart cars, or healthcare) based on 5G communication technology and IoT-related technology.
[0251] As described above, an electronic device (e.g., electronic device (101)) within a wireless environment may include a communication circuit (e.g., communication circuit (230)) and a processor (e.g., processor (210)) for Bluetooth. The processor may be configured to first transmit, using the communication circuit, a first packet including data essential for the output of the first audio from among a first set of packets to be sequentially transmitted to the external electronic device through a communication link between the external electronic device and the electronic device for output of the first audio, and, based on receiving an acknowledgement packet for the first packet from the external electronic device before a flush timeout of the first packet, transmit, using the communication circuit, a second packet including data optional for the output of the first audio from among one or more remaining packets of the first set, and, based on not receiving the acknowledgement packet from the external electronic device until the flush timeout of the first packet, cancel transmitting the packets of the first set, and, using the communication circuit, first transmit, using the communication circuit, a third packet including data essential for the output of the second audio from among a second set of packets to be sequentially transmitted to the external electronic device through the communication link for output of the second audio following the first audio.
[0252] For example, the processor may be configured to determine whether the confirmation packet is received before the flush timeout of the first packet.
[0253] For example, the processor may be configured to cancel transmission of the packets of the first set by discarding the second packet before the flush timeout of the first packet and discarding the first packet in response to the flush timeout of the first packet.
[0254] For example, the processor may be configured to determine whether the confirmation packet is received before the flush timeout of the first packet, using a flush timeout value set for the first packet.
[0255] For example, the processor may be configured to refrain from transmitting the one or more remaining packets of the first set until the confirmation packet is received from the external electronic device.
[0256] For example, transmitting the one or more remaining packets of the first set may be executable under the condition that the confirmation packet is received from the external electronic device. For example, transmitting the one or more remaining packets of the first set may be authorized under the condition that the confirmation packet is received from the external electronic device.
[0257] For example, the processor may be configured to, based on not receiving the confirmation packet from the external electronic device until the flush timeout of the first packet, replace the first packet and transmit a packet having a sequence number of the first packet and a length of 0 to the external electronic device via the communication link using the communication circuit, and, based on receiving an confirmation packet for the packet from the external electronic device via the communication link, first transmit the third packet among the packets of the second set, the third packet having a sequence number different from the sequence number of the first packet.
[0258] For example, the LLID (logical link identifier) code in the payload header of the above packet may be '0b01'.
[0259] For example, the processor may be configured to transmit, to the external electronic device via the communication link, using the communication circuit, at least one of information about a codec used to generate the packets of the first set, information about the number of packets of the first set, information about a bit rate used to generate each of the packets of the first set, or information indicating the time before the first packet is transmitted.
[0260] For example, the bit rate for the first SDU (service data unit) used to generate the first packet may be the same as the bit rate for the second SDU used to generate the third packet.
[0261] For example, the flush timeout value of the second packet may be smaller than the flush timeout value of the first packet.
[0262] For example, one or more remaining packets of the first set may be available to enhance the quality of the first audio output through the external electronic device.
[0263] For example, each of the packets of the first set and the packets of the second set may be for outputting the first audio and the second audio, respectively, using the external electronic device via A2DP (advanced audio distribution profile).
[0264] For example, the communication link may include an asynchronous connection-less (ACL) link.
[0265] For example, the processor may be configured to store a first set of service data units (SDUs) used to generate the first set of packets within a buffer for the communication circuitry within a first SDU interval, and to store a second set of SDUs used to generate the second set of packets within the buffer within a second SDU interval following the first SDU interval. For example, the length of the first SDU interval may be the same as the length of the second SDU interval.
[0266] For example, some of the SDUs of the first set stored in the buffer may be discarded in accordance with a decrease in the priority of the output of the first audio. For example, some of the SDUs of the second set stored in the buffer may be discarded in accordance with a decrease in the priority of the output of the second audio.
[0267] The method described above can be executed within an electronic device within a wireless environment including a communication circuit for Bluetooth (e.g., a communication circuit (230)). The method includes an operation of first transmitting, using the communication circuit, a first packet including data, which is essential for the output of the first audio, from among a first set of packets to be sequentially transmitted to the external electronic device through a communication link between the external electronic device and the electronic device for output of the first audio; an operation of transmitting, using the communication circuit, a second packet including data, which is optional for the output of the first audio, from among one or more remaining packets of the first set based on receiving an acknowledgement packet for the first packet from the external electronic device before a flush timeout of the first packet; and an operation of canceling transmitting the packets of the first set based on not receiving the acknowledgement packet from the external electronic device until the flush timeout of the first packet, and first transmitting, using the communication circuit, a third packet including data, which is essential for the output of the second audio, from among a second set of packets to be sequentially transmitted to the external electronic device through the communication link for output of the second audio following the first audio. Can be.
[0268] For example, the method may include an operation of determining whether the confirmation packet is received before the flush timeout of the first packet.
[0269] For example, the act of canceling transmission of the packets of the first set may include canceling transmission of the packets of the first set by discarding the second packet before the flush timeout of the first packet, and discarding the first packet in response to the flush timeout of the first packet.
[0270] For example, the operation of checking whether the confirmation packet is received before the flush timeout of the first packet may include an operation of checking whether the confirmation packet is received before the flush timeout of the first packet, using a flush timeout value set for the first packet.
[0271] The non-transitory computer-readable storage medium described above can store one or more programs. For example, the one or more programs, when executed by an electronic device (e.g., an electronic device (101)) having a communication circuit for Bluetooth (e.g., a communication circuit (230)), first transmit, using the communication circuit, a first packet including data, which is essential for the output of the first audio, from among a first set of packets to be sequentially transmitted to the external electronic device through a communication link between the external electronic device and the electronic device for output of the first audio, and, based on receiving an acknowledgement packet for the first packet from the external electronic device before the flush timeout of the first packet, transmit, using the communication circuit, a second packet including data, which is optional for the output of the first audio, from among one or more remaining packets of the first set, and, based on not receiving the acknowledgement packet from the external electronic device until the flush timeout of the first packet, cancel transmitting the packets of the first set, and outputting the second audio following the first audio through the communication link to the external electronic device. The electronic device may include instructions that cause the electronic device to first transmit, using the communication circuit, a third packet containing data essential for the output of the second audio, among a second set of packets to be sequentially transmitted to the electronic device.
[0272] Electronic devices according to the various embodiments disclosed in this document may take various forms. Electronic devices may include, for example, portable communication devices (e.g., smartphones), computer devices, portable multimedia devices, portable medical devices, cameras, wearable devices, or home appliances. Electronic devices according to the embodiments of this document are not limited to the aforementioned devices.
[0273] The various embodiments of this document and the terminology used therein are not intended to limit the technical features described in this document to specific embodiments, but should be understood to include various modifications, equivalents, or substitutes of the embodiments. In connection with the description of the drawings, similar reference numerals may be used for similar or related components. The singular form of a noun corresponding to an item may include one or more of the items, unless the context clearly indicates otherwise. In this document, each of the phrases "A or B", "at least one of A and B", "at least one of A or B", "A, B, or C", "at least one of A, B, and C", and "at least one of A, B, or C" can include any one of the items listed together in the corresponding phrase among those phrases, or all possible combinations thereof. Terms such as "first," "second," or "first" or "second" may be used merely to distinguish one component from another, and do not limit the components in any other respect (e.g., importance or order). When a component (e.g., a first component) is referred to as "coupled" or "connected" to another component (e.g., a second component), with or without the terms "functionally" or "communicatively," it means that the component can be connected to the other component directly (e.g., wired), wirelessly, or through a third component.
[0274] The term "module" used in various embodiments of this document may include a unit implemented in hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit. A module may be an integral component, or a minimum unit or part of such a component that performs one or more functions. For example, according to one embodiment, a module may be implemented in the form of an application-specific integrated circuit (ASIC).
[0275] Various embodiments of the present document may be implemented as software (e.g., a program (2040)) including one or more instructions stored in a storage medium (e.g., an internal memory (2036) or an external memory (2038)) readable by a machine (e.g., an electronic device (2001)). For example, a processor (e.g., a processor (2020)) of the machine (e.g., an electronic device (2001)) may call at least one instruction among the one or more instructions stored from the storage medium and execute it. This enables the machine to operate to perform at least one function according to the at least one called instruction. The one or more instructions may include code generated by a compiler or code executable by an interpreter. The machine-readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-transitory' simply means that the storage medium is a tangible device and does not contain signals (e.g., electromagnetic waves), and the term does not distinguish between cases where data is stored semi-permanently or temporarily on the storage medium.
[0276] According to one embodiment, the method according to various embodiments disclosed in this document may be provided as included in a computer program product. The computer program product may be traded as a commodity between a seller and a buyer. The computer program product may be distributed in the form of a machine-readable storage medium (e.g., compact disc read-only memory (CD-ROM)), or may be distributed online (e.g., downloaded or uploaded) via an application store (e.g., Play Store™) or directly between two user devices (e.g., smart phones). In the case of online distribution, at least a portion of the computer program product may be temporarily stored or temporarily generated in a machine-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or an intermediary server.
[0277] According to various embodiments, each component (e.g., a module or a program) of the above-described components may include one or more entities, and some of the entities may be separated and placed in other components. According to various embodiments, one or more components or operations of the aforementioned components may be omitted, or one or more other components or operations may be added. Alternatively or additionally, a plurality of components (e.g., a module or a program) may be integrated into a single component. In such a case, the integrated component may perform one or more functions of each of the plurality of components identically or similarly to those performed by the corresponding component among the plurality of components prior to the integration. According to various embodiments, the operations performed by a module, program, or other component may be executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations may be executed in a different order, omitted, or one or more other operations may be added.
Claims
1. In electronic devices, Communication circuit for Bluetooth; at least one processor; and A memory storing instructions, wherein the instructions, when individually and / or collectively executed by the at least one processor, Among a first set of packets to be sequentially transmitted to an external electronic device through a communication link between the external electronic device and the electronic device for output of the first audio, a first packet including data essential for the output of the first audio is first transmitted using the communication circuit, Based on receiving an acknowledgment packet for said first packet from said external electronic device before the flush timeout of said first packet, transmitting, using said communication circuit, a second packet including optional data for said output of said first audio from among one or more remaining packets of said first set; canceling transmission of said first set of said packets based on not receiving said confirmation packet from said external electronic device until said flush timeout of said first packet, and causing said electronic device to transmit, using said communication circuit, a third packet, which includes data essential for said output of said second audio, from among a second set of packets to be sequentially transmitted to said external electronic device through said communication link for output of said second audio following said first audio; Electronic devices.
2. In claim 1, the instructions, when individually and / or collectively executed by the at least one processor, Check whether the confirmation packet is received before the flush timeout of the first packet, transmitting the second packet based on receiving the confirmation packet before the flush timeout of the first packet; Causing the electronic device to cancel transmission of the packets of the first set and to transmit the third packet from among the packets of the second set, based on not receiving the confirmation packet until the flush timeout of the first packet. Electronic devices.
3. In claim 2, the instructions, when individually and / or collectively executed by the at least one processor, Causing the electronic device to cancel transmission of the packets of the first set by discarding the second packet before the flush timeout of the first packet, and discarding the first packet in response to the flush timeout of the first packet. Electronic devices.
4. In claim 2, the instructions, when individually and / or collectively executed by the at least one processor, Causing the electronic device to determine whether the confirmation packet is received before the flush timeout of the first packet, using the flush timeout value set for the first packet. Electronic devices.
5. In claim 1, transmitting one or more remaining packets of the first set comprises: On the condition that the above verification packet is received from the external electronic device, Electronic devices.
6. In claim 1, the instructions, when individually and / or collectively executed by the at least one processor, Based on the fact that the confirmation packet is not received from the external electronic device until the flush timeout of the first packet, replacing the first packet and transmitting a packet having a sequence number of the first packet and a length of 0 to the external electronic device through the communication link using the communication circuit, Causing the electronic device to transmit the third packet having a sequence number different from the sequence number of the first packet among the packets of the second set, based on receiving an acknowledgement packet for the packet through the communication link from the external electronic device. Electronic devices.
7. In claim 6, the LLID (logical link identifier) code in the payload header of the packet is '0b01', Electronic devices.
8. In claim 1, the instructions, when individually and / or collectively executed by the at least one processor, Causing the electronic device to transmit, to the external electronic device via the communication link, at least one of information about a codec used to generate the packets of the first set, information about the number of the packets of the first set, information about a bit rate used to generate each of the packets of the first set, or information indicating the time, before the first packet is transmitted. Electronic devices.
9. In claim 8, the bit rate for the first SDU (service data unit) used to generate the first packet is: The same bit rate as the second SDU used to generate the third packet above. Electronic devices.
10. In claim 1, the flush timeout value of the second packet is: Less than the flush timeout value of the first packet above, Electronic devices.
11. In claim 1, one or more remaining packets of the first set, Available to enhance the quality of said first audio output through said external electronic device; Electronic devices.
12. In claim 1, each of the packets of the first set and the packets of the second set, For outputting each of the first audio and the second audio using the external electronic device through A2DP (advanced audio distribution profile). Electronic devices.
13. In claim 1, the communication link, Including ACL (asynchronous connection-less) links, Electronic devices.
14. In a method for executing within an electronic device, An operation of first transmitting, by using a communication circuit of the electronic device, a first packet including data essential for the output of the first audio, from among a first set of packets to be sequentially transmitted to the external electronic device through a communication link between the external electronic device and the electronic device, An operation of transmitting, using the communication circuit, a second packet including optional data for the output of the first audio from one or more remaining packets of the first set, based on receiving an acknowledgement packet for the first packet from the external electronic device before the flush timeout of the first packet; An operation of canceling transmission of said first set of said packets based on not receiving said confirmation packet from said external electronic device until said flush timeout of said first packet, and transmitting, using said communication circuit, a third packet, which includes data essential for said output of said second audio, from among a second set of packets to be sequentially transmitted to said external electronic device through said communication link for output of said second audio following said first audio. method.
15. In a non-transitory computer-readable storage medium storing one or more programs, The above one or more programs, when executed by an electronic device having a communication circuit for Bluetooth, Among a first set of packets to be sequentially transmitted to an external electronic device through a communication link between the external electronic device and the electronic device for output of the first audio, a first packet including data essential for the output of the first audio is first transmitted using the communication circuit, Based on receiving an acknowledgment packet for said first packet from said external electronic device before the flush timeout of said first packet, transmitting, using said communication circuit, a second packet including optional data for said output of said first audio from among one or more remaining packets of said first set; instructions that cause the electronic device to cancel transmission of the first set of packets based on failure to receive the confirmation packet from the external electronic device until the flush timeout of the first packet, and to transmit, using the communication circuit, a third packet, from among a second set of packets to be sequentially transmitted to the external electronic device via the communication link for output of second audio following the first audio, the third packet including data essential for output of the second audio. A non-transitory computer-readable storage medium.
Citation Information
Patent Citations
Bluetooth communication method, communication equipment and system
CN113873486A
A new method of wireless transmission of digital audio
EP2947803A1
New method of wireless transmission of digital audio
JP2021153304A
Bluetooth enabled intercom with hearing aid functionality
US20230217195A1
Wireless earbud system and operation method thereof
WO2023074929A1