Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1 / Salmon_sjatie_dannyh_izobrajeniy_i_zvuka[torrents.ru]

.pdf
Скачиваний:
24
Добавлен:
05.06.2015
Размер:
7.92 Mб
Скачать

Глава 6. Сэюатие звука

задается выражением

 

битовая скорость

ЛГ = 12 Xчастота сэмплирования

А для слоев II и III используется следующая формула

^ ,,

битовая скорость

АГ = 144 X

.

 

частота сэмплирования

Если это число не целое, то происходит его округление, и делаются вставки.

Поле 7. Один бит для частного использования кодером. Этот бит не будет использоваться ISO/IEC.

Поле 8. Двухбитное поле для указания стереозвука. Значение 00 - стереозвук, 01 - объединенное стерео (интенсивность-стерео или ms-стерео), 10 - двойной канал, 11 - одиночный канал.

Стереоинформация кодируется одним из 4 возможных мод: сте­ рео, двойной канал, объединенное стерео и ms-стерео. В первых двух модах сэмплы от двух стереоканалов сжимаются независимо и записываются в выходной файл. Кодер не проверяет корреляцию этих двух каналов. Стерео мода используется для сжатия левого и правого стереоканалов. Мода двойной канал применяется для сжа­ тия разные потоки звуковых сэмплов, например, параллельное ве­ щание на двух языках. Объединенное стерео использует избыточ­ ность между левым и правым каналами, поскольку они часто иден­ тичны, похожи или мало отличаются. Мода ms-стерео (сокращение «ms» означает «midle-side» - середина-край) является специальным случаем объединенного стерео, в котором кодируются два сигнала: среднее значение Mi и краевое значение Si вместо левого и правого каналов Lin Ri. Значения середина-край вычисляются по формулам

^

M.,-\-Si

^

=

Mi-Si

Li =

-=

и Ri

л/2

 

ч/2

 

 

Поле 9. Двухбитовое поле расширения. Оно используется модой объединенное стерео. В слоях I и II эти биты указывают на то, какие подполосы используются для интенсивность-стерео. Все остальные подполосы кодируются в моде стерео. Имеются следующие четыре значения:

00 — подполосы 4-31 в моде интенсивность-стерео, нижний пре­ дел равен 4.

01 — подполосы 8-31 в моде интенсивность-стерео, нижний пре­ дел равен 8.

6.5. Сжатие звука в стандарте MPEG-1

10— подполосы 12-31 в моде интенсивность-стерео, нижний предел равен 12.

11— подполосы 16-31 в моде интенсивность-стерео, нижний предел равен 16.

Вслое III эти биты указывают на то, какой тип объединенного стерео использован при кодировании. Значения следующие:

00 — интенсивность-стерео выключено, ms-стерео выключено.

01интенсивность-стерео включено, ms-стерео выключено.

10интенсивность-стерео выключено, ms-стерео включено.

11интенсивность-стерео включено, ms-стерео включено. Поле 10. Бит копирайта. Если сжатый файл защищен копирай­

том, то этот бит равен 1.

Поле 11. Один бит для обозначения оригинала или копии. Значе­ ние 1 обозначает исходный сжатый файл.

Поле 12. Двухбитовое поле усиления. Указывает на тип исполь­ зованного уменьшения значения. Значение 00 - никакое, 01 - 50/15 мксек, 10 - зарезервировано, 11 - уменьшение значения CCITT J.17.

6,5.3. Психоакустические модели

Психоакустические модели дают возможность кодеру определить порог допустимого шума квантования на каждой подполосе. Эта ин­ формация будет использоваться алгоритмом назначения битов, что в сочетании с количеством имеющихся битов задаст число уровней квантования для каждой подполосы. Стандарт MPEG устанавлива­ ет две психоакустические модели. Обе модели могут использоваться любым слоем, но только модель II выдает особую информацию для слоя III. На практике модель I используется только слоями I и П. Слой III может работать с любой моделью, но лучшие результаты получаются с моделью II.

