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

         

Использовать ли переменный битрейт (VBR)?



Использовать ли переменный битрейт (VBR)?

Проблема в том, что под VBR (Variable BitRate - переменный битрейт) нужна своя психоакустическая модель, которая и будет управлять изменением битрейта. Раньше кодеры использовали CBR (Constant BitRate - постоянный битрейт) и пользовались принципом "обеспечить максимальное качество, упаковывая данные в поток заранее заданной ширины". Переменный битрейт требует совершенно другого подхода - "обеспечить заданный уровень качества, использую поток минимальной ширины", поэтому алгоритмы сжатия для VBR нужно создавать заново, практически с нуля. Из-за этого пока достаточно развитым прообразом такого алгоритма обладает только лейм, как самый быстро развивающийся кодер. Ни Ксинг, ни Фраунгофер качественного результата в области VBR не добились - их алгоритмы варьируют средний битрейт в пределах 10-15% от основного, что нельзя считать удовлетворительным результатом. Все это, очевидно, есть результаты попыток адаптировать алгоритмы CBR для использования с VBR, забывая, что старые алгоритмы вообще не имели возможность изменения битрейта.

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

На этом фоне вполне логичным выглядит появление компромиссного варианта - ABR (Average BitRate - средний битрейт) - реализованного в LAME. По сути, это тот же VBR, но с использованием несколько доработанного старого алгоритма кодирования CBR. В случаях, когда качество падает ниже некоторого порога - битрейт увеличивается. Если кодируемый сигнал достаточно прост, то битрейт занижается, чем и обеспечивается получение в среднем по файлу приблизительно заданного битрейта. В результате мы получаем обычный файл с VBR потоком. В качестве параметра мы указываем не некий абстрактный уровень качества, а средний битрейт, который мы хотим получить - много людей, давно работающих с mp3 CBR, найдут такой способ более удобным просто в силу своих привычек.

Тут же имеет смысл упомянуть о том, что некоторые проигрыватели не умеют корректно воспроизводить VBR. Например, очень качественный проигрыватель NAD дает ужасные искажения при воспроизведении таких файлов; просто когда этот проигрыватель был создан, ни один из кодеров не использовал VBR. Аналогичную проблему в себе таят некоторые из аппаратных проигрывателей mp3.

Тем не менее, понятно, что принцип, заложенный в основу VBR, куда удобнее использовать на практике. Таким образом, за VBR - будущее. Осталось только дождаться достойной программной реализации алгоритмов, создающих VBR файлы.

На сегодня вопрос практического использования VBR я считаю следствием личных пристрастий и экспериментов.



Содержание раздела