Главная > Компьютеры и комплектующие > Мультимедиа > |
FAQ на околозвуковые темы технического характера |
"Заметки на полях" (FAQ) Часто задаваемые вопросы (и ответы) на околозвуковые темы технического характера |
Дата создания: 28.Apr.2000
Последнее обновление: 07.Oct.2000
Автор: Александр Радзишевский (Alex Y. Radzishevsky)
Copyright (C) 1998-2000, Alex Y. Radzishevsky
Все права в отношении данного документа принадлежат автору. При воспроизведении данного текста или его части сохранение Copyright обязательно. Коммерческое использование допускается только с письменного разрешения автора.
Предупреждение. Автор данного документа выражает свою личную точку зрения, поэтому все написанное ниже не претендует на объективность.
Как известно, результатом кодирования сигнала с помощью такого алгоритма, как, например, MPEG-1 Layer III (MP3), является бит-поток с фреймовой (блочной) структурой. Это объясняется тем, что кодирование исходного потока производится не целиком, а по частям. То есть фактически исходный поток разделяется на блоки определенной длины, затем каждый блок (фрейм) в отдельности подвергается кодированию и результат (кодированный блок информации) направляется в результирующий поток (будь то файл или поток данных).
CBR (Constant Bit Rate - постоянный битрейт) - это такой способ кодирования исходного аудио потока, при котором все его блоки (фреймы) кодируются с одинаковыми параметрами (с одинаковым битрейтом). Иными словами, битрейт на всей протяженности (всех фреймов) результирующего потока является постоянным.
VBR (Variable Bit Rate - переменный битрейт) - это такой способ кодирования исходного аудио потока, при котором каждый отдельный блок (фрейм) кодируется со своим битрейтом. Выбор битрейта, оптимально подходящего для кодирования данного фрейма, осуществляется самим енкодером.
Какие параметры предпочтительны при кодировании MP3?
Этот вопрос не имеет однозначного ответа. Каждый человек подбирает себе параметры кодирования в зависимости от конкретной задачи. Если речь идет о кодировании голоса или другой звуковой информации при малых требованиях к качеству, то кодирование можно производить на минимальных битрейтах, вплоть до 8 Кбит/с (при данном битрейте полоса частот ограничивается 2,5 КГц, что сравнимо с телефонной линией).
Если же стоит вопрос о кодировании аудио данных с CD (44.1 KГц / 16 бит / стерео), то на этот счет существует масса мнений. Большинство пользователей почему-то убеждено что битрейта 128 Кбит/c достаточно для кодирования аудио CD-качеcтва без потерь. На самом деле это не так. В этом легко убедиться если прослушать (даже на аппаратуре среднего качества) сначала оригинал, а затем полученный MP3. MP3 будет отличаться как минимум "сухостью" звучания, не говоря уже о появлении некоторых посторонних "позвякиваний", скрежета и других помех.. Это обусловлено тем, что используемая при кодировании психоакустическая модель оставляет только "жизненно необходимые" частоты, отфильтровывая замаскированные и слабослышимые. Причем это проявляется тем больше, чем с меньшим битрейтом производится кодирование. В результате опытов можно предположить что битрейт, достаточный для "точной" передачи CD-звучания, лежит в пределах от 192 до 320 Кбит/с (в зависимости от кодируемого аудио сигнала и, конечно, самого слушателя). Безусловно, при таком кодировании объем, занимаемый полученным MP3-потоком, увеличивается пропорционально битрейту.
Найти компромисс можно, конечно, всегда. Лично я при создании своей аудиотеки использую для компрессии переменный битрейт (VBR - variable bit rate) в пределах от 112 до 192 Кбит/c. Кодирование с VBR возможно как следствие фреймовой структуры MP3-потока. Аудио поток при компрессии в MP3 разбивается на мелкие отрезки (фреймы) после чего происходит кодирование каждого фрейма в отдельности. В случае обычного CBR (Constant Bit Rate - постоянный битрейт) кодирование всех фреймов производится с одинаковыми параметрами. В случае же VBR, каждый фрейм кодируется со своим битрейтом. То есть при использовании VBR енкодер сам выбирает какой битрейт в наибольшей степени подходит для кодирования данного фрейма. Кодирование с переменным битрейтом осуществляется, например, енкодером Lame. Почти все известные мне проигрыватели нормально "понимают" MP3, кодированные с VBR.
Какие альтернативные MPEG-1 Layer III (MP3) алгоритмы компрессии существуют?
Действительно, на MP3 свет клином не сошелся. Параллельно MP3 появляются и развиваются не менее, а иногда, и более прогрессивные алгоритмы компрессии звука. Перечислять все алгоритмы нет надобности. Следует отметить только, что существуют алгоритмы по своим возможностям и качеству во многом превосходящие MP3. Один из таких алгоритмов это MPEG-2 AAC.
MPEG-2 AAC (MPEG-2 Advanced Audio Coding – продвинутое аудио кодирование) стал результатом кооперации усилий института Fraunhofer, компаний Sony, NEC и Dolby. MPEG-2 AAC является технологическим приемником MPEG-1. Существует несколько разновидностей этого алгоритма: Homeboy AAC, AT&T a2b AAC, Liquifier AAC, Astrid/Quartex AAC и Mayah AAC. Наиболее высокое качество звучания по сравнению c MPEG-1 Layer III обеспечивают последние две предпоследние реализации. Все приведенные разновидности алгоритма AAC не являются совместимыми между собой.
Также, как и в комплекте аудио стандартов кодирования MPEG-1, в основе алгоритма AAC лежит психоакустический анализ сигнала. Вместе с тем, алгоритм AAC имеет в своем механизме множество дополнений, направленных на улучшение качества выходного аудио сигнала. В частности, используется другой тип преобразований, улучшена обработка шумов, изменен банк фильтров, а также улучшен способ записи выходного бит-потока. Кроме того, AAC позволяет хранить в закодированном аудио сигнале т.н. «водяные знаки» (watermarks) – информацию об авторских правах. Эта информация встраивается в бит-поток при кодировании таким образом, что уничтожить ее становится невозможно не разрушив целостность аудио данных. Эта технология (в рамках Multimedia Protection Protocol) позволяет контролировать распространение аудио данных (что, кстати, является препятствием на пути распространения самого алгоритма и файлов, созданных с помощью него). Следует отметить, что алгоритм AAC не является обратно совместимым (NBC – non backwards compatible) с уровнями MPEG-1 не смотря на то, что он представляет собой продолжение (доработку) MPEG-1 Layer I, II, III.
Говоря о качестве звука, можно сказать, что поток AAC 96 Кбит/с обеспечивает качество звучания, аналогичное потоку MPEG-1 Layer III 128 Кбит/с. При компрессии AAC 128 Кбит/с, качество звучания ощутимо превосходит MPEG-1 Layer III 128 Кбит/с.
Из всех разновидностей MPEG-2 AAC особо выделяется, пожалуй, Liquifier AAC (файлы, созданные с помощью этого алгоритма обычно имеют расширение .LQT). Этот алгоритм обеспечивает как наивысшее качество звучания среди всех подобных алгоритмов, так и некоторые дополнительные возможности, например, хранение внутри .LQT-файлов графических изображений обложек CD и эмблем, а также текстовую информацию. Следует сказать, что Liquifier AAC является коммерческим продуктом в отличие от своего, пожалуй, не намного уступающего по качеству собрата Astrid/Quartex AAC.
Mayah AAC - молодой кодек (на момент создания документа). По поводу него можно сказать, что будущего он не имеет. По некоторым оценкам, качество Mayah AAC в сравнении с другими енкодерами AAC ужасно. Кроме того, стало известно, что сама программа стоит много денег и распространяется лишь среди звукозаписывающих студий. Вероятнее всего, кодек не попадет в руки к обычным пользователям.
Несколько слов необходимо сказать и о другом прогрессивном алгоритме TwinVQ (Transform-domain Weighted Interleave Vector Quanization), разработанном фирмой Nippon Telegraph and Telephone Corp. (NTT) в Human Interface Laboratories и лицензированном фирмой Yamaha (продукты от Yamaha, основанные на TwinVQ, распространяются под торговой маркой SoundVQ). Этот метод позволяет сжимать цифровые потоки с коэффициентом компрессия до 1:20. При этом качество звучания потока TwinVQ при 96 Кбит/с практически идентично качеству звучания потока MPEG-1 Layer III (при 128 Кбит/с) и MPEG-2 AAC (при 96 Кбит/с). Алгоритм TwinVQ позволяет кодировать данные во всем диапазоне слышимых частот (до 22 КГц) и, также как и MPEG, производить декодирование и воспроизведение потока одновременно с его получением (stream playback). Кстати, говоря об алгоритме TwinVQ следует сказать также, что трудоемкость этого алгоритма намного выше трудоемкости, например, алгоритма MPEG-1 Layer III, так что программы-компрессоры, основанные на алгоритме TwinVQ работают в 5-10 раз медленнее, чем Layer III-компрессоры. Следует сказать также, что наработки TwinVQ используются в стандарте MPEG-4. По различным оценкам, TwinVQ в нижнем диапазоне частот превосходит по качеству MPEG-1 Layer III, уступая ему на верхних частотах. TwinVQ поддерживает кодирование с переменным битрейтом (VBR), а также имеет поддержку т.н. несимметричного битрейта, когда разные каналы кодируются с отличными битрейтами.
Алгоритм (кодек) Windows Media Audio (WMA) от Microsoft. Алгоритм WMA, также как и все рассмотренные ранее, позволяет потоковое воспроизведение (stream playback). Качество WMA при скорости потока 64 Кбит/c практически не уступает качеству MPEG-1 Layer III 96 Кбит/с, а при 96 Кбит/с может превосходить MPEG-2 AAC 128 Кбит/с. Для хранения потока в формате WMA используется универсальный потоковый файловый формат .ASF (Advanced Audio Streaming), пришедший на замену .WAV. Вообще говоря, .ASF - это универсальный формат для хранения аудио и видео информации, сжатой с помощью самых разнообразных кодеков. .ASF имеет также и свою несколько сокращенную разновидность .WMA. Файлы .WMA предназначены исключительно для хранения аудио данных. Говоря о WMA как о кодеке, следует сказать, что в последнее время он становится все более популярным, так как Microsoft встроила его в Windows'2000, превратив его таким образом в стандарт. Следует отметить также, что сохранить поток WMA в .WAV-структуру не возможно. На сегодняшний день существует несколько версий WMA: V1, V2 и V7. V7 отличается от младших собратьев поддержкой битрейтов до 192 Kbps (в отличие от 164 Kbps в V1 и V2), несколько худшим (пока) качеством кодирования и иной структурой данных. Изначально, обсуждаемый нами кодек разрабатывался фирмой Voxware и имел название Voxware Audio Codec. Впоследствии компания забросила его доработку остановившись на v4.0, но кодек не остался гнить и был полностью скуплен фирмой Microsoft. Программисты сильно доработали этот кодек, а фирма Microsoft переименовала кодек в Windows Media Audio, не забыв позаботиться о том, чтобы он был бесплатным.
Алгоритм PAC (Perspective Audio Coding) от Bell Labs & Lucent Technologies. По различным данным обеспечивает аналогичное (или выше) MPEG-1 Layer III 128 Кбит/с качество звучания при 64 Кбит/с. Поддерживаются также 96 и 128 Кбит/с. Алгоритм позволяет потоковое воспроизведение (stream playback). Имеет встроенный механизм защиты. Обладает высокой скоростью компрессии.
Еще один кодек: Ogg Vorbis, вышел в свет в июне 2000. Этот формат является частью проекта Ogg Squish по созданию полностью открытой системы мультимедиа. Иными словами, и сам проект, и Ogg Vorbis в частности являются открытыми и свободными для распространения, а также разработки на его основе нового программного обеспечения. В FAQ от разработчика (группа Xiphophorus) написано, что Ogg Vorbis является алгоритмом, принципиально схожим с известными MPEG-1 Layer II, MPEG-2 AAC, VQF и проч., однако использует оригинальный математический алгоритм и собственную психоакустическую модель, что освобождает его от необходимости выплачивать какие-то лицензионные сборы и производить иные выплаты сторонним фирмам-изготовителям аудио форматов. Алгоритм Ogg Vorbis рассчитан на сжатие данных на всех возможных битрейтах без ограничений, то есть от 8 Kbps до 512 Kbps, а также на кодирование с переменным битрейтом (VBR). Алгоритм предусматривает хранение внутри файлов подробных комментариев об исполнителе и названии композиции, а также графической информации. В алгоритме предусматривается также возможность кодирования нескольких каналов аудио (более двух, теоретически до 255), возможность редактирования содержимого файлов, а также так называемый "масштабируемый битрейт" - возможность изменения битрейта потока без необходимости декодирования. Поддерживается потоковое воспроизведение (streaming). Для хранения данных используется собственный универсальный формат bitstream Ogg Squish, рассчитанный на хранение любой информации мультимедиа системы Ogg Squish (идея реализация универсального формата bitstream Ogg Squish аналогична идее ASF от Microsoft).
Можно ли осуществить преобразование из одного потокового формата аудио данных в другой?
Да, такое преобразование возможно. Если речь идет о цифровых потоках, сжатых специальными алгоритмами (такими как MPEG, TwinVQ и проч.), то преобразование из одного типа в другой неизбежно влечет за собой потерю качества, так как для преобразования необходимо сначала декодировать исходный поток (качество которого заведомо отличается от оригинала), а затем снова сжать, используя необходимый компрессор (или просто записать в виде абсолютно кодированном виде, иначе говоря, не сжатом). Таким образом, при осуществлении "перекодирования" в новый формат (не в случае простого декодирования в .WAV) происходит фактически двойная потеря качества (относительно качества оригинального сигнала). Под потерей качества следует понимать не только потерю частотных составляющих в некоторых областях спектра сигнала, но и появление различных дополнительных шумов, помех, а также, потерю информации о сигнале в каналах (потерю оригинального стерео).
Если же речь идет об преобразовании формата хранения абсолютно кодированных данных, то существует большое количество программ-конверторов, позволяющих выполнять такое преобразование. Однако следует учитывать, что, например, конвертирование из PCM в ADPCM по своей сути приводит к ощутимым потерям качества, а при конвертировании данных с понижением разрядности сигнала происходит не только потеря оригинального качества, но и появление шумов. С уровнем шумов можно бороться (например, с помощью дизеринга - добавления псевдослучайного белого шума), однако совсем избавиться от них не удается. Поэтому, лучше по возможности не прибегать к таким преобразованиям. В случаях же, когда конвертирование неизбежно, следует быть предусмотрительным и стараться заранее сохранять звуковые данные в абсолютном виде с максимальным качеством (при максимально возможных параметрах), чтобы процесс конвертирования происходил с минимальными потерями.
Можно ли осуществить преобразование WAV в MIDI, WAV в трекерный модуль?
Другими словами, можно ли преобразовать цифровой поток (будь то .WAV или .SND файл) в файл формата MIDI или трекерный модуль (например, .XM или .IT)? На этот вопрос есть почти однозначный ответ: эта задача не решаема принципиально.
Оцифрованное аудио представляет собой, фактически, набор чисел, описывающих значение амплитуды сигнала в каждый момент времени. MIDI-файл - это принципиально иная структура, где хранятся команды, управляющие генераторами и прочими органами звукового синтезирующего устройства. Трекерный модуль представляет собой набор инструментов (оцифрованных звуков), используемых в данной конкретной музыкальной композиции, и набор команд для управления трекером (то есть набор команд, указывающих последовательность воспроизведения инструментов, а также устанавливающих параметры воспроизведения последних).
Таким образом, для того, чтобы, скажем, преобразовать оцифрованную музыку в формат MIDI необходимо качественно проанализировать весь исходный цифровой поток и однозначно определить, звучание каких инструментов необходимо будет задействовать в выходном MIDI-файле. То есть, фактически необходимо точно идентифицировать инструменты, входящие в композицию. Однако эта проблема, по крайней мере на сегодняшний день, почти не решаема. Посудите сами: для того, чтобы правильно определить звучание какого инструмента происходит в данный момент, нужно, грубо говоря, однозначно знать спектры всех возможных инструментов. И затем, сравнивая спектр звучащего инструмента с набором спектров известных инструментов, определить звучание какого инструмента мы слышим. Но в тоже время мы знаем, что спектр одного и того же инструмента может сильно измениться даже при небольшом изменении силы воздействия на него, а это в свою очередь означает, что однозначно получить спектр мы не можем. Но все сказанное касалось звучания только одного инструмента. А что же будет со спектром сигнала, если в него входит звучание сразу нескольких инструментов? Спектр изменится коренным образом! Вы скажете, что можно, наверное, определить звучание по формантным областям. Да, это возможно, однако говорить все же о точности определения не приходится. Да и проблема-то не заканчивается точной идентификацией инструментов. В дальнейшем придется точно определять тональности звучания, расстановку во времени и тому подобное. По этой причине можно сделать однозначный вывод: качественное преобразование цифровых потоков в MIDI невозможно в принципе.
Справедливости ради нужно сказать, что существует некоторое количество программ, которые позволяют переводить простые одноголосые композиции в MIDI-партитуру.
Можно ли перевести цифровой поток в трекерный модуль? Нет, нельзя по приведенным выше причинам. Более того, так как в трекерных модулях (в отличие от MIDI) хранятся кроме команд и сами используемые в композиции инструменты, то для того, чтобы перевести поток в трекерный модуль, из него нужно вычленить звучание отдельных инструментов. А эта задача равносильна вычленению, например, голоса из песни (караоке). То есть, это возможно в какой-то мере, но вычленение несомненно будет крайне некачественным, так как спектры инструментов чаще всего наложены друг на друга.
Можно ли выделить из аудио потока звучание конкретного инструмента или голоса?
Такая процедура невозможна принципиально. В целом, существует, конечно, способ выделения голоса (т. н. Karaoke), однако он работает не всегда, и уж тем более не стоит ожидать от него качества. Обычно, голос исполнителя "находится" посредине стерео панорамы. Основываясь на этом, можно попробовать вычесть один канал из другого, удалив таким образом звучащее посредине - на этом механизме основана реализация караоке. Очевидно, что такой способ не дает качественного результата, если дает вообще какой-то результат.
Что же касается вычленения звучания каких-то инструментов, то этот вопрос аналогичен предыдущему (точнее, третий абзац предыдущего вопроса).
Какие существуют способы преобразования MIDI в WAV?
Таких способов много. Попробуем их перечислить.
Если речь идет о переводе в WAV-файл MIDI-композиции с какого-нибудь аппаратного концертного синтезатора, то существует несколько вариантов. Самый простой, вероятно, просто подключить выход синтезатора ко входу звуковой карты компьютера и оцифровать необходимую композицию стандартными методами с помощью какого-нибудь звукового редактора.. Однако этот способ хорош в том случае, если у подключаемого аппарата имеется цифровой выход, а у звуковой карты цифровой вход, так как в этом случае фактически просто произойдет запись цифрового потока с синтезатора в память компьютера, что не повлечет за собой абсолютно никакой потери качества звучания. Если же речь идет об аналоговом соединении аппаратуры, то в таком случае вышеописанный вариант не является удачным, так как внутренние шумы аналоговой части аппаратуры, а также внешние наводки со стороны других устройств могут сильно исказить сигнал и в результате полученный оцифрованный сигнал (.WAV) будет шуметь. Таким образом, если нет возможности осуществить цифровую передачу, можно или удовлетвориться аналоговым соединением или поступить иначе: "перегнать" необходимую MIDI-композицию с синтезатора в компьютер в MIDI-файл и уже MIDI-файл в компьютере доступными средствами оцифровать в .WAV. Однако здесь тоже существуют несколько вариантов.
Для того, чтобы "перегнать" .MID (или файл в ином формате, содержащий MIDI-данные) в .WAV необходимо располагать или звуковой картой со встроенным аппаратным MIDI-синтезатором, или воспользоваться каким-то программным MIDI-синтезатором. Из наиболее распространенных программных синтезаторов можно выделить следующие три: WaveSynth фирмы Creative Labs (поддерживает стандарт GM - General MIDI), Virtual Sound Canvas VSC-88 фирмы Roland (GS - General Synth) и S-YXG100 или S-YXG50 фирмы Yamaha. Следует отметить, что последний качественно отличается от остальных поддержкой стандарта XG (eXtended General). Хотя это тема отдельного обсуждения, следует оговориться все же, что если вы перенесли MIDI-композицию с одного синтезатора и попытаетесь воспроизвести ее на другом (отличном от оригинального), то звучание на нем перенесенной композиции наверняка будет иным (если не абсолютно иным). Эта оговорка особенно касается переноса композиции с концертного синтезатора на компьютер для последующего "перегона" в .WAV, о чем мы говорили выше.
А теперь, собственно, способы преобразования .MID - .WAV. Самый простой и самый "лобовой" - это соединить выход звуковой карты с ее входом, запустить программу для записи (предварительно выбрав устройством записи соответствующего вход) и включить воспроизведение .MID используя аппаратный или программный синтезатор (следует заметить, что такой вариант подключения имеет смысл только если карта полнодуплексная, то есть умеет одновременно воспроизводить и записывать; если нет, то можно установить вторую дополнительную звуковую карту). Однако, если мы говорим об аналоговых входе и выходе, то такой способ просто испортит оригинальное звучание помехами и шумами, так как фактически сигнал претерпит два лишних взаимообратных преобразования (цифро-аналоговое и аналогово-цифровое) и в предачу наводки на соединительный кабель внесут свои погрешности..
Второй способ аналогичен первому в подходе. Дело в том, что, например, звуковая карта Creative SB Live! позволяет безо всяких физических подключений в качестве устройства записи (входа) использовать, грубо говоря, слышимое в колонках. Иначе говоря, в стандартном микшере Windows в списке устройств записи есть устройство "What U hear" ("То, что ты слышишь"). Самое приятное, что при записи через это устройство сигнал не подвергается цифро-аналоговому и аналогово-цифровому преобразованиям, что исключает влияние наводок и вообще появление каких либо помех, связанных с аналоговым соединением. Таким образом, использование этого устройства записи как нельзя лучше подходит для осуществления перехвата цифровых аудио потоков, в том числе, потоков от программных MIDI-синтезаторов. Для владельцев звуковых плат, отличных от SB Live!, можно порекомендовать воспользоваться, например, такой программой, как Total Recorder. Идея программы аналогична идее устройства "What U Hear" в SB Live!. Эта программа создает в списке устройств для воспроизведения новое виртуальное устройство "Playback through Total Recorder", а также имеет собственную программу записи. Для осуществления преобразования необходимо выбрать это виртуальное устройство как устройство "по умолчанию" для воспроизведения аудио (в Sounds and Multimedia в контрольной панели Windows), запустить программу записи Total Recorder и включить воспроизведение необходимого .MID-файла. Вся прелесть такого способа заключается в том, что сигнал вообще не попадает в аналоговый тракт звуковой карты. Вообще говоря, сигнал даже не попадает на звуковую карту - Total Recorder перехватывает поток идущий на виртуальное устройство "Playback through Total Recorder" и записывает его в файл. Таким образом, с помощью Total Recorder можно произвести оцифровку MIDI-файла абсолютно без потерь качества.
Вариант третий. Как можно заметить, для осуществления оцифровки в предыдущих способах мы предусматривали наличие синтезатора (аппаратного или программного) и звуковой карты. Однако существуют программы специально предназначенные для перевода MIDI в .WAV. Фактически такая программа представляет собой программный MIDI-синтезатор, который подает синтезируемую информацию не на выход звуковой карты, а прямо в файл. Одна из таких программ называется WAVMaker. При использовании для преобразования такой программы наличие какой-либо звуковой аппаратуры теоретически не является необходимостью.
Таким образом, из всех перечисленных методов наиболее подходящий выбирается в зависимости от стоящей задачи. Если преобразование MIDI - .WAV необходимо осуществить максимально качественно, то следует либо воспользоваться цифровым подключением аппаратуры, либо попытаться осуществить преобразование программным путем, не затрагивающим аналоговую часть аппаратуры. Если же требования к качеству преобразования не столь высоки, то можно воспользоваться одним из способов, реализующих конвертирование с помощью аналогового соединения.
Какой метод сравнения двух аудио сигналов можно признать наиболее точным?
Сначала договоримся, что речь идет о сравнении двух сложных непериодических сигналов, представленных в цифровом виде. Далее все зависит от стоящей перед экспериментатором задачи. Вероятно, все сводится к двум вариантам: физическое сравнение двух сигналов (то есть сравнение точности совпадения форм сигналов) и субъективное сравнение, когда целью является оценка "похожести" звучания двух сигналов.
Первый вариант употребим больше при необходимости оценить, например, степень искаженности сигнала, прошедшего какую-либо обработку или передачу по цепям, вносящим помехи. В таком случае сравнение оригинального и искаженного сигналов можно производить, например, путем вычитания одного сигнала из другого (это возможно только в том случае, когда начало и протяженность сигналов во времени точно совпадают) - по результату (результирующему сигналу, полученному путем поотсчетного вычитания одного сигнала из другого) можно приблизительно оценить уровень потерянной информации (на слух либо проследив изменение спектрального состава сигнала). Также недавно автором одной из статей был предложен иной метод. Берутся два сравниваемых сигнала (в цифровом виде, естественно) и записываются не в абсолютном виде (то есть абсолютные значения амплитуд, PCM - ИКМ - импульсно-кодовая модуляция), а в виде относительного изменения значений амплитуд сигнала (как в ADPCM - АОИКМ - адаптивная относительная импульсно-кодовая модуляция). Другими словами, сигнал записывается значениями, характеризующими изменение значения каждого отсчета относительно предыдущего. Таким образом, в результате проделанной операции получаются, грубо говоря, данные об углах наклона амплитудной огибающей в каждой точке или, что то же самое, информация о виде (форме) сигнала. После такой обработки проводится вычитание одного сигнала из другого (оригинального) и усреднение значении амплитуды полученной разницы. По усредненной величине амплитуды можно судить о потерях, которые сопутствовали сжатию сигнала.
Второй вариант, целью которого является субъективное сравнение разницы в звучании двух сигналов, очень часто применим при оценке качества алгоритмов компрессии аудио. Вообще, целью большинства аудио кодеков (за исключением специализированных, например, вокодеров или кодеков для передачи ограниченного спектра частот) является в максимально меньшем объеме данных сохранить аудио информацию как можно более приближенную по качеству к оригинальному звучанию. Другими словами, задача сводится к обеспечению субъективно сходного с оригиналом качества звучания и никак ни объективного физического сходства форм (огибающих) оригинального и декодированного сжатого сигналов. В этом случае, применимость описанных выше методов сравнения может быть очень спорна, так как форма сигналов может совпадать очень слабо, а субъективное качество звучания оригинального и восстановленного сжатого сигналов при этом почти не изменится. Тогда для сравнения сигналов можно воспользоваться несколькими разновидностями спектрального анализа, каждый из которых, тем не менее, имеет массу недостатков.
Первый заключается в графическом сравнении результирующих АЧХ оригинального и восстановленного сжатого сигналов за какой-то промежуток времени. Под понятием "результирующая АЧХ" подразумевается график зафиксированных пиковых значений амплитуд частотных составляющих сигнала за некоторый промежуток времени. Таким образом, взяв два одинаковых промежутка сравниваемых сигналов и построив их результирующие АЧХ, по совпадению (не совпадению) графиков АЧХ можно приблизительно оценить уровень потерянных частотных составляющих в сжатом сигнале, а также увидеть полосы частот, где эти потери наиболее выражены. Однако этот метод является статичным, то есть он абсолютно не учитывает изменение сигналов в динамике, что является очень важным, так как часто встречаются случаи, когда результирующие АЧХ сигналов почти совпадают, однако звучание сравниваемых промежутков сигналов отличается коренным образом даже на слух.
Вторая разновидность спектрального анализа - сравнение сонограмм сигналов (сонограмма - это диаграмма, на которой по оси абсцисс откладывается время, по оси ординат - частота, а амплитуда соответствующей частотной составляющей отмечается интенсивностью цвета в данной точке). Сонограмма является более информативной характеристикой, так как позволяет учесть при сравнении изменение сигналов в динамике. Однако этот метод, в отличие от предыдущего, является "слишком графическим", то есть, если при сравнении статических АЧХ имеется возможность оценить "на глаз" разницу графиков, то в случае с сонограммами эта возможность затруднена, так как сравнивать приходится не кривые графиков, а интенсивность цветов на диаграммах. Есть и еще один немаловажный недостаток сонограмм - размытость сигнала во времени, то есть неточное совпадение (отставание либо опережение) спектральной картины с реальным спектральным составом сигнала в каждый конкретный момент времени. Такой феномен обусловлен принципом неопределенности сопутствующим использованию Быстрого Преобразования Фурье (БПФ): чем больше временнОе разрешение спектра, тем меньше спектральное разрешение, и наоборот. При построении сонограммы берутся относительно большие окна для БПФ (промежутки времени, в которых анализируется спектр) и именно это и обуславливает эффект размазывания сигнала. Конечно, появление этого эффекта можно в какой-то мере избежать применяя анализ с перекрывающимися окнами в несколько проходов, однако объем вычислений при этом крайне возрастет и достичь одновременно высоких спектрального и временного разрешений не удастся.
Третий метод представляет собой более конкретизированный предыдущий, он заключается в построении АЧХ для каждого сканируемого окна БПФ. Однако эта задача не лишена тех же проблем, что и предыдущий метод, и, кроме того, производить сравнение графически крайне неудобно, даже если представить всю обсчитанную спектральную картину сигнала в трехмерном виде.
Очевидно, что идеального метода сравнения сигналов не существует. Поэтому в каждом конкретном случае пользуются наиболее подходящим по точности и удобству методом сравнения, руководствуясь только соображениями целесообразности.
Исправления, замечания и дополнения присылайте на: aradzish@hotmail.com.
Вернуться в раздел "Мультимедиа" - Обсудить эту статью на Форуме |
Главная - Поиск по сайту - О проекте - Форум - Обратная связь |