Современные методы позиционирования и сжатия звука
Категория реферата: Рефераты по информатике, программированию
Теги реферата: фонды реферат, реферат на тему мова
Добавил(а) на сайт: Куваев.
Предыдущая страница реферата | 19 20 21 22 23 24 25 26 27 28 29 | Следующая страница реферата
Это вторая самая большая проблема и одновременно обоснование того, что заявления типа "делайте так!" "так не делайте!" никогда не прекратятся до тех пор, пока участники тестов в слепую не подтвердят и не удостоверятся в том, что они одновременно и правы и не правы.
Нет ничего странного в том факте, что иллюзия или обман чувств используется в большинстве создаваемых приложениях. Это как раз то место, где на сцену выходит искусство. Тем не менее, очень важно отдать должное тому, что этого заслуживает. Если в игре нет эффективного использования 3D звука, это не означает, что виновата в этом технология и если звук звучит правдоподобно как в жизни, технология, сама по себе, лишь часть головоломки! Это должно быть так же очевидно, как в случае, если вам попался паршивый текстовый процессор, в этом нет вины компьютера, на котором он запущен, почему же в случае с 3D звуком люди все время строят свои выводы, не представляя точно, на чем основывается их мнение.
Далее, будем считать, что разные методы реализации имеют сильные и слабые стороны.
Получается, что наушники, в связке с соответствующим бинауральным процессом обработки звука (слишком часто называемым просто HRTF) относительно хорошо справляются с созданием ощущения, что звук расположен сзади нас или над нами. Тем не менее, я еще ни разу не слышал такого звучания (а слышал я все), где бы убедительно осуществлялось расположение источника звука справа и впереди слушателя. (Флойд Тул /Floyd Toole/, занимающийся 3D звуком в компании Harman International и в течение долгого времени проводящий исследованиями по этой теме, один из немногих людей, который обобщил и изложил эту проблему в печатном виде.)
Кстати, HRTF, конечно же, звучит по-особому для каждого слушающего, поэтому любая звуковая технология для массового рынка должна создавать усредненное звучание, воспроизводя потенциально компромиссный результат и тем самым, продолжая вносить все больше разногласий между слушателями.
При использовании двух акустических колонок, основная зона эффективного размещения источников звука (т.н. sweet spot) находится спереди от слушателя и покрывает пространство в 180 градусов по азимуту, т.е. в горизонтальной плоскости. Ощущения, что звук расположен сзади и над слушателем, очень слабые, если нет поддержки в виде дополнительных сигналов. Особо отметим то, что использование алгоритмов HRTF, обеспечивающих воспроизведение звука для бинаурального прослушивания (т.е. в наушниках) и алгоритмов cross-talk cancelation (или для краткости CC; технология позволяющая воспроизводить звук, например из левой колонки так, что бы слышно этот звук было только левым ухом) не является успешным решением проблемы, неважно как хорошо цифры выглядят на бумаге или как крута рекламная компания.
Применение множества акустических колонок это уже другой вид зверей, но
они действительно являются частью доступного выбора возможностей, особенно
для компьютерных игр. Панорамирование звука обеспечивает явные выгоды при
расположении акустических колонок сзади слушателя. Это облегчает проблему
выбора места с наилучшим звучанием для прослушивания, так называемый sweet
spot. Однако само по себе панорамирование звука никогда не может обеспечить
значительных результатов, с точки зрения позиционирования источников звука
в вертикальной плоскости. Конечно, до тех пор, пока мы не перестанем
размещать колонки только на полу, а не начнем их подвешивать под потолком.
API и Rendering Engine - это две разные вещи!
Играя в игры, вы используете API и rendering engine (рендерин энджин).
API (application programming interface или, для краткости, интерфейс) это, по сути, просто набор команд, используемых разработчиком при написании игры
-- это не технология 3D звука или чего-то другого.
Rendering engine или механизм воспроизведения звука (далее просто звуковой движок) представляет собой процесс взаимодействия алгоритмов 3D звука со звуковыми потоками с целью расположения источников акустики в пространстве. Если API (например, DS3D или наш QMDX) поддерживает множество звуковых движков, тогда в одном и том же приложении будет воспроизводиться звук немного отличающийся при использовании разных звуковых движков, почти так же, как и звуковая дорожка MIDI (другой набор команд) будет звучать немного иначе на разных аппаратных синтезаторах от различных производителей.
Так как различные звуковые движки и схемы реализации имеют разную
степень эффективности соответствующий интерфейс позиционирования не должен
ограничиваться возможностями какого-то одного звукового движка. В
действительности, API говорит: "поместите этот звук здесь" и звуковой
движок делает эту работу наилучшим способом, помещая звук в нужное место.
При этом звуковой движок использует свои алгоритмы и имеющуюся конфигурацию
воспроизведения звука (наушники, две колонки, 15 колонок, что угодно).
Люди, которые делаю заявления типа "эта игра поддерживает только DS3D" совершенно не понимают сути вещей. Если игра написана под интерфейс DS3D - это отлично! Она будет работать со всеми 3D звуковыми картами в любой последовательности. На каждой звуковой карте, игра будет использовать имеющийся звуковой движок, неважно, кем он сделан QSound, EMU, Aureal или кем-то еще.
Существует масса звуковых интерфейсов, таких, как DS3D, QMDX, QMixer,
A3D 1.x и 2.0 и звуковые API третьих фирм, таких как HMI, EAR, Diamondware
и другие. Если программист выбрал для использования интерфейс "Фирмы Х"
(при этом он может также использовать более чем один API для конкретного
приложения) это совсем не означает, что вы должны обязательно использовать
аппаратное обеспечение "Фирмы Х" что бы все работало.
Что сбивает с толку, так это знание того, какой звуковой движок поддерживает данный API.
Лишь немногие API созданы для поддержки специфичных аппаратных возможностей, которые могут быть недоступны при использовании звуковых карт других производителей или они могут быть неспособными поддерживать основные функциональные возможности конкурирующих продуктов.
Хороший API должен поддерживать как можно больше аппаратного обеспечения и так много функциональных особенностей, насколько это возможно, так, чтобы разработчик игры мог использовать один интерфейс и получить хороший результат на всех звуковых платах.
Например, если кто-то купит игру, которая была написана в расчете на новейшую версию интерфейса QMixer, эта игра будет иметь отличные 3D звуковые эффекты даже на звуковой карте с поддержкой только обычного стерео звука. Если та же игра будет запущена на системе оснащенной 3D картой на чипсете от Aureal, игра все равно будет использовать чипсет Aureal для воспроизведения 3D звука, в итоге пользователь услышит то, за что он заплатил.
Большинство разработчиков убедились в очевидном преимуществе
использования таких API, как DS3D, QMixer и QMDX, которые не являются
зависимыми от производителя аппаратного обеспечения и, следовательно, будут
прекрасно работать с любой 3D звуковой картой.
Что такое "Panning"?
Panning (панорамирование) -- этот термин происходит от простого устройства, изобретенного Лесом Полом (Les Paul) в далеких 50-х годах, которое использовалось для расположения моно фонических звуковых дорожек в явно определенное положение слева/справа в стерео звуковом поле.
"Panoramic Potentiometer" (или для краткости "Pan Pot", панорамный потенциометр) это нечто вроде регулятора баланса в стерео системе. В то время как регулятор баланса управляет всем входящим стерео сигналом и выдает отрегулированный стерео сигнал на выходе, pan pot управляет моно сигналом на входе, а на выходе выдает его разделенным на части, передавая их в выходные каналы, левый и правый.
Любой микшерский пульт стерео звука (использующийся в студии звукозаписи) имеет 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, но в принципе это верно для любой реально существующей на рынке технологии 3D звука. DS3D HEL никогда не был рассчитан на то, чтобы быть эквивалентом 3D звуковому движку, реализованному полностью на аппаратном уровне.
Компанией QSound также созданы комплекты для разработчиков (SDK), такие
как QMDX и QMixer. Они похожи на DS3D, так как оба содержат API (набор
команд) и модуль работающий в режиме реального времени, который
обеспечивает программную обработку и воспроизведение стерео (QMDX) или 3D
(QMixer) звука в системах не имеющих соответствующего аппаратного
обеспечения. Работающий в режиме реального времени звуковой движок в обоих
QM SDK оставляет DS3D HEL далеко позади с точки зрения производительности, поэтому в системах без аппаратного обеспечения для воспроизведения звука
игры будут идти с хорошими значениями fps.
Тем не менее, также как и DS3D, вместе QMDX и QMixer поддерживают DS3D- совместимые ускорители, если какой-либо из них присутствует в системе. Оба эти API переводят команды напрямую в формат DS3D с тем, чтобы использовать имеющееся аппаратное обеспечение. Так, в системе с аппаратным ускорителем, интерфейсы QM больше чем просто оболочка DS3D, обеспечивающая удобное использование набора мощных функций и значительно облегчающая задачи программиста, но в то же время эти интерфейсы сохраняют универсальную поддержку аппаратного обеспечения рассчитанного только на DS3D. В действительности, наши интерфейсы идут на шаг дальше, потому что (как было показано выше) их собственные звуковые движки могут быть использованы в дополнение к имеющемуся аппаратному обеспечению, например, если 3D звуковая карта поддерживает слишком мало звуковых каналов.
QSound создала свой собственный движок реверберации звука, который
совместим с интерфейсом EAX. Этот движок уже поставляется нашим OEM
клиентам для использования в новых Q3D продуктах. Мы также добавили
поддержку набора команд EAX в наши комплекты разработчиков (SDK): QMDX и
QMixer.
Если QSound не использует HRTF, как вы можете обеспечить позиционирование
3D звука на двух колонках?
Прежде всего, вы должны понять, что любой 3D звуковой процесс это ничто
иное, как алгоритм фильтрации. Допустим, что существует "идеальный" или
"совершенный" алгоритм фильтрации для точного расположения источника звука
в заданном месте в пространстве, однако вполне вероятно, что существует
больше чем один способ попытаться создать такой фильтр. HRTF является одним
из таких способов.
Если говорить о звуковых движках от QSound в общем (о Q3D, QSoft3D,
QMixer и т.д.), то мы никогда не использовали обработку звука алгоритмами
HRTF для воспроизведения 3D звука. HRTF обеспечивает превосходное
восприятие для бинаурального 3D звука (т.е. рассчитанного на прослушивание
в наушниках) и мы применили эти принципы при разработке наших звуковых
движков, создающих звук для наушников. Тем не менее, реализация алгоритма
cross-talk cancelation, необходимого для преобразования процесса HRTF для
воспроизведения на колонках непрост, несовершенен и дорог в реализации.
Единственная причина того, что HRTF столь популярный метод в том, что он
является общедоступным! Использование в рекламе термина HRTF позволяет
легко ввести в заблуждение при объяснении технологии и звучит термин так, что создает ощущение вещи, которая точно должна работать, а значит, продукт
легче продавать.
Итак, при создании функций обработки звука, имелась возможность вывести средние и сбалансированные особенности восприятия многих слушателей, при воспроизведении звука через различные типы акустических колонок, а также при различных способах их расположения. Для лучшей оптимизации и перехода на следующий уровень (это явилось толчком к успеху в области профессионального звука) использовалась помощь лучших профессионалов, занимающихся звукозаписывающим бизнесом, поэтому алгоритмы не просто работают, но обеспечивают настолько натуральное звучание, насколько это возможно.
QSound выбрала, по моей искренней оценке, крайне хороший подход, результатом чего стала возможность располагать источники звука как минимум
эквивалентно, а в большинстве случаев лучше, чем это позволяет сделать
применение стандартной схемы HRTF+CC. Даже при едва различимых звуковых
эффектах идущих со стороны, область хорошей слышимости (sweet spot) немного
расширена, но самое главное, особенно для реальных пользовательских
приложений, это значительно более низкая стоимость реализации технологии.
Причина того, что подход обеспечил нам решение типа "кратчайшее расстояние
между двумя точками" в том, что процессы HRTF+CC включают в себя гораздо
больше вычислений, чем требуется для нашей технологии.
После того, как я сказал все это, могу ли я сказать, что существует
значительная разница между тем, как слышится 3D звук при использовании
технологии QSound и тем звучанием, которое создается при использовании
HRTF+CC? Для того чтобы все работало и работало хорошо, были потрачены годы
исследований и куча денег. Отложим на время мою шляпу "профессионала по
звуку" и вот что я вам скажу. Я искренне считаю что, особенно в видео
играх, средний слушатель не заметит большой разницы.
Единственная вещь, раздражающая меня, заключается в том, что некоторые
поставщики 3D звуковых технологий базирующихся на HRTF+CC делают
возмутительные заявления о производительности, не просто предполагая, а, твердо заявляя о том, что они могут располагать источники звука идеальным
образом, в любом месте трехмерного пространства, например под вашим стулом.
Это откровенная ложь. Очень плохо, что некоторые компании испытывают
необходимость обманывать любителей поиграть в игры таким вот образом. Все
что может обеспечить 3D звук это действительно здорово и гораздо лучше, чем
обычное стерео звучание, но когда люди покупаю разрекламированные поделки, не обеспечивающие того результата, который обещал производитель, они
начинают думать что 3D звук сам по себе это большой обман. Это удручает.
В чем разница между EAX и Wavetracing?
Кроме основной возможности по позиционированию источников звуков в 3D пространстве, другой уровень реализма может быть обеспечен за счет имитации воздействия окружающей среды на звуки, которые мы слышим. Поэтому, с развитием продуктов позиционирования 3D звука и с ростом мощности настольных компьютеров, мы наблюдаем появление поддержки этих возможностей в современных звуковых картах.
Когда звук распространяется в пространстве, наряду с достижением наших
ушей напрямую, он может отражаться от стен и других поверхностей. Звук
также может проходить сквозь стены, частично или полностью поглощаясь, и
другие объекты. Все это влияет на то, что мы слышим. В обычном случае, отражения звуков на большом пространстве может в реальности создавать ясно
различимые эха, но более часто, результатом является то, что мы называем
"reverberation" (реверберация, т.е. многократно отраженные звуки) или
"reverb" для краткости. Reverb это совмещение множества эхо в тесном
пространстве так, что мы слышим их как единую последовательность или
"tail", которая следует за исходным звуком и затухает, причем степень
затухания напрямую зависит от свойств окружающего пространства, в котором
распространяется звук.
Wavetracing и EAX дают разработчикам программного обеспечения два способа создавать звуковые эффекты, связанные со свойствами окружающей среды ("environmental") или виртуальной акустикой ("virtual acoustic"), для воспроизведения взаимодействия звуков с реальной окружающей средой.
Технология Wavetracing является частью API A3D 2.0 и основывается на использовании упрощенной версии геометрии графической сцены игры, передавая данные о геометрии сцены в звуковую карту на чипсете от Aureal. После того, как будут обсчитаны реальные пути распространения нескольких первых отраженных звуков (обычно вычисляют пути распространения лишь нескольких первых отраженных звуков), анализируется то, как звуки проходят сквозь препятствия, частично или полностью поглощаясь. Затем происходит рендеринг звуковой сцены, т.е. точное определение мест расположения источников звука в пространстве и расчет путей достижения звуков (прямых, отраженных и прошедших сквозь препятствие) ушей слушателя.
EAX это гораздо более простой интерфейс, который использует обобщенную модель реверберации, такого же типа, что используется в профессиональной музыке и звуковом сопровождении фильмов в течение многих лет. Это сокращает возможности по управлению reverb до ключевых параметров, которые могут быть использованы для сведения их свойств до значений синтезированной пространственной акустики в терминах размера, типа поверхности и т.д.
Сравнение, насколько качество реверберации влияет на ощущения от игры, по сравнению с качеством такого же важного фактора, как звуковой движок, по моему скромному мнению не выявит явного победителя. Другими словами, оба способа дают возможность создавать хорошие звуковые эффекты.
Самая большая разница между этими двумя способами заключается в интерфейсах, которые пользователь никогда не слышит, зато разработчик должен использовать какой-то из них, или оба сразу, для написания игры, чтобы задействовать звуковую карту!
Интерфейс EAX имеет преимущество в том, что он много, много проще в
использовании и дает возможность для простой настройки и манипуляциями
("tweaking") параметрами reverb. Кроме того, EAX это открытый протокол, а
это означает, что другие создатели 3D технологий, включая CRL/Sensaura и
QSound будут поддерживать EAX одновременно и в своих API и в своих звуковых
движках. Итак, с точки зрения разработчика приложений, желающих перейти на
следующий уровень в воспроизведении 3D звука, EAX прост в использовании и
имеет потенциал в более широкой аппаратной поддержки, чем запатентованная
технология Wavetracing от Aureal.
В качестве API, EAX имеет несколько недостатков в своей первой версии, самый явный из которых это отсутствие механизма расчета прохождения звука сквозь препятствия. Правда, в EAX 2.0 этот недостаток должен быть устранен.
Промышленное объединение, называемое IASIG (в него входят QSound,
Creative Labs, Aureal и другие поставщики 3D технологий, производители и
т.д.) разрабатывает на основе EAX новую спецификацию. Основная идея
разработки заключается в создании стандартного открытого интерфейса, который мы все сможем использовать. Есть все основания надеяться, что новый
стандартный интерфейс даст разработчикам возможность так же легко создавать
приложения, как это обстоит в случае с EAX. При этом новый стандартный
интерфейс будет свободен от недостатков присущих EAX.
Рекомендуем скачать другие рефераты по теме: сочинение на тему зима, текст для изложения.
Предыдущая страница реферата | 19 20 21 22 23 24 25 26 27 28 29 | Следующая страница реферата