Современные методы позиционирования и сжатия звукаРефераты >> Программирование и компьютеры >> Современные методы позиционирования и сжатия звука
Далее, происходит процесс кодирования каналов, полученных после микширования (например, 6 каналов для формата "5.1" Dolby Digital/AC-3) и в результате получается один цифровой поток (bitstream). Процесс кодирования содержит много интенсивных вычислений, в то время как процесс декодирования (все еще не прогулка по парку) требует гораздо меньшего количества ресурсов для выполнения.
Теперь цифровой поток поступает к пользователю, на DVD диске, в виде MPEG файла или в каком-то другом.
Когда вы начинаете проигрывание, декодер обрабатывает цифровой поток в режиме реального времени, разделяя его на индивидуальные каналы и передавая их для воспроизведения на шести акустических колонках. (Или, декодер может делать еще и простой ремикс, т.е. новое микширование, для создания лишь нескольких выходных каналов. Если у вас имеется меньше чем шесть колонок, например, если у вас всего две колонки, тогда канал сабвуфера (низкочастотный) и центральный (диалогов) добавляются одновременно к обоим выходным каналам. Задний левый канал добавляется к левому выходному каналу, задний правый к правому выходному каналу. 3D звуковой процесс может быть использован для "имитации" наличия реально отсутствующих акустических колонок.)
Звуковое содержание "законсервировано". Где бы инженер по микшированию не решил поместить звук, там вы его и услышите. Точка. В такой же мере, что бы инженер ни сделал по отношению к уровню громкости, балансу или любому студийному эффекту, вы услышите это. Точка. Точно как с CD, он всегда один и тот же, каждый раз, когда вы его проигрываете. В игре, единственный случай, когда вы можете использовать законсервированное содержание, это окружающий звук, т.е. создающий атмосферу игры, музыка, видео клипы и т.д., потому что они не могут быть сделаны так, что бы реагировать на ваши действия, за исключением их запуска и остановки, что естественно.
В случае с интерактивным 3D звуком микширование не производится заранее в студии и не может быть там осуществлено. Микширование происходит в режиме реального времени, в момент, когда вы играете в игру. Отдельные звуки ("дорожки") извлекаются с диска и имеют собственный уровень громкости, расположение в пространстве, тональность и т.д., при этом выбор звука зависит от того, в каком направлении вы сдвинули мышку или джойстик. В сущности, в игру встроен собственный робот-инженер по микшированию.
Итак, если вы хотите использовать при игре внешнюю систему проигрывания Dolby Digital звука (что теоретически возможно), вам понадобится звуковая карта, имеющая возможность производить в режиме реального времени не только многоканальное микширование, но и кодирование на лету в цифровой поток. Эта звуковая карта должна ОЧЕНЬ БЫСТРО СЧИТАТЬ, потому что любая заметная задержка между, скажем, нажатием кнопки выстрела и появлением звука вылетающей ракеты, сделает играбельность удручающей.
Итак, предположим, вы можете сделать все это. Тогда вам нужно будет послать кодированный сигнал на расстояние в три фута от вашей карты до декодера, который должен будет снова разделить цифровой поток на множество каналов. Если такой декодер есть на карте, отлично, но это будет по-настоящему глупо, потому что тогда нет никакого смысла осуществлять кодирование в начале.
Как было бы хорошо иметь такую карту, которая могла бы кодировать на лету, правда единственно, что она сможет обеспечить, это удобная возможность управления внешней системой, воспроизводящей окружающий слушателя звук (surround system). Однако стоимость DSP с требуемой для этого вычислительной мощностью взвинтит цену нашей теоретической звуковой карты до уровня стратосферы. Это не является достоинством. Может быть, когда-нибудь это станет реальностью, но не задерживайте свое дыхание.
По иронии, работающий "на лету" Dolby Pro Logic кодировщик очень прост, потому что он основан на очень простой концепции.
В заключение, заметим, что некоторые разработчики игр используют формат звука AC-3 нестандартным образом для интерактивных звуков, однако, все равно процесс кодирования на лету не применяется. Они просто используют преимущества высокой степени сжатия/высокого качества цифрового формата для упаковки своих звуков на диске.
VQF
Термин VQF происходит от расширения (extension) имени файла содержащего звук сжатый при помощи алгоритма TwinVQ. Этот стандарт сжатия более эффективный и качественный MPeg Audio Layer3. Декодирование (расжатие) занимает приблизительно столько же времени, а иногда и меньше, как при МР3 компрессии. Чего нельзя же сказать о процессе кодирования (преобразование WAV в VQF).
Производительность TwinVQ
Алгоритм TwinVQ был разработан для более мощных процессоров чем требовалось для MP3, однако это сказалось только на сжатии данных в TwinVQ. Изготовление VQF файлов происходит очень медленно (даже используя процессор P-II). Примерно в три раза медленнее чем аналогичный процесс для Mpeg Audio Layer3 (используя MMX). Как утверждают разработчики, для реально быстрого процесса сжатия необходим процессор P-II 450MHz XEON или G3-600 (хотя я лично обходился P-II 266MHz)!
Mpeg 3 (128Kbps) |
Original (1411Kpbs) |
TwinVQ (VQF) 96Kbps |
|
|
|
Но нельзя сказать, что VQF файл превосходит или уступает MP3 файлу, это просто различные файлы. Взглянув на эти картинки Вы легко поймете это различие: когда Вы кодируете музыку в MP3, процесс кодирования вносит искажения в звук и вырезается ряд частот. В отличие от этого, когда Вы кодируете музыку в TwinVQ, мелкие незначительные детали теряются и звук "сглаживается" (softened). Так при 96Kbps VQF файл выглядит более близким к оригиналу чем при 128Kbps MP3, но он менее детален. Две другие проблемы - это спатализация (Spatalisation) и пре-эхо.
Как же это все работает?
TwinVQ использует метод кодирования подобно MP3, AAC или Dolby AC-3. Хотя он и использует некоторые классические средства использованные в MP3 (bitstream) или AAC (interframe backward prediction) но кодирование музыки отличается в корне. В этом методе, индивидуальные биты музыкальных данных непосредственно не кодируются, а объединяются в сегменты (вектора). Эти вектора сравниваются со стандартными образцами, которые подготовлены заранее. Выбирается стандартный вектор, который обеспечивает ближайшее соответствие, и количество, связанное с этим образцом передается как код сжатия. Данные упаковывается в длинный фреймовый режим или короткий фреймовый режим (8 subframes) согласно константе bitrate для того, чтобы повысить устойчивость к ошибке. Искажения сводятся к минимуму, так что музыка и другие звуки успешно воспроизводятся с качеством очень близким к оригиналу.