Что такое аппаратная разгрузка
Перейти к содержимому

Что такое аппаратная разгрузка

  • автор:

Эффекты APO, разгруженные оборудованием

В Windows 10 версии 1511 и более поздних поддерживается разгрузка объектов обработки звука (APOs). Помимо возможного повышения производительности, существует значительное возможное снижение энергопотребления при использовании аппаратной разгрузки APOs.

Во время воспроизведения аппаратной разгрузки можно загрузить два типа APOs.

  1. Разгрузка потоковых эффектов (OSFX)
  2. Эффекты режима разгрузки (OMFX)

Общие сведения о эффектах APO для разгрузки оборудования

Аппаратное разгрузка обработки звука и аппаратной разгрузки API

В Windows 8 аудиоустройство было переработано для работы со звуковыми потоками, которые были разгружены на аппаратное устройство, которое отделяется от main аудиосистемы компьютера, но подключено к нему. Это называется аппаратной разгрузкой. Дополнительные сведения см. в разделе Аппаратно-разгруженная обработка звука.

Функция аппаратной разгрузки в основном ориентирована на сценарии с низким энергопотреблением с большими размерами буферов. Например, во время воспроизведения звука с низким энергопотреблением (LPA) в поддерживаемых системах размер звукового буфера или периодичность могут быть заданы в 1 секунду, чтобы ЦП не часто просыпался для обработки небольших буферов (например, каждые 10 миллисекунд).

Реализация аппаратной разгрузки API вместе с аппаратной разгрузкой обработки звука обеспечивает максимальную эффективность энергопотребления.

На следующей схеме показана архитектура объектов обработки звука. В правой части схемы показано приложение, взаимодействующее с аппаратными эффектами OSFX и OMFX.

Схема архитектуры аудиодрайвера с приложением, взаимодействующим с аппаратными эффектами OSFX и OMFX, драйверами и звуковым оборудованием.

Реализация эффектов APO с аппаратной разгрузкой

Объект APO, разгружаемый оборудованием, должен соответствовать тем же основным требованиям и принципам проектирования, которые описаны в разделах Архитектура объекта обработки звука и Реализация объектов обработки звука.

Рекомендации по реализации поддерживаемого аудиоформата

Для аппаратных разгружаемых API следует учитывать поддерживаемые форматы звука.

Каждое APO реализует метод IAudioProcessingObject::IsInputFormatSupported , который используется во время построения звукового графа для определения выходного аудиоформата и необходимости преобразования формата.

HRESULT IsInputFormatSupported( [in, optional] IAudioMediaType *pOppositeFormat, [in, optional] IAudioMediaType *pRequestedInputFormat, [out, optional] IAudioMediaType **ppSupportedInputFormat ); 

Конечная точка отрисовки разгрузки может поддерживать различные форматы, включая формат по умолчанию, поддерживаемый отрисовкой узлов или системных контактов. Объект APO разгрузки должен поддерживать все эти форматы, чтобы потоки отрисовки (с поддерживаемыми форматами) не проходили дополнительное преобразование формата.

Разгрузка SFX может реализовывать преобразования форматов и принимать более широкий диапазон форматов. Например, если функция Offload SFX обеспечивает виртуализацию наушников (т. е. преобразование аудиокана 5.1 в стерео), она должна возвращать S_OK для соответствующей пары входных и выходных данных в этом методе.

SFX-файл разгрузки должен просматривать поддерживаемые форматы контактов разгрузки, а также поддерживать и расширять возможности вместе.

Функция разгрузки MFX не может изменить формат входного потока, но она по-прежнему должна поддерживать различные форматы, предлагаемые конечной точкой разгрузки, и исключить ненужные преобразования форматов.

Во время отрисовки в контакте разгрузки на нем активен только один поток, поэтому потоки не смешиваются. Таким образом, обработка звука как на уровне потока, так и на уровне режима не требуется. Таким образом, звуковые эффекты могут не включаться как эффект потока, так и эффект режима. Разгрузка конечных точек будет поддерживать больше потоков, и в зависимости от архитектуры обработки для системы может потребоваться учитывать обработку разгрузки в SFX/MFX.

Записи INF-файла

Реализуйте следующие записи INF-файла, чтобы определить эффекты, которые будут загружаться во время воспроизведения разгрузки. Ключ свойства INF-файла указывает построителю конечных точек звука задать идентификаторы CLSID для разгруженных APOs в хранилище свойств эффектов. Эти сведения используются для создания звукового графа, который будет использоваться для информирования приложений верхнего уровня о том, какие эффекты имеются.

