Объемный звук без посредников – AMD TrueAudio
С появлением серии графических процессоров Volcanic Islands с технологиями Mantle и TrueAudio упоминание компании AMD всё чаще можно заметить в контексте обсуждения тем обработки звука. Наравне с API Mantle по значимости, призванной осуществить прирост графической производительности, технология TrueAudio подразумевает пространственное разделение звука, а также снижение нагрузки на процессор. Но это ещё не всё.
Предпосылки появления TrueAudio
Начало развития идеи качественного звука в продукции AMD было положено в 2006 году компанией ATI, которая тогда ещё оставалась автономной корпорацией. Видеокарты Radeon R600 получили технологию аппаратного декодирования UVD, поддержку HDMI и интегрированную звуковую карту.
Подход стал настоящим подарком для тех, кто использовал компьютер в качестве домашней мультимедийной системы. Целая связка различных проводов легко заменялась на один единственный HDMI-кабель. Для этого в комплекте с некоторыми моделями видеокарт даже поставлялись специальные переходники DVI-HDMI. По большому счету, на этом этапе пользователи получили исключительно практическую пользу, так как кроме избавления от лишних проводов можно было забыть об отдельной звуковой карте.
Последующее улучшение направления продолжилось в 2008 году, когда аналогичная поддержка передачи звука стала доступна через DisplayPort. Затем, уже в 2009 году, силы были брошены на улучшение качества звука благодаря поддержке формата DTS-HD Master Audio — передача аудиоданных в высоком битрейте.
Параллельно с этим начала получать распространение технология AMD Eyefinity. Поддержка технологии обеспечивает подключение нескольких дисплеев непосредственно к одной видеокарте. Вместе с развитием Eyefinity, увеличением разрешений и поддержкой разных мультимониторных конфигураций появилась поддержка вывода многоканального звука DDMA (Discrete Digital Multi-Point Audio).
Если раньше вывод через HDMI или DisplayPort ограничивался только одним аудиопотоком, то теперь появилась возможность вывода нескольких независимых каналов. Это стало полезно для более удобного конфигурирования многозадачности и видеоконференций. Разумеется, в играх такой подход также выглядит крайне привлекательно.
Несмотря на модернизацию работы со звуком, AMD оставляла в стороне идею разработки аппаратных решений, используя уже известные продукты от специализированных компаний. На фоне этого проблема пресловутого аппаратного EAX для игрового трёхмерного звука оставалась нерешенной. Впрочем, множество пользователей и по сей день удовлетворены отсутствием аппаратного ускорения, довольствуясь кодеками на материнской плате.
Это во многом связано с выходом Windows Vista, где обработка звука аппаратным путем была отставлена в сторону. Начиная с «Висты» и заканчивая Windows 8 DirectSound не имеет доступа к драйверу звуковой карты и работает в режиме эмуляции на процессоре. Несмотря на то, что такой подход реализации программного микшера решал некоторые проблемы со звуковыми драйверами, это так же привело к утрате совместимости с EAX и DirectSound (о проблеме и её решении писали ещё в 2011 году). Так, целая плеяда крупных звуковых компаний включая Creative в целях оптимизации звука в операционных системах переключилась на OpenAL, что, по большому счету, стало универсальным решением.
В этом уравнении оптимизации и обработки звука есть еще один знаменатель в виде процессора, который, по сути, является ответственным за доставку замысла звукового антуража разработчиков игр до конечного пользователя. Степень нагрузки процессора хорошо демонстрируется на диаграмме ниже, где к сэмплу добавлен эффект реверберации.
Если смоделировать насыщенную аудио-составляющую из современной игры, то нагрузка на CPU возрастет в десятки раз. При этом у процессора есть и другие задачи, а на обработку звука выделяется в среднем 10% ресурсов. Разумеется, такое соотношение буквально связывает руки разработчикам.
А что будет, если GPU оснастить сигнальным процессором для обработки звука в реальном времени? Разработчики получат полный доступ к технологии, обработка данных будет происходить непосредственно в GPU и не зависеть от звуковой карты и процессора. Последнее также означает прирост производительности CPU. Именно такое аппаратное решение было реализовано в видеокартах Volcanic Islands (доступно для графических процессоров с архитектурой GCN 1.1), а технология получила название TrueAudio.
Архитектура TrueAudio
Несмотря на то, что TrueAudio — это первый программируемый «аудиодвижок», на поприще технологий для улучшения звука уже есть достаточно авторитетные фигуры. Поэтому, во избежание патентных войн, AMD привлекла к сотрудничеству компании Tensilica и GenAudio, а также получила лицензию на использование сигнальных процессоров Xtensa. При этом происходит повсеместное сотрудничество с компаниями, занимающимися игровыми движками и библиотеками.
Так, ключевая функция AMD TrueAudio отведена на ядра HiFi EP Audio DSP от вышеупомянутой компании Tensilica. Непосредственно за обработку звука отвечает три ядра Xtensa HiFi 2 и ядро улучшенной логики Xtensa HiFi EP. Последнее отвечает за обработку данных, способствует увеличению производительности памяти и построено на 24-битной архитектуре. Для этого в каждом ядре предусмотрено 32 килобайта кэш-памяти для хранения инструкций для обработки, 8 килобайт Scratch-памяти, а также 32 килобайта для данных.
Также ядра используют алгортимы для использования инструкций и алгоритмов для снижения энергозатрат. К слову, ядра ещё оснащены блоком умножения-сложения, что призвано увеличить производительность при низком энергопотреблении в декодере DTS Master Audio. Логика собственного производства способна использовать до 64 мегабайт памяти видеокарты. Вышеупомянутая особенность в виде отсутствия нагрузки на CPU связана со встроенным DMA-движком, который взаимодействует со встроенной памятью объемом 384 килобайта.
Звук, прошедший через TrueAudio, получится выводить не только посредством HDMI и DisplayPort, но и через USB, 3,5-миллиметровый аудио-разъем и даже через интегрированный в системную плату кодек.
Позиционное звучание
Применение вышеописанной архитектуры позволяет создать объемное 3D-звучание, а также добиться так называемого «позиционного звучания». Примерно под аналогичными описаниями мы уже давно знаем такие системы как DTS и Dolby. Однако AMD TrueSound позиционируется как отличное от перечисленных технологий решение. Различия кроются в том, что тот же Dolby Digital предполагает использование нескольких каналов, а также всех источников звуков в одной плоскости, а эффект присутствия обеспечивается иллюзией перемещения звука в этой плоскости.
В похожем AMD TrueSound направлении движется технология RealSpace 3D от VisiSonics, которая, кстати, также предназначена для игр и виртуальной реальности. Общее у технологий то, что они предусматривают пространственное разделение источников и моделирование звука как в горизонтальной, так и в вертикальной плоскости.
Для создания позиционного звучания AMD использует созданную на психофизических исследованиях технологию AstroSound от упомянутой студии GenAudio. Технология представляет собой блок алгоритмов, который используется в виде плагина в некоторых DSP. Библиотека не только доступна для всех популярных операционных систем включая мобильные, но и совместима с различным аппаратным обеспечением. Моделирование звука происходит от 0 до 359 градусов в горизонтальной плоскости и от -90 до 90 градусов в вертикальной плоскости. Вывод объемного звука может осуществляться как через многоканальные конфигурации, так и через наушники или два динамика.
Кроме этого AMD TrueAudio поддерживает реверберацию Convolution Reverb, которую в компании сравнивают с «фотографией пространства». Реверберация основывается на заранее заготовленных записях в различных пространствах.
В результате TrueAudio вкупе с Convolution Reverb способно работать и обрабатывать более 100 потоков в режиме реального времени и обеспечить позиционное звучание в любом пространстве. Особенность применения реверберации в контексте TrueAudio заключается в том, что её поддержка не будет нагружать процессор, что и являлось главной проблемой реализации.
Заключение
Ключевой особенностью AMD TrueAudio является то, что кроме соответствующей аппаратной части (видеокарты на основе процессоров с архитектурой GCN 1.1) необходимы продукты с поддержкой технологии.
Первой игрой с поддержкой TrueAudio стала Thief, где реализована поддержка эффекта реверберации. Примечательно, что все остальные звуковые каналы по прежнему обрабатываются CPU, а разгрузка процессора происходит как раз за счет поддержки Convolution Reverb.
Ещё один продукт-пример использования TrueAudio представляет собой демо-приложение «Tuscany», созданная GenAudio и Oculus VR. В данном случае используется расширение AstroundSound для пространственного разделения источников звука.
AMD TrueAudio заслуживает внимания не только по причине того, что это одно из первых за долгое время решений для улучшения звука, но и из-за возможности кардинального изменения уровня аудио на ПК. Более того, PlayStation 4 и Xbox One имеют APU AMD и построены на x86-архитектуре, а значит, AMD TrueAudio вскоре может быть портирована и на консоли. Осталось лишь подождать наличия полной реализации технологий в продуктах для виртуальной реальности и свежих играх.