Стандарт сжатия звука MPEG разрешает значительную свобо­ ду при реализации моделей. Изощренность этой реализации в кон­ кретном кодере зависит от требуемой степени сжатия. В приложе­ ниях широкого потребления, в которых не требуется высокий фак­ тор сжатия, психоакустическая модель может вовсе отсутствовать. В этом случае алгоритм назначения битов не использует соотноше­ ние SMR (signal to mask ratio, соотношение сигнал/маскирование).

Полное описание психоакустических моделей выходит за рамки этой книги. Его можно найти в разных материалах по аудиостандарту MPEG (см., например, [ISO/IEC 93], стр. 109-139). Основные шаги двух моделей состоят в следующем:

1. С помощью преобразования Фурье делается переход от исходных

Глава 6. Сэюатие звука

звуковых сэмплов к их частотным коэффициентам. Это делается отдельно и не так, как в многофазным фильтрах, поскольку для моделей требуется более высокое разрешение А,ЛЯ более аккуратного определения порогов маскирования.

2.Полученные частоты группируются по критическим полосам, но не по тем 32, что использовались в основной части кодера.

3.Спектральные значения критических полос разделяются на то­ нальные (подобные синусоиде) и нетональные (шумоподобные) ком­ поненты.

4.Перед определением порогов маскирования шумов для различ­ ных критических полос, модель применяет функцию маскирования

ксигналам из разных критических полос. Эта функция находится эмпирически, то есть, из экспериментов.

5.Модель вычисляет пороги маскирования для каждой подполосы.

6.Значение SMR (signal to mask ratio, соотношение сигнал/маскиро­ вание) вычисляется для каждой подполосы. Оно равно частному от деления энергии сигнала подполосы на минимальный порог маски­ рования этой подполосы. Множество из 32 значений SMR, по одному на подполосу, образует выходные данные модели.

6.5.4' Кодирование: слой III

Слой III использует гораздо более сложный алгоритм, чем первые два слоя. Это отражается в более высокой степени сжатия оцифро­ ванного звука. Разница между этими слоями заметна уже на первом шаге алгоритма, который осуществляет фильтрование. Применяет­ ся один и тот же банк фильтров, но после него совершается мо­ дифицированное дискретное косинус-преобразование (MDCT). Это преобразование исправляет некоторые ошибки, внесенные много­ фазными фильтрами, а также подразделяет подполосы, чтобы сде­ лать их более близкими к критическим полосам. Декодер слоя III должен применить обратное MDCT, поэтому его работа усложня­ ется. Преобразование MDCT можно совершать либо над коротки­ ми блоками по 12 сэмплов (что дает б коэффициентов преобразова­ ния), либо над длинными блоками по 36 сэмплов (тогда образуется 18 коэффициентов). Независимо от выбора длины блока, последова­ тельные преобразованные блоки имеют суш;ественное перекрытие, как изображено на рис. 6.12. На этом рисунке блоки, показанные выше жирной линии производят лучший спектр для стационарных звуков (когда соседние сэмплы различаются не сильно), а короткие блоки более предпочтительны, когда звуковые сэмплы варьируются быстро.

Преобразование MDCT использует п входных сэмплов Xk (где

6.5. Сжатие звука в стандарте MPEG-1 333;

п равно 36 или 12) и получает п/2 (то есть 18 или 6) коэффици­ ентов преобразования Si. Преобразование и его обратное задаются формулами

Si -

п—i

 

 

 

 

 

 

 

 

 

^ x , c o s ( | - [ 2 / c

+ l + |](2z

+ l ) ) , г =

0 , 1 , . . . , | - 1 ,

 

А:=0

 

 

 

 

 

 

 

 

 

 

n / 2 - l

 

 

 

 

 

 

 

 

 

 

г=0

 

 

 

 

 

 

 

 

 

 

 

36

12

 

 

12

 

12

36

 

 

II

 

II

II

 

 

11

II

 

1

1

II

II

II II

II

 

II

II

II II

II

1

18

18

18

6

6

6

6

6

6

18

18

Рис. 6.12. Перекрытие окон MDCT.

