Поделиться через


Архитектура объекта обработки звука

Объекты обработки звука (APOs) предоставляют настраиваемую программную обработку цифровых сигналов для аудиопотоков Windows.

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

Windows позволяет ИЗГОТОВИТЕЛям оборудования и сторонним производителям звукового оборудования включать пользовательские эффекты обработки цифровых сигналов в составе дополнительных функций аудиодрайва. Эти эффекты упаковываются в виде системных эффектов в пользовательском режиме объектов аудиообработки (APOs).

Объекты обработки звука (APOs) предоставляют программную цифровую обработку сигналов для аудиопотоков Windows. APO — это объект узла COM, содержащий алгоритм, написанный для предоставления определенного эффекта цифровой обработки сигналов (DSP). Эта возможность называется неофициально "звуковым эффектом". Примеры API включают графические эквалайзеры, реверберацию, тремоло, подавление акустического эха (AEC) и автоматическое управление получением (AGC). API — это внутрипроцессные объекты на основе COM в режиме реального времени.

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

Программное обеспечение и поставщик служб DSP оборудования

Аппаратный цифровой сигнальный процессор (DSP) — это специализированный микропроцессор (или блок SIP) с архитектурой, оптимизированной для операционных потребностей цифровой обработки сигналов. Реализация обработки звука в специально созданном оборудовании по сравнению с использованием программного APO может иметь значительные преимущества. Одним из преимуществ является то, что использование ЦП и связанное с ним энергопотребление могут быть ниже при использовании аппаратно реализованного DSP.

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

Программные эффекты вставляются в канал программного устройства при инициализации потока. Эти решения обрабатывают все свои эффекты на main ЦП и не полагаются на внешнее оборудование. Этот тип решения лучше всего подходит для традиционных звуковых решений Windows, таких как HDAudio, USB-устройства и Bluetooth, если драйвер и оборудование поддерживают только обработку RAW. Дополнительные сведения об обработке RAW см. в разделе Режимы обработки звуковых сигналов.

Прокси APO для аппаратного DSP

Все эффекты, примененные в аппаратном DSP, должны объявляться через прокси-сервер APO. Корпорация Майкрософт предоставляет APO прокси-сервера по умолчанию (MsApoFxProxy.dll). Для использования предоставленного корпорацией Майкрософт APO необходимо поддерживать этот набор свойств и свойство .

При необходимости можно реализовать собственный прокси-сервер APO.

Предоставляемые Windows (системные) API

Windows устанавливает набор api-интерфейсов по умолчанию, которые предоставляют ряд различных звуковых эффектов. Список системных эффектов APO см. в разделе Режимы обработки звуковых сигналов.

Изготовители оборудования могут включать все предоставляемые системой API или заменять некоторые или все из них пользовательскими API.

Пользовательские API

Можно создавать пользовательские API для улучшения работы со звуком Windows путем добавления дополнительных звуковых эффектов.

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

Пользовательский APO может быть установлен изготовителем оборудования или сторонним поставщиком, чтобы улучшить качество звука после приобретения устройства. Когда пользователи устанавливают драйвер звукового устройства с помощью стандартного INF-файла, они автоматически получают доступ к api-интерфейсам системы. Независимые поставщики оборудования (IHV) и изготовители исходного оборудования (OEM) могут предоставлять дополнительные настраиваемые системные эффекты, по-прежнему используя драйверы класса Microsoft. Для этого они упаковывают свои алгоритмы DSP в качестве APOs и изменяют стандартный INF-файл, чтобы вставить свои APOs в граф обработки сигналов звукового модуля.

Дополнительные сведения о создании пользовательских API см. в статье Реализация объектов обработки звука.

Пользовательское приложение поддержки APO

Чтобы разрешить пользователю настраивать параметры, связанные с пользовательским APO, рекомендуется создать приложение поддержки оборудования. Дополнительные сведения см. в разделе Приложение поддержки оборудования (HSA): действия для разработчиков драйверов.

Пользовательские тесты и требования APO

Microsoft HLK предоставляет тесты, которые можно использовать с APOs. Дополнительные сведения о тестах звука см . в разделах Device.Audio Testing и Device.Audio Tests.

Эти два теста могут быть особенно полезны при работе с APOs.

Проверка звуковых эффектовОбнаружение (вручную) — сертификация

Тест SysFX

Сведения о требованиях к звуку для поддержки API см. в разделе Device.Audio Requirements.

Пользовательские средства и служебные программы APO

Вы можете использовать "Пример обнаружения звуковых эффектов" для изучения доступных звуковых эффектов. В этом примере показано, как запрашивать звуковые эффекты на устройствах отрисовки и записи, а также как отслеживать изменения с помощью звуковых эффектов. Он включен в состав примеров пакета SDK и может быть скачан по следующей ссылке:

Пример обнаружения звуковых эффектов

Application Audio Effect Awareness

Приложения могут вызывать API, чтобы определить, какие звуковые эффекты в настоящее время активны в системе. Дополнительные сведения об API распознавания звуковых эффектов см. в разделе Класс AudioRenderEffectsManager.

Архитектура объектов обработки звука

Размещение звуковых эффектов

Существует три разных расположения для звуковых эффектов, реализованных в качестве API. Они находятся в stream effects (SFX), Mode effects (MFX) и Endpoint effects (EFX).

Stream Effect (SFX)

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

Некоторые версии Windows в качестве оптимизации не загружают api-интерфейсы SFX или MFX в режиме RAW.

  • Windows 8.1 не загружает RAW SFX или RAW MFX
  • Windows 10 загружает RAW MFX, но не RAW SFX

Эффект режима (MFX)

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

Эффект конечной точки (EFX)

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

На этой схеме показаны возможные расположения для потоковых (SFX), режимов (MFX) и конечных точек (EFX) для Windows 10.

Схема, иллюстрирующая размещение потоковой передачи, режима и конечных точек в Windows 10.

Несколько настраиваемых эффектов APO

Можно настроить несколько эффектов на основе APO для работы с разными приложениями.

На этой схеме показано, как несколько приложений могут получить доступ к нескольким сочетаниям потоков, режимов и эффектов APO конечной точки. Все API основаны на COM и выполняются в пользовательском режиме. В этом сценарии ни один из эффектов не выполняется в аппаратном режиме или в режиме ядра.

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

Примечание Для просмотра всей схемы можно использовать полосу прокрутки в самом нижнем углу этой страницы.

Эффекты программного режима и аппаратные конечные точки для отрисовки и захвата

На этой схеме показаны эффекты программного режима и аппаратные конечные точки для отрисовки и записи.

Схема, показывающая эффекты программного режима и аппаратные конечные точки для процессов отрисовки и записи.

Оснащённая DSP система с аппаратными эффектами

На этой схеме показана система, оснащенная DSP, которая реализует эффекты в оборудовании. В этом сценарии необходимо создать прокси-объект APO для информирования приложений о эффектах, реализованных на оборудовании.

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

Объекты обработки звука Windows

Реализация аппаратного драйвера аудиофайла