Simultaneous audio output due to priority arbitration
The application manager optimizes vehicle audio systems by determining resource availability and modifying speaker inputs to enable simultaneous playback of multiple audio streams, addressing resource constraints and compatibility issues.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- TOYOTA JIDOSHA KK
- Filing Date
- 2025-01-21
- Publication Date
- 2026-07-29
AI Technical Summary
Existing audio output systems in vehicles struggle with simultaneous playback of multiple audio streams due to resource constraints and compatibility issues, particularly in vehicles with limited head units and speaker configurations, leading to conflicts and suboptimal audio distribution.
An application manager or arbitration manager determines resource availability and compatibility, enabling simultaneous audio transmission to front and rear speakers by modifying speaker inputs and channels, ensuring sufficient decoding and display resources are available.
Enables simultaneous audio output from multiple applications without interference, optimizing resource utilization and ensuring compatibility across various vehicle audio systems.
Smart Images

Figure 0007896708000001 
Figure 0007896708000002 
Figure 0007896708000003
Abstract
Description
Background Art
[0001] An audio output device installed in a vehicle, such as a speaker or a speaker system, is used by multiple applications. Some applications are non-flutter applications that generate a continuous audio stream from a radio, a pre-recorded physical medium, the Internet, etc. Some applications are flutter applications that generate intermittent audio data related to navigation, warnings, etc. At any given time, multiple applications may send requests regarding output to an audio output device or a video output device, such as touch screen output.
Brief Description of the Drawings
[0002] Aspects of the present disclosure are best understood by reading the following detailed description in conjunction with the accompanying drawings. Note that various features are not drawn to scale in accordance with standard practice in the industry. In fact, for clarity of explanation, the dimensions of various features may be arbitrarily increased or decreased.
[0003] [Figure 1] FIG. 1 is a schematic diagram regarding simultaneous audio output resulting from priority arbitration according to at least some embodiments of the present disclosure. [Figure 2] FIG. 2 is an information flow regarding simultaneous audio output resulting from priority arbitration according to at least some embodiments of the present disclosure. [Figure 3] FIG. 3 is an operation flow regarding simultaneous audio output resulting from priority arbitration according to at least some embodiments of the present disclosure. [Figure 4] FIG. 4 is an operation flow for obtaining simultaneous audio output requirement information and determining whether the requirements are met according to at least some embodiments of the present disclosure. [Figure 5]Figure 5 shows an operational flow for implementing simultaneous audio output according to at least some embodiments of the subject disclosure. [Figure 6] Figure 6 is a block diagram of a hardware configuration relating to simultaneous audio output resulting from priority arbitration, according to at least some embodiments of the present invention. [Modes for carrying out the invention]
[0004] The following disclosure provides numerous different embodiments or examples to implement different features of the subject matter provided. For the sake of brevity of this disclosure, specific examples relating to components, values, operations, materials, arrangements, or similars are described below. Of course, these are merely examples and are not intended to be limiting. Other components, values, operations, materials, arrangements, or similars are conceivable. In addition, this disclosure may repeat reference numbers and / or reference letters in various examples. This repetition is for the sake of simplification and clarity and does not in itself define the relationships between the various embodiments and / or configurations described.
[0005] In some vehicles known to the inventor, output devices are limited, and therefore, requests from applications to output to these devices are handled via mediation rules. In such vehicles, the mediation manager resolves conflicts between applications by determining priority between applications based on mediation rules stored in the mediation library, with respect to screen output, basic sound output, and interrupt sound output. The mediation manager transmits the determination results to each application via the application manager.
[0006] In at least some embodiments described herein, rather than simply selecting one of the applications to utilize all output devices, the application manager determines whether simultaneous output is possible, and, if it determines that conditions are met for simultaneous output, enables audio transmission of one application to the vehicle's front speakers simultaneously with audio transmission of another application to the vehicle's rear speakers.
[0007] Some vehicles, such as RSE (Rear Seat Entertainment) compliant models, support simultaneous output of different audio streams between the front and rear speakers, but not all combinations of audio streams meet the requirements for simultaneous playback. For example, internal computing resource constraints limit the head unit's capacity to decode multiple audio streams. Also, certain applications, such as smartphone applications, require the use of a head unit interface, but some head unit interfaces do not support two application interfaces simultaneously.
[0008] In at least some embodiments, the application manager or arbitration manager is configured to check the specifications of any vehicle equipment used for audio, such as the head unit, amplifiers, speakers, and any other in-vehicle equipment, and the available resources and capabilities of such equipment. In at least some embodiments, the application manager or arbitration manager is configured to determine, in response to any changes to the vehicle's audio playback status, which applications transmit audio, such as basic audio, interrupt audio, emergency call audio, etc., through which speakers in the vehicle.
[0009] In at least some embodiments, the application sends an audio arbitration request to an interface provided by the application manager or arbitration manager in response to the generation of audio data, and performs audio playback according to the arbitration result determined by the application manager or arbitration manager. In at least some embodiments, audio arbitration enables the application to play audio without considering the specifications of any vehicle equipment used for audio.
[0010] In at least some embodiments, audio arbitration begins while the head unit has already configured the amplifier to output audio from a first audio generation application to all speakers. In at least some embodiments, audio arbitration is triggered when the head unit receives a request to output audio from a second audio generation application. In at least some embodiments, the head unit determines whether simultaneous playback is possible by reading information from each application and checking, for example, whether there are sufficient display resources to interface with both applications, whether there are sufficient decoding resources, particularly memory, to decode both audio streams, and whether any privacy or security restrictions prevent simultaneous playback. In at least some embodiments, in response to determining that simultaneous playback is possible, the head unit instructs the amplifier to modify the first channel to remove the front or rear speaker input. In at least some embodiments, the head unit then instructs the amplifier to reserve a second channel for the removed speaker input. In at least some embodiments, in response to the reservation of the second channel, the head unit instructs the second application to enable audio transmission.
[0011] Figure 1 is a schematic diagram of a system relating to simultaneous audio output resulting from priority arbitration, according to at least some embodiments of the subject disclosure. In at least some embodiments, the system is located in an automobile or other vehicle. The schematic diagram includes a head unit 100, an amplifier 110, a front speaker 117, and a rear speaker 118.
[0012] The head unit 100 is connected to the amplifier 110. The head unit 100 includes a controller 102 and a storage 104. In at least some embodiments, the head unit 100 is configured to manage and control the operation of the audio system relating to the vehicle. In at least some embodiments, the head unit 100 is a device that provides a user interface for the audio system. In at least some embodiments, the head unit 100 includes a display, buttons, a touchscreen, etc. In at least some embodiments, the head unit 100 relates to a car stereo system. In at least some embodiments, the head unit 100 is configured to play media content.
[0013] The controller 102 is included in the head unit 100. In at least some embodiments, the controller 102 is configured to control the operation of the head unit 100. In at least some embodiments, the controller 102 is configured to manage the arbitration of priority for simultaneous audio outputs. In at least some embodiments, the controller 102 includes a microcontroller, microprocessor, or other logic application circuit. In at least some embodiments, the controller 102 is configured to execute software instructions.
[0014] The storage 104 is included in the head unit 100. In at least some embodiments, the storage 104 is configured to store data. In at least some embodiments, the storage 104 is configured to store information representing resource requirements for each application. In at least some embodiments, the storage 104 is configured to store user preference information. In at least some embodiments, the storage 104 includes a memory device such as RAM, ROM, or flash memory. In at least some embodiments, the storage 104 is a hard disk drive or a solid-state drive. In at least some embodiments, the storage 104 is configured to store programs such as applications and operating systems that can be executed by the controller 102.
[0015] The amplifier 110 is connected to the head unit 100. The amplifier 110 includes a first channel 112, a second channel 113, and an interconnect 115. In at least some embodiments, the amplifier 110 is configured to amplify an audio signal. In at least some embodiments, the amplifier 110 is configured to drive speakers. In at least some embodiments, the amplifier 110 is configured to modify channels to add or remove speaker inputs. In at least some embodiments, the amplifier 110 is configured to modify the first channel 112 to remove either a front speaker input or a rear speaker input. In at least some embodiments, the amplifier 110 includes components such as transistors, capacitors, and resistors. In at least some embodiments, the amplifier 110 is a standalone device. In at least some embodiments, the amplifier 110 is integrated into the head unit 100. In at least some embodiments, the amplifier 110 includes a digital signal processor.
[0016] The first channel 112 is included in the amplifier 110 and connected to the interconnect 115. In at least some embodiments, the first channel 112 is configured to relay an audio signal. In at least some embodiments, the first channel 112 is configured to be associated with a first application for output to a speaker. In at least some embodiments, the first channel 112 includes circuitry for signal transmission. In at least some embodiments, the first channel 112 is a software component, such as a computing resource reservation. In at least some embodiments, the first channel 112 has at least one of the following: an audio bitrate, sampling rate, buffer size, or equalizer setting, corresponding to the application. In at least some embodiments, the first channel 112 is configured to provide audio content to a speaker, such as a front speaker 117 or a rear speaker 118.
[0017] The second channel 113 is included in the amplifier 110 and connected to the interconnect 115. In at least some embodiments, the second channel 113 is configured to relay an audio signal. In at least some embodiments, the second channel 113 is configured to be associated with a second application for output to a speaker. In at least some embodiments, the second channel 113 includes circuitry for signal transmission. In at least some embodiments, the second channel 113 is a software component, such as a computing resource reservation. In at least some embodiments, the second channel 113 has at least one of the following: an audio bitrate, sampling rate, buffer size, or equalizer setting, corresponding to the application. In at least some embodiments, the second channel 113 is configured to provide audio content to a speaker, such as a front speaker 117 or a rear speaker 118.
[0018] The interconnect 115 is included in the amplifier 110 and is connected to the first channel 112, the second channel 113, the front speaker 117, and the rear speaker 118. In at least some embodiments, the interconnect 115 is configured to connect the various channels and speakers of the audio system. In at least some embodiments, the interconnect 115 is configured to route audio signals between channels and speakers. In at least some embodiments, the interconnect 115 includes wiring or other types of signal paths. In at least some embodiments, the interconnect 115 is part of the internal circuitry of the amplifier 110. In at least some embodiments, the interconnect 115 is configured to facilitate signal transmission.
[0019] The front speaker 117 is connected to the interconnect 115. In at least some embodiments, the front speaker 117 is configured to output audio. In at least some embodiments, the front speaker 117 is configured to output audio from a first application. In at least some embodiments, the front speaker 117 includes components such as a diaphragm, a voice coil, and a magnet. In at least some embodiments, the front speaker 117 includes at least one of a tweeter, a midrange speaker, or a woofer. In at least some embodiments, the front speaker 117 is configured to reproduce sound based on an audio signal.
[0020] The rear speaker 118 is connected to the interconnect 115. In at least some embodiments, the rear speaker 118 is configured to output audio. In at least some embodiments, the rear speaker 118 is configured to output audio from a second application. In at least some embodiments, the rear speaker 118 includes components such as a diaphragm, a voice coil, and a magnet. In at least some embodiments, the rear speaker 118 includes at least one of a tweeter, a midrange speaker, or a woofer. In at least some embodiments, the rear speaker 118 is configured to reproduce sound based on an audio signal.
[0021] Figure 2 shows the information flow regarding simultaneous audio outputs resulting from priority arbitration, according to at least some embodiments of the subject disclosure. The information flow is between the application manager 220, the first application 222, the second application 224, and the amplifier 226. In at least some embodiments, the information flows between applications through a network, such as an Ethernet network or a Controller Area Network (CAN).
[0022] In at least some embodiments, the application manager 220 is configured to manage multiple applications. In at least some embodiments, the application manager 220 is configured to retrieve resource requirements from applications and instruct amplifiers based on the retrieved information. In at least some embodiments, the application manager 220 includes software components that manage the execution of applications. In at least some embodiments, the application manager 220 is part of the operating system of a head unit, e.g., head unit 100 in Figure 1. In at least some embodiments, the application manager 220 resides in storage, e.g., storage 104 in Figure 1, and is executed by a controller, e.g., controller 102 in Figure 1. In at least some embodiments, the application manager 220 is configured to mute or unmute audio outputs from speakers. In at least some embodiments, the application manager 220 is configured to instruct amplifiers 226 to associate channels with applications, modify audio outputs to switch between applications, and so on. In at least some embodiments, the application manager 220 is configured to manage the execution of applications and allocate resources.
[0023] In at least some embodiments, the first application 222 is configured to provide audio output. In at least some embodiments, the first application 222 is configured to output audio and provide resource requirements to the application manager 220. In at least some embodiments, the first application 222 includes software components that generate audio signals, process audio signals, and generate a user interface. In at least some embodiments, the first application 222 resides in storage, e.g., storage 104 in Figure 1, and is executed by a controller, e.g., controller 102 in Figure 1. In at least some embodiments, the first application 222 resides in and is executed by the ECU. In at least some embodiments, the first application 222 resides in and is executed by a smartphone that communicates wirelessly with a network. In at least some embodiments, the first application 222 is a radio application, a music streaming application, a navigation application, an emergency response application, etc. In at least some embodiments, the first application 222 is a flutter or no-flutter application. In at least some embodiments, the first application 222 is configured to play radio broadcasts or other audio content.
[0024] In at least some embodiments, the second application 224 is configured to provide audio output. In at least some embodiments, the second application 224 is configured to output audio upon receiving an activation command from the application manager 220. In at least some embodiments, the second application 224 includes software components that generate an audio signal, process the audio signal, and generate a user interface. In at least some embodiments, the second application 224 resides in storage, such as storage 104 of FIG. 1, and is executed by a controller, such as controller 102 of FIG. 1. In at least some embodiments, the second application 224 resides in an ECU and is executed by the ECU. In at least some embodiments, the second application 224 resides in a smartphone that wirelessly communicates with a network and is executed by the smartphone. In at least some embodiments, the second application 224 is a radio application, a music streaming application, a navigation application, an emergency response application, or the like. In at least some embodiments, the first application 222 is a flutter or non-flutter application. In at least some embodiments, the second application 224 is configured to play music or other audio content.
[0025] In at least some embodiments, amplifier 226 is configured to amplify an audio signal. In at least some embodiments, amplifier 226 is configured to modify a channel to associate the channel with an application when receiving an instruction from application manager 220. In at least some embodiments, amplifier 226 includes hardware components for amplifying an audio signal. In at least some embodiments, amplifier 226 is a stand-alone device or is incorporated into a head unit, such as head unit 100 of FIG. 1. In at least some embodiments, amplifier 226 is configured to increase the amplitude of an audio signal before transmitting the audio signal to a speaker. In at least some embodiments, amplifier 226 is configured to convert audio data received from a head unit into an audio signal before amplifying the audio signal. In at least some embodiments, amplifier 226 receives instructions and audio transmissions through a digital interface. In at least some embodiments, amplifier 226 is configured to drive speakers, such as front speaker 117 and rear speaker 118 of FIG. 1.
[0026] Prior to the information flow of FIG. 2, application manager 220 has already associated the first channel of the amplifier with first application 222 for output to the front speaker input and the rear speaker input.
[0027] In S230, the second application 224 sends an output request to the application manager 220. In at least some embodiments, the application manager 220 receives a request from the second application to output audio. In at least some embodiments, the application manager 220 processes the output request and determines the necessary action. In at least some embodiments, the output request is a signal or a data packet. In at least some embodiments, the output request includes information about the type of audio to be output, such as the audio bitrate and sampling rate. In at least some embodiments, the second application 224 sends an output request in response to the second application receiving a command to start outputting audio. In at least some embodiments, the second application 224 sends an output request in response to a user action, such as pressing a play button.
[0028] In S232, the application manager 220 sends a resource requirement request to the first application 222. In at least some embodiments, the application manager 220 obtains information representing the resource requirements for each application. In at least some embodiments, the first application 222 processes the resource requirement request and provides the necessary information. In at least some embodiments, the resource requirement request is a signal or data packet. In at least some embodiments, the resource requirement request includes a request for information about the resources required by the first application 222. In at least some embodiments, the resource requirement request is made to determine whether the head unit has sufficient resources for simultaneous audio output. In at least some embodiments, the application manager 220 sends a resource requirement request in response to receiving an audio output request from the second application 224.
[0029] In S233, the application manager 220 sends a resource requirement request to the second application 224. In at least some embodiments, the second application 224 processes the resource requirement request and provides the necessary information. In at least some embodiments, the resource requirement request is a signal or data packet. In at least some embodiments, the resource requirement request includes a request for information about the resources required by the second application 224. In at least some embodiments, the resource requirement request is made to determine whether the head unit has sufficient resources for simultaneous audio output. In at least some embodiments, the application manager 220 sends a resource requirement request in response to receiving an audio output request from the second application 224.
[0030] In S234, the first application 222 sends a resource requirement response to the application manager 220. In at least some embodiments, the application manager 220 receives the resource requirement response and uses it to determine whether the system has sufficient resources for simultaneous audio output. In at least some embodiments, the resource requirement response is a signal or a data packet. In at least some embodiments, the resource requirement response includes information about the resources required by the first application 222. In at least some embodiments, the resource requirement response is sent to notify the application manager 220 about the resources required by the first application 222. In at least some embodiments, the first application 222 sends a resource requirement response in response to receiving a resource requirement request from the application manager 220.
[0031] In S235, the second application 224 sends a resource requirement response to the application manager 220. In at least some embodiments, the application manager 220 receives the resource requirement response and uses it to determine whether the system has sufficient resources for simultaneous audio output. In at least some embodiments, the resource requirement response is a signal or a data packet. In at least some embodiments, the resource requirement response includes information about the resources required by the second application 224. In at least some embodiments, the resource requirement response is sent to notify the application manager 220 about the resources required by the second application. In at least some embodiments, the second application 224 sends a resource requirement response in response to receiving a resource requirement request from the application manager 220.
[0032] In S237, the application manager 220 sends a modification command to the amplifier 226. In at least some embodiments, the application manager 220 instructs the amplifier 226 to modify the first channel to remove either the front speaker input or the rear speaker input. In at least some embodiments, the amplifier 226 processes the modification command and modifies the first channel accordingly. In at least some embodiments, the modification command is a signal or a data packet. In at least some embodiments, the modification command includes information on how to modify the first channel. In at least some embodiments, the application manager 220 sends the modification command in response to determining that the head unit has sufficient resources for simultaneous audio output.
[0033] In S238, the application manager 220 sends an association command to the amplifier 226. In at least some embodiments, the application manager 220 instructs the amplifier 226 to associate the second channel with the second application 224 for output to either the front speaker input or the rear speaker input removed from the first channel. In at least some embodiments, the amplifier 226 processes the association command to associate the second channel with the second application 224. In at least some embodiments, the association command is a signal or data packet. In at least some embodiments, the association command includes information on how to associate the second channel with the second application 224. In at least some embodiments, the association command is sent to enable the second application 224 to output audio through the second channel. In at least some embodiments, the application manager 220 sends the association command in response to determining that the head unit has sufficient resources for simultaneous audio output.
[0034] In S239, the application manager 220 sends an enable command to the second application 224. In at least some embodiments, the application manager 220 instructs the second application 224 to enable audio transmission. In at least some embodiments, the second application 224 processes the enable command and begins transmitting audio. In at least some embodiments, the enable command is a signal or a data packet. In at least some embodiments, the enable command is sent to the second application 224 to initiate audio output. In at least some embodiments, the application manager 220 sends an enable command in response to associating the second channel with the second application 224.
[0035] In at least some embodiments, at least a portion of the transmissions by the application manager 220 are performed by the arbitration manager.
[0036] Figure 3 is an operational flow relating to simultaneous audio output resulting from priority arbitration, according to at least some embodiments of the subject disclosure. The operational flow provides a method for simultaneous audio output resulting from priority arbitration. In at least some embodiments, the method is performed by a controller of a head unit, for example, controller 102 of head unit 100 in Figure 1 or controller 602 of head unit 600 in Figure 6.
[0037] In S340, the controller's receiving section receives an audio output request. In at least some embodiments, the receiving section receives a request to output audio from a second application while the front and rear speakers communicating with the amplifier are outputting audio from a first application. In at least some embodiments, the receiving section receives audio output requests in response to user actions. In at least some embodiments, the receiving section receives audio output requests from the arbitration manager. In at least some embodiments, the receiving section receives audio output requests from the ECU via CAN. In at least some embodiments, the audio output request identifies a second application. In at least some embodiments, the operation flow is triggered when the receiving section receives an audio output request from a second application while one or more speakers are outputting audio from a first application.
[0038] In S341, the controller's mute section mutes the audio output. In at least some embodiments, the mute section mutes the audio output in response to receiving an audio output request. In at least some embodiments, the mute section causes the audio output to be muted. In at least some embodiments, the mute section mutes the audio output to prevent interference with the audio output from the first application. In at least some embodiments, the mute section suppresses audio transmission from the first application. In at least some embodiments, the mute section suppresses audio transmission to the amplifier. In at least some embodiments, the mute section instructs the amplifier to set the speaker volume to zero. In at least some embodiments, muting with respect to the audio output includes at least one of suppressing audio transmission from the first application, suppressing audio transmission to the amplifier, or instructing the amplifier to set the speaker volume to zero.
[0039] In S343, the controller's determination section obtains simultaneous audio output requirements information. In at least some embodiments, the determination section obtains information representing resource requirements for each application. In at least some embodiments, the determination section causes the first application and the second application to provide resource requirements information. In at least some embodiments, the determination section obtains simultaneous audio output requirements information and determines whether the requirements for simultaneous audio output are met.
[0040] In S344, the determination section determines whether the requirements are met. In at least some embodiments, the determination section determines whether the head unit and amplifier have sufficient resources to meet the resource requirements of each application for simultaneous audio output. In at least some embodiments, the determination section determines whether the requirements are met to ensure that the head unit and amplifier have sufficient computing resources to process the audio signals for each application in a timely manner. If the determination section determines that the requirements are met, the operation flow then proceeds to the simultaneous audio output implementation in S346. If the determination section determines that the requirements are not met, the operation flow then terminates.
[0041] In S346, the controller implementation section implements simultaneous audio output. In at least some embodiments, the implementation section instructs the amplifier to modify the speaker input of a channel to associate the speaker input with another channel. In at least some embodiments, the implementation section enables audio transmission. In at least some embodiments, the implementation section implements simultaneous audio output to allow the first and second applications to output audio simultaneously. In at least some embodiments, the implementation section implements simultaneous audio output depending on whether the determination section has determined that the requirements are met.
[0042] In S348, the implementation section determines whether the second application is transmitting audio. In at least some embodiments, the implementation section determines whether the second application is transmitting audio to verify that the audio enable command has been successfully received by the second application. In at least some embodiments, the implementation section determines whether the second application is transmitting audio in response to having instructed the second application to enable audio transmission. If the implementation section determines that the second application is transmitting audio, the operation flow then proceeds to unmute in S349. If the implementation section determines that the second application is not transmitting audio, the operation flow then returns to the simultaneous audio output implementation in S346.
[0043] In S349, the mute section unmutes the audio output. In at least some embodiments, the mute section unmutes the audio output in response to determining that a second application is transmitting audio data. In at least some embodiments, the mute section unmutes the audio output to allow listening to audio from the second application. In at least some embodiments, the mute section causes the audio output to be unmuted. In at least some embodiments, the mute section unmutes the audio output to complete the process of implementing simultaneous audio output. In at least some embodiments, the mute section unmutes the audio output in response to determining that a second application is transmitting audio data.
[0044] Figure 4 is an operation flow for acquiring simultaneous audio output requirement information and determining whether the requirements are met, according to at least some embodiments of the subject disclosure. The operation flow provides a method for acquiring simultaneous audio output requirement information, such as the operation in S343 of Figure 3, and determining whether the requirements are met, such as the operation in S344 of Figure 3. In at least some embodiments, the method is performed by a determination section of a controller in the head unit, for example, controller 102 of head unit 100 in Figure 1 or controller 602 of head unit 600 in Figure 6.
[0045] In S450, the determination section obtains resource requirement information. In at least some embodiments, the determination section obtains information representing the resource requirements for each of the first and second applications. In at least some embodiments, the determination section obtains the resource requirement information to determine whether the head unit and amplifier have sufficient resources to meet the resource requirements of each application for simultaneous audio output. In at least some embodiments, the determination section obtains resource requirement information in response to receiving a request to output audio from the second application. In at least some embodiments, the resource requirements include interface resource requirements and decoding resource requirements. In at least some embodiments, the decoding resource requirements include hardware decoder requirements. In at least some embodiments, the interface resource requirements include touchscreen requirements. In at least some embodiments, the interface resource requirements include front speaker requirements. In at least some embodiments, the resource requirements include either privacy requirements or security requirements.
[0046] In S452, the determination section determines whether sufficient resources exist. In at least some embodiments, the determination section determines whether the head unit and amplifier have sufficient resources to meet the resource requirements of each application for simultaneous audio output. If the determination section determines that sufficient resources exist, the operation flow then proceeds to acquiring user preference information in S454. If the determination section determines that sufficient resources do not exist, the operation flow then terminates.
[0047] In S454, the determination section acquires user preference information. In at least some embodiments, the determination section acquires user preference information and determines whether the user preference information prohibits simultaneous audio output. In at least some embodiments, the determination section acquires user preference information in response to determining that sufficient resources are available.
[0048] In S456, the determination section determines whether simultaneous output is permitted. In at least some embodiments, the determination section determines whether user preference information prohibits simultaneous audio output. If the determination section determines that simultaneous output is permitted, the operation flow proceeds to the simultaneous audio output implementation, for example, the operation in S346 of Figure 3. If the determination section determines that simultaneous output is not permitted, the operation flow terminates.
[0049] Figure 5 is an operational flow for implementing simultaneous audio output according to at least some embodiments of the subject disclosure. The operational flow provides a method for implementing simultaneous audio output, such as the operation in S346 of Figure 3. In at least some embodiments, the method is carried out by an implementation section of a controller in the head unit, for example, controller 102 of head unit 100 in Figure 1 or controller 602 of head unit 600 in Figure 6.
[0050] In S560, the implementation section instructs the amplifier to modify the first channel. In at least some embodiments, the implementation section instructs the amplifier to modify the first channel to remove either the front speaker input or the rear speaker input. In at least some embodiments, the implementation section instructs the amplifier to modify the first channel to remove either the front speaker input or the rear speaker input depending on whether the head unit and amplifier have sufficient resources for simultaneous audio output. In at least some embodiments, the implementation section causes the amplifier to modify the first channel accordingly. In at least some embodiments, the implementation section instructs the amplifier to modify the first channel depending on whether the system has sufficient resources for simultaneous audio output.
[0051] In S563, the implementation section instructs the amplifier to associate a second channel. In at least some embodiments, the implementation section instructs the amplifier to associate the second channel with a second application to output to either the front speaker input or the rear speaker input removed from the first channel. In at least some embodiments, the implementation section causes the amplifier to associate the second channel with the second application. In at least some embodiments, the implementation section causes the second channel to associate with the second application so that the second application can output audio through the second channel. In at least some embodiments, the implementation section instructs the amplifier to associate the second channel in response to the amplifier modifying the first channel. In at least some embodiments, the second channel has at least one of the audio bitrate, sampling rate, buffer size, or equalizer setting corresponding to the second application as a result of the instruction.
[0052] In S566, the implementation section instructs the second application to enable audio transmission. In at least some embodiments, the implementation section causes the second application to begin transmitting audio. In at least some embodiments, the implementation section causes the audio output from the second application to be enabled so as to output audio simultaneously with the first application. In at least some embodiments, the implementation section instructs the second application to enable audio transmission in response to the amplifier associating the second channel with the second application.
[0053] Figure 6 is a block diagram of a hardware configuration relating to simultaneous audio output resulting from priority arbitration, according to at least some embodiments of the present invention.
[0054] A preferred hardware configuration includes a head unit 600, which communicates with input device 608 directly or via network 607, and with ECU 619 and smartphone 616 via network 607. In at least some embodiments, network 607 is an Ethernet network, CAN, or any other wired or wireless network, or a combination thereof. In at least some embodiments, head unit 600 is a computer or other computing device that receives input or commands from input device 608. In at least some embodiments, head unit 600 is integrated into input device 608. In at least some embodiments, head unit 600 is a computer system that executes computer-readable instructions for performing operations relating to simultaneous audio output resulting from priority arbitration.
[0055] The head unit 600 includes a controller 602, a storage unit 604, an input / output interface 606, and a communication interface 609. In at least some embodiments, the controller 602 includes a processor or programmable circuit that executes instructions to cause the processor or programmable circuit to operate according to those instructions. In at least some embodiments, the controller 602 includes analog or digital programmable circuitry, or any combination thereof. In at least some embodiments, the controller 602 includes physically isolated storage or circuitry that communicates with each other. In at least some embodiments, the storage unit 604 includes a non-volatile computer-readable medium that can store executable and non-executable data accessed by the controller 602 during instruction execution. The communication interface 609 transmits and receives data from the network 607. The input / output interface 606 connects to various input and output units such as an input device 608 via a parallel port, serial port, keyboard port, mouse port, monitor port, and similar, to accept commands and present information. In some embodiments, the storage unit 604 is located outside the head unit 600.
[0056] The controller 602 includes a receive section 670, a mute section 672, a determination section 674, and an implementation section 676. The storage unit 604 includes a determination parameter 680, a channel association 682, and a modification parameter 684.
[0057] The receiving section 670 is a circuit or instruction of the controller 602 configured to receive audio output requests. In at least some embodiments, the receiving section 670 is configured to receive requests to output audio from a second application while the front and rear speakers communicating with the amplifiers are outputting audio from a first application. In at least some embodiments, the receiving section 670 utilizes information in the storage unit 604, such as channel associations 682. In at least some embodiments, the receiving section 670 includes subsections for performing additional functions as shown in the flowchart above. In at least some embodiments, such subsections are referred to by names associated with their corresponding functions.
[0058] The mute section 672 is a circuit or instruction of the controller 602 configured to mute and unmute the audio output. In at least some embodiments, the mute section 672 is configured to mute the audio output upon receipt of a request and to unmute the audio output upon determining that a second application is transmitting audio data. In at least some embodiments, the mute section 672 utilizes information in the storage unit 604, such as channel associations 682 and modification parameters 684. In at least some embodiments, the mute section 672 includes subsections for performing additional functions as shown in the flowchart above. In at least some embodiments, such subsections are referred to by names associated with the corresponding functions.
[0059] The determination section 674 is a circuit or instruction of the controller 602 configured to determine whether the simultaneous audio output requirements are met. In at least some embodiments, the determination section 674 is configured to determine whether the head unit and amplifier have sufficient resources to meet the resource requirements of each application for simultaneous audio output. In at least some embodiments, the mute section 672 utilizes information in the storage unit 604, such as the modification parameter 684. In at least some embodiments, the determination section 674 includes subsections for performing additional functions as shown in the flowchart above. In at least some embodiments, such subsections are referred to by names associated with the corresponding functions.
[0060] Implementation section 676 is a circuit or instruction of controller 602 configured to implement simultaneous audio output. In at least some embodiments, implementation section 676 is configured to instruct the amplifier to modify a first channel to remove either the front speaker input or the rear speaker input, in response to the head unit and amplifier determining that they have sufficient resources for simultaneous audio output, to instruct the amplifier to associate a second channel with a second application to output to either the front speaker input or the rear speaker input removed from the first channel, and to instruct the second application to enable audio transmission. In at least some embodiments, implementation section 676 utilizes information in storage unit 604, such as decision parameters 680. In at least some embodiments, decision section 674 includes subsections for performing additional functions as shown in the flowchart above. In at least some embodiments, such subsections are referred to by names associated with the corresponding functions.
[0061] In at least some embodiments, the apparatus is another device capable of processing logical functions to perform the operations described herein. In at least some embodiments, the controller and the storage unit do not need to be entirely separate devices, and in some embodiments, they share circuitry or one or more computer-readable media. In at least some embodiments, the storage unit includes a hard drive that stores both computer-executable instructions and data accessed by the controller, and the controller includes a combination of a central processing unit (CPU) and RAM, where the computer-executable instructions are copyable in whole or in part so that they are executed by the CPU during the performance of the operations described herein.
[0062] In at least some embodiments where the device is a computer, a program installed on the computer can be caused to function as or perform an operation associated with the device of the embodiments described herein. In at least some embodiments, such a program is executable by a processor to cause the computer to perform a specific operation associated with some or all of the blocks of the flowcharts and block diagrams described herein.
[0063] At least some embodiments are described with reference to flowcharts and block diagrams, where blocks represent (1) steps in a process in which an operation is performed, or (2) sections of a controller responsible for performing the operation. In at least some embodiments, specific steps and sections are implemented by dedicated circuits, programmable circuits supplied with computer-readable instructions stored on a computer-readable medium, and / or processors supplied with computer-readable instructions (programs) stored on a computer-readable medium. In at least some embodiments, the dedicated circuits include digital and / or analog hardware circuits, including integrated circuits (ICs) and / or discrete circuits. In at least some embodiments, the programmable circuits include reconfigurable hardware circuits, such as field-programmable gate arrays (FPGAs) and programmable logic arrays (PLAs), which include logical AND, OR, XOR, NAND, NOR, and other logical operations, flip-flops, registers, memory elements, etc.
[0064] In at least some embodiments, a computer-readable storage medium includes a tangible device capable of holding and storing instructions used by an instruction execution device. In some embodiments, the computer-readable storage medium includes, but is not limited to, electronic storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any preferred combination thereof. A non-exhaustive list of more specific examples of computer-readable storage mediums includes, namely, portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disk (DVD), memory sticks, floppy disks, mechanically encoded devices such as punch cards or grooved raised structures on which instructions are recorded, and any preferred combination thereof. Computer-readable media as used herein should not be construed as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmitting media (e.g., light pulses passing through optical fiber cables), or electrical signals transmitted through wires.
[0065] In at least some embodiments, the computer-readable program instructions described herein are downloadable from a computer-readable storage medium to each computing / processing device, or downloadable via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network, to an external computer or external storage device. In at least some embodiments, the network includes copper transmission cables, optical transmission fibers, wireless transmitters, routers, firewalls, switches, gateway computers, and / or edge servers. In at least some embodiments, a network adapter card or network interface within each computing / processing device receives computer-readable program instructions from the network and transfers the computer-readable program instructions for storage in a computer-readable storage medium within each computing / processing device.
[0066] In at least some embodiments, the computer-readable program instructions for performing the operations described above are any of the following: assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, or source code or object code, the source code or object code being written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, C++, or similar, and conventional procedural programming languages such as the C programming language or similar. In at least some embodiments, the computer-readable program instructions are executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or fully on a remote computer or server. In at least some embodiments, in the latter scenario, the remote computer is connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or a connection is made to an external computer (for example, via the Internet using an Internet service provider). In at least some embodiments, an electronic circuit including, for example, a programmable logic circuit, a field-programmable gate array (FPGA), or a programmable logic array (PLA) executes a computer-readable program instruction by individualizing the electronic circuit using state information of the computer-readable program instruction in order to carry out an aspect of the present invention.
[0067] While embodiments of the present invention are described, the technical scope of any subject matter claimed is not limited to the embodiments described above. Those skilled in the art will understand that various modifications and improvements are possible to the embodiments described above. They will also understand from the claims that embodiments added by such modifications or improvements are included within the technical scope of the present invention.
[0068] Unless the order is indicated by “before,” “prior,” or similar, and unless the output from a prior process is used in a later process, the operations, procedures, steps, and stages of each process performed by the apparatus, system, program, and method shown in the claims, embodiments, or figures may be performed in any order. Even if the process flow is described in the claims, embodiments, or figures using phrases such as “first” or “next,” such description does not necessarily mean that the processes must be performed in the order described.
[0069] In at least some embodiments, simultaneous audio output resulting from priority arbitration is achieved by: receiving a request to output audio from a second application while the front and rear speakers communicating with the amplifier are outputting audio from a first application; obtaining information representing resource requirements for each of the first and second applications; determining whether the head unit and amplifier have sufficient resources to satisfy the resource requirements of each application for simultaneous audio output; instructing the amplifier to modify the first channel to remove either the front speaker input or the rear speaker input, depending on whether the head unit and amplifier have determined that they have sufficient resources for simultaneous audio output; instructing the amplifier to associate the second channel with the second application to output to either the front speaker input or the rear speaker input removed from the first channel; and instructing the second application to enable audio transmission. In at least some embodiments, the resource requirements include interface resource requirements and decoding resource requirements. In at least some embodiments, the decoding resource requirements include hardware decoder requirements. In at least some embodiments, the interface resource requirements include touchscreen requirements. In at least some embodiments, the interface resource requirements include front speaker requirements. In at least some embodiments, the resource requirements include either privacy requirements or security requirements. In at least some embodiments, simultaneous audio output resulting from priority arbitration is further accomplished by obtaining user preference information and determining whether the user preference information prohibits simultaneous audio output. In at least some embodiments, simultaneous audio output resulting from priority arbitration is further accomplished by muting the audio output in response to a request and unmuting the audio output in response to determining that a second application is transmitting audio data.In at least some embodiments, the second channel has at least one of the following: audio bitrate, sampling rate, buffer size, or equalizer setting, corresponding to the second application.
[0070] In at least some embodiments, simultaneous audio output resulting from priority arbitration is performed by a device comprising a processor that executes instructions in accordance with the above operations, or a controller that includes circuits configured to perform the above operations.
[0071] The foregoing outlines some features of embodiments so that those skilled in the art may better understand aspects of this disclosure. Those skilled in the art should understand that this disclosure is readily available as a basis for designing or modifying other processes and structures to perform the same purposes and / or achieve the same advantages as embodiments incorporated herein. Those skilled in the art should also understand that such equivalent structures do not depart from the spirit and scope of this disclosure, and that various changes, substitutions, and modifications of this specification are possible without departing from the spirit and scope of this disclosure.
Claims
1. A computer program for causing at least one processor to perform an operation, wherein the operation is: The front and rear speakers, which communicate with the amplifier, receive a request to output audio from a second application while outputting audio from a first application. For each of the first and second applications, information representing resource requirements, including interface resource requirements and decode resource requirements, is obtained. To determine whether the head unit and amplifier have sufficient resources to meet the resource requirements of each application for simultaneous audio output, In response to determining that the head unit and the amplifier have sufficient resources for simultaneous audio output, the amplifier is instructed to modify the first channel to remove either the front speaker input or the rear speaker input. Commanding the amplifier to associate the second channel with the second application in order to output to either the front speaker input or the rear speaker input that has been removed from the first channel, Instructing the second application to enable audio transmission, A computer program that includes [this].
2. The computer program according to claim 1, wherein the decoding resource requirements include hardware decoder requirements.
3. The computer program according to claim 1 or 2, wherein the interface resource requirements include touchscreen requirements.
4. The computer program according to claim 1 or 2, wherein the interface resource requirements include forward speaker requirements.
5. The computer program according to claim 1, wherein the resource requirements include either privacy requirements or security requirements.
6. The aforementioned operation is, Obtaining user preference information, The user preference information is used to determine whether to prohibit simultaneous audio output, The computer program according to claim 1, further comprising:
7. The aforementioned operation is, In response to the receipt of the aforementioned request, the audio output is muted, The audio output is unmuted in response to the second application determining that it is transmitting audio data. The computer program according to claim 1, further comprising:
8. The computer program according to claim 1, wherein the second channel has at least one of the following: audio bitrate, sampling rate, buffer size, or equalizer setting, corresponding to the second application.
9. A method that is executed by a processor, The front and rear speakers, which communicate with the amplifier, receive a request to output audio from a second application while outputting audio from a first application. For each of the first and second applications, information representing resource requirements, including interface resource requirements and decode resource requirements, is obtained. To determine whether the head unit and amplifier have sufficient resources to meet the resource requirements of each application for simultaneous audio output, In response to determining that the head unit and the amplifier have sufficient resources for simultaneous audio output, the amplifier is instructed to modify the first channel to remove either the front speaker input or the rear speaker input. Commanding the amplifier to associate the second channel with the second application in order to output to either the front speaker input or the rear speaker input that has been removed from the first channel, Instructing the second application to enable audio transmission, Methods that include...
10. The method according to claim 9, wherein the decoding resource requirement includes a hardware decoder requirement.
11. The method according to claim 9 or 10, wherein the interface resource requirements include touchscreen requirements.
12. The method according to claim 9 or 10, wherein the interface resource requirements include forward speaker requirements.
13. The method according to claim 9, wherein the resource requirements include either privacy requirements or security requirements.
14. Obtaining user preference information, The user preference information is used to determine whether to prohibit simultaneous audio output, The method according to claim 9, further comprising:
15. In response to the receipt of the aforementioned request, the audio output is muted, The audio output is unmuted in response to the second application determining that it is transmitting audio data. The method according to claim 9, further comprising:
16. The method according to claim 9, wherein the second channel has at least one of the following: audio bitrate, sampling rate, buffer size, or equalizer setting, corresponding to the second application.
17. A device comprising a controller including a circuit configured to perform an operation, wherein the operation is The front and rear speakers, which communicate with the amplifier, receive a request to output audio from a second application while outputting audio from a first application. For each of the first and second applications, information representing resource requirements, including interface resource requirements and decode resource requirements, is obtained. To determine whether the head unit and amplifier have sufficient resources to meet the resource requirements of each application for simultaneous audio output, In response to determining that the head unit and the amplifier have sufficient resources for simultaneous audio output, the amplifier is instructed to modify the first channel to remove either the front speaker input or the rear speaker input. Commanding the amplifier to associate the second channel with the second application in order to output to either the front speaker input or the rear speaker input that has been removed from the first channel, Instructing the second application to enable audio transmission, A device that includes this.