СПОСОБ КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ ИНДЕКСОВ КОДОВОЙ КНИГИ ДЛЯ КВАНТОВАННОГО СПЕКТРА МДКП В МАСШТАБИРУЕМЫХ РЕЧЕВЫХ И АУДИОКОДЕКАХ
METHOD TO CODE/DECODE INDICES OF CODE BOOK FOR QUANTISED SPECTRUM OF MDCT IN SCALES VOICE AND AUDIO CODECS

Настоящая патентная заявка испрашивает приоритет согласно предварительной патентной заявке США №60/985,263 под названием “Low-Complexity Technique for Encoding/Decoding of Quantized MDCT Spectrum in Scalable Speech + Audio Codecs”, поданной 4 ноября 2007 г., переуступленной правопреемнику настоящего изобретения и, таким образом, в явном виде включенной в состав настоящей заявки посредством ссылки.
Область техники, к которой относится изобретение
Нижеследующее описание, в целом, относится к кодерам и декодерам и, в частности, к эффективному способу кодирования спектра модифицированного дискретного косинусного преобразования (МДКП) в составе масштабируемого речевого и аудиокодека.
Уровень техники
Целью аудиокодирования является сжатие аудиосигнала до нужного ограниченного объема информации с сохранением, по мере возможности, исходного качества звучания. В процессе кодирования, аудиосигнал преобразуется из временного измерения в частотное измерение.
Перцепционные методы аудиокодирования, например MPEG уровня 3 (MP3), MPEG-2 и MPEG-4, используют свойства маскировки сигнала, присущие человеческому слуху, для сокращения объема данных. Благодаря этому шум квантования распределяется на частотные диапазоны таким образом, что он маскируется преобладающим полным сигналом, т.е. остается неслышимым. Значительное сокращение размера хранилища возможно с небольшой или вообще без какой-либо воспринимаемой потери качества аудиосигнала. Перцепционные методы аудиокодирования часто масштабируются и производят многоуровневый битовый поток, имеющий базовый или основной уровень и, по меньшей мере, один уровень улучшения. Это допускает масштабируемость битовой скорости, т.е. декодирование на разных уровнях качества аудиосигнала на стороне декодера или снижение битовой скорости в сети путем формообразования или кондиционирования трафика.
Линейное прогнозирование с кодовым возбуждением (CELP) представляет собой класс алгоритмов, включающий в себя алгебраический CELP (ACELP), релаксационный CELP (RCELP), CELP с малой задержкой (LD-CELP) и линейное прогнозирование с возбуждением векторной суммой (VSELP), который широко используется для кодирования речи. Один принцип, лежащий в основе CELP, называется «Анализ через синтез» (AbS) и означает, что кодирование (анализ) осуществляется путем перцепционной оптимизации декодированного (синтезированного) сигнала в замкнутом цикле. Теоретически, наилучший поток CELP формируется путем опробования всевозможных комбинаций битов и выбора той из них, которая обеспечивает декодированный сигнал с наилучшим звучанием. Очевидно, осуществить это на практике невозможно по двум причинам: это очень трудно реализовать, и критерий выбора "наилучшее звучание" предусматривает наличие слушателя-человека. Для обеспечения кодирования в реальном времени с использованием ограниченных вычислительных ресурсов поиск CELP разбивается на меньшие, более управляемые, последовательные поиски с использованием перцепционной взвешивающей функции. Обычно кодирование включает в себя (a) вычисление и/или квантование (обычно в качестве линейных спектральных пар) коэффициентов линейно-прогностического кодирования для входного аудиосигнала, (b) использование кодовых книг для поиска наилучшего совпадения для генерации кодированного сигнала, (c) генерацию сигнала ошибки, который является разностью между кодированным сигналом и реальным входным сигналом, и (d) дополнительное кодирование такого сигнала ошибки (обычно в спектре МДКП) на одном или нескольких уровнях для повышения качества реконструированного или синтезированного сигнала.
Существует много разных способов реализации речевых и аудиокодеков на основании алгоритмов CELP. Согласно некоторым из этих способов, генерируется сигнал ошибки, который затем преобразуется (обычно с использованием ДКП, МДКП или аналогичного преобразования) и кодируется для дополнительного повышения качества кодированного сигнала. Однако в силу ограничений в отношении обработки и полосы, присущих многим мобильным устройствам и сетям, требуется эффективная реализация такого кодирования спектра МДКП для сокращения объема сохраняемой или передаваемой информации.
Раскрытие изобретения
Ниже, в упрощенном виде, представлено раскрытие одного или нескольких вариантов осуществления для обеспечения понимания сущности таких вариантов осуществления. Это раскрытие не является обширным обзором всех мыслимых вариантов осуществления и не призвано, ни идентифицировать ключевые или критические элементы всех вариантов осуществления, ни ограничивать объем каких-либо или всех вариантов осуществления. Его единственной целью является представление некоторых концепций одного или нескольких вариантов осуществления в упрощенной форме в качестве прелюдии к более подробному описанию, которое приведено ниже.
В одном примере предусмотрен масштабируемый речевой и аудиокодер. Можно получить остаточный сигнал из уровня кодирования на основе линейного прогнозирования с кодовым возбуждением (CELP), где остаточный сигнал является разностью между исходным аудиосигналом и реконструированной версией исходного аудиосигнала. Остаточный сигнал можно преобразовывать на уровне преобразования типа дискретного косинусного преобразования (ДКП) для получения соответствующего спектра преобразования. Уровень преобразования типа ДКП может представлять собой уровень модифицированного дискретного косинусного преобразования (МДКП), и спектр преобразования является спектром МДКП. Затем спектр преобразования можно разделить на множество спектральных диапазонов, причем каждый спектральный диапазон имеет множество спектральных линий. В некоторых реализациях некоторый набор спектральных диапазонов можно отбросить для сокращения количества спектральных диапазонов до кодирования. Затем выбирается множество разных кодовых книг для кодирования спектральных диапазонов, где с кодовыми книгами связаны индексы кодовой книги. Векторное квантование осуществляется на спектральных линиях в каждом спектральном диапазоне с использованием выбранных кодовых книг для получения векторно-квантованных индексов.
Индексы кодовой книги кодируются, и векторно-квантованные индексы также кодируются. В одном примере кодирование индексов кодовых книг может включать в себя кодирование, по меньшей мере, двух смежных спектральных диапазонов в код парного дескриптора, который основан на распределении вероятности квантованных характеристик смежных спектральных диапазонов. Кодирование, по меньшей мере, двух смежных спектральных диапазонов может включать в себя: (a) сканирование смежных пар спектральных диапазонов для определения их характеристик, (b) идентификацию индекса кодовой книги для каждого из спектральных диапазонов, и/или (c) получение компонента дескриптора и компонента кода расширения для каждого индекса кодовой книги. Кодирование первого компонента дескриптора и второго компонента дескриптора парами для получения кода парного дескриптора. Код парного дескриптора может отображаться в один из множества возможных кодов переменной длины (VLC) для разных кодовых книг. Кодовые книги VLC можно назначать каждой паре компонентов дескриптора на основании относительной позиции каждого соответствующего спектрального диапазона в кадре аудиосигнала и номера уровня кодера. Коды парного дескриптора могут основываться на квантованном наборе типичных распределений вероятности значений дескриптора в каждой паре дескрипторов. Единичный компонент дескриптора можно использовать для индексов кодовой книги, превышающих значение k, и компоненты кода расширения используются для индексов кодовой книги, превышающих значение k. В одном примере, каждый индекс кодовой книги связан с компонентом дескриптора, который основан на статистическом анализе распределений возможных индексов кодовой книги, причем индексы кодовой книги, имеющие более высокую вероятность выбора, назначаются отдельным компонентам дескриптора, и индексы кодовой книги, имеющие меньшую вероятность выбора, группируются и назначаются единичному дескриптору.
Затем битовый поток кодированных индексов кодовой книги и кодированных векторно-квантованных индексов формируется для представления квантованного спектра преобразования.
Также предусмотрен масштабируемый речевой и аудиодекодер. Получается битовый поток, имеющий множество кодированных индексов кодовой книги и множество кодированных векторно-квантованных индексов, которые представляют квантованный спектр преобразования остаточного сигнала, где остаточный сигнал является разностью между исходным аудиосигналом и реконструированной версией исходного аудиосигнала из уровня кодирования на основе линейного прогнозирования с кодовым возбуждением (CELP). Множество кодированных индексов кодовой книги затем декодируется для получения декодированных индексов кодовой книги для множества спектральных диапазонов. Аналогично, множество кодированных векторно-квантованных индексов также декодируется для получения декодированных векторно-квантованных индексов для множества спектральных диапазонов. Затем множество спектральных диапазонов можно синтезировать с использованием декодированных индексов кодовой книги и декодированных векторно-квантованных индексов для получения реконструированной версии остаточного сигнала на уровне обратного преобразования типа обратного дискретного косинусного преобразования (ОДКП). Уровень преобразования типа ОДКП может представлять собой уровень обратного модифицированного дискретного косинусного преобразования (ОМДКП), и спектр преобразования является спектром ОМДКП.
Множество кодированных индексов кодовой книги можно представлять кодом парного дескриптора, представляющим множество смежных спектральных диапазонов спектра преобразования кадра аудиосигнала. Код парного дескриптора может основываться на распределении вероятности квантованных характеристик смежных спектральных диапазонов. Код парного дескриптора отображается в один из множества возможных кодов переменной длины (VLC) для разных кодовых книг. Кодовые книги VLC можно назначать каждой паре компонентов дескриптора на основании относительной позиции каждого соответствующего спектрального диапазона в кадре аудиосигнала и номера уровня кодера.
В одном примере, декодирование множества кодированных индексов кодовой книги включает в себя, может включать в себя: (a) получение компонента дескриптора, соответствующего каждому из множества спектральных диапазонов, (b) получение компонента кода расширения, соответствующего каждому из множества спектральных диапазонов, (c) получение компонента индекса кодовой книги, соответствующего каждому из множества спектральных диапазонов, на основании компонента дескриптора и компонента кода расширения, и/или (d) использование индекса кодовой книги для синтеза спектрального диапазона для каждого, соответствующего каждому из множества спектральных диапазонов. Компонент дескриптора можно связывать с индексом кодовой книги, который основан на статистическом анализе распределений возможных индексов кодовой книги, причем индексы кодовой книги, имеющие более высокую вероятность выбора, назначаются отдельным компонентам дескриптора, и индексы кодовой книги, имеющие меньшую вероятность выбора, группируются и назначаются единичному дескриптору. Единичный компонент дескриптора можно использовать для индексов кодовой книги, превышающих значение k, и компоненты кода расширения используются для индексов кодовой книги, превышающих значение k. Коды парного дескриптора могут основываться на квантованном наборе типичных распределений вероятности значений дескриптора в каждой паре дескрипторов.
Краткое описание чертежей
Различные признаки, природа и преимущества явствуют из подробного описания осуществления изобретения, приведенного ниже со ссылкой на чертежи, снабженные сквозной системой обозначений.
Фиг.1 - блок-схема, демонстрирующая систему связи, в которой можно реализовать один или несколько признаков кодирования.
Фиг.2 - блок-схема, демонстрирующая передающее устройство, которое может быть сконфигурировано, чтобы осуществлять эффективное аудиокодирование, согласно одному примеру.
Фиг.3 - блок-схема, демонстрирующая приемное устройство, которое может быть сконфигурировано, чтобы осуществлять эффективное аудиодекодирование, согласно одному примеру.
Фиг.4 - блок-схема масштабируемого кодера согласно одному примеру.
Фиг.5 - блок-схема, демонстрирующая иллюстративный процесс кодирования спектра МДКП, который можно реализовать на более высоких уровнях кодера.
Фиг.6 - схема, демонстрирующая, как кадр спектра МДКП аудиосигнала можно разделить на множество n-точечных диапазонов (или подвекторов) для облегчения кодирования спектра МДКП.
Фиг.7 - логическая блок-схема, демонстрирующая один пример алгоритма кодирования, осуществляющего кодирование индексов кодовой книги, подвергнутых вложенному алгебраическому векторному квантованию (EAVQ) в измерении МДКП.
Фиг.8 - блок-схема, демонстрирующая кодер для масштабируемого речевого и аудиокодека.
Фиг.9 - блок-схема, демонстрирующая пример способа для получения кода парного дескриптора, который кодирует множество спектральных диапазонов.
Фиг.10 - блок-схема, демонстрирующая пример способа для генерации отображения между кодовыми книгами и дескрипторами на основании распределения вероятности.
Фиг.11 - блок-схема, демонстрирующая пример того, как можно генерировать значения дескриптора.
Фиг.12 - блок-схема, демонстрирующая пример способа для генерации отображения дескрипторных пар в коды парного дескриптора на основании распределения вероятности множества дескрипторов для спектральных диапазонов.
Фиг.13 - блок-схема, демонстрирующая пример декодера.
Фиг.14 - блок-схема, демонстрирующая декодер, способный эффективно декодировать код парного дескриптора.
Фиг.15 - блок-схема, демонстрирующая способ декодирования спектра преобразования в масштабируемом речевом и аудиокодеке.
Осуществление изобретения
Различные варианты осуществления изобретения будут описаны ниже со ссылкой на чертежи, снабженные сквозной системой обозначений. В нижеследующем описании, в целях объяснения, многочисленные конкретные детали представлены для обеспечения исчерпывающего понимания одного или нескольких вариантов осуществления. Однако очевидно, что такой(ие) вариант(ы) осуществления можно реализовать на практике без этих конкретных деталей. В других случаях, общеизвестные структуры и устройства показаны в виде блок-схемы для обеспечения описания одного или нескольких вариантов осуществления.
Обзор
В масштабируемом кодеке для кодирования/декодирования аудиосигналов, в котором множественные уровни кодирования используются для итерационного кодирования аудиосигнала, модифицированное дискретное косинусное преобразование можно использовать на одном или нескольких уровнях кодирования, где остатки аудиосигнала преобразуются (например, в измерение МДКП) для кодирования. В измерении МДКП, кадр спектральных линий можно разделить на множество диапазонов. Каждый спектральный диапазон можно эффективно кодировать индексом кодовой книги. Индекс кодовой книги можно дополнительно кодировать в небольшой набор дескрипторов кодами расширения, и дескрипторы для смежных спектральных диапазонов можно дополнительно кодировать в коды парного дескриптора, которые указывают, что некоторые индексы кодовой книги и дескрипторы имеют более высокое распределение вероятности, чем другие. Дополнительно, индексы кодовой книги также кодируются на основании относительной позиции соответствующих спектральных диапазонов в спектре преобразования, а также номера уровня кодера.
В одном примере, набор модулей вложенного алгебраического векторного квантования (EAVQ) используется для кодирования n-точечных диапазонов спектра МДКП. Модули векторного квантования можно без потерь сжимать в индексы, задающие скорость и номера кодовых книг, используемых для кодирования каждого n-точечного диапазона. Индексы кодовой книги можно дополнительно кодировать с использованием набора выбираемых на контекстной основе кодов Хаффмана, которые представляют парные индексы кодовой книги для смежных спектральных диапазонов. Для больших значений индексов, дополнительно унарно кодированные расширения можно дополнительно использовать для представления значений дескриптора, представляющих индексы кодовой книги.
Система связи
На фиг.1 показана блок-схема, демонстрирующая систему связи, в которой можно реализовать один или несколько признаков кодирования. Кодер 102 принимает поступающий входной аудиосигнал 104 и генерирует кодированный аудиосигнал 106. Кодированный аудиосигнал 106 можно передавать по каналу связи (например, беспроводному или проводному) на декодер 108. Декодер 108 пытается реконструировать входной аудиосигнал 104 на основании кодированного аудиосигнала 106 для генерации реконструированного выходного аудиосигнала 110. В целях иллюстрации, кодер 102 может работать на передающем устройстве, тогда как устройство декодера может работать на приемном устройстве. Однако очевидно, что любые такие устройства могут включать в себя как кодер, так и декодер.
На фиг.2 показана блок-схема, демонстрирующая передающее устройство 202, которое может быть сконфигурировано, чтобы осуществлять эффективное аудиокодирование согласно одному примеру. Входной аудиосигнал 204 воспринимается микрофоном 206, усиливается усилителем 208 и преобразуется А/Ц преобразователем 210 в цифровой сигнал, который поступает на модуль 212 кодирования речи. Модуль 212 кодирования речи способен осуществлять многоуровневое (масштабированное) кодирование входного сигнала, где, по меньшей мере, один такой уровень предусматривает кодирование остатка (сигнала ошибки) в спектре МДКП. Модуль 212 кодирования речи может осуществлять кодирование согласно описанию, приведенному со ссылками на фиг.4, 5, 6, 7, 8, 9 и 10. Выходные сигналы модуля 212 кодирования речи можно передавать на модуль 214 кодирования тракта передачи, где осуществляется канальное декодирование, и результирующие выходные сигналы поступают на схему модуляции 216 и модулируются для передачи через Ц/А преобразователь 218 и РЧ усилитель 220 на антенну 222 для передачи кодированного аудиосигнала 224.
На фиг.3 показана блок-схема, демонстрирующая приемное устройство 302, которое может быть сконфигурировано, чтобы осуществлять эффективное аудиодекодирование согласно одному примеру. Кодированный аудиосигнал 304 принимается антенной 306 и усиливается РЧ усилителем 308 и передается через А/Ц преобразователь 310 на схему демодуляции 312, после чего демодулированные сигналы поступают на модуль декодирования тракта передачи 314. Выходной сигнал модуля декодирования тракта передачи 314 поступает на модуль 316 декодирования речи, способный осуществлять многоуровневое (масштабированное) декодирование входного сигнала, где, по меньшей мере, один такой уровень предусматривает декодирование остатка (сигнала ошибки) в спектре ОМДКП. Модуль декодирования речи 316 может осуществлять декодирование сигнала согласно описанию, приведенному со ссылками на фиг.11, 12 и 13. Выходные сигналы модуля 316 декодирования речи поступают на Ц/А преобразователь 318. Аналоговый речевой сигнал от Ц/А преобразователя 318 поступает через усилитель 320 на громкоговоритель 322 для обеспечения реконструированного выходного аудиосигнала 324.
Архитектура масштабируемого аудиокодека
Кодер 102 (фиг.1), декодер 108 (фиг.1), модуль 212 кодирования речи/аудио (фиг.2) и/или модуль 316 декодирования речи/аудио (фиг.3) можно реализовать в виде масштабируемого аудиокодека. Такой масштабируемый аудиокодек можно реализовать для обеспечения высокопроизводительного кодирования широкополосного речевого сигнала для каналов связи, подверженных ошибкам, с высоким качеством доставляемых кодированных узкополосных речевых сигналов или широкополосных аудио/музыкальных сигналов. Один подход к масштабируемому аудиокодеку состоит в обеспечении итерационных уровней кодирования, где сигнал ошибки (остаток) из одного уровня кодируется на следующем уровне для дополнительного улучшения аудиосигнала, закодированного на предыдущих уровнях. Например, линейное прогнозирование с возбуждением кодовой книгой (CELP) основано на концепции линейно-прогностического кодирования, согласно которой кодовая книга разных сигналов возбуждения поддерживается на кодере и декодере. Кодер находит наиболее подходящий сигнал возбуждения и передает его соответствующий индекс (из фиксированной, алгебраической и/или адаптивной кодовой книги) на декодер, который затем использует его для воспроизведения сигнала (на основании кодовой книги). Кодер осуществляет анализ через синтез путем кодирования с последующим декодированием аудиосигнала для создания реконструированного или синтезированного аудиосигнала. Затем кодер находит параметры, минимизирующие энергию сигнала ошибки, т.е. разности между исходным аудиосигналом и реконструированным или синтезированным аудиосигналом. Выходную битовую скорость можно регулировать с использованием того или иного количества уровней кодирования для согласования с требованиями канала и желаемым качеством аудиосигнала. Такой масштабируемый аудиокодек может включать в себя несколько уровней, где битовые потоки более высокого уровня можно отбрасывать, не оказывая влияния на декодирование более низких уровней.
Примеры существующих масштабируемых кодеков, которые используют такую многоуровневую архитектуру, включают в себя ITU-T Recommendation G.729.1 и развивающийся стандарт ITU-T, кодовое название G.EV-VBR. Например, кодек Embedded Variable Bit Rate (EV-VBR) можно реализовать в виде множественных уровней от L1 (основной уровень) до LX (где X - это номер самого высокого уровня расширения). Такой кодек может принимать как широкополосные (WB) сигналы с частотой дискретизации 16 кГц, так и узкополосные (NB) сигналы с частотой дискретизации 8 кГц. Аналогично, выход кодека может быть широкополосным или узкополосным.
В таблице 1 показана иллюстративная структура уровней для кодека (например, кодека EV-VBR), содержащая пять уровней от L1 (основного уровня) до L5 (самого высокого уровня расширения). Два нижних уровня (L1 и L2) могут основываться на алгоритме линейного прогнозирования с кодовым возбуждением (CELP). Основной уровень L1 может быть получен из алгоритма переменного многоскоростного широкополосного кодирования речи (VMR-WB) и может содержать несколько режимов кодирования, оптимизированных для разных входных сигналов. Таким образом, основной уровень L1 может классифицировать входные сигналы как лучшую модель аудиосигнала. Ошибка кодирования (остаток) из основного уровня L1 кодируется на уровне улучшение или расширения L2, на основании адаптивной кодовой книги и фиксированной алгебраической кодовой книги. Сигнал ошибки (остаток) из уровня L2 может дополнительно кодироваться на более высоких уровнях (L3-L5) в измерении преобразования с использованием модифицированного дискретного косинусного преобразования (МДКП). Дополнительную информацию можно передавать на уровне L3 для улучшения маскировки удаления кадров (FEC).
ТАБЛИЦА 1
Уровень
Битовая скорость кбит/с
Метод
Частота дискретизации кГц
L1
8
Основной уровень CELP (классификация)
12,8
L2
+4
Алгебраическая кодовая книга уровень (улучшение)
12,8
L3
+4
FEC
МДКП
12,8
16
L4
+8
МДКП
16
L5
+8
МДКП
16
Кодек основного уровня L1 является, по существу, кодеком на основе CELP и может быть совместим с одним из нескольких общеизвестных узкополосных или широкополосных вокодеров, как то Adaptive Multi-Rate (AMR), AMR Wideband (AMR-WB), Variable Multi-Rate Wideband (VMR-WB), кодек Enhanced Variable Rate (EVRC) или кодеки EVR Wideband (EVRC-WB).
Уровень 2 в масштабируемом кодеке может использовать кодовые книги для дополнительной минимизации перцепционно взвешенной ошибки кодирования (остатка) из основного уровня L1. Для улучшения маскировки удаления кадров (FEC) кодека дополнительную информацию можно вычислять и передавать на следующем уровне L3. Независимо от режима кодирования основного уровня дополнительная информация может включать в себя классификацию сигналов.
Предполагается, что для широкополосного выхода взвешенный сигнал ошибки после кодирования на уровне L2 кодируется с использованием преобразовательного кодирования на основе сложения с перекрытием, базирующегося на модифицированном дискретном косинусном преобразовании (МДКП) или аналогичном преобразовании. Таким образом, для кодированных уровней L3, L4, и/или L5 сигнал можно кодировать в спектре МДКП. Следовательно, обеспечивается эффективный способ кодирования сигнала в спектре МДКП.
Пример кодера
HP
HP
12,8
12,8
2
2
HP
2
2
HP
2
2
2
x
n
x
n
x
n
X
k
На фиг.4 показана блок-схема масштабируемого кодера 402 согласно одному примеру. На стадии предварительной обработки до кодирования, входной сигнал 404 подвергается высокочастотной фильтрации 406 для подавления нежелательных низкочастотных компонентов для создания фильтрованного входного сигнала S(n). Например, фильтр высоких частот 406 может иметь частоту среза 25 Гц для широкополосного входного сигнала и 100 Гц для узкополосного входного сигнала. Затем фильтрованный входной сигнал S(n) повторно дискретизируется модулем повторной дискретизации 408 для создания повторно дискретизированного входного сигнала S(n). Например, исходный входной сигнал 404 можно дискретизировать на частоте 16 кГц и повторно дискретизировать до частоты 12,8 кГц, которая может быть внутренней частотой, используемой для кодирования на уровне L1 и/или L2. Затем модуль 410 введения предыскажений применяет фильтр высоких частот первого порядка для усиления более высоких частот (и ослабления низких частот) повторно дискретизированного входного сигнала S(n). Затем результирующий сигнал поступает на модуль кодера/декодера 412, который может осуществлять кодирование на уровне L1 и/или L2 на основании алгоритма на основе линейного прогнозирования с кодовым возбуждением (CELP), где речевой сигнал моделируется сигналом возбуждения, проходящим через фильтр синтеза на основе линейного прогнозирования (LP), представляющий спектральную огибающую. Энергию сигнала можно вычислять для каждого перцепционного критического диапазона и использовать как часть кодирования на уровнях L1 и L2. Дополнительно, кодированный модуль кодера/декодера 412 также может синтезировать (реконструировать) версию входного сигнала. Таким образом, после того как модуль 412 кодера/декодера кодирует входной сигнал, он декодирует его, и модуль 416 удаления предыскажений и модуль повторной дискретизации 418 воссоздают версию ŝ(n) входного сигнала 404. Остаточный сигнал () генерируется путем вычисления разности 420 между исходным сигналом S(n) и воссозданным сигналом ŝ(n) (т.е. ()=S(n)-ŝ(n)). Затем остаточный сигнал () перцепционно взвешивается модулем взвешивания 424 и преобразуется модулем 428 преобразования МДКП в спектр или измерение МДКП для генерации остаточного сигнала (). При осуществлении такого преобразования сигнал можно делить на блоки выборок, именуемые кадрами, и каждый кадр можно обрабатывать путем линейного ортогонального преобразования, например дискретного преобразования Фурье или дискретного косинусного преобразования, для получения коэффициентов преобразования, которые затем можно квантовать.
X
k
X
k
X
k
2
2
2
Затем остаточный сигнал () поступает на спектральный кодер 432, который кодирует остаточный сигнал () для создания кодированных параметров для уровней L3, L4 и/или L5. В одном примере, спектральный кодер 432 генерирует индекс, представляющий ненулевые спектральные линии (импульсы) в остаточном сигнале ().
Параметры из уровней L1-L5 можно передавать на передатчик и/или запоминающее устройство 436 в качестве выходного битового потока, который затем можно использовать для реконструкции или синтеза версии исходного входного сигнала 404 на декодере.
Уровень 1 - Кодирование на основе классификации:
основной уровень L1 можно реализовать на модуле кодера/декодера 412 и можно использовать классификацию сигналов и четыре разных режима кодирования для повышения производительности кодирования. В одном примере, эти четыре разных класса сигналов, которые можно рассматривать для разных режимов кодирования каждого кадра, могут включать в себя: (1) невокализованное кодирование (UC) для невокализованных речевых кадров, (2) вокализованное кодирование (VC), оптимизированное для квазипериодических сегментов с плавной эволюцией основного тона, (3) переходный режим (TC) для кадров, следующих после вокализованных вступлений, предназначенный для минимизации распространения ошибки в случае удаления кадров, и (4) кодирование общего вида (GC) для других кадров. При невокализованном кодировании (UC), адаптивная кодовая книга не используется, и возбуждение выбирается из гауссовой кодовой книги. Квазипериодические сегменты кодируются в режиме вокализованного кодирования (VC). Выбор вокализованного кодирования кондиционируется плавной эволюцией основного тона. Режим вокализованного кодирования может использовать технологию ACELP. При переходном кодировании (TC) кадра, адаптивная кодовая книга в подкадре, содержащем гортанный импульс первого периода основного тона, заменяется фиксированной кодовой книгой.
На основном уровне L1 сигнал можно моделировать с использованием парадигмы на основе CELP, сигналом возбуждения, проходящим через фильтр синтеза на основе линейного прогнозирования (LP), представляющий спектральную огибающую. LP фильтр может квантовать в измерении частотного спектра иммитанса (ISF) с использованием подхода «страховочная сетка» и многостадийного векторного квантования (MSVQ) для общего и вокализованного режимов кодирования. Анализ основного тона в открытом цикле (OL) осуществляется согласно алгоритму отслеживания основного тона, чтобы гарантировать гладкий контур основного тона. Однако, для повышения надежности оценки основного тона, можно сравнивать два конкурирующих контура эволюции основного тона и выбирать маршрут, который дает более гладкий контур.
Два набора параметров LPC оцениваются и кодируются для каждого кадра в большинстве режимов с использованием периода анализа длительностью 20 мс, один для конца кадра и один для середины кадра. ISF середины кадра кодируются интерполяционным расщеплением VQ, причем коэффициент линейной интерполяции находится для каждой подгруппы ISF, что позволяет минимизировать разность между оценочными и интерполированными квантованными ISF. В одном примере, для квантования ISF-представления коэффициентов LP, два набора кодовых книг (соответствующие слабому и сильному прогнозу) можно искать параллельно, чтобы найти прогнозатор и элемент кодовой книги, минимизирующие искажение оценочной спектральной огибающей. Главной причиной такого подхода «страховочная сетка» является сокращение распространения ошибки, когда удаленные кадры совпадают с сегментами, где спектральная огибающая быстро эволюционирует. Для обеспечения дополнительной устойчивости ошибки слабый прогнозатор иногда задается равным нулю, что дает квантование без прогнозирования. Маршрут без прогнозирования всегда можно выбирать, когда его искажение квантования достаточно близко к искажению маршрута с прогнозированием или когда его искажение квантования достаточно мало для обеспечения прозрачного кодирования. Кроме того, при поиске кодовой книги с сильным прогнозированием выбирается вектор кода, близкий к оптимальному, если это не влияет на производительность чистого канала, но, предположительно, снижает распространение ошибки при наличии удаленных кадров. ISF кадров UC и TC дополнительно систематически квантуются без прогнозирования. Для кадров UC имеется достаточно битов для обеспечения очень хорошего спектрального квантования даже без прогнозирования. Кадры TC считаются слишком чувствительными к удалению кадров для прогнозирования, чтобы их использовать, несмотря на потенциальное снижение производительности чистого канала.
Для узкополосных (NB) сигналов оценка основного тона осуществляется с использованием возбуждения L2, сгенерированного с помощью неквантованных оптимальных коэффициентов усиления. Этот подход устраняет эффекты квантования коэффициента усиления и улучшает оценку отставания основного тона между уровнями. Для широкополосных (WB) сигналов используется стандартная оценка основного тона (возбуждение L1 с квантованными коэффициентами усиления).
Уровень 2 - Кодирование улучшения:
На уровне L2 модуль кодера/декодера 412 может кодировать ошибку квантования из основного уровня L1, опять же, с использованием алгебраических кодовых книг. На уровне L2, кодер дополнительно изменяет адаптивную кодовую книгу, чтобы она включала в себя не только вклад L1, но и вклад L2. Адаптивное отставание основного тона одно и то же на L1 и L2 для поддержания синхронизации по времени между уровнями. Затем коэффициенты усиления адаптивной и алгебраической кодовых книг, соответствующих L1 и L2, повторно оптимизируются для минимизации перцепционно взвешенной ошибки кодирования. Обновленные коэффициенты усиления L1 и коэффициенты усиления L2 подвергаются векторному квантованию с прогнозированием в отношении коэффициентов усиления, уже квантованных на L1. Уровни CELP (L1 и L2) могут действовать на внутренней частоте дискретизации (например, 12,8 кГц). Таким образом, выходной сигнал уровня L2 включает в себя синтезированный сигнал, закодированный в частотном диапазоне 0-6,4 кГц. Для широкополосного выхода, расширение полосы AMR-WB можно использовать для генерации полосы пропуска 6,4-7 кГц.
Уровень 3 - Маскировка удаления кадра:
для повышения производительности в условиях удаления кадров (FEC) модуль 414 маскировки ошибочных кадров может получать дополнительную информацию от модуля кодера/декодера 412 и использовать ее для генерации параметров уровня L3. Дополнительная информация может включать в себя информацию класса для всех режимов кодирования. Информация спектральной огибающей предыдущего кадра также может передаваться для переходного кодирования основного уровня. Для других режимов кодирования основного уровня также может передаваться фазовая информация и энергия синхронного основного тона синтезированного сигнала.
Уровни 3, 4, 5 - Кодирование с преобразованием:
X
k
2
остаточный сигнал (), полученный в результате второго этапа кодирования CELP на уровне L2, можно квантовать на уровнях L3, L4 и L5 с использованием МДКП или аналогичного преобразования со структурой сложения с перекрытием. Таким образом, остаточный или “ошибочный” сигнал из предыдущего уровня используется на следующем уровне для генерации его параметров (которые предназначены для эффективного представления такой ошибки для передачи на декодер).
Коэффициенты МДКП можно квантовать с использованием нескольких способов. В ряде случаев, коэффициенты МДКП квантуются с использованием масштабируемого алгебраического векторного квантования. МДКП можно вычислять каждые 20 миллисекунд (мс), и его спектральные коэффициенты квантуются на 8-мерные блоки. Применяется аудиоочиститель (фильтр формообразования шума в измерении МДКП), выведенный из спектра исходного сигнала. Глобальные коэффициенты усиления передаются на уровне L3. Кроме того, несколько битов используется для высокочастотной компенсации. Остальные биты уровня L3 используются для квантования коэффициентов МДКП. Биты уровней L4 и L5 используются так, чтобы производительность была максимальной независимо на уровнях L4 и L5.
В некоторых реализациях, коэффициенты МДКП можно квантовать по-разному для аудиоматериалов с преобладанием речи и музыки. Различие между речевыми и музыкальными материалами основано на оценивании эффективности модели CELP путем сравнения компонентов взвешенного синтеза МДКП L2 с соответствующими компонентами входного сигнала. Для материала с преобладанием речи масштабируемое алгебраическое векторное квантование (AVQ) используется на L3 и L4 с квантованием спектральных коэффициентов в 8-мерные блоки. Глобальный коэффициент усиления передается в L3, и несколько битов используется для высокочастотной компенсации. Остальные биты L3 и L4 используются для квантования коэффициентов МДКП. Квантование осуществляется методом многоскоростного решеточного VQ (MRLVQ). Новый алгоритм на основе многоуровневой перестановки был использован для упрощения процедуры индексирования и уменьшения ее требований к памяти. Вычисление ранга производится в несколько этапов. Во-первых, входной вектор разлагается на вектор знака и вектор абсолютного значения. Во-вторых, вектор абсолютного значения дополнительно разлагается на несколько уровней. Вектор верхнего уровня является исходным вектором абсолютного значения. Вектор каждого более низкого уровня получается удалением наиболее часто встречающегося элемента из вектора более высокого уровня. Параметр позиции вектора каждого более низкого уровня, связанного с его вектором более высокого уровня, индексируется на основании функции перестановки и объединения. Наконец, индекс всех более низких уровней и знака объединяются в выходной индекс.
Для материала с преобладанием музыки можно использовать векторное квантование форма-коэффициент усиления с выбором диапазона (VQ форма-коэффициент усиления) на уровне L3, и к уровню L4 можно применять модуль векторного квантования позиции дополнительного импульса. На уровне L3 выбор диапазона можно осуществлять, первоначально вычисляя энергию коэффициентов МДКП. Затем коэффициенты МДКП в выбранном диапазоне квантуются с использованием многоимпульсной кодовой книги. Модуль векторного квантования используется для квантования коэффициентов усиления диапазона для коэффициентов МДКП (спектральных линий) для диапазона. Для уровня L4 всю полосу можно кодировать с использованием метода позиционирования импульса. В случае, когда речевая модель создает нежелательный шум вследствие несовпадения модели источника звука, некоторые выходные частоты уровня L2 можно ослаблять, чтобы коэффициенты МДКП можно было кодировать более агрессивно. Это делается в режиме замкнутого цикла путем минимизации квадратичной ошибки между МДКП входного сигнала и МДКП кодированного аудиосигнала через уровень L4. Величина применяемого ослабления может составлять до 6 дБ, поэтому ее можно передавать с использованием 2 или менее битов. Уровень L5 может использовать метод кодирования позиции дополнительного импульса.
Кодирование спектра МДКП
Поскольку уровни L3, L4 и L5 осуществляют кодирование в спектре МДКП (например, коэффициентов МДКП, представляющих остаток для предыдущего уровня), желательно, чтобы такое кодирование спектра МДКП было эффективно. Следовательно, обеспечивается эффективный способ кодирования спектра МДКП.
На фиг.5 показана блок-схема, демонстрирующая иллюстративный процесс кодирования спектра МДКП, который можно реализовать на более высоких уровнях кодера. Кодер 502 получает входной спектр МДКП остаточного сигнала 504 из предыдущих уровней. Такой остаточный сигнал 504 может представлять собой разность между исходным сигналом и реконструированной версией исходного сигнала (например, реконструированной из кодированной версии исходного сигнала). Коэффициенты МДКП остаточного сигнала можно квантовать для генерации спектральных линий для данного кадра аудиосигнала.
В одном примере, спектр МДКП 504 может быть либо полным спектром МДКП сигнала ошибки после применения основных уровней CELP (уровней 1 и 2), либо остаточным спектром МДКП после предыдущих применений этой процедуры. Таким образом, на уровне 3 полный спектр МДКП остаточного сигнала из уровней 1 и 2 принимается и частично кодируется. Затем на уровне 4 кодируется остаточный спектр МДКП сигнала из уровня 3, и т.д.
Кодер 502 может включать в себя модуль 508 выбора диапазона, который делит или расщепляет спектр МДКП 504 на множество диапазонов, где каждый диапазон включает в себя множество спектральных линий или коэффициентов преобразования. Затем модуль 510 оценивания энергии диапазона может обеспечивать оценку энергии в одном или нескольких диапазонах. Модуль 512 перцепционного ранжирования диапазонов может перцепционно ранжировать каждый диапазон. Затем модуль 514 перцепционного выбора диапазона может принимать решение на кодирование некоторых диапазонов, одновременно придавая другим диапазонам полностью нулевые значения. Например, диапазоны, демонстрирующие энергию сигнала выше порога, можно кодировать, тогда как диапазоны, имеющие энергию сигнала ниже такого порога, можно принудительно обнулять. Например, такой порог можно устанавливать согласно перцепционному маскированию и другим явлениям человеческого восприятия звука. Иначе непонятно, для чего это нужно. Затем модуль 516 выделения индексов кодовой книги и скоростей может определять выделение индексов кодовой книги и скоростей для выбранных диапазонов. Это значит, что для каждого диапазона кодовая книга, которая наилучшим образом представляет диапазон, определяется и идентифицируется индексом. “Скорость” для кодовой книги указывает величину сжатия, достигаемого кодовой книгой. Затем модуль 518 векторного квантования квантует множество спектральных линий (коэффициентов преобразования) для каждого диапазона в векторно-квантованное (VQ) значение (величину или коэффициент усиления), характеризующее квантованные спектральные линии (коэффициенты преобразования).
При векторном квантовании несколько выборок (спектральных линий или коэффициентов преобразования) объединяется в векторы, и каждый вектор аппроксимируется (квантуется) одним элементом кодовой книги. Элемент кодовой книги, выбранный для квантования входного вектора (представляющего спектральные линии или коэффициенты преобразования в диапазоне), обычно является ближайшим соседом в пространстве кодовой книги согласно критерию расстояния. Например, для представления множества векторов кодовой книги можно использовать один или несколько центроидов. Затем входной(ые) вектор(ы), представляющий(е) диапазон, сравнивае(ю)тся с центроидом(ами) кодовой книги для определения, какая кодовая книга (и/или вектор кодовой книги) обеспечивает минимальную меру расстояния (например, евклидово расстояние). Для представления диапазона используется кодовая книга, имеющая наименьшее расстояние. Добавление дополнительных элементов в кодовую книгу увеличивает битовую скорость и сложность, но снижает среднее искажение. Элементы кодовой книги часто называют векторами кода.
Следовательно, кодер 502 может кодировать спектр МДКП 504 в один или несколько индексов кодовой книги (nQ) 526, векторно-квантованных значений (VQ) 528 и/или другую информацию кадра аудиосигнала и/или диапазона, которую можно использовать для реконструкции версии спектра МДКП остаточного сигнала 504. На декодере принятые индекс или индексы квантования и векторно-квантованные значения используются для реконструкции квантованных спектральных линий (коэффициентов преобразования) для каждого диапазона в кадре. Затем обратное преобразование применяется к этим квантованным спектральным линиям (коэффициентам преобразования) для реконструкции синтезированного кадра.
t
Заметим, что можно получить выходной остаточный сигнал 522 (вычитанием 520 остаточного сигнала Sx из исходного входного остаточного сигнала 504), который можно использовать в качестве входа для следующего уровня кодирования. Такой остаточный сигнал 522 выходного спектра МДКП можно получить, например, реконструируя спектр МДКП из индексов кодовой книги 526 и векторно-квантованных значений 528 и вычитая реконструированный спектр МДКП из входного спектра МДКП 504 для получения остаточного сигнала 522 выходного спектра МДКП.
Согласно одному признаку, реализуется схема векторного квантования, которая является разновидностью схемы вложенного алгебраического векторного квантования, описанного M.Xie и J.-P.Adoul, Embedded Algebraic Vector Quantization (EAVQ) With Application To Wideband Audio Coding, IEEE International Conference on Acoustics, Speech, and Signal Processing (ICASSP), Atlanta, GA, U.S.A, т.1, стр.240-243, 1996 (Xie, 19, 96). В частности, индекс 526 кодовой книги можно эффективно представлять, объединяя индексы двух или нескольких последовательных спектральных диапазонов и используя распределения вероятности для более компактного представления индексов кода.
На фиг.6 показана схема, демонстрирующая, как кадр спектра МДКП аудиосигнала 602 можно разделить на множество n-точечных диапазонов (или подвекторов) для облегчения кодирования спектра МДКП. Например, кадр 602 спектра МДКП аудиосигнала из 320 спектральных линий (коэффициентов преобразования) можно разделить на 40 диапазонов (подвекторов) 604, причем каждый диапазон 604a имеет 8 точек (или спектральных линий). В некоторых практических случаях (например, исходя из того, что входной сигнал имеет более узкий спектр) может быть дополнительно возможно принудительно обнулить последние 4-5 диапазонов, оставляя лишь 35-36 диапазонов для кодирования. В некоторых дополнительных ситуациях (например, при кодировании более высоких уровней) существует возможность пропустить некоторые диапазоны на 10 порядков ниже (низкочастотные), тем самым дополнительно сократив количество диапазонов для кодирования всего лишь до 25-26. В более общем случае каждый уровень может задавать конкретное подмножество диапазонов для кодирования, и эти диапазоны могут перекрываться с ранее закодированными подмножествами. Например, диапазоны B1-B40 уровня 3 могут перекрываться с диапазонами C1-C40 уровня 4. Каждый диапазон 604 можно представить индексом кодовой книги nQx и векторно-квантованным значением VQx.
Схема кодирования с векторным квантованием
n
0
n*4
n=1
В одном примере, кодер может использовать массив кодовых книг Q, для n=0, 2, 3, 4, …, MAX, при соответствующих назначенных скоростях  битов. Предполагается, что Q содержит полностью нулевой вектор, поэтому для его передачи не требуется никаких битов. Кроме того, индекс  не используется, это делается для сокращения количества кодовых книг. Поэтому минимальная скорость, которую можно назначить кодовой книге с ненулевыми векторами, равна 2*4=8 битов. Для указания, какая кодовая книга используется для кодирования каждого диапазона, индексы кодовой книги nQ (значения n) используются совместно с векторно-квантованными (VQ) значениями или индексами для каждого диапазона.
В общем, каждый индекс кодовой книги можно представить компонентом дескриптора, который основан на статистическом анализе распределений возможных индексов кодовой книги, причем индексы кодовой книги, имеющие более высокую вероятность выбора, назначаются отдельным компонентам дескриптора, и индексы кодовой книги, имеющие меньшую вероятность выбора, группируются и назначаются единичному дескриптору.
n
{n}
Как указано выше, ряд возможных индексов кодовой книги {n} имеет разрыв между индексом 0 и индексом 2 кодовой книги и продолжается до номера MAX, который, практически, может достигать 36. Кроме того, статистический анализ распределений возможных значений  указывает, что свыше 90% всех случаев сосредоточено в малом наборе индексов кодовой книги n={0,2,3}. Поэтому, чтобы кодировать значения , может быть выгодно отобразить их в более компактный набор дескрипторов, что показано в таблице 1a.
ТАБЛИЦА 1a
Индексы кодовой книги
Значение дескриптора
0
0
2
1
3
2
4…MAX
3
n>=4
Заметим, что это отображение не является взаимно-однозначным, поскольку все значения  отображаются в единичное значение дескриптора 3. Это значение дескриптора 3 служит цели “управляющего кода”: он указывает, что истинное значение индекса кодовой книги n нужно будет декодировать с использованием кода расширения, передаваемого после дескриптора. Примером возможного кода расширения является классический унарный код, показанный в таблице 2, который можно использовать для передачи индексов кодовой книги >=4.
ТАБЛИЦА 2
Код расширения
Индекс кодовой книги
0
4
10
5
110
6
1110
7
…
1…10последовательность k единиц
4+k
…
Дополнительно, дескрипторы можно кодировать парами, где каждый код парного дескриптора может иметь один из трех (3) возможных кодов переменной длины (VLC), которые можно назначать, как показано в таблице 3.
ТАБЛИЦА 3
Дескрипторы
Кодовая книга 0
Кодовая книга 1
Кодовая книга 2
(0,0)
0110
0
00
(0,1)
1110
011
10
(0,2)
01011
011111
0011
(0,3)
011111
0011111111
001111111
(1,0)
0001
01
001
(1,1)
00
0111
101
(1,2)
1001
01111111
1011
(1,3)
11011
011111111111
00111111
(2,0)
00111
01111
0111
(2,1)
010
0111111
01111
(2,2)
0101
1011111111
011111
(2,3)
111111
01111111111111
101111111
(3,0)
10111
0111111111
10111111
(3,1)
1101
01111111111
011111111
(3,2)
0011
0111111111111
0111111111
(3,3)
01111
11111111111111
1111111111
Эти коды парного дескриптора могут основываться на квантованном наборе типичных распределений вероятности значений дескриптора в каждой паре дескрипторов и могут быть построены с использованием, например, алгоритма или кода Хаффмана.
Выбор кодовых книг VLC для использования для каждой пары дескрипторов можно осуществлять, частично, на основании позиции каждого диапазона и номера уровня кодера/декодера. Пример такой возможной конфигурации показан в таблице 4, где кодовые книги VLC (например, кодовые книги 0, 1 или 2) назначаются спектральным диапазонам на основании позиций спектрального диапазона (например, 0/1, 2/3, 4/5, 6/7, …) в кадре аудиосигнала и номера уровня кодера/декодера.
ТАБЛИЦА 4
Позиция парыУровни
0
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
L3, L4
0
0
0
0
1
2
2
1
1
1
1
1
1
1
1
2
2
2
L5
2
2
2
2
2
2
2
1
1
1
2
2
2
Пример, показанный в таблице 4, указывает, что, в ряде случаев, распределение индексов кодовой книги и/или парных дескрипторов для индексов кодовой книги может изменяться в зависимости от того, какие спектральные диапазоны обрабатываются в кадре аудиосигнала, а также от того, на каком уровне кодирования (например, уровне 3, 4 или 5) осуществляется кодирование. Следовательно, используемая кодовая книга VLC может зависеть от относительной позиции пары дескрипторов (соответствующей смежным диапазонам) в кадре аудиосигнала и уровня кодирования, которому принадлежат соответствующие диапазоны.
На фиг.7 показана логическая блок-схема, демонстрирующая один пример алгоритма кодирования, осуществляющего кодирование индексов кодовой книги, подвергнутых вложенному алгебраическому векторному квантованию (EAVQ) в измерении МДКП. На этапе 702 получают множество спектральных диапазонов, представляющих кадр спектра МДКП аудиосигнала. Каждый спектральный диапазон может включать в себя множество спектральных линий или коэффициентов преобразования. На этапе 704 последовательные или смежные пары спектральных диапазонов сканируют для определения их характеристик. На этапе 706, на основании характеристики каждого спектрального диапазона, соответствующий индекс кодовой книги идентифицируют для каждого из спектральных диапазонов. Индекс кодовой книги может идентифицировать кодовую книгу, которая наилучшим образом представляет характеристики такого спектрального диапазона. Таким образом, для каждого диапазона, извлекают индекс кодовой книги, который представляет спектральные линии в диапазоне. Дополнительно, на этапе 708 получают векторно-квантованное значение или индекс для каждого спектрального диапазона. Такое векторно-квантованное значение может обеспечивать, по меньшей мере, отчасти, индекс в выбранный элемент в кодовой книге (например, точки реконструкции в кодовой книге). В одном примере, на этапе 710 каждый из индексов кодовой книги затем делится или расщепляется на компонент дескриптора и компонент кода расширения. Например, для первого индекса кодовой книги из таблицы 1 выбирается первый дескриптор. Аналогично, для второго индекса кодовой книги из таблицы 1 также выбирается второй дескриптор. В общем случае, отображение между индексом кодовой книги и дескриптором может основываться на статистическом анализе распределений возможных индексов кодовой книги, где в большинстве диапазонов в сигнале индексы сосредоточены в небольшом количестве (подмножестве) кодовых книг. Затем, на этапе 712 компоненты дескрипторов смежных (например, последовательных) индексов кодовой книги кодируется как пары, например, на основании таблицы 3, кодами парного дескриптора. Эти коды парного дескриптора могут основываться на квантованном наборе типичных распределений вероятности значений дескриптора в каждой паре дескрипторов. Выбор кодовых книг VLC для использования для каждой пары дескрипторов можно осуществлять, частично, на основании позиции каждого диапазона и номера уровня, как показано на фиг.4. Дополнительно, на этапе 714 получают компонент кода расширения для каждого индекса кодовой книги, например, на основании таблицы 2. Затем, на этапе 716 можно передавать или сохранять код парного дескриптора, компонент кода расширения для каждого индекса кодовой книги и векторно-квантованное значение для каждого спектрального диапазона.
Применяя описанную здесь схему кодирования индексов кодовой книги, можно добиться экономии в битовой скорости примерно 25-30% по сравнению с традиционным способом, используемым, например, в кодеке Embedded Variable (EV)-Variable Bitrate (VBR) на основе алгоритма сжатия аудиосигнала G.729.
Иллюстративный кодер
На фиг.8 показана блок-схема, демонстрирующая кодер для масштабируемого речевого и аудиокодека. Кодер 802 может включать в себя генератор диапазона, который принимает кадр 801 спектра МДКП аудиосигнала и делит его на множество диапазонов, где каждый диапазон может иметь множество спектральных линий или коэффициентов преобразования. Затем модуль 808 выбора кодовой книги может выбирать кодовую книгу из одной из множества кодовых книг 804 для представления каждого диапазона.
В необязательном порядке, идентификатор 809 индекса кодовой книги (CB) может получать индекс кодовой книги, представляющий выбранную кодовую книгу для конкретного диапазона. Затем модуль 812 выбора дескриптора может использовать таблицу 813 предустановленного отображения кодовой книги в дескриптор для представления каждого индекса кодовой книги в качестве дескриптора. Отображение индексов кодовой книги в дескрипторы может основываться на статистическом анализе распределений возможных индексов кодовой книги, где, в большинстве диапазонов в кадре аудиосигнала, индексы сосредоточены в небольшом количестве (подмножестве) кодовых книг.
Затем кодер 814 индексов кодовой книги может кодировать индексы кодовой книги для выбранных кодовых книг для создания кодированных индексов 818 кодовой книги. Очевидно, что такие кодированные индексы кодовой книги кодируются на уровне преобразования модуля кодирования речи/аудио (например, модуля 212 на фиг.2), а не на модуле кодирования тракта передачи (например, модуле 214 фиг.2). Например, пару дескрипторов (для пары смежных диапазонов) можно кодировать как пару посредством кодера парного дескриптора (например, кодера 814 индексов кодовой книги), который может использовать предустановленные связи между дескрипторными парами и кодами переменной длины для получения кода парного дескриптора (например, кодированных индексов 818 кодовой книги). Предустановленная связь между дескрипторными парами и кодами переменной длины может использовать более короткие коды для дескрипторных пар более высокой вероятности и более длинные коды для дескрипторных пар более низкой вероятности. В ряде случаев, может быть выгодным отображать множество кодовых книг (VLC) в единичную дескрипторную пару. Например, можно найти, что распределение вероятности дескрипторной пары изменяется в зависимости от уровня кодера/декодера и/или позиции соответствующих спектральных диапазонов в кадре. Следовательно, такие предустановленные связи можно представлять в виде множества кодовых книг VLC 816, в котором конкретная кодовая книга выбирается на основании позиции кодируемой/декодируемой пары спектральных диапазонов (в кадре аудиосигнала) и уровня кодирования/декодирования. Код парного дескриптора может представлять индексы кодовой книги для двух (или более) последовательных диапазонов в меньшем числе битов, чем объединенные индексы кодовой книги или отдельные дескрипторы для диапазонов. Дополнительно, модуль 810 выбора кода расширения может генерировать коды расширения 820 для представления индексов, которые могут группироваться согласно коду дескриптора. Модуль 811 векторного квантования может генерировать векторно-квантованное значение или индекс для каждого спектрального диапазона. Затем кодер 815 векторно-квантованного индекса может кодировать один или несколько векторно-квантованных значений или индексов для создания кодированных векторно-квантованных значений/индексов 822. Кодирование векторно-квантованных индексов можно осуществлять таким образом, чтобы уменьшать количество битов, используемых для представления векторно-квантованных индексов.
Кодированные индексы 818 кодовой книги (например, коды парного дескриптора), коды расширения 820, и/или кодированные векторно-квантованные значения/индексы 822 можно передавать и/или сохранять как кодированные представления кадра 810 спектра МДКП аудиосигнала.
На фиг.9 показана блок-схема, демонстрирующая способ для получения кода парного дескриптора, который кодирует множество спектральных диапазонов. В одном примере, этот способ может выполняться в масштабируемом речевом и аудиокодеке. На этапе 902 получают остаточный сигнал из уровня кодирования на основе линейного прогнозирования с кодовым возбуждением (CELP), где остаточный сигнал является разностью между исходным аудиосигналом и реконструированной версией исходного аудиосигнала. На этапе 904 остаточный сигнал преобразуется на уровне преобразования типа дискретного косинусного преобразования (ДКП) для получения соответствующего спектра преобразования. Например, уровень преобразования типа ДКП может представлять собой уровень модифицированного дискретного косинусного преобразования (МДКП), и спектр преобразования является спектром МДКП. Затем на этапе 906 спектр преобразования делится на множество спектральных диапазонов, причем каждый спектральный диапазон имеет множество спектральных линий. В ряде случаев, некоторые спектральные диапазоны можно удалять для сокращения количества спектральных диапазонов до кодирования. На этапе 908 выбирают множество разных кодовых книг для кодирования спектральных диапазонов, где с кодовыми книгами связаны индексы кодовой книги. Например, смежные или последовательные пары спектральных диапазонов можно сканировать для определения их характеристик (например, одной или нескольких характеристик спектральных коэффициентов и/или линий в спектральных диапазонах), выбирать кодовую книгу, которая наилучшим образом представляет каждый из спектральных диапазонов, и индекс кодовой книги можно идентифицировать и/или связывать с каждой из смежных пар спектральных диапазонов. В некоторых реализациях компонент дескриптора и/или компонент кода расширения можно получить и использовать для представления каждого индекса кодовой книги. Затем на этапе 910 осуществляется векторное квантование на спектральных линиях в каждом спектральном диапазоне с использованием выбранных кодовых книг для получения векторно-квантованных индексов. Затем на этапе 912 выбранные индексы кодовой книги кодируются. В одном примере, индексы кодовой книги или соответствующие дескрипторы для смежных спектральных диапазонов можно кодировать в код парного дескриптора, который основывается на распределении вероятности квантованных характеристик смежных спектральных диапазонов. Дополнительно, векторно-квантованные индексы также кодируются на этапе 914. Кодирование векторно-квантованных индексов можно осуществлять с использованием любого алгоритма, который сокращает количество битов, используемых для представления векторно-квантованных индексов. На этапе 916 битовый поток можно формировать с использованием кодированных индексов кодовой книги и кодированных векторно-квантованных индексов для представления спектра преобразования.
Код парного дескриптора может отображаться в один из множества возможных кодов переменной длины (VLC) для разных кодовых книг. Кодовые книги VLC можно назначать каждой паре компонентов дескриптора на основании позиции каждого соответствующего спектрального диапазона в кадре аудиосигнала и номера уровня кодера. Коды парного дескриптора могут основываться на квантованном наборе типичных распределений вероятности значений дескриптора в каждой паре дескрипторов.
В одном примере, каждый индекс кодовой книги имеет компонент дескриптора, который основывается на статистическом анализе распределений возможных индексов кодовой книги, причем индексы кодовой книги, имеющие более высокую вероятность выбора, назначаются отдельным компонентам дескриптора, и индексы кодовой книги, имеющие меньшую вероятность выбора, группируются и назначаются единичному дескриптору. Единичный компонент дескриптора используется для индексов кодовой книги, превышающих значение k, и компоненты кода расширения используются для индексов кодовой книги, превышающих значение k.
Пример генерации дескрипторов
На фиг.10 показана блок-схема, демонстрирующая пример способа для генерации отображения между кодовыми книгами и дескрипторами на основании распределения вероятности. На этапе 1000 множество спектральных диапазонов дискретизируется для определения характеристик каждого спектрального диапазона. C учетом того, что в силу характера звуков и определений кодовой книги с большей вероятностью используется небольшое подмножество кодовых книг, можно осуществлять статистический анализ сигналов, представляющих интерес, для более эффективного назначения дескрипторов. Поэтому на этапе 1002 каждый дискретизированный спектральный диапазон связывают с одной из множества кодовых книг, где соответствующая кодовая книга представляет, по меньшей мере, одну из характеристик спектрального диапазона. На этапе 1004 статистическая вероятность назначается для каждой кодовой книги на основании множества дискретизированных спектральных диапазонов, которые связаны с каждой из множества кодовых книг. На этапе 1006 отдельный индивидуальный дескриптор также назначается каждой из множества кодовых книг, которая имеет статистическую вероятность, превышающую пороговую вероятность. Затем на этапе 1008 единичный дескриптор назначается другим оставшимся кодовым книгам. На этапе 1010 код расширения связывают с каждой из кодовых книг, назначенных единичному дескриптору. Следовательно, этот способ можно применять для получения достаточно большой выборки спектральных диапазонов, с помощью которой можно построить таблицу (например, таблица 1), которая отображает индексы кодовой книги в меньший набор дескрипторов. Дополнительно, коды расширения могут быть унарными кодами, что показано в таблице 2.
На фиг.11 показана блок-схема, демонстрирующая пример того, как можно генерировать значения дескриптора. Для выборочной последовательности спектральных диапазонов B0 … Bn 1102 кодовая книга 1104 выбирается для представления каждого спектрального диапазона. Таким образом, на основании характеристик спектрального диапазона, выбирается кодовая книга, которая лучше всего представляет спектральный диапазон. В некоторых реализациях каждая кодовая книга может быть указана своим индексом 1106 кодовой книги. Этот процесс можно использовать для генерации статистического распределения спектральных диапазонов по кодовым книгам. В этом примере кодовая книга A (например, кодовая книга со всеми нулями) выбирается для двух (2) спектральных диапазонов, кодовая книга B выбирается для одного (1) спектрального диапазона, кодовая книга C выбирается для трех (3) спектральных диапазонов и т.д. Следовательно, можно идентифицировать наиболее часто выбираемые кодовые книги, и различные/отдельные значения дескриптора “0”, “1”, и “2” назначаются этим часто выбираемым кодовым книгам. Остальным кодовым книгам назначается единичное значение дескриптора “3”. Для диапазонов, представленных этим единичным дескриптором “3”, можно использовать код расширения 1110 для более конкретной идентификации конкретной кодовой книги, идентифицируемой единичным дескриптором (например, как в таблице 2). В этом примере кодовая книга B (индекс 1) игнорируется для сокращения количества значений дескрипторов до четырех. Четыре дескриптора “0”, “2”, “3” и “4” могут отображаться в два бита и представляться ими (например, таблица 1). Поскольку большой процент кодовых книг теперь представляется единичным двухбитовым значением дескриптора “3”, этот сбор статистического распределения позволяет сокращать количество битов, которые иначе использовались бы для представления, например, 36 кодовых книг (т.е. шести битов).
Заметим, что на фиг.10 и 11 показан пример того, как можно кодировать индексы кодовой книги в меньшее количество битов. В различных других реализациях понятие “дескрипторы” можно отменить и/или изменить, достигая того же результата.
Пример генерации кодов парного дескриптора
На фиг.12 показана блок-схема, демонстрирующая пример способа генерации отображения дескрипторных пар в коды парного дескриптора на основании распределения вероятности множества дескрипторов для спектральных диапазонов. После отображения множества спектральных диапазонов в значения дескриптора (как описано выше) распределение вероятности определяется для пар значений дескриптора (например, для последовательных или смежных спектральных диапазонов кадра аудиосигнала). На этапе 1200 получают множество значений дескриптора (например, два), связанных со смежными спектральными диапазонами (например, двумя последовательными диапазонами). На этапе 1202 получают предполагаемое распределение вероятности для разных пар значений дескриптора. Таким образом, на основании вероятности появления каждой пары значений дескриптора (например, 0/0, 0/1, 0/2, 0/3, 1/0, 1/1, 1/2, 1/3, 2/0, 2/1 … 3/3) можно определить распределение наиболее вероятных дескрипторных пар по отношению к наименее вероятным дескрипторным парам (например, для двух смежных или последовательных спектральных диапазонов). Дополнительно, предполагаемое распределение вероятности можно собирать на основании относительной позиции конкретного диапазона в кадре аудиосигнала и конкретного уровня кодирования (например, L3, L4, L5 и т.д.). Затем на этапе 1204 разные коды переменной длины (VLC) назначается каждой паре значений дескриптора на основании их предполагаемого распределения вероятности и их относительной позиции в кадре аудиосигнала и уровня кодера. Например, дескрипторным парам более высокой вероятности (для конкретного уровня кодера и относительной позиции в кадре) можно назначать более короткие коды, чем дескрипторным парам более низкой вероятности. В одном примере для генерации кодов переменной длины можно использовать кодирование по Хаффману, причем дескрипторным парам более высокой вероятности назначаются более короткие коды и дескрипторным парам более низкой вероятности назначаются более длинные коды (например, согласно таблице 3).
На этапе 1206 этот процесс можно повторять для получения распределений вероятности дескриптора для разных уровней. Следовательно, разные коды переменной длины можно использовать для одной и той же дескрипторной пары на разных уровнях кодера/декодера. На этапе 1208 множество кодовых книг можно использовать для идентификации кодов переменной длины, где использование той или иной кодовой книги для шифрования/дешифрования кода переменной длины зависит от относительной позиции каждого кодируемого/декодируемого спектрального диапазона и номера уровня кодера. В примере, показанном в таблице 4, можно использовать разные кодовые книги VLC в зависимости от уровня и позиции кодируемой/декодируемой пары диапазонов.
Этот способ позволяет строить распределения вероятности для дескрипторных пар на разных уровнях кодера/декодера, что позволяет отображать дескрипторные пары в код переменной длины для каждого уровня. Поскольку наиболее распространенным дескрипторным парам (имеющим более высокую вероятность) назначаются более короткие коды, это сокращает количество битов, используемых при кодировании спектральных диапазонов.
Декодирование спектра МДКП
16
16
2
На фиг.13 показана блок-схема, демонстрирующая пример декодера. Для каждого кадра аудиосигнала (например, 20-миллисекундного кадра) декодер 1302 может принимать входной битовый поток от приемника или запоминающего устройства 1304, содержащий информацию одного или нескольких уровней кодированного спектра МДКП. Принятые уровни могут находиться в пределах от уровня 1 до уровня 5, которые могут соответствовать битовым скоростям от 8 кбит/м до 32 кбит/с. Это значит, что работа декодера кондиционируется количеством битов (уровнями), принимаемых в каждом кадре. В этом примере предлагается, что выходной сигнал 1332 является WB и что все уровни правильно приняты на декодере 1302. Основной уровень (Уровень 1) и уровень улучшения ACELP (Уровень 2) сначала декодируются модулем декодера 1306, и осуществляется синтез сигнала. Затем синтезированный сигнал подвергается устранению предыскажений посредством модуля 1308 устранения предыскажений и повторно дискретизируется до 16 кГц модулем 1310 повторной дискретизации для генерации сигнала ŝ(n). Модуль постобработки дополнительно обрабатывает сигнал ŝ(n) для генерации синтезированного сигнала ŝ(n) уровня 1 или уровня 2.
w,2
w,2
2
HP
Затем более высокие уровни (Уровни 3, 4, 5) декодируются модулем 1316 декодирования спектра для получения сигнала спектра МДКП . Сигнал спектра МДКП  подвергается обратному преобразованию модулем 1320 обратного МДКП, и результирующий сигнал  прибавляется к перцепционно взвешенному синтезированному сигналу ŝ(n) уровней 1 и 2. Затем применяется временное формообразование шума с помощью модуля формообразования 1322. Затем взвешенный синтезированный сигнал ŝ(n) предыдущего кадра, перекрывающегося с текущим кадром, прибавляется к синтезированному сигналу. Затем применяется обратное перцепционное взвешивание 1324 для восстановления синтезированного WB сигнала. Наконец, к восстановленному сигналу применяется постфильтр основного тона 1326, после которого следует фильтр высоких частот 1328. Постфильтр 1326 использует дополнительную задержку декодера, вносимую синтезом МДКП на основе сложения с перекрытием (Уровни 3, 4, 5). Он объединяет, оптимальным образом, два сигнала постфильтра основного тона. Один из них представляет собой сигнал ŝ(n) высококачественного постфильтра основного тона для выхода декодера уровня 1 или уровня 2, который генерируется с использованием дополнительной задержки декодера. Другой представляет собой сигнал ŝ(n) постфильтр основного тона с низкой задержкой для синтезированного сигнала более высоких уровней (Уровней 3, 4, 5). Затем фильтрованный синтезированный сигнал ŝ(n) выводится пороговым шумоподавителем 1330.
На фиг.14 показана блок-схема, демонстрирующая декодер, способный эффективно декодировать код парного дескриптора. Декодер 1402 может принимать кодированные индексы 1418 кодовой книги. Например, кодированные индексы 1418 кодовой книги могут представлять собой коды парного дескриптора и коды расширения 1420. Код парного дескриптора может представлять индексы кодовой книги для двух (или более) последовательных диапазонов в меньшем числе битов, чем объединенные индексы кодовой книги или отдельные дескрипторы для диапазонов. Затем декодер 1414 индексов кодовой книги может декодировать кодированные индексы 1418 кодовой книги. Например, декодер 1414 индексов кодовой книги может декодировать коды парного дескриптора с использованием предустановленных связей, представленных множеством кодовых книг VLC 1416, в которой кодовую книгу VLC 1416 можно выбирать на основании позиции декодируемой пары спектральных диапазонов (в кадре аудиосигнала) и уровня декодирования. Предустановленная связь между дескрипторными парами и кодами переменной длины может использовать более короткие коды для дескрипторных пар более высокой вероятности и более длинные коды для дескрипторных пар более низкой вероятности. В одном примере, декодер 1414 индексов кодовой книги может создавать пару дескрипторов, представляющую два смежных спектральных диапазона. Затем дескрипторы для пары смежных диапазонов декодируются идентификатором 1412 дескриптора, который использует таблицу 1413 отображения дескрипторов в индексы кодовой книги, сгенерированную на основании статистического анализа распределений возможных индексов кодовой книги, где в большинстве диапазонов в кадре аудиосигнала индексы сосредоточены в небольшом количестве (подмножестве) кодовых книг. Следовательно, идентификатор 1412 дескриптора может обеспечивать индексы кодовой книги, представляющие соответствующий спектральный диапазон. Затем идентификатор 1409 индекса кодовой книги идентифицирует индексы кодовой книги для каждого диапазона. Дополнительно, идентификатор 1410 кода расширения может использовать принятый код расширения 1420 для дополнительной идентификации индексов кодовой книги, которые могут группироваться в единичный дескриптор. Декодер 1411 векторного квантования может декодировать принятые кодированные векторно-квантованные значения/индексы 1422 для каждого спектрального диапазона. Затем модуль 1408 выбора кодовой книги может выбирать кодовую книгу на основании идентифицированного индекса кодовой книги и кода расширения 1420 для реконструкции каждого спектрального диапазона с использованием векторно-квантованных значений 1422. Затем синтезатор диапазонов 1406 реконструирует кадр 1401 спектра МДКП аудиосигнала на основании реконструированных спектральных диапазонов, где каждый диапазон может иметь множество спектральных линий или коэффициентов преобразования.
Иллюстративный способ декодирования
На фиг.15 показана блок-схема, демонстрирующая способ декодирования спектра преобразования в масштабируемом речевом и аудиокодеке. На этапе 1502 можно принимать или получать битовый поток, имеющий множество кодированных индексов кодовой книги и множество кодированных векторно-квантованных индексов, которые представляют квантованный спектр преобразования остаточного сигнала, где остаточный сигнал является разностью между исходным аудиосигналом и реконструированной версией исходного аудиосигнала из уровня кодирования на основе линейного прогнозирования с кодовым возбуждением (CELP). Уровень преобразования типа ОДКП может представлять собой уровень обратного модифицированного дискретного косинусного преобразования (ОМДКП), и спектр преобразования является спектром ОМДКП. Затем на этапе 1504 можно декодировать множество кодированных индексов кодовой книги для получения декодированных индексов кодовой книги для множества спектральных диапазонов. Аналогично, на этапе 1506 можно декодировать множество кодированных векторно-квантованных индексов для получения декодированных векторно-квантованных индексов для множества спектральных диапазонов.
В одном примере декодирование множества кодированных индексов кодовой книги может включать в себя: (a) получение компонента дескриптора, соответствующего каждому из множества спектральных диапазонов, (b) получение компонента кода расширения, соответствующего каждому из множества спектральных диапазонов, (c) получение компонента индекса кодовой книги, соответствующего каждому из множества спектральных диапазонов, на основании компонента дескриптора и компонента кода расширения; (d) использование индекса кодовой книги для синтеза спектрального диапазона для каждого, соответствующего каждому из множества спектральных диапазонов. Компонент дескриптора можно связывать с индексом кодовой книги, который основан на статистическом анализе распределений возможных индексов кодовой книги, причем индексы кодовой книги, имеющие более высокую вероятность выбора, назначаются отдельным компонентам дескриптора, и индексы кодовой книги, имеющие меньшую вероятность выбора, группируются и назначаются единичному дескриптору. Единичный компонент дескриптора используется для индексов кодовой книги, превышающих значение k, и компоненты кода расширения используются для индексов кодовой книги, превышающих значение k. Множество кодированных индексов кодовой книги можно представлять кодом парного дескриптора, представляющим множество смежных спектральных диапазонов спектра преобразования кадра аудиосигнала. Код парного дескриптора может основываться на распределении вероятности квантованных характеристик смежных спектральных диапазонов. В одном примере код парного дескриптора может отображаться в один из множества возможных кодов переменной длины (VLC) для разных кодовых книг. Кодовые книги VLC можно назначать каждой паре компонентов дескриптора на основании позиции каждого соответствующего спектрального диапазона в кадре аудиосигнала и номера уровня кодера. Коды парного дескриптора могут основываться на квантованном наборе типичных распределений вероятности значений дескриптора в каждой паре дескрипторов.
Затем на этапе 1508 можно синтезировать множество спектральных диапазонов с использованием декодированных индексов кодовой книги и декодированных векторно-квантованных индексов для получения реконструированной версии остаточного сигнала на уровне обратного преобразования типа обратного дискретного косинусного преобразования (ОДКП).
Различные иллюстративные логические блоки, модули, схемы и этапы алгоритма, описанные в связи с раскрытыми здесь вариантами осуществления, можно реализовать в виде электронного оборудования, компьютерного программного обеспечения или их комбинаций. Чтобы отчетливо проиллюстрировать эту взаимозаменяемость оборудования и программного обеспечения, различные иллюстративные компоненты, блоки, модули, схемы и этапы описаны выше, в основном, применительно к их функциональным возможностям. Реализуются ли такие функциональные возможности в виде оборудования или программного обеспечения, зависит от конкретного применения и конструкционных ограничений, налагаемых на систему в целом. Заметим, что конфигурации можно описывать как процесс, представленный в виде схемы последовательности операций, логической блок-схемы, структурной схемы или блок-схемы. Хотя схема последовательности операций может описывать операции в виде последовательного процесса, многие операции могут осуществляться параллельно или одновременно. Кроме того, порядок операций может быть изменен. Процесс заканчивается, когда его операции завершены. Процесс может соответствовать методу, функции, процедуре, подпроцедуре, подпрограмме и т.д. Когда процесс соответствует функции, его окончание соответствует возврату функции к вызывающей функции или главной функции.
В случае аппаратной реализации различные примеры могут использовать процессор общего назначения, цифровой сигнальный процессор (ЦСП), специализированную интегральную схему (ASIC), программируемую пользователем вентильную матрицу (FPGA) или другое программируемое логическое устройство, дискретную вентильную или транзисторную логику, дискретные аппаратные компоненты или любую их комбинацию, предназначенные для осуществления описанных здесь функций. Процессор общего назначения может представлять собой микропроцессор, но, альтернативно, процессор может представлять собой любой традиционный процессор, контроллер, микроконтроллер или конечный автомат. Процессор также может быть реализован как комбинация вычислительных устройств, например комбинация ЦСП и микропроцессора, множество микропроцессоров, один или несколько микропроцессоров в сочетании с ядром ЦСП или любая другая подобная конфигурация.
В случае программной реализации различные примеры могут использовать программно-аппаратное обеспечение, промежуточное программное обеспечение или микрокод. Программный код или сегменты кода для осуществления необходимых задач может/могут храниться на компьютерно-считываемом носителе, например, носителе информации или в другом(их) хранилище(ах) данных. Процессор может осуществлять необходимые задачи. Сегмент кода может представлять процедуру, функцию, подпрограмму, программу, процедуру, подпроцедуру, модуль, пакет программного обеспечения, класс или любую комбинацию инструкций, структур данных или операторов программы. Сегмент кода может быть подключен к другому сегменту кода или аппаратной схеме путем передачи и/или приема информации, данных, аргументов, параметров или содержимого памяти. Информацию, аргументы, параметры, данные и т.д. можно передавать, пересылать или отправлять с использованием любого подходящего средства, включая совместное использование памяти, передачу сообщений, передачу маркеров, сетевую передачу и т.д.
Используемые в этой заявке термины “компонент”, “модуль”, “система”, и т.п. относятся к компьютерному объекту, будь то оборудование, программно-аппаратное обеспечение, комбинация аппаратного и программного обеспечения, программное обеспечение или выполняющееся программное обеспечение. Например, компонентом может быть, но без ограничения, процесс, выполняющийся на процессоре, процессор, объект, выполнимый модуль, поток выполнения, программа и/или компьютер. В порядке иллюстрации, компонентом может быть как приложение, выполняющееся на вычислительном устройстве, так и это вычислительное устройство. Один или несколько компонентов могут входить в состав процесса и/или потока выполнения, и компонент может располагаться на одном компьютере и/или распределяться между двумя или более компьютерами. Кроме того, эти компоненты могут выполняться с различных компьютерно-считываемых носителей, на которых хранятся различные структуры данных. Компоненты могут осуществлять связь посредством локальных и/или удаленных процессов, например, согласно сигналу, имеющему один или несколько пакетов данных (например, данных от одного компонента, взаимодействующего с другим компонентом в локальной системе, распределенной системе и/или по сети, например, интернету, с другими системами посредством сигнала).
В одном или нескольких приведенных здесь примерах, описанные функции можно реализовать в оборудовании, программном обеспечении, программно-аппаратном обеспечении или в любой их комбинации. При реализации в программном обеспечении, функции могут храниться или передаваться в виде одной или нескольких инструкций или кода на компьютерно-считываемом носителе. Компьютерно-считываемые носители включают в себя компьютерные носители информации и среды передачи данных, в том числе любую среду, которая позволяет переносить компьютерную программу из одного места в другое. Носители информации могут представлять собой любые физические носители, к которым компьютер может осуществлять доступ. В порядке примера, но не ограничения, такие компьютерно-считываемые носители могут содержать ОЗУ, ПЗУ, ЭСППЗУ, CD-ROM или другое запоминающее устройство на основе оптического диска, запоминающее устройство на основе магнитного диска или другие магнитные запоминающие устройства, или любой другой носитель, который можно использовать для переноса или хранения нужного средства программного кода в виде инструкций или структур данных и к которому можно осуществлять доступ посредством компьютера. Кроме того, любое соединение может именовать компьютерно-считываемым носителем. Например, при передаче программного обеспечения с веб-сайта, сервера или другого удаленного источника с использованием коаксиального кабеля, волоконно-оптического кабеля, витой пары, цифровой абонентской линии (DSL), или беспроводных технологий, например, инфракрасной, радио- и СВЧ-связи, коаксиальный кабель, волоконно-оптический кабель, витая пара, DSL, или беспроводные технологии, например, инфракрасная, радио- и СВЧ-связь, входят в определение носителя. Используемый здесь термин «диск», включает в себя компакт-диск (CD), лазерный диск, оптический диск, цифровой универсальный диск (DVD), флоппи-диск и blu-ray диск, причем диски обычно воспроизводят данные посредством магнитных технологий, а диски воспроизводят данные посредством оптических технологий с применением лазеров. Сочетания вышеприведенных примеров также подлежат включению в понятие компьютерно-считываемых носителей. Программное обеспечение может содержать единичную инструкцию, или множественные инструкции, и может быть распределено по нескольким разным сегментам кода, по разным программам и по множественным носителям данных. Иллюстративный носитель данных может быть подключен к процессору таким образом, чтобы процессор мог считывать информацию с носителя данных и записывать информацию на него. Альтернативно, носитель данных может быть встроен в процессор.
Раскрытые здесь способы содержат один или несколько этапов или действий для достижения описанного способа. Этапы и/или действия способа можно менять местами, не выходя за рамки объема формулы изобретения. Другими словами, если конкретный порядок этапов или действий не требуется для правильной работы описанного варианта осуществления, порядок и/или использование конкретных этапов и/или действий можно изменять, не выходя за рамки объема формулы изобретения.
Один или несколько из компонентов, этапов и/или функций, проиллюстрированных на фиг.1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 и/или 15, можно реорганизовать и/или объединять в единый компонент, этап или функцию или внедрить в несколько компонентов, этапов или функций. Также можно добавить дополнительные элементы, компоненты, этапы и/или функции. Приспособления, устройства и/или компоненты, проиллюстрированные на фиг.1, 2, 3, 4, 5, 8, 13 и 14, могут быть сконфигурированы или приспособлены для осуществления одного или нескольких из способов, признаков или этапов, описанных на фиг.6-7, 9-12 и 15. Описанные здесь алгоритмы можно эффективно реализовать в виде программного обеспечения и/или встроенного оборудования.
Заметим, что вышеописанные конфигурации являются всего лишь примером и не призваны ограничивать формулу изобретения. Описание конфигураций призвано иллюстрировать, но не ограничивать объем формулы изобретения. Таким образом, идеи настоящего изобретения можно легко применять к другим типам устройства, и специалисты в данной области техники могут предложить многочисленные альтернативы, модификации и вариации.