Ключ свойства GUID
PKEY_FX_Offload_StreamEffectClsid ,11
PKEY_FX_Offload_ModeEffectClsid ,12
PKEY_SFX_Offload_ProcessingModes_Supported_For_Streaming ,11
PKEY_MFX_Offload_ProcessingModes_Supported_For_Streaming ,12

Отключить аппаратную разгрузку профиля Bluetooth A2DP — что это?

Приветствую друзья!

Отключить аппаратную разгрузку профиля Bluetooth A2DP — настройка, необходимая для корректной передачи звука на беспроводные наушники.

Важно: не смотря на важность функции, некоторым пользователям, при проблемах беспроводного аудио (например просто отсутствует звук через Блютуз) — помогало отключение данной функции.

Разбираемся

  1. Если данную опцию выключить — вы потеряете возможность передавать звук по Bluetooth. Однако отключение может потребоваться для смены кодеков Bluetooth.
  2. Не всегда можно отключить. Один человек установил неофициальную прошивку, где возможность отключить была доступной.
  3. Также стоит понимать, A2DP — расширенный профиль передачи аудио, создан для передачи двухканального (стерео) аудио (например музыки) по Блютузу на какое-либо принимающее устройство (к беспроводной гарнитуре или любому другому устройству). Пропускной способности канала Bluetooth недостаточно для передачи двухканального аудиосигнала приемлемого качества без сжатия. В A2DP профиле применяются различные кодеки, сжимающие цифровой поток до пропускной способности Bluetooth-канала.
  4. После обновления системы может не работать звук по Блютузу. Одному пользователю помогло снятие галочки с данной опции. Также снятие галочки помогает, если звук воспроизводится только через динамики смартфона, даже при подключении блютуз наушников.

Надеюсь данный материал оказался полезным. Успехов.

Обработка звука Hardware-Offloaded

Аппаратно-разгруженная обработка звука позволяет выполнять main задачи обработки звука за пределами main ЦП компьютера.

Обработка звука может быть очень ресурсоемкой с точки зрения вычислений. Поэтому во многих сценариях может быть полезно разрешить выделенному процессору выполнять такие задачи обработки, как, например, смешивание и применение эффектов.

При реализации драйвера для разгрузки звука вы разрабатываете драйвер, который может обрабатывать разгруженные аудиопотоки и предоставлять эту возможность звуковой системе Windows.

В следующих разделах этого раздела рассматривается разработка драйверов, влияние приложений и другие проблемы, которые следует учитывать при разработке звукового драйвера для аудиоадаптера, который реализует аппаратное звуковое ядро для обработки разгруженных аудиопотоков.

Сведения о разгруженных API см. в разделе Эффекты аппаратной разгрузки APO.

Общие сведения об архитектуре обработки звука Hardware-Offloaded

Звуковой модуль программного обеспечения

На следующей схеме показан звуковой модуль программного обеспечения Windows.

Схема, показывающая архитектуру аудиодрайвера с вызовом приложений в эффектах SFX, MFX и EFX, подключением к драйверам и звуковому оборудованию.

Аудиопотоки поступают в подсистему программного обеспечения со слоя API сеансов звука Windows (WASAPI) и, возможно, через API более высокого уровня, например Media Foundation. В программном обработчике потоковых эффектов (SFX) можно применять для каждого потока, прежде чем отдельные потоки будут смешиваться, а затем передаваться через любые доступные эффекты конечных точек (EFX) и отправляться в оборудование отрисовки и динамики.

Аппаратное звуковое ядро

Аппаратный звуковой модуль реализован в звуковом адаптере и в значительной степени отражает функциональные возможности программного звукового модуля. И хотя Windows поддерживает аппаратно-разгруженную обработку звука, звуковой драйвер для данного звукового адаптера отвечает за предоставление базовых возможностей звукового оборудования, используя топологию, показанную на следующей схеме.

Аппаратное звуковое ядро должно принимать один поток процесса узла и до n разгруженных потоков. Эти разгруженные потоки направляются непосредственно с прикладного уровня для обработки на оборудовании. Иными словами, разгруженные потоки не будут передаваться через звуковой модуль программного обеспечения. На схеме показана реализация, предназначенная для обработки до трех разгруженных потоков. Поток хост-процесса — это окончательные выходные данные программного микшера всех потоков, которые были обработаны в звуковом обработчике программного обеспечения. Каждый аппаратный звуковой модуль также должен содержать аппаратный микшер.