Размер короткого блока составляет треть от длинного, поэто­ му их можно перемешивать. При построении кадра преобразование MDCT может применять или только длинные блоки, или только ко­ роткие (их будет в три раза больше), или длинные блоки для двух низкочастотных подполос, а в остальных 30 подполосах использо­ вать короткие блоки. В этом компромиссе длинные блоки обеспечи­ вают лучшее разрешение ^\ля низких частот, где это наиболее полез­ но, а короткие блоки лучше поддерживают временное разрешение для высоких частот.

Раз MDCT обеспечивает лучшее частотное разрешение, то одно­ временно в силу принципа неопределенности оно имеет более плохое временное разрешение [Salomon 2000]. На практике это выражается в том, что квантование коэффициентов MDCT порождает ошибки, которые распределены по времени, и кроме того образует искаже­ ния, которые проявляются в виде предшествующего эха.

Психоакустическая модель, применяемая слоем III, имеет допол­ нительные признаки А^ля обнаружения пре-эха. В таких случаях слой III выполняет сложный алгоритм назначения битов, который зани­ мает биты из доступного накопителя для того, чтобы временно уве­ личить число уровней квантования и тем самым побороть пре-эхо. Слой III также способен переключаться на короткие MDCT блоки, сокращая окно, если имеются подозрения в возможном появлении пре-эха.

Глава 6. Сэюатие звука

(Психоакустическая модель слоя III вычисляет величину, кото­ рая называется «психоакустической энтропией» (РЕ) и кодер «подо­ зревает» появление условий для пре-эха, если РЕ>1800.)

Коэффициенты MDCT пропускаются через некоторый процесс удаления артефактов, которые вызваны перекрытием частот в 32 подполосах. Это называется удалением паразитного сигнала. Эта процедура применяется только к длинным блокам. MDCT исполь­ зует 36 входных сэмплов А^ля вычисления 18 коэффициентов, и удале­ ние паразитного сигнала делается с помощью перекрестной опера­ ции между двумя множествами из 18 коэффициентов. Эта операция проиллюстрирована графически на рис. 6.13а, а соответствующий фрагмент программы на языке С показан на рис. 6.13Ь. Индекс г обозначает расстояние от последней строки предыдущего блока до первой строки текущего блока. Вычисляется 8 перекрестных опе­ раций с различными весовыми коэффициентами csi и са^, которые равны

1

Cj

АА^'

' :=, г = 0,1, ... ,7 .

/1+с?

Восемь величин с^ предписаны стандартом: —0.6, —0.535, —0.33, -0.185, -0.095, -0.041, -0.0142, -0.0037. На рис б.13с даны де­ тали одной перекрестной операции, соответственно, для кодера и декодера.

Квантование в слое III является неравномерным. Квантователь сначала увеличивает мощность всех величин на 3/4. Квантование делается по формуле

isii) = nint

3/4

--o.0c

f^r^y^'( -^^^^^ 1

 

\ q u a n t /

.0946

 

 

где xr{i) - абсолютная величина сигнала подполосы г, «quant» - раз­ мер шага квантования, «nint» - функция, вычисляющая ближайшее целое, а is{i) - это результат квантования. Как и в слоях I и II, квантование в слое III является серединным, то есть, значения око­ ло нуля квантуются в О, и квантователь симметричен относительно нуля.

В слоях I и II каждая подполоса может иметь свой масштабный множитель. Слой III использует полосы масштабных множителей. Эти полосы перекрывают несколько MDCT коэффициентов, а их ширина близка к ширине критических полос. При этом работает особый алгоритм распределения шумов, который выбирает величи­ ны масштабных множителей.

6.5. Сжатие звука в стандарте MPEG-1

