Технология создания 3D звука




Подходы к выбору параметров сжатия



Подходы к выбору параметров сжатия

Как вы знаете, технология сжатия звука с потерями предполагает задание каким-либо образом степени сжатия исходного материала, которая напрямую коррелирует с качеством полученного результата: чем больше сжатие, тем меньше качество. Однако, при попытке четко определить соответствие сжатие-качество возникает множество проблем. Во-первых, для разной музыки одно и то же сжатие приведет к разному качеству полученного результата. Во-вторых, до сих пор продолжаются споры о способе количественного измерения этого самого "качества". Хотя и существуют вполне объективные методы количественного описания искажений процесса «сжатие, разжатие, сравнение с оригиналом», нет способа сравнения таких оценок с субъективным восприятием полученного результата. На сегодня большинство специалистов и энтузиастов придерживается мнения, что нет объективной характеристики, определяющей то самое качество (то есть, нет формул, по которым это самое качество можно было бы посчитать). Субъективные же оценки требуют больших затрат на их проведение - это и кодирование одного и того же материала несколькими способами, и прослушивание результата многими экспертами, и попытки привести полученные результаты к простейшему виду "a лучше b, b лучше c".

Второй аспект проблемы - в реальном mp3 кодере степень сжатия задается, как правило, не одним параметром. Кодер LAME (в отличие от многих коммерческих кодеров) предлагает пользователю возможность изменять десятки параметров. Таким образом, затраты на проведение прослушиваний для получения субъективной оценки возрастают еще больше.

Хочу выделить два основных подхода к определению параметров сжатия: теоретический и эмпирический. Разницу проще будет описать примером. При прочих равных качество выходного потока будет тем больше, чем больше битов в единицу времени он займет. Или тем больше, чем ниже выставлен порог слышимости (ATH, absolute threshold of hearing, сигналы ниже этого уровня вообще не вносятся в выходной поток - кодер считает, что ухо их не различит). Или тем выше, чем выше частота среза ВЧ фильтра.

Замечание для знатоков: в двух последних примерах считается, что используется VBR алгоритм, то есть ширина битового потока увеличивается, если мы сохраняем больше информации.

Как было замечено выше - таких параметров масса. Мы, конечно же, можем поставить в максимум значения всех параметров, но это приведет к очень низкой степени сжатия. Поиск компромисса в данной ситуации приведет к варьированию огромного числа параметров кодера. Поработав с теоретическим методом подбора параметров, каждый сможет получить некоторые свои эмпирические результаты, наработки, опыт: вот такая комбинация практически всегда будет давать лучшие результаты, чем какая-то другая.

При теоретическом способе выбора параметров необходимо четко понимать, на что влияет каждый параметр, и как в результате его изменения должен измениться результат сжатия. Так, например, в документации к LAME указано, что при использовании режима VBR психоакустическая модель может слишком сильно занизить битрейт, поэтому его нужно искусственно ограничивать снизу (соответствует ключу 'lame -b <bitrate>', даже при использовании этого ключа акустическая тишина будет кодироваться в 32 kbps). Подавляющее большинство пользователей такими знаниями не обладает. Более того, многие даже не заглядывают в документацию для получения советов по выбору параметров кодирования.

Пользователю, то есть человеку далекому от процесса разработки и тестирования кодера, хотелось бы получить прозрачную для использования линейную шкалу настроек: плохо, лучше, хорошо, очень хорошо, отлично. Его не интересуют значения десятков параметров в каждом конкретном случае. Именно для этого и были разработаны предварительно заданные схемы настроек, пресеты (preset). По сути, каждый пресет - это набор значений для всех параметров кодера. Совокупность этих значений была подобрана в результате долгих тестирований команды разработчиков и тестеров кодера таким образом, чтобы максимально эффективно выполнять задачу данного пресета на подавляющем большинстве звукового материала.

Лирическое отступление

Думаю, стОит оговориться, что LAME - проект, создаваемый по схеме с открытыми исходными кодами, то есть любой человек потенциально может принять участие в создании кодера. Естественно, что для эффективного участия в проекте в качестве программиста необходимы знания в области технологии сжатия звука на очень высоком уровне. Тем не менее, количество программистов в LAME измеряется сотнями. Для участия в тестированиях планка уровня знаний существенно ниже, потому количество тестеров LAME измеряется тысячами и десятками тысяч. Даже если учесть, что профессионалов (музыкантов, настройщиков и т.п.) в этой массе немного - единицы процентов, - все равно получается, что доводкой проекта LAME занимается куда как больше народу, чем, скажем, кодером Fraunhofer IIS, лидером в индустрии среди коммерческих продуктов.

Мне известен документ с описанием тестирования, проведенным Fraunhofer IIS, с участием нескольких сотен экспертов. «Аж нескольких сотен!» - можем сказать мы, представив себе масштабы мероприятия и затраты на его проведение. «Всего нескольких сотен?» - можем возразить мы, вспомнив о тысячах людей по всему земному шару, делающих одно общее дело под знаменами LAME.

Таким образом, мы выделили два подхода к выбору параметров сжатия: теоретический, который хорош только для человека с большим опытом работы с mp3 и неплохими знаниями в теории рассматриваемого метода сжатия звука, и эмпирический - простой и понятный в использовании для каждого.









Начало  Назад  Вперед



Книжный магазин