Для поддержания четности с программным звуковым механизмом и интерфейсом WASAPI необходимо, чтобы аппаратный звуковой модуль предоставлял окончательный поток вывода звука обратно в звуковой стек в виде потока замыкания на себя. Это особенно важно для приложений и сценариев, в которых используется подавление акустического эха, для отмены эха и предотвращения обратной связи требуется знание конечного потока вывода.

Чтобы реализовать путь для потока замыкания на себя, звуковой драйвер отвечает за предоставление контакта замыкания на себя. Этот контакт вернет звуковые данные из окончательного вывода обработчика звука, если данные закодированы в формате PCM. В противном случае будет возвращен результат после смешивания (но перед кодировкой). Это означает, что в случае звуковых данных, обрабатываемых с помощью аппаратного EFX-файла, который кодируется в формате, отличном от PCM, поток замыкания на себя принимается непосредственно после аппаратного микшера перед этапом EFX в аппаратном звуковом движке. Сведения о топологии KS-filter, представляющей аппаратное звуковое ядро, см. в разделе Реализация аппаратного драйвера аудиофайла.

Интегрированная аудиоархитектура

На следующей схеме показан обзор результирующей архитектуры, когда аппаратный звуковой модуль работает с программным звуковым механизмом Windows.

Схема интегрированных программных и аппаратных звуковых подсистем с вызовом приложений в эффектах SFX, MFX и EFX, подключением к драйверам, звуковому оборудованию и потоку замыкания на себя, который ведет обратно на уровень WASAPI.

В сценарии, где аудиодрайвер указал поддержку разгрузки обработки звука, первые n (в данном случае три) инициализированных потоков будут направляться непосредственно из уровня WASAPI в аппаратное звуковое ядро, минуя программный звуковой модуль. Все новые звуковые потоки после n, поддерживаемых аппаратным звуковым механизмом, будут направляться через программный звуковой модуль для обработки. Результирующий поток из программного звукового модуля затем отправляется аппаратному обработчику звука в качестве потока процесса узла. Поток хост-процесса смешивается с первыми n потоков, применяется обработка EFX, а затем полученный поток отправляется динамикам.

Топология фильтра KS

В Windows 8 и более поздних операционных системах реализована поддержка аппаратного звукового модуля для обработки аудиопотоков. При разработке такого звукового адаптера связанный звуковой драйвер должен предоставлять этот факт звуковой системе пользовательского режима определенным образом, чтобы аудиосистема пользовала, пользовала и правильно предоставляла функции этого адаптера и его драйвера.

Чтобы предоставить аудиодрайверам возможность предоставления аппаратных возможностей этих новых аудиоадаптеров, Windows 8 появилась топология фильтра KS, которую драйвер должен использовать:

Схема топологии KS-filter с контактом ввода хост-процесса, разгруженным аудиовходным контактом и выводом замыкания на себя. Обработка звука применяется к разгруженным контактам звукового и хост-процесса, пути замыкания на себя с последней стадии обработки и двум потокам через приложение уровня данных из топологии ks-filter.

Как показано на предыдущем рисунке, топология фильтра KS представляет пути к данным через оборудование, а также показывает функции, доступные по этим путям. В случае звукового адаптера, который может обрабатывать разгруженный звук, в KS-фильтре имеются следующие входные и выходные данные (называемые контактами):

  • Один контакт хост-процесса. Представляет собой входные данные в фильтр KS из звукового модуля программного обеспечения.
  • Один замыкания на себя. Он представляет собой выходные данные аппаратного звукового модуля на уровень API аудиосеанса Windows (WASAPI).
  • Несколько разгруженных аудио пинов. Хотя на рисунке показан только один контакт этого типа, IHV может реализовать любое число (n) контактов.

Фактической службой в аудиосистеме пользовательского режима, которая «ведет» к обнаружению звукового адаптера и его драйвера, является AudioEndpointBuilder. Служба AudioEndpointBuilder отслеживает класс KSCATEGORY_AUDIO для получения и удаления интерфейса устройства. Когда драйвер звукового устройства регистрирует новый экземпляр класса интерфейса устройства KSCATEGORY_AUDIO , срабатывает уведомление о прибытии интерфейса устройства. Служба AudioEndpointBuilder обнаруживает уведомление о прибытии интерфейса устройства и использует алгоритм для проверки топологии звуковых устройств в системе, чтобы она соответствующих действий.

