Способы и системы переключения технологий кодирования в устройстве
Иллюстрации
Показать всеИзобретение относится к средствам для переключения технологии кодирования при кодировании аудиосигнала. Технический результат заключается в сокращении артефактов на границах кадров и несогласованностей энергии при переключении технологии кодирования. Кодируют первый кадр аудиосигнала с использованием анализа первой области в первом кодере. Генерируют, при кодировании первого кадра, сигнал базовой полосы, соответствующий оценке высокой полосы аудиосигнала или синтезированной версии по меньшей мере части аудиосигнала. Кодируют второй кадр аудиосигнала с использованием анализа второй области во втором кодере посредством обработки первых данных, представляющих сигнал базовой полосы, и вторых данных, представляющих часть высокой полосы второго кадра, для генерирования параметров высокой полосы, ассоциированных со вторым кадром. 7 н. и 33 з.п. ф-лы, 8 ил.
Реферат
I. ЗАЯВЛЕНИЕ ОБ УСТАНОВЛЕНИИ ПРИОРИТЕТА
[0001] Настоящая заявка испрашивает приоритет заявки США № 14/671,757, поданной 27 марта 2015, которая озаглавлена “SYSTEMS AND METHODS OF SWITCHING CODING TECHNOLOGIES AT A DEVICE”, и предварительной заявки США № 61/973,028, поданной 31 марта 2014, которая озаглавлена “SYSTEMS AND METHODS OF SWITCHING CODING TECHNOLOGIES AT A DEVICE”, содержание которых включено в настоящий документ посредством ссылки в полном объеме.
II. ОБЛАСТЬ ТЕХНИКИ
[0002] Настоящее раскрытие в целом относится к переключению технологий кодирования в устройстве.
III. ОПИСАНИЕ ПРЕДШЕСТВУЮЩЕГО УРОВНЯ ТЕХНИКИ
[0003] Достижения в технологии привели к созданию меньших по габаритам и более мощных вычислительных устройств. Например, в настоящее время существует множество портативных персональных вычислительных устройств, включая беспроводные вычислительные устройства, такие как портативные беспроводные телефоны, персональные цифровые помощники (PDA) и пейджинговые устройства, которые являются малогабаритными, легкими и легко носимыми пользователями. Более конкретно, портативные беспроводные телефоны, такие как сотовые телефоны и телефоны Интернет-протокола (IP), могут передавать голос и пакеты данных по беспроводным сетям. Кроме того, многие такие беспроводные телефоны включают в себя другие типы устройств, которые встроены в них. Например, беспроводной телефон может также включать в себя цифровой фотоаппарат, цифровую видеокамеру, цифровой диктофон и проигрыватель аудио файлов.
[0004] Беспроводные телефоны отправляют и принимают сигналы, представляющие человеческий голос (например, речь). Передача голоса цифровыми методами широко распространена, особенно в междугородных и цифровых радио телефонных приложениях. Там может иметься заинтересованность в определении наименьшего количества информации, которая может отправляться по каналу, при сохранении воспринимаемого качества восстановленной речи. Если речь передается посредством дискретизации и оцифровки, скорость передачи данных порядка шестидесяти четыре килобит в секунду (кбит/с) может быть использована для достижения качества речи аналогового телефона. С использованием анализа речи с последующим кодированием, передачей и повторным синтезом в приемнике может быть достигнуто значительное снижение скорости передачи данных.
[0005] Устройства для сжатия речи могут найти применение во многих областях телекоммуникаций. Примером может служить область беспроводной связи. Область беспроводной связи имеет много применений, включая, например, беспроводные телефоны, пейджинг, беспроводные локальные шлейфы, беспроводную телефонию, включая сотовые телефонные системы и телефонные системы служб персональной связи (PCS), мобильную IP-телефонию и системы спутниковой связи. Конкретным применением является беспроводная телефония для мобильных абонентов.
[0006] Различные радиоинтерфейсы были разработаны для систем беспроводной связи, включая, например, множественный доступ с частотным разделением (FDMA), множественный доступ с временным разделением (TDMA), множественный доступ с кодовым разделением (CDMA) и CDMA с синхронным временным разделением (TD-SCDMA). В связи с этим были установлены различные внутренние и международные стандарты, в том числе, например, Развитая мобильная телефонная служба (AMPS), Глобальная система мобильной связи (GSM) и Временный стандарт 95 (IS-95). Примером системы беспроводной телефонной связи является система CDMA. Стандарт IS-95 и его производные, IS-95A, стандарт Американского национального института стандартов (ANSI) J-STD-008 и IS-95B (совместно упоминаемые здесь как IS-95), опубликованы Ассоциацией промышленности средств связи (TIA) и другими органами по стандартизации для специфицирования использования радиоинтерфейса CDMA для сотовых или PCS систем телефонной связи.
[0007] Стандарт IS-95 впоследствии эволюционировал в системы “3G”, такие как cdma2000 и широкополосный CDMA (WCDMA), которые обеспечивают больше возможностей и услуг пакетной передачи данных с высокой скоростью. Два варианта cdma2000 представлены документами IS-2000 (cdma2000 1xRTT) и IS-856 (cdma2000 1xEV-DO), которые выпущены TIA. Система связи cdma2000 1xRTT предлагает пиковую скорость передачи данных 153 кбит/с, в то время как система связи cdma2000 1xEV-DO определяет набор скоростей передачи данных в пределах от 38,4 Кбит/с до 2,4 Мбит/с. Стандарт WCDMA воплощен в Проекте партнерства 3-го поколения “3GPP”, документы № 3G TS 25.211, 3G TS 25.212, 3G TS 25.213 и 3G TS 25.214. Спецификация International Mobile Telecommunications Advanced (IMT-Advanced) устанавливает стандарты “4G”. Спецификация IMT-Advanced устанавливает пиковую скорость передачи данных для службы 4G на 100 мегабит в секунду (Мбит/с) для связи высокой мобильности (например, из поездов и автомобилей) и 1 гигабит в секунду (Гбит/с) для связи низкой мобильности (например, от пешеходов и стационарных пользователей).
[0008] Устройства, которые используют методы для сжатия речи посредством извлечения параметров, которые относятся к модели генерации человеческой речи, называются речевыми кодерами. Речевые кодеры могут включать в себя кодер и декодер. Кодер разделяет входящий речевой сигнал на временные блоки или кадры анализа. Длительность каждого сегмента во времени (или “кадра”) может быть выбрана, чтобы быть достаточно короткой, чтобы можно было ожидать, что спектральная огибающая сигнала останется относительно стационарной. Например, длина одного кадра составляет двадцать миллисекунд, что соответствует 160 выборкам при частоте дискретизации восемь килогерц (кГц), хотя любая длина кадра или частота дискретизации, считающаяся подходящей для конкретного приложения, может быть использована.
[0009] Кодер анализирует входящий речевой кадр, чтобы извлечь некоторые релевантные параметры, и затем выполняет квантование параметров в двоичное представление, например, в набор битов или пакет двоичных данных. Эти пакеты данных передаются по каналу связи (например, соединению проводной и/или беспроводной сети) к приемнику и декодеру. Декодер обрабатывает пакеты данных, деквантует обрабатываемые пакеты данных для получения параметров и повторно синтезирует речевые кадры, используя деквантованные параметры.
[0010] Функция речевого кодера заключается в сжатии оцифрованного речевого сигнала в сигнал низкой битовой скорости путем удаления естественных избыточностей, присущих речи. Цифровое сжатие может быть достигнуто путем представления входного речевого кадра набором параметров и использования квантования для представления параметров набором битов. Если входной речевой кадр имеет количество битов Ni, и пакет данных, сформированный речевым кодером, имеет количество битов No, коэффициент сжатия, реализуемый речевым кодером, равен Cr=Ni/No. Проблема заключается в том, чтобы сохранить высокое качество декодированной речи при достижении целевого коэффициента сжатия. Производительность речевого кодера зависит от следующего: (1) насколько хорошо выполняется речевая модель или комбинация процесса анализа и синтеза, описанного выше, и (2) насколько хорошо выполняется процесс квантования параметров на целевой битовой скорости No битов на кадр. Целью речевой модели является, таким образом, получить сущность речевого сигнала или целевое качество голоса при небольшом наборе параметров для каждого кадра.
[0011] Речевые кодеры обычно используют набор параметров (включая вектора) для описания речевого сигнала. Хороший набор параметров идеально обеспечивает низкую системную ширину полосы для восстановления перцептивно точного речевого сигнала. Основной тон, мощность сигнала, спектральная огибающая (или форманты), амплитудный и фазовый спектры являются примерами параметров речевого кодирования.
[0012] Речевые кодеры могут быть реализованы как кодеры временной области, которые пытаются фиксировать речевую форму сигнала временной области с использованием обработки высокого временного разрешения для кодирования малых сегментов речи (например, 5-миллисекундных (мс) подкадров) единовременно. Для каждого подкадра, высокоточный представитель из пространства кодовой книги может быть найден с помощью алгоритма поиска. В качестве альтернативы, речевые кодеры могут быть реализованы как кодеры частотной области, которые пытаются фиксировать кратковременный речевой спектр входного речевого кадра с набором параметров (анализа) и используют соответствующий процесс синтеза для воссоздания речевого сигнала из спектральных параметров. Квантователь параметров сохраняет параметры, представляя их с сохраненными представлениями кодовых векторов в соответствии с известными методами квантования.
[0013] Одним речевым кодером временной области является кодер линейного предсказания с кодовым возбуждением (CELP). В CELP-кодере, кратковременные корреляции, или избыточности, в речевом сигнале удаляются с помощью анализа линейного предсказания (LP), который находит коэффициенты фильтра кратковременных формант. Применение фильтра кратковременного предсказания к входящему речевому кадру генерирует LP остаточный сигнал, который дополнительно моделируется и квантуется с параметрами фильтра долговременного предсказания и последующей стохастической кодовой книги. Таким образом, CELP-кодирование разделяет задачу кодирования речевого сигнала временной области на отдельные задачи кодирования LP кратковременных коэффициентов фильтрации и кодирования LP остатка. Кодирование временной области может быть выполнено с фиксированной скоростью (например, с использованием одного и того же количества битов, No, для каждого кадра) или с переменной скоростью (когда различные битовые скорости используются для различных типов содержаний кадров). Кодеры переменной скорости пытаются использовать количество битов, необходимых для кодирования параметров кодека до адекватного уровня для получения целевого качества.
[0014] Кодеры временной области, такие как CELP-кодер, могут рассчитывать на большое число битов, N0, на кадр, чтобы сохранить точность речевого сигнала временной области. Такие кодеры могут обеспечивать отличное голосовое качество при условии, что число битов, No, на кадр является относительно большим (например, 8 кбит/с или выше). При низких битовых скоростях (например, 4 кбит/с и ниже), кодеры временной области могут не обеспечить сохранение высокого качества и устойчивой производительности из-за ограниченного количества доступных битов. При низких битовых скоростях, ограниченное пространство кодовой книги ограничивает способность согласования волновой формы кодеров временной области, которые применяются в высокоскоростных коммерческих приложениях. Таким образом, несмотря на усовершенствования во времени, многие системы CELP-кодирования, работающие при низких битовых скоростях, страдают от перцептивно значительного искажения, характеризуемого как шум.
[0015] Альтернативой CELP-кодерам при низких битовых скоростях является кодер “линейного предсказания с шумовым возбуждением” (NELP), который работает в соответствии с принципами, сходными с CELP-кодером. NELP-кодеры используют отфильтрованный псевдослучайный шумовой сигнал для моделирования речи, вместо кодовой книги. Так как NELP использует более простую модель для кодированной речи, NELP достигает более низкой битовой скорости, чем CELP. NELP может быть использовано для сжатия или представления невокализированной речи или паузы.
[0016] Системы кодирования, которые работают со скоростями порядка 2,4 кбит/с, как правило, имеют параметрический характер. То есть, такие системы кодирования работают путем передачи параметров, описывающих период основного тона и спектральную огибающую (или форманты) речевого сигнала с регулярными интервалами. Примером этих так называемых параметрических кодеров является система LP-вокодера.
[0017] LP-вокодеры моделируют вокализованный речевой сигнал с одним импульсом на период основного тона. Этот базовый метод может быть расширен, чтобы включать в себя передачу информации о спектральной огибающей, помимо прочего. Хотя LP-вокодеры обеспечивают достаточную производительность, как правило, они могут вводить перцептивно значительное искажение, характеризуемое как гудение.
[0018] В последние годы появились кодеры, которые являются гибридами кодеров волновой формы и параметрических кодеров. Примером этих так называемых гибридных кодеров является система кодирования речевого сигнала с интерполяцией волновых форм-прототипов (PWI). PWI-система кодирования может быть также известна как речевой кодер с периодом основного тона-прототипа (PPP). PWI-система кодирования обеспечивает эффективный способ для кодирования вокализованной речи. Основная концепция PWI заключается в извлечении репрезентативного цикла основного тона (волновой формы-прототипа) с фиксированными интервалами, чтобы передать его описание, и в восстановлении речевого сигнала путем интерполяции между волновыми формами-прототипами. PWI-метод может работать либо на LP-остаточном сигнале, либо на речевом сигнале.
[0019] Устройство связи может принимать речевой сигнал с более низким, чем оптимальное, качеством голоса. Чтобы проиллюстрировать это, устройство связи может принимать речевой сигнал от другого устройства связи во время голосового вызова. Качество голосового вызова может ухудшаться из-за различных причин, таких как шум окружающей среды (например, ветер, уличный шум), ограничения интерфейсов устройств связи, обработка сигналов устройством связи, потеря пакетов, ограничения ширины полосы, ограничения битовой скорости и т.д.
[0020] В традиционных телефонных системах (например, коммутируемых телефонных сетях общего пользования (PSTN)), ширина полосы сигнала ограничена диапазоном частот от 300 герц (Гц) до 3,4 кГц. В широкополосных (WB) приложениях, таких как сотовая телефония и передача голоса по Интернет-протоколу (VoIP), ширина полосы сигнала может охватывать диапазон частот от 50 Гц до 7 кГц. Сверхширокополосные (SWB) методы кодирования поддерживают ширину полосы, которая простирается примерно до 16 кГц. Расширение ширины полосы сигнала от узкополосной телефонии на частоте 3,4 кГц до SWB телефонии при 16 кГц может повысить качество восстановления сигнала, разборчивость и естественность.
[0021] Одним методом WB/SWB-кодирования является расширение ширины полосы (BWE), которое включает в себя кодирование и передачу части нижних частот сигнала (например, от 0 Гц до 6,4 кГц, также называемой “низкой полосой”). Например, низкая полоса может быть представлена с использованием параметров фильтра и/или сигнала возбуждения низкой полосы. Однако, в целях повышения эффективности кодирования, часть верхних частот сигнала (например, от 6,4 кГц до 16 кГц, также называемая “высокой полосой”) может не полностью кодироваться и передаваться. Вместо этого, приемник может использовать моделирование сигнала для предсказания высокой полосы. В некоторых реализациях, данные, ассоциированные с высокой полосой, могут быть предоставлены приемнику, чтобы способствовать предсказанию. Такие данные могут упоминаться как “побочная информация” и могут включать в себя информацию усиления, линейные спектральные частоты (LSF, также упоминаемые как линейные спектральные пары (LSP)) и т.д.
[0022] В некоторых беспроводных телефонах доступны различные технологии кодирования. Например, различные технологии кодирования могут быть использованы для кодирования различных типов аудио сигнала (например, речевых сигналов против музыкальных сигналов). Когда беспроводной телефон переключается от использования первой технологии кодирования для кодирования аудио сигнала на использование второй технологии кодирования для кодирования аудио сигнала, слышимые артефакты могут быть сгенерированы на границах кадров аудио сигнала вследствие сброса буферов памяти в кодерах.
IV. СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0023] Раскрыты системы и способы сокращения артефактов на границах кадров и несогласованностей энергии при переключении технологий кодирования в устройстве. Например, устройство может использовать первый кодер, такой как кодер модифицированного дискретного косинусного преобразования (MDCT), чтобы кодировать кадр аудио сигнала, который содержит существенные высокочастотные компоненты. Например, кадр может содержать фоновый шум, зашумленную речь или музыку. Устройство может использовать второй кодер, такой как кодер линейного предсказания с возбуждением алгебраическим кодом (ACELP), чтобы кодировать речевой кадр, который не содержит существенных высокочастотных компонентов. Один или оба из кодеров могут применять метод BWE. При переключении между MDCT-кодером и ACELP-кодером, буферы памяти, используемые для BWE, могут быть сброшены (например, заполнены нулями), и состояния фильтра могут быть сброшены, что может привести к артефактам на границах кадров и несогласованностям энергии.
[0024] В соответствии с описанными методами, вместо сброса (или “обнуления”) буфера и сброса фильтра, один кодер может заполнять буфер и определять настройки фильтра на основе информации от другого кодера. Например, при кодировании первого кадра аудио сигнала, MDCT-кодер может генерировать сигнал базовой полосы, который соответствует “цели” высокой полосы, а ACELP-кодер может использовать сигнал базовой полосы для заполнения буфера целевого сигнала и генерировать параметры высокой полосы для второго кадра аудио сигнала. В качестве другого примера, буфер целевого сигнала может быть заполнен на основании синтезированного выхода MDCT-кодера. В качестве еще одного примера, ACELP-кодер может оценивать часть первого кадра с использованием методов экстраполяции, энергии сигнала, информации о типе кадра (например, является ли второй кадр и/или первый кадр невокализованным кадром, вокализованным кадром, переходным кадром или обобщенным кадром) и т.д.
[0025] Во время синтеза сигнала, декодеры могут также выполнять операции, чтобы уменьшать артефакты на границах кадров и несогласованностей энергии вследствие переключения технологий кодирования. Например, устройство может включать в себя MDCT- декодер и ACELP-декодер. Когда ACELP-декодер декодирует первый кадр аудио сигнала, ACELP-декодер может генерировать набор выборок “перекрытия”, соответствующих второму (т.е., следующему) кадру аудио сигнала. Если переключение технологии кодирования происходит на границе кадров между первым и вторым кадрами, MDCT-декодер может выполнять операцию сглаживания (например, перекрестного слияния) при декодировании второго кадра на основе выборок перекрытия с ACELP-декодера, чтобы повысить воспринимаемую непрерывность сигнала на границе кадров.
[0026] В конкретном аспекте, способ включает в себя кодирование первого кадра аудио сигнала с использованием первого кодера. Способ также включает в себя формирование, при кодировании первого кадра, сигнала базовой полосы, который включает в себя содержание, соответствующее части высокой полосы аудио сигнала. Способ дополнительно включает в кодирование второго кадра аудио сигнала с использованием второго кодера, причем кодирование второго кадра включает в себя обработку сигнала базовой полосы для генерации параметров высокой полосы, ассоциированных со вторым кадром.
[0027] В другом конкретном аспекте, способ включает в себя декодирование, в устройстве, которое включает в себя первый декодер и второй декодер, первого кадра аудио сигнала с использованием второго декодера. Второй декодер генерирует данные перекрытия, соответствующие начальной части второго кадра аудио сигнала. Способ также включает в себя декодирование второго кадра с использованием первого декодера. Декодирование второго кадра включает в себя применение операции сглаживания с использованием данных перекрытия от второго декодера.
[0028] В другом конкретном аспекте, устройство включает в себя первый кодер, сконфигурированный, чтобы кодировать первый кадр аудио сигнала и генерировать, при кодировании первого кадра, сигнал базовой полосы, который включает в себя содержание, соответствующее части высокой полосы аудио сигнала. Устройство также включает в себя второй кодер, сконфигурированный, чтобы кодировать второй кадр аудио сигнала. Кодирование второго кадра включает в себя обработку сигнала базовой полосы для генерации параметров высокой полосы, ассоциированных со вторым кадром.
[0029] В другом конкретном аспекте, устройство включает в себя первый кодер, сконфигурированный, чтобы кодировать первый кадр аудио сигнала. Устройство также включает в себя второй кодер, сконфигурированный, чтобы, при кодировании второго кадра аудио сигнала, оценивать первую часть первого кадра. Второй кодер также сконфигурирован, чтобы заполнять буфер второго кодера на основе первой части первого кадра и второго кадра и генерировать параметры высокой полосы, ассоциированные со вторым кадром.
[0030] В другом конкретном аспекте, устройство включает в себя первый декодер и второй декодер. Второй декодер сконфигурирован, чтобы декодировать первый кадр аудио сигнала и генерировать данные перекрытия, соответствующие части второго кадра аудио сигнала. Первый декодер сконфигурирован, чтобы, при декодировании второго кадра, применить операцию сглаживания с использованием данных перекрытия от второго декодера.
[0031] В другом конкретном аспекте, считываемое компьютером устройство хранения данных хранит инструкции, которые, при исполнении процессором, побуждают процессор выполнять операции, включающие в себя кодирование первого кадра аудио сигнала с использованием первого кодера. Операции также включают в себя генерацию, при кодировании первого кадра, сигнала базовой полосы, который включает в себя содержание, соответствующее части высокой полосы аудио сигнала. Операции дополнительно включают в себя кодирование второго кадра аудио сигнала с использованием второго кодера. Кодирование второго кадра включает в себя обработку сигнала базовой полосы для генерации параметров высокой полосы, ассоциированных со вторым кадром.
[0032] Конкретные преимущества, обеспечиваемые по меньшей мере одним из раскрытых примеров, включают в себя способность уменьшать артефакты на границах кадров и несогласованностей энергии при переключении между кодерами или декодерами в устройстве. Например, одна или более памятей, таких как буферы или состояния фильтров одного кодера или декодера могут быть определены на основе операции другого кодера или декодера. Другие аспекты, преимущества и признаки настоящего раскрытия станут очевидными на основе рассмотрения всей заявки, в том числе разделов, содержащих краткое описание чертежей, детальное описание, и формулы изобретения.
V. КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0033] Фиг. 1 - блок-схема для иллюстрации конкретного примера системы, которая выполнена с возможностью поддерживать переключение между кодерами с уменьшением артефактов на границах кадров и несогласованностей энергии;
[0034] Фиг. 2 - блок-схема для иллюстрации конкретного примера системы ACELP-кодирования;
[0035] Фиг. 3 - блок-схема для иллюстрации конкретного примера системы, которая выполнена с возможностью поддерживать переключение между декодерами с уменьшением артефактов на границах кадров и несогласованностей энергии;
[0036] Фиг. 4 - блок-схема последовательности операций для иллюстрации конкретного примера способа работы в устройстве кодера;
[0037] Фиг. 5 - блок-схема последовательности операций для иллюстрации другого конкретного примера способа работы в устройстве кодера;
[0038] Фиг. 6 - блок-схема последовательности операций для иллюстрации другого конкретного примера способа работы в устройстве кодера;
[0039] Фиг. 7 - блок-схема последовательности операций для иллюстрации конкретного примера способа работы в устройстве декодера; и
[0040] Фиг. 8 - блок-схема беспроводного устройства, выполненного с возможностью выполнения операций в соответствии с системами и способами согласно фиг. 1-7.
VI. ДЕТАЛЬНОЕ ОПИСАНИЕ
[0041] На фиг. 1 изображен конкретный пример системы, которая выполнена с возможностью переключения кодеров (например, технологий кодирования) при уменьшении артефактов на границах кадров и несогласованностей энергии, и обозначена в целом 100. В иллюстративном примере, система 100 встроена в электронное устройство, такое как беспроводный телефон, планшетный компьютер и т.д. Система 100 включает в себя селектор 110 кодера, кодер, основанный на преобразовании (например, MDCT-кодер 120), и кодер, основанный на LP (например, ACELP-кодер 150). В альтернативном примере, различные типы технологий кодирования могут быть реализованы в системе 100.
[0042] В последующем описании, различные функции, выполняемые системой 100 согласно фиг. 1, описаны как выполняемые отдельными компонентами или модулями. Однако это разделение компонентов и модулей приведено только для иллюстрации. В альтернативном примере функция, выполняемая конкретным компонентом или модулем, может вместо этого быть разделена между несколькими компонентами или модулями. К тому же, в альтернативном примере, два или более компонентов или модулей, показанных на фиг. 1, могут быть интегрированы в единый компонент или модуль. Каждый компонент или модуль, иллюстрируемый на фиг. 1, может быть реализован с использованием аппаратных средств (например, специализированной интегральной схемы (ASIC), процессора цифровых сигналов (DSP), контроллера, устройства на программируемой пользователем вентильной матрицы (FPGA) и т.д.), программного обеспечения (например, инструкций, выполняемых процессором) или любой их комбинации.
[0043] Кроме того, следует отметить, что, хотя фиг. 1 иллюстрирует отдельный MDCT-кодер 120 и ACELP-кодер 150, это не следует рассматривать как ограничение. В альтернативных примерах, один кодер электронного устройства может включать в себя компоненты, соответствующие MDCT-кодеру 120 и ACELP-кодеру 150. Например, кодер может включать в себя один или более модулей “ядра” низкой полосы (LB) (например, MDCT-ядро и ACELP-ядро) и один или более модулей высокой полосы (HB)/BWE. Часть низкой полосы каждого кадра аудио сигнала 102 может быть предоставлена на конкретный модуль ядра низкой полосы для кодирования в зависимости от характеристик кадра (например, содержит ли кадр речь, шум, музыку и т.д.). Часть высокой полосы каждого кадра может быть предоставлена на конкретный модуль HB/BWE.
[0044] Селектор 110 кодера может быть сконфигурирован, чтобы принимать аудио сигнал 102. Аудио сигнал 102 может включать в себя речевые данные, неречевые данные (например, музыку или фоновый шум) или и то и другое. В иллюстративном примере, аудио сигнал 102 представляет собой SWB-сигнал. Например, аудио сигнал 102 может занимать полосу частот приблизительно от 0 Гц до 16 кГц. Аудио сигнал 102 может включать в себя множество кадров, где каждый кадр имеет конкретную длительность. В иллюстративном примере, каждый кадр имеет длительность 20 мс, хотя в альтернативных примерах могут быть использованы различные длительности кадров. Селектор 110 кодера может определять, должен ли каждый кадр аудио сигнала 102 кодироваться MDCT-кодером 120 или ACELP-кодером 150. Например, селектор 110 кодера может классифицировать кадры аудио сигнала 102 на основе спектрального анализа кадров. В конкретном примере, селектор 110 кодера отправляет кадры, которые включают в себя существенные высокочастотные компоненты, в MDCT-кодер 120. Например, такие кадры могут включать в себя фоновый шум, зашумленную речь или музыкальные сигналы. Селектор 110 кодера может отправлять кадры, которые не включают в себя существенные высокочастотные составляющие, в ACELP-кодер 150. Например, такие кадры могут включать в себя речевые сигналы.
[0045] Таким образом, во время работы системы 100, кодирование аудио сигнала 102 может переключаться от MDCT-кодера 120 на ACELP-кодер 150 и наоборот. MDCT-кодер 120 и ACELP-кодер 150 могут генерировать выходной битовый поток 199, соответствующий кодированным кадрам. Для простоты иллюстрации, кадры, которые должны кодироваться ACELP-кодером 150, показаны заштрихованными, а кадры, которые должны кодироваться MDCT- кодером 120, показаны без штриховки. В примере, показанном на фиг. 1, переход от ACELP-кодирования к MDCT-кодированию происходит на границе кадров между кадрами 108 и 109. Переход от MDCT-кодирования к ACELP-кодированию происходит на границе кадров между кадрами 104 и 106.
[0046] MDCT-кодер 120 включает в себя модуль 121 MDCT-анализа, который выполняет кодирование в частотной области. Если MDCT-кодер 120 не выполняет BWE, модуль 121 MDCT-анализа может включать в себя “полный” MDCT-модуль 122. “Полный” MDCT-модуль 122 может кодировать кадры аудио сигнала 102 на основе анализа всего диапазона частот аудио сигнала 102 (например, от 0 Гц до 16 кГц). С другой стороны, если MDCT-кодер 120 выполняет BWE, данные LB и данные высокой HB могут обрабатываться отдельно. Модуль 123 низкой полосы может генерировать кодированное представление части низкой полосы аудио сигнала 102, а модуль 124 высокой полосы может генерировать параметры высокой полосы, которые должны использоваться декодером, чтобы восстанавливать часть высокой полосы (например, от 8 кГц до 16 кГц) аудио сигнала 102. MDCT-кодер 120 может также включать в себя локальный декодер 126 для оценки замкнутого контура. В иллюстративном примере, локальный декодер 126 используется для синтеза представления аудио сигнала 102 (или его части, такой как часть высокой полосы). Синтезированный сигнал может быть сохранен в буфере синтеза и может быть использован модулем 124 высокой полосы при определении параметров высокой полосы.
[0047] ACELP-кодер 150 может включать в себя модуль 159 ACELP-анализа временной области. В примере, показанном на фиг. 1, ACELP-кодер 150 выполняет расширение ширины полосы и включает в себя модуль 160 анализа низкой полосы и отдельный модуль 161 анализа высокой полосы. Модуль 160 анализа низкой полосы может кодировать часть низкой полосы аудио сигнала 102. В качестве иллюстративного примера, часть низкой полосы аудио сигнала 102 занимает диапазон частот шириной приблизительно 0 Гц до 6,4 кГц. В альтернативных примерах, другая частота кроссовера может отделять части низкой полосы и высокой полосы, и/или части могут перекрывать друг друга, как описано далее со ссылкой на фиг. 2. В конкретном примере, модуль 160 анализа низкой полосы кодирует часть низкой полосы аудио сигнала 102 путем квантования LSP, которые сгенерированы из LP-анализа части низкой полосы. Квантование может быть основано на кодовой книге низкой полосы. ACELP-анализ низкой полосы дополнительно описан со ссылкой на фиг. 2.
[0048] Генератор 155 целевого сигнала ACELP-кодера 150 может генерировать целевой сигнал, который соответствует версии базовой полосы части высокой полосы аудио сигнала 102. В качестве иллюстрации, модуль 156 вычисления может генерировать целевой сигнал посредством выполнения одной или более операций зеркального отображения, прореживания (децимации), фильтрации высокого порядка, понижающего микширования и/или понижающей дискретизации на аудио сигнале 102. Когда целевой сигнал сформирован, целевой сигнал может быть использован для заполнения буфера 151 целевого сигнала. В конкретном примере, буфер 151 целевого сигнала хранит данные длиной 1,5 кадра и включает в себя первую часть 152, вторую часть 153 и третью часть 154. Таким образом, когда кадры имеют длительность 20 мс, буфер 151 целевого сигнала представляет данные высокой полосы для 30 мс аудио сигнала. Первая часть 152 может представлять данные высокой полосы в 1-10 мс, вторая часть 153 может представлять данные высокой полосы в 11-20 мс, и третья часть 154 может представлять данные высокой полосы в 21-30 мс.
[0049] Модуль 161 анализа высокой полосы может генерировать параметры высокой полосы, которые могут использоваться декодером, чтобы реконструировать часть высокой полосы аудио сигнала 102. Например, часть высокой полосы аудио сигнала 102 может занимать диапазон частот шириной приблизительно от 6,4 кГц до 16 кГц. В иллюстративном примере, модуль 161 анализа высокой полосы квантует (например, на основании кодовой книги) LSP, которые сгенерированы из LP-анализа части высокой полосы. Модуль 161 анализа высокой полосы также может принимать сигнал возбуждения низкой полосы из модуля 160 анализа низкой полосы. Модуль 161 анализа высокой полосы может генерировать сигнал возбуждения высокой полосы из сигнала возбуждения низкой полосы. Сигнал возбуждения высокой полосы может быть предоставлен на локальный декодер 158, который генерирует синтезированную часть высокой полосы. Модуль 161 анализа высокой полосы может определять параметры высокой полосы, такие как усиление кадра, коэффициент усиления и т.д., на основе цели высокой полосы в буфере 151 целевого сигнала и/или синтезированной части высокой полосы из локального декодера 158. ACELP-анализ высокой полосы дополнительно описан со ссылкой на фиг. 2.
[0050] После того как кодирование аудио сигнала 102 переключается с MDCT-кодера 120 на ACELP-кодер 150 на границе кадров между кадрами 104 и 106, буфер 151 целевого сигнала может быть пустым, может быть сброшен или может включать в себя данные высокой полосы из нескольких кадров в прошлом (например, кадра 108). Кроме того, состояния фильтров в ACELP-кодере, такие как состояния фильтров в модуле 156 вычисления, модуле 160 LB-анализа и/или модуле 161 HB-анализа, могут отражать операции из нескольких кадров в прошлом. Если такой сброс или “устаревшая” информация используется при ACELP-кодировании, на границе кадров между первым кадром 104 и вторым кадром 106 могут генерироваться раздражающие артефакты (например, звуки щелчков). Далее, несогласованность энергии может восприниматься слушателем (например, внезапное увеличение или уменьшение громкости или другой аудио характеристики). В соответствии с описанными методами, вместо сброса или использования старых состояний фильтров и целевых данных, буфер 151 целевого сигнала может быть заполнен и состояния фильтров могут быть определены на основании данных, ассоциированных с первым кадром 104 (то есть, последним кадром, кодированным MDCT-кодером 120 перед переключением на ACELP-кодер 150).
[0051] В конкретном аспекте, буфер 151 целевого сигнала заполняется на основании “облегченного” (минимального) целевого сигнала, генерируемого MDCT-кодером 120. Например, MDCT-кодер 120 может включать в себя генератор 125 “облегченного” целевого сигнала. Генератор 125 “облегченного” целевого сигнала может генерировать сигнал 130 базовой полосы, который представляет собой оценку выходного сигнала для использования в ACELP-кодере 150. В конкретном аспекте, сигнал 130 базовой полосы генерируется посредством выполнения операции зеркального отображения и прореживания на аудио сигнале 102. В одном примере, генератор 125 “облегченного” целевого сигнала работает непрерывно во время работы MDCT-кодера 120. Чтобы уменьшить вычислительную сложность, генератор 125 “облегченного” целевого сигнала может генерировать сигнал 130 базовой полосы без выполнения операции фильтрации высокого порядка или операции понижающего микширования. Сигнал 130 базовой полосы может быть использован для заполнения, по меньшей мере, части буфера 151 целевого сигнала. Например, первая часть 152 может быть заполнена на основе сигнала 130 базовой полосы, а вторая часть 153 и третья часть 154 могут быть заполнены на основе части высокой полосы в 20 мс, представленных вторым кадром 106.
[0052] В конкретном примере, часть буфера 151 целевого сигнала (например, первая часть 152) может быть заполнена на основании выхода локального MDCT-декодера 126 (например, последние 10 мс синтезированного выхода) вместо выхода генератора 125 “облегченного” целевого сигнала. В этом примере, сигнал 130 базовой полосы может соответствовать синтезированной версии аудио сигнала 102. В качестве иллюстрации, сигнал 130 базовой полосы может быть получен из буфера синтеза локального MDCT-декодера 126. Если модуль 121 MDCT-анализа выполняет “полное” MDCT, локальный декодер 126 может выполнять “полное” обратное MDCT (IMDCT) (0 Гц-16 кГц), и сигнал 130 базовой полосы может соответствовать части высокой полосы аудио сигнала 102, а также дополнительной части (например, части низкой полосы) аудио сигнала. В этом примере синтезированный выход и/или сигнал 130 базовой полосы может быть отфильтрован (например, с помощью фильтра верхних частот (HPF), операции зеркального отображения и прореживания и т.д.) для получения результирующего сигнала, который аппроксимирует (например, включает в себя) данные высокой полосы (например, в полосе 8 кГц-16 кГц).
[0053] Если MDCT-кодер 120 выполняет BWE, локальный декодер 126 может включать IMDCT высокой полос