УДК 004.627
А.А. Свиридов, асп., 8-960-600-56-94, [email protected] (Россия, Тула, ТулГУ)
ИСПОЛЬЗОВАНИЕ СИНГУЛЯРНОГО РАЗЛОЖЕНИЯ ДЛЯ КОМПРЕССИИ ПОТОКОВОГО АУДИО
Предложен новый подход к компрессии потокового аудио, заключающийся в использовании сингулярного разложения. Представлены результаты работы экспериментального кодека, разработанного в математическом пакете MATLAB.
Ключевые слова: потоковое аудио, компрессия, сингулярное разложение, ортогональное преобразование, кодек.
Большинство современных эффективных методов сжатия звука с потерями базируются на одномерных дискретных ортогональных преобразованиях и применении психоакустических моделей. В этом подходе существенно, что сигнал представляется одномерным массивом. В работе рассматривается новый подход к компрессии аудио, заключающийся в представлении фрейма аудио сигнала двумерным вектором (матрицей) и использовании двумерного метода компрессии с потерями.
Задача компрессии аудио сводится к задаче сжатия изображений, в которой сжимаются матрицы. Для сжатия матриц использовалось сингулярное разложение (SVD - singular value decomposition).
Стоит отметить, что SVD уже применялось при обработке аудио. Но оно использовалось не для компрессии аудио, а в целях обеспечения защиты авторских прав в рамках использования техники водяных знаков [1].
Рассмотрим обобщенную схему, по которой работает подавляющее большинство кодеков (кодек - сокращение от кодировщик/декодировщик) потокового аудио. При помощи некоторой модели (например, психоакустики) осуществляется частотно-временной анализ (с использованием таких преобразований как ДПФ - дискретное преобразование Фурье, МДКП - модифицированное дискретное косинус преобразование, ДВП - дискретное вейвлет-преобразование и т. п.), полученные после этого данные подвергаются квантованию. Затем определяются качество и размер участков фрейма, если они не соответствуют необходимым значениям, то параметры частотно-временного анализа и квантования меняются, и эти процедуры проводятся снова. После того, как будут получены необходимые качество и размер участков фрейма, проводится энтропийное кодирование. Обобщённая схема приведена на рис. 1.
Рис. 1. Обобщённая схема кодека потокового аудио [2, c.26]
Все современные методы компрессии аудио оперируют с аудио сигналом как с одномерным вектором. Такой подход позволяет использовать психоакустические модели при кодировании.
Тем не менее, сегодня очень хорошо развита теория сжатия видео, и, в частности, теория сжатия изображений [3]. При сжатии изображений операции преобразований (такие как двумерные ДПФ, МДКП, ДВП и другие) проводятся или над матрицами, тем или иным способом описывающими изображение (например, в алгоритме JPEG в качестве одной из обрабатываемых матриц используется матрица значений, соответствующих яркостной составляющей цвета в цветовом пространстве YCrC^ [4, с.22]),
или над отдельными строками и столбцами таких матриц.
Методы сжатия матриц дают хорошие результаты для изображений, но аудио информация имеет свою структуру, поэтому необходимо исследовать вопрос о том, дадут ли они хорошие результаты для аудио. Рассмотрим процедуру сведения компрессии потокового аудио к сжатию матриц.
Обозначим входной аудио сигнал за x(t). Обработка будет проходить в потоковом режиме, для этого разобьем входной сигнал на фреймы длины N, которые будут обрабатываться независимо. Пусть T = [tj, к, tN }- равномерное разбиение временного интервала, соответствующего текущему фрейму. Тогда за Xj обозначим значения сигнала (отсчеты) в моменты времени tj : x(tj) = Xj,i = 1... N. Из этих отсчетов далее построим матрицу размера m х n следующим образом:
X
X11 X21
V Xm1
x12 x22
x
m 2
где Xjj = x ((i - 1)n + j), i = 1,., m, j = 1,., n
x1n x2 n
x
mn y
Таким образом, задача сжатия аудио сигнала x(t) сводится к задаче сжатия матриц вида (1). Изобразим теперь матрицу X графически, для этого будем рассматривать каждый элемент матрицы xj как пиксель изображения с координатами (i,j) в цветовом пространстве RGB и значением от 0 до 1. Для этого можно считать, что все составляющие цвета (R - красная, G - зеленая и B - синяя) равны одной и той же величине, определяемой следующим образом:
xn — min xn
R = G = B =-j-j—.
max xj — min xj
При равенстве цветовых составляющих цветом каждого пикселя могут быть только оттенки серого. Полученные изображения могут быть полезны при анализе матричного представления аудио сигнала. На рис.2 показаны графические изображения некоторых матриц фреймов. Хорошо видно преобладание горизонтальных деталей.
Рассмотрим подход к сжатию матриц, основанный на SVD. Данное разложение описывается следующей теоремой [5] ("экономичное" SVD).
Теорема 1. Пусть X - вещественная матрица m х n, U и V - ортогональные матрицы, тогда X можно представить в виде
X = USVT, (2)
где S - диагональная матрица размера r х r
О 0 ... 0 ...
S
00
0 0
Ог
у - .
г = шт(т, п) и диагональные элементы матрицы £ удовлетворяют неравенствам
а1 >о2 > к >аг > 0. (3)
Матрица X, разложенная по формуле (2), может быть записана в
виде
k
X = Z°lulvT ,
l=1
(4)
где k - ранг матрицы X, и - столбцы матрицы и (левые сингулярные векторы матрицы X), V - столбцы матрицы V (правые сингулярные векторы матрицы X).
а
б
д
е
Рис. 2. Изображения матриц фреймов размером 32 х 32 следующих композиций: a - Mozartkugeln, Strauss Quartet (Mozart, Strauss) - классическая музыка; б - The Lonely Sheeperd (J.Last) - инструментальная музыка; в - What's She Like (Roxette) - популярная музыка; г - Мое сердце не остановилось (Наив) - рок; д - The Carpenter (Nightwish) - тяжелый рок; е - Robinson Crusoe (Speech) - речь
Большая практическая значимость сингулярного разложения вызвана в первую очередь тем, что оно дает оптимальный в некотором смысле способ исключения из матрицы наименее значимой информации путем ее аппроксимации суммой меньшего числа слагаемых. Речь идет о поиске элемента наилучшего приближения для заданной матрицы X на множестве матриц, ранг которых ограничен некоторым числом. Следующая теорема (частный случай более общей теоремы для матрицы X над полем С [6, с.233]) описывает оптимальность аппроксимации с использованием SVD.
Теорема 2 (о наилучших аппроксимациях с понижением ранга).
Пусть матрица X е Rтхnзадана сингулярным разложением (4) и а+j = 0. Пусть задано целое 1 < s < k, тогда
min ||X - Ц |2 = as+1
rank(Y ) < s,
v тх n
Y е a:
X - X
где I X| I2 = sup ||Xy|| 2 - спектральная норма матрицы, Xs = ^GjUjvj
M 2 =1 j=1
T
ye£
в
г
2
s
Таким образом, сжатие может быть достигнуто обнулением части диагональных элементов матрицы £, при этом для достижения лучшей аппроксимации матрицы £ (соответственно, лучшего качества восстановленного сигнала) в соответствии с Теоремой 2 обнулять нужно элементы, имеющие минимальные значения. Учитывая условия (3), получаем, что процесс сжатия сводится к выбору числа s, регулирующего степень сжатия и качество приближения матрицы X, такого, что после обнуления части диагональных элементов матрица £ принимает вид
0 ... 0 0 ... 0Л
*
£ =
а1 0
00
Обозначим за £ следующую матрицу:
0 ...
£
а1 0
а 2
0 0
00
а
5 У
Оценим степень сжатия при данном подходе. Для хранения матрицы £ нужно сохранить 5 её диагональных элементов. Вместо матрицы V
можно хранить только первые 5 столбцов этой матрицы (матрицу, состав-
~ *
ленную из этих столбцов, обозначим V), поскольку у матрицы £ только
Т
первые 5 строк будут ненулевыми. Для матрицы V будет достаточно хранить первые 5 строк (матрицу, составленную из этих строк, обозна-
~т * т
чимV ), поскольку при вычислении матрицы и£ V все элементы строк
Т
матрицы V с номерами большими 5 будут умножаться на нулевые эле*
менты столбцов матрицы и£ . Таким образом, для хранения сигнала вместо N = т х п значений нужно хранить N значений
~ *
N = 5 + т^ъ + т = 5(1 + т + п). Более того, вместо хранения 5 диагональных элементов матрицы £
и первых 5 столбцов матрицы V можно хранить первые 5 столбцов мат*
рицы и£ . В этом случае уже не нужно хранить диагональные элементы матрицы £ и сигнал представляется меньшим количеством значений
N = + т = 5(т + п).
Например, если взять т = 32, п = 32 и 5* = 6, то будет достигнуто сжатие в 2,67 раза.
Система фильтров, предназначенная для обработки восстановленного аудио сигнала, является важной составной частью любого кодека. При реализации SVD-декодирования для подавления шумов в выходном сигнале был использован хорошо известный фильтр нижних частот (ФНЧ) с косинусоидальным сглаживанием амплитудно-частотной характеристики (АЧХ). АЧХ этого фильтра определяется выражением [7, с.325]
K (а)
1, щ < ®о(1 -а),
11. П щ-щ0 (, ^ II___ ,
---sin —-—!-, ®о(1 -а)< щ<®о(1 + а),
2 2 2 а®о
0, Щ > ао(1 + а), график K (щ) показан на рис. 3.
Импульсная характеристика этого фильтра имеет вид [7, с. 326]
щ cos а®о^ sin (Oоt
h (t)
П
1
2
П
Процедура применения дискретного фильтра представляет собой свертку входного сигнала х(п) и коэффициентов фильтра ^п)
N-1
У(п) = X h(к)х(п - к),
к=0
где у(п) - выход фильтра, N - длина фильтра (количество коэффициентов фильтра).
Рис. 3. А ЧХ ФНЧ с косинусоидальным сглаживанием [7, с. 325]
18о
Общая схема работы SVD-кодировщика выглядит следующим образом:
1) формирование очередной матрицы фрейма X ;
2) выполнение SVD-разложения (2);
3) вычисление матрицы U S ;
4) квантование матриц U S и¥Т.
При декодировании выполняются обратные операции, после чего применятся ФНЧ с косинусоидальным сглаживанием АЧХ.
Для тестирования SVD-кодека был написан код в математическом пакете MATLAB, использовались следующие настройки: длина фрейма: 1024 отсчета; размер матрицы фрейма: 32 х 32 ; оставляемое количество сингулярных чисел: 3; уровень квантования: 8 бит; количество каналов: 1 (mono). При тестировании были использованы композиции разных жанров:
1. Mozartkugeln, Strauss Quartet (Mozart, Strauss) - классическая музыка;
2. The Lonely Sheeperd (J.Last) - инструментальная музыка;
3. What's She Like (Roxette) - популярнаямузыка;
4. Мое сердце не остановилось (Наив) - рок;
5. The Carpenter (Nightwish) - тяжелыйрок;
6. Robinson Crusoe (Speech) - речь.
В качестве оригиналов для всех композиций были взяты wav-файлы длительностью по 15 секунд со следующими параметрами (эти параметры соответствуют "CD-качеству"):
частота дискретизации: 44100 Гц; количество каналов: 2 (stereo); уровень квантования: 16 бит.
Средняя степень сжатия SVD-кодека при используемых параметрах кодирования составила 1:21, что почти в точности совпадает со средней степенью сжатия хорошо известного кодека MP3, которая составляет 1:11, с учётом того, что SVD-кодек использовал только один канал при кодировании (mono). Полученный результат может быть улучшен с помощью применения алгоритмов энтропийного кодирования, например, алгоритма Хаффмана [8, с.31]. Здесь также нужно отметить, что в MP3 учитывается корреляция стереоканалов (алгоритм JointStereo), и если добавить эту обработку к SVD-кодеку и работать с двумя каналами, то результат должен оказаться лучше, чем 1:11.
Несмотря на то, что качество звучания у SVD-кодека заметно уступило по мелодичности звучанию MP3 и других современных кодеков, оно
оказалось вполне приемлемым: все слова слышно отчётливо, музыкальные инструменты узнаваемы. Оценка звучания производилась на слух.
При тестировании оценивалось и время работы SVD-кодека. Тесты проводились на компьютере со следующими характеристиками: CPU: Intel Core 2 Duo P8600 2.40GHz; RAM: 3 Gb.
По результатам, приведённым в таблице, видно, что скорость работы SVD-кодека достаточно высокая, и он работает в режиме реального времени.
Время работы SVD-кодека при кодировании и декодировании
(в секундах)
№ Композиция Кодирование Декодирование
1 Mozartkugeln, Strauss Quartet (Mozart, Strauss) 0,84 2,85
2 The Lonely Sheeperd (J.Last) 0,70 3,10
3 What's She Like (Roxette) 0,72 3,27
4 Мое сердце не остановилось (Наив) 0,79 3,27
5 The Carpenter (Nightwish) 0,74 3,28
6 Robinson Crusoe (Speech) 0,72 3,28
Средний результат 0,75 3,18
Можно выделить следующие наиболее значимые результаты работы:
сингулярное разложение может быть использовано при компрессии аудио;
в дальнейшем может быть исследован вопрос о комбинировании классических подходов, основанных на психоакустических моделях, с двумерными методами для достижения высоких степеней сжатия при сохранении основных деталей композиции (отдельные звуки и слова, узнаваемость музыкальных инструментов). Задача очень сильного сжатия может быть интересна при архивировании больших объёмов аудио, когда качество не так значимо, а нужны лишь основные детали (например, аудио, получаемое с систем видеонаблюдения, работающих в режиме 24/7).
Список литературы
1. Hamza Ozer, Bulent Sankur, Nasir Memon. An SVD-based audio watermarking technique // International Multimedia Conference. New York, USA, SESSION: Audio, ISBN:1-59593-032-9, 2005. P. 51-56.
2. Ватолин Д.С. Сжатие аудиоданных. Общие принципы и устройство MP3. М.: ВМиК МГУ им. М.В. Ломоносова, 2006-2007. 131 с.
182
3. Гонсалес Р., Вудс Р. Цифровая обработка изображений. М.: Техносфера, 2005. 1072 с.
4. Ватолин Д.С. Алгоритмы сжатия изображений. Методическое пособие. М.: Издательский отдел факультета ВМиК МГУ им.М.В. Ломоносова, 1999. 39 с.
5. LAPACK User's Guide. Third Edition / E.Anderson [et al.] Philadelphia: SIAM, 1999.
6. Тыртышников Е.Е. Матричный анализ и линейная алгебра. М.: ФИЗМАТЛИТ, 2007. 480 с.
7. Сергиенко А.Б. Цифровая обработка сигналов. СПб.: Питер, 2002.
608 с.
8. Методы сжатия данных. Устройство архиваторов, сжатие изображений и видео / Д.Ватолин [и др.]. М.: ДИАЛОГ-МИФИ, 2003. 384 с.
A.A. Sviridov
USING SINGULAR VALUE DECOMPOSITION FOR COMPRESSING STREAMING AUDIO
A new approach of compressing streaming audio is proposed. The approach is based on singular value decomposition. An experimental codec was developed in MATLAB so that test the new approach. The results of testing are given.
Key words: streaming audio, compression, singular value decomposition, orthogonal transformation, codec.
Получено 07.03.12