При разработке аудиодрайва для поддержки адаптера, способного обрабатывать разгруженный звук, драйвер должен использовать конечную точку звука KSNODETYPE_AUDIO_ENGINE для предоставления возможностей аппаратного звукового модуля. Дополнительные сведения о процессе обнаружения конечной точки звука см. в разделе Audio Endpoint Builder Algorithm.

Рекомендации по пользовательскому интерфейсу

Вы разработали аудиодрайв для управления базовыми аппаратными возможностями звукового адаптера, который может обрабатывать разгрузку звука. Это означает, что драйвер обладает наилучшими знаниями о том, как управлять функциями адаптера. Поэтому необходимо разработать пользовательский интерфейс, который будет предоставлять пользователям возможности адаптера в виде параметров, которые он может выбирать, включать и (или) отключать.

Если же у вас уже есть пользовательский интерфейс, который используется для управления объектами обработки звука (APOs), которые вы разработали, этот пользовательский интерфейс можно расширить для работы с новым аудиоадаптером. В этом случае расширения пользовательского интерфейса будут обеспечивать управление программным обеспечением для APOs и аппаратное управление для адаптера.

Влияние приложения

Приложения UWP, использующие WASAPI или потоковую передачу данных, должны явно согласиться на разгрузку оборудования.

What is A2DP Hardware Offload? Everything You Need To Know!

What is A2DP Hardware Offload

There have been a lot of discussions online about the purpose of A2DP hardware offload. But it seems like many people are confused about the concept behind this technology. So, what is A2DP? And what does it actually do?

Table of Contents

The short answer is – “Advanced Audio Distribution Profile, or A2DP for short, is an audio profile that determines how audio is sent from one device to another via a Bluetooth connection. A common example is when you play music from your phone using a Bluetooth speaker or headphones.”

As a matter of fact, most smartphones have this feature baked into the system. As for what it does, the main purpose of A2DP is to decode the audio from its source. When this feature is enabled, the device, i.e., your smartphone, sends the audio to the Bluetooth device, where it is decoded. On the other hand, if you disable this feature, the audio is first decoded on your phone before being sent to the Bluetooth device.

How To Toggle On/Off?

Typically, A2DP hardware offload comes enabled in smartphones. However, if you want to turn off, you will need to go to your phone’s settings option, and open the developer options tab, where you will find the A2DP hardware offload toggle.

  • Go to your phone’s “Settings” menu
  • Tap the “About Device” or “About Phone” option
  • Find the “Build Number”
  • Then tap it seven times
  • Enter your PIN, password, or pattern to activate developer mode
  • You will now be able to access the developer options tab

And here is how you can turn your phone’s A2DP hardware offload on/off:

  • Go to your phone’s “Settings” menu
  • Locate your “System” menu
  • Find the “Advanced” tab
  • Tap on “Developer Options”
  • Scroll down to disable

Is The Disable A2DP Hardware Offload Greyed Out?

It’s common to see the toggle for “turn off A2DP hardware offload” greyed out. So, what can you do in this situation? Well, you can use a small trick here to access it.

  • Go to your phone’s “Settings” menu
  • Locate your “System” menu
  • Find the “Advanced” tab
  • Tap on “Developer Options”
  • Scroll down to the disable A2DP hardware offload toggle
  • If it is greyed out, then toggle the developer options off and then turn it back on

Remember that this trick may not always work if the phone manufacturer does not want the user to have access to it.

Should You Keep Your Bluetooth A2DP On/Off?

As mentioned a few times, A2DP offload is generally kept turned on by default. However, if you are facing issues when playing music or audio through your Bluetooth device, then you can try turning it off to see if there are any differences. A lot of people went as far as to even say that turning this feature off has actually improved audio quality. Unfortunately, it cannot be stated with certainty the effect A2DP offload will have on your audio quality if you do decide to turn it off. A general rule of thumb here is – if you have high-end headphones or earbuds, like the Apple AirPods, then turning off the Bluetooth A2DP hardware offload should give you better audio quality as AirPods have a better decoder than most regular phones.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *