способ и устройство для селективного кодирования сигнала на основе характеристик базового кодера
Классы МПК: | G10L19/04 с использованием способов прогнозирования |
Автор(ы): | МИТТАЛ Удар (US), ЭШЛИ Джеймс П. (US), ГИББС Джонатан А. (GB) |
Патентообладатель(и): | МОТОРОЛА МОБИЛИТИ, ИНК. (US) |
Приоритеты: |
подача заявки:
2009-04-09 публикация патента:
10.01.2014 |
В селективном кодере сигнала входной сигнал сначала кодируется (1004) с использованием кодера базового уровня для формирования кодированного сигнала базового уровня. Кодированный сигнал базового уровня декодируется (1006) для получения восстановленного сигнала, и сигнал ошибки генерируется (1008) как разность между восстановленным сигналом и входным сигналом. Восстановленный сигнал сравнивается (1010) с входным сигналом. Один из двух или более кодеров уровня расширения выбираются (1014, 1016) в зависимости от сравнения и используются для кодирования сигнала ошибки. Кодированный сигнал базового уровня, кодированный сигнал уровня расширения и указатель выбора выводятся (1018) в канал (например, для передачи или хранения). Технический результат - высококачественное воспроизведение речи и аудио при приемлемо низких скоростях данных. 3 н. и 15 з.п. ф-лы, 10 ил.
Формула изобретения
1. Способ кодирования входного сигнала, содержащий:
кодирование входного сигнала с использованием кодера базового уровня для формирования кодированного сигнала базового уровня;
декодирование кодированного сигнала базового уровня для формирования восстановленного сигнала;
сравнение восстановленного сигнала с входным сигналом, причем этап сравнения содержит оценивание энергии Е_err восстановленного сигнала, который содержит ошибки, определение, что отношение S(k)/Sc(k) компонента S(k) входного сигнала к компоненту Sc(k) восстановленного сигнала превышает пороговое значение, и суммирование энергий этих компонент Sc(k) восстановленного сигнала, когда отношение S(k)/Sc(k) компонента S(k) превышает пороговое значение;
выбор кодера уровня расширения из множества кодеров уровня расширения в зависимости от сравнения между восстановленным сигналом и входным сигналом; и
генерацию кодированного сигнала уровня расширения с использованием выбранного кодера уровня расширения, причем кодированный сигнал уровня расширения зависит от входного сигнала.
2. Способ по п.1, дополнительно содержащий:
генерацию сигнала ошибки как разность между восстановленным сигналом и входным сигналом,
причем генерация кодированного сигнала уровня расширения включает в себя кодирование сигнала ошибки.
3. Способ по п.2, в котором сигнал ошибки содержит взвешенную разность между восстановленным сигналом и входным сигналом.
4. Способ по п.1, в котором сравнение восстановленного сигнала с входным сигналом включает в себя:
оценку энергии E_tot как суммирование энергий всех компонент восстановленного сигнала;
оценку энергии Е_err как суммирование энергий всех компонент восстановленного сигнала, которые содержат ошибки; и
сравнение энергии E_tot с энергией Е_err.
5. Способ по п.4, дополнительно содержащий:
преобразование восстановленного сигнала для формирования компонентов восстановленного сигнала,
причем преобразование выбрано из группы преобразований, состоящей из преобразования Фурье, модифицированного дискретного косинусного преобразования (МСКТ) и вейвлет-преобразования.
6. Способ по п.4, дополнительно содержащий:
преобразование восстановленного сигнала для формирования компонентов восстановленного сигнала; и
преобразование входного сигнала для формирования компонентов входного сигнала,
при этом преобразование выбрано из группы преобразований, состоящей из преобразования Фурье, модифицированного дискретного косинусного преобразования (МДКП) и вейвлет-преобразования.
7. Способ по п.1, в котором энергия компонента Sc(k) оценивается как |Sc (k)|p и в котором энергия компонента S(k) оценивается как |S(k)|р, Р - число больше нуля.
8. Способ по п.4, в котором сравнение энергии Е_tot с энергией Е_err включает в себя:
сравнение отношения энергий E_err/E_tot с пороговым значением.
9. Способ по п.1, в котором кодер базового уровня содержит речевой кодер.
10. Способ по п.1, дополнительно содержащий вывод кодированного сигнала базового уровня, кодированного сигнала уровня расширения и указателя выбранного кодера уровня расширения в канал.
11. Селективный кодер сигнала, содержащий:
кодер базового уровня, который принимает входной аудио сигнал, подлежащий кодированию, и формирует кодированный сигнал базового уровня;
декодер базового уровня, который принимает кодированный сигнал базового уровня в качестве входа и формирует восстановленный сигнал; и
множество кодеров уровня расширения, каждый из которых выбирается для кодирования сигнала ошибки, чтобы сформировать кодированный сигнал уровня расширения, причем сигнал ошибки содержит разность между входным сигналом и восстановленным сигналом; и
модуль компаратора/селектора, который выбирает кодер уровня расширения из множества кодеров уровня расширения в зависимости от сравнения входного сигнала и кодированного сигнала базового уровня,
при этом модуль компаратора/селектора оценивает энергию E_err восстановленного сигнала, который содержит ошибки, определяет отношение S(k)/Sc(k) компонента S (k) входного сигнала к компоненту Sc(k) восстановленного сигнала, когда отношение S(k)/Sc(k) компонента S(k) превышает пороговое значение, и,
дополнительно при этом входной сигнал кодируется как кодированный сигнал базового уровня, кодированный сигнал уровня расширения и сигнал выбора выбранного кодера уровня расширения.
12. Селективный кодер сигнала по п.11, в котором кодер базового уровня включает в себя речевой кодер.
13. Селективный кодер сигнала по п.11, в котором модуль компаратора/селектора:
оценивает энергию E_tot как суммирование энергий всех компонент восстановленного сигнала;
оценивает энергию Е_err как суммирование энергий всех компонент восстановленного сигнала, которые содержат ошибки; и
сравнивает энергию E_tot с энергией Е_err.
14. Селективный кодер сигнала по п.13, в котором модуль компаратора/селектора сравнивает энергию E_tot с энергией Е_err путем сравнения отношения энергий E_err/E_tot с пороговым значением.
15. Селективный кодер сигнала по п.13, в котором компоненты восстановленного сигнала и компоненты входного сигнала вычисляются с помощью преобразования, выбранного из группы, состоящей из преобразования Фурье, модифицированного дискретного косинусного преобразования (МДКП) и вейвлет-преобразования.
16. Селективный декодер сигнала, содержащий процессор, который включает в себя инструкции для декодирования исходного сигнала, который кодирован как кодированный сигнал базового уровня, кодированный сигнал уровня расширения и указатель выбранного кодера уровня расширения, причем декодер содержит:
декодер базового уровня, который принимает кодированный сигнал базового уровня в качестве входа и формирует первый восстановленный сигнал; и
декодер уровня расширения, который принимает сигнал выбора для выбора кодера уровня расширения, который декодирует кодированный сигнал уровня расширения для формирования второго восстановленного сигнала.
17. Селективный декодер сигнала по п.16, в котором второй восстановленный сигнал включает в себя сигнал ошибки и в котором исходный сигнал восстанавливается в виде суммы восстановленного сигнала и сигнала ошибки.
18. Селективный декодер сигнала по п.16, в котором декодер уровня расширения реагирует на первый и второй восстановленные сигналы и кодированный сигнал уровня расширения и в котором второй восстановленный сигнал является оценкой исходного сигнала.
Описание изобретения к патенту
Передача текста, изображений, голоса и речевых сигналов по каналам связи, включая Интернет, быстро расширяется, как и предоставление мультимедийных услуг, способных размещать различные типы информации, такие как текст, изображения и музыка. Мультимедийные сигналы, включая речевые и музыкальные сигналы, требуют большой ширины полосы во время передач. Таким образом, для передачи мультимедийных данных, включая текст, изображения и аудио, весьма желательно, чтобы эти данные были сжаты.
Сжатие цифровых речевых и аудио сигналов хорошо известно. Сжатие, как правило, требуется, чтобы эффективно передавать сигналы по каналам связи или хранить сжатые сигналы на цифровых мультимедийных устройствах, таких как жесткий диск компьютера или устройство твердотельной памяти.
Фундаментальным принципом сжатия данных является устранение избыточных данных. Данные могут быть сжаты путем устранения избыточной информации, например, когда звук повторяется, является прогнозируемым или перцепционно избыточным. При этом принимается во внимание нечувствительность человека к высоким частотам.
Как правило, сжатие приводит к искажениям сигнала, причем более высокие степени сжатия приводят к увеличенным искажениям. Битовый поток называется масштабируемым, когда части потока могут быть удалены таким образом, что полученный в результате подпоток формирует другой действительный поток битов для некоторого целевого декодера, и подпоток представляет исходный контент с качеством восстановления, которое ниже, чем качество полного исходного потока битов, но является высоким, принимая во внимание меньшее количество оставшихся данных. Потоки битов, которые не обеспечивают это свойство, называют одноуровневыми потоками битов. Обычными режимами масштабируемости являются временная, пространственная масштабируемость и масштабируемость качества. Масштабируемость позволяет корректировать сжатый сигнал для достижения оптимальных рабочих характеристик в ограниченном по полосе канале.
Масштабируемость может быть реализована таким образом, что предусматривается несколько уровней кодирования, в том числе базовый уровень и по меньшей мере один уровень расширения, и соответствующие уровни формируются так, чтобы иметь различные разрешения.
Хотя многие схемы кодирования являются обобщенными, некоторые схемы кодирования включают в себя модели сигнала. В общем, лучшее сжатие сигнала достигается тогда, когда модель характеризует кодируемый сигнал. Таким образом, известен выбор схемы кодирования на основе классификации типа сигнала. Например, голосовой сигнал может моделироваться и кодироваться иным образом, чем музыкальный сигнал. Однако классификация сигнала в общем случае является сложной задачей.
Пример способа сжатия (или кодирования), который остается очень популярным для цифрового кодирования речи, известен как линейное предсказание с кодовым возбуждением (CELP), который является одним из семейства алгоритмов кодирования путем анализа через синтез . Анализ через синтез в общем случае относится к процессу кодирования, в котором множество параметров цифровой модели используются для синтеза набора сигналов-кандидатов, которые сравниваются с входным сигналом и анализируются на предмет искажения. Набор параметров, которые дают наиболее низкое искажение, затем либо передается, либо сохраняется и в конечном итоге используется для восстановления оценки первоначального входного сигнала. CELP является конкретным способом анализа через синтез, который использует одну или более кодовых книг, каждая из которых, по существу, содержит множество кодов-векторов, которые извлекаются из кодовой книги в ответ на индекс кодовой книги.
В современных CELP кодерах имеется проблема с поддержанием высококачественного воспроизведения речи и аудио при приемлемо низких скоростях данных. Это, в частности, справедливо для музыкальных или других обобщенных аудио сигналов, которые не соответствуют CELP речевой модели с высокой степенью точности. В этом случае несоответствие модели может вызвать серьезное ухудшение качества аудио, что может быть неприемлемым для конечного пользователя оборудования, которое использует подобные методы.
Краткое описание чертежей
Иллюстрирующие чертежи, на которых одинаковые ссылочные позиции относятся к идентичным или функционально подобным элементам на отдельных видах, и которые вместе с подробным описанием, приведенным ниже, включены в состав и образуют часть спецификации, служат дальнейшей иллюстрации различных вариантов осуществления и объяснению различных принципов и преимуществ в соответствии с настоящим изобретением.
Фиг.1 - блок-схема системы кодирования и системы декодирования известного уровня техники.
Фиг.2 - блок-схема системы кодирования и системы декодирования в соответствии с некоторыми вариантами осуществления изобретения.
Фиг.3 - блок-схема способа выбора системы кодирования в соответствии с некоторыми вариантами осуществления изобретения.
Фиг.4-6 - ряд графиков, показывающих приведенные для примера сигналы в компараторе/селекторе в соответствии с некоторыми вариантами осуществления изобретения, когда вводится речевой сигнал.
Фиг.7-9 - ряд графиков, показывающих приведенные для примера сигналы в компараторе/селекторе в соответствии с некоторыми вариантами осуществления изобретения, когда вводится музыкальный сигнал.
Фиг.10 - блок-схема способа для селективного кодирования сигнала в соответствии с некоторыми вариантами осуществления изобретения.
Специалистам в данной области должно быть понятно, что элементы на чертежах проиллюстрированы для простоты и ясности и не обязательно должны быть представлены в масштабе. Например, размеры некоторых элементов на чертежах могут быть преувеличены относительно других элементов, чтобы способствовать лучшему пониманию вариантов осуществления настоящего изобретения.
Подробное описание
Перед подробным описанием вариантов осуществления в соответствии с настоящим изобретением следует отметить, что варианты осуществления заключаются главным образом в комбинациях этапов способа и компонентов устройства, относящихся к селективному кодированию сигнала на основе соответствующей модели. Соответственно, компоненты устройства и этапы способа представлены, где уместно, обычными символами на чертежах, показывающих только те конкретные делали, которые существенны для понимания вариантов осуществления настоящего изобретения, чтобы не загромождать раскрытие изобретения деталями, которые будут очевидны специалистам в данной области техники на основе представленного описания.
В этом документе относительные термины, такие как «первый» и «второй», «верхний» и «нижний» и т.п., могут быть использованы исключительно для отличия одного объекта или действия от другого объекта или действия, без обязательного требования какого-либо действительного такого отношения или порядка между такими объектами или действиями. Термины содержит , содержащий или какие-либо другие их вариации предназначены, чтобы охватывать неисключительное включение, так что процесс, способ, изделие или устройство, которое содержит перечень элементов, включает не только эти элементы, но может включать другие элементы, не перечисленные в явном виде или присущие такому процессу, способу, изделию или устройству. Элемент, которому предшествует слово содержит , без больших ограничений, не препятствует существованию дополнительных идентичных элементов в процессе, способе, изделии или устройстве, которые включают в себя этот элемент.
Следует отметить, что варианты осуществления изобретения, описанного здесь, могут включать в себя один или более обычных процессоров и уникальные сохраненные программные инструкции, которые управляют одним или более процессорами для реализации, во взаимосвязи с некоторыми непроцессорными схемами, некоторых, большинства или всех, функций селективного кодирования сигнала на основе подбора модели, описанного здесь. Альтернативно, некоторые или все функции могут быть реализованы посредством конечного автомата, который не имеет сохраненных программных инструкций, или в одной или более специализированных интегральных микросхемах (ASIC), в которых каждая функция или некоторые комбинации определенных функций реализованы в виде заказных логических схем. Разумеется, может быть использована комбинация двух подходов. Таким образом, здесь описаны способы и средства для выполнения этих функций. Кроме того, ожидается, что специалист, несмотря на возможно значительные усилия и большое количество вариантов проектирования, мотивированный, например, располагаемым временем, современной технологией и экономическими соображениями, руководствуясь концепциями и принципами, описанными здесь, сможет создать такие инструкции программного обеспечения и программы и микросхемы при минимальном объеме экспериментирования.
Фиг. 1 представляет собой блок-схему встроенной системы кодирования и декодирования 100 известного уровня техники. На фиг.1 исходный сигнал s(n) 102 подается на вход кодера 104 базового уровня от системы кодирования. Кодер 104 базового уровня кодирует сигнал 102 и формирует кодированный сигнал 106 базового уровня. Кроме того, исходный сигнал 102 вводится в кодер 108 уровня расширения системы кодирования. Кодер 108 уровня расширения также принимает первый восстановленный сигнал sc(n) 110 в качестве входа. Первый восстановленный сигнал 110 формируется путем передачи кодированного сигнала 106 базового уровня через первый декодер 112 базового уровня. Кодер 108 уровня расширения используется для кодирования дополнительной информации на основе некоторого сравнения сигналов s(n) (102) и sc(n) (110) и может дополнительно использовать параметры из кодера 104 базового уровня. В одном варианте осуществления кодер 108 уровня расширения кодирует сигнал ошибки, который является разностью между восстановленным сигналом 110 и входным сигналом 102. Кодер 108 уровня расширения формирует кодированный сигнал 114 уровня расширения. Как кодированный сигнал 106 базового уровня, так и кодированный сигнал 114 уровня расширения передаются в канал 116. Канал представляет собой среду, такую как канал связи и/или носитель хранения.
После прохождения через канал второй восстановленный сигнал 118 формируется путем передачи принятого кодированного сигнала 106' базового уровня через второй декодер 120 базового уровня. Второй декодер 120 базового уровня выполняет ту же функцию, что и первый декодер 112 базового уровня. Если кодированный сигнал 114 уровня расширения также передан через канал 116 и принят как сигнал 114', он может быть передан на декодер 122 уровня расширения. Декодер 122 уровня расширения также принимает второй восстановленный сигнал 118 в качестве входа и формирует третий восстановленный сигнал 124 в качестве выхода. Третий восстановленный сигнал 124 согласуется с исходным сигналом 102 более точно, чем второй восстановленный сигнал 118.
Кодированный сигнал 114 уровня расширения включает в себя дополнительную информацию, которая позволяет восстанавливать сигнал 102 более точно, чем второй восстановленный сигнал 118. То есть это является расширенным (улучшенным) восстановлением.
Одним из преимуществ такой встроенной системы кодирования является то, что конкретный канал 116 не способен последовательно поддерживать требование к ширине полосы, ассоциированное с алгоритмами кодирования аудио высокого качества. Встроенный кодер, однако, позволяет принимать часть потока битов (к примеру, только поток битов базового уровня) из канала 116 для формирования, например, только базового выходного аудио, когда поток битов уровня расширения потерян или искажен. Однако имеются компромиссы по качеству между встроенными и невстроенными кодерами, а также между различными целями оптимизации встроенного кодирования. То есть кодирование уровня расширения более высокого качества может способствовать достижению лучшего баланса между базовым уровнем и уровнем расширения, а также уменьшить общую скорость передачи данных для улучшения характеристик передачи (к примеру, снижение перегрузки), что может привести к снижению частоты появления пакетных ошибок для уровней расширения.
Хотя многие схемы кодирования являются обобщенными, некоторые схемы кодирования включают в себя модели сигнала. В общем, лучшее сжатие сигнала достигается тогда, когда модель представляет кодируемый сигнал. Таким образом, известно, что схема кодирования выбирается после классификации типа сигнала. Например, голосовой сигнал может моделироваться и кодироваться иным образом, чем музыкальный сигнал. Однако, классификация сигнала, как правило, является трудной задачей.
Фиг.2 представляет собой блок-схему системы 200 кодирования и декодирования в соответствии с некоторыми вариантами осуществления изобретения. Согласно Фиг.2 исходный сигнал 102 вводится в кодер 104 базового уровня системы кодирования. Исходный сигнал 102 может быть речевым/аудио сигналом или другим видом сигнала. Кодер 104 базового уровня кодирует сигнал 102 и формирует кодированный сигнал 106 базового уровня. Первый восстановленный сигнал 110 формируется путем передачи кодированного сигнала 106 базового уровня через первый декодер 112 базового уровня. Исходный сигнал 102 и первый восстановленный сигнал 110 сравниваются в модуле 202 компаратора/селектора. Модуль 202 компаратора/селектора сравнивает исходный сигнал 102 с первым восстановленным сигналом 110 и, основываясь на сравнении, формирует селекторный сигнал 204, который выбирает, какой из кодеров 206 уровня расширения использовать. Хотя только два кодера уровня расширения показаны на чертеже, должно быть понятно, что может быть использовано множество кодеров уровня расширения. Модуль 202 компаратора/селектора 202 выбрать кодер уровня расширения, чтобы с наибольшей вероятностью формировать наилучший восстановленный сигнал.
Хотя декодер 112 расширения показан как принимающий кодированный сигнал 106 базового уровня, который, соответственно, послан в канал 116, физическое соединение между элементами 104 и 106 может допускать более эффективную реализацию, так что общие элементы обработки и/или состояния могут совместно использоваться, и, таким образом, не потребовалась бы регенерация или дублирование.
Каждый кодер 206 уровня расширения принимает исходный сигнал 102 и первый восстановленный сигнал в качестве входов (или сигнал такой, как разностный сигнал, полученный из этих сигналов), и выбранный кодер формирует кодированный сигнал 208 уровня расширения. В одном варианте осуществления кодер 206 уровня расширения кодирует сигнал ошибки, который является разностью между восстановленным сигналом 110 и входным сигналом 102. Кодированный сигнал 208 уровня расширения содержит дополнительную информацию, основанную на сравнении сигналов s(n) (102) и sc(n) (110). Дополнительно он может использовать параметры из декодера 104 базового уровня. Кодированный сигнал 106 базового уровня, кодированный сигнал 208 уровня расширения и селекторный сигнал 204 все передаются в канал 116. Канал представляет собой среду, такую как канал связи и/или носитель хранения.
После прохождения через канал второй восстановленный сигнал 118 формируется путем передачи принятого кодированного сигнала 106' базового уровня через второй декодер 120 базового уровня. Второй декодер 120 базового уровня выполняет те же функции, что и первый декодер 112 базового уровня. Если кодированный сигнал 208 уровня расширения также передается через канал 116 и принимается как сигнал 208', он может быть передан на декодер 210 уровня расширения. Декодер 210 уровня расширения также принимает второй восстановленный сигнал 118 и принятый селекторный сигнал 204' в качестве входов и формирует третий восстановленный сигнал 212 в качестве выхода. Работа декодера 210 уровня расширения зависит от принятого селекторного сигнала 204'. Третий восстановленный сигнал 212 согласуется с исходным сигналом 102 более точно, чем второй восстановленный сигнал 118.
Кодированный сигнал 208 уровня расширения включает в себя дополнительную информацию, поэтому третий восстановленный сигнал 212 согласуется с сигналом 102 более точно, чем второй восстановленный сигнал 118.
Фиг.3 представляет собой блок-схему способа для выбора системы кодирования в соответствии с некоторыми вариантами осуществления изобретения. В частности, фиг.3 описывает работу модуля компаратора/селектора в варианте осуществления изобретения. После блока 302 начала входной сигнал (102 на фиг.2) и восстановленный сигнал (110 на фиг.2) преобразуются, если требуется, в выбранную область сигнала. Сигналы временной области могут быть использованы без преобразования, или в блоке 304 сигналы могут быть преобразованы в спектральную область, такую как частотная область, область модифицированного дискретного косинусного преобразования (МДКП) или вэйвлетную область, а также могут быть обработаны другими дополнительными элементами, такими как перцепционное взвешивание некоторой частоты или временных характеристик сигналов. Преобразованный входной сигнал (или сигнал временной области) обозначается как S(k) для спектрального компонента k, и преобразованный восстановленный сигнал (или сигнал временной области) обозначается как S c(k) для спектрального компонента k. Для каждого компонента k в выбранном наборе компонентов (которые могут быть всеми или только некоторыми из компонентов) энергия E_tot во всех компонентах Sc(k) восстановленного сигнала сравнивается с энергией E_err в тех компонентах, которые больше (например, с некоторым коэффициентом), чем соответствующий компонент S(k) исходного входного сигнала.
В то время как компоненты входного и восстановленного сигналов могут существенно отличаться по амплитуде, значительное увеличение по амплитуде компонента восстановленного сигнала свидетельствуют о плохо смоделированном входном сигнале. Как таковой, компонент восстановленного сигнала меньшей амплитуды может быть скомпенсирован посредством заданного способа кодирования уровня расширения, в то время как компонент восстановленного сигнала большей амплитуды (то есть плохо смоделированный) может лучше подходить для альтернативного способа кодирования уровня расширения. Один такой альтернативный способ кодирования уровня расширения может использовать снижение энергии некоторых компонентов восстановленного сигнал перед кодированием уровня расширения, так что слышимые шумы или искажения, получаемые в результате рассогласования модели сигнала базового уровня, уменьшаются.
Согласно фиг.3 цикл компонентов инициализируется в блоке 306, где компонент k инициализируется, и меры энергии E_tot и E_err инициализируются в нуль. В решающем блоке 308 выполняется проверка, чтобы определить, является ли абсолютное значение компонента восстановленного сигнал значительно большим, чем соответствующий компонент входного сигнала. Если он значительно больше, как обозначено положительной ветвью от решающего блока 308, компонент добавляется к энергии ошибки E_err в блоке 310, и обработка переходит к блоку 312. В блоке 312 компонент восстановленных сигналов добавляется к полному значению энергии E_tot. В решающем блоке 314 значение компонента получает приращение, и выполняется проверка, чтобы определить, все ли компоненты были обработаны. Если нет, как показано отрицательной ветвью от решающего блока 314, обработка возвращается в блок 308. В противном случае, как изображено положительной ветвью от решающего блока 316, цикл завершается, и общая накопленная энергия сравнивается в решающем блоке 316. Если энергия ошибки E_err значительно ниже, чем общая энергия E_tot, как показано отрицательной ветвью от решающего блока 316, то в блоке 318 выбирается уровень расширения типа 1. В противном случае, как изображено положительной ветвью от решающего блока 316, в блоке 320 выбирается уровень расширения типа 2. Обработка этого блока входного сигнала завершается в блоке 322.
Для специалистов в данной области техники будет очевидным, что и другие меры энергии сигнала могут быть использованы, например абсолютное значение компонента в некоторой степени. Например, энергия компонента Sc(k) может быть оценена как |Sc(к)|p, а энергия компонента S(k) может быть оценена как |Sc(к)|p, где P - число больше нуля.
Для специалистов в данной области техники будет очевидным, что энергию ошибки E_err можно сравнить с полной энергией во входном сигнале, а не с полной энергией в восстановленном сигнале.
Кодер может быть реализован на запрограммированном процессоре. Например, листинг кода, соответствующий фиг.3, приведен ниже. Переменные energy_tot и energy_err обозначены на чертеже как E_tot и E_err соответственно
В этом примере пороговые значения Tresh1 и Tresh2 установлены на 0,49 и 0,264 соответственно. Другие значения могут быть использованы в зависимости от используемых типов кодеров уровня расширения, а также в зависимости от используемой области преобразования.
Может быть добавлен этап гистерезиса, так чтобы тип уровня расширения изменялся только в том случае, если определенное число блоков сигнала имеют тот же самый тип. Например, если используется тип 1 кодера, то тип 2 не будет выбран до тех пор, пока два последовательных блока не покажут использование типа 2.
Фиг.4-6 представляет собой ряд графиков, показывающих приведенные для примера результаты для речевого сигнала. График 402 на фиг.4 показывает энергию E_tot восстановленного сигнала. Энергия вычисляется в течение 20 миллисекундных кадров, так что график показывает изменение энергии сигнала в течение 10 секундного интервала. График 502 на фиг.5 показывает отношение энергии ошибки E_err к полной энергии E_tot за тот же период времени. Пороговое значение Thresh2 показано как пунктирная линия 504. Речевой сигнал в кадрах, где отношение превышает порог, не удовлетворительно смоделирован кодером. Однако для большинства кадров порог не превышен. График 602 на фиг.6 показывает селекторный или решающий сигнал за тот же период времени. В этом примере значение 0 указывает, что выбран кодер уровня расширения типа 1, а значение 1 указывает, что выбран кодер уровня расширения типа 2. Изолированные кадры, где отношение выше, чем порог, игнорируются, и выбор изменяется только тогда, когда два последовательных кадра указывают на тот же выбор. Так, например, кодер уровня расширения типа 1 выбирается для кадра 141, даже если отношение превышает порог.
Фиг.7-9 показывают соответствующий ряд графиков музыкального сигнала. График 702 на фиг.7 показывает энергию E_tot входного сигнала. Вновь, энергия рассчитывается в течение 20 миллисекундных кадров, так что график показывает изменение входной энергии в течение 10 секундного интервала. Участок 802 на фиг.8 показывает отношение энергии ошибки E_err к общей энергии E_tot за тот же период времени. Пороговое значение Thresh2 показано как пунктирная линия 504. Музыкальный сигнал в кадрах, где отношение превышает порог, не удовлетворительно смоделировано кодером. Это имеет место для большинства кадров, так как базовый кодер предназначен для речевых сигналов. График 902 на фиг.9 показывает селекторный или решающий сигнал за тот же период времени. Вновь, значение 0 указывает, что выбирается кодер уровня расширения типа 1, а значение 1 указывает, что выбирается кодер уровня расширения типа 2. Таким образом, кодер уровня расширения типа 2 выбран для большей части времени. Однако в кадрах, где базовый кодер работает хорошо для музыкального сигнала, выбирается кодер уровня расширения типа 1.
В тесте на 22803 кадрах речевого сигнала кодер уровня расширения типа 2 был выбран только в 227 кадрах, то есть лишь 1% времени. В тесте на 29644 кадрах музыкального сигнала кодер уровня расширения типа 2 был выбран в 16145 кадрах, то есть 54% времени. В других кадрах базовый кодер хорошо работает для музыкального сигнала, а для речевого сигнала выбран кодер уровня расширения. Таким образом, компаратор/селектор не является классификатором речевого/музыкального сигнала. Это является отличием от предшествующих схем, которые стремятся классифицировать входной сигнал как речь или музыку, а затем выбирают схему кодирования соответствующим образом. Предложенный подход состоит в выборе кодера уровня расширения в зависимости от рабочих характеристик кодера базового уровня.
Фиг.10 представляет собой блок-схему, иллюстрирующую работу встроенного кодера в соответствии с некоторыми вариантами осуществления изобретения. Блок-схема показывает способ, используемый для кодирования одного кадра сигнальных данных. Длина кадра выбирается в зависимости от временной характеристики сигнала. Например, 20 мс кадр может использоваться для речевых сигналов. После блока 1002 начала на фиг.10 входной сигнал кодируется в блоке 1004 с использованием кодера базового уровня для формирования кодированного сигнала базового уровня. В блоке 1006 кодированный сигнал базового уровня декодируется для формирования восстановленного сигнала. В этом варианте осуществления сигнал ошибки генерируется в блоке 1008 как разность между восстановленным сигналом и входным сигналом. Восстановленный сигнал сравнивается с входным сигналом в блоке 1010, и в решающем блоке 1012 определяется, хорошо ли согласован восстановленный сигнал с входным сигналом. Если согласование хорошее, как показано положительной ветвью от решающего блока 1012, то кодер уровня расширения типа 1 используется для кодирования сигнала ошибки в блоке 1014. Если согласование не является хорошим, как изображено отрицательной ветвью от решающего блока 1012, то кодер уровня расширения типа 2 используется для кодирования сигнала ошибки в блоке 1016. В блоке 1018 кодированный сигнал базового уровня, кодированный сигнал уровня расширения и указатель выбора выводятся в канал (например, для передачи или хранения). Обработка кадра заканчивается в блоке 1020.
В этом варианте осуществления кодер уровня расширения реагирует на сигнал ошибки, однако в альтернативном варианте кодер уровня расширения реагирует на входной сигнал и дополнительно, при необходимости, один или несколько сигналов от кодера базового уровня и/или декодера базового уровня. В еще одном варианте осуществления используется альтернативный сигнал ошибки, например взвешенная разность между входным сигналом и восстановленным сигналом. Например, некоторые частоты восстановленного сигнала могут быть ослаблены до формирования сигнала ошибки. Полученный в результате сигнал ошибки может упоминаться как взвешенный сигнал ошибки.
В другом альтернативном варианте осуществления кодер и декодер базового уровня могут также включать в себя другие уровни расширения, и компаратор согласно настоящему изобретению может получать, в качестве входа, выход одного из предыдущих уровней расширения, как восстановленный сигнал. Кроме того, могут быть уровни расширения, последующие относительно вышеупомянутых уровней расширения, которые могут или не могут переключаться в результате сравнения. Например, встроенные системы кодирования могут содержать пять уровней. Базовый уровень (L1) и второй уровень (L2) может формировать восстановленный сигнал Sc(k). Восстановленный сигнал Sc(k) и входной сигнал S(k) могут быть использованы для выбора способов кодирования уровня расширения на уровнях 3 и 4 (L3, L4). Наконец, уровень 5 (L5) может включать в себя только один способ кодирования уровня расширения.
Кодер может выбирать между двумя или более кодерами уровня расширения в зависимости от сравнения между восстановленным сигналом и входным сигналом.
Кодер и декодер могут быть реализованы на запрограммированном процессоре, на реконфигурируемом процессоре или, например, на специализированной (ориентированной на приложение) интегральной схеме.
В предыдущем описании были описаны конкретные варианты осуществления изобретения. Однако специалисту в данной области техники должно быть понятно, что различные модификации и изменения могут быть выполнены без отклонения от объема настоящего изобретения, как изложено в формуле изобретения. Соответственно, описание и чертежи следует рассматривать в иллюстративном смысле, а не в качестве ограничения, и все такие изменения должны включаться в объем настоящего изобретения. Выгоды, преимущества, решения проблем и любой(ые) элемент(ы), которые могут обусловить то, что любая выгода, преимущество или решение возникают или становятся более выраженными, не следует рассматривать как критические, требуемые или существенные признаки или элементы любого или всех пунктов формулы изобретения. Изобретение определяется исключительно формулой изобретения, включая все изменения, сделанные в ходе рассмотрения настоящей заявки, и все эквиваленты пунктов формулы изобретения, с которой последует выдача патента.
Класс G10L19/04 с использованием способов прогнозирования