Слой III использует коды Хаффмана для дальнейшего сжатия квантованных величин. Кодер генерирует по 18 MDCT коэффици­ ентов на каждую подполосу. Далее происходит упорядочение полу­ чившихся 576 коэффициентов (= 18 х 32) в порядке возрастания частот (для коротких блоков имеется по три множества коэффи­ циентов на каждую частоту). Напомним, что 576 коэффициентов соответствуют исходным 1152 звуковым сэмплам. Множество упо­ рядоченных коэффициентов делится на три зоны, и каждая зона ко­ дируется своими кодами Хаффмана. Это связано с тем, что в разных зонах коэффициенты имеют различные статистические распределе­ ния. Значения высоких частот имеют тенденцию к уменьшению и появлению нулевых серий, а низкочастотные коэффициенты, обыч­ но, имеют большие значения. Таблицы кодов предписываются стан­ дартом (см. 32 таблицы на стр.54-61 из [ISO/IEC 93]). Разделение квантованных величин на зоны также позволяет лучше контроли­ ровать распространение возможных ошибок.

Начав со значений наивысших частот, где встречается много ну­ лей, кодер выбирает первую зону как последовательность нулей наи­ высших частот. Маловероятно, но возможно, отсутствие такой по­ следовательности. Последовательность ограничивается четным чи­ слом нулей. Эту последовательность не нужно кодировать, так как

еезначения легко определить, зная длину второй и третьей зоны. Но

еедлина должна быть четной, поскольку другие две зоны кодируют свои значения группами четной длины.

Вторая зона состоит из последовательности, в которую входят лишь три значения: - 1 , О и 1. Эта зона называется «count 1». Ка­ ждый код Хаффмана для этой зоны кодирует четыре последова­ тельные величины, поэтому число различных кодов должно быть равно 3^ = 81. Конечно, длина этой зоны должна быть кратно 4.

Третья зона, которая состоит из «больших значений», содержит все остальные коэффициенты. Ее можно (опционно) разделить еще на три части, причем каждая может иметь свой собственный код Хаффмана. Каждый код Хаффмана кодирует два числа.

Наибольшая таблица кодов Хаффмана, предопределенная стан­ дартом, содержит 16x16 кодов. Более высокие значения кодируются механизмом esc-кодов.

