СИСТЕМЫ И СПОСОБЫ ДЛЯ ВКЛЮЧЕНИЯ ИДЕНТИФИКАТОРА В ПАКЕТ, АССОЦИАТИВНО СВЯЗАННЫЙ С РЕЧЕВЫМ СИГНАЛОМ
SYSTEMS AND METHODS FOR INCLUDING IDENTIFIER INTO PACKET ASSOCIATED WITH SPEECH SIGNAL

Заявление о преимуществе 35 U.S.C. §119
Настоящая заявка на патент заявляет преимущество Предварительной заявки №60/834 617, озаглавленной "SPECIAL HALF-RATE IDENTIFIER PACKET GENERATION AND DECODING", зарегистрированной 31 июля 2006 года и назначенной правопреемнику этой заявки, и таким образом явно содержится в данном документе по обращению.
Область техники
Настоящие системы и способы, в общем, относятся к технологии обработки речи. Более конкретно, настоящие системы и способы относятся к включению идентификатора в пакет, ассоциативно связанный с речевым сигналом.
Уровень техники
Передача речи посредством цифровых методик стала повсеместной, в частности, в междугородной и международной телефонной связи, а также в цифровой радиотелефонной связи. Это, в свою очередь, вызвало интерес к определению наименьшего количества объема информации, который можно отправить по каналу при сохранении воспринимаемого восстановленной речи. Устройства для сжатия речи находят применение во многих областях техники передачи данных. Примером передачи данных является беспроводная связь. Область техники беспроводной связи имеет множество вариантов применения, включая, к примеру, беспроводные телефоны, пейджеры, беспроводный абонентский доступ, беспроводную телефонную связь, например, телефонные системы на базе сотовой и подвижной системы связи (PCS), системы телефонной связи по протоколу маршрутизации в среде Интернет (IP) и системы спутниковой связи. Особенно важным вариантом применения является беспроводная телефонная связь для мобильных абонентов.
Краткое описание чертежей
Фиг.1a иллюстрирует блок-схему широкополосного речевого кодера A100 согласно конфигурации.
Фиг.1b иллюстрирует блок-схему реализации A102 широкополосного речевого кодера A100.
Фиг.2a иллюстрирует блок-схему широкополосного речевого декодера B100 согласно конфигурации.
Фиг.2b иллюстрирует блок-схему реализации B102 широкополосного речевого кодера B100.
Фиг.3a иллюстрирует блок-схему реализации A112 гребенки A110 фильтров.
Фиг.3b иллюстрирует блок-схему реализации B122 гребенки B120 фильтров.
Фиг.4a иллюстрирует охват полосы пропускания по полосам низких и высоких частот для одного примера гребенки A110 фильтров.
Фиг.4b иллюстрирует охват полосы частот по полосам низких и высоких частот для другого примера гребенки A110 фильтров.
Фиг.4c иллюстрирует блок-схему реализации A114 гребенки A112 фильтров.
Фиг.4d иллюстрирует блок-схему реализации R124 гребенки B122 фильтров.
Фиг.5a иллюстрирует пример графика частоты и логарифмической амплитуды для речевого сигнала.
Фиг.5b иллюстрирует блок-схему базовой системы кодирования с линейным предсказанием.
Фиг.6 иллюстрирует блок-схему реализации A122 узкополосного кодера A120.
Фиг.7 иллюстрирует блок-схему реализации B112 узкополосного декодера B110.
Фиг.8a иллюстрирует пример графика частоты и логарифмической амплитуды для остаточного сигнала вокализованной речи.
Фиг.8b иллюстрирует пример графика времени и логарифмической амплитуды для остаточного сигнала вокализованной речи.
Фиг.9 иллюстрирует блок-схему базовой системы кодирования с линейным предсказанием, которая также выполняет долгосрочное предсказание.
Фиг.10 иллюстрирует блок-схему реализации A202 высокополосного кодера A200.
Фиг.11 иллюстрирует блок-схему реализации A302 высокополосного генератора A300 возбуждения.
Фиг.12 иллюстрирует блок-схему реализации A402 расширителя A400 спектра.
Фиг.12a иллюстрирует графики спектра сигнала в различных точках в одном примере операции расширения спектра.
Фиг.12b иллюстрирует графики спектра сигнала в различных точках в другом примере операции расширения спектра.
Фиг.13 иллюстрирует блок-схему реализации A304 высокополосного генератора A302 возбуждения.
Фиг.14 иллюстрирует блок-схему реализации A306 высокополосного генератора A302 возбуждения.
Фиг.15 иллюстрирует блок-схему последовательности операций задачи T100 вычисления огибающей.
Фиг.16 иллюстрирует блок-схему реализации 492 объединителя 490.
Фиг.17 иллюстрирует подход к вычислению показателя периодичности высокополосного сигнала S30.
Фиг.18 иллюстрирует блок-схему реализации A312 высокополосного генератора A302 возбуждения.
Фиг.19 иллюстрирует блок-схему реализации A314 высокополосного генератора A302 возбуждения.
Фиг.20 иллюстрирует блок-схему реализации A316 высокополосного генератора A302 возбуждения.
Фиг.21 иллюстрирует блок-схему последовательности операций задачи T200 вычисления усиления.
Фиг.22 иллюстрирует блок-схему последовательности операций для реализации T210 задачи T200 вычисления усиления.
Фиг.23a иллюстрирует схему функции кадрирования.
Фиг.23b иллюстрирует применение функции кадрирования, показанной на фиг.23a, к субкадрам речевого сигнала.
Фиг.24 иллюстрирует блок-схему реализации B202 высокополосного декодера B200.
Фиг.25 иллюстрирует блок-схему реализации AD10 широкополосного речевого кодера A100.
Фиг.26a иллюстрирует схематичное представление реализации D122 линии D120 задержки.
Фиг.26b иллюстрирует схематичное представление реализации D124 линии D120 задержки.
Фиг.27 иллюстрирует схематичное представление реализации D130 линии D120 задержки.
Фиг.28 иллюстрирует блок-схему реализации AD12 широкополосного речевого кодера AD10.
Фиг.29 иллюстрирует схему последовательности операций способа обработки MD100 сигналов согласно конфигурации.
Фиг.30 иллюстрирует схему последовательности операций для способа M100 согласно конфигурации.
Фиг.31 иллюстрирует схему последовательности операций для способа M200 согласно конфигурации.
Фиг.31b иллюстрирует схему последовательности операций для реализации M210 способа M200.
Фиг.32 иллюстрирует схему последовательности операций для способа M300 согласно конфигурации.
Фиг.33 иллюстрирует одну конфигурацию системы беспроводной связи;
Фиг.34 - это блок-схема, иллюстрирующая одну конфигурацию окружения передачи сигналов.
Фиг.35 - это блок-схема последовательности операций, иллюстрирующая одну конфигурацию способа для включения идентификатора в пакет, ассоциативно связанный с речевым сигналом.
Фиг.36 - это блок-схема последовательности операций, иллюстрирующая одну конфигурацию способа декодирования пакета.
Фиг.37 - это блок-схема, иллюстрирующая одну конфигурацию многомодового кодера, поддерживающего связь с многомодовым декодером.
Фиг.38 - это блок-схема последовательности операций, иллюстрирующая одну конфигурацию способа кодирования речи с переменной скоростью.
Фиг.39 - это блок-схема, иллюстрирующая одну конфигурацию обычного узкополосного пакета с половинной скоростью и широкополосного пакета с половинной скоростью.
Фиг.40 - это схема, иллюстрирующая число битов, выделенных различным типам пакетов.
Фиг.41 - это блок-схема определенных компонентов в одной конфигурации устройства связи.
Подробное описание
N-битового
2
Описан способ для включения идентификатора в пакет, ассоциативно связанный с речевым сигналом. Сигнал принимается. Сигнал секционируется на множество кадров. Кадр сигнала кодируется в пакет. Выполняется определение в отношении того, закодирован пакет как широкополосный пакет или как узкополосный пакет. Идентификатор пакетируется в пакет на основе определения. Пакет передается. По меньшей мере, предоставляются два недопустимых значения из N-битового параметра, при этом, по меньшей мере, один бит параметра используется для того, чтобы переносить информацию. Число битов из N-битового параметра, используемых для того, чтобы переносить информацию, равно log(X), при этом X является числом недопустимых значений, предоставленных из N-битового параметра.
Также описано устройство для включения идентификатора в пакет, ассоциативно связанный с речевым сигналом. Устройство включает в себя процессор и память в электронном соединении с процессором. Инструкции сохраняются в памяти. Инструкции приводятся в исполнение для того, чтобы: принимать сигнал; секционировать сигнал на множество кадров; кодировать кадр сигнала в пакет; определять то, закодирован пакет как широкополосный пакет или как узкополосный пакет; пакетировать идентификатор в пакет на основе определения; и передавать пакет.
Также описана система, которая выполнена с возможностью включать идентификатор в пакет, ассоциативно связанный с речевым сигналом. Система включает в себя средство обработки и средство приема сигнала. Описаны средство секционирования сигнала на множество кадров и средство кодирования кадра сигнала в пакет. Описано средство определения того, закодирован пакет как широкополосный пакет или как узкополосный пакет. Описано средство пакетирования идентификатора в пакет на основе определения и средство передачи пакета.
Также описан машиночитаемый носитель. Носитель выполнен с возможностью хранить набор инструкций, приводимых в исполнение для того, чтобы: принимать сигнал; секционировать сигнал на множество кадров; кодировать кадр сигнала в пакет; определять то, закодирован пакет как широкополосный пакет или как узкополосный пакет; пакетировать идентификатор в пакет на основе определения; и передавать пакет.
Также описан способ для декодирования пакета. Пакет принимается. Анализируется идентификатор, включенный в пакет. Выполняется определение в отношении того, закодирован пакет широкополосным кодером или узкополосным кодером. На основе определения выбирается режим декодирования для пакета.
Также описано устройство для декодирования пакета. Устройство включает в себя процессор и память в электронной связи с процессором. Инструкции сохраняются в памяти. Инструкции приводятся в исполнение для того, чтобы: принимать пакет; анализировать идентификатор, включенный в пакет; определять то, закодирован пакет как широкополосный пакет или как узкополосный пакет; и выбирать режим декодирования для пакета на основе определения.
Также описана система, которая выполнена с возможностью декодировать пакет. Система включает в себя средство обработки и средство приема пакета. Описано средство анализа идентификатора, включенного в пакет, и средство определения того, закодирован пакет широкополосным кодером или узкополосным кодером. Описано средство выбора режима декодирования для пакета на основе определения.
Также описан машиночитаемый носитель. Носитель выполнен с возможностью хранить набор инструкций, приводимых в исполнение для того, чтобы: принимать пакет; анализировать идентификатор, включенный в пакет; определять то, закодирован пакет как широкополосный пакет или как узкополосный пакет; и выбирать режим декодирования для пакета на основе определения.
Различные конфигурации систем и способов раскрыты со ссылками на чертежи, на которых аналогичные номера ссылок указывают идентичные или функционально аналогичные элементы. Признаки настоящих систем и способов, в общем, раскрытые и проиллюстрированные на чертежах в данном документе, могут быть скомпонованы и разработаны во множестве различных конфигураций. Таким образом, подробное описание ниже не предназначено для того, чтобы ограничивать область применения систем и способов, заявленную в формуле изобретения, а является просто примером конфигураций систем и способов.
Многие признаки конфигураций, раскрытых в данном документе, могут быть реализованы как вычислительное программное обеспечение, электронные аппаратные средства или комбинация вышеозначенного. Чтобы четко проиллюстрировать взаимозаменяемость аппаратных средств и программного обеспечения, различные компоненты, в общем, описываются относительно их функциональности. Реализована эта функциональность в качестве аппаратных средств или программного обеспечения, зависит от конкретного варианта применения и структурных ограничений, накладываемых на систему в целом. Высококвалифицированные специалисты могут реализовать описанную функциональность различными способами для каждого конкретного варианта применения, но такие решения по реализации не должны быть интерпретированы как являющиеся отступлением от области применения настоящих систем и способов.
Если описанная функциональность реализована как вычислительное программное обеспечение, это программное обеспечение может включать в себя любой тип вычислительной инструкции или машиноисполняемого кода, размещенного в памяти и/или передаваемого как электронные сигналы по системной шине либо сети. Программное обеспечение, которое реализует функциональность, ассоциативно связанную с компонентами, описанными в данном документе, может содержать одну инструкцию или множество инструкций и может быть распределено по нескольким различным сегментам кода, по различным программам и по различной памяти.
При использовании в данном документе термины "конфигурация", "конфигурация", "конфигурации", "конфигурация", "конфигурации", "одна или более конфигураций", "несколько конфигураций", "определенные конфигурации", "одна конфигурация", "другая конфигурация" и т.п. означают "одну или более (но не обязательно все) конфигурации раскрытых систем и способов", если иное не указано явно.
Термин "определение" (и его грамматические варианты) используются в самом широком смысле. Термин "определение" заключает в себе множество действий, и, следовательно, "определение" может включать в себя расчет, вычисление, обработку, извлечение, исследование, поиск (к примеру, поиск в таблице, базе данных или другой структуре данных), обнаружение и т.п. Также "определение" может включать в себя прием (к примеру, прием информации), осуществление доступа (к примеру, осуществление доступа к данным в памяти) и т.п. Также "определение" может включать в себя разрешение, отбор, выбор, установление и т.п.
Фраза "основан на" не означает "основан только на", если иное не указано явно. Иными словами, фраза "основан на" описывает как "основан только на", так и "основан, по меньшей мере, на".
Сотовая сеть может включать в себя радиосеть, составленную из ряда сот, каждая из которых обслуживается посредством стационарного передающего устройства. Эти несколько передающих устройств могут упоминаться как узлы сотовой связи или базовые станции. Сота может поддерживать связь с другими сотами в сети посредством передачи речевого сигнала в базовую станцию по каналу связи. Сота может разделять речевой сигнал на множество кадров (к примеру, 20 миллисекунд (мс) речевого сигнала). Каждый кадр может быть закодирован в пакет. Пакет может включать в себя определенное количество битов, которые далее передаются через канал связи в принимающую базовую станцию или принимающую соту. Принимающая базовая станция получения или принимающая сота могут распаковать пакет и декодировать различные кадры, чтобы восстановить сигнал.
Пакеты могут быть закодированы как полноскоростной пакет (171 бит), пакет с половинной скоростью (80 битов), пакет с четвертью скорости (40 битов) или пакет с одной восьмой скорости (16 битов). Кроме того, пакеты могут быть закодированы с помощью узкополосного кодера или широкополосного кодера. Пакеты, закодированные широкополосным кодером, могут быть закодированы как полноскоростной пакет, пакет с половинной скоростью или пакет с одной восьмой скорости. Пакеты, закодированные узкополосным кодером, могут быть закодированы как полноскоростной пакет, пакет с половинной скоростью, пакет с четвертью скорости или пакет с одной восьмой скорости. Широкополосные кодеры могут быть реализованы для различных типов пакетов, включая пакеты с линейным прогнозированием с возбуждением по коду (CELP) и пакеты с линейным прогнозированием с возбуждением по шуму (NELP). Узкополосные кодеры могут быть реализованы для пакетов CELP, пакетов периода основного тона прототипа (PPP) и пакетов NELP.
После кодирования пакета идентификатор может быть включен в пакет, чтобы указать декодеру то, закодирован пакет широкополосным кодером или узкополосным кодером. Информация, включенная в идентификатор, может указать декодеру то, должен ли пакет быть декодирован с помощью широкополосного декодера или узкополосного декодера. Например, широкополосный (WB) кодер с вокодером четвертого поколения (4GV) может закодировать пакет с половинной скоростью (на 80 битов). Пакет может не иметь никаких явных битов, чтобы идентифицировать дополнительные типы пакетов. По сути, недопустимая битовая комбинация, включающая в себя 7-битовое запаздывание основного тона, может использоваться для того, чтобы идентифицировать один или более пакетов, которые включают в себя 73 бита (или меньше). Тем не менее, пакету 4GV-WB с половинной скоростью, возможно, требуется 74 бита, и, по сути, использование 7-битового идентификатора запаздывания основного тона для пакета 4GV-WB с половинной скоростью может быть невозможно (так как общее количество битов, доступных для половинной скорости в этом примере, составляет 80). В одном аспекте две недействительных комбинации 7-битового идентификатора запаздывания основного тона, которые отличаются друг от друга на один бит, могут использоваться для того, чтобы идентифицировать пакет 4GV-WB с половинной скоростью. Шесть (из семи) битов могут использоваться в качестве идентификатора, тем самым освобождая один отличающийся бит, который должен быть использован посредством пакета 4GV-WB с половинной скоростью в дополнение к 73 битам, что дает в результате 74 бита для пакета 4GV-WB с половинной скоростью.
Описанные в данном документе конфигурации включают в себя системы, способы и устройства, которые могут быть сконфигурированы так, чтобы предоставлять расширение для узкополосного речевого сигнала, чтобы поддерживать передачу и/или хранения широкополосных речевых сигналов при увеличении пропускной способности до 800-1000 бит/с (битов в секунду). Потенциальные преимущества этих реализаций включают в себя встроенное кодирование, чтобы поддерживать совместимость с узкополосными системами, относительно простое распределение и перераспределение битов между каналами узкополосного и высокополосного кодирования, исключение вычислительно-емкой операции широкополосного синтеза и поддержание низкой частоты дискретизации для сигналов, которые должны обрабатываться посредством вычислительно-емких процедур кодирования формы сигналов.
Если не ограничен в явной форме контекстом, термин "вычисление" используется в данном документе, чтобы обозначать любое из своих обычных значений, например, расчет, формирование и выбор из списка значений. Если термин "содержащий" используется в настоящем описании и формуле изобретения, он не исключает других элементов или операций. Термин "A основан на B" используется для того, чтобы обозначать любое из своих обычных значений, в том числе случаи (i) "A равен B" и (ii) "A основан, по меньшей мере, на B". Термин "Интернет-протокол" включает в себя версию 4, как описано в IETF (Инженерная группа по развитию Интернета) RFC (Рабочие предложения) 791, и последующие версии, такие как версия 6.
Фиг.1a иллюстрирует блок-схему широкополосного речевого кодера A100 согласно конфигурации. Гребенка A110 фильтров сконфигурирована таким образом, чтобы фильтровать широкополосный речевой сигнал S10, чтобы формировать узкополосный сигнал S20 и высокополосный сигнал S30. Узкополосный кодер A120 выполнен с возможностью кодировать узкополосный сигнал S20, чтобы формировать параметры S40 узкополосной (NB) фильтрации и узкополосный остаточный сигнал S50. Как подробнее описано в данном документе, узкополосный кодер A120 в типичном варианте выполнен с возможностью формировать параметры S40 узкополосной фильтрации и кодированный узкополосный сигнал S50 возбуждения в качестве индексов таблицы кодирования или в другой квантованной форме. Высокополосный кодер A200 выполнен с возможностью кодировать высокополосный сигнал S30 согласно информации в кодированном узкополосном сигнале S50 возбуждения, чтобы сформировать параметры S60 высокополосного кодирования. Как подробнее описывается в данном документе, высокополосный кодер A200 в типичном варианте выполнен с возможностью формировать параметры S60 высокополосного кодирования в качестве индексов таблицы кодирования или в другой квантованной форме. Один конкретный пример широкополосного речевого кодера A100 выполнен с возможностью кодировать широкополосный речевой сигнал S10 на скорости примерно 8,55 кбит/с (килобит в секунду), при этом примерно 7,55 кбит/с используются для параметров S40 узкополосной фильтрации и кодированного узкополосного сигнала возбуждения S50, а примерно 1 кбит/с используется для параметров S60 высокополосного кодирования.
Может быть желательным комбинировать кодированные узкополосные и высокополосные сигналы в один поток битов. Например, может быть желательным мультиплексировать кодированные сигналы вместе для передачи (к примеру, по проводному, оптическому или беспроводному каналу передачи) либо для хранения в качестве кодированного широкополосного речевого сигнала. Фиг.1b иллюстрирует блок-схему реализации A102 широкополосного речевого кодера A100, который включает в себя мультиплексор A130, выполненный с возможностью комбинировать параметры S40 узкополосной фильтрации, кодированный узкополосный сигнал S50 возбуждения и параметры S60 высокополосной фильтрации в мультиплексированный сигнал S70.
Устройство, включающее в себя кодер A102, также может включать в себя схему, сконфигурированную так, чтобы передавать мультиплексированный сигнал S70 в канал передачи, такой как проводной, оптический или беспроводной канал. Это устройство также может быть сконфигурировано так, чтобы выполнять одну или более операций канального кодирования с сигналом, таких как кодирование с коррекцией ошибок (к примеру, согласованное по скорости сверточное кодирование) и/или кодирование с обнаружением ошибок (к примеру, кодирование циклическим избыточным кодом), и/или кодирование одного или более уровней сетевых протоколов (к примеру, Ethernet, TCP/IP, cdma2000).
Может быть желательным сконфигурировать мультиплексор A130 так, чтобы встраивать кодированный узкополосный сигнал (включающий в себя параметры S40 узкополосной фильтрации и кодированный узкополосный сигнал S50 возбуждения) в качестве разделяемого субпотока мультиплексированного сигнала S70, с тем чтобы кодированный узкополосный сигнал могут быть восстановлен и декодирован независимо от другой части мультиплексированного сигнала S70, такого как высокополосный и/или низкополосный сигнал. Например, мультиплексированный сигнал S70 может быть скомпонован таким образом, что кодированный узкополосный сигнал может быть восстановлен посредством отсечения параметров S60 высокополосной фильтрации. Одно потенциальное преимущество такого признака состоит в том, чтобы избегать необходимости перекодировки кодированного широкополосного сигнала до передачи его в систему, которая поддерживает декодирование узкополосного сигнала, но не поддерживает декодирование высокополосной части.
Фиг.2a - это блок-схема широкополосного речевого декодера B100 согласно конфигурации. Узкополосный декодер B110 выполнен с возможностью кодировать параметры S40 узкополосной фильтрации и декодированный узкополосный сигнал S50 возбуждения, чтобы формировать узкополосный сигнал S90. Высокополосный декодер B200 выполнен с возможностью декодировать параметры S60 высокополосного кодирования согласно узкополосному сигналу S80 возбуждения на основе кодированного узкополосного сигнала S50 возбуждения, чтобы сформировать высокополосный сигнал S100. В этом примере узкополосный декодер B110 выполнен с возможностью предоставлять узкополосный сигнал S80 возбуждения в высокополосный декодер B200. Гребенка B120 фильтров сконфигурирована так, чтобы комбинировать узкополосный сигнал S90 и высокополосный сигнал S100, чтобы формировать широкополосный речевой сигнал S110.
Фиг.2b - это блок-схема реализации B102 широкополосного речевого декодера B100,
который включает в себя демультиплексор B130, выполненный с возможностью формировать кодированные сигналы S40, S50 и S60 из мультиплексированного сигнала S70. Устройство, включающее в себя декодер B102, может включать в себя схему, сконфигурированную так, чтобы принимать мультиплексированный сигнал S70 из канала передачи, такого как проводной, оптический или беспроводной канал. Это устройство также может быть сконфигурировано так, чтобы выполнять одну или более операций канального декодирования с сигналом, таких как декодирование с коррекцией ошибок (к примеру, согласованное по скорости сверточное декодирование), и/или декодирование с обнаружением ошибок (к примеру, декодирование циклическим избыточным кодом), и/или декодирование одного или более уровней сетевых протоколов (к примеру, Ethernet, TCP/IP, cdma2000).
Гребенка A110 фильтров сконфигурирована так, чтобы фильтровать входной сигнал согласно схеме расщепления полосы, чтобы формировать низкочастотный поддиапазон и высокочастотный поддиапазон. В зависимости от проектных критериев конкретного приложения выходные поддиапазоны могут иметь равные или неравные полосы пропускания и могут быть перекрывающимися или неперекрывающимися. Конфигурация гребенки A110 фильтров, которая формирует более двух поддиапазонов, также возможна. Например, эта гребенка фильтров может быть сконфигурирована так, чтобы формировать один или более низкополосных сигналов, которые включают в себя компоненты в частотном диапазоне ниже частотного диапазона узкополосного сигнала S20 (например, диапазона 50-300 Гц). Также можно сконфигурировать эту гребенку фильтров таким образом, чтобы формировать один или более дополнительных высокополосных сигналов, которые включают в себя компоненты в частотном диапазоне выше частотного диапазона высокополосного сигнала S30 (например, диапазона 14-20, 16-20 или 16-32 кГц). В этом случае широкополосный речевой кодер A100 может быть реализован таким образом, чтобы кодировать этот сигнал или сигналы отдельно, и мультиплексор A130 может быть выполнен с возможностью включать дополнительный кодированный сигнал или сигналы в мультиплексированный сигнал S70 (к примеру, в качестве разделяемой части).
Фиг.3a иллюстрирует блок-схему реализации A112 гребенки A110 фильтров, которая сконфигурирована так, чтобы формировать два поддиапазонных сигнала, имеющих меньшие частоты дискретизации. Гребенка A110 фильтров выполнена с возможностью принимать широкополосный речевой сигнал S10, имеющий высокочастотную (или высокополосную) часть и низкочастотную (или низкополосную) часть. Гребенка A112 фильтров включает в себя путь низкополосной обработки, выполненный с возможностью принимать широкополосный речевой сигнал S10 и формировать узкополосный речевой сигнал S20, и путь высокополосной обработки, выполненный с возможностью принимать широкополосный речевой сигнал S10 и формировать высокополосный речевой сигнал S30. Низкочастотный фильтр 110 фильтрует широкополосный речевой сигнал S10, чтобы пропускать выбранный низкочастотный поддиапазон, а высокочастотный фильтр 130 фильтрует широкополосный речевой сигнал S10, чтобы пропускать выбранный высокочастотный поддиапазон. Поскольку оба поддиапазонных сигнала имеют более узкую полосу пропускания, чем широкополосный речевой сигнал S10, их частоты дискретизации могут быть снижены в некоторой степени без потери информации. Понижающий дискретизатор 120 снижает частоту дискретизации низкочастотного сигнала согласно требуемому коэффициенту прореживания (к примеру, посредством удаления выборок сигнала и/или замены выборок средними значениями), а понижающий дискретизатор 140 аналогично снижает частоту дискретизации сигнала верхних частот согласно другому требуемому коэффициенту прореживания.
Фиг.3b иллюстрирует блок-схему соответствующей реализации B122 гребенки B120 фильтров. Повышающий дискретизатор 150 повышает частоту дискретизации узкополосного сигнала S90 (к примеру, посредством заполнения нулями и/или посредством дублирования выборок), и низкочастотный фильтр 160 фильтрует сигнал с повышенной дискретизацией, чтобы пропускать низкополосную часть (к примеру, чтобы избежать наложения спектров). Аналогично, повышающий дискретизатор 170 увеличивает частоту дискретизации высокополосного сигнала S100, а высокочастотный фильтр 180 фильтрует сигнал с повышенной дискретизацией, чтобы пропускать высокополосную часть. Сигналы двух полос пропускания затем суммируются, чтобы сформировать широкополосный речевой сигнал S110. В некоторых реализациях декодера B100 гребенка B120 фильтров сконфигурирована так, чтобы формировать взвешенную сумму сигналов двух полос пропускания согласно одному или более весовых коэффициентов, принятых и/или вычисленных посредством высокополосного декодера B200. Конфигурация гребенки B120 фильтров, которая комбинирует сигналы более чем двух полос пропускания, также возможна.
Каждый из фильтров 110, 130, 160, 180 может быть реализован как фильтр с конечной импульсной характеристикой (FIR) или как фильтр с бесконечной импульсной характеристикой (IIR). Частотные характеристики фильтров 110 и 130 кодера могут иметь симметричные переходные области или переходные области непохожей формы между полосой режекции и полосой пропускания. Аналогично, частотные характеристики фильтров 160 и 180 декодера могут иметь симметричные переходные области или переходные области непохожей формы между полосой режекции и полосой пропускания. Может быть желательным реализовать фильтр 110 низких частот с такой же характеристикой, как и у фильтра 160 низких частот, и реализовать фильтр 130 высоких частот с такой же характеристикой, как и у фильтра 180 высоких частот. В одном примере две пары 110, 130 и 160, 180 фильтров являются гребенками квадратурных зеркальных фильтров (QMF), при этом пара 110, 130 фильтров имеет такие же коэффициенты, что и пара 160, 180 фильтров.
В типичном примере низкочастотный фильтр 110 имеет полосу пропускания, которая включает в себя ограниченный PSTN-диапазон в 300-3400 Гц (к примеру, полосу от 0 до 4 кГц). Фиг.4a и 4b иллюстрируют относительные полосы пропускания широкополосного речевого сигнала S10, узкополосного сигнала S20 и высокополосного сигнала S30 в двух различных примерах реализации. В обоих из этих примеров широкополосный речевой сигнал S10 имеет частоту дискретизации в 16 кГц (представляя частотные компоненты в диапазоне 0-8 кГц), а узкополосный сигнал S20 имеет частоту дискретизации в 8 кГц (представляя частотные компоненты в диапазоне 0-4 кГц).
В примере на фиг.4a нет существенного перекрывания между двумя поддиапазонами. Высокополосный сигнал S30, как показано в данном примере, может быть получен с помощью высокочастотного фильтра 130 с полосой пропускания в 4-8 кГц. В этом случае может быть желательным снизить частоту дискретизации до 8 кГц посредством снижения дискретизации фильтрованного сигнала на коэффициент два. Эта операция, которая, как ожидается, может существенно снизить вычислительную сложность дополнительных операций обработки сигнала, уменьшает энергию полосы пропускания до диапазона в 0-4 кГц без потери информации.
В альтернативном примере по фиг.4b верхние и нижние поддиапазоны имеют заметное перекрывание, так что область 3,5-4 кГц описывается посредством обоих поддиапазонных сигналов. Высокополосный сигнал S30, как показано в данном примере, может быть получен с помощью высокочастотного фильтра 130 с полосой пропускания в 3,5-7 кГц. В этом случае может быть желательным снизить частоту дискретизации до 7 кГц посредством понижающей дискретизации фильтрованного сигнала на коэффициент 16/7. Эта операция, которая, как ожидается, может существенно снизить вычислительную сложность дополнительных операций обработки сигнала, уменьшает энергию полосы пропускания до диапазона 0-3,5 кГц без потери информации.
В типичной телефонной трубке для телефонной связи один или более преобразователей (т.е. микрофон и наушник или динамик) имеет в значительной степени недостаточную характеристику в частотном диапазоне 7-8 кГц. В примере по фиг.4b часть широкополосного речевого сигнала S10 между 7 и 8 кГц не включена в кодированный сигнал. Другие конкретные примеры высокочастотного фильтра 130 имеют полосы пропускания в 3,5-7,5 кГц и 3,5-8 кГц.
В некоторых реализациях предоставление перекрывания между поддиапазонами, как в примере по фиг.4b, дает возможность использования низкочастотного и/или высокочастотного фильтра, имеющего плавное спадание в перекрывающейся области. Эти фильтры в типичном варианте проще проектировать, они менее вычислительно сложные и/или вносят меньшую задержку, чем фильтры с более резкими или "крутыми" характеристиками. Фильтры, имеющие резкие переходные области, зачастую имеют более высокие боковые лепестки (которые могут приводить к наложению спектров), чем фильтры аналогичного порядка, которые имеют плавное спадание. Фильтры, имеющие резкие переходные области, также могут иметь импульсные характеристики большой длительности, которые могут приводить к реверберирующим помехам. Для реализаций гребенок фильтров, имеющих один или более IIR-фильтров, предоставляющих плавное спадание в перекрывающейся области, можно позволить использование фильтра или фильтров, полюса которых находятся дальше от единичной окружности, что может быть важным для того, чтобы обеспечивать стабильную реализацию с фиксированной запятой.
Перекрывание поддиапазонов предоставляет плавное сопряжение полосы низких частот и полосы высоких частот, что может приводить к меньшим слышимым помехам, снижению наложения спектров и/или менее заметному переходу от одной полосы к другой. Более того, эффективность кодирования узкополосного кодера A120 (например, кодера формы сигналов) может падать с повышением частоты. Например, качество кодирования узкополосного кодера может снижаться при низких скоростях передачи битов, особенно при наличии фонового шума. В этих случаях предоставление перекрывания поддиапазонов позволяет повышать качество воспроизводимых частотных компонентов в перекрывающейся области.
Кроме того, перекрывание поддиапазонов предоставляет плавное сопряжение полосы низких частот и полосы высоких частот, что может приводить к меньшим слышимым помехам, снижению наложения спектров и/или менее заметному переходу от одной полосы к другой. Этот признак может быть особенно желательным для реализации, в которой узкополосный кодер A120 и высокополосный кодер A200 функционируют согласно различным методологиям кодирования. Например, различные методики кодирования могут формировать сигналы, которые звучат немного по-разному. Кодер, который кодирует спектральную огибающую в форме индексов таблицы кодирования, может формировать сигнал, имеющий звук, отличающийся от звука кодера, который кодирует вместо этого амплитудный спектр. Кодер временной области (к примеру, кодер по импульсно-кодовой модуляции, PCM) может формировать сигнал, имеющий звук, отличающийся от звука кодера частотной области. Кодер, который кодирует сигнал с представлением спектральной огибающей и соответствующего остаточного сигнала, может формировать сигнал, имеющий звук, отличающийся от звука кодера, который кодирует сигнал с представлением спектральной огибающей. Кодер, который кодирует сигнал как представление его формы, может формировать вывод, имеющий звук, отличающийся от звука синусоидального кодера. В этих случаях использование фильтров, имеющих резкие переходные области, чтобы задавать неперекрывающиеся поддиапазоны, может приводить к внезапному и перцепционно заметному переходу между поддиапазонами в синтезированном широкополосном сигнале.
Хотя гребенки QMF-фильтров, имеющие дополняющие перекрывающиеся частотные характеристики, зачастую используются в поддиапазонных методиках, такие фильтры не подходят, по меньшей мере, для некоторых реализаций широкополосного кодирования, описанных в данном документе. Гребенка QMF-фильтров в кодере сконфигурирована так, чтобы создавать значительную степень наложения спектров, которое компенсируется в соответствующей гребенке QMF-фильтров в декодере. Такая компоновка может не подходить для варианта применения, в котором сигнал подвергается значительной величине искажения между гребенками фильтров, поскольку искажение может снижать эффективность свойства компенсации наложения спектров. Например, варианты применения, описываемые в данном документе, включают в себя реализации кодирования, сконфигурированные так, чтобы функционировать при очень низких скоростях передачи битов. Как следствие очень низкой скорости передачи битов, декодированный сигнал с большой долей вероятности является в значительной степени искаженным в сравнении с исходным сигналом, так что использование гребенок QMF-фильтров может приводить к некомпенсируемому наложению спектров. Варианты применения, которые используют гребенки QMF-фильтров, в типичном варианте имеют более высокие скорости передачи битов (к примеру, более 12 кбит/с для AMR и 64 кбит/с для G.722).
Дополнительно, кодер может быть выполнен с возможностью формировать синтезированный сигнал, который перцепционно аналогичен исходному сигналу, но который фактически значительно отличается от исходного сигнала. Например, кодер, который извлекает высокополосное возбуждение из узкополосного остатка, как описано в данном документе, может формировать такой сигнал, поскольку фактический высокополосный остаток может полностью отсутствовать в декодированном сигнале. Использование гребенок QMF-фильтров в этих приложениях может приводить к значительной степени искажения, вызываемого посредством некомпенсируемого наложения спектров.
Величина искажения, вызываемого посредством QMF-наложения спектров, может быть снижена, если затрагиваемый поддиапазон узкий, поскольку эффект от наложения спектров ограничен полосой пропускания, равной ширине поддиапазона. Например, как описано в данном документе, каждый поддиапазон включает в себя примерно половину широкополосной полосы пропускания, тем не менее, искажение, вызываемое посредством некомпенсируемого наложения спектров, может затрагивать значительную часть сигнала. Качество сигнала может также затрагиваться посредством размещения частотного диапазона, в котором возникает некомпенсируемое наложение спектров. Например, искажение, создаваемое рядом с центром широкополосного речевого сигнала (к примеру, между 3 и 4 кГц), может быть гораздо более нежелательным, чем искажение, которое возникает рядом с краем сигнала (к примеру, выше 6 кГц).
Хотя характеристики фильтров гребенки QMF-фильтров тесно связаны друг с другом, низкополосные и высокополосные пути гребенок A110 и B120 фильтров могут быть сконфигурированы так, чтобы иметь спектры, которые полностью не связаны, не считая перекрывания двух поддиапазонов. Мы задаем перекрывание двух поддиапазонов как расстояние от точки, в которой частотная характеристика высокополосного фильтра падает до -20 дБ, до точки, в которой частотная характеристика низкополосного фильтра падает до -20 дБ. В различных примерах гребенки A110 и/или B120 фильтров это перекрывание варьируется от примерно 200 Гц до примерно 1 кГц. Диапазон от примерно 400 до примерно 600 Гц может представлять требуемый компромисс между эффективностью кодирования и перцепционной плавностью. В одном конкретном примере, как упоминалось выше, перекрывание составляет порядка 500 Гц.
e
jnπ
n
Может быть желательным реализовать гребенку A112 и/или B122 фильтров, чтобы выполнить операции, проиллюстрированные на фиг.4a и 4b, в несколько стадий. Например, фиг.6c иллюстрирует блок-схему реализации A114 гребенки A112 фильтров, которая выполняет функциональный эквивалент операций высокочастотной фильтрации и понижающей дискретизации, используя набор из интерполяции, повторной дискретизации и прореживания и других операций. Такую реализацию может быть проще спроектировать, и/или она может предоставлять возможность повторного использования блоков логики и/или кода. Например, один функциональный блок может быть использован для того, чтобы выполнять операции прореживания до 14 кГц и прореживания до 7 кГц, как показано на фиг.4c. Операция обращения спектра может быть реализована посредством умножения сигнала на функцию  или последовательность (-1), значения которой чередуются между +1 и -1. Операция формирования спектра может быть реализована как низкочастотный фильтр, выполненный с возможностью сформировать сигнал, чтобы получать требуемую общую характеристику фильтрации.
Следует отметить, что как следствие операции обращения спектра спектр высокополосного сигнала S30 меняется на противоположный. Последующие операции в кодере и соответствующем декодере могут быть сконфигурированы надлежащим образом. Например, высокополосный генератор A300 возбуждения, описанный в данном документе, может быть выполнен с возможностью формировать сигнал S120 высокополосного возбуждения, который также имеет спектрально обращенную форму.
Фиг.4b иллюстрирует блок-схему реализации B124 гребенки B12 фильтров, которая выполняет функциональный эквивалент операций повышающей дискретизации и высокочастотной фильтрации, используя набор из интерполяции, повторной дискретизации и других операций. Гребенка B124 фильтров включает в себя операцию обращения спектра в полосе высоких частот, которая обращает аналогичную операцию, которая выполняется, например, в гребенке фильтров кодера, такой как гребенка A114 фильтров. В этом конкретном примере гребенка B124 фильтров также включает в себя режекторные фильтры в полосе низких частот и полосе высоких частот, которые ослабляют компонент сигнала при 7100 Гц, хотя эти фильтры являются необязательными и не обязательно должны быть включены.
Узкополосный кодер A120 реализован согласно модели входного фильтра, которая кодирует входной речевой сигнал как (A) набор параметров, которые описывают фильтр, и (B) сигнал возбуждения, который приводит в действие описанный фильтр, чтобы сформировать синтезированное воспроизведение входного речевого сигнала. Фиг.5a иллюстрирует пример спектральной огибающей речевого сигнала. Пики, которые характеризуют эту спектральную огибающую, представляют резонансы речевого тракта и называются формантами. Большинство речевых кодеров кодируют, по меньшей мере, эту приблизительную спектральную структуру как набор параметров, таких как коэффициенты фильтрации.
Фиг.5b иллюстрирует пример базовой компоновки входного фильтра, применяемой к кодированию спектральной огибающей узкополосного сигнала S20. Анализирующий модуль вычисляет набор параметров, которые характеризуют фильтр, соответствующий речевому звуку, за период времени (типично 20 мс). Отбеливающий фильтр (также называемый анализирующим фильтром или фильтром ошибок предсказания), сконфигурированный согласно этим параметрам фильтрации, удаляет спектральную огибающую, чтобы спектрально сгладить сигнал. Результирующий отбеленный сигнал (также называемый остатком) имеет меньше энергии и тем самым меньше дисперсию, и его проще кодировать, чем исходный речевой сигнал. Ошибки, возникающие в результате кодирования остаточного сигнала, также могут быть распределены более равномерно по спектру. Параметры фильтрации и остаток в типичном варианте квантуются для эффективной передачи по каналу. В декодере синтезирующий фильтр, сконфигурированный согласно параметрам фильтрации, возбуждается посредством сигнала на основе остатка, чтобы сформировать синтезированную версию исходного речевого звука. Синтезирующий фильтр в типичном варианте выполнен с возможностью иметь передаточную функцию, которая является инверсией передаточной функции отбеливающего фильтра.
Фиг.6 иллюстрирует блок-схему базовой реализации A122 узкополосного кодера A120. В этом примере анализирующий модуль 210 кодирования с линейным предсказанием (LPC) кодирует спектральную огибающую узкополосного сигнала S20 как набор коэффициентов линейного предсказания (LP) (к примеру, коэффициентов полюсного фильтра 1/A(z)). Анализирующий модуль в типичном варианте обрабатывает входной сигнал как последовательность неперекрывающихся кадров, при этом новый набор коэффициентов вычисляется для каждого кадра. Период кадра - это, как правило, период, в течение которого, как ожидается, сигнал может быть локально стационарным; один пример - это 20 миллисекунд (эквивалентно 160 выборкам при частоте дискретизации 8 кГц). В одном примере анализирующий LPC-модуль 210 выполнен с возможностью вычислять набор из десяти коэффициентов LP-фильтрации, чтобы охарактеризовать формантную структуру каждого 20-миллисекундного кадра. Также можно реализовать анализирующий модуль так, чтобы обрабатывать входной сигнал как последовательность перекрывающихся кадров.
Анализирующий модуль может быть выполнен с возможностью анализировать выборки каждого кадра непосредственно, либо выборки могут быть сначала взвешены согласно функции кадрирования (например, взвешивающей функции Хэмминга). Анализ также может выполняться для окна, превышающего кадр, например, 30-миллисекундного окна. Это окно может быть симметричным (к примеру, 5-20-5, так что оно включает в себя 5 миллисекунд сразу перед и после 20-миллисекундного кадра) или асимметричным (к примеру, 10-20, так что оно включает в себя последние 10 миллисекунд предыдущего кадра). Анализирующий LPC-модуль в типичном варианте выполнен с возможностью вычислять коэффициенты LP-фильтрации с помощью рекурсии Левинсона-Дурбина или алгоритма Леро-Гогена. В другой реализации анализирующий модуль может быть выполнен с возможностью вычислять набор коэффициентов косинусного преобразования Фурье для каждого кадра вместо набора коэффициентов LP-фильтрации.
Выходная скорость кодера A120 может быть значительно снижена, с относительно небольшим влиянием на качество воспроизведения, посредством квантования параметров фильтрации. Коэффициенты фильтрации с линейным предсказанием трудно эффективно квантовать, и обычно они преобразуются к другому представлению, к примеру, парам спектральных линий (LSP) или частотам спектральных линий (LSF) для квантования и/или кодирования по энтропии. В примере по фиг.6 преобразование 220 коэффициентов LP-фильтрации в LSF преобразует набор коэффициентов LP-фильтрации в соответствующий набор LSF. Другие представления "один-к-одному" коэффициентов LP-фильтрации включают в себя коэффициенты паркора; значения отношения логарифмической площади; спектральные пары иммитансов (ISP); и спектральные частоты иммитансов (ISF), которые используются в кодеке AMR-WB (адаптивное многоскоростное широкополосное кодирование) для GSM (глобальная система мобильной связи). Типично преобразование между набором коэффициентов LP-фильтрации и соответствующим набором LSF является обратимым, но конфигурации также включают в себя реализации кодера A120, в которых преобразование не является обратимым без ошибок.
Квантователь 230 выполнен с возможностью квантовать набор узкополосных LSF (или другого представления коэффициентов), а узкополосный кодер A122 выполнен с возможностью выводить результат этого квантования в качестве параметров S40 узкополосной фильтрации. Данный квантователь в типичном варианте включает в себя векторный квантователь, который кодирует входной вектор как индекс к соответствующей записи вектора в таблице или таблице кодирования.
Как показано на фиг.6, узкополосный кодер A122 также формирует остаточный сигнал посредством передачи узкополосного сигнала S20 через отбеливающий фильтр 260 (также называемый анализирующим фильтром или фильтром ошибок предсказания), который сконфигурирован согласно набору коэффициентов фильтрации. В этом конкретном примере отбеливающий фильтр 260 реализован как FIR-фильтр, хотя также могут быть использованы IIR-реализации. Данный остаточный сигнал в типичном варианте содержит перцепционно важную информацию речевого кадра, такую как долгосрочная структура, связанная с шагом, которая не представлена в параметрах S40 узкополосной фильтрации. Квантователь 270 выполнен с возможностью вычислять оцифрованное представление этого остаточного сигнала для вывода в качестве кодированного узкополосного сигнала S50 возбуждения. Данный квантователь в типичном варианте включает в себя векторный квантователь, который кодирует входной вектор как индекс к соответствующей записи вектора в таблице или таблице кодирования. Альтернативно, данный квантователь может быть выполнен с возможностью отправлять один или более параметров, из которых вектор может быть сформирован динамически в декодере, а не извлечен из устройства хранения, как в способе разреженной таблицы кодирования. Этот способ используется в схемах кодирования, таких как алгебраическое CELP (кодирование методом линейного предсказания с кодовым возбуждением), и кодеках, таких как EVRC (усовершенствованный кодек с переменной скоростью) для 3GPP2 (Партнерский проект третьего поколения 2).
Желательно, чтобы узкополосный кодер A120 формировал кодированный узкополосный сигнал возбуждения согласно тем же параметрам фильтрации, которые доступны для соответствующего узкополосного декодера. Таким образом, результирующий кодированный узкополосный сигнал возбуждения может уже в некоторой степени учитывать неидеальности в этих значениях параметров, например, ошибку квантования. Следовательно, желательно конфигурировать отбеливающий фильтр с использованием тех же значений коэффициентов, что и доступны в кодере. В базовом примере кодера A122, как показано на фиг.6, обратный квантователь 240 деквантует параметры S40 узкополосного кодирования, преобразование 250 LSF в коэффициенты LP-фильтрации преобразует результирующие значения обратно к соответствующему набору коэффициентов LP-фильтрации, и этот набор коэффициентов используется для того, чтобы конфигурировать отбеливающий фильтр 260, чтобы формировать остаточный сигнал, который квантуется посредством квантователя 270.
Некоторые реализации узкополосного кодера A120 сконфигурированы так, чтобы вычислять кодированный узкополосный сигнал S50 возбуждения посредством идентификации одного из набора векторов таблицы кодирования, который в наибольшей степени совпадает с остаточным сигналом. Тем не менее, следует отметить, что узкополосный кодер A120 также может быть реализован так, чтобы вычислять квантованное представление остаточного сигнала без фактического формирования остаточного сигнала. Например, узкополосный кодер A120 может быть выполнен с возможностью использовать ряд векторов таблицы кодирования, чтобы формировать соответствующие синтезированные сигналы (к примеру, согласно текущему набору параметров фильтрации) и выбирать вектор таблицы кодирования, ассоциативно связанный со сформированным сигналом, который в наибольшей степени совпадает с исходным узкополосным сигналом S20 в перцепционно взвешенной области.
Фиг.7 иллюстрирует блок-схему реализации B112 узкополосного декодера B110. Обратный квантователь 310 деквантует параметры S40 узкополосной фильтрации (в данном случае до набора LSF), а преобразование 320 LSF в параметры LP-фильтрации преобразует LSF в набор коэффициентов фильтрации (например, как описано выше со ссылкой на обратный квантователь 240 и преобразование 250 узкополосного кодера A122). Обратный квантователь 340 деквантует узкополосный остаточный сигнал S40, чтобы сформировать узкополосный сигнал S80 возбуждения. На основе коэффициентов фильтрации и узкополосного сигнала S80 возбуждения узкополосный синтезирующий фильтр 330 синтезирует узкополосный сигнал S90. Другими словами, узкополосный синтезирующий фильтр 330 выполнен с возможностью спектрально формировать узкополосный сигнал S80 возбуждения согласно деквантованным коэффициентам фильтрации, чтобы сформировать узкополосный сигнал S90. Узкополосный декодер B112 также предоставляет узкополосный сигнал S80 возбуждения в высокополосный кодер A200, который использует его для того, чтобы извлекать высокополосный сигнал S120 возбуждения, как описано в данном документе. В некоторых реализациях, описанных ниже, узкополосный декодер B110 может быть выполнен с возможностью предоставлять дополнительную информацию в высокополосный декодер B200, которая связана с узкополосным сигналом, такую как наклон спектра, усиление и запаздывание основного тона и режим речи.
Система узкополосного кодера A122 и узкополосного декодера B112 является базовым примером речевого кодера анализа посредством синтеза. Кодирование методом линейного предсказания с кодовым возбуждением (CELP) является одним популярным семейством кодирования на основе анализа посредством синтеза, и реализации таких кодеров могут выполнять кодирование формы сигнала остатка, в том числе такие операции, как выбор записей из фиксированных и адаптивных таблиц кодирования, операции минимизации ошибок и/или операции перцепционного взвешивания. Другие реализации кодирования на основе анализа посредством синтеза включают в себя кодирование методом линейного предсказания со смешанным возбуждением (MELP), алгебраического CELP (ACELP), релаксационного CELP (RCELP), регулярного возбуждения импульсами (RPE), многоимпульсного CELP (MPE) и линейного предсказания с возбуждением векторной суммой (VSELP). Связанные способы кодирования включают в себя кодирование с многополосным возбуждением (MBE) и интерполяцией прототипа формы сигнала (PWI). Примеры стандартизированных речевых кодеков на основе анализа посредством синтеза включают в себя полноскоростной GSM-кодек ETSI-GSM (Европейский институт телекоммуникационных стандартов) (GSM 06.10), который использует линейное предсказание с остаточным возбуждением (RELP); улучшенный полноскоростной GSM-кодек (ETSI-GSM 06.60); кодер по стандарту ITU (Международный союз телекоммуникаций) 11.8 кбит/с G.729 Приложение E; кодеки IS (Interim Standard)-641 для IS-136 (схема множественного доступа с временным разделением каналов); адаптивные многоскоростные GSM-кодеки (GSM-AMR); и кодек 4GV™ (вокодер четвертого поколения) (QUALCOMM Incorporated, San Diego, CA). Узкополосный кодер A120 и соответствующий декодер B110 могут быть реализованы согласно одной из этих методологий либо любой другой технологии речевого кодирования (известной или находящейся в разработке), которая представляет речевой сигнал как (A) набор параметров, которые описывают фильтр, и (B) сигнал возбуждения, используемый для того, чтобы приводить в действие описанный фильтр, чтобы воспроизвести речевой сигнал.
Даже после того, как отбеливающий фильтр удалил приблизительную спектральную огибающую из узкополосного сигнала S20, значительная часть тонкой гармонической структуры может оставаться, особенно для вокализованной речи. Фиг.8a иллюстрирует спектральный график одного примера остаточного сигнала, который может быть сформирован посредством отбеливающего фильтра, для речевого сигнала, к примеру, гласных звуков. Периодическая структура, показанная в этом примере, связана с основным тоном, и различные вокализованные звуки, произносимые одним и тем же говорящим, могут иметь различные формантные структуры, но похожие структуры основного тона. Фиг.8b иллюстрирует график временной области примера такого остаточного сигнала, который показывает последовательность импульсов основного тона во времени.
Эффективность кодирования и/или качество речи может быть повышено посредством использования одного или более значений параметров для того, чтобы кодировать характеристики структуры основного тона. Одной важной характеристикой структуры основного тона является эффективность первой гармоники (также называемой собственной частотой), которая в типичном варианте находится в диапазоне 60-400 Гц. Эта характеристика в типичном варианте кодируется как инверсия собственной частоты, также называемая запаздыванием основного тона. Запаздывание основного тона указывает число выборок в одном периоде основного тона и может кодироваться как один или более индексов таблицы кодирования. Речевые сигналы от мужчин зачастую имеют большее запаздывание основного тона, чем речевые сигналы от женщин.
Другой характеристикой сигнала, связанной со структурой основного тона, является периодичность, которая указывает интенсивность гармонической структуры или, другими словами, степень, в которой сигнал является гармоническим или негармоническим. Двумя типичными индикаторами периодичности являются переходы через нуль и функции нормализованной автокорреляции (NACF). Периодичность также может показываться посредством усиления основного тона, которое кодируется как усиление таблицы кодирования (к примеру, усиление квантованной адаптивной таблицы кодирования).
Узкополосный кодер A120 может включать в себя один или более модулей, сконфигурированных так, чтобы кодировать долгосрочную гармоническую структуру узкополосного сигнала S20. Как показано на фиг.9, одна типичная парадигма CELP, которая может быть использована, включает в себя анализирующий LPC-модуль с разомкнутым контуром, который кодирует краткосрочную характеристику или приблизительную спектральную огибающую, после чего следует анализирующая стадия долгосрочного предсказания с замкнутым контуром, которая кодирует точный основной тон или гармоническую структуру. Краткосрочные характеристики кодируются как коэффициенты фильтрации, а долгосрочные характеристики кодируются как значения параметров, например, запаздывание основного тона и усиление основного тона. Например, узкополосный кодер A120 может быть выполнен с возможностью выводить кодированный узкополосный сигнал S50 возбуждения в форме, которая включает в себя один или более индексов таблицы кодирования (к примеру, индекс фиксированной таблицы кодирования или индекс адаптивной таблицы кодирования) и соответствующие значения усиления. Вычисление этого квантованного представления узкополосного остаточного сигнала (к примеру, посредством квантователя 270) может включать в себя выбор таких индексов и вычисление таких значений. Кодирование структуры основного тона также может включать в себя интерполяцию формы сигнала прототипа основного тона, причем эта операция может включать в себя вычисление разности между последовательными импульсами основного тона. Моделирование долгосрочной структуры может быть отключено для кадров, соответствующих невокализованной речи, которые в типичном варианте являются шумоподобными и неструктурированными.
Реализация узкополосного декодера B110 согласно парадигме, проиллюстрированной на фиг.9, может быть сконфигурирована так, чтобы выводить узкополосный сигнал S80 возбуждения в высокополосный декодер B200 после того, как долгосрочная структура (основной тон или гармоническая структура) восстановлена. Например, этот декодер может быть выполнен с возможностью выводить узкополосный сигнал S80 возбуждения в качестве деквантованной версии кодированного узкополосного сигнала S50 возбуждения. Разумеется, также можно реализовать узкополосный декодер B110, так что высокополосный декодер B200 выполняет деквантование кодированного узкополосного сигнала S50 возбуждения, чтобы получить узкополосный сигнал возбуждения S80.
В реализации широкополосного речевого кодера A100 согласно парадигме, показанной на фиг.9, высокополосный кодер A200 может быть выполнен с возможностью принимать узкополосный сигнал возбуждения, формируемый посредством краткосрочного анализирующего или отбеливающего фильтра. Другими словами, узкополосный кодер A120 может быть выполнен с возможностью выводить узкополосный сигнал возбуждения в высокополосный кодер A200 до кодирования долгосрочной структуры. Тем не менее, желательно для высокополосного кодера A200
принимать из узкополосного канала такую же информацию кодирования, которая принимается посредством высокополосного декодера B200, с тем чтобы параметры кодирования, формируемые посредством высокополосного кодера A200, могли уже в некоторой степени учитывать неидеальности в этой информации. Таким образом, может быть предпочтительным для высокополосного кодера A200 восстанавливать узкополосный сигнал S80 возбуждения из такого же параметризованного и/или квантованного кодированного узкополосного сигнала S50 возбуждения, который должен быть выведен посредством широкополосного речевого кодера A100. Одно потенциальное преимущество этого подхода заключается в более точном вычислении коэффициентов S60b высокополосного усиления, описанных ниже.
Помимо параметров, которые характеризуют краткосрочную и/или долгосрочную структуру узкополосного сигнала S20, узкополосный кодер A120 может формировать значения параметров, которые связаны с другими характеристиками узкополосного сигнала S20. Эти значения, которые могут быть надлежащим образом квантованы для вывода посредством широкополосного речевого кодера A100, могут быть включены в параметры S40 узкополосной фильтрации или выведены отдельно. Высокополосный кодер A200 также может быть выполнен с возможностью вычислять параметры S60 высокополосного кодирования согласно одному или более этих дополнительных параметров (к примеру, после деквантования). В широкополосном речевом кодере B100 высокополосный декодер B200 может быть выполнен с возможностью принимать значения параметров посредством узкополосного кодера B110 (к примеру, после деквантования). Альтернативно, высокополосный кодер B200 может быть выполнен с возможностью принимать (и, возможно, деквантовать) значения параметров непосредственно.
В одном примере дополнительных параметров узкополосного кодирования узкополосный кодер A120 формирует значения для параметров наклона спектра и речевого режима для каждого кадра. Наклон спектра связан с формой спектральной огибающей в полосе пропускания и в типичном варианте представляется посредством квантованного первого коэффициента отражения. Для большинства вокализованных звуков спектральная энергия снижается с увеличением частоты, так что первый коэффициент отражения является отрицательным и может достигать -1. Большинство невокализованных звуков имеют спектр, который либо плоский, так что первый коэффициент отражения близок к нулю, либо имеет больше энергии при высоких частотах, так что первый коэффициент отражения является положительным и может достигать +1.
Речевой режим (также называемый голосовым режимом) указывает то, представляет текущий кадр вокализованную или невокализованную речь. Этот параметр может иметь двоичное значение на основе одного или двух показателей периодичности (к примеру, переходов через нуль, NACF, усиления основного тона) и/или активности речи для кадра, например, отношения между таким показателем и пороговым значением. В других реализациях параметр речевого режима имеет одно или более состояний, чтобы указывать такие режимы, как молчание или фоновый шум либо переход между молчанием и вокализованной речью.
Высокополосный кодер A200 выполнен с возможностью кодировать высокополосный сигнал S30 согласно модели входного фильтра, при этом возбуждение для этого фильтра основано на кодированном узкополосном сигнале возбуждения. Фиг.10 иллюстрирует блок-схему реализации A202 высокополосного кодера A200, который выполнен с возможностью формировать поток параметров S60 высокополосного кодирования, в том числе параметров S60a высокополосной фильтрации и коэффициентов S60b высокополосного усиления. Высокополосный A300 генератор возбуждения извлекает высокополосный сигнал S120 возбуждения из кодированного узкополосного сигнала S50 возбуждения. Анализирующий модуль A210 формирует набор значений параметров, которые характеризуют спектральную огибающую высокополосного сигнала S30. В данном конкретном примере анализирующий модуль A210 выполнен с возможностью выполнять LPC-анализ, чтобы формировать набор коэффициентов LP-фильтрации для каждого кадра высокополосного сигнала S30. Преобразование 410 коэффициентов фильтрации с линейным предсказанием в LSF преобразует набор коэффициентов LP-фильтрации в соответствующий набор LSF. Как указано выше со ссылкой на анализирующий модуль 210 и преобразование 220, анализирующий модуль A210 и/или преобразование 410 могут быть сконфигурированы так, чтобы использовать другие наборы коэффициентов (к примеру, коэффициентов косинусного преобразования Фурье) и/или представления коэффициентов (к примеру, ISP).
Квантователь 420 выполнен с возможностью квантовать набор высокополосных LSF (или другого представления коэффициентов, например, ISP), а высокополосный кодер A102 выполнен с возможностью выводить результат этого квантования в качестве параметров S60a высокополосной фильтрации. Данный квантователь в типичном варианте включает в себя векторный квантователь, который кодирует входной вектор как индекс к соответствующей записи вектора в таблице или таблице кодирования.
Высокополосный кодер A202 также включает в себя синтезирующий фильтр A220, выполненный с возможностью формировать синтезированный высокополосный сигнал S130 согласно высокополосному сигналу S120 возбуждения и кодированной спектральной огибающей (к примеру, набор коэффициентов LP-фильтрации), сформированной посредством анализирующего модуля A210. Синтезирующий фильтр A220 в типичном варианте реализован как IIR-фильтр, хотя также могут быть использованы FIR-реализации. В конкретном примере синтезирующий фильтр A220 реализован как линейный авторегрессивый фильтр шестого порядка.
Вычислитель A230 коэффициентов высокополосного усиления вычисляет одну или более разностей между уровнями исходного высокополосного сигнала S30 и синтезированного высокополосного сигнала S130, чтобы задавать огибающую усиления для кадра. Квантователь 430, который может быть реализован как векторный квантователь, который кодирует входной вектор в качестве индекса в соответствующую запись вектора в таблице или таблице кодирования, квантует значение или значения, задающие огибающую усиления, а высокополосный кодер A202
выполнен с возможностью выводить результат этого квантования в качестве коэффициентов S60b высокополосного усиления.
В реализации, показанной на фиг.10, синтезирующий фильтр A220 выполнен с возможностью принимать коэффициенты фильтрации из анализирующего модуля A210. Альтернативная реализация высокополосного кодера A202 включает в себя обратный квантователь и обратное преобразование, сконфигурированное так, чтобы декодировать коэффициенты фильтрации из параметров S60a высокополосной фильтрации, и в этом случае синтезирующий фильтр A220 выполнен с возможностью принимать вместо этого декодированные коэффициенты фильтрации. Такая альтернативная компоновка может поддерживать более точное вычисление огибающей усиления посредством вычислителя A230 высокополосного усиления.
В одном конкретном примере анализирующий модуль A210 и вычислитель A230 высокополосного усиления выводят набор из шести LSF и набор из пяти значений усиления на кадр соответственно с тем, чтобы широкополосное расширение узкополосного сигнала S20 могло осуществляться с помощью одиннадцати дополнительных значений на кадр. Слух зачастую менее чувствителен к погрешностям частоты при высоких частотах, так что высокополосное кодирование при LPC низкого порядка может формировать сигнал, имеющий сравнимое перцепционное качество с узкополосным кодированием при LPC более высокого порядка. Типичная реализация высокополосного кодера A200 может быть сконфигурирована так, чтобы выводить 8-12 битов на кадр для высококачественного восстановления спектральной огибающей и еще 8-12 битов на кадр для высококачественного воспроизведения временной огибающей. В другом конкретном примере анализирующий модуль A210 выводит набор из LSF на кадр.
Некоторые реализации высокополосного кодера A200 сконфигурированы так, чтобы формировать высокополосный сигнал S120 возбуждения посредством формирования сигнала случайного шума, имеющего высокополосные частотные компоненты, и амплитудной модуляции сигнала шума согласно огибающей временной области узкополосного сигнала S20, узкополосного сигнала S80 возбуждения или высокополосного сигнала S30. Хотя этот основанный на шуме способ может формировать достаточные результаты для невокализованных звуков, тем не менее, он может не подходить для вокализованных звуков, остатки которых обычно гармонические и, следовательно, имеют некоторую периодическую структуру.
Высокополосный A300 генератор возбуждения выполнен с возможностью формировать высокополосный сигнал S120 возбуждения посредством продления спектра узкополосного сигнала S80 возбуждения до высокополосного частотного диапазона. Фиг.11 иллюстрирует блок-схему реализации A302 высокополосного генератора A300 возбуждения. Обратный квантователь 450 выполнен с возможностью деквантовать кодированный узкополосный сигнал S50 возбуждения, чтобы формировать узкополосный сигнал S80 возбуждения. Расширитель A400 спектра выполнен с возможностью формировать гармонически расширенный сигнал S160 на основе узкополосного сигнала S80 возбуждения. Объединитель 470 выполнен с возможностью комбинировать сигнал случайного шума, формируемый посредством генератора 480 шума, и огибающую временной области, вычисленную посредством вычислителя 460 огибающий, чтобы сформировать модулированный сигнал S170 шума. Объединитель 490 выполнен с возможностью смешивать гармонически расширенный сигнал S60 и модулированный сигнал S170 шума, чтобы сформировать высокополосный сигнал S120 возбуждения.
В одном примере расширитель A400 спектра выполнен с возможностью выполнять операцию спектрального наложения (также называемого зеркалированием) для узкополосного сигнала S80 возбуждения, чтобы формировать гармонически расширенный сигнал S160. Спектральное наложение может выполняться посредством дополнения нулями сигнала S80 возбуждения и последующего применения высокочастотного фильтра, чтобы сохранить побочную низкочастотную составляющую. В другом примере расширитель A400 спектра выполнен с возможностью формировать гармонически расширенный сигнал S160 посредством спектрального преобразования узкополосного сигнала S80 возбуждения в высокополосный (к примеру, посредством повышающей дискретизации и последующего умножения с косинусоидального сигнала постоянной частоты).
Способы спектрального наложения и преобразования могут формировать спектрально расширенные сигналы, гармоническая структура которых является непрерывной с исходной гармонической структурой узкополосного сигнала S80 возбуждения по фазе и/или частоте. Например, эти способы могут формировать сигналы, имеющие пики, которые, как правило, не являются кратными собственной частоте, что может вызывать помехи резких звуков в восстановленном речевом сигнале. Эти способы также зачастую формируют высокочастотные гармоники, которые имеют неестественно сильные тональные характеристики. Кроме того, поскольку PSTN-сигнал может дискретизироваться при 8 кГц, но ограничен по полосе пропускания не более чем 3400 Гц, верхний спектр узкополосного сигнала S80 возбуждения может содержать мало или вообще не содержать энергии, так что расширенный сигнал, сформированный согласно операции спектрального наложения или спектрального преобразования, может иметь спектральный провал выше 3400 Гц.
Другие способы формирования гармонически расширенного сигнала S160 включают в себя идентификацию одной или более собственных частот узкополосного сигнала S80 возбуждения и формирование гармонических тонов согласно этой информации. Например, гармоническая структура сигнала возбуждения может характеризоваться посредством собственной частоты наряду с информацией по амплитуде и фазе. Другая реализация высокополосного генератора A300 возбуждения формирует гармонически расширенный сигнал S160 на основе собственной частоты и амплитуды (как указано, к примеру, посредством запаздывания основного тона и усиления основного тона). Тем не менее, кроме случаев, когда гармонически расширенный сигнал является фазово когерентным с узкополосным сигналом S80 возбуждения, качество результирующей декодированной речи может быть неприемлемым.
Нелинейная функция может быть использована для того, чтобы создать высокополосный сигнал возбуждения, который является фазово когерентным с узкополосным возбуждением и сохраняет гармоническую структуру без скачка фазы. Нелинейная функция также может предоставлять повышенный уровень шума между высокочастотными гармониками, которые зачастую звучат более естественно, чем тональные высокочастотные гармоники, формируемые посредством таких способов, как спектральное наложение и спектральное преобразование. Типичные нелинейные функции без запоминания, которые могут быть применены посредством различных реализаций расширителя A400 спектра, включают в себя функцию абсолютных значений (также называемую полнопериодным выпрямлением), полупериодное выпрямление, возведение в квадрат, возведение в куб и отсечение. Другие реализации расширителя A400 спектра могут быть сконфигурированы так, чтобы применять нелинейную функцию с запоминанием.
Фиг.12 - это блок-схема реализации A402 расширителя A400 спектра, который выполнен с возможностью применять нелинейную функцию для того, чтобы расширить узкополосный сигнал S80 возбуждения. Повышающий дискретизатор 510 выполнен с возможностью выполнять повышающую дискретизацию узкополосного сигнала S80 возбуждения. Может быть желательным провести повышающую дискретизацию сигнал в достаточной степени для того, чтобы минимизировать наложение спектров при применении нелинейной функции. В одном конкретном примере повышающий дискретизатор 510 выполняет повышающую дискретизацию сигнала на коэффициент 8. Повышающий дискретизатор 510 может быть выполнен с возможностью выполнять операцию повышающей дискретизации посредством заполнения нулями входного сигнала и низкочастотной фильтрации результата. Вычислитель 520 нелинейных функций выполнен с возможностью применять нелинейную функцию к сигналу с повышенной дискретизацией. Одно потенциальное преимущество функции абсолютных значений над другими нелинейными функциями для спектрального расширения, такими как возведение в квадрат, состоит в том, что не требуется нормализация энергии. В некоторых реализациях функция абсолютных значений может быть эффективно применена посредством отсечения или очистки знакового бита для каждой выборки. Вычислитель 520 нелинейных функций также может быть выполнен с возможностью выполнять амплитудное деформирование сигнала с повышенной дискретизацией или расширенным спектром.
Понижающий дискретизатор 530 выполнен с возможностью выполнять понижающую дискретизацию спектрально расширенного результата применения нелинейной функции. Может быть желательным для понижающего дискретизатора 530 выполнить операцию полосовой фильтрации, чтобы выбрать требуемую полосу частот спектрально расширенного сигнала до понижения частоты дискретизации (например, чтобы уменьшить или устранить наложение спектров или повреждение посредством зеркальной боковой полоса частот). Также может быть желательным для понижающего дискретизатора 530 снижать частоту дискретизации за несколько стадий.
Фиг.12a - это схема, которая иллюстрирует спектр сигнала в различных точках в одном примере операции спектрального расширения, при этом шкала частоты одинаковая для всех графиков. График (a) иллюстрирует спектр одного примера узкополосного сигнала S80 возбуждения. График (b) иллюстрирует спектр после того, как над сигналом S80 выполнена повышающая дискретизация с коэффициентом 8. График (c) иллюстрирует пример расширенного спектра после применения нелинейной функции. График (d) иллюстрирует спектр после низкочастотной фильтрации. В этом примере полоса пропускания идет до верхнего частотного предела высокополосного сигнала S30 (к примеру, 7 кГц или 8 кГц).
График (e) иллюстрирует спектр после первой стадии понижающей дискретизации, при которой частота дискретизации снижается на коэффициент 2 или 4, чтобы получить широкополосный сигнал. График (f) иллюстрирует спектр после операции высокочастотной фильтрации, чтобы выбрать высокочастотную часть расширенного сигнала, а график (g) иллюстрирует спектр после второй стадии понижающей дискретизации, на которой частота дискретизации снижается на коэффициент 2. В одном конкретном примере понижающий дискретизатор 530 выполняет высокочастотную фильтрацию и вторую стадию понижающей дискретизации посредством передачи широкополосного сигнала через высокочастотный фильтр 130 и понижающий дискретизатор 140 гребенки A112 фильтров (или другие структуры или процедуры, имеющие такую же характеристику), чтобы сформировать спектрально расширенный сигнал, имеющий частотный диапазон и частоту дискретизации высокополосного сигнала S30.
e
π.
jnπ
n
Как можно видеть на графике (g), понижающая дискретизация высокочастотного сигнала, показанного на графике (f), вызывает обращение спектра. В этом примере понижающий дискретизатор 530 также выполнен с возможностью выполнять операцию спектрального обращения для сигнала. График (h) иллюстрирует результат применения операции спектрального обращения, которая может быть выполнена посредством умножения сигнала на функцию  или последовательность (-1), значения которой чередуются между +1 и -1. Эта операция эквивалентна сдвигу цифрового спектра сигнала в частотной области на интервал Следует отметить, что такой же результат также может быть получен посредством применения операций понижающей дискретизации и спектрального обращения в другом порядке. Операции повышающей дискретизации и/или понижающей дискретизации также могут быть сконфигурированы так, чтобы включать в себя повторную дискретизацию, чтобы получить спектрально расширенный сигнал, имеющий частоту дискретизации высокополосного сигнала S30 (к примеру, 7 кГц).
Как указано выше, гребенки A110 и B120 фильтров могут быть реализованы, так чтобы один или оба из узкополосного и широкополосного сигнала S20, S30 имели спектрально обращенную форму на выходе гребенки A110 фильтров, кодировались и декодировались в спектрально обращенной форме и повторно спектрально обращались в гребенке B120 фильтров до вывода в широкополосном речевом сигнале S110. В этом случае, разумеется, операция спектрального обращения, проиллюстрированная на фиг.12a, может быть необязательна, поскольку желательно для высокополосного сигнала S120 возбуждения также иметь спектрально обращенную форму.
Различные задачи повышающей дискретизации и понижающей дискретизации операции спектрального расширения, выполняемой посредством расширителя A402 спектра, могут быть сконфигурированы и скомпонованы множеством различных способов. Например, фиг.12b - это схема, которая иллюстрирует спектр сигнала в различных точках в одном примере операции спектрального расширения, при этом шкала частоты одинаковая для всех графиков. График (a) иллюстрирует спектр одного примера узкополосного сигнала S80 возбуждения. График (b) иллюстрирует спектр после того, как над сигналом S80 выполнена повышающая дискретизация с коэффициентом 2. График (c) иллюстрирует пример расширенного спектра после применения нелинейной функции. В этом случае наложение спектров, которое может возникать при более высоких частотах, допускается.
График (d) иллюстрирует спектр после операции спектрального обращения. График (e) иллюстрирует спектр после одной стадии понижающей дискретизации, при которой частота дискретизации снижается на коэффициент 2, чтобы получить требуемый спектрально расширенный сигнал. В этом примере сигнал находится в спектрально обращенной форме и может быть использован в реализации высокополосного кодера A200, который обработал высокополосный сигнал S30 в этой форме.
Спектрально расширенный сигнал, сформированный посредством вычислителя 520 нелинейных функций, с большой долей вероятности имеет заметное падение амплитуды по мере того, как частота возрастает. Расширитель A402 спектра включает в себя блок 540 сглаживания спектра, выполненный с возможностью выполнять операцию отбеливания для сигнала с пониженной дискретизацией. Блок 540 сглаживания спектра может быть выполнен с возможностью выполнять фиксированную операцию отбеливания или выполнять адаптивную операцию отбеливания. В конкретном примере адаптивного отбеливания блок 540 сглаживания спектра включает в себя анализирующий LPC-модуль, выполненный с возможностью вычислять набор из четырех коэффициентов фильтрации из сигнала с пониженной дискретизацией, и анализирующий модуль четвертого порядка, выполненный с возможностью отбеливать сигнал согласно этим коэффициентам. Другие реализации расширителя A400 спектра включают в себя конфигурации, в которых блок 540 сглаживания спектра управляет спектрально расширенным сигналом до понижающего дискретизатора 530.
Высокополосный генератор A300 возбуждения может быть реализован так, чтобы выводить гармонически расширенный сигнал S160 в качестве высокополосного сигнала S120 возбуждения. Тем не менее, в некоторых случаях использование гармонически расширенного сигнала в качестве высокополосного возбуждения может приводить к слышимым помехам. Гармоническая структура речи, как правило, менее резко выражена в полосе высоких частот, чем в полосе низких частот, и чрезмерное использование гармонической структуры в высокополосном сигнале возбуждения может приводить к зашумленному звуку. Эта помеха может быть особенно заметной в речевых сигналах от женщин.
Конфигурации включают в себя реализации высокополосного генератора A300 возбуждения, которые сконфигурированы так, чтобы смешивать гармонически расширенный сигнал S160 с сигналом шума. Как проиллюстрировано на фиг.11, высокополосный генератор A302 возбуждения включает в себя генератор 480 шума, который выполнен с возможностью формировать сигнал случайного шума. В одном примере генератор 480 шума выполнен с возможностью формировать сигнал белого псевдослучайного шума с единичной дисперсией, хотя в других вариантах осуществления сигнал шума не обязательно должен быть белым и может иметь плотность мощности, которая варьируется с частотой. Может быть желательным для генератора 480 шума быть сконфигурированным так, чтобы выводить сигнал шума как детерминированную функцию с тем, чтобы его состояние могло дублироваться в декодере. Например, генератор 480 шума может быть выполнен с возможностью выводить сигнал шума как детерминированную функцию информации, закодированной ранее в рамках того же кадра, к примеру, параметров S40 узкополосной фильтрации и/или кодированного узкополосного сигнала S50 возбуждения.
До смешения с гармонически расширенным сигналом S160 сигнал случайного шума, формируемый посредством генератора 480 шума, может амплитудно модулироваться, чтобы иметь огибающую временной области, которая аппроксимирует распределение во времени энергии узкополосного сигнала S20, высокополосного сигнала S30, узкополосного сигнала S80 возбуждения или гармонически расширенного сигнала S160. Как проиллюстрировано на фиг.11, высокополосный генератор A302 возбуждения включает в себя объединитель 470, выполненный с возможностью выполнять амплитудную модуляцию сигнала шума, сформированного посредством генератора 480 шума, согласно огибающей временной области, вычисленной посредством вычислителя 460 огибающей. Например, объединитель 470 может быть реализован как умножитель, выполненный с возможностью масштабировать вывод генератора 480 шума согласно огибающей временной области, вычисленной посредством вычислителя 460 огибающей, чтобы сформировать модулированный сигнал S170 шума.
В реализации A304 высокополосного генератора A302 возбуждения, как показано на блок-схеме по фиг.13, вычислитель 460 огибающей выполнен с возможностью вычислять огибающую гармонически расширенного сигнала S160. В реализации A306 высокополосного генератора A302 возбуждения, как показано на блок-схеме по фиг.14, вычислитель 460 огибающей выполнен с возможностью вычислять огибающую узкополосного сигнала S80 возбуждения. Дополнительные реализации высокополосного генератора A302 возбуждения могут быть сконфигурированы иным образом, чтобы добавлять шум в гармонически расширенный сигнал S160 согласно позициям узкополосных импульсов основного тона во времени.
Вычислитель 460 огибающей может быть выполнен с возможностью выполнять вычисление огибающей в качестве задачи, которая имеет последовательность подзадач. Фиг.15 иллюстрирует блок-схему примера T100 такой задачи. Подзадача T110 вычисляет квадрат каждой выборки в кадре сигнала, огибающая которого должна быть смоделирована (например, узкополосного сигнала S80 возбуждения или гармонически расширенного сигнала S160), чтобы сформировать последовательность возведенных в квадрат значений. Подзадача T120 выполняет операцию сглаживания над последовательностью возведенных в квадрат значений. В одном примере подзадача T120 применяет низкочастотный IIR-фильтр первого порядка к последовательности согласно выражению:
y(n) = ax(n) + (1-a)y(n-1),
(1)
x
y
n
a
a
a
где - это вход фильтра, - это выход фильтра, - это индекс временной области, а  - это коэффициент сглаживания, имеющий значение между 0,5 и 1. Значение коэффициента сглаживания может быть фиксированным либо, в альтернативной реализации, может быть адаптивным согласно индикации шума во входном сигнале, так чтобы  было ближе к 1 при отсутствии шума и ближе к 0,5 при наличии шума. Подзадача T130 применяет функцию квадратного корня к каждой выборке сглаженной последовательности, чтобы сформировать огибающую временной области.
Эта реализация вычислителя 460 огибающей может быть сконфигурирована так, чтобы выполнять различные подзадачи задачи T100 последовательно и/или параллельно. В дополнительных реализациях задачи T100 подзадача T110 может предваряться операцией полосы пропускания, сконфигурированной так, чтобы выбирать требуемую часть частоты сигнала, огибающая которого должна быть смоделирована, к примеру, в диапазоне 3-4 кГц.
Объединитель 490 выполнен с возможностью смешивать гармонически расширенный сигнал S160 и модулированный сигнал S170 шума, чтобы сформировать высокополосный сигнал S120 возбуждения. Реализации объединителя 490 могут быть сконфигурированы, например, так, чтобы вычислять высокополосный сигнал S120 возбуждения как сумму гармонически расширенного сигнала S160 и модулированного сигнала S170 шума. Такая реализация объединителя 490 может быть сконфигурирована так, чтобы вычислять высокополосный сигнал S120 возбуждения как взвешенную сумму посредством применения весового коэффициента к гармонически расширенному сигналу S160 и/или модулированному сигналу S170 шума до суммирования. Каждый подобный весовой коэффициент может быть вычислен согласно одному или более критериев и может быть фиксированным значением либо, альтернативно, может быть адаптивным значением, которое вычисляется на основе кадр-за-кадром или субкадр-за-субкадром.
Фиг.16 иллюстрирует блок-схему реализации 492 объединителя 490, который выполнен с возможностью вычислять высокополосный сигнал S120 возбуждения как взвешенную сумму гармонически расширенного сигнала S160 и модулированного сигнала S170 шума. Объединитель 492 выполнен с возможностью взвешивать гармонически расширенный сигнал S160 согласно весовому коэффициенту S180 гармоник, чтобы взвешивать модулированный сигнал S170 шума согласно весовому коэффициенту S190 шума и выводить высокополосный сигнал S120 возбуждения как сумму взвешенных сигналов. В этом примере объединитель 492 включает в себя вычислитель 550 весовых коэффициентов, который выполнен с возможностью вычислять весовой коэффициент S180 гармоник и весовой коэффициент 190 шума.
Вычислитель 550 весовых коэффициентов может быть выполнен с возможностью вычислять весовые коэффициенты S180 и S190 согласно требуемому соотношению уровня гармоник к уровню шума в высокополосном сигнале S120 возбуждения. Например, может быть желательным для объединителя 492 формировать высокополосный сигнал S120 возбуждения так, чтобы иметь соотношение энергии гармоник к энергии шума аналогичным этому соотношению высокополосного сигнала S30. В некоторых реализациях вычислителя 550 весовых коэффициентов, весовые коэффициенты S180, S190 вычисляются согласно одному или более параметров, относящихся к периодичности узкополосного сигнала S20 или узкополосного остаточного сигнала, например, усиление основного тона и/или речевой режим. Такая реализация вычислителя 550 весовых коэффициентов может быть сконфигурирована так, чтобы назначать значение весовому коэффициенту S180 гармоник, которое пропорционально усилению основного тона, например, и/или назначать более высокое значению весовому коэффициенту S190 шума для сигналов невокализованной речи, чем для сигналов вокализованной речи.
n
В других реализациях вычислитель 550 весовых коэффициентов выполнен с возможностью вычислять значения весового коэффициента S180 гармоник и/или весового коэффициента S190 шума согласно показателю периодичности высокополосного сигнала S30. В одном таком примере вычислитель 550 весовых коэффициентов вычисляет весовой коэффициент S180 гармоник как максимальное значение коэффициента автокорреляции высокополосного сигнала S30 для текущего кадра или субкадра, где автокорреляция выполняется для диапазона поиска, который включает в себя задержку в одно запаздывание основного тона и не включает в себя задержку в нулевые выборки. Фиг.17 иллюстрирует пример такого диапазона поиска длиной выборок, который центрирован вокруг задержки в одно запаздывание основного тона и имеет ширину не больше одного запаздывания основного тона.
Фиг.17 также иллюстрирует пример другого подхода, в котором вычислитель 550 весовых коэффициентов вычисляет показатель периодичности высокополосного сигнала S30 за несколько стадий. На первой стадии текущий кадр делится на ряд субкадров, и задержка, для которой коэффициент автокорреляции является максимальным, идентифицируется отдельно для каждого субкадра. Как упоминалось выше, автокорреляция выполняется для диапазона поиска, который включает в себя задержку в одно запаздывание основного тона и не включает в себя задержку в нулевые выборки.
На второй стадии задержанный кадр составляется посредством применения соответствующей идентифицированной задержки к каждому субкадру, конкатенации результирующих субкадров, чтобы составить оптимально задержанный кадр, и вычисления весового коэффициента S180 гармоник в качестве коэффициента корреляции между исходным кадром и оптимально задержанным кадром. В дополнительной альтернативе вычислитель 550 весовых коэффициентов вычисляет весовой коэффициент S180 гармоник как среднее максимальных коэффициентов автокорреляции, полученное на первой стадии для каждого субкадра. Реализации вычислителя 550 весовых коэффициентов также могут быть сконфигурированы так, чтобы масштабировать коэффициент корреляции и/или объединять его с другим значением, чтобы вычислять значение весового коэффициента S180 гармоник.
Может быть желательным для вычислителя 550 весовых коэффициентов вычислять показатель периодичности высокополосного сигнала S30 в случаях, когда наличие периодичности в кадре указано иным образом. Например, вычислитель 550 весовых коэффициентов может быть выполнен с возможностью вычислять показатель периодичности высокополосного сигнала S30 согласно отношению между другим индикатором периодичности текущего кадра, к примеру, усилением основного тона, и пороговым значением. В одном примере вычислитель 550 весовых коэффициентов выполнен с возможностью выполнять операцию автокорреляции для высокополосного сигнала S30, если усиление основного тона кадра (к примеру, усиление адаптивной таблицы кодирования узкополосного остатка) имеет значение более 0,5 (альтернативно, по меньшей мере, 0,5). В другом примере вычислитель 550 весовых коэффициентов выполнен с возможностью выполнять операцию автокорреляции для высокополосного сигнала S30 для кадров, имеющих конкретные состояния речевого режима (к примеру, для вокализованных сигналов). В этих случаях вычислитель 550 весовых коэффициентов может быть выполнен с возможностью назначать весовой коэффициент по умолчанию для кадров, имеющих другие состояния речевого режима и/или меньшие значения усиления основного тона.
Варианты осуществления включают в себя дополнительные реализации вычислителя 550 весовых коэффициентов, которые сконфигурированы так, чтобы вычислять весовые коэффициенты согласно характеристикам, отличным или в добавление к периодичности. Например, эта реализация может быть сконфигурирована так, чтобы назначать более высокое значение коэффициенту S190 усиления шума для речевых сигналов, имеющих большое запаздывание основного тона, чем для речевых сигналов, имеющих небольшое запаздывание основного тона. Другая такая реализация вычислителя 550 весовых коэффициентов сконфигурирована так, чтобы определять показатель гармоничности широкополосного речевого сигнала S10 или высокополосного сигнала S30 согласно показателю энергии сигнала в кратных значениях собственной частоты относительно энергии сигнала в других частотных компонентах.
Некоторые реализации широкополосного речевого кодера A100 сконфигурированы так, чтобы выводить индикацию периодичности или гармоничности (к примеру, однобитовый признак, указывающий то, является кадр гармоническим или негармоническим), на основе усиления основного тона и/или другого показателя периодичности или гармоничности, описанного в данном документе. В одном примере соответствующий широкополосный речевой декодер B100 использует эту индикацию для того, чтобы конфигурировать такую операцию, как вычисление весовых коэффициентов. В другом примере эта индикация используется в кодере и/или декодере при вычислении значения параметра речевого режима.
Может быть желательным для высокополосного генератора A302 возбуждения формировать высокополосный сигнал S120 возбуждения, так чтобы на энергию сигнала возбуждения практически не влияли конкретные значения весовых коэффициентов S180 и S190. В этом случае вычислитель 550 весовых коэффициентов может быть выполнен с возможностью вычислять значение весового коэффициента S180 гармоник для весового коэффициента S190 шума (или принимать это значение из памяти либо другого элемента высокополосного кодера A200) и извлекать значение другого весового коэффициента согласно, например, такому выражению:
(W
)
+(W
)
= 1,
(2)
harmonic
noise
2
2
W
W
harmonic
noise
где  обозначает весовой коэффициент S180 гармоник, а  обозначает весовой коэффициент S190 шума. Альтернативно, вычислитель 550 весовых коэффициентов может быть выполнен с возможностью выбирать, согласно значению показателя периодичности текущего кадра или субкадра, соответствующую одну из множества пар весовых коэффициентов S180, S190, где пары предварительно вычисляются так, чтобы удовлетворять отношению постоянства энергии, такому как выражение (2). Для реализации вычислителя 550 весовых коэффициентов, в которой наблюдается выражение (2), типичные значения весового коэффициента S180 гармоник варьируются от примерно 0,7 до примерно 1,0, а типичные значения весового коэффициента S190 шума варьируются от примерно 0,1 до примерно 0,7. Другие реализации вычислителя 550 весовых коэффициентов могут быть сконфигурированы так, чтобы функционировать согласно версии выражения (2), которая модифицирована согласно требуемому базовому взвешиванию между гармонически расширенным сигналом S160 и модулированным сигналом S170 шума.
Помехи могут возникать в синтезированном сигнале, когда разреженная таблица кодирования (таблица, записи которой большей частью являются нулевыми значениями) использована для того, чтобы вычислять квантованное представление остатка. Разреженность таблицы кодирования возникает особенно тогда, когда узкополосный сигнал кодируется с низкой скоростью передачи битов. Помехи, вызываемые разреженностью таблицы кодирования, в типичном варианте являются квазипериодическими во времени и возникают главным образом выше 3 кГц. Поскольку человеческий слух имеет лучшую временную разрешающую способность при более высоких частотах, эти помехи могут быть более заметны в полосе высоких частот.
Конфигурации включают в себя реализации высокополосного генератора A300 возбуждения, которые сконфигурированы так, чтобы выполнять устраняющую разреженность фильтрацию. Фиг.18 иллюстрирует блок-схему реализации A312 высокополосного генератора A302 возбуждения, который включает в себя устраняющий разреженность фильтр 600, выполненный с возможностью фильтровать деквантованный узкополосный сигнал возбуждения, сформированный посредством обратного квантователя 450. Фиг.19 иллюстрирует блок-схему реализации A314 высокополосного генератора A302 возбуждения, который включает в себя устраняющий разреженность фильтр 600, выполненный с возможностью фильтровать спектрально расширенный сигнал, сформированный посредством расширителя A400 спектра. Фиг.20 иллюстрирует блок-схему реализации A316 высокополосного генератора A302 возбуждения, который включает в себя устраняющий разреженность фильтр 600, выполненный с возможностью фильтровать вывод объединителя 490, чтобы сформировать высокополосный сигнал S120 возбуждения. Разумеется, реализации высокополосного генератора A300 возбуждения, которые комбинируют признаки любой из реализаций A304 и A306 с признаками любой из реализаций A312, A314 и A316, подразумеваются и тем самым явно раскрываются. Устраняющий разреженность фильтр 600 может быть также выполнен в составе расширителя А400 спектра: например, после любого из элементов 510, 520, 530 и 540 в расширителе А402 спектра. Следует особо подчеркнуть, что устраняющий разреженность фильтр 600 также может быть использован с реализациями расширителя A400 спектра, которые выполняют спектральное наложение, спектральное преобразование или гармоническое продолжение.
Устраняющий разреженность фильтр 600 может быть выполнен с возможностью изменять фазу своего входного сигнала. Например, может быть желательным для устраняющего разреженность фильтра 600 быть сконфигурированным и размещенным так, чтобы фаза высокополосного сигнала S120 возбуждения была рандомизирована или иным образом более равномерно распределена во времени. Также может быть желательным для характеристики устраняющего разреженность фильтра 600 быть более спектрально плоской, с тем чтобы спектр громкости фильтрованного сигнала не изменялся в значительной степени. В одном примере устраняющий разреженность фильтр 600 реализован как всечастотный фильтр, имеющий передаточную функцию согласно следующему выражению:
(3)
Один эффект такого фильтра может заключаться в том, чтобы распространять энергию входного сигнала так, что она более не концентрируется в небольшом числе выборок.
Помехи, вызываемые разреженностью таблицы кодирования, обычно более заметны для шумоподобных сигналов, где остаток включает в себя меньше информации основного тона, а также для речи в фоновом шуме. Разреженность в типичном варианте вызывает меньше помех в случаях, если возбуждение имеет долгосрочную структуру, и фактическая модификация фазы может вызывать зашумленность в вокализованных сигналах. Таким образом, может быть желательным сконфигурировать устраняющий разреженность фильтр 600, чтобы фильтровать невокализованные сигналы и пропускать, по меньшей мере, некоторые вокализованные сигналы без изменения. Невокализованные сигналы отличаются низким усилением основного тона (к примеру, усилением квантованной узкополосной адаптивной таблицы кодирования) и наклоном спектра (к примеру, квантованным первым коэффициентом отражения), который близок к нулю или положительный, показывая спектральную огибающую, которая плоская или наклоняется вверх с повышением частоты. Типичные реализации устраняющего разреженность фильтра 600 сконфигурированы так, чтобы фильтровать невокализованные звуки (к примеру, как указано посредством значения наклона спектра), фильтровать вокализованные звуки, когда усиление основного тона ниже порогового значения (альтернативно, не превышает пороговое значение), а в противном случае пропускать сигнал без изменения.
Дополнительные реализации устраняющего разреженность фильтра 600 включают в себя два или более фильтров, которые сконфигурированы так, чтобы иметь различные максимальные углы модификации фазы (к примеру, до 180 градусов). В этом случае устраняющий разреженность фильтр 600 может быть выполнен с возможностью выбирать из этих компонентных фильтров согласно значению усиления основного тона (к примеру, усиления квантованной адаптивной таблицы кодирования или LTP), с тем чтобы больший максимальный угол модификации фазы использовался для кадров, имеющих меньшие значения усиления основного тона. Реализация устраняющего разреженность фильтра 600 также может включать в себя различные компонентные фильтры, которые сконфигурированы так, чтобы модифицировать фазу по большей или меньшей части частотного спектра, с тем чтобы фильтр, выполненный с возможностью модифицировать фазу по более широкому частотному диапазону входного сигнала, использовался для кадров, имеющих меньшие значения усиления основного тона.
Для точного воспроизведения кодированного речевого сигнала может быть желательным для соотношения между уровнями высокополосной и узкополосной частей синтезированного речевого сигнала S100 быть аналогичным этому соотношению в исходном широкополосном речевом сигнале S10. Помимо спектральной огибающей, представленной посредством параметров S60a высокополосного кодирования, высокополосный кодер A200 может быть выполнен с возможностью характеризовать высокополосный сигнал S30 посредством задания огибающей времени или усиления. Как проиллюстрировано на фиг.10, высокополосный кодер A202 включает в себя вычислитель A230 коэффициентов высокополосного усиления, который сконфигурирован и выполнен с возможностью вычислять один или более коэффициентов усиления согласно отношению между высокополосным сигналом S30 и синтезированным высокополосным сигналом S130, таким как разность или соотношение между энергиями двух сигналов в течение кадра или какой-либо его части. В других реализациях высокополосного кодера A202 вычислитель A230 высокополосного усиления может быть аналогично сконфигурирован, но выполнен с возможностью вычислять вместо этого огибающую усиления согласно данному изменяющемуся во времени отношению между высокополосным сигналом S30 и узкополосным сигналом S80 возбуждения или высокополосным сигналом S120 возбуждения.
Временные огибающие узкополосного сигнала S80 возбуждения и высокополосного сигнала S30 с большой долей вероятности аналогичны. Следовательно, кодирование огибающей усиления, которое основано на отношении между высокополосным сигналом S30 и узкополосным сигналом S80 возбуждения (или сигналом, извлеченным из него, например, высокополосным сигналом S120 возбуждения или синтезированным высокополосным сигналом S130), как правило, более эффективно, чем кодирование огибающей усиления на основе высокополосного сигнала S30. В типичной реализации высокополосный кодер A202 выполнен с возможностью выводить квантованный индекс из восьми-двенадцати битов, который задает пять коэффициентов усиления для каждого кадра.
Вычислитель A230 коэффициентов высокополосного усиления может быть выполнен с возможностью выполнять вычисление коэффициентов усиления в качестве задачи, которая включает в себя одну или более последовательностей подзадач. Фиг.21 иллюстрирует блок-схему примера T200 такой задачи, которая вычисляет значение усиления для соответствующего субкадра согласно относительным энергиям высокополосного сигнала S30 и синтезированного высокополосного сигнала S130. Задачи 220a и 220b вычисляют энергии соответствующих субкадров надлежащих сигналов. Например, задачи 220a и 220b могут быть сконфигурированы так, чтобы вычислять энергию как сумму квадратов выборок соответствующего субкадра. Задача T230 вычисляет коэффициент усиления для субкадра как квадратный корень соотношения этих энергий. В этом примере задача T230 вычисляет коэффициент усиления как квадратный корень отношения энергии высокополосного сигнала S30 к энергии синтезированного высокополосного сигнала S130 в течение субкадра.
Может быть желательным для вычислителя A230 коэффициентов высокополосного усиления иметь конфигурацию для того, чтобы вычислять энергии субкадров согласно функции кадрирования. Фиг.22 иллюстрирует блок-схему такой реализации T210 задачи T200 вычисления коэффициента усиления. Задача T215a применяет функцию кадрирования к высокополосному сигналу S30, а задача T215b применяет такую же функцию кадрирования к синтезированному высокополосному сигналу S130. Реализации 222a и 222b задач 220a и 220b вычисляют энергии соответствующих окон, а задача T230 вычисляет коэффициент усиления для субкадра как квадратный корень отношения энергий.
Может быть желательным применять функцию кадрирования, которая перекрывает соседние окна. Например, функция кадрирования, которая формирует коэффициенты усиления, которые могут быть применены посредством перекрывания с суммированием, может помочь снизить или устранить разрывность между субкадрами. В одном примере вычислитель A230 коэффициентов высокополосного усиления выполнен с возможностью применять трапециевидную функцию кадрирования, как показано на фиг.23a, в которой окно перекрывает каждый из двух соседних субкадров на одну миллисекунду. Фиг.23b иллюстрирует применение этой функции кадрирования к каждому из пяти субкадров 20-миллисекундного кадра. Другие реализации вычислителя A230 коэффициентов высокополосного усиления могут быть сконфигурированы так, чтобы применять функции кадрирования, имеющие другие периоды перекрывания и/или другие формы окон (к примеру, прямоугольное, Хэмминга), которые могут быть симметричными или асимметричными. Также возможно для реализации вычислителя A230 коэффициентов высокополосного усиления быть сконфигурированным так, чтобы применять различные функции кадрирования к различным субкадрам в рамках кадра и/или для кадра, чтобы включать в себя субкадры различной длины.
Без ограничения, следующие значения представлены в качестве примеров для конкретных реализаций. 20-миллисекундный кадр предполагается для этих случаев, хотя любая другая длительность может быть использована. Для высокополосного сигнала, дискретизированного при 7 кГц, каждый кадр имеет 140 выборок. Если такой кадр делится на пять субкадров равной длины, каждый кадр должен иметь 28 выборок, и окно, показанное на фиг.23a, должно иметь ширину 42 выборки. Для высокополосного сигнала, дискретизированного при 8 кГц, каждый кадр имеет 160 выборок. Если такой кадр делится на пять субкадров равной длины, каждый кадр должен иметь 32 выборок, и окно, показанное на фиг.23a, должно иметь ширину 48 выборок. В других реализациях субкадры любой ширины могут быть использованы, и даже возможно для реализации вычислителя A230 высокополосного усиления быть сконфигурированной так, чтобы формировать различный коэффициент усиления для каждой выборки кадра.
Фиг.24 иллюстрирует блок-схему реализации B202 высокополосного декодера B200. Высокополосный декодер B202 включает в себя высокополосный декодер B300 возбуждения, который выполнен с возможностью формировать высокополосный сигнал S120 возбуждения на основе узкополосного сигнала S80 возбуждения. В зависимости от конкретных вариантов проектирования системы высокополосный генератор B300 возбуждения может быть реализован согласно любой из реализаций высокополосного генератора A300 возбуждения, описанных в данном документе. Типично желательно реализовать высокополосный генератор B300 возбуждения, чтобы иметь такую же характеристику, как высокополосный генератор возбуждения высокополосного кодера конкретной системы кодирования. Поскольку узкополосный декодер B110 в типичном варианте выполняет деквантование кодированного узкополосного сигнала S50 возбуждения, тем не менее, в большинстве случаев высокополосный генератор B300 возбуждения может быть реализован так, чтобы принимать узкополосный сигнал S80 возбуждения от узкополосного кодера B110, и не обязательно должен включать в себя обратный квантователь, выполненный с возможностью деквантовать кодированный узкополосный сигнал S50 возбуждения. Также можно для узкополосного декодера B110 быть реализованным так, чтобы включать в себя экземпляр устраняющего разреженность фильтра 600, выполненного с возможностью фильтрации деквантованного узкополосного сигнала возбуждения до того, как он входит в узкополосный синтезирующий фильтр, такой как фильтр 330.
Обратный квантователь 560 выполнен с возможностью деквантовать параметры S60a высокополосной фильтрации (в данном примере, до набора LSF), а преобразование 570 LSF в параметры LP-фильтрации преобразует LSF в набор коэффициентов фильтрации (например, как описано выше со ссылкой на обратный квантователь 240 и преобразование 250 узкополосного кодера A122). В других реализациях, как упоминалось выше, другие наборы коэффициентов (к примеру, коэффициентов косинусного преобразования Фурье) и/или представления коэффициентов (к примеру, ISP) могут быть использованы. Высокополосный синтезирующий фильтр B200 выполнен с возможностью формировать синтезированный высокополосный сигнал согласно высокополосному сигналу S120 возбуждения и набору коэффициентов фильтрации. Для системы, в которой высокополосный кодер включает в себя синтезирующий фильтр (к примеру, как в случае кодера A202, описанного выше), может быть желательным реализовать высокополосный синтезирующий фильтр B200 так, чтобы иметь такую же характеристику (к примеру, такую же передаточную функцию), что и характеристика синтезирующего фильтра.
Высокополосный декодер B202 также включает в себя обратный квантователь 580, выполненный с возможностью деквантовать коэффициенты S60b высокополосного усиления, и элемент 590 регулировки усиления (к примеру, умножитель или усилитель), сконфигурированный и выполненный с возможностью применять деквантованные коэффициенты усиления к синтезированному высокополосному сигналу, чтобы формировать высокополосный сигнал S100. Для случая, в котором огибающая усиления кадра задана посредством нескольких коэффициентов усиления, элемент 590 регулировки усиления может включать в себя логику, сконфигурированную так, чтобы применять коэффициенты усиления к соответствующим субкадрам, возможно, согласно функции кадрирования, которая может быть такой же или другой функцией кадрирования, как применяемая посредством вычислителя усиления (к примеру, вычислителя A230 высокополосного усиления) соответствующего высокополосного кодера. В других реализациях высокополосного кодера B202 элемент 590 регулировки усиления сконфигурирован аналогично, но выполнен с возможностью применять вместо этого деквантованные коэффициенты усиления к узкополосному сигналу S80 возбуждения или высокополосному сигналу S120 возбуждения.
Как упоминалось выше, может быть желательным получить одно состояние в высокополосном кодере и высокополосном декодере (к примеру, посредством использования деквантованных значений в ходе кодирования). Таким образом, может быть желательным в системе кодирования согласно этой реализации обеспечить одинаковое состояние соответствующих генераторов шума в высокополосных генераторах A300 и B300 возбуждения. Например, высокополосные генераторы A300 и B300 возбуждения этой реализации могут быть сконфигурированы так, чтобы режим генератора шума является детерминированной функцией от информации, уже закодированной в рамках этого кадра (к примеру, параметров S40 узкополосной фильтрации или их части и/или кодированного узкополосного сигнала S50 возбуждения или его части).
Один или более квантователей элементов, описанных в данном документе (к примеру, квантователь 230, 420 или 430), могут быть сконфигурированы так, чтобы выполнять классифицированное векторное квантование. Например, этот квантователь может быть выполнен с возможностью выбирать одну из набора таблиц кодирования на основе информации, которая уже закодирована в том же кадре в узкополосном канале и/или в высокополосном канале. Данная методика в типичном варианте предоставляет большую эффективность кодирования за счет дополнительного места для хранения таблицы кодирования.
Как описано выше со ссылкой, к примеру, на фиг.8 и 9, значительная часть периодичной структуры может оставаться в остаточном сигнале после удаления приблизительной спектральной огибающей из узкополосного речевого сигнала S20. Например, остаточный сигнал может содержать последовательность примерно периодических импульсов или выбросов во времени. Эта структура, которая в типичном варианте связана с основным тоном, с особенно большой вероятностью может возникать в вокализованных речевых сигналах. Вычисление квантованного представления узкополосного остаточного сигнала может включать в себя кодирование этой структуры основного тона согласно модели долгосрочной периодичности, как представленная посредством, например, одной или более таблиц кодирования.
Структура основного тона фактического остаточного сигнала может не совпадать точно с моделью периодичности. Например, остаточный сигнал может включать в себя небольшие дрожания фазы касательно регулярности позиций импульсов основного тона, так что расстояния между последовательными импульсами основного тона в кадре не совпадают в точности, и структура не является достаточно регулярной. Эти нерегулярности зачастую снижают эффективность кодирования.
Некоторые реализации узкополосного кодера A120 сконфигурированы так, чтобы выполнять регуляризацию структуры основного тона посредством применения адаптивного предыскажения шкалы времени к остатку до или в ходе квантования либо посредством включения в противном случае адаптивного предыскажения шкалы времени в кодированный сигнал возбуждения. Например, этот кодер может быть выполнен с возможностью выбирать или иным образом вычислять степень предыскажения шкалы времени (к примеру, согласно одному или более критериев перцепционного взвешивания и/или минимизации ошибок), с тем чтобы результирующий сигнал возбуждения оптимально соответствовал модели долгосрочной периодичности. Регуляризация структуры основного тона выполняется посредством поднабора CELP-кодеров, называемых кодерами с помощью линейного предсказания с возбуждением релаксационным кодом (RCELP).
RCELP-кодер в типичном варианте выполнен с возможностью выполнять предыскажение шкалы времени как адаптивный сдвиг по времени. Сдвигом по времени может быть задержка, варьирующаяся от нескольких миллисекунд со знаком минус до нескольких миллисекунд со знаком плюс, а она обычно изменяется плавно, чтобы не допустить слышимых разрывностей. В некоторых реализациях этот кодер выполнен с возможностью применять регуляризацию кусочно-линейным методом, при котором каждый кадр или субкадр предыскажается посредством соответствующего фиксированного сдвига по времени. В других реализациях кодер выполнен с возможностью применять регуляризацию как непрерывную функцию предыскажения шкалы, с тем чтобы кадр или субкадр предыскажался согласно контуру основного тона (также называемому траекторией основного тона). В некоторых случаях кодер выполнен с возможностью включать предыскажение шкалы времени в кодированный сигнал возбуждения посредством применения сдвига к перцепционно взвешенному входному сигналу, который используется для того, чтобы вычислять кодированный сигнал возбуждения.
Кодер вычисляет кодированный сигнал возбуждения, который регуляризован и квантован, а декодер деквантует кодированный сигнал возбуждения, чтобы получить сигнал возбуждения, который используется для того, чтобы синтезировать декодированный речевой сигнал. Таким образом, декодированный выходной сигнал предоставляет такую же задержку варьирования, что и включенная в кодированный сигнал возбуждения посредством регуляризации. В типичном варианте, информация, задающая величины регуляризации, не передается в декодер.
Регуляризация зачастую упрощает кодирование остаточного сигнала, что увеличивает производительность кодирования долгосрочного предсказателя и тем самым повышает общую эффективность кодирования, как правило, без формирования помех. Может быть желательным выполнять регуляризацию для кадров, которые являются вокализованными. Например, узкополосный кодер A124 может быть выполнен с возможностью сдвигать кадры или субкадры, имеющие долговременную структуру, такие как вокализованные сигналы. Может быть желательным даже выполнять регуляризацию для субкадров, которые включают в себя энергию импульсов основного тона. Существующие реализации RCELP-кодеров включают в себя усовершенствованный кодек с переменной скоростью (EVRC), описанный в Ассоциации промышленности средств связи (TIA) IS-127, и вокодер с выбираемым режимом (SMV) для Партнерского проекта третьего поколения 2 (3GPP2).
К сожалению, регуляризация может вызывать проблемы для широкополосного речевого кодера, в котором высокополосное возбуждение извлекается из кодированного узкополосного сигнала возбуждения (например, системы, включающей в себя широкополосный речевой кодер A100 и широкополосный речевой декодер B100). Вследствие его извлечения из сигнала с предыскаженной шкалой времени высокополосный сигнал возбуждения, в общем, может иметь временную зависимость, которая отличается от временной зависимости исходного высокополосного речевого сигнала. Другими словами, высокополосный сигнал возбуждения более не является синхронным с исходным высокополосным речевым сигналом.
Рассогласование по времени между предыскаженным высокополосным сигналом возбуждения и исходным высокополосным речевым сигналом может вызывать некоторые проблемы. Например, предыскаженный высокополосный сигнал возбуждения может более не предоставлять надлежащего входного возбуждения для синтезирующего фильтра, который сконфигурирован согласно параметрам фильтрации, извлеченным из исходного высокополосного речевого сигнала. Как результат, синтезированный высокополосный сигнал может содержать слышимые помехи, которые снижают воспринимаемое качество декодированного широкополосного речевого сигнала.
Рассогласование во времени также может приводить к неэффективности кодирования огибающей усиления. Как упоминалось выше, корреляция с большой долей вероятности существует между огибающими времени узкополосного сигнала S80 возбуждения и высокополосного сигнала S30. Посредством кодирования огибающей усиления высокополосного сигнала согласно отношению между этими двумя временными огибающими повышение эффективности кодирования может быть реализовано, в сравнении с кодированием непосредственно огибающей усиления. Когда кодированный узкополосный сигнал возбуждения регуляризован, тем не менее, эта корреляция может быть ослаблена. Рассогласование во времени между узкополосным сигналом S80 возбуждения и высокополосным сигналом S30 может заставлять флуктуации появляться в коэффициентах S60b высокополосного усиления, и эффективность кодирования может упасть.
Кофигурации включают в себя способы широкополосного кодирования речи, которые выполняют предыскажение шкалы времени высокополосного речевого сигнала согласно предыскажению шкалы времени, включенному в соответствующий кодированный узкополосный сигнал возбуждения. Потенциальные преимущества этих способов включают в себя повышение качества декодированного широкополосного речевого сигнала и/или повышение эффективности кодирование огибающей высокополосного усиления.
Фиг. 25 иллюстрирует блок-схему реализации AD10 широкополосного речевого кодера A100. Кодер AD10 включает в себя реализацию A124 узкополосного кодера A120, которая сконфигурирована так, чтобы выполнять регуляризацию в ходе вычисления кодированного узкополосного сигнала S50 возбуждения. Например, узкополосный кодер A124 может быть сконфигурирован согласно одной или более реализаций RCELP, поясненных выше.
Узкополосный кодер A124 также выполнен с возможностью выводить сигнал SD10 данных регуляризации, который задает степень применяемого предыскажения шкалы времени. Для различных случаев, в которых узкополосный кодер A124 выполнен с возможностью применять фиксированный сдвиг по времени к каждому кадру или субкадру, сигнал SD10 данных регуляризации может включать в себя последовательность значений, указывающих величину каждого сдвига по времени как целое или нецелое значение в показателях выборок, миллисекунд или какого-либо другого приращения времени. Для случая, когда узкополосный кодер A124 выполнен с возможностью иным образом модифицировать временную шкалу кадра или другой последовательности выборок (к примеру, посредством сжатия одной части и расширения другой части), сигнал SD10 информации регуляризации может включать в себя соответствующее описание модификации, например, набор параметров функции. В одном конкретном примере узкополосный кодер A124 выполнен с возможностью разделить кадр на три субкадра и вычислить фиксированный сдвиг по времени для каждого субкадра, с тем чтобы сигнал SD10 данных регуляризации указывал три величины сдвига по времени для каждого регуляризованного кадра кодированного узкополосного сигнала.
Широкополосный речевой кодер AD10 включает в себя линию D120 задержки, сконфигурированную так, чтобы продвигать вперед или замедлять части высокополосного речевого сигнала S30 согласно величинам задержки, указанным посредством входного сигнала, чтобы формировать высокополосный речевой сигнал S30a с предыскажением шкалы времени. В примере, показанном на фиг.25, линия D120 задержки сконфигурирована так, чтобы предыскажать шкалу времени высокополосного речевого сигнала S30 согласно предыскажению, указанному посредством сигнала SD10 данных регуляризации. Таким образом, такое же значение предыскажения шкалы времени, что включено в кодированный узкополосный сигнал S50 возбуждения, также применяется к соответствующей части высокополосного речевого сигнала S30 до анализа. Хотя этот пример иллюстрирует линию D120 задержки как элемент, отдельный от высокополосного кодера A200, в других реализациях линия D120 задержки размещена как часть высокополосного кодера.
Дополнительные реализации высокополосного кодера A200 могут быть сконфигурированы так, чтобы выполнять спектральный анализ (к примеру, LPC-анализ) неискаженного высокополосного речевого сигнала S30, чтобы осуществлять предыскажение шкалы времени высокополосного речевого сигнала S30 до вычисления параметров S60b высокополосного усиления. Данный кодер может включать в себя, например, реализацию линии D120 задержки, выполненную с возможностью выполнять предыскажение шкалы времени. В этих случаях, тем не менее, параметры S60a высокополосной фильтрации на основе сигнала S30 без предыскажения шкалы времени могут описывать спектральную огибающую, которая рассогласована по времени с высокополосным сигналом S120 возбуждения.
m
m
m
m
Линия D120 задержки может быть сконфигурирована согласно любой комбинации логических элементов и элементов памяти, подходящей для применения требуемых операций предыскажения шкалы времени к высокополосному речевому сигналу S30. Например, линия D120 задержки может быть сконфигурирована так, чтобы считывать высокополосный речевой сигнал S30 из буфера согласно требуемым сдвигам по времени. Фиг.26a иллюстрирует схематичное представление такой реализации D122 линии D120 задержки, которая включает в себя сдвиговый регистр SR1. Сдвиговый регистр SR1 - это буфер некоторой длины , который выполнен с возможностью принимать и сохранять последних выборок высокополосного речевого сигнала S30. Значение  равно, по меньшей мере, сумме максимальных положительных (или "продвижение вперед") и отрицательных (или "замедление") сдвигов по времени, которые должны поддерживаться. Может быть удобным, чтобы значение было равно длине кадра или субкадра высокополосного сигнала S30.
Линия D122 задержки сконфигурирована так, чтобы выводить высокополосный сигнал S30a с предыскаженной шкалой времени из позиции OL смещения сдвигового регистра SR1. Позиция OL смещения изменяется относительно опорной позиции (нулевой сдвиг по времени) согласно текущему сдвигу по времени, указанному, например, посредством сигнала SD10 данных регуляризации. Линия D122 задержки может быть сконфигурирована так, чтобы поддерживать одинаковые ограничения на продвижение вперед и замедление либо, альтернативно, одно ограничение большим другого, так чтобы мог выполняться больший сдвиг в одном, чем в другом направлении. Фиг.26a иллюстрирует конкретный пример, который поддерживает больший положительный, чем отрицательный сдвиг по времени. Линия D122 задержки может быть сконфигурирована так, чтобы выводить одну или более выборок одновременно (в зависимости, например, от ширины выходной шины).
Сдвиг по времени регуляризации, имеющий громкость более нескольких миллисекунд, может приводить к слышимым помехам в декодированном сигнале. В типичном варианте, громкость сдвига по времени регуляризации, выполняемого посредством узкополосного кодера A124, не превышает нескольких миллисекунд, так чтобы сдвиги по времени, указанные посредством сигнала SD10 данных регуляризации, ограничивались. Тем не менее, в этих случаях может быть желательным для линии D122 задержки быть сконфигурированной так, чтобы накладывать максимальное ограничение на сдвиги повремени в положительном и/или отрицательном направлении (например, чтобы предоставлять более строгое ограничение, чем налагаемое посредством узкополосного кодера).
m
m
Фиг.26b иллюстрирует схематичное представление реализации D124 линии D122 задержки, которая включает в себя сдвиговое окно SW. В этом примере позиция OL смещения ограничена сдвиговым окном SW. Хотя фиг.26b иллюстрирует случай, в котором длина буфера превышает ширину сдвигового окна SW, линия D124 задержки также может быть реализована таким образом, чтобы ширина сдвигового окна SW равнялась .
В других реализациях линия D120 задержки сконфигурирована так, чтобы записывать высокополосный речевой сигнал S30 в буфер согласно требуемым сдвигам по времени. Фиг.27 иллюстрирует схематичное представление такой реализации D130 линии D120 задержки, которая включает в себя два сдвиговых регистра SR2 и SR3, сконфигурированных так, чтобы принимать и сохранять высокополосный речевой сигнал S30. Линия D130 задержки сконфигурирована так, чтобы записывать кадр или субкадр из сдвигового регистра SR2 в сдвиговый регистр SR3 согласно сдвигу по времени, указанному, к примеру, посредством сигнала SD10 данных регуляризации. Сдвиговый регистр SR3 сконфигурирован как FIFO-буфер, выполненный с возможностью выводить высокополосный сигнал S30 с предыскажением шкалы времени.
В конкретном примере, показанном на фиг.27, сдвиговый регистр SR2 включает в себя часть FB1 буфера кадров и часть DB буфера задержки, а сдвиговый регистр SR3 включает в себя часть FB2 буфера кадров, часть AB буфера продвижения вперед и часть буфера RB замедления. Длина буфера AB продвижения вперед и буфера RB замедления может совпадать либо один может быть длиннее другого, так что поддерживается больший сдвиг в одном направлении, чем в другом. Буфер DB задержки и часть RB буфера замедления могут быть сконфигурированы так, чтобы иметь одинаковую длину. Альтернативно, буфер DB задержки может быть короче буфера RB замедления, чтобы учитывать интервал времени, используемый для того, чтобы передавать выборки из буфера FB1 кадров в сдвиговый регистр SR3, который может включать в себя другие операции обработки, такие как предыскажение выборок до сохранения в сдвиговый регистр SR3.
В примере по фиг.27 буфер FB1 кадров выполнен с возможностью иметь длину, равную длине одного кадра высокополосного сигнала S30. В другом примере буфер FB1 кадров выполнен с возможностью иметь длину, равную длине субкадра высокополосного сигнала S30. В этом случае линия D130 задержки может быть сконфигурирована так, чтобы включать в себя логику, чтобы применять одинаковую (к примеру, среднюю) задержку к субкадрам кадра, который должен быть сдвинут. Линия D130 задержки также может включать в себя логику, чтобы усреднять значения из буфера FB1 кадров со значениями, которые должны быть перезаписаны в буфер RB замедления или буфер AB продвижения вперед. В дополнительном примере сдвиговый регистр SR3 может быть выполнен с возможностью принимать значения высокополосного сигнала S30 через буфер FB1 кадров, и в этом случае линия D130 задержки может включать в себя логику, чтобы интерполировать по промежуткам между последовательными кадрами или субкадрами, записанными в сдвиговый регистр SR3. В других реализациях линия D130 задержки может быть сконфигурирована так, чтобы выполнять операцию предыскажения для выборок из буфера FB1 кадров до записи их в сдвиговый регистр SR3 (к примеру, согласно функции, описанной посредством сигнала SD10 данных регуляризации).
Может быть желательным для линии D120 задержки применять предыскажение шкалы времени, которое основано на, но не идентично предыскажению, заданному посредством сигнала SD10 данных регуляризации. Фиг 28 иллюстрирует блок-схему реализации AD12 широкополосного речевого кодера AD10, которая включает в себя преобразователь (средство отображения) D110 значений задержки. Преобразователь D110 значений задержки выполнен с возможностью отображать предыскажение, указанное посредством сигнала SD10 данных регуляризации, в отображенные значения SD10a задержки. Линия D120 задержки выполнена с возможностью формировать высокополосный речевой сигнал S30a с предыскажением шкалы времени согласно предыскажению, указанному посредством отображенных значений SD10a задержки.
Сдвиг по времени, применяемый посредством узкополосного кодера, как ожидается, может плавно развиваться со временем. Следовательно, в типичном варианте достаточно вычислить средний узкополосный сдвиг по времени, применяемый к субкадрам в течение кадра речи, и сдвинуть соответствующий кадр высокополосного речевого сигнала S30 согласно этому среднему. В одном таком примере преобразователь D110 значений задержки выполнен с возможностью вычислять среднее значений задержки субкадров для каждого кадра, а линия D120 задержки сконфигурирована так, чтобы применять вычисленное среднее к соответствующему кадру высокополосного сигнала S30. В других примерах среднее за более короткий период (например, два субкадра или половина кадра) или более длинный период (например, два кадра) может быть вычислено и применено. В случае, если среднее является нецелым значением выборок, преобразователь D110 значений задержки может быть выполнен с возможностью округлять значение до целого числа выборок до вывода его в линию D120 задержки.
Узкополосный кодер A124 может быть выполнен с возможностью включать в себя сдвиг по времени регуляризации нецелого числа выборок в кодированном узкополосном сигнале возбуждения. В этом случае может быть желательным для преобразователя D110 значений задержки быть сконфигурированным так, чтобы округлять узкополосный сдвиг по времени целым числом выборов, а для линии D120 задержки - применять округленный сдвиг по времени к высокополосному речевому сигналу S30.
В некоторых реализациях широкополосного речевого кодера AD10 частоты дискретизации узкополосного речевого сигнала S20 и широкополосного речевого сигнала S30 могут различаться. В этих случаях преобразователь D110 значений задержки может быть выполнен с возможностью корректировать величины сдвига по времени, указанные в сигнале SD10 данных регуляризации, чтобы учитывать разность между частотами дискретизации узкополосного речевого сигнала S20 (или узкополосного сигнала S80 возбуждения) и высокополосного речевого сигнала S30. Например, преобразователь D110 значений задержки может быть выполнен с возможностью масштабировать величины сдвига по времени согласно соотношению частот дискретизации. В одном конкретном примере, приведенном выше, узкополосный речевой сигнал S20 дискретизируется при 8 кГц, а высокополосный речевой сигнал S30 дискретизируется при 7 кГц. В этом случае преобразователь D110 значений задержки выполнен с возможностью умножать каждую величину задержки на 7/8. Реализации преобразователя D110 значений задержки также могут быть сконфигурированы так, чтобы выполнять эту операцию масштабирования вместе с операцией округления до целого числа и/или усреднения сдвигов по времени, описанной в данном документе.
В дополнительных реализациях линия D120 задержки сконфигурирована так, чтобы иным образом модифицировать шкалу времени кадра или другой последовательности выборок (к примеру, посредством сжатия одной части и расширения другой части). Например, узкополосный кодер A124 может быть выполнен с возможностью выполнять регуляризацию согласно такой функции, как контур или траектория основного тона. В этом случае сигнал SD10 данных регуляризации может включать в себя соответствующее описание функции, например, набор параметров, а линия D120 задержки может включать в себя логику, сконфигурированную так, чтобы предыскажать кадры или субкадры высокополосного речевого сигнала S30 согласно функции. В других реализациях преобразователь D110 значений задержки выполнен с возможностью усреднять, масштабировать и/или округлять функцию до того, как она применяется к высокополосному речевому сигналу S30 посредством линии D120 задержки. Например, преобразователь D110 значений задержки может быть выполнен с возможностью вычислять одно или более значений задержки согласно функции, причем каждое значение задержки включает в себя ряд выборок, которые затем применяются посредством линии D120 задержки, чтобы предыскажать шкалу времени одного или более соответствующих кадров или субкадров высокополосного сигнала S30.
Фиг.29 иллюстрирует блок-схему последовательности операций способа MD100 предыскажения шкалы времени высокополосного речевого сигнала согласно предыскажению шкалы времени, включенному в соответствующий кодированный узкополосный сигнал возбуждения. Задача TD100 обрабатывает широкополосный речевой сигнал, чтобы получить узкополосный речевой сигнал и высокополосный речевой сигнал. Например, задача TD100 может быть сконфигурирована так, чтобы фильтровать широкополосный речевой сигнал с помощью гребенки фильтров, имеющей низкочастотные и высокочастотные фильтры, например, реализации гребенки фильтров A110. Задача TD200 кодирует узкополосный речевой сигнал, по меньшей мере, в кодированный узкополосный сигнал возбуждения и множество параметров узкополосной фильтрации. Кодированный узкополосный сигнал возбуждения и/или параметры фильтрации могут быть квантованы, и кодированный узкополосный речевой сигнал также может включать в себя другие параметры, например, параметр речевого режима. Задача TD200 также включает в себя предыскажение шкалы времени в кодированном узкополосном сигнале возбуждения.
Задача TD300 формирует высокополосный сигнал возбуждения на основе узкополосного сигнала возбуждения. В этом случае узкополосный сигнал возбуждения основан на кодированном узкополосном сигнале возбуждения. Согласно, по меньшей мере, высокополосному сигналу возбуждения задача TD400 кодирует высокополосный речевой сигнал, по меньшей мере, во множество параметров высокополосной фильтрации. Например, задача TD400 может быть сконфигурирована так, чтобы кодировать высокополосный речевой сигнал, по меньшей мере, во множество квантованных LSF. Задача TD500 применяет сдвиг по времени к высокополосному речевому сигналу, который основан на информации, связанной с предыскажением шкалы времени, включенной в кодированный узкополосный сигнал возбуждения.
Задача TD400 может быть сконфигурирована так, чтобы выполнять спектральный анализ (например, LPC-анализ) высокополосного речевого сигнала и/или вычислять огибающую усиления высокополосного речевого сигнала. В этих случаях задача TD500
может быть сконфигурирована так, чтобы применять сдвиг по времени к высокополосному речевому сигналу до анализа и/или вычисления огибающей усиления.
Другие реализации широкополосного речевого кодера A100 сконфигурированы так, чтобы выполнять противоположное предыскажение шкалы времени высокополосного сигнала S120 возбуждения, вызванное посредством предыскажения шкалы времени, включенного в кодированный узкополосный сигнал возбуждения. Например, высокополосный генератор A300 возбуждения может быть реализован так, чтобы включать в себя реализацию линии D120 задержки, которая сконфигурирована так, чтобы принимать сигнал SD10 данных регуляризации или преобразованные значения SD10a задержки или применять соответствующий обратный сдвиг по времени к узкополосному сигналу S80 возбуждения и/или к последующему сигналу на основе него, такому как гармонически расширенный сигнал S160 или высокополосный сигнал S120 возбуждения.
Дополнительные реализации широкополосного речевого кодера могут быть сконфигурированы так, чтобы кодировать узкополосный речевой сигнал S20 и высокополосный речевой сигнал S30 независимо друг от друга, с тем чтобы высокополосный речевой сигнал S30 кодировался как представление высокополосной спектральной огибающей и высокополосного сигнала возбуждения. Эта реализация может быть сконфигурирована так, чтобы выполнять предыскажение шкалы времени высокополосного остаточного сигнала или иным образом включать предыскажение шкалы времени в кодированный высокополосный сигнал возбуждения согласно информации, связанной с предыскажением шкалы времени, включенной в кодированный узкополосный сигнал возбуждения. Например, высокополосный кодер может включать в себя реализацию линии D120 задержки и/или преобразователь D110 значений задержки, описанные в данном документе, которые сконфигурированы так, чтобы применять предыскажение шкалы времени к высокополосному остаточному сигналу. Потенциальные преимущества этой операции включают в себя более эффективное кодирование высокополосного остаточного сигнала и лучшее совпадение между синтезированными узкополосным и высокополосным речевыми сигналами.
Как упоминалось выше, конфигурации, описанные в данном документе, включают в себя реализации, которые могут быть использованы для того, чтобы выполнять встроенное кодирование, поддерживая совместимость с узкополосными системами и устраняя потребность в перекодировке. Поддержка высокополосного кодирования также может служить для того, чтобы проводить различия на основе затрат между микросхемами, наборами микросхем, устройствами и/или сетями, имеющими широкополосную поддержку с обратной совместимостью, а также имеющими узкополосную поддержку. Поддержка высокополосного кодирования, описанная в данном документе, также может быть использована в связи с методикой поддержки низкополосного кодирования, и система, способ либо устройство согласно этому конфигурации могут поддерживать кодирование частотных компонентов, например, от примерно 50 или 100 Гц до примерно 7 или 8 кГц.
Как упоминалось выше, добавление высокополосной поддержки в речевой кодер позволяет повысить разборчивость, особенно в отношении различения фрикативных звуков. Хотя это различение обычно может быть извлечено слушающей стороной из конкретного содержимого, поддержка полосы высоких частот может выступать в качестве разрешающего признака в распознавании речи и других приложениях машинной интерпретации, например, систем автоматической речевой навигации по меню и/или автоматической обработки вызовов.
Устройство согласно конфигурации может быть встроено в портативное устройство мобильной связи, например, сотовый телефон или личное цифровое устройство (PDA). Альтернативно, это устройство может быть включено в другие устройства связи, такие как телефонная трубка VoIP, персональная вычислительная машина, сконфигурированная так, чтобы поддерживать VoIP-связь, либо сетевое устройство, сконфигурированное так, чтобы маршрутизировать телефонную или VoIP-связь. Например, устройство согласно конфигурации может быть реализовано в микросхеме или наборе микросхем для устройства связи. В зависимости от конкретного варианта применения, это устройство также может включать в себя такие признаки, как аналогово-цифровое и/или цифро-аналоговое преобразование речевого сигнала, схема для осуществления усиления и/или других операций обработки речевого сигнала и/или радиочастотная схема для передачи и/или приема кодированного речевого сигнала.
Явно предполагается и раскрывается, что конфигурации могут включать в себя и/или быть использованы с одним или более других признаков, раскрытых в Предварительных патентных заявках (США) номера 60/667901 и 60/673965. Эти признаки включают в себя удаление выбросов высокой энергии короткой длительности, которые возникают в полосе высоких частот и практически отсутствуют в полосе узких частот. Такие признаки включают в себя фиксированное или адаптивное сглаживание представлений коэффициентов, например, высокополосных LSF. Такие признаки включают в себя фиксированное или адаптивное формирование шума, ассоциативно связанного с квантованием представлений коэффициентов, таких как LSF. Такие признаки также включают в себя фиксированное или адаптивное сглаживание огибающей усиления и адаптивное ослабление огибающей усиления.
Различные элементы реализаций высокополосных генераторов A300 и B300 возбуждения, высокополосный кодер A200, высокополосный декодер B200, широкополосный речевой кодер A100 и широкополосный речевой декодер B100 могут быть реализованы как электронные и/или оптические устройства, постоянно размещающиеся, например, на одной микросхеме или на двух или более микросхемах в наборе микросхем, хотя другие компоновки без ограничения также подразумеваются. Один или более элементов такого устройства могут быть реализованы полностью или частично как один или более наборов инструкций, выполненных с возможностью приводиться в исполнение на одной или более фиксированных или программируемых матриц логических элементов (к примеру, транзисторов, логических схем), таких как микропроцессоры, встроенные процессоры, IP-сердечники, процессоры цифровых сигналов, FPGA (программируемые пользователем матричные БИС), ASSP (специализированные стандартные продукты) и ASIC (специализированные интегрированные схемы). Также возможно для одного или более таких элементов иметь общую структуру (к примеру, процессор, используемый для того, чтобы приводить в исполнение части кода, соответствующие различным элементам в различные моменты времени, набор инструкций, приводимый в исполнение для того, чтобы выполнять задачи, соответствующие различным элементам в различные моменты времени, или компоновку электронных и/или оптических устройств, выполняющих операции для различных элементов в различные моменты времени). Более того, возможно для одного или более таких элементов выполнять задачи или приводить в исполнение другие наборы инструкций, которые не связаны непосредственно с работой устройства, например, задачу, связанную с другой операцией устройства или системы, в которую встроено устройство.
Фиг.30 иллюстрирует блок-схему последовательности операций способа M100, согласно конфигурации, кодирования высокополосной части речевого сигнала, имеющего узкополосную часть и высокополосную часть. Задача X100 вычисляет набор параметров фильтрации, которые характеризуют спектральную огибающую высокополосной части. Задача X200 вычисляет спектрально расширенный сигнал посредством применения нелинейной функции к сигналу, извлеченному из узкополосной части. Задача X300 формирует синтезированный высокополосный сигнал согласно (A) набору параметров фильтрации и (B) высокополосному сигналу возбуждения на основе спектрально расширенного сигнала. Задача X400 вычисляет спектральную огибающую на основе отношения между (C) энергией высокочастотной части и (D) энергией сигнала, извлеченного из узкополосной части.
Фиг.31a иллюстрирует блок-схему последовательности операций способа M200 формирования высокополосного сигнала возбуждения согласно конфигурации. Задача Y100 вычисляет гармонически расширенный сигнал посредством применения нелинейной функции к узкополосному сигналу возбуждения, извлеченному из узкополосной части речевого сигнала. Задача Y200 смешивает гармонически расширенный сигнал с модулированным сигналом шума, чтобы сформировать высокополосный сигнал возбуждения. Фиг.31b иллюстрирует блок-схему последовательности операций способа M210 формирования высокополосного сигнала возбуждения согласно другой конфигурации, включающего в себя задачи Y300 и Y400. Задача Y300 вычисляет огибающую временной области согласно энергии во времени одного из узкополосного сигнала возбуждения и гармонически расширенного сигнала. Задача Y400 модулирует сигнал шума согласно огибающей временной области, чтобы сформировать модулированный сигнал шума.
Фиг.32 иллюстрирует блок-схему последовательности операций способа M300, согласно конфигурации, декодирования высокополосной части речевого сигнала, имеющего узкополосную часть и высокополосную часть. Задача Z100 принимает набор параметров фильтрации, которые характеризуют спектральную огибающую высокополосной части, и набор коэффициентов усиления, которые характеризуют временную огибающую высокополосной части. Задача Z200 вычисляет спектрально расширенный сигнал посредством применения нелинейной функции к сигналу, извлеченному из узкополосной части. Задача Z300 формирует синтезированный высокополосный сигнал согласно (A) набору параметров фильтрации и (B) высокополосному сигналу возбуждения на основе спектрально расширенного сигнала. Задача Z400 модулирует огибающую усиления синтезированного высокополосного сигнала на основе набора коэффициентов усиления. Например, задача Z400 может быть сконфигурирована так, чтобы модулировать огибающую усиления синтезированного высокополосного сигнала посредством применения набора коэффициентов усиления к сигналу возбуждения, извлеченному из узкополосной части, к спектрально расширенному сигналу, к высокополосному сигналу возбуждения или к синтезированному высокополосному сигналу.
Фиг.33 иллюстрирует беспроводную телефонную систему 3300 множественного доступа с кодовым разделением каналов (CDMA), которая может включать в себя множество мобильных станций 3302, множество базовых станций 3304, контроллер базовых станций (BSC) 3306 и центр коммутации мобильной связи (MSC) 3308. MSC 3308 может быть выполнен с возможностью взаимодействовать с коммутируемой телефонной сетью общего пользования (PSTN) 3310. MSC 3308 может также быть выполнен с возможностью взаимодействовать с BSC 3306. Может быть несколько BSC 3306 в системе 3300. Каждая базовая станция 3304 может включать в себя, по меньшей мере, один сектор (не показан), причем каждый сектор может иметь всенаправленную антенну или антенну, указывающую в конкретном направлении радиально от базовых станций 3304. Альтернативно, каждый сектор может включать в себя две антенны для разнесенного приема. Каждая базовая станция 3304 может быть выполнена с возможностью поддерживать множество назначений частот. Пересечение сектора и назначения частот может называться CDMA-каналом. Мобильные станции 3302 могут включать в себя телефоны сотовой или подвижной системы связи (PCS).
В ходе работы сотовой телефонной системы 3300 базовые станции 3304 могут принимать наборы сигналов обратной линии связи от наборов мобильных станций 3302. Мобильные станции 3302 могут выполнять телефонные звонки или другие виды связи. Каждый сигнал обратной линии связи, принятый данной базовой станцией 3304, может быть обработан в рамках этой базовой станции 3304. Результирующие данные могут перенаправляться в BSC 3306. BSC может предоставлять выделение ресурсов вызова и функциональность управления мобильностью, включающую в себя компоновку мягкой передачи обслуживания между базовыми станциями 3304. BSC 3306 также может направлять принимаемые данные в MSC 3308, который предоставляет дополнительные услуги маршрутизации для взаимодействия с PSTN 3310. Аналогично, PSTN 3310 может взаимодействовать с MSC 3308, и MSC 3308 может взаимодействовать с BSC 3306, который, в свою очередь, может управлять базовыми станциями 3304 так, чтобы передавать наборы сигналов прямой линии связи в наборы мобильных станций 3302.
Фиг.34 иллюстрирует окружение 3400 передачи сигналов, включающее в себя кодер 3402, декодер 3404 и среду 3406 передачи. Кодер 3402 может быть реализован в мобильной станции 3302 или в базовой станции 3304. Декодер 3404 может быть реализован в базовой станции 3304 или в мобильной станции 3302. Кодер 3402 может кодировать речевой сигнал s(n) 3410, формируя кодируемый речевой сигнал Senc(n) 3412. Кодируемый речевой сигнал 3412 может быть передан через среду 3406 передачи в декодер 3404. Декодер 3404 может декодировать senc(n) 3412, таким образом формируя синтезируемый речевой сигнал s(n) 3416.
Термин "кодирование" при использовании в данном документе, в общем, может относиться к способам, охватывающим кодирование и декодирование. В общем, системы, способы и устройства кодирования стремятся минимизировать число битов, передаваемых через среду 3406 передачи (то есть чтобы минимизировать полосу пропускания senc(n) 3412), при поддержании приемлемого воспроизведения речи (то есть s(n) 3410 ~ s(n) 3416). Устройство может быть мобильным телефоном, персональным цифровым устройством (PDA), портативным компьютером, цифровой камерой, музыкальным проигрывателем, игровым устройством, базовой станцией или любым другим устройством с процессором. Структура кодируемого речевого сигнала 3412 может изменяться согласно конкретному режиму кодирования речи, используемому кодером 3402. Различные режимы кодирования описаны ниже.
Компоненты кодера 3402 и декодера 3404, описанные ниже, могут быть реализованы как электронные аппаратные средства, как вычислительное программное обеспечение или как комбинации вышеозначенного. Эти компоненты описаны ниже в отношении их функциональности. Реализована эта функциональность в качестве аппаратных средств или программного обеспечения, может зависеть от конкретного варианта применения и структурных ограничений, накладываемых на систему в целом. Среда 3406 передачи может представлять много различных сред передачи, включая, но не только, наземную линию связи, линию связи между базовой станцией и спутником, беспроводную связь между сотовым телефоном и базовой станцией или между сотовым телефоном и спутником.
Каждая сторона связи может передавать данные, а также принимать данные. Каждая сторона может использовать кодер 3402 и декодер 3404. Тем не менее, окружение 3400 передачи сигналов описывается ниже как включающее в себя кодер 3402 на одном конце среды 3406 передачи и декодер 3404 на другом.
В целях этого описания, s(n) 3410 может включать в себя цифровой речевой сигнал, полученный во время типичного разговора, включающего в себя различные звуки голоса и периоды молчания. Речевой сигнал s(n) 3410 может быть секционирован на кадры, и каждый кадр может быть далее секционирован на субкадры. Эти произвольно выбранные границы кадра/субкадра могут использоваться, когда выполняется некоторая блочная обработка. Операции, описанные как выполняемые для кадров, также могут выполняться для субкадров, в этом смысле кадр и субкадр используются взаимозаменяемо в данном документе. Тем не менее, s(n) 3410, возможно, не будет секционирован на кадры/субкадры, если непрерывная обработка, а не блочная обработка реализована. По сути, блочные методики, описанные ниже, могут распространяться на непрерывную обработку.
Кодер 3402 может быть реализован как узкополосный (NB) кодер или широкополосный (WB) кодер. Кодер NB может выполнить цифровую дискретизацию сигнала s(n) 3410 при 8 кГц и закодировать сигнальную информацию, существующую в полосе пропускания от 50 Гц до 4 кГц. Пример кодера NB может включать в себя усовершенствованный кодер с переменной скоростью (EVRC-B). Кодер WB может выполнить цифровую дискретизацию сигнала s(n) 3410 при 16 кГц и закодировать информацию, существующую в полосе пропускания кодера NB плюс между диапазонами 4-8kHz. Пример кодера WB может включать в себя кодер EVRC-WB. В одном аспекте EVRC-WB - это широкополосное расширение EVRC-B. Каждый кадр, секционированный из сигнала s(n) 3410, может включать в себя 20 миллисекунд (мс) данных, или 160 выборок. Каждый субкадр может включать в себя 53 или 54 выборки данных. Хотя эти параметры могут подходить для кодирования речи, они являются просто примерами и могут использоваться другие подходящие альтернативные параметры.
Если кодер 3402 реализован как кодер NB, кадр может быть пакетирован как узкополосный пакет 3418. Узкополосный пакет 3418 может включать в себя узкополосный идентификатор 3422. Идентификатор 3422 может указать декодеру 3404 то, что узкополосный пакет 3418 закодирован с помощью кодера NB. Если кодер 3402 реализован как кодер WB, кадр может быть пакетирован как широкополосный пакет 3420. Широкополосный пакет 3420 может включать в себя широкополосный идентификатор 3424. Идентификатор 3424 может указать декодеру 3404 то, что широкополосный пакет 3420 закодирован с помощью кодера WB. Декодер 3404 может включать в себя модуль 3414 идентификации пакетов, который может распознавать идентификатор 3422 или 3424 и определять то, должны ли декодер NB декодер WB быть реализованы так, чтобы декодировать пакет 3418 или 3420.
Фиг.35 - это блок-схема последовательности операций, иллюстрирующая одну конфигурацию способа 3500 для включения идентификатора в пакет, ассоциативно связанный с речевым сигналом. В одном аспекте идентификатор может указать то, закодирован пакет кодером NB или кодером WB. Способ 3500 может быть реализован кодером, например кодером 3402.
Сигнал может быть принят 3502 кодером 3402. В одном аспекте сигнал - это тип речевого сигнала. Сигнал может быть проанализирован и секционирован 3504 на множество кадров. Секционированный кадр сигнала может быть закодирован 3506 с половинной скоростью, используя конкретную схему кодирования (к примеру, CELP, PPP, NELP). В одном аспекте пакет может быть закодирован с 80 битами. Термин "с половинной скоростью" может быть использован для того, чтобы представлять пакет с помощью 80 битов. Выполняется определение 3508 в отношении того, является ли кадр широкополосным кадром с половинной скоростью, включающим в себя 80 битов. Другими словами, выполняется определение 3508 в отношении того, выступал ли кодер 3402 в качестве кодера WB и закодировал кадр как широкополосный кадр с половинной скоростью (WB-HR). Если кадр - это WB-HR кадр, широкополосный идентификатор может быть пакетирован 3510 в пакет. В одном аспекте широкополосный идентификатор включает в себя первые шесть цифр десятичных чисел 126 и 127 в двоичной форме. Десятичное число 126 в двоичной форме - это 1111110, а двоичная форма 127 - это 1111111. По сути, широкополосный идентификатор может включать в себя строку из шести единиц (к примеру, 111111).
Если определено на 3508, что кадр не является WB-HR-кадром, узкополосный идентификатор может быть пакетирован 3512 в пакет. В одном аспекте узкополосный идентификатор может быть ассоциативно связан с параметром задержки. Например, биты, используемые для того, чтобы представлять параметр задержки, могут также использоваться как узкополосный идентификатор. Пакет может быть передан 3514. В одном аспекте пакет передается 3514 в декодер.
Фиг.36 - это блок-схема последовательности операций, иллюстрирующая одну конфигурацию способа 3600 декодирования пакета. Способ 3600 может быть реализован декодером 3404. В одном аспекте пакет с половинной скоростью принимается 3602. Идентификатор, включенный в пакет с половинной скоростью, может быть проанализирован 3604. Идентификатор может указать, закодирован пакет с половинной скоростью кодером WB или кодером NB. В одном аспекте идентификатор - это специальный идентификатор пакета (ID), который является недействительным/недопустимым запаздыванием. Выполняется определение 3606 в отношении того, является ли пакет WB-HR-пакетом, на основе анализа идентификатора. Если пакет является WB-HR-пакетом, пакет может быть декодирован 3608, используя широкополосные схемы декодирования. В одной конфигурации декодер 3404 выступает в качестве декодера WB. Тем не менее, если определено 3606, что пакет не является WB-HR, пакет может быть декодирован 3610, используя узкополосные схемы декодирования. Декодер 3404 может выступать в качестве декодер NB. Сигнал может быть восстановлен 3612 из одного или более декодированных пакетов.
Фиг.37 - это блок-схема, иллюстрирующая одну конфигурацию многомодового кодера 3702, поддерживающего связь с многомодовым декодером 3704 через канал 3706 связи. Канал 3706 связи может включать в себя радиочастотный (RF) интерфейс. Кодер 3702 может включать в себя ассоциативно связанный декодер (не показан). Кодер 3702 и его ассоциативно связанный декодер могут формировать первый речевой кодер. Декодер 3704 может включать в себя ассоциативно связанный кодер (не показан). Декодер 3704 и его ассоциативно связанный кодер могут формировать второй речевой кодер.
Кодер 3702 может включать в себя модуль 3718 вычисления начальных параметров, модуль 3720 определения скорости, модуль 3722 классификации режимов, множество режимов 3724, 3726, 3728 кодирования и модуль 3730 форматирования пакетов. Модуль 3730 форматирования пакетов может вставлять идентификатор 3708 пакета. Число режимов 3724, 3726, 3728 кодирования показывается как N, которое может выражать любое число режимов 3724, 3726, 3728 кодирования. Для простоты показаны три режима 3724, 3726, 3728 кодирования, при этом пунктир указывает существование других режимов кодирования.
Декодер 3704 может включать в себя модуль 3732 дизассемблера пакетов, множество режимов 3734, 3736, 3738 декодирования и постфильтр 3740. Модуль 3732 дизассемблера пакетов может включать в себя модуль 3714 идентификации пакетов. Число режимов 3734, 3736, 3738 декодирования показано как N, которое может выражать любое число режимов 3734, 3736, 3738 декодирования. Для простоты, показаны три режима 3734, 3736, 3738 декодирования, при этом пунктир указывает существование других режимов декодирования.
Речевой сигнал, s(n) 3710, может быть предоставлен в модуль 3718 вычисления начальных параметров. Речевой сигнал 3710 может быть разделен на блоки выборок, упоминаемых как кадры. Значение n может обозначать номер кадра или значение n может обозначать номер выборки в кадре. В альтернативной конфигурации остаточный сигнал ошибки с линейным прогнозированием (LP) может использоваться вместо речевого сигнала 3710. Остаточный LP-сигнал ошибки может использоваться речевыми кодерами, например, кодером с линейным прогнозированием с возбуждением по коду (CELP).
Модуль 3718 вычисления начальных параметров может извлекать различные параметры на основе текущего кадра. В одном аспекте эти параметры включают в себя, по меньшей мере, одно из следующего: коэффициенты фильтрации кодирования с линейным прогнозированием (LPC), коэффициенты пар спектральных линий (LSP), нормализованные автокорреляционные функции (NACF), запаздывание с разомкнутым контуром, частоты переходов через нуль, энергии диапазона и формантный остаточный сигнал.
Модуль 3718 вычисления начальных параметров может быть соединен с модулем 3722 классификации режимов. Модуль 3722 классификации режимов может динамически переключить между режимами 3724, 3726, 3728 кодирования. Модуль кодирования вычисления начальных параметров может предоставлять параметры в модуль 3722 классификации режимов. Модуль 3722 классификации режимов может быть соединен с модулем 3720 определения скорости. Модуль 3720 определения скорости может принимать сигнал управления скоростью. Сигнал управления скоростью может направлять кодер 3702 так, чтобы кодировать речевой сигнал 3710 на конкретной скорости. В одном аспекте конкретная скорость включает в себя полную скорость, что может означать то, что речевой сигнал 3710 должен быть закодирован, используя сто семьдесят один бит. В другом примере конкретная скорость включает в себя половину скорости, что может означать то, что речевой сигнал 3710 должен быть закодирован, используя восемьдесят битов. В дополнительном примере конкретная скорость включает в себя одну восьмую скорости, что может означать то, что речевой сигнал 3710 должен быть закодирован, используя шестнадцать битов.
Как ранее заявлено, модуль 3722 классификации режимов может быть подсоединен так, чтобы динамически переключать между режимами 3724, 3726, 3728 кодирования на покадровой основе, чтобы выбрать самый подходящий режим 3724, 3726, 3728 кодирования для текущего кадра. Модуль 3722 классификации режимов может выбрать конкретный режим 3724, 3726, 3728 кодирования для текущего кадра посредством сравнения параметров с предварительно определенными пороговыми и/или предельными значениями. Кроме того, модуль 3722 классификации режимов может выбирать конкретный режим 3724, 3726, 3728 кодирования на основе сигнала управления скоростью, принятого от модуля 3720 определения скорости. Например, режим A 3724 кодирования может кодировать речевой сигнал 3710, используя сто семьдесят один бит, тогда как режим B 3726 кодирования может кодировать речевой сигнал 3710, используя восемьдесят битов.
На основе энергоемкости кадра модуль 3722 классификации режимов может классифицировать кадр как неречевой или неактивный речевой (к примеру, молчание, фоновый шум или паузы между словами) либо речевой. На основе периодичности кадра модуль 3722 классификации режимов может классифицировать речевые кадры как конкретный тип речи, к примеру, вокализованный, невокализованный или неустановившийся.
Вокализованная речь может включать в себя речь, которая демонстрирует относительно высокую степень периодичности и может включать в себя гласные звуки. Период основного тона может быть компонентом речевого кадра, который может быть использован для того, чтобы анализировать и восстанавливать содержимое кадра. Невокализованная речь может включать в себя согласные звуки. Неустановившиеся речевые кадры могут включать в себя переходные варианты между вокализованной и невокализованной речью. Речевые кадры, которые классифицированы как и невокализованная речь, и не невокализованная речь, могут быть классифицированы как неустановившаяся речь.
Речевой режим (также называемый голосовым режимом) указывает то, представляет текущий кадр вокализованную или невокализованную речь. Этот параметр может иметь двоичное значение на основе одного или двух показателей периодичности (к примеру, переходов через нуль, NACF, усиления основного тона) и/или активности речи для кадра, например, отношения между таким показателем и пороговым значением. В других реализациях параметр речевого режима имеет одно или более состояний, чтобы указывать такие режимы, как молчание или фоновый шум либо переход между молчанием и вокализованной речью.
Классификация речевых кадров может позволить различным режимам 3724, 3726, 3728 кодирования быть использованными для того, чтобы кодировать различные типы речи, приводя к более эффективному использованию полосы пропускания в совместно используемом канале, таком как канал 3706 связи. Например, поскольку вокализованная речь является периодической и таким образом допускает высокую степень прогнозирования, режим 3724, 3726, 3728 кодирования с высокой степенью прогнозирования и низкой скоростью передачи битов может использоваться для того, чтобы закодировать вокализованную речь.
Модуль 3722 классификации режимов может выбирать режим 3724, 3726, 3728 кодирования для текущего кадра на основе классификации кадра. Различные режимы 3724, 3726, 3728 кодирования могут быть подключены параллельно. Один или более режимов 3724, 3726, 3728 кодирования может быть функциональным в любой момент времени. В одной конфигурации один режим 3724, 3726, 3728 кодирования выбирается согласно классификации текущего кадра.
Различные режимы 3724, 3726, 3728 кодирования могут работать согласно различным скоростям кодирования в битах, различным схемам кодирования или различным комбинациям скорости кодирования в битах и схемы кодирования. Как ранее заявлено, различные используемые скорости кодирования могут быть полной скоростью, половиной скорости, четвертью скорости и/или одной восьмой скорости. Различные используемые схемы кодирования могут быть кодированием CELP, кодированием с периодом шага прототипа (PPP) (кодированием с интерполяцией формы сигналов (WI)) и/или кодированием с линейным прогнозированием с возбуждением по шуму (NELP). Таким образом, например, конкретным режимом 3724, 3726, 3728 кодирования может быть полноскоростной CELP, другим режимом 3724, 3726, 3728 кодирования может быть CELP с половинной скоростью, еще одним режимом 3724, 3726, 3728 кодирования может быть полноскоростной PPP, и еще одним режимом 3724, 3726, 3728 кодирования может быть NELP.
В соответствии с режимом 3724, 3726, 3728 кодирования CELP линейная прогнозирующая модель речевого тракта может быть возбуждена с помощью квантованной версии остаточного LP-сигнала. В режиме кодирования CELP может быть квантован весь текущий кадр. Режим 3724, 3726, 3728 кодирования CELP может предусматривать относительно точное воспроизведение речи, но за счет относительно высокой скорости кодирования в битах. Режим 3724, 3726, 3728 кодирования CELP может использоваться для того, чтобы кодировать кадры, классифицированные как неустановившаяся речь.
В соответствии с режимом 3724, 3726, 3728 кодирования NELP фильтрованный псевдослучайный шумовой сигнал может использоваться для того, чтобы моделировать остаточный LP-сигнал. Режим 3724, 3726, 3728 кодирования NELP может быть относительно простой методикой, которая достигает низкой скорости передачи в битах. Режим 3724, 3726, 3728 кодирования NELP может использоваться для того, чтобы кодировать кадры, классифицированные как невокализованная речь.
В соответствии с режимом 3724, 3726, 3728 кодирования PPP может быть закодирован поднабор периодов основного тона в пределах каждого кадра. Остающиеся периоды речевого сигнала могут быть восстановлены посредством интерполяции между этими периодами прототипа. В реализации временной области кодирования PPP первый набор параметров может быть вычислен, который описывает то, как изменить предыдущий период прототипа, чтобы аппроксимировать текущий период прототипа. Один или более кодовых векторов могут быть выбраны, которые, когда суммированы, аппроксимируют разницу между текущим периодом прототипа и измененным предыдущим периодом прототипа. Второй набор параметров описывает эти выбранные кодовые векторы. В реализации частотной области кодирования PPP набор параметров может быть вычислен, чтобы описать амплитудные и фазовые спектры прототипа. В соответствии с реализацией кодирования PPP декодер 3704 может синтезировать выходной речевой сигнал 3716 посредством восстановления текущего прототипа на основе наборов параметров, описывающих амплитуду и фазу. Прошлый период прототипа может использоваться как прогнозирующий параметр текущей амплитуды и/или фазы периода прототипа. Речевой сигнал может быть интерполирован по области между текущим восстановленным периодом прототипа и предыдущим восстановленным периодом прототипа. Прототип может включать в себя часть текущего кадра, которая должна быть линейно интерполирована с помощью прототипов от предыдущих кадров, которые были также размещены в пределах кадра, чтобы восстановить речевой сигнал 3710 или остаточный LP-сигнал в декодере 3704.
Кодирование периода прототипа, а не всего речевого кадра позволяет уменьшить скорость кодирования в битах. Кадры, классифицированные как вокализованная речь, могут быть закодированы с помощью режима 3724, 3726, 3728 кодирования PPP. Используя периодичность вокализованной речи, режим 3724, 3726, 3728 кодирования PPP позволяет достигать более низкой скорости передачи битов, чем режим 3724, 3726, 3728 кодирования CELP.
Выбранный режим 3724, 3726, 3728 кодирования может быть связан с модулем 3730 форматирования пакетов. Выбранный режим 3724, 3726, 3728 кодирования может закодировать, или квантовать, текущий кадр и предоставить квантованные параметры кадра 3712 в модуль 3730 форматирования пакетов. Модуль 3730 форматирования пакетов может ассемблировать квантованные параметры 3712 кадра в форматированный пакет 3713. Модуль 3730 форматирования пакетов может форматировать пакет как широкополосный пакет или как узкополосный пакет. Идентификатор 3708 пакета может быть включен в пакет. Как пояснено ранее, идентификатор 3708 пакета может указать декодеру 3704 то, является пакет широкополосным пакетом или узкополосным пакетом. Модуль 3730 форматирования пакетов может предоставить форматированный пакет 3713 в приемное устройство (не показано) по каналу 3706 связи. Приемное устройство может принимать, демодулировать и оцифровывать форматированный пакет 3713 и предоставлять пакет 3713 в декодер 3704.
В декодере 3704 модуль 3732 дизассемблера пакетов принимает пакет 3713 от приемного устройства. Модуль 3732 дизассемблера пакетов может распаковать пакет 3713, и модуль 3714 идентификации пакетов может распознать идентификатор 3708 пакета, включенный в пакет 3713. Модуль 3714 идентификации пакетов может обнаружить то, что пакет 3713 является WB-HR-пакетом или узкополосным пакетом с половинной скоростью. Модуль 3732 дизассемблера пакетов также может быть выполнен с возможностью динамически переключать между режимами 3734, 3736, 3738 декодирования на попакетной основе. Число режимов 3734, 3736, 3738 декодирования может быть таким же, как и число режимов 3724, 3726, 3728 кодирования. Каждый пронумерованный режим 3724, 3726, 3728 кодирования может быть ассоциативно связан с соответствующим аналогично пронумерованным режимом 3734, 3736, 3738 декодирования, выполненным с возможностью использовать такую же скорость кодирования в битах и схему кодирования.
Если модуль 3732 дизассемблера пакетов обнаруживает пакет 3713, пакет 3713 дизассемблируется и предоставляется в подходящий режим 3734, 3736, 3738 декодирования. Подходящий режим 3734, 3736, 3738 декодирования может реализовать методики широкополосного или узкополосного декодирования на основе анализа идентификатора 3708 пакета. Если модуль 3732 дизассемблера пакетов не обнаруживает пакет, объявляется потеря пакета, и декодер стирания (не показан) может выполнить обработку стирания кадра. Параллельная матрица режимов 3734, 3736, 3738 декодирования может быть связана с постфильтром 3740. Подходящий режим 3734, 3736, 3738 декодирования может декодировать, или деквантовать, пакет 3713 и предоставить информацию в постфильтр 3740. Постфильтр 3740 может восстановить, или синтезировать, речевой кадр, выводя синтезируемый речевой кадр s(n) 3716.
В одной конфигурации сами квантованные параметры не передаются. Вместо этого, передаются индексы таблицы кодирования, указывающие адреса в различных поисковых таблицах (LUT) (не показаны) в декодере 3704. Декодер 3704 может принимать индексы таблицы кодирования и выполняет поиск в различных таблицах кодирования LUT на предмет соответствующих значений параметров. Соответственно, индексы таблицы кодирования для параметров, таких как, к примеру, запаздывание основного тона, усиление адаптивной таблицы кодирования и LSP, могут быть переданы, и в трех ассоциативно связанных LUT таблиц кодирования может быть выполнен поиск посредством декодера 3704.
В соответствии с режимом кодирования CELP могут быть переданы запаздывания основного тона, усиления основного тона, параметры таблицы кодирования и параметры LSP. Индексы таблицы кодирования LSP передаются, поскольку остаточный LP-сигнал может быть синтезирован в декодере 3704. Дополнительно, может быть передана разность между значением запаздывания основного тона для текущего кадра и значением запаздывания основного тона для предыдущего кадра.
В соответствии с режимом кодирования PPP, в котором речевой сигнал 3710 должен быть синтезирован в декодере 3704, передаются параметры запаздывания основного тона, амплитуды и фазы. Более низкая скорость передачи битов, используемая посредством методик кодирования речи PPP, возможно, не разрешает передачу как абсолютной информации о запаздывании основного тона, так и относительных значений разности запаздывания основного тона.
В соответствии с одним примером высокопериодические кадры, такие как вокализованные речевые кадры, передаются с режимом кодирования PPP на низкой скорости передачи битов, который квантует разность между значением запаздывания основного тона для текущего кадра и значением запаздывания основного тона для предыдущего кадра для передачи и не квантует абсолютное значение запаздывания основного тона для текущего кадра для передачи. Поскольку вокализованные кадры являются высокопериодическими по характеру, передача значения разности, а не абсолютного значения запаздывания основного тона, позволяет предоставить возможность достижения более низкой скорости кодирования в битах. В одном аспекте это квантование обобщено так, что взвешенная сумма значений параметра для предыдущих кадров вычисляется, при этом сумма весов равна единице, и взвешенная сумма вычитается из значения параметра для текущего кадра. Разность затем может быть квантована.
Фиг.38 - это блок-схема последовательности операций, иллюстрирующая один пример способа 3800 кодирования речи с переменной скоростью. В одном аспекте способ 3800 реализован отдельной мобильной станцией 3302, которой может быть разрешено кодировать пакет как широкополосный пакет или как узкополосный пакет. В других аспектах способ 3800 может быть реализован более чем одной мобильной станцией 3302. Другими словами, одна мобильная станция 3302 может включать в себя кодер, чтобы кодировать широкополосный или узкополосный пакет, тогда как отдельная мобильная станция 3302 может включать в себя декодер, чтобы декодировать пакет, используя методики широкополосного или узкополосного декодирования. Начальные параметры текущего кадра могут быть вычислены 3802. В одной конфигурации модуль 3718 вычисления начальных параметров вычисляет 3802 параметры. Параметры могут включать в себя одно или более из следующего: коэффициенты фильтрации кодирования с линейным прогнозированием (LPC), коэффициенты пар спектральных линий (LSP), нормализованные автокорреляционные функции (NACF), запаздывание с разомкнутым контуром, энергии диапазона, частоты переходов через нуль и формантный остаточный сигнал.
Текущий кадр может быть классифицирован 3804 как активный или неактивный. В одной конфигурации модуль 3722 классификации классифицирует текущий кадр как включающий в себя "активную" или "неактивную" речь. Как описано выше, s(n) 3710 может включать в себя периоды речи и периоды молчания. Активная речь может включать в себя произносимые слова, тогда как неактивная речь может включать в себя фоновый шум, молчание, паузы и т.д.
Выполняется определение 3806 в отношении того, классифицирован текущий кадр как активный или неактивный. Если текущий кадр классифицирован как активный, активная речь дополнительно классифицируется 3808 как вокализованные, невокализованные или неустановившиеся кадры. Человеческая речь может быть классифицирована многими различными способами. Две классификации речи могут включать в себя вокализованные и невокализованные звуки. Речь, которая не вокализована или является невокализованной, может быть классифицирована как неустановившаяся речь.
Режим кодер/декодер может быть выбран 3810 на основе классификации кадра, выполненной на этапах 3806 и 3808. Различные режимы кодер/декодер могут быть связаны параллельно, как показано на фиг.37. Различные режимы кодер/декодер работают согласно различным схемам кодирования. Определенные режимы могут быть более эффективными при кодировании частей речевого сигнала s(n) 3710, демонстрирующих определенные свойства.
Как пояснено ранее, режим CELP может быть выбран для того, чтобы кодировать кадры, классифицированные как неустановившаяся речь. Режим PPP может быть выбран для того, чтобы кодировать кадры, классифицированные как вокализованная речь. Режим NELP может быть выбран для того, чтобы кодировать кадры, классифицированные как невокализованная речь. Та же самая методика кодирования может часто работать в различных скоростях передачи данных с различными уровнями производительности. Различные режимы кодер/декодер на фиг.37 могут представлять различные методики кодирования или одну методику кодирования, работающую при различных скоростях передачи битов, или комбинации вышеупомянутого.
Выбранный режим кодера может кодировать 3812 текущий кадр и отформатировать 3814 закодированный кадр в пакет согласно в скорости передачи битов. Идентификатор пакета может быть включен 3816 в пакет. Идентификатор пакета может указать то, закодирован пакет как широкополосный или как узкополосный пакет. Пакет может быть отправлен 3818 в декодер.
Фиг.39 - это блок-схема, иллюстрирующая одну конфигурацию обычного узкополосного пакета 3902 с половинной скоростью и широкополосного пакета 3904 с половинной скоростью. В одном аспекте каждый пакет может включать в себя идентификатор пакета, например, идентификатор A 3906 пакета и идентификатор B 3907 пакета. Идентификатор A 3906 пакета могут включать в себя допустимое значение 3908 запаздывания, а идентификатор B 3907 пакета может включать в себя недопустимое значение 3914 запаздывания. Недопустимое значение 3914 запаздывания может быть значением, которое указывает декодеру то, является конкретный пакет широкополосным пакетом 3904 с половинной скоростью или специальным узкополосным пакетом с половинной скоростью. Допустимое значение запаздывания может указать декодеру, если конкретный пакет является обычным (не специальным) узкополосным пакетом 3902 CELP с половинной скоростью. В других конфигурациях допустимое значение запаздывания может указать декодеру, если конкретный пакет является любым другим пакетом с половинной скоростью, который включает в себя значение запаздывания основного тона в диапазоне [0:100]. Значение запаздывания основного тона в диапазоне [0:100] используется просто как пример. Существующие системы и способы могут применяться к данному N-битовому полю с набором значений, которые действительны (ассоциативно связаны с конкретной схемой кодирования), и другим набором значений, которые недопустимы/недействительны.
В одной конфигурации обычный узкополосный пакет 3902 с половинной скоростью использует каждый из 80 битов, включенных в пакет 3902. По сути, параметр задержки может использоваться для того, чтобы хранить допустимое значение 3908 запаздывания, которое может указать декодеру то, что входящий пакет является обычным (не специальным) узкополосным CELP с половинной скоростью. В одном аспекте параметр задержки включает в себя 7 битов. Параметр задержки, возможно, не является значением 3910 между десятичными числами 101 и 127. Допустимые (действительные) значения запаздывания в этом 7-битовом поле могут быть значением 3910 между десятичными числами 0 и 100. Значение 3910 между 0 и 100 может быть включено в обычный (не специальный) узкополосный пакет 3902 CELP с половинной скоростью в его двоичной форме (к примеру, двоичное число в 7 битов).
В одном аспекте широкополосный кодер реализует схему кодирования NELP, чтобы кодировать невокализованные звуки. Сигнал для невокализованных звуков может быть пакетирован в широкополосный пакет 3904 с половинной скоростью как пакет с 80 битами. Тем не менее, пакеты с невокализованными звуками, возможно, не включают в себя задержку. В одной конфигурации задержки, возможно, не анализируются кодером на предмет невокализованных звуков, поскольку допустимое воспроизведение сигнала для невокализованных звуков, возможно, достигнуто без задержки. Широкополосный пакет 3904 с половинной скоростью может использовать 74 из 80 битов, оставляя свободными 6 битов. Идентификатор B 3907 пакета, ассоциативно связанный с широкополосным пакетом 3904 с половинной скоростью, может включать в себя строку 3912 из шести единиц (то есть 111111). В одной конфигурации это может соответствовать десятичным числам 126 и 127 (в 7 битах) и может быть зарезервировано как идентификатор для широкополосного пакета 3904 с половинной скоростью.
В одной конфигурации, по меньшей мере, два недопустимых значения из N-битового параметра могут быть использованы. Если два недопустимых значения используются, один бит из N-битового параметра может быть освобожден, чтобы переносить информацию. В дополнительной конфигурации числе битов из N-битового параметра, который может быть освобожден, чтобы переносить информацию, может быть равно log2(X), где X - это число недопустимых значений, предоставленных из N-битового параметра. Например, восемь недопустимых значений могут освободить три бита для переноса другой информации.
Фиг.40 - это схема 4000, иллюстрирующая число битов, выделяемых различным типам пакетов. Схема 4000 включает в себя множество параметров 4002. Каждый параметр в пределах множества параметров 4002 может использовать определенное число битов. Различные типы пакетов, проиллюстрированные на схеме 4000, возможно, кодированы с помощью одного из различных ранее поясненных режимов кодирования. Типы пакета могут включать в себя полноскоростной CELP (FCELP) 4004, CELP с половинной скоростью (HCELP) 4006, специальный CELP с половинной скоростью (SPLHCELP) 4008, полноскоростной PPP (FPPP) 4010, специальный PPP с половинной скоростью (SPLHPPP) 4012, PPP с четвертью скорости (QPPP) 4014, специальный NELP с половинной скоростью (SPLHNELP) 4016, NELP с четвертью скорости (QNELP) 4018 и кодер 4020 молчания.
FCELP 4004 и FPPP 4010 могут быть пакетами в общей сложности со 171 битом. Пакет FCELP 4004 можно преобразовать в пакет SPLHCELP 4008. В одном аспекте пакет FCELP 4004 выделяет биты для параметров, таких как индекс фиксированной таблицы кодирования (индекс FCB) и усиление фиксированной таблицы кодирования (усиление FCB). Как показано, когда пакет FCELP 4004 преобразуется в пакет SPLHCELP 4008, нулевые биты выделяются для параметров, таких как индекс FCB, усиление FCB и дельта-запаздывания. Другими словами, пакет SPLHCELP 4008 передается в декодер без этих битов. Пакет SPLHCELP 4008 включает в себя биты, которые выделены для параметров, таких как пара спектральных линий (LSP), усиление адаптивной таблицы кодирования (ACB), специальный идентификатор половинной скорости, специальный идентификатор пакета, запаздывание основного тона и информация бита режима. Общее количество битов, переданных в декодер, может быть уменьшено со 171 до 80.
Аналогично, пакет FPPP 4010 можно преобразовать в пакет SPLHPPP 4012. Как показано, пакет FPPP 4010 выделяет биты параметрам совмещения полос частот. Пакет FPPP 4010 можно преобразовать в пакет SPLHPPP 4012. Биты, выделенные совмещениям полос частот, могут быть отброшены. Другими словами, пакет SPLHPPP 4012 передается в декодер без этих битов. Общее количество битов, переданных в декодер, может быть уменьшено от 171 до 80. В одной конфигурации биты, выделенные амплитуде и глобальным параметрам совмещения, включены в пакет SPLHPPP 4012. Амплитудный параметр может указывать амплитуду спектра сигнала s(n) 3710 и глобальный параметр совмещения и может представлять линейный сдвиг фазы, который может гарантировать максимальное выравнивание.
Кроме того, различные типы пакетов могут включать в себя биты, выделенные параметру запаздывания/специального идентификатора пакета. Параметр запаздывания/специального идентификатора пакета может представлять идентификатор пакета, который позволяет декодеру распознавать, кодирован конкретный пакет с помощью методик узкополосного кодирования или методик широкополосного кодирования.
Различные конфигурации в данном документе иллюстрированы с различными числами битов для различных параметров и пакетов. Конкретное число битов, ассоциативно связанных с каждым параметром, в данном документе приведено в качестве примера и не имеет намерение быть ограничивающим. Параметры могут включать в себя больше или меньше битов, чем примеры, используемые в данном документе.
Фиг.41 иллюстрирует различные компоненты, которые могут быть использованы в устройстве 4108 связи в соответствии с конфигурацией. Устройство 4108 связи может включать в себя процессор 4102, который управляет работой устройства 4108. Процессор 4102 также может упоминаться как центральный процессор. Память 4104, которая может включать в себя постоянное запоминающее устройство (ROM) и оперативное запоминающее устройство (RAM), предоставляет инструкции и данные процессору 4102. Часть памяти 4104 также может включать в себя энергонезависимое оперативное запоминающее устройство (NVRAM).
Устройство 4108 связи также может включать в себя корпус 4122, который содержит передающее устройство 4110 и приемное устройство 4112, чтобы обеспечить передачу и прием данных между терминалом 4108 доступа и удаленным местоположением. Передающее устройство 4110 и приемное устройство 4112 могут быть комбинированы в приемо-передающее устройство 4120. Антенна 4118 крепится к корпусу 4122 и электрически соединена с приемо-передающим устройством 4120.
Устройство 4108 связи также включает в себя детектор 4106 сигналов, используемый для того, чтобы распознавать и количественно оценивать уровень сигналов, принимаемых приемо-передающим устройством 4120. Детектор 4106 сигналов распознает эти сигналы как общую энергию, элементарные сигналы контрольной энергии на псевдошум (PN), спектральную плотность мощности и другие сигналы.
Преобразователь 4114 состояний устройства 4108 связи управляет состоянием устройства 4108 связи на основе текущего состояния и дополнительных сигналов, принимаемых приемо-передающим устройством 4120 и распознаваемых детектором 4106 сигналов. Устройство 4108 связи допускает работу в любом из ряда состояний.
Устройство 4108 связи также включает в себя определитель 4124 системы, используемый, чтобы управлять устройством 4108 и определять, в систему какого поставщика услуг устройство 4108 должно выполнять передачу, когда оно определяет, что система текущего поставщика услуг не подходит.
Различные компоненты устройства 4108 связи соединены вместе посредством системы 4118 шин, которая может включать в себя шину питания, шину сигнала управления и шину сигнала состояния помимо шины данных. Тем не менее, для простоты различные шины проиллюстрированы на фиг.41 как система 4118 шин. Устройство 4108 связи также может включать в себя процессор цифровых сигналов (DSP) 4116 для использования при обработке сигналов.
Информация и сигналы могут быть представлены с помощью любой из множества различных технологий и методик. Например, данные, инструкции, команды, информация, сигналы, биты, символы и элементарные сигналы, которые могут приводиться в качестве примера по всему описанию выше, могут быть представлены напряжениями, токами, электромагнитными волнами, магнитными полями или частицами, оптическими полями или частицами либо любой их комбинацией.
Различные иллюстративные логические блоки, модули, схемы и этапы алгоритма, описанные в связи с раскрытыми в данном документе конфигурациями, могут быть реализованы как электронные аппаратные средства, вычислительное программное обеспечение либо комбинация вышеозначенного. Чтобы понятно проиллюстрировать эту взаимозаменяемость аппаратных средств и программного обеспечения, различные иллюстративные компоненты, блоки, модули, схемы и этапы описаны выше, в общем, на основе их функциональности. Реализована эта функциональность в качестве аппаратных средств или программного обеспечения, зависит от конкретного варианта применения и структурных ограничений, накладываемых на систему в целом. Высококвалифицированные специалисты могут реализовать описанную функциональность различными способами для каждого конкретного варианта применения, но такие решения по реализации не должны быть интерпретированы как являющиеся отступлением от области применения настоящих систем и способов.
Различные иллюстративные логические блоки, модули и схемы, описанные в связи с раскрытыми в данном документе конфигурациями, могут быть реализованы или выполнены с помощью процессора общего назначения, процессора цифровых сигналов (DSP), специализированной интегральной схемы (ASIC), программируемой пользователем матричной БИС (FPGA) или другого программируемого логического устройства, дискретного логического элемента или транзисторной логики, дискретных компонентов аппаратных средств либо любой комбинации вышеозначенного, предназначенной для того, чтобы выполнять описанные в данном документе функции. Процессором общего назначения может быть микропроцессор, но в альтернативном варианте, процессором может быть любой процессор, контроллер, микроконтроллер или конечный автомат. Процессор также может быть реализован как комбинация вычислительных устройств, к примеру, комбинация DSP и микропроцессора, множество микропроцессоров, один или более микропроцессоров вместе с ядром DSP либо любая другая подобная конфигурация.
Этапы способа или алгоритма, описанные в связи с раскрытыми в данном документе конфигурациями, могут быть реализованы непосредственно в аппаратных средствах, в программном модуле, приводимом в исполнение посредством процессора, либо в комбинации вышеозначенного. Программный модуль может постоянно размещаться в оперативном запоминающем устройстве (RAM), флэш-памяти, постоянном запоминающем устройстве (ROM), электрически программируемом ROM (EPROM), электрически стираемом программируемом ROM (EEPROM), регистрах, на жестком диске, сменном диске, компакт-диске (CD-ROM) или любой другой форме носителя хранения данных, известной в данной области техники. Носитель хранения данных соединен с процессором, так чтобы процессор мог считывать информацию и записывать информацию на носитель хранения данных. В альтернативном варианте носитель хранения может быть встроен в процессор. Процессор и носитель хранения данных могут постоянно размещаться в ASIC. ASIC может постоянно размещаться в пользовательском терминале. В альтернативном варианте процессор и носитель хранения данных могут постоянно размещаться как дискретные компоненты в пользовательском терминале.
Способы, раскрытые в данном документе, содержат один ил более этапов или действий для осуществления описанного способа. Этапы способа и/или действия могут меняться друг с другом без отступления от области применения настоящих систем и способов. Другими словами, если конкретный порядок этапов или действий не требуется для надлежащей работы конфигурации, порядок и/или применение конкретных этапов и/или действий может быть модифицировано без отступления от области применения настоящих систем и способов. Способы, раскрытые в данном документе могут быть реализованы в аппаратном обеспечении, в программном обеспечении или и в том, и в другом. Примеры аппаратного обеспечения и памяти включают в себя RAM, ROM, EPROM, EEPROM, флэш-память, оптический диск, регистры, жесткий диск, съемный диск, CD-ROM или любой другой тип аппаратного обеспечения и памяти.
Хотя проиллюстрированы и описаны конкретные конфигурации и варианты применения настоящих систем и способов, следует понимать, что системы и способы не ограничены точной конфигурацией и компонентами, раскрытыми в данном документе. Различные модификации, изменения и вариации, которые должны быть очевидны специалистам в данной области техники, могут быть выполнены в структуре, работе и подробностях способов и систем, раскрытых в данном документе, без отклонения от сущности объема заявленных систем и способов.