Современные методы позиционирования и сжатия звука

Информация - Компьютеры, программирование

Другие материалы по предмету Компьютеры, программирование

·вукозаписи) имеет pan pot для каждого канала. Повернем ручку управления pan pot полностью влево и 100% сигнала (скажем в честь Леса, что это звук гитары) будет направлено в левую колонку. В результате, звук гитары будет явственно исходить из левой колонки. Повернем ручку управления pan pot полностью вправо и 100% сигнала будет исходить из правой колонки.

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

Такая же концепция панорамирования использовалась на протяжении лет в видео играх, с целью динамического расположения источников звука слева/справа в звуковом стерео поле. (Ясно, что физически pan pot не использовался, а применялся его программные эквиваленты). Такой же принцип может быть распространен на любое количество колонок. Панорамирование, использующееся в обработке 3D звука, не изменяет звуковой сигнал (например, его фазу, частоту и т.д.) осуществляя лишь простое управление пропорциями передаваемого сигнала индивидуально в каждое физическое устройство воспроизведения.

Что такое "Voice Manager"?

Термином Voice Manager (менеджер голоса) называют стандартизованный механизм для управления на аппаратном уровне каналами в 3D звуковой карте. Раньше аппаратное обеспечение оперировало всего лишь 5 каналами 3D звука, сейчас стандартным является число в 8 каналов. Основной интерфейс 3D звука DirectSound3D перекладывает работу по распределению этих ограниченных ресурсов между самыми важными звуками (те, что должны звучать в данный конкретный момент) полностью на программиста. Это очень большой объем работы. Программисты обычно предпочитают задать много (20, 30 или больше) звуковых каналов, а затем просто манипулировать ими по своему усмотрению.

Voice manager работает на уровне драйвера аппаратной части. По существу он позволяет программе работать так, как если бы было больше звуковых каналов, чем в действительности поддерживается на аппаратном уровне. В соответствии с некоторыми схемами приоритета, определяемыми программистом, voice manager берет на себя управление процессом динамического распределения самых важных звуков между реально доступными на аппаратном уровне каналами.

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

Поэтому, QSound предложила Microsoft, чтобы наша схема управления распределением ресурсов была адаптирована и распространялась в качестве стандартной с тем, чтобы любой производитель мог ее использовать (также как и DS3D). Microsoft согласилась с нашим предложением, немного упростила наш метод и стала распространять систему управления распределением ресурсов под именем Voice Manager.

В чем разница между QSound, DS3D и EAX?

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

DS3D содержит:

  • API
  • низкоуровневый интерфейс, работающий в режиме реального времени, аппаратноог обеспечения 3D звука
  • программный звуковой движок от Microsoft, работающий в режиме реального времени, носящий имя "Hardware Emulation Layer" (HEL, уровень эмуляции аппаратного обеспечения)

Идея в том, что разработчик программного обеспечения пишет приложение, используя API DS3D, который является всего лишь набором команд. Когда игра запускается, стандартная функция DS3D ищет аппаратный ускоритель (например, 3D звуковую карту). Если такая карта найдена в системе, DS3D передает вызовы 3D функций и звуковые потоки в звуковую карту для их исполнения и обработки.

Каждый отдельный производитель звуковых карт с поддержкой 3D звука, независимо от того, какая технология 3D звука используется QSound, EMU, Aureal, CRL и т.д. делает свои звуковые карты совместимыми с набором команд DS3D. Это означает, что игра, написанная под DS3D, будет производить базовое позиционирование 3D звука на любой 3D звуковой плате, используя тот звуковой движок, какой имеется. В этом прелесть DS3D; он является универсальным API, который поддерживает звуковые движки многих производителей.

Далее, если игра не нашла аппаратного обеспечения, т.е. 3D звуковой карты в данной системе, тогда DS3D использует свой собственный программный звуковой движок (HEL). Это одна из проблем DS3D; интерфейс DS3D функционален и универсален, но HEL медлителен (поглощая при этом огромное количество ресурсов CPU) и обеспечивает минимальные 3D звуковые эффекты, причем только через головные телефоны. Проблема с ресурсами центрального процессора означает, что при отсутствии аппаратного обеспечения 3D звука производительность может пострадать в такой же степени, как падает значение fps в играх при отсутствии графического акселератора.

Одним из продуктов компании QSound является звуковой движок для производителей звуковых карт. Этот звуковой движок, конечно же, совместим с интерфейсом DS3D. Конечно, процесс воспроизведения трехмерного звука гораздо сложнее, чем то, что может эмулировать DS3D HEL, но в принципе это верно ?/p>