Last updated on Nov 8, 2014 |
|
Main page
aac vs mp3 |
СРАВНЕНИЕ СТАНДАРТОВ КОДИРОВАНИЯ AAC И MP3Алексей Лукин Статья напечатана в журнале «Звукорежиссер», №1, 2008. Первые идеи об использовании психоакустической маскировки для компрессии аудиоданных относятся к 1979 году. Однако соответствующие аудио-кодеры начали получать широкое распространение лишь с середины 90-х годов, когда вычислительных мощностей персональных компьютеров стало хватать для воспроизведения сжатого аудио в реальном времени и появился стандарт MPEG-1 Audio Layer 3, более известный как mp3. Аудио-форматы с компрессией стали незаменимыми при передаче звука через Интернет, обеспечивая «практически прозрачное» качество стереозвука при битрейтах выше 128 кбит/с. С основными принципами формата mp3 можно познакомиться в статьях «Звукорежиссер». Развитие методов сжатия данных и психоакустики постепенно приводило к тому, что стандарт mp3 стал «тесным» для реализации новых идей в кодировании аудио. В результате, к 1997 году институтом Фраунгофера (Fraunhofer IIS), который в начале 90-х создал mp3, а также компаниями Dolby, AT&T, Sony и Nokia, – был разработан новый метод компрессии аудио – Advanced Audio Coding (AAC), вошедший в стандарты MPEG-2 и MPEG-4. Основными отличиями от стандарта mp3 стали:
Благодаря этим особенностям, стандарт AAC способен достигать более гибкого и эффективного, а значит – и более качественного кодирования звука. В результате широкого распространения формата mp3, стандарт AAC до сих пор не приобрел сравнимой с mp3 популярности. Однако AAC является основным форматом в популярном интернет-магазине iTunes Store, плеерах iPod, iTunes, телефоне iPhone, игровых приставках PlayStation 3, Nintendo Wii и в цифровом радиовещании DAB+/DRM. Рассмотрим основные особенности AAC подробнее. Банк фильтровКак и другие психоакустические аудиокодеры, AAC работает по следующей схеме. Входной сигнал пропускается через банк фильтров – преобразование, переводящее сигнал из временной области в частотно-временную область (аналогично построению спектрограммы). Параллельно с этим психоакустическая модель анализирует сигнал и определяет пороги психоакустической маскировки. Далее частотно-временные коэффициенты сигнала на выходе банка фильтров квантуются так, чтобы спектр шума по возможности (если позволяет битрейт) оказался ниже порогов маскировки, т.е. не был слышен. Квантованные коэффициенты сжимаются без потерь в выходной файл формата AAC. Таким образом, сам банк фильтров не сжимает сигнал; он лишь переводит его в форму, более пригодную для сжатия. Особенностью каждого банка фильтров является его частотное разрешение, т.е. число частотных полос, на которые он делит спектр сигнала. В большинстве банков фильтров, используемых для сжатия звука, число полос составляет несколько сотен. Это означает, что в силу соотношения неопределенностей такие банки фильтров имеют временное разрешение порядка нескольких десятков миллисекунд. Когда частотно-временные коэффициенты сигнала квантуются, то вносимая ошибка квантования при декодировании сигнала распространяется по времени на всю длину окна банка фильтров. В некоторых случаях это приводит к нежелательному эффекту, называемому пред-эхом (pre-echo). Он проявляется, когда ошибка квантования от транзиента (резкого всплеска энергии в сигнале) распространяется по времени на предшествующий транзиенту участок времени и становится слышна (рис. 1). Чтобы уменьшить этот эффект, применяют банки фильтров с переменным частотно-временным разрешением. Например, в mp3 используется переключение временного разрешения банка фильтров между 26 и 9 мс. Для стационарных сигналов используются окна длиной 26 мс, дающее хорошее частотное разрешение, а для переходных сигналов используются окна длиной 9 мс, уменьшающие эффект пред-эха (рис. 1).
В алгоритме AAC также используется переключение размера окон MDCT. При этом разница в размере окон составляет 8 раз: 6 и 48 мс (256 и 2048 отсчетов). Благодаря этому алгоритм способен адаптироваться к более широкому диапазону сигналов и достигать лучшей степени компрессии. Технология TNS – формирование амплитудной огибающей шумаОдной из проблем современных психоакустических кодеров аудиосигнала является работа с переходными (транзиентными) сигналами. Для обеспечения прозрачного кодирования нужно обеспечить попадание шума квантования под порог маскировки, зависящий от времени. Однако на практике этому требованию трудно удовлетворить вблизи переходных процессов в сигнале, т.к. шум квантования, возникший при кодировании, распространяется по времени при декодировании на всю длину окна MDCT. Это может приводить к значительным превышениям шумом квантования порогов временной маскировки. Технология TNS (temporal noise shaping, формирование шума во временной области) в стандарте AAC позволяет управлять распространением шума квантования по времени в пределах каждого окна MDCT. Технология TNS основана на:
Хорошо известно, что для сигналов со спектром, сильно отличающимся от белого (напр., тональных сигналов), использование линейного предсказания (LPC) во временной области позволяет эффективно «отбеливать» спектр и кодировать такие сигналы путем их разложения на коэффициенты предсказания и сравнительно небольшую по амплитуде ошибку предсказания (residual). При декодировании фильтр линейного предсказания формирует спектр ошибки согласно спектру исходного сигнала. В кодере AAC линейное предсказание используется противоположным образом: для предсказания отсчетов спектра в частотной области. Разность исходных и предсказанных коэффициентов MDCT квантуется согласно порогам маскировки (в традиционных кодерах квантуются исходные коэффициенты MDCT). Коэффициенты линейного предсказания также записываются в выходной файл. При декодировании сигнала фильтр линейного предсказания, применяемый к разностному сигналу в частотной области (включающему ошибку квантования), формирует амплитудную огибающую исходного сигнала (и ошибки квантования) во временной области. Таким образом, амплитудная огибающая ошибок квантования становится близкой к амплитудной огибающей исходного сигнала (рис. 2).
Технология TNS снижает эффект пред-эха и заметность ошибок квантования на некоторых гармонических сигналах с импульсным характером звукоизвлечения (речь, некоторые духовые и струнно-смычковые инструменты). На рис. 2 сравниваются ошибки квантования, вносимые в вокальный сигнал алгоритмами AAC и mp3 с одинаковыми битрейтами. Вместе с общим понижением ошибки квантования (в силу большей эффективности AAC) наблюдается формирование амплитудной огибающей ошибки квантования по времени согласно огибающей исходного сигнала. В стандарте AAC технология TNS может применяться к отдельным частотным полосам спектра независимо или отключаться совсем. Технология SBR – восстановление высоких частотДостоверная передача широкого частотного диапазона – важное требование для качественного кодирования. Однако передача каждой следующей октавы звукового диапазона в полтора–два раза повышает требования к битрейту для традиционного аудиокодера. Чтобы снизить битрейт и при этом сохранить высокие частоты в кодируемом материале, была создана технология искусственного синтеза высоких частот SBR (spectral band replication). Технология основывается в том, что наш слух анализирует высокие частоты с меньшей точностью, чем средние и низкие. Для создания эффекта присутствия высоких частот необязательно математически точно реконструировать форму волны, а достаточно лишь восстановить некоторые существенные психоакустические параметры сигнала на высоких частотах. К таким существенным параметрам относятся частотно-временное распределение (огибающая) энергии сигнала и степень его тональности/зашумленности. Идея алгоритма такова. При кодировании осуществляется анализ высоких частот в исходном аудиосигнале и извлекаются их параметры: в первую очередь – амплитудная огибающая в нескольких (обычно – 8) частотных полосах. Далее высокие частоты из записи удаляются и кодируются только оставшиеся низкие и средние частоты. При этом в выходной файл также добавляется сравнительно небольшой поток информации о параметрах утерянных высоких частот. При воспроизведении сначала декодируется сигнал низких и средних частот. Далее (в случае его наличия в плеере) начинает работу декодер SBR. Первым шагом он осуществляет синтез высокочастотного сигнала путем транспонирования (точнее – частотного сдвига) имеющихся средних частот. Поскольку степень тональности/зашумленности спектра на средних и высоких частотах обычно близка, то в результате этого шага получается высокочастотный сигнал с правдоподобной структурой спектра. На втором шаге декодер SBR использует дополнительную сохраненную информацию о высоких частотах для придания им нужной амплитудной огибающей в каждой частотной полосе. В результате получается сигнал, у которого высокие частоты полностью синтезированы из средних, но при этом сохраняют звучание исходных высоких частот. Технология SBR может быть пристроена ко многим существующим стандартам кодирования аудио. Например, SBR в сочетании с mp3 называется mp3 PRO, а SBR в сочетании с AAC называется HE-AAC (high efficiency AAC). В основном, SBR используется при кодировании с относительно низкими битрейтами: 64 кбит/с и ниже. Технология позволяет значительно расширить частотный диапазон аудиосигнала с минимальным увеличением битрейта (несколько кбит/с). Технология Parametric stereoПередача стереосигнала обычно требует от кодера почти в 2 раза большего битрейта, чем передача монофонического сигнала. При этом стереоканалы можно кодировать как независимо, так и после M/S преобразования. В последнем случае на S-канал зачастую тратится меньший битрейт, чем на M-канал. Этот режим кодирования также называется joint stereo. В стандарте AAC этот режим может включаться и отключаться кодером независимо для каждой частотной полосы. Для более эффективного кодирования стереосигналов на совсем низких битрейтах (16–32 кбит/с) была разработана технология параметрического кодирования стереопанорамы (parametric stereo). Она заключается в том, что стереосигнал перед кодированим сводится к моно, но в выходной файл добавляется небольшой поток (2–3 кбит/с), содержащий информацию о стереопанораме исходного стереофайла. Этот поток содержит (в сжатом виде) своеобразную «карту панорамы» для частотно-временной плоскости. На стадии декодирования к полученному монофоническому сигналу применяется частотно-зависимое панорамирование. Это можно производить одновременно с декодированием, применяя к изначально равным коэффициентам MDCT левого и правого каналов соответствующие амплитудные множители. Технология Parametric stereo дает хорошее впечатление об исходной стереопанораме звука ценой лишь небольшого увеличения битрейта по сравнению с кодированием моносигнала. Однако она не позволяет добиться полностью прозрачного звучания, т.к. не способна учесть все нюансы стереопанорамы, например – фазовые сдвиги между образами источников звука в стереоканалах. Технология Parametric stereo была включена в стандарт HE-AAC v2. Технология PNS – генерация шумовДля дополнительного увеличения эффективности кодирования шумовых сигналов в стандарте AAC предусмотрена технология PNS (perceptual noise substitution) для синтеза шумов. Известно, что наше ухо более чувствительно к амплитудному спектру сигнала, чем к фазовому. Поэтому вместо кодирования MDCT-коэффициентов исходного сигнала в шумовых областях можно лишь передавать параметры шума: его мощность в зависимости от частоты и времени. Так и работает технология PNS. При кодировании идентифицируются участки спектра, представляющие собой шум, и соответствующие группы MDCT-коэффициентов исключаются из процесса кодирования. Частотная полоса помечается как шумовая, и для нее запоминается общая энергия шума. При декодировании в частотные полосы, помеченные как шумовые, подставляются псевдослучайные MDCT-коэффициенты с требуемой общей мощностью. В результате в указанных частотных диапазонах синтезируется шум, близкий по звучанию к исходному шуму. Технология Long term prediction – предсказание по времениПсихоакустическое кодирование тональных сигналов требует более высокого локального соотношения сигнал/шум, чем кодирование шумовых сигналов (напр., 20 дБ и 6 дБ соответственно). А это, в свою очередь, требует повышенного битрейта. Однако MDCT-коэффициенты тональных сигналов являются предсказуемыми по времени. Это обстоятельство позволяет эксплуатировать их зависимость по времени для уменьшения битрейта. В стандарте AAC предусмотрен режим Long term prediction, в котором MDCT-коэффициенты дополнительно кодируются по времени с помощью линейного предсказания. Термин “long term” означает, что предсказание осуществляется не по соседним отсчетам, а по отсчетам, отстоящим на наиболее вероятный период тона на данной частоте. Квантование и сжатие MDCT-коэффициентовАналогично стандарту mp3, в AAC используется нелинейное квантование MDCT-коэффициентов и сжатие их методом Хаффмана. Коэффициенты MDCT квантуются после возведения в степень 0.75, что позволяет увеличивать ошибку квантования для мощных сигналов и уменьшать ее для слабых сигналов в пределах каждой частотной полосы. Таким образом осуществляется дополнительное неявное формирование спектра шума. После квантования MDCT-коэффициенты сжимаются с помощью набора фиксированных таблиц Хаффмана. В стандарте AAC этих таблиц больше, чем в mp3, и шире возможности по группировке коэффициентов. Это приводит к дополнительному увеличению сжатия. Качество звучанияПри оценке качества звучания аудиокодеров обычно используются субъективные тесты. Слушателям представляются фрагменты сжатых разными кодерами записей, и они оценивают чистоту звучания каждого фрагмента по шкале от 1 до 5. Достаточно авторитетным интернет-источником, где приведены результаты таких тестов, является сайт http://www.listening-tests.info На нем представлены тестирования различных кодеков на множестве битрейтов. Приведенные результаты в целом хорошо согласуются с другими источниками. Приведем несколько результатов для кодеров mp3 и AAC, помогающих сравнить их качество. Лучшим кодером mp3 является бесплатный Lame. Однако на большинстве битрейтов он уступает в качестве более новым кодерам. На высоких битрейтах (выше 128 кбит/с) отставание невелико, и лидером является кодер Ogg Vorbis. На битрейте 64 кбит/с преимущество AAC уже становится ощутимым. В варианте HE-AAC алгоритм зарабатывает оценку 3.68. Это примерно соответствует Lame с битрейтом 96 кбит/с, и означает преимущество AAC над mp3 примерно в 1.5 раза. Оценка Lame с битрейтом 128 кбит/с – 4.29. На битрейте 32 кбит/с кодер AAC от Nero серьезно выигрывает в качестве у mp3: оценки 3.23 и 1.72 соответственно. Однако AAC лишь ненамного опережает формат mp3PRO, получивший оценку 3.08. Это указывает, что технология SBR действительно значительно улучшает качество при низких битрейтах.
|