Кадр F слоя III организован следующим образом: он начинается обычным 32-битным заголовком, за которым следует (опционный) код CRC длины 16 бит. Затем следует последовательность из 59 бит дополнительной информации. Далее располагается часть основных данных. За дополнительная информацией следует сегмент основных данных (дополнительная информация содержит, помимо прочего.

,336 Глава 6. Сжатие звука

Хо

Y

( 0 ) ^ "

( ^ ) У

^^^-Х

Ещё 5 перекрещиваний

X

(0) !>(!

^^^'Х-

(2) X

Ещё 5 перекрещиваний"

?!

'"^

«'х; Ещё5 перекрещиваний j

Х557 •

(0) j ^ ^

(1)Х

(2) X

^Щё5 перекрещиваний

Х558 ;

 

 

 

 

Х575-

(а)

18

i

Т

18

t

18

18

f o r ( s b = l ;

sb<32; sb++)

f o r ( i = 0;

i < 8 ; i++) {

x a r [ 1 8 * s b - l - i ] = x r [ 1 8 * s b - l - i ] c s [ i ] - x r [ 1 8 * s b + i ] c a [ i ] x a r [ 1 8 * s b + i ] = x r [ 1 8 * s b + i ] c s [ i ] + x r [ 1 8 * s b - l - i 3 c a [ i ]

}

 

 

(b)

 

 

предыдущий блок

 

 

CSi

'>x:^

г=:0Д,...,7

 

^^сщ

!У^.

шшшш^

 

"^^cai

 

y^CS\

 

 

 

 

 

текущий блок

 

 

 

 

 

(с)

 

 

предыдущий блок

 

 

CS\

 

 

 

 

Л\

^"Ъс

шшшт^

\ /

-ca\

/

^ \

г=0,1,...,7

y^Si

Nr

 

 

текущий блок

(d)

Рис. 6.13. Удаление паразитного сигнала в слое III.

6.5. Сжатие звука в стандарте MPEG-1

длину сегмента данных), однако эти данные не обязательно будут данные именно кадра F\ Здесь могут находиться данные из других кадров, поскольку кодер использует накопитель битов.

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

Дополнительная информация о кадре включает в себя 9-битные указатели на начало основных данных кадра. Вся структура сег­ ментов данных, а также указатели и накопитель битов показаны на рис. 6.14. На этом рисунке кадру 1 требовалось только полови­ на его битов, поэтому вторая половина осталась в накопителе; в конечном счете эти биты были использованы кадром 2. Этому ка­ дру необходимо немного дополнительного пространства из своего собственного сегмента, а остаток лежал в накопителе. Эти биты использовались кадрами 3 и 4. Кадру 3 вовсе не нужны его соб­ ственные биты, поэтому весь сегмент остался в накопителе и был использован кадром 4. Ему также потребовалось часть битов своего сегмента, а остаток перешел к кадру 5.

Биты, оставшиеся в накопителе для использования другими кадрами

заголовок

 

заголовок

заголовок

заголовок

заголовок

и доп. инф. 1

2

и доп. инф. 2 3 4

и доп. инф. 4

и доп. инф. 4 5

и доп. инф.

кадр 1

 

кадр 2

кадрЗ

кадр 4

кадр 5

J

L

L-t

 

 

 

Рис. 6.14. Структура сжатого файла слоя III.

Назначение битов слоем III похоже на алгоритм слоев I и II, но имеет дополнительную сложность из-за распределения шумов. Ко­ дер (см. рис. 6.15) распределяет биты, делает надлежащее квантова­ ние подполосных сигналов, кодирует их кодами Хаффмана и счита­ ет общее число битов, сгенерированных процессом. В этом состоит внутренний цикл назначения битов. Алгоритм распределения шумов (также называемый процедурой анализа-синтеза) становится внеш­ ним циклом, когда кодер вычисляет шум квантования (то есть, он

Глава 6. Сжатие звука

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

Нахождение чисйа доступных битов Обнуление переменных итерации

ГВсе спектральные значения нулевые?

Внешний цикл нтерацни

Нахождение 4MCJia неиспользованных битов

?

Возврат

Цикл итераций слоя III

Начало

 

Квантование

 

Значения всех квантофнных величин

д^

не выходят за табличн|)1е рамки?

Найти длину последовательности значений, меньших или равных 1 !в верхнем конце спектра Найти число битов для кодирования величин меньших или равных 1 'в верхнем конце спектра

Разделить оставшйе,ся спектральные величины на 2 или 3 подзоны

Выбрать кодовую таблицу для каждой подзоны

Сосчитать биты для каждой подзоны

 

Общее число бит меньше

нет

допустимой величины?

 

Возврат

 

Начало

Внутренний ;цикл итераций

Вычисление искажения для каждой перемасштабир!эванной полосы Сохранить масштабный множитель

Выделение Увеличить мно}>ситель полосы больше допустимого искажения

 

Все множители п0лос увеличены?—=-i

 

Увеличенные Полосы ниже

нет

 

верхнего! предела?

'

 

Есть полоса с; искажением

нет

 

выше допустимого предела?

 

 

 

Восстановить множители

 

 

 

Возврат

 

Внешний цикл итераций слоя III

Увеличить размер

 

•*•

шага

 

 

квантования

 

 

Увеличить размер " шага

квантования

Внутренний цикл итераций слоя III

Рис. 6.15. Цикл итераций слоя III.

1.Все перемасштабированные полосы имеют допустимый шум, не превосходяш;ий допустимый порог.

2.Следующая итерация потребует переквантования ВСЕХ перемас­ штабированных полос.

3.Следуюп1;ей итерации потребуется больше битов, чем имеется в накопителе.

6.5. Сжатие звука в стандарте MPEG-1

Кодер слоя III (МРЗ) очень сложен при программной реализации. А декодер, наоборот, достаточно прост, поскольку ему не приходит­ ся применять психоакустическую модель, не надо бороться с арте­ фактами пре-эха и манипулировать с накопителями битов. Поэтому имеется огромное число доступных программ и приложений, кото­ рые способны проигрывать звуковые МРЗ-файлы на любых компью­ терных платформах.

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

Артур Кларк, «2001: Пространство Одиссея»

Соседние файлы в папке 1