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


Windows 10: новые возможности драйверов аудио

В этом разделе приведены общие сведения о новых возможностях звука для Windows 10.

Сводка возможностей

Ниже приведены новые функции аудио в Windows 10.

Улучшения звука с низкой задержкой

Задержка звука — это задержка между тем временем, когда создается звук, и когда оно услышится. Низкая задержка звука очень важна для нескольких ключевых сценариев, таких как ниже.

  • Pro Audio
  • Создание музыки и смешивание
  • Коммуникации, такие как Skype
  • Виртуальная и дополненная реальность
  • Игры

Общая задержка устройства — это сумма задержек следующих компонентов:

  • Операционная система
  • Объекты обработки звука
  • Звуковой драйвер
  • Звуковое оборудование

В Windows 10 было сделано для уменьшения задержки в ОС. Без каких-либо изменений драйвера приложения в Windows 10 будут испытывать более низкую задержку 4,5–16 мс. Кроме того, если драйвер был обновлен, чтобы воспользоваться новыми DDIS с низкой задержкой, которые используют небольшие буферы для обработки звуковых данных, задержка будет уменьшаться еще больше. Если драйвер поддерживает 3 мс аудио буферов, задержка округления составляет ~10 мс.

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

Звуковой стек поддерживает несколько размеров пакетов и динамическое изменение размера пакетов, чтобы оптимизировать компромисс между задержкой и питанием в зависимости от сценария пользователя. Кроме того, потоки будут приоритетными для обеспечения того, чтобы потоки с высоким приоритетом (например, телефонные звонки) имели выделенные ресурсы.

Чтобы звуковые драйверы поддерживали низкую задержку, Windows 10 предоставляет следующие 3 новые функции:

  1. [Обязательный] Объявите минимальный размер буфера, поддерживаемый в каждом режиме.
  2. [Необязательно, но рекомендуется] Улучшение координации потока данных между драйвером и ОС.
  3. [Необязательно, но рекомендуется] Зарегистрируйте ресурсы драйвера (прерывания, потоки), чтобы их можно было защитить операционной системой в сценариях с низкой задержкой. Дополнительные сведения см. в разделе "Звук с низкой задержкой".

Режимы обработки сигналов и звуковые категории

Режимы обработки сигналов

Драйверы объявляют поддерживаемые режимы обработки звуковых сигналов для каждого устройства.

Категории звука (выбранные приложениями) сопоставляются с звуковыми режимами (определяются драйверами). Windows определяет семь режимов обработки звуковых сигналов. Изготовители оборудования и IHV могут определить, какие режимы они хотят реализовать. Режимы приведены в таблице ниже.

Режим Отрисовка и запись Description
Необработанные Оба Необработанный режим указывает, что к потоку не следует применять обработку сигналов. Приложение может запрашивать необработанный поток, который полностью не тронут и выполнять собственную обработку сигналов.
По умолчанию. Оба Этот режим определяет обработку звука по умолчанию.
Фильмы* Render Воспроизведение звука фильма
Носителя* Оба Воспроизведение звука музыки (по умолчанию для большинства потоков мультимедиа)
Речи* Capture Запись голоса человека (например, входные данные для Кортана)
Коммуникаций* Оба Визуализация и запись VOIP (например, Skype, Lync)
Уведомления* Render Мелодии, оповещения, оповещения и т. д.

Драйверы аудиоустройств должны поддерживать по крайней мере режим "Необработанный" или "Стандартный". Поддержка дополнительных режимов является необязательным.

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

Категории аудио

В следующей таблице показаны категории аудио в Windows 10.

Чтобы сообщить системе об использовании аудиопотока, приложения могут пометить поток с определенной категорией аудиопотока. В Windows 10 есть девять категорий аудиопотоков.

Категория Description
Фильм* Фильмы, видео с диалогом (заменяет ForegroundOnlyMedia)
Носителя* Категория по умолчанию для воспроизведения мультимедиа (заменяет BackgroundCapableMedia)
Игровой чат* Взаимодействие между пользователями в игре (новая категория в Windows 10)
Речи* Входные данные речи (например, личные помощник) и выходные данные (например, приложения навигации) (новая категория в Windows 10)
Сообщения VOIP, чат в режиме реального времени
видны узлы Сигнализация, кольцевой тон, уведомления
Звуковые эффекты Beeps, dings и т. д.
Игровые носители В игре музыка
Игровые эффекты Шары отскочили, звуки двигателя автомобиля, пули и т. д.
Другие Некатегоризованные потоки

