СИСТЕМЫ, СПОСОБЫ И УСТРОЙСТВО ДЛЯ ОГРАНИЧЕНИЯ КОЭФФИЦИЕНТА УСИЛЕНИЯ
SYSTEMS, METHODS AND DEVICE FOR LIMITING AMPLIFICATION COEFFICIENT

РОДСТВЕННЫЕ ЗАЯВКИ
Данная заявка притязает на приоритет предварительной патентной заявки США № 60/834658, поданной 31 июля 2006 г. и озаглавленной «METHOD FOR QUANTIZATION OF FRAME GAIN IN A WIDEBAND SPEECH CODER».
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Данное раскрытие относится к кодированию речи.
УРОВЕНЬ ТЕХНИКИ
Голосовая связь по коммутируемой телефонной сети общего пользования (PSTN) традиционно ограничена частотным диапазоном 300-3400 кГц. Новые сети для голосовой связи, такой как сотовая телефония и передача речи по IP (Интернет-протоколу, VoIP), могут не иметь тех же самых ограничений диапазона частот, и может быть желательным передавать и принимать по таким сетям голосовые данные, которые включают в себя широкополосный частотный диапазон по сравнению с такими сетями. Например, может быть желательным поддерживать диапазон звуковых частот, который распространяется вниз до 50 Гц и/или вверх до 7 или 8 кГц. Может также быть желательно поддерживать другие приложения, такие как передача высококачественного звука или аудио/видео конференц-связь, при которой звук голосовой информации может находиться в диапазоне внетрадиционных ограничений PSTN.
Расширение диапазона, поддерживаемого речевым кодером, на более высокие частоты, может улучшать доступность речи. Например, информация, с помощью которой различают фрикативные звуки, такие как «s» и «f», находится в значительной степени в высоких частотах. Расширение диапазона высоких частот может также улучшать другие качества речи, такие как эффект присутствия. Например, даже вокализированные гласные звуки могут иметь спектральную энергию, которая значительно превосходит ограничения PSTN.
Одним из подходов к широкополосному кодированию речи является масштабирование узкополосной методики кодирования речи (например, методики, сконфигурированной для кодирования диапазона 0-4 кГц) так, чтобы она охватывала широкополосный спектр. Например, речевой сигнал можно дискретизировать с большей частотой, чтобы он включал в себя компоненты с высокой частотой, и методика узкополосного кодирования может быть реконфигурирована, чтобы использовать больше коэффициентов фильтрации для представления этого широкополосного сигнала. Однако методики узкополосного кодирования, такие как CELP (линейное предсказание с кодированием), требуют больших объемов вычислений, и широкополосный кодер CELP может использовать слишком много циклов обработки, чтобы быть практичным для многих мобильных и других встраиваемых приложений. Кодирование всего спектра широкополосного сигнала с желаемым качеством, используя такую методику, может также привести к неприемлемо большому увеличению диапазона частот. Кроме того, сначала потребовалось бы транскодирование такого кодированного сигнала, даже если его узкополосную часть можно передавать и/или декодировать с помощью системы, которая поддерживает только узкополосное кодирование.
Желательным может быть осуществление широкополосного кодирования речи таким образом, чтобы по меньшей мере узкополосную часть кодированного сигнала можно было посылать через узкополосный канал (такой, как канал PSTN) без транскодирования или другой существенной модификации. Эффективность широкополосного расширения кодирования может также быть желательной, например, чтобы избежать существенного сокращения количества пользователей, которых можно обслуживать в таких приложениях, как беспроводная сотовая телефония и широковещание по проводным и беспроводным каналам.
Другой подход к широкополосному кодированию речи заключается в кодировании узкополосной части и части диапазона высоких частот речевого сигнала как отдельных поддиапазонов. В системе этого типа повышенная эффективность может быть реализована с помощью получения возбуждения для фильтра синтеза диапазона высоких частот из информации, уже доступной в декодере, такой как узкополосный сигнал возбуждения. Качество в такой системе можно увеличивать с помощью того, что кодированный сигнал включает в себя последовательность коэффициентов усиления, которые указывают изменяющееся во времени соотношение между уровнем исходного сигнала диапазона высоких частот и уровнем синтезированного сигнала диапазона высоких частот.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Способ обработки речи согласно одной из конфигураций включает в себя вычисление коэффициентов усиления, основываясь на соотношении между (A) частью во времени первого сигнала, основанного на первом поддиапазоне речевого сигнала, и (B) соответствующей частью во времени второго сигнала, основанного на компоненте, полученном из второго поддиапазона речевого сигнала; и выбор в соответствии со значением коэффициента усиления первого указателя в упорядоченный набор значений квантования. Способ включает в себя оценку соотношения между значением коэффициента усиления и значением квантования, обозначенным первым указателем; и выбор второго указателя в упорядоченном наборе значений квантования согласно результату оценки.
Устройство для обработки речи согласно другой конфигурации включает в себя блок вычисления, сконфигурированный для вычисления значений коэффициентов усиления, основываясь на соотношении между (A) частью во времени первого сигнала, основанного на первом поддиапазоне речевого сигнала, и (B) соответствующей частью во времени второго сигнала, основанного на компоненте, полученном из второго поддиапазона речевого сигнала; и блок квантования (квантизатор), сконфигурированный для выбора первого указателя в упорядоченный набор значений квантования согласно значению коэффициента усиления. Устройство включает в себя блок ограничения (ограничитель), сконфигурированный (A) для оценки соотношения между значением коэффициента усиления и значением квантования, обозначенным первым указателем, и (B) для выбора второго указателя в упорядоченный набор значений квантования согласно результату оценки.
Устройство для обработки речи согласно дополнительной конфигурации включает в себя средство для вычисления значений коэффициентов усиления, основываясь на соотношении между (А) частью во времени первого сигнала, основанного на первом поддиапазоне речевого сигнала, и (В) соответствующей частью во времени второго сигнала, основанного на компоненте, полученном из второго поддиапазона речевого сигнала; и средство для выбора первого указателя в упорядоченный набор значений квантования согласно значению коэффициента усиления. Устройство включает в себя средство для оценки соотношения между значением коэффициента усиления и значением квантования, обозначенным первым указателем, и для выбора второго указателя в упорядоченный набор значений квантования согласно результату оценки.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг.1а иллюстрирует блок-схему широкополосного речевого кодера А100.
Фиг.1b иллюстрирует блок-схему реализации А102 широкополосного речевого кодера А100.
Фиг.2а иллюстрирует блок-схему широкополосного речевого декодера В100.
Фиг.2b иллюстрирует блок-схему реализации В102 широкополосного речевого декодера В100.
Фиг.3а иллюстрирует охват диапазона частот нижнего и верхнего диапазонов для одного примера блока фильтров А110.
Фиг.3b иллюстрирует охват диапазона частот нижнего и верхнего диапазонов для другого примера блока фильтров А110.
Фиг.4а иллюстрирует примерный график логарифма амплитуды в зависимости от частоты для речевого сигнала.
Фиг.4b иллюстрирует блок-схему систему основного кодирования с линейным предсказанием.
Фиг.5 иллюстрирует блок-схему реализации А122 узкополосного кодера А120.
Фиг.6 иллюстрирует блок-схему реализации В112 узкополосного декодера В110.
Фиг.7а иллюстрирует примерный график логарифма амплитуды в зависимости от частоты для разностного сигнала для вокализированной речи.
Фиг.7b иллюстрирует пример графика логарифма амплитуды в зависимости от времени для разностного сигнала для вокализованной речи.
Фиг.8 иллюстрирует блок-схему системы основного кодирования с линейным предсказанием, которая также выполняет долгосрочное предсказание.
Фиг.9 иллюстрирует блок-схему реализации А202 кодера А200 диапазона высоких частот.
Фиг.10 иллюстрирует последовательность этапов способа М10 кодирования части диапазона высоких частот.
Фиг.11 иллюстрирует последовательность этапов задачи Т200 вычисления усиления.
Фиг.12 иллюстрирует последовательность этапов для реализации Т210 задачи Т200 вычисления усиления.
Фиг.13а иллюстрирует диаграмму оконной (вырезающей) функции.
Фиг.13b иллюстрирует применение оконной функции, которая показана на Фиг. 13а, к субкадрам речевого сигнала.
Фиг.14a иллюстрирует блок-схему реализации A232 блока A230 вычисления коэффициентов усиления диапазона высоких частот.
Фиг.14b иллюстрирует блок-схему, включающую в себя блок A232 вычисления коэффициентов усиления диапазона высоких частот.
Фиг.15 иллюстрирует блок-схему реализации A234 блока A232 вычисления коэффициентов усиления диапазона высоких частот.
Фиг.16 иллюстрирует блок-схему другой реализации A236 блока A232 вычисления коэффициентов усиления диапазона высоких частот.
Фиг.17 иллюстрирует пример одномерного отображения, которое можно выполнять с помощью блока скалярного квантования.
Фиг.18 иллюстрирует один простой пример многомерного отображения, которое выполняют с помощью блока векторного квантования.
Фиг.19a иллюстрирует другой пример одномерного отображения, которое можно выполнять с помощью блока скалярного квантования.
Фиг.19b иллюстрирует пример отображения входного пространства на области квантования различных размеров.
Фиг.19c иллюстрирует пример, в котором квантованное значение для значения R коэффициента усиления больше исходного значения.
Фиг.20a иллюстрирует последовательность этапов способа M100 ограничения коэффициентов усиления согласно одной обычной реализации.
Фиг.20b иллюстрирует последовательность этапов реализации M110 способа M100.
Фиг.20c иллюстрирует последовательность этапов реализации M120 способа M100.
Фиг.20d иллюстрирует последовательность этапов реализации M130 способа M100.
Фиг.21 иллюстрирует блок-схему реализации A203 кодера A202 диапазона высоких частот.
Фиг.22 иллюстрирует блок-схему реализации A204 кодера A203 диапазона высоких частот.
Фиг.23a иллюстрирует рабочую схему одной из реализаций L12 блока L10 ограничения.
Фиг.23b иллюстрирует рабочую схему другой реализации L14 блока L10 ограничения.
Фиг.23c иллюстрирует рабочую схему дополнительной реализации L16 блока L10 ограничения.
Фиг.24 иллюстрирует блок-схему реализации B202 декодера B200 диапазона высоких частот.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
Слышимые помехи могут возникать, когда, например, распределение мощности между поддиапазонами декодированного сигнала является неточным. Такие помехи могут быть заметно неприятными для пользователя и таким образом могут ухудшать воспринимаемое качество кодера.
Если явно не ограничено его контекстом, термин «вычисление» используют в данном документе для указания любого из его обычных значений, таких как вычисление, генерация и выбор из списка значений. Когда термин «содержащий» используется в настоящем описании и формуле изобретения, он не исключает другие элементы или операции. Термин «A основан на B» используется для указания любого из его обычных значений, которые включают в себя случаи (i) «A равен B» и (ii) «A основан по меньшей мере на B». Термин «Интернет-протокол» включает в себя версию 4, которая описана в RFC (запросе на комментарии) 791 IETF (инженерной группы по развитию Интернет), и последующие версии, такие как версия 6.
Фиг.1a иллюстрирует блок-схему широкополосного речевого кодера A100, который может быть сконфигурирован для выполнения описанного далее способа. Блок A110 фильтров сконфигурирован для фильтрации широкополосного речевого сигнала S10 для создания узкополосного сигнала S20 и сигнала S30 диапазона высоких частот. Узкополосный кодер A120 сконфигурирован для кодирования узкополосного сигнала S20 для создания параметров S40 узкополосного (УП) фильтра и узкополосного разностного сигнала S50. Как описано далее более подробно, узкополосный кодер 120 обычно сконфигурирован для создания параметров 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, который можно использовать для декодирования сигнала, кодированного широкополосным речевым кодером A100. Узкополосный декодер 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 и 3b показывают относительные диапазоны частот широкополосного речевого сигнала S10, узкополосного сигнала S20 и сигнала S30 диапазона высоких частот в двух различных примерных реализациях. В обоих из этих определенных примеров широкополосный речевой сигнал S10 имеет частоту дискретизации 16 кГц (которая представляет компоненты частоты в пределах диапазона от 0 до 8 кГц), а узкополосный сигнал S20 имеет частоту дискретизации 8 кГц (которая представляет компоненты частоты в пределах диапазона от 0 до 4 кГц), хотя такие скорости и диапазоны не ограничивают описанные принципы, которые можно применять к любым другим частотам дискретизации и/или частотным диапазонам.
В примере на Фиг.3a между двумя поддиапазонами нет существенного перекрытия. Сигнал S30 диапазона высоких частот, как в данном примере, можно субдискретизировать к частоте дискретизации 8 кГц. В альтернативном примере на Фиг.3b верхний и нижний поддиапазоны имеют заметное перекрытие, так что область 3,5-4 кГц описывают сигналами обоих поддиапазонов. Сигнал S30 диапазона высоких частот, как в данном примере, можно субдискретизировать к частоте дискретизации 7 кГц. Обеспечение перекрытия между поддиапазонами, как в примере на Фиг.3b, может предоставлять возможность системе кодирования использовать низкочастотный фильтр и/или высокочастотный фильтр, имеющий постепенное ослабление в области перекрытия, и/или может увеличивать качество воспроизводимых компонентов частоты в области перекрытия.
В обычном телефоне для телефонной связи у одного или большего количества преобразователей (т.е. микрофона и наушников или громкоговорителя) отсутствует заметная реакция в частотном диапазоне 7-8 кГц. В примере на Фиг. 3b кодированный сигнал не включает в себя часть широкополосного речевого сигнала S10 между 7 и 8 кГц. Другие конкретные примеры высокочастотных фильтров 130 имеют полосы пропускания 3,5-7,5 кГц и 3,5-8 кГц.
Кодер может быть сконфигурирован для создания синтезированного сигнала, который по восприятию подобен исходному сигналу, но который фактически значительно отличается от исходного сигнала. Например, кодер, который получает возбуждение диапазона высоких частот из узкополосного разностного сигнала, как описано в данной работе, может создавать такой сигнал, в котором фактический разностный сигнал диапазона высоких частот может полностью отсутствовать в декодированном сигнале. В таких случаях с помощью обеспечения перекрытия между поддиапазонами можно поддерживать постепенное плавное сопряжение диапазона низких частот и диапазона высоких частот, что может приводить к меньшему количеству слышимых помех и/или менее заметному переходу от одного диапазона к другому.
Цепи диапазона низких частот и диапазона высоких частот блоков фильтров A110 и B120 может быть сконфигурирован так, чтобы они имели спектры, которые полностью независимы, кроме перекрытия этих двух поддиапазонов. Перекрытие этих двух поддиапазонов определяют как расстояние от точки, в которой частотная характеристика фильтра диапазона высоких частот спадает до -20 децибелов, до точки, в которой частотная характеристика фильтра диапазона низких частот спадает до -20 децибелов. В различных примерах блоков фильтров А110 и/или B120 это перекрытие располагается приблизительно от 200 Гц до 1 кГц. Диапазон приблизительно от 400 до 600 Гц может представлять выбор оптимального решения между эффективностью кодирования и однородностью восприятия. В одном из конкретных примеров, которые приведены выше, перекрытие составляет приблизительно 500 Гц.
Может быть желательным воплощать блоки А110 фильтров и/или B120 для вычисления сигналов поддиапазонов, как показано на Фиг. 3a и 3b, в несколько этапов. Дополнительное описание и чертежи, относящиеся к характеристикам элементов конкретных реализаций блоков фильтров А110 и B120, можно найти в патентной заявке США Vos et al., озаглавленной «SYSTEMS, METHODS, AND APPARATUS FOR SPEECH SIGNAL FILTERING», поданной 3 апреля 2006, номер поверенного № 050551, на Фиг. 3a, 3b, 4c, 4d и 33-39b, и в сопроводительном тексте (который включает в себя абзацы [00069]-[00087]), данный материал представлен для справки в Соединенных Штатах и на любой другой территории, где разрешено представление для справки, с целью обеспечения дополнительного раскрытия, относящегося к блокам фильтров A110 и/или B120.
Сигнал S30 диапазона высоких частот может включать в себя импульсы высокой мощности («пачки»), которые могут быть вредными для кодирования. Речевой кодер, такой как широкополосный речевой кодер A100, можно воплощать так, чтобы он включал в себя подавитель «пачек» (например, как описано в патентной заявке США Vos et al., озаглавленной «SYSTEMS, METHODS, AND APPARATUS FOR HIGHBAND BURST SUPPRESSION», номер поверенного № 050549, поданной 3 апреля 2006) для фильтрации сигнала S30 диапазона высоких частот перед кодированием (например, кодером A200 диапазона высоких частот).
Каждый из узкополосного кодера A120 и кодера A200 диапазона высоких частот обычно воплощают согласно модели исходного фильтра, которая кодирует входной сигнал как (A) набор параметров, которые описывают фильтр, и (B) сигнал возбуждения, который управляет описанным фильтром для создания синтезированной копии входного сигнала. Фиг.4a иллюстрирует пример огибающей спектра речевого сигнала. Пики, которые характеризуют эту огибающую спектра, представляют резонансы речевого тракта и называются формантами. Большинство речевых кодеров кодирует по меньшей мере эту грубую спектральную структуру как набор параметров, таких как коэффициенты фильтра.
Фиг.4b иллюстрирует пример схемы основного входного фильтра в применении к кодированию огибающей спектра узкополосного сигнала S20. Модуль анализа вычисляет набор параметров, которые характеризуют фильтр, соответствующий звукам речи за период времени (обычно 20 миллисекунд (мс)). Отбеливающий фильтр (также называемый фильтром анализа или предсказания ошибки), который сконфигурирован согласно этим параметрам фильтра, удаляет огибающую спектра для сглаживания спектра сигнала. Результирующий отбеленный сигнал (также называемый разностным сигналом) имеет меньше мощности и таким образом меньше дисперсии и его проще кодировать, чем исходный речевой сигнал. Ошибки, являющиеся результатом кодирования разностного сигнала, можно также распределять более равномерно по спектру. Параметры фильтра и разностный сигнал обычно квантуют для эффективной передачи по каналу. В декодере фильтр синтеза, сконфигурированный согласно параметрам фильтра, возбуждают с помощью сигнала, основанного на разностном сигнале, для создания синтезированной версии исходных звуков речи. Фильтр синтеза обычно сконфигурирован так, чтобы он имел функцию преобразования, которая является инверсией функции преобразования отбеливающего фильтра.
Фиг.5 иллюстрирует блок-схему основной реализации A122 узкополосного кодера 120. В этом примере модуль 210 анализа кодирования с линейным предсказанием (LPC) кодирует огибающую спектра узкополосного сигнала S20 как набор коэффициентов линейного предсказания (LP) (например, коэффициентов полюсного фильтра 1/A(z)). Модуль анализа обычно обрабатывает входной сигнал как последовательность ненакладывающихся кадров, с новым набором коэффициентов, вычисляемых для каждого кадра. Период кадра в общем случае является периодом, в течение которого можно ожидать, что сигнал будет локально постоянен; одним из обычных примеров является 20 миллисекунд (эквивалентно 160 выборкам при частоте дискретизации 8 кГц). В одном из примеров модуль 210 анализа LPC сконфигурирован для вычисления набора из десяти коэффициентов фильтра LP для характеризации формантной структуры каждого 20-миллисекундного кадра. Также можно воплощать модуль анализа для обработки входного сигнала как последовательности накладывающихся кадров.
Модуль анализа может быть сконфигурирован для непосредственного анализа выборки каждого кадра, или выборки можно взвешивать сначала согласно оконной функции (например, окна Хемминга). Анализ можно также выполнять по окну, которое больше кадра, например, по окну 30 мс. Это окно может быть симметричным (например, 5-20-5, так что оно включает в себя 5 миллисекунд непосредственно перед и после 20-миллисекундного кадра) или асимметричным (например, 10-20, так что оно включает в себя последние 10 миллисекунд предыдущего кадра). Модуль анализа LPC обычно сконфигурирован для вычисления коэффициентов фильтра LP, используя рекурсию Levinson-Durbin или алгоритм Leroux-Gueguen. В другой реализации модуль анализа может быть сконфигурирован для вычисления набора коэффициентов косинусного преобразования Фурье для каждого кадра вместо набора коэффициентов фильтра LP.
Выходную скорость кодера A120 можно значительно уменьшать при относительно небольшом влиянии на качество воспроизведения с помощью квантования параметров фильтра. Коэффициенты фильтра линейного предсказания трудно квантовать эффективно и обычно отображают на другое представление, такое как пары спектральных линий (LSP) или частоты спектральных линий (LSF), для энтропийного кодирования и/или квантования. В примере на Фиг. 5 блок 220 преобразования коэффициентов фильтра LP в LSF преобразовывает набор коэффициентов фильтра LP в соответствующий набор LSF. Другие взаимно-однозначные представления коэффициентов фильтра LP включают в себя коэффициенты частичной корреляции (parcor-коэффициенты); значения соотношения в логарифмической области; спектральные пары иммитанса (ISP); и спектральные частоты иммитанса (ISF), которые используются в AMR-WB (адаптивном мультискоростном широкополосном) кодеке GSM (глобальной системы связи с подвижными объектами). Обычно преобразование между набором коэффициентов фильтра LP и соответствующим набором LSF обратимо, но конфигурации также включают в себя реализации кодера A120, в которых преобразование необратимо без ошибки.
Блок 230 квантования сконфигурирован для квантования набора узкополосных LSF (или другого представления коэффициентов), и узкополосный кодер A122 сконфигурирован для вывода результата этого квантования в качестве параметров S40 узкополосного фильтра. Такой блок квантования обычно включает в себя блок векторного квантования, который кодирует входной вектор как указатель на соответствующую запись вектора в таблице или в книге шифров.
Фиг.9 иллюстрирует блок-схему реализации A202 кодера A200 диапазона высоких частот. Модуль A210 анализа, блок 410 преобразования и блок 420 квантования из кодера A202 диапазона высоких частот можно воплощать согласно описаниям соответствующих элементов узкополосного кодера A122, как описано выше (т.е. модуль 210 анализа LPC, блок 220 преобразования и блок 230 квантования соответственно), хотя может быть желательным использовать анализ LPC более низкого порядка для диапазона высоких частот. Даже возможно воплощать эти элементы узкополосного кодера и кодера диапазона высоких частот, используя те же самые структуры (например, наборы схем) и/или наборы команд (например, строк программы) в разное время. Как описано ниже, операции узкополосного кодера A120 и кодера A200 диапазона высоких частот отличаются по отношению к обработке разностного сигнала.
Как можно заметить на Фиг.5, узкополосный кодер A122 также создает разностный сигнал с помощью передачи узкополосного сигнала S20 через отбеливающий фильтр 260 (также называемый фильтром анализа или предсказания ошибки), который сконфигурирован согласно набору коэффициентов фильтра. В этом конкретном примере отбеливающий фильтр 260 воплощают как фильтр КИХ (с конечной импульсной характеристикой), хотя могут также использоваться реализации БИХ (с бесконечной импульсной характеристикой). Этот разностный сигнал будет обычно содержать важную для восприятия информацию речевого кадра, такую как долгосрочная структура, относящаяся к углу наклона, которая не представлена в параметрах S40 узкополосного фильтра. Блок 270 квантования сконфигурирован для вычисления квантованного представления этого разностного сигнала для вывода в качестве кодированного узкополосного сигнала S50 возбуждения. Такой блок квантования обычно включает в себя блок векторного квантования, который кодирует входной вектор как указатель на соответствующую запись вектора в таблице или в книге шифров. Альтернативно, такой блок квантования может быть сконфигурирован для передачи одного или большего количества параметров, из которых вектор можно создавать динамически в декодере, а не извлекать из памяти, как в способе разреженной книги шифров. Такой способ используется в схемах кодирования, таких как алгебраическое CELP (линейное предсказание с кодовым возбуждением), и в таких кодеках, как EVRC (улучшенный кодек с переменной скоростью) 3GPP2 (проекта партнерства третьего поколения - 2).
Для узкополосного кодера A120 желательно создавать кодированный узкополосный сигнал возбуждения согласно тем же самым значениям параметров фильтра, которые будут доступны для соответствующего узкополосного декодера. Таким образом, результирующий кодированный узкополосный сигнал возбуждения может уже учитывать до некоторой степени неидеальность этих значений параметров, например ошибку квантования. Соответственно, желательно конфигурировать отбеливающий фильтр, используя те же самые значения коэффициентов, которые будут доступны в декодере. В основном примерном кодере A122, который показан на Фиг. 5, блок 240 обратного квантования выполняет обратное квантование параметров S40 кодирования узкополосного канала, блок 250 преобразования LSF в коэффициенты фильтра LP отображает результирующие значения назад к набору соответствующих коэффициентов фильтра LP, и этот набор коэффициентов используется для конфигурирования отбеливающего фильтра 260 для создания разностного сигнала, который квантуют с помощью блока квантования 270.
Некоторые реализации узкополосного кодера A120 сконфигурированы для вычисления кодированного узкополосного сигнала S50 возбуждения с помощью идентификации одного из наборов векторов книги шифров, который лучше соответствует разностному сигналу. Следует отметить, однако, что узкополосный кодер A120 можно также воплощать для вычисления квантованного представления разностного сигнала, фактически не генерируя разностный сигнал. Например, узкополосный кодер 120 может быть сконфигурирован для использования множества векторов книги шифров для создания соответствующих синтезированных сигналов (например, согласно текущему набору параметров фильтра) и выбора вектора книги шифров, связанного с созданным сигналом, который лучшие соответствует исходному узкополосному сигналу S20 в относящейся к восприятию области.
Даже после того, как отбеливающий фильтр удалил грубую огибающую спектра из узкополосного сигнала S20, значительное количество «тонкой» гармонической структуры может остаться, особенно для вокализованной речи. Фиг. 7a иллюстрирует график спектра одного примерного разностного сигнала, который можно создавать с помощью отбеливающего фильтра, для вокализированного сигнала, такого как гласный звук. Периодическая структура, видимая в данном примере, относится к тону звука, и другие вокализованные звуки, произносимые тем же самым говорящим, могут иметь другие формантные структуры, но подобные структуры тона звука. Фиг. 7b иллюстрирует во временной области примерный график такого разностного сигнала, который иллюстрирует последовательность импульсов тона звука во времени.
Узкополосный кодер A120 может включать в себя один или большее количество модулей, сконфигурированных для кодирования долгосрочной гармонической структуры узкополосного сигнала S20. Как показано на Фиг. 8, один типичный образец CELP, который может использоваться, включает в себя модуль анализа LPC без обратной связи, который кодирует краткосрочные характеристики, или грубую огибающую спектра, за которым следует этап долгосрочного анализа предсказания с обратной связью, которое кодирует данную «тонкую» структуру тона звука, или гармоническую структуру. Краткосрочные характеристики кодируют как коэффициенты фильтра, а долгосрочные характеристики кодируют как значения параметров, такие как задержка тона звука и усиление тона звука. Например, узкополосный кодер A120 может быть сконфигурирован для вывода кодированного узкополосного сигнала S50 возбуждения в форме, которая включает в себя один или большее количество указателей книги шифров (например, фиксированный указатель книги шифров и настраиваемый указатель книги шифров) и соответствующие значения усиления. Вычисление этого квантованного представления узкополосного разностного сигнала (например, с помощью блока 270 квантования) может включать в себя выбор таких указателей и вычисление таких значений. Кодирование структуры тона звука может также включать в себя интерполяцию формы волны прототипа тона звука, данная операция может включать в себя вычисление различия между последовательными импульсами тона звука. Моделирование долгосрочной структуры может быть заблокировано для кадров, соответствующих невокализированной речи, которая обычно подобна шуму и неструктурирована.
Фиг.6 иллюстрирует блок-схему реализации В112 узкополосного декодера В110. Блок 310 обратного квантования выполняет обратное квантование узкополосных параметров 340 фильтра (в этом случае, в набор LSF), и блок 320 преобразования LSF в коэффициенты фильтра LP преобразовывает LSF в набор коэффициентов фильтра (например, как описано выше в отношении блока 240 обратного квантования и блока 250 преобразования узкополосного кодера А122). Блок 340 обратного квантования выполняет обратное квантование кодированного узкополосного сигнала S50 возбуждения для создания узкополосного сигнала 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 06.10), который использует линейное предсказание с возбуждением с помощью разностного сигнала (RELP); расширенный GSM-кодек полной скорости (ETSI-GSM 06.60); кодер стандарта ITU (Международного союза электросвязи) G.729 Annex E 11,8 килобайт в секунду; кодек IS (промежуточный стандарт)-641 для IS-136 (схема множественного доступа с временным разделением каналов); адаптивные многоскоростные GSM (GSM-AMR) кодеки; и кодек 4GV ™ (вокодер четвертого поколения) (QUALCOMM Incorporated, Сан-Диего, Калифорния). Узкополосный кодер A120 и соответствующий декодер B110 можно воплощать согласно любой из этих технологий или любой другой технологии кодирования речи (или известной, или которая будет разработана), которая представляет речевой сигнал как (A) набор параметров, которые описывают фильтр, и (B) сигнал возбуждения, используемый для управления описанным фильтром, для воспроизведения речевого сигнала.
Кодер A200 диапазона высоких частот сконфигурирован для кодирования сигнала S30 диапазона высоких частот согласно модели исходного фильтра. Например, кодер A200 диапазона высоких частот обычно сконфигурирован для выполнения анализа LPC сигнала S30 диапазона высоких частот для получения набора параметров фильтра, которые описывают огибающую спектра сигнала. Как в узкополосной части, исходный сигнал, используемый для возбуждения этого фильтра, может быть получен или иначе основан на разностном сигнале анализа LPC. Однако сигнал S30 диапазона высоких частот обычно менее существенен для восприятия, чем узкополосный сигнал S20, и это привело бы к большим затратам, если бы кодированный речевой сигнал включал в себя два сигнала возбуждения. Для уменьшения скорости передачи информации в битах, необходимой для перемещения кодированного широкополосного речевого сигнала, вместо этого может быть желательным использовать моделированный сигнал возбуждения для диапазона высоких частот. Например, возбуждение для фильтра диапазона высоких частот может быть основано на кодированном узкополосном сигнале S50 возбуждения.
Фиг.9 иллюстрирует блок-схему реализации 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), и кодер A202 диапазона высоких частот сконфигурирован для вывода результата этого квантования в качестве параметров S60a фильтра диапазона высоких частот. Такой блок квантования обычно включает в себя блок векторного квантования, который кодирует входной вектор как указатель на соответствующую запись вектора в таблице или в книге шифров.
Кодер A202 диапазона высоких частот также включает в себя фильтр A220 синтеза, сконфигурированный для создания синтезированного сигнала S130 диапазона высоких частот согласно сигналу S120 возбуждения диапазона высоких частот и кодированной огибающей спектра (например, набору коэффициентов фильтра LP), созданной модулем A210 анализа. Фильтр A220 синтеза обычно воплощают как фильтр БИХ, хотя можно также использовать реализации КИХ. В одном из конкретных примеров фильтр A220 синтеза воплощают как линейный авторегрессивный фильтр шестого порядка.
В реализации широкополосного речевого кодера A100 согласно образцу, показанному на Фиг. 8, кодер A200 диапазона высоких частот может быть сконфигурирован для приема узкополосного сигнала возбуждения, который создают с помощью краткосрочного анализа или отбеливающего фильтра. Другими словами, узкополосный кодер A120 может быть сконфигурирован для вывода узкополосного сигнала возбуждения на кодер A200 диапазона высоких частот перед кодированием долгосрочной структуры. Однако для кодера A200 диапазона высоких частот желательно принимать от узкополосного канала ту же самую информацию кодирования, которая будет принята декодером B200 диапазона высоких частот, так что параметры кодирования, созданные кодером A200 диапазона высоких частот, могут уже учитывать до некоторой степени неидеальность этой информации. Таким образом, для кодера A200 диапазона высоких частот может быть предпочтительно восстанавливать узкополосный сигнал S80 возбуждения из того же самого параметрического и/или квантованного кодированного узкополосного сигнала S50 возбуждения, который будет выведен широкополосным речевым кодером A100. Одним из потенциальных преимуществ этого подхода является более точное вычисление коэффициентов S60b усиления диапазона высоких частот, описанное ниже.
Блок A230 вычисления коэффициентов усиления диапазона высоких частот вычисляет одну или большее количество разностей между уровнями исходного сигнала S30 диапазона высоких частот и синтезированного сигнала S130 диапазона высоких частот для определения огибающей усиления для кадра. Блок 430 квантования, который можно воплощать как блок векторного квантования, который кодирует входной вектор как указатель на соответствующую запись вектора в таблице или в книге шифров, квантует значение или значения, определяющие огибающую усиления, и кодер A202 диапазона высоких частот сконфигурирован для вывода результата этого квантования как коэффициентов S60b усиления диапазона высоких частот.
Один или большее количество блоков квантования описанных элементов (например, блок 230, 420 или 430 квантования) может быть сконфигурирован для выполнения векторного квантования, относящегося к определенной категории. Например, такой блок квантования может быть сконфигурирован для выбора одного из набора книг шифров, основываясь на информации, которая была уже закодирована в пределах того же самого кадра в узкополосном канале и/или в канале диапазона высоких частот. Такая методика обычно обеспечивает увеличенную эффективность кодирования за счет дополнительной памяти книги шифров.
В реализации кодера A200 диапазона высоких частот, как показано на Фиг.9, фильтр A220 синтеза предназначен для приема коэффициентов фильтра из модуля A210 анализа. Альтернативная реализация кодера A202 диапазона высоких частот включает в себя блок обратного квантования и блок обратного преобразования, сконфигурированный для декодирования коэффициентов фильтра из параметров S60a фильтра диапазона высоких частот, и в этом случае фильтр A220 синтеза вместо этого предназначен для приема декодированных коэффициентов фильтра. Такая альтернативная схема может поддерживать более точное вычисление огибающей усиления с помощью блока A230 вычисления усиления диапазона высоких частот.
В одном из конкретных примеров модуль A210 анализа и блок A230 вычисления усиления диапазона высоких частот выводят набор из шести LSF и набор из пяти значений усиления за кадр, соответственно, так что широкополосное расширение узкополосного сигнала S20 можно обеспечивать только с одиннадцатью дополнительными значениями за кадр. В дополнительном примере другое значение усиления добавляют для каждого кадра для обеспечения широкополосного расширения только двенадцатью дополнительными значениями за кадр. Ухо менее чувствительно к ошибкам частоты на высоких частотах, так что кодирование диапазона высоких частот в LPC низкого порядка может создавать сигнал, имеющий сопоставимое по восприятию качество для кодирования узкополосного канала в LPC более высокого порядка. Обычную реализацию кодера A200 диапазона высоких частот может быть сконфигурирован для вывода 8-12 битов за кадр для высококачественного восстановления огибающей спектра и других 8-12 битов за кадр для высококачественного восстановления временной огибающей. В другом конкретном примере модуль A210 анализа выводит набор из восьми LSF за кадр.
Некоторые реализации кодера A200 диапазона высоких частот сконфигурирован для создания сигнала S120 возбуждения диапазона высоких частот с помощью генерации сигнала белого шума, имеющего компоненты частоты диапазона высоких частот, и модуляции амплитуды шумового сигнала согласно огибающей во временной области узкополосного сигнала S20, узкополосного сигнала S80 возбуждения или сигнала S30 диапазона высоких частот. В таком случае может быть желательным, чтобы состояние генератора шума было детерминированной функцией другой информации в кодированном речевом сигнале (например, информации в том же самом кадре, такой как параметры S40 узкополосного фильтра или их часть, и/или кодированный узкополосный сигнал S50 возбуждения или его часть), так чтобы у соответствующих генераторов шума в генераторах возбуждения диапазона высоких частот кодера и декодера могли быть одинаковые состояния. Хотя основанный на шуме способ может приводить к адекватным результатам для невокализированных звуков, однако, возможно, он нежелателен для вокализированных звуков, разностные сигналы которых являются обычно гармоническими и, следовательно, имеют некоторую периодическую структуру.
Генератор A300 возбуждения диапазона высоких частот сконфигурирован для получения узкополосного сигнала S80 возбуждения (например, с помощью обратного квантования кодированного узкополосного сигнала S50 возбуждения) и создания сигнала S120 возбуждения диапазона высоких частот, основываясь на узкополосном сигнале S80 возбуждения. Например, генератор A300 возбуждения диапазона высоких частот можно воплощать для выполнения одной или большего количества методик, таких как гармоническое расширение диапазона частот, наложение спектров, преобразование спектра и/или гармонический синтез, которые используют нелинейную обработку узкополосного сигнала S80 возбуждения. В одном из конкретных примеров генератор A300 возбуждения диапазона высоких частот сконфигурирован для создания сигнала S120 возбуждения диапазона высоких частот с помощью нелинейного расширения диапазона частот узкополосного сигнала S80 возбуждения, объединенного с адаптивным смешиванием расширенного сигнала с модулированным шумовым сигналом. Генератор A300 возбуждения диапазона высоких частот может быть также сконфигурирован для выполнения фильтрации антиразреженности расширенного и/или смешанного сигнала.
Дополнительное описание и чертежи, относящиеся к генератору A300 возбуждения диапазона высоких частот и к генерации сигнала S120 возбуждения диапазона высоких частот, можно найти в патентной заявке США № 11/397870, озаглавленной «SYSTEMS, METHODS, AND APPARATUS FOR HIGHBAND EXCITATION GENERATION» (Vos и другие), поданной 3 апреля 2006, на Фиг. 11-20 и в сопутствующем тексте (который включает в себя абзацы [000112]-[000146] и [000156]), и этот материал представлен для справки в Соединенных Штатах и на любой другой территории, разрешающей представление для справки, с целью обеспечения дополнительного раскрытия, относящегося к генератору A300 возбуждения диапазона высоких частот и/или к генерации сигнала возбуждения для одного поддиапазона из кодированного сигнала возбуждения для другого поддиапазона.
Фиг.10 иллюстрирует последовательность этапов способа M10 кодирования части диапазона высоких частот речевого сигнала, имеющего узкополосную часть и часть диапазона высоких частот. Задача X100 вычисляет набор параметров фильтра, которые характеризуют огибающую спектра части диапазона высоких частот. Задача X200 вычисляет сигнал с расширенным спектром, применяя нелинейную функцию к сигналу, полученному из узкополосной части. Задача X300 создает синтезированный сигнал диапазона высоких частот согласно (A) набору параметров фильтра и (B) сигналу возбуждения диапазона высоких частот, основываясь на сигнале с расширенным спектром. Задача X400 вычисляет огибающую усиления, основываясь на соотношении между (C) энергией части диапазона высоких частот и (D) энергией сигнала, полученного из узкополосной части.
Обычно желательно, чтобы временные характеристики декодированного сигнала были похожи на характеристики исходного сигнала, который он представляет. Кроме того, для системы, в которой отдельно кодируют различные поддиапазоны, может быть желательным, чтобы относительные временные характеристики поддиапазонов в декодированном сигнале были похожи на относительные временные характеристики этих поддиапазонов в исходном сигнале. Для точного воспроизведения кодированного речевого сигнала может быть желательным, чтобы соотношения между уровнями высокочастотной части и узкополосной части синтезированного широкополосного речевого сигнала S100 были подобны соотношению в исходном широкополосном речевом сигнале S10. Кодер A200 диапазона высоких частот может быть сконфигурирован так, чтобы кодированный речевой сигнал включал в себя информацию, которая описывает или иначе основана на временной огибающей исходного сигнала диапазона высоких частот. В случае, когда сигнал возбуждения диапазона высоких частот основан на информации из другого поддиапазона, такой как кодированный узкополосный сигнал S50 возбуждения, может быть желательным, чтобы, в частности, кодированные параметры включали в себя информацию, описывающую различие между временными огибающими синтезированного сигнала диапазона высоких частот и исходного сигнала диапазона высоких частот.
В дополнение к информации, относящейся к огибающей спектра сигнала S30 диапазона высоких частот (т.е. которая описана коэффициентами LPC или подобными значениями параметра), может быть желательным, чтобы кодированные параметры широкополосного сигнала включали в себя временную информацию сигнала S30 диапазона высоких частот. В дополнение к огибающей спектра, которая представлена параметрами S60a кодирования диапазона высоких частот, например, кодер A200 диапазона высоких частот может быть сконфигурирован для того, чтобы он характеризовал сигнал S30 диапазона высоких частот, определяя временную огибающую или огибающую усиления. Как показано на Фиг. 9, кодер A202 диапазона высоких частот включает в себя блок A230 вычисления коэффициентов усиления диапазона высоких частот, который сконфигурирован и предназначен для вычисления одного или большего количества коэффициентов усиления согласно соотношению между сигналом S30 диапазона высоких частот и синтезированным сигналом S130 диапазона высоких частот, такому как разность или отношение между мощностями этих двух сигналов, по кадру или некоторой его части. В других реализациях кодера A202 диапазона высоких частот блок A230 вычисления усиления диапазона высоких частот может быть сконфигурирован аналогичным образом, но он предназначен вместо этого для вычисления огибающей усиления согласно такому изменяющемуся во времени соотношению между сигналом S30 диапазона высоких частот и узкополосным сигналом S80 возбуждения или сигналом S120 возбуждения диапазона высоких частот.
Временные огибающие узкополосного сигнала S80 возбуждения и сигнала S30 диапазона высоких частот, вероятно, будут аналогичны. Поэтому огибающая усиления, которая основана на соотношении между сигналом S30 диапазона высоких частот и узкополосным сигналом S80 возбуждения (или сигналом, полученным из них, таким как сигнал S120 возбуждения диапазона высоких частот или синтезированный сигнал S130 диапазона высоких частот), в общем случае лучше подходит для кодирования, чем огибающая усиления, основанная только на сигнале S30 диапазона высоких частот.
Кодер A202 диапазона высоких частот включает в себя блок A230 вычисления коэффициентов усиления диапазона высоких частот, сконфигурированный для вычисления одного или большего количества коэффициентов усиления для каждого кадра сигнала S30 диапазона высоких частот, где каждый коэффициент усиления основан на соотношении между временными огибающими соответствующих частей синтезированного сигнала S130 диапазона высоких частот и сигнала S30 диапазона высоких частот. Например, блок A230 вычисления коэффициентов усиления диапазона высоких частот может быть сконфигурирован для вычисления каждого коэффициента усиления как соотношения между огибающими амплитуды сигналов или как соотношения между огибающими мощности сигналов. В одной обычной реализации кодер A202 диапазона высоких частот сконфигурирован для вывода квантованного указателя из восьми-двенадцати битов, который определяет пять коэффициентов усиления для каждого кадра (например, один для каждого из пяти последовательных субкадров). В дополнительной реализации кодер A202 диапазона высоких частот сконфигурирован для вывода дополнительного квантованного указателя, который определяет коэффициент усиления уровня кадра для каждого кадра.
Коэффициент усиления можно вычислять как коэффициент нормализации, например, как соотношение R между показателем мощности исходного сигнала и показателем мощности синтезированного сигнала. Соотношение R можно выражать как линейное значение или как логарифмическое значение (например, в масштабе децибел). Блок A230 вычисления коэффициентов усиления диапазона высоких частот может быть сконфигурирован для вычисления такого коэффициента нормализации для каждого кадра. Альтернативно или дополнительно, блок A230 вычисления коэффициентов усиления диапазона высоких частот может быть сконфигурирован для вычисления последовательности коэффициентов усиления для каждого из множества субкадров каждого кадра. В одном из примеров блок A230 вычисления коэффициентов усиления диапазона высоких частот сконфигурирован для вычисления мощности каждого кадра (и/или субкадра) как квадратный корень из суммы квадратов.
Блок A230 вычисления коэффициентов усиления диапазона высоких частот может быть сконфигурирован для выполнения вычисления коэффициента усиления, как задачу, которая включает в себя одну или большее количество последовательностей подзадач. Фиг. 11 иллюстрирует примерную последовательность этапов T200 такой задачи, которая вычисляет значение усиления для соответствующей части кодированного сигнала диапазона высоких частот (например, кадра или субкадра) согласно относительным мощностям соответствующих частей сигнала S30 диапазона высоких частот и синтезированного сигнала S130 диапазона высоких частот. Задачи 220a и 220b вычисляют мощности соответствующих частей соответствующих сигналов. Например, задачи 220a и 220b может быть сконфигурирован для вычисления мощности как суммы квадратов выборок соответствующих частей. Задача T230 вычисляет коэффициент усиления как квадратный корень из отношения этих энергий. В этом примере задача T230 вычисляет коэффициент усиления для части как квадратный корень из отношения мощности сигнала S30 диапазона высоких частот по данной части к мощности синтезированного сигнала S130 диапазона высоких частот по данной части.
Блок A230 вычисления коэффициентов усиления диапазона высоких частот может быть желательным конфигурировать для вычисления мощности согласно оконной функции. Фиг. 12 иллюстрирует последовательность этапов такой реализации T210 задачи T200 вычисления коэффициента усиления. Задача T215a применяет оконную функцию к сигналу S30 диапазона высоких частот, и задача T215b применяет ту же самую оконную функцию к синтезированному сигналу S130 диапазона высоких частот. Реализации 222a и 222b задач 220a и 220b вычисляют мощности соответствующих окон, а задача T230 вычисляет коэффициент усиления для части как квадратный корень из отношения энергий.
При вычислении коэффициентов усиления для кадра может быть желательным применять оконную функцию, которая накладывается на смежные кадры. При вычислении коэффициента усиления для субкадра может быть желательным применять оконную функцию, которая накладывается на смежные субкадры. Например, оконная функция, которая создает коэффициенты усиления, которые можно применять при сложении с перекрытием, может помочь в уменьшении или устранении неоднородности между субкадрами. В одном из примеров блок A230 вычисления коэффициентов усиления диапазона высоких частот сконфигурирован для применения трапециевидной оконной функции, как показано на Фиг. 13a, в котором окно накладывается на каждый из двух смежных субкадров на одну миллисекунду. Фиг. 13b иллюстрирует применение этой оконной функции к каждому из пяти субкадров 20-миллисекундных кадров. Другие реализации блока A230 вычисления коэффициентов усиления диапазона высоких частот может быть сконфигурирован для применения оконной функции, имеющей различные периоды перекрытия и/или различные формы окна (например, прямоугольное, Хемминга), которое может быть симметричным или асимметричным. Также возможны реализации блока A230 вычисления коэффициентов усиления диапазона высоких частот, которые будут конфигурировать для применения различных оконных функций к различным субкадрам в пределах кадра и/или для того, чтобы кадр включал в себя субкадры различной длины. В одной из конкретных реализаций блок A230 вычисления коэффициентов усиления диапазона высоких частот сконфигурирован для вычисления коэффициентов усиления субкадра, используя трапециевидную оконную функцию, как показано на Фиг. 13a и 13b, и также сконфигурирован для вычисления коэффициентов усиления уровня кадра, не используя оконную функцию.
Без ограничения, следующие значения представлены в качестве примеров конкретных реализаций. Для этих случаев принимают длину кадра 20 мс, хотя может использоваться любая другая продолжительность. Для сигнала диапазона высоких частот, дискретизированного с частотой 7 кГц, каждый кадр имеет 140 выборок. Если такой кадр будут делить на пять субкадров равной длины, то каждый субкадр будет иметь 28 выборок, и окно, которое показано на Фиг. 13a, будет иметь ширину 42 выборки. Для сигнала диапазона высоких частот, дискретизированного с частотой 8 кГц, каждый кадр имеет 160 выборок. Если такой кадр будут делить на пять субкадров равной длины, то каждый субкадр будет иметь 32 выборки, и окно, как показано на Фиг. 13a, будет иметь ширину 48 выборок. В других реализациях можно использовать субкадры любой ширины, и даже возможна реализация блока A230 вычисления усиления диапазона высоких частот, который будут конфигурировать для создания различных коэффициентов усиления для каждой выборки кадра.
Как отмечено выше, кодер A202 диапазона высоких частот может включать в себя блок A230 вычисления коэффициентов усиления диапазона высоких частот, который сконфигурирован для вычисления последовательности коэффициентов усиления согласно изменяющемуся во времени соотношению между сигналом S30 диапазона высоких частот и сигналом, основанным на узкополосном сигнале S20 (таком как узкополосный сигнал S80 возбуждения, сигнал S120 возбуждения диапазона высоких частот или синтезированный сигнал S130 диапазона высоких частот). Фиг. 14a иллюстрирует блок-схему реализации A232 блока A230 вычисления коэффициентов усиления диапазона высоких частот. Блок A232 вычисления коэффициентов усиления диапазона высоких частот включает в себя реализацию G10a блока G10 вычисления огибающей, которая предназначена для вычисления огибающей первого сигнала, и реализацию G10b блока G10 вычисления огибающей, которая предназначена для вычисления огибающей второго сигнала. Блоки G10a и G10b вычисления огибающей могут быть идентичными или могут быть экземплярами различных реализаций блока G10 вычисления огибающей. В некоторых случаях блоки G10a и G10b вычисления огибающей можно воплощать как ту же самую структуру (например, набор схем) и/или набор команд (например, строк программы), конфигурируемые для обработки различных сигналов в разное время.
Каждый из блоков G10a и G10b вычисления огибающей может быть сконфигурирован для вычисления огибающей амплитуды (например, согласно функции абсолютных значений) или огибающей мощности (например, согласно квадратичной функции). Как правило, каждый блок G10a, G10b вычисления огибающей сконфигурирован для вычисления огибающей, которую субдискретизируют относительно входного сигнала (например, огибающей, имеющей одно значение для каждого кадра или субкадра входного сигнала). Как описано выше в отношении, например, Фиг. 11-13b, блок G10a и/или G10b вычисления огибающей может быть сконфигурирован для вычисления огибающей согласно оконной функции, которая может быть предназначена для наложения на смежные кадры и/или субкадры.
Блок G20 вычисления коэффициентов сконфигурирован для вычисления последовательности коэффициентов усиления согласно изменяющемуся во времени соотношению между этими двумя огибающими в течение времени. В одном из примеров, как описано выше, блок G20 вычисления коэффициентов вычисляет каждый коэффициент усиления, как квадратный корень из отношения огибающих по соответствующему субкадру. Альтернативно, блок G20 вычисления коэффициентов может быть сконфигурирован для вычисления каждого коэффициента усиления, основываясь на расстоянии между огибающими, например, на разности или возведенной в квадрат разности со знаком между огибающими во времени соответствующего субкадра. Может быть желательным конфигурировать блок G20 вычисления коэффициентов для вывода вычисленных значений коэффициентов усиления в децибелах или в другом логарифмическом масштабе. Например, блок G20 вычисления коэффициентов может быть сконфигурирован для вычисления логарифма отношения двух значений мощности как разности логарифмов значений мощности.
Фиг.14b иллюстрирует блок-схему обобщенной схемы, включающей в себя блок A232 вычисления коэффициентов усиления диапазона высоких частот, в котором блок G10a вычисления огибающей предназначен для вычисления огибающей сигнала, основываясь на узкополосном сигнале S20, блок G10b вычисления огибающей предназначен для вычисления огибающей сигнала S30 диапазона высоких частот, и блок G20 вычисления коэффициентов сконфигурирован для вывода S60b коэффициентов усиления диапазона высоких частот (например, на блок 430 квантования). В данном примере блок G10a вычисления огибающей предназначен для вычисления огибающей сигнала, принятого от блока P1 промежуточной обработки, который может включать в себя структуры и/или команды, как описано в данной работе, который сконфигурирован для выполнения вычисления узкополосного сигнала S80 возбуждения, генерации сигнала S120 возбуждения диапазона высоких частот и/или синтеза сигнала S130 диапазона высоких частот. Для удобства предполагают, что блок G10a вычисления огибающей предназначен для вычисления огибающей синтезированного сигнала S130 диапазона высоких частот, хотя реализации, в которых блок G10a вычисления огибающей вместо этого предназначен для вычисления огибающей узкополосного сигнала S80 возбуждения или сигнала S120 возбуждения диапазона высоких частот, явно рассмотрены и тем самым раскрыты.
Как отмечено выше, может быть желательным получать коэффициенты усиления в двух или большем количестве различных разрешениях времени. Например, может быть желательным конфигурировать блок A230 вычисления коэффициентов усиления диапазона высоких частот для вычисления и коэффициентов усиления уровня кадра, и последовательности коэффициентов усиления субкадра для каждого кадра сигнала S30 диапазона высоких частот, который будет закодирован. Фиг. 15 иллюстрирует блок-схему реализации A234 блока A232 вычисления коэффициентов усиления диапазона высоких частот, который включает в себя реализации G10af, G10as блока G10 вычисления огибающей, который сконфигурирован для вычисления огибающей уровня кадра и уровня субкадра, соответственно, первого сигнала (например, синтезированного сигнала S130 диапазона высоких частот, хотя реализации, в которых блоки G10af, G10as вычисления огибающей вместо этого предназначены для вычисления огибающих узкополосного сигнала S80 возбуждения или сигнала S120 возбуждения диапазона высоких частот, явно рассмотрены и тем самым раскрыты). Блок A234 вычисления коэффициентов усиления диапазона высоких частот также включает в себя реализации G10bf, G10bs блока G10b вычисления огибающей, который сконфигурирован для вычисления огибающих уровня кадра и уровня субкадра, соответственно, второго сигнала (например, сигнала S30 диапазона высоких частот).
Блоки G10af и G10bf вычисления огибающей могут быть идентичными или могут быть экземплярами различных реализаций блока G10 вычисления огибающей. В некоторых случаях блоки G10af и G10bf вычисления огибающей можно воплощать как ту же самую структуру (например, набор схем) и/или набор команд (например, строк программы), конфигурируемые для обработки различных сигналов в разное время. Аналогично, блоки G10as и G10bs вычисления огибающей могут быть идентичными, могут быть экземплярами различных реализаций блока G10 вычисления огибающей или их можно воплощать как ту же самую структуру и/или набор команд. Даже возможно, чтобы все четыре генератора G10af, G10as, G10bf и G10bs огибающей воплощались как та же самая структура с перестраиваемой конфигурацией и/или набор команд в разное время.
Описанные реализации G20f, G20s блока G20 вычисления коэффициентов предназначены для вычисления коэффициентов S60bf, S60bs усиления уровня кадра и уровня субкадра, основываясь на соответствующих огибающих. Блок N10 нормализации, который можно воплощать как блок умножения или деления, чтобы соответствовать определенной конструкции, предназначен для нормализации каждого набора коэффициентов S60bs усиления субкадра согласно соответствующему коэффициенту S60bf усиления уровня кадра (например, перед квантованием коэффициентов усиления субкадра). В некоторых случаях может быть желательно получать возможно более точный результат с помощью квантования коэффициента S60bf усиления уровня кадра и затем использования соответствующего обратноквантованного значения для нормализации коэффициентов S60bs усиления субкадра.
Фиг.16 иллюстрирует блок-схему другой реализации A236 блока A232 вычисления коэффициентов усиления диапазона высоких частот. В этой реализации различные блоки вычисления огибающей и усиления, которые показаны на Фиг. 15, перестраивают таким образом, что нормализацию выполняют для первого сигнала перед вычислением огибающей. Блок N20 нормализации можно воплощать как блок умножения или деления, чтобы он соответствовал определенной конструкции. В некоторых случаях может быть желательным получать возможно более точный результат с помощью квантования коэффициента S60bf усиления уровня кадра и затем использования соответствующего обратноквантованного значения для нормализации первого сигнала.
Блок 430 квантования можно воплощать согласно любым методикам, которые известны или будут разработаны, для выполнения одного или большего количества способов скалярного и/или векторного квантования, которые подходят для определенной конструкции. Блок 430 квантования может быть сконфигурирован для квантования коэффициентов усиления уровня кадра отдельно от коэффициентов усиления субкадра. В одном из примеров каждый коэффициент S60bf усиления уровня кадра квантуют, используя четырехбитовый блок квантования на основе поисковой таблицы, и набор коэффициентов S60bs усиления субкадра для каждого кадра - вектор, квантованный с использованием четырех битов. Такая схема используется в кодере EVRC-ВБ для вокализированных речевых кадров (как отмечено в разделе 4.18.4 3GPP2 документа C.S0014-C version 0.2, доступном по адресу www.3gpp2.org). В другом примере каждый коэффициент S60bf усиления уровня кадра квантуют, используя семибитовый блок скалярного квантования, и набор коэффициентов S60bs усиления субкадра для каждого кадра квантуют, используя вектор многоступенчатого блока векторного квантования с четырьмя битами за этап. Такая схема используется в кодере EVRC-ВБ для невокализированных речевых кадров (как отмечено в разделе 4.18.4 3GPP2 процитированного выше документа C.S0014-C version 0.2). Также возможно в других схемах квантовать каждый коэффициент усиления уровня кадра вместе с коэффициентами усиления субкадра для этого кадра.
Блок квантования обычно сконфигурирован для отображения входного значения на одно значение из набора дискретных выходных значений. Доступно ограниченное количество выходных значений, так что диапазон входных значений отображают на одно выходное значение. Квантование увеличивает эффективность кодирования, потому что указатель, который указывает соответствующее выходное значение, можно передавать в меньшем количестве битов, чем исходное входное значение. Фиг. 17 иллюстрирует один из примеров одномерного отображения, которое можно выполнять с помощью блока скалярного квантования, в котором входные значения между (2nD-1)/2 и (2nD+1)/2 отображают на выходные значения nD (для целого числа n).
Блок квантования можно также воплощать как блок векторного квантования. Например, набор коэффициентов усиления субкадра для каждого кадра обычно квантуют с использованием блока векторного квантования. Фиг. 18 иллюстрирует один простой пример многомерного отображения, которое выполняют с помощью блока векторного квантования. В данном примере входное пространство делят на множество областей Вороного (например, согласно критерию ближайшего соседа). Квантование отображает каждое входное значение на значение, которое представляет соответствующую область Вороного (обычно, среднюю точку), показанную в данном случае как точка. В данном примере входное пространство делят на шесть областей, так что любое входное значение может быть представлено указателем, имеющим только шесть различных состояний.
Фиг.19a иллюстрирует другой пример одномерного отображения, которое можно выполнять с помощью блока скалярного квантования. В этом примере входное пространство, простирающееся от некоторого начального значения a (например, 0 децибел) до некоторого конечного значения b (например, 6 децибел), делят на n областей. Значения в каждой из n областей представлены соответствующими n значениями квантования q [0] - q [n-1]. В обычном применении набор из n значений квантования доступен для кодера и декодера, так что передача указателя квантования (0 - n-1) достаточна для перемещения квантованного значения с кодера на декодер. Например, набор значений квантования можно сохранять в упорядоченном списке, таблице или книге шифров в пределах каждого устройства.
Хотя Фиг.19a иллюстрирует, что входное пространство делят на n одинаковых областей с фиксированными размерами, вместо этого может быть желательным делить входное пространство, используя области различного размера. Возможно, что более точный усредненный результат можно получать, распределяя значения квантования согласно ожидаемому распределению входных данных. Например, может быть желательным получать более высокое разрешение (т.е. меньшие области квантования) в областях входного пространства, которые, как ожидают, будут появляться чаще, и более низкое разрешение в другом месте. Фиг. 19b иллюстрирует пример такого отображения. В другом примере размер областей квантования увеличивается, когда амплитуда увеличивается от a до b (например, логарифмически). Области квантования различных размеров могут также использоваться при векторном квантовании (например, как показано на Фиг. 18). При квантовании коэффициентов S60bf усиления уровня кадра блок 430 квантования может быть сконфигурирован для применения отображения, которое однородно или неоднородно, как желательно. Аналогично, при квантовании коэффициентов S60bs усиления субкадра, блок 430 квантования может быть сконфигурирован для применения отображения, которое однородно или неоднородно, как желательно. Блок 430 квантования можно воплощать так, чтобы он включал в себя отдельные блоки квантования для коэффициентов S60bf и S60bs, и/или можно воплощать так, чтобы он использовал ту же самую структуру с перестраиваемой конфигурацией и/или набор команд для квантования различных потоков коэффициентов усиления в разное время.
Как описано выше, коэффициенты S60b усиления диапазона высоких частот кодируют изменяющееся во времени соотношение между огибающей исходного сигнала S30 диапазона высоких частот и огибающей сигнала, основанного на узкополосном сигнале S80 возбуждения (например, синтезированного сигнала S130 диапазона высоких частот). Это соотношение можно восстанавливать в декодере таким образом, что относительные уровни декодированного узкополосного сигнала и сигнала диапазона высоких частот аппроксимируют уровни из узкополосного канала и компонентов диапазона высоких частот исходного широкополосного речевого сигнала S10.
Слышимые помехи могут возникать, если относительные уровни различных поддиапазонов в декодированном речевом сигнале неточны. Например, заметные помехи могут возникать, когда декодированный сигнал диапазона высоких частот имеет более высокий уровень (например, более высокую энергию) относительно соответствующего декодированного узкополосного сигнала, чем в исходном речевом сигнале. Слышимые помехи могут ухудшать впечатление пользователя и относящееся к восприятию качество кодера. Для получения хорошего по восприятию результата может быть желательным, чтобы кодер поддиапазона (например, кодер A200 диапазона высоких частот) был консервативным в распределении мощности синтезированному сигналу. Например, может быть желательным использовать консервативный способ квантования для кодирования значений коэффициента усиления для синтезированного сигнала.
R
R
Помехи, являющиеся результатом неустойчивости уровня, могут быть особенно нежелательными в ситуации, в которой возбуждение для усиленного поддиапазона получают из другого поддиапазона. Такие помехи могут возникать, когда, например, коэффициент S60b усиления диапазона высоких частот квантуют к значению, большему его исходного значения. Фиг. 19c иллюстрирует пример, в котором квантованное значение для значения R коэффициента усиления больше исходного значения. Квантованное значение обозначено в данной работе как q[i], где i указывает указатель квантования, связанный со значением R, и q[∙] указывает операцию получения значения квантования, идентифицированного данным указателем.
Фиг.20a иллюстрирует последовательность этапов способа M100 ограничения коэффициентов усиления согласно одной из обобщенных реализаций. Задача TQ10 вычисляет значение R для коэффициента усиления части (например, кадра или субкадра) сигнала поддиапазона. Например, задачу TQ10 может быть сконфигурирован для вычисления значения R как отношения мощности исходного кадра поддиапазона к мощности синтезированного кадра поддиапазона. Альтернативно, значение R коэффициента усиления может быть логарифмом (например, по основанию 10) такого отношения. Задачу TQ10 можно выполнять с помощью реализации блока A230 вычисления коэффициентов усиления диапазона высоких частот, которая описана выше.
R
Задача TQ20 квантует значение R коэффициента усиления. Такое квантование можно выполнять любым способом скалярного квантования (например, как описано в данной работе) или любым другим способом, подходящим для определенной конструкции кодера, таким как способ векторного квантования. В обычном применении задачу TQ20 сконфигурирован для идентификации соответствия указателя i квантования входному значению R. Например, задачу TQ20 может быть сконфигурирован для выбора указателя с помощью сравнения значения R с содержимым в списке, таблице или книге шифров квантования согласно желательной стратегии поиска (например, алгоритму минимальной ошибки). В этом примере предполагают, что таблицу или список квантования упорядочивают в порядке уменьшения для стратегии поиска (т.е. таким образом, что q [i-1]≤q [i]).
R
Задача TQ30 оценивает соотношение между квантованным значением усиления и исходным значением. В этом примере задача TQ30 сравнивает квантованное значение усиления с исходным значением. Если задача TQ30 обнаруживает, что квантованное значение R не больше входного значения R, то способ M100 завершается. Однако, если задача TQ30 обнаруживает, что квантованное значение R превышает значение R, то задача TQ50 выполняется для выбора другого указателя квантования для R. Например, задачу TQ50 может быть сконфигурирован для выбора указателя, который указывает значение квантования, меньше чем q [i].
В обычной реализации задача TQ50 выбирает следующее самое низкое значение в списке, таблице или книге шифров квантования. Фиг. 20b иллюстрирует последовательность этапов для реализации M110 способа M100, который включает в себя такую реализацию TQ52 задачи TQ50, где задачу TQ52 сконфигурирован для уменьшения указателя квантования.
R
1
1
В некоторых случаях может быть желательным разрешить, чтобы квантованное значение R превышало значение R на некоторую номинальную величину. Например, может быть желательным разрешить, чтобы квантованное значение R превышало значение R на некоторую величину или в некоторой пропорции, что, как ожидают, будет иметь приемлемо низкое влияние на качество восприятия. Фиг.20с иллюстрирует последовательность этапов для такой реализации М120 способа М100. Способ М120 включает в себя реализацию TQ32 задачи TQ30, которая сравнивает квантованное значение R с верхним предельным значением, которое больше R. В этом примере задача TQ32 сравнивает q [i] с произведением R и порогового значения T, где T имеет значение, которое больше, но близко к единице (например, 1,1 или 1,2). Если задача TQ32 обнаруживает, что квантованное значение больше (альтернативно, не меньше) произведения, то выполняют реализацию задачи TQ50. Другие реализации задачи TQ30 может быть сконфигурирован для определения, соответствует ли разность между значением R и квантованным значением R пороговому значению и/или превышает пороговое значение.
R
R
В некоторых случаях возможно, что выбор более низкого значения квантования для R вызовет большее несоответствие между декодированными сигналами, чем исходное значение квантования. Например, такая ситуация может произойти, когда q[i-1] намного меньше значения R. Дополнительные реализации способа М100 включают в себя способы, в которых выполнение или конфигурирование задачи TQ50 зависит от проверки значений-кандидатов квантования (например, q [i-1]).
R
R
2
2
Фиг.20d иллюстрирует последовательность этапов для такой реализации М130 способа М100. Способ М130 включает в себя задачу TQ40, которая сравнивает значения-кандидаты квантования (например, q[i-1]) с более низким предельным значением, которое меньше R. В данном примере задача TQ40 сравнивает q[i-1] с произведением R и порогового значения Т, где Т имеет значение, которое меньше, но близко к единице (например, 0,8 или 0,9). Если задача TQ40 определяет, что значение-кандидата квантования не больше (альтернативно, меньше) произведения, то способ М130 завершают. Если задача TQ40 обнаруживает, что квантованное значение больше (альтернативно, не меньше) произведения, то выполняют реализацию задачи TQ50. Другие реализации задачи TQ40 может быть сконфигурирован для определения, равна ли разность между значением-кандидатом квантования и значением R и/или превышает пороговое значение.
Реализацию способа М100 можно применять к коэффициенту S60bf усиления уровня кадра и/или к коэффициенту S60bs усиления субкадра. В обычном применении такой способ применяют только к коэффициентам усиления уровня кадра. Когда способ выбирает новый указатель квантования для коэффициента усиления уровня кадра, может быть желательным повторно вычислять соответствующий коэффициент S60bs усиления субкадра, основываясь на новом квантованном значении коэффициента усиления уровня кадра. Альтернативно, вычисление коэффициентов S60bs усиления субкадра может быть предназначено для выполнения после того, как способ ограничения коэффициента усиления был выполнен для соответствующего коэффициента усиления уровня кадра.
Фиг.21 иллюстрирует блок-схему реализации А203 кодера А202 диапазона высоких частот. Кодер А203 включает в себя блок L10 ограничения коэффициента усиления, который предназначен для приема квантованных значений коэффициентов усиления и их исходных (т.е. перед квантованием) значений. Блок L10 ограничения сконфигурирован для вывода коэффициентов S60b усиления диапазона высоких частот согласно соотношению между этими значениями. Например, блок L10 ограничения может быть сконфигурирован для выполнения реализации способа M100, как описано в данной работе, для вывода коэффициентов S60b усиления диапазона высоких частот, как одного или большего количества потоков указателей квантования. Возможно, будет целесообразно реализовывать такой кодер внутри сотового телефона. Фиг.22 иллюстрирует блок-схему реализации А204 кодера А203 диапазона высоких частот, который сконфигурирован для вывода коэффициентов S60bs усиления субкадра, которые создают с помощью блока 430 квантования, и вывода коэффициентов S60bf усиления уровня кадра через блок L10 ограничения. Возможно, будет целесообразно реализовывать блок А230 вычисления, блок 430 квантования и блок L10 ограничения внутри устройства, которое выполнено с возможностью передавать множество пакетов, имеющих формат, совместимый с версией Интернет-протокола. В одном таком примере множество пакетов включает в себя параметры, кодирующие узкополосный сигнал S20, параметры, кодирующие сигнал 330 диапазона высоких частот, и индекс квантования, произведенный блоком L10 ограничения.
R
R
R
Фиг.23а иллюстрирует схему работы одной из реализации L12 блока L10 ограничения. Блок L12 ограничения сравнивает значения перед квантованием и после квантования R для определения, больше или нет q [i], чем R. Если это выражение - истина, то блок L12 ограничения выбирает другой указатель квантования, уменьшая значение указателя i на единицу, для создания нового квантованного значения для R. Иначе значение указателя i не изменяют.
1
1
R
1
R
Фиг.23b иллюстрирует схему работы другой реализации L14 блока L10 ограничения. В данном примере квантованное значение сравнивают с произведением значения R и порогового значения T, где T имеет значение, которое больше, но близко к единице (например, 1,1 или 1,2). Если q [i] больше (альтернативно, не меньше) TR, то блок L14 ограничения уменьшает значение указателя i.
R
2
2
R
2
R
R
R
Фиг.23c иллюстрирует схему работы дополнительной реализации L16 блока L10 ограничения, который сконфигурирован для определения, достаточно ли близко значение квантования, которое предложено для замены текущего значения, к исходному значению R. Например, блок L16 ограничения может быть сконфигурирован для выполнения дополнительного сравнения для определения, находится ли следующее самое низкое значение указателя квантования (например, q [i-1]) в пределах указанного расстояния от значения R перед квантованием, или в пределах указанного соотношения. В этом конкретном примере значение-кандидат квантования сравнивают с произведением значения R и порогового значения T, где T имеет значение, которое меньше, но близко к единице (например, 0,8 или 0,9). Если q [i-1] меньше (альтернативно, не больше) TR, то сравнение заканчивается неудачно. Если все сравнения, выполняемые для q [i] и q [i-1], заканчиваются неудачно, то значение указателя i не изменяют.
R
Возможно, что различия между коэффициентами усиления приведут к помехам в декодированном сигнале, и может быть желательным конфигурировать кодер A200 диапазона высоких частот для выполнения способа сглаживания коэффициентов усиления, (например, применяя фильтр сглаживания, такой как одноотводный БИХ-фильтр (фильтр с бесконечной импульсной характеристикой)). Такое сглаживание можно применять к коэффициентам S60bf усиления уровня кадра и/или к коэффициентам S60bs усиления субкадра. В таком случае реализации блока L10 ограничения и/или способа M100, которые описаны в данной работе, могут быть предназначены для сравнения квантованного значения i с предварительно сглаженным значением R. Дополнительное описание и чертежи, относящиеся к такому сглаживанию коэффициентов усиления, можно найти в патентной заявке США № 11/408390 (Vos et al.), озаглавленной «SYSTEMS, METHODS, AND APPARATUS FOR GAIN FACTOR SMOOTHING», поданной 21 апреля 2006, на Фиг. 48-55b и в сопутствующем тексте (который включает в себя абзацы [000254]-[000272]), этот материал представлен для справки, в Соединенных Штатах и на любой другой территории, разрешающей представление для справки, с целью обеспечения дополнительного раскрытия, относящегося к сглаживанию коэффициентов усиления.
Если входной сигнал на блок квантования является очень равномерным, то может иногда случаться, что квантованный выходной сигнал является намного менее равномерным, согласно минимальному шагу между значениями в пространстве выходного сигнала квантования. Такой эффект может привести к слышимым помехам, и может быть желательно уменьшать это влияние для коэффициентов усиления. В некоторых случаях эффективность квантования коэффициентов усиления можно улучшать с помощью воплощения блока 430 квантования для внедрения ограничения временного шума. Такое ограничение можно применять к коэффициентам S60bf усиления уровня кадра и/или к коэффициентам S60bs усиления субкадра. Дополнительное описание и чертежи, относящиеся к квантованию коэффициентов усиления, используя ограничение временного шума, можно найти в патентной заявке США № 11/408390, на Фиг.48-55b и в сопутствующем тексте (который включает в себя абзацы [000254]-[000272]), данный материал представлен для справки в Соединенных Штатах и на любой другой территории, разрешающей представление для справки, с целью обеспечения дополнительного раскрытия, относящегося к квантованию коэффициентов усиления, используя ограничение временного шума.
В случае, когда сигнал S120 возбуждения диапазона высоких частот получают из сигнала возбуждения, который был упорядочен, может быть желательно изменять масштаб времени временной огибающей сигнала S30 диапазона высоких частот согласно изменению масштаба времени исходного сигнала возбуждения. Дополнительное описание и чертежи, относящиеся к такому изменению масштаба времени, можно найти в патентной заявке США Vos et al., озаглавленной «SYSTEMS, METHODS, AND APPARATUS FOR HIGHBAND TIME WARPING», поданной 3 апреля 2006, номер поверенного № 050550, на Фиг. 25-29 и в сопутствующем тексте (который включает в себя абзацы [000157]-[000187]), данный материал представлен для справки в Соединенных Штатах и на любой другой территории, разрешающей представление для справки, с целью обеспечения дополнительного раскрытия, относящегося к изменению масштаба времени временной огибающей сигнала S30 диапазона высоких частот.
Степень подобия между сигналом S30 диапазона высоких частот и синтезированным сигналом S130 диапазона высоких частот может указывать, насколько хорошо декодированный сигнал S100 диапазона высоких частот похож на сигнал S30 диапазона высоких частот. В частности, подобие между временными огибающими сигнала S30 диапазона высоких частот и синтезированного сигнала S130 диапазона высоких частот может указывать, что декодированный сигнал S100 диапазона высоких частот, как можно ожидать, будет иметь хорошее качество звука и будет по восприятию подобен сигналу S30 диапазона высоких частот. Большие отклонения во времени между огибающими можно рассматривать в качестве указания, что синтезированный сигнал очень отличается от оригинала, и в таком случае может быть желательным идентифицировать и уменьшать эти коэффициенты усиления перед квантованием. Дополнительное описание и чертежи, относящиеся к такому ослаблению коэффициентов усиления, можно найти в патентной заявке США Vos et al., озаглавленной «SYSTEMS, METHODS, AND APPARATUS FOR GAIN FACTOR ATTENUATION», поданной 21 апреля 2006, номер поверенного № 050558, на Фиг. 34-39 и в сопутствующем тексте (который включает в себя абзацы [000222]-[000236]), данный материал представлен для справки в Соединенных Штатах и на любой другой территории, разрешающей представление для справки, с целью обеспечения дополнительного раскрытия, относящегося к ослаблению коэффициентов усиления.
Фиг.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). Фильтр В204 синтеза диапазона высоких частот сконфигурирован для создания синтезированного сигнала диапазона высоких частот согласно сигналу S120 возбуждения диапазона высоких частот и набору коэффициентов фильтра. Для системы, в которой кодер диапазона высоких частот включает в себя фильтр синтеза (например, как в описанном выше примерном кодере А202), может быть желательным воплощать фильтр В204 синтеза диапазона высоких частот так, чтобы он имел те же самые характеристики (например, ту же самую передаточную функцию), как этот фильтр синтеза.
Декодер В202 диапазона высоких частот также включает в себя блок 580 обратного квантования, сконфигурированный для обратного квантования коэффициентов S60b усиления диапазона высоких частот, и элемент 590 управления усилением (например, блок умножения или усилитель), сконфигурированный и предназначенный для применения обратно квантованных коэффициентов усиления к синтезированному сигналу диапазона высоких частот для создания сигнала S100 диапазона высоких частот. В случае, когда огибающую усиления кадра определяют с помощью более чем одного коэффициента усиления, элемент 590 управления усилением может включать в себя логическую схему, сконфигурированную для применения коэффициентов усиления к соответствующим субкадрам, возможно согласно оконной функции, которая может быть той же самой или другой оконной функцией, которую применяют с помощью блока вычисления усиления (например, блока А230 вычисления усиления диапазона высоких частот) соответствующего кодера диапазона высоких частот. В других реализациях декодера В202 диапазона высоких частот элемент 590 управления усилением так же сконфигурирован, но он предназначен вместо этого для применения обратноквантованных коэффициентов усиления к узкополосному сигналу S80 возбуждения или к сигналу S120 возбуждения диапазона высоких частот. Элемент 590 управления усилением можно также воплощать для применения коэффициентов усиления более чем в одном временном разрешении (например, нормализовать входной сигнал согласно коэффициенту усиления уровня кадра и формировать результирующий сигнал согласно набору коэффициентов усиления субкадра).
Реализацию узкополосного декодера B110 согласно образцу, который показан на Фиг. 8, может быть сконфигурирован для вывода узкополосного сигнала S80 возбуждения на декодер B200 диапазона высоких частот после того, как долгосрочная структура (структура тона звука или гармоническая структура) была восстановлена. Например, такой декодер может быть сконфигурирован для вывода узкополосного сигнала S80 возбуждения в качестве обратно квантованной версии кодированного узкополосного сигнала S50 возбуждения. Конечно, также можно воплощать узкополосный декодер B110 таким образом, чтобы декодер B200 диапазона высоких частот выполнял обратное квантование кодированного узкополосного сигнала S50 возбуждения для получения узкополосного сигнала S80 возбуждения.
Хотя они в значительной степени описаны в применении к кодированию диапазона высоких частот, раскрытые принципы можно применять к любому кодированию поддиапазона речевого сигнала относительно другого поддиапазона речевого сигнала. Например, блок фильтров кодера может быть сконфигурирован для вывода сигнала диапазона низких частот на кодер диапазона низких частот (альтернативно или в дополнение к одному или большему количеству сигналов диапазона высоких частот), и кодер диапазона низких частот может быть сконфигурирован для выполнения анализа спектра сигнала диапазона низких частот, расширения кодированного узкополосного сигнала возбуждения и вычисления огибающей усиления для кодированного сигнала диапазона низких частот относительно исходного сигнала диапазона низких частот. Для каждой из этих операций явно рассматривают и тем самым раскрывают, что кодер диапазона низких частот может быть сконфигурирован для выполнения такой операции согласно любому из вариантов, которые описаны в данной работе.
Предшествующее представление описанных конфигураций обеспечено для предоставления возможности любому специалисту осуществлять или использовать раскрытые структуры и принципы. Возможны различные изменения этих конфигураций, и представленные универсальные принципы можно также применять к другим конфигурациям. Например, конфигурацию можно воплощать частично или полностью как аппаратно реализованную схему, как схемную конфигурацию, изготовленную в специализированной интегральной схеме, или как программу встроенного программного обеспечения, загруженную в энергонезависимое запоминающее устройство, или как программу, загруженную с или на носитель хранения данных, как считываемый компьютером код, такой код является командами, выполняемыми с помощью совокупности логических элементов, таких как микропроцессор или другое устройство цифровой обработки сигналов. Носитель данных может быть совокупностью запоминающих элементов, таких как полупроводниковая память (которая может включать в себя без ограничения динамическую или статическую ОП (оперативную память), ПЗУ (постоянное запоминающее устройство) и/или флэш-память) или запоминающее устройство (ЗУ) на сегнетоэлектриках, магниторезистивное ЗУ, ЗУ на аморфных полупроводниках, полимерное ЗУ или ЗУ с изменением фазы; или дисковый носитель, такой как магнитный или оптический диск. Следует понимать, что термин «программное обеспечение» включает в себя исходный текст, код на языке ассемблера, машинный код, двоичный код, встроенное программное обеспечение, макрокоманды, микрокоманды, один или большее количество наборов или последовательностей команд, выполняемых совокупностью логических элементов, и любые комбинации таких примеров.
Различные элементы реализаций блока A230 вычисления коэффициентов усиления диапазона высоких частот, кодера A200 диапазона высоких частот, декодера B200 диапазона высоких частот, широкополосного речевого кодера A100 и широкополосного речевого декодера B100 можно воплощать как электронные и/или оптические устройства, находящиеся, например, в той же самой микросхеме или среди двух или большего количества микросхем в наборе микросхем, хотя другие конфигурации без такого ограничения также рассматриваются. Один или большее количество элементов такого устройства (например, блок A230 вычисления коэффициентов усиления диапазона высоких частот, блок 430 квантования и/или блок L10 ограничения) можно воплощать полностью или частично как один или большее количество наборов команд, настроенных для выполнения на одном или большем количестве фиксированных или программируемых наборов логических элементов (например, транзисторов, схем), таких как микропроцессоры, встроенные процессоры, стандартные вычислительные модули (IP cores), процессоры цифровой обработки сигналов, FPGA (программируемые пользователем вентильные матрицы), ASSP (специализированные стандартные изделия) и СпИС (специализированные интегральные схемы). Также возможно, чтобы один или большее количество таких элементов имели общую структуру (например, процессор, используемый для выполнения частей кода, соответствующих различным элементам в разное время, набор команд, выполняемых для выполнения задач, соответствующих различным элементам в разное время, или структуры из электронных и/или оптических устройств, выполняющих операции для различных элементов в разное время). Кроме того, возможно, чтобы один или большее количество таких элементов использовались для выполнения задачи или выполнения других наборов команд, которые непосредственно не относятся к работе устройства, таких как задача, относящаяся к работе другого устройства или системы, в которую внедрено устройство.
Конфигурации также включают в себя дополнительные способы кодирования и декодирования речи, которые явно раскрыты в данном документе, например, с помощью описания структур, сконфигурированных для выполнения таких способов. Каждый из этих способов можно также материально воплощать (например, в одном или большем количестве носителей хранения данных, как указано выше) как один или большее количество наборов команд, считываемых и/или выполняемых компьютером, включающим в себя набор логических элементов (например, процессоров, микропроцессоров, микроконтроллеров или других конечных автоматов). Таким образом, настоящее раскрытие не ограничено показанными выше конфигурациями, а вместо этого объединяет самую широкую форму, совместимую с принципами и новыми особенностями, раскрытыми в данной работе любым образом, которые включает в себя прилагаемая зарегистрированная формула изобретения, которая является частью исходного раскрытия.