3.4.3. Векторное квантованиеВ предыдущих разделах мы рассмотрели квантование выходного сигнала непрерывного источника для случая, когда квантование выполняется последовательно по отдельным отсчётам, т.е. скалярное квантование. В этом разделе мы рассмотрим совместное квантование блока символьных отсчётов или блока сигнальных параметров. Этот вид квантования называется блоковым или векторным квантованием. Оно широко используется при кодировании речи в цифровых сотовых системах связи. Фундаментальный результат теории искажения заключается в том, что лучшую характеристику можно достичь векторным, а не скалярным квантованием, даже если непрерывный источник без памяти. Если, кроме того, отсчёты сигнала или параметры сигнала статистически зависимы, мы можем использовать зависимость посредством совместного квантования блоков отсчётов или параметров и таким образом достичь большей эффективности (более низкой битовой скорости) по сравнению с той, которая достигается скалярным квантованием. Проблему векторного квантования можно сформулировать так. Имеем -мерный вектор с вещественными, непрерывными амплитудами компонент , которые описываются СФПВ . Путём квантования вектор превращается в другой -мерный вектор с компонентами . Выразим операции квантования оператором , так что , (3.4.31) где - выход квантователя, когда на вход поступает вектор . В принципе векторное квантование блоков данных можно рассматривать как проблему распознавания образов, включающую в себя классификацию блоков данных через дискретное количество категорий или ячеек в соответствии с некоторым критерием точности, таким, например, как среднеквадратическая погрешность. Для примера рассмотрим квантование двумерных векторов . Двумерное пространство разделяют на ячейки, как показано на рис. 3.4.3, где мы имеем произвольно выбранные шестиугольные ячейки . Все входные векторы, которые попадают в ячейку , квантуются в вектор , который на рис. 3.4.3 отмечен как центр шестиугольника. В нашем примере иллюстрируются векторов, один для каждой из 37 ячеек, на которые разбито двумерное пространство. Обозначим ряд возможных выходных векторов как . Рис. 3.4.3. Пример квантания в двухмерном пространстве В общем, квантование -мерного вектора в -мерный вектор ведёт к ошибке квантования или искажению . Среднее искажение по ряду входных векторов равно , (3.4.32) где - вероятность того, что вектор попадёт в ячейку , а - СФПВ случайных величин. Как и в случае скалярного квантования, мы можем минимизировать путём выбора ячеек при заданной ФПВ . Обычно используемая мера искажений - среднеквадратическая ошибка ( - норма) определяется как (3.4.33) или, в более общем виде, взвешенная среднеквадратическая ошибка , (3.4.34) где - положительно определённая взвешивающая матрица. Обычно мера выбирается как обратная по отношению к матрице ковариаций входных данных . Другая мера искажений, которая иногда используется, является частным случаем нормы и определяется как . (3.4.35) Частный случай, когда , часто используется как альтернатива случаю . Векторное квантование не ограничивается квантованием блока сигнальных отсчётов источника сигнала. Его можно использовать для квантования ряда параметров, извлечённых из данных. Например, при линейном кодировании с предсказанием (ЛКП), описанном в разделе 3.5.3, параметры, извлечённые из сигнала, являются коэффициентами предсказания, которые являются коэффициентами для всеполюсной фильтровой модели источника, который генерирует наблюдаемые данные. Эти параметры можно рассматривать как блок и квантовать как блок символов, используя некоторую подходящую меру искажений. В случае кодирования речи подходящей мерой искажений, которую предложили Итакура и Саити (1986, 1975), является взвешенная среднеквадратическая ошибка, где взвешивающая матрица выбрана как нормированная матрица автоковариации наблюдаемых данных. При кодировании речи альтернативным рядом параметров, которые могут быть квантованы как блок и переданы к приёмнику, могут быть коэффициенты отражения (см. ниже) . Еще один ряд параметров, которые иногда используются для векторного квантования при линейном кодировании с предсказанием речи, содержит логарифмические отношения , которые выражаются через коэффициенты отражения , . (3.4.36) Теперь вернемся к математической формулировке векторного квантования и рассмотрим разбиение -мерного пространства на ячеек с точки зрения минимизации среднего искажения по всем -уровневым квантователям. Имеется два условия для минимизации. Первое заключается в том, что оптимальный квантователь использует селекцию по правилу ближайшего соседа, которое можно выразить математически как , если, и только если , , . (3.4.37) Второе условие, необходимое для оптимизации, заключается в том, что каждый выходной вектор выбирается так, чтобы минимизировать среднее искажение в ячейке . Другими словами, - это вектор в , который минимизирует . (3.4.38) Вектор , который минимизирует , назван центроидом ячейки. Таким образом, эти условия оптимизации определяют разбиение -мерного пространства на ячейки , когда СФПВ известна. Ясно, что указанные два условия обобщают задачу оптимального квантования скалярной величины оптимизации на случай квантования -мерного вектора. В общем, мы ожидаем, что кодовые векторы более тесно группируются в областях, где СФПВ велика, и, наоборот, разрежены в областях, где мала. В качестве верхней границы искажений векторного квантования мы можем использовать величину искажений оптимального скалярного квантователя, и эту границу можно применить для каждой компоненты вектора, как было описано в предыдущем разделе. С другой стороны, наилучшие характеристики, которые могут быть достигнуты оптимальным векторным квантователем, определяются функцией скорость-искажение или, что эквивалентно, функцией искажение-скорость. Функция искажение-скорость, которая была введена в предыдущем разделе, может быть определена в контексте векторного квантования следующим образом. Предположим, мы формируем вектор размерности из последовательных отсчётов . Вектор квантуется в форму , где - образованный рядом . Как было описано выше, среднее искажение , получаемое при представлении через , равно , где - это искажение на одно измерение. Например, . Минимально достижимая средняя битовая скорость, с которой могут быть переданы векторы , равна бит/отсчет, (3.4.39) где - энтропия квантованного выхода источника, определяемая как . (3.4.40) Для данной средней скорости минимально достижимое искажение , (3.4.41) где и минимум в (3.4.41) берётся по всем возможным отображениям . В пределе, когда размерность стремится к бесконечности, получаем , (3.4.42) где - это функция искажение-скорость, которая была введена в предыдущем разделе. Из этого изложения очевидно, что функция искажение-скорость может быть как угодно приближена к пределу путём увеличения размерности векторов. Изложенный выше подход приемлем в предположении, что СФПВ вектора данных известна. Однако на практике СФПВ данных может быть неизвестна. В этом случае, возможно адаптивно выбрать квантованные выходные векторы с использованием ряда обучающих векторов . Конкретнее, предположим, что мы имеем ряд из векторов, причём намного больше, чем . Итеративный групповой алгоритм, названный алгоритмом средних, где в нашем случае , может быть применён к обучающим векторам. Этот алгоритм итеративно делит обучающих векторов на групп так, что два необходимых условия оптимальности выполняются. Алгоритм средних может быть описан так, как дано ниже [Макхоул и др. (1985)].
Алгоритм K средних
Шаг 1. Инициализируется начальный номер итерации . Выбирается ряд выходных векторов , . Шаг 2. Обучающие векторы классифицируются в группы посредством правила ближайшего соседа: если для всех . Шаг 3. Пересчитываются (для -го шага) выходные векторы каждой группы путём вычисления центроида , , для обучающих векторов, которые попадают в каждую группу. Кроме того, рассчитывается результирующее искажение на -й итерации. Шаг 4. Заканчивается тестирование, если относительно мало. В противном случае следует идти к шагу 2. Алгоритм средних приводит к локальному минимуму (см. Андерберг, 1973; Линде и др., 1980). Начиная этот алгоритм различными рядами начальных выходных векторов и каждый раз выполняя оптимизацию, описанную алгоритмом средних, можно найти глобальный оптимум. Однако вычислительные затраты этой поисковой процедуры могут ограничить поиск немногими инициализациями. Если мы один раз выбрали выходные векторы , каждый сигнальный вектор квантуется в выходной вектор, который является ближайшим к нему с точки зрения выбранной меры искажения. Если вычисление включает в себя оценку расстояния между и каждым из возможных выходных векторов , процедура образует полный поиск. Если предположим, что каждое вычисление требует умножений и сложений, то общее требуемое число вычислений для полного поиска равно (3.4.43) умножений и сложений на входной вектор. Если мы выбрали как степень 2, то определяет число бит, требуемых для представления каждого вектора. Теперь, если обозначает битовую скорость на отсчёт [на компоненту или на измерение ], имеем и, следовательно, вычислительные затраты . (3.4.44) Заметим, что число вычислений растёт экспоненциально с параметром размерности п и битовой скорости на измерение. Вследствие этого экспоненциального роста вычислительных затрат векторное квантование применяется в низкобитовых кодерах источника, таких как кодирование коэффициентов отражения или логарифмических отношений в линейном кодировании речи с предсказанием. Вычислительные затраты, связанные с полным поиском, можно уменьшить при помощи изящного субоптимального алгоритма (см. Чанг и др., 1984; Гершо, 1982). Чтобы продемонстрировать пользу векторного квантования по сравнению со скалярным квантованием, мы представим следующий пример, взятый у Макхоула и др. (1985). Пример 3.4.1. Пусть и являются двумя случайными величинами с равномерной СФПВ: (3.4.45) где - прямоугольная область, показанная на рис. 3.4.4. Заметим, что прямоугольник повёрнут на 45º относительно горизонтальной оси. На рис. 3.4.4 показаны также собственные плотности вероятности и . Рис. 3.4.4. Равномерная ФПВ в двух измерениях (Макхоул и др., 1985) Если мы квантуем и раздельно, используя одинаковые интервалы квантования длины , то требуемое число уровней квантования . (3.4.46) Следовательно, для кодирования вектора потребуется число бит , . (3.4.47) Таким образом, скалярное квантование каждой компоненты эквивалентно векторному квантованию с общим числом уровней . (3.4.48) Видим, что это приближение эквивалентно покрытию большой площади, которая охватывает прямоугольник посредством квадратных ячеек, причём каждая ячейка представляет одну из областей квантования. Поскольку , за исключением , такое кодирование является расточительным и приводит к увеличению битовой скорости. Если же мы покроем только область, где , квадратиками, имеющими площадь , то общее число уровней, которые образуются, определяется площадью прямоугольника, делённой на , т.е. . (3.4.49) Следовательно, разница в битовой скорости при скалярном и векторном методах квантования равна . (3.4.50) Для случая, когда , разница в битовой скорости бит/вектор. Следовательно, векторное квантование на 0,82 бит/отсчёт лучше, чем скалярное, при тех же искажениях. Интересно заметить, что линейное преобразование (поворот на 45º) декоррелирует и и делает две случайные величины статистически независимыми. Тогда скалярное квантование и векторное квантование достигают одинаковой эффективности. Хотя линейное преобразование может декоррелировать вектор случайных величин, оно не приводит к статистически независимым случайным величинам в общем случае. Следовательно, Векторное квантование будет всегда равняться или превосходить по характеристикам скалярный квантователь (см. задачу 3.40). Векторное квантование применяется при различных методах кодирования речи, включая сигнальные методы и методы базовых моделей, которые рассматриваются в разд. 3.5. В методах, основанных на базовых моделях, таких как линейное кодирование с предсказанием, векторное квантование делает возможным кодирование речи на скоростях ниже 1000 бит/с (см. Бузо и др., 1980; Роукос и др., 1982; Пауль, 1983). Если использовать методы кодирования сигналов, возможно получить хорошее качество речи на скоростях передачи 16 000 бит/с, что эквивалентно скорости кодирования бит/отсчёт. За счёт дополнительных вычислительных усложнений в будущем станет возможным использовать сигнальные кодеры, обеспечивающие хорошее качество речи при скорости кодирования бит/отсчёт.
|