* Новые возможности Windows 10.

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

Эффекты APO с аппаратной разгрузкой

Windows 10 поддерживает отключенные аппаратные эффекты APO. Api-интерфейсы можно загрузить поверх пин-кода разгрузки. Это позволяет выполнять обработку звука как в программном обеспечении, так и в оборудовании. Кроме того, обработка может изменяться динамически. Некоторые или все обработки можно переместить из программного APO в DSP, когда есть достаточно аппаратных ресурсов, а затем вернуться к программному APO при увеличении нагрузки в DSP.

Дополнительные сведения см. в разделе "Реализация отключенных эффектов APO оборудования".

активация голосовой связи Кортана — пробуждение по голосовой связи

Кортана, личная технология помощник была впервые продемонстрирована на конференции разработчиков Microsoft BUILD в 2013 году. Активация голосовой связи — это функция, которая позволяет пользователям вызывать подсистему распознавания речи из различных состояний питания устройства, сказав определенную фразу — "Эй Кортана". Функция "Эй Кортана" Голосовая активация (VA) позволяет пользователям быстро взаимодействовать с опытом (например, Кортана) за пределами активного контекста (т. е. то, что сейчас на экране) с помощью их голоса. Эта функция предназначена для сценариев, когда экран отключен, неактивен или когда он полностью активен. Если оборудование поддерживает буферизацию, пользователи могут объединить ключевую фразу и фразу команды. Это улучшает завершение пробуждения по голосовой связи для пользователя. Дополнительные сведения см. в разделе "Активация голосовой связи".

Универсальные драйверы Windows для звука

Windows 10 поддерживает одну модель драйвера, которая работает для ПК и 2:1 и Windows 10 для телефонов и небольших планшетов с экрана. Это означает, что IHV может разрабатывать свой драйвер на одной платформе, и этот драйвер работает на всех устройствах (настольные компьютеры, ноутбуки, планшеты, телефоны). Результатом является сокращение времени разработки и затрат.

Для разработки универсальных звуковых драйверов используйте следующие средства:

  1. Visual Studio 2015: новые параметры драйвера позволяют задать для целевой платформы значение "Универсальная" для создания драйвера с несколькими платформами.
  2. APIValidator: это средство WDK, которое проверка, является ли драйвер универсальным и выделяет вызовы, которые необходимо обновить.
  3. Примеры аудио в GitHub: sysvad и SwapAPO были преобразованы в универсальные драйверы. Дополнительные сведения и указатели на пример кода GitHub см. в статье универсальные драйверы Windows для аудио.

Управление ресурсами для звуковых драйверов

Одна из проблем с созданием хорошего звукового интерфейса на низкой стоимости мобильного устройства заключается в том, что некоторые устройства имеют различные ограничения параллелизма. Например, возможно, устройство может воспроизводить только до 6 аудиопотоков одновременно и поддерживает только 2 разгрузки потоков. Если на мобильном устройстве есть активный телефонный звонок, возможно, что устройство поддерживает только 2 аудиопотока. При записи звука устройство может воспроизводить только до 4 звуковых потоков.

Windows 10 включает механизм для выражения ограничений параллелизма, чтобы убедиться, что высокоприоритетные звуковые потоки и мобильные телефонные звонки смогут воспроизводиться. Если у системы недостаточно ресурсов, то потоки с низким приоритетом завершаются. Этот механизм доступен только на телефонах и планшетах, а не на настольных компьютерах или ноутбуках.

Дополнительные сведения см. в разделе "Управление аппаратными ресурсами аудио".

Перебалансация PNP для звуковых драйверов

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

  1. Hotplug PCI: пользователь подключается к устройству и шине PCI недостаточно ресурсов для загрузки драйвера для нового устройства. Некоторые примеры устройств, которые входят в эту категорию, включают Thunderbolt, USB-C и NVME служба хранилища. В этом сценарии ресурсы памяти должны быть переупорядочены и консолидированы (перебалансированы) для поддержки добавленных дополнительных устройств.
  2. BAR с изменением размера PCI: после успешной загрузки драйвера для устройства в памяти он запрашивает дополнительные ресурсы. Некоторые примеры устройств включают высокопроизводительные графические карта и устройства хранения. Дополнительные сведения см. в разделе "Реализация перебаланса PnP" для аудио драйверов PortCls.