СПОСОБ КОДИРОВАНИЯ СИМВОЛА, СПОСОБ ДЕКОДИРОВАНИЯ СИМВОЛА, СПОСОБ ПЕРЕДАЧИ СИМВОЛА ОТ ПЕРЕДАТЧИКА К ПРИЕМНИКУ, КОДЕР, ДЕКОДЕР И СИСТЕМА ДЛЯ ПЕРЕДАЧИ СИМВОЛА ОТ ПЕРЕДАТЧИКА К ПРИЕМНИКУ
METHOD OF ENCODING SYMBOLS, METHOD OF DECODING SYMBOLS, METHOD OF TRANSMITTING SYMBOLS FROM TRANSMITTER TO RECEIVER, ENCODER, DECODER AND SYSTEM FOR TRANSMITTING SYMBOLS FROM TRANSMITTER TO RECEIVER

Изобретение связано с областью кодирования/декодирования символа и, более конкретно, со способом кодирования символа, включающего множество значений, со способом декодирования символа, включающего множество значений и закодированного одним или более кодовыми словами, со способом передачи символа от передатчика приемнику, с компьютерной программой для выполнения способа в соответствии с изобретением, с кодирующим устройством, декодером и системой для передачи символа от передатчика приемнику. Более конкретно, осуществления изобретения относятся к новому способу энтропийного кодирования/декодирования, который основывается на кодировании по способу Хаффмана и использует многомерные кодовые слова, чтобы воспользоваться статистическими зависимостями между соседними символами и лучше приспособить длину кодового слова к вероятностям символа.
В этой области техники известны различные способы кодирования сигналов для кодирования звуковых и видео сигналов или используются для процессов кодирования в телекоммуникационной среде. Также известны соответствующие методы декодирования. Например, в области звукового кодирования ААС/МРЗ использует измененные (или расположенные друг над другом) коды Хаффмана согласно Хенке, Роберта, «Моделирование способов звукового кодирования для профессионального применения», Дипломная работа, Университет Фридриха-Александра Эрланген-Нюрнберг, Эрланген 1992, Бранденбург, Карлхайнц, Хенке, Роберта «Почти не имеющее потерь кодирование высококачественной цифровой звукозаписи: Первые результаты», ICASSP-93, ШЕЕ Международная Конференция по акустике, речи и обработке сигнала, издание 1, 27-30 апреля 1993, страницы 193-196, и ЕР 0393526 А.
Коды Хаффмана используются для кодирования квантованных спектральных коэффициентов. Спектральные коэффициенты могут быть получены из сигнала временной области посредством гребенки фильтров или преобразования. При современном состоянии звукового кодирования в качестве преобразования обычно используется MDCT (MDCT=измененное дискретное косинусное преобразование). Для квантизации обычно используется скалярный квантизатор. В случае использования кодов Хаффмана для кодирования квантованных спектральных значений, одиночные или множественные квантованные спектральные значения обозначаются как «символ». Символы, отображенные на кодах Хаффмана, ограничены в диапазоне значений наибольшим абсолютным значением (LAV), как описано Хаффманом Д.А. в работе «Способ построения кодов с минимальной избыточностью», Труды IRE (Институт радиоинженеров), сентябрь 1952, издание 40, выпуск 9, страницы 1098-1101. Например, в ААС кодировании в случае, если символ превышает LAV, символ отображается не на одиночном кодовом слове, а на последовательности двух кодовых слов. Одно из кодовых слов - так называемое «переходное кодовое слово», которое указывает на присутствие дополнительного кодового слова. Второе кодовое слово - так называемое «завершающее кодовое слово». На стороне декодера символ может быть декодирован только посредством использования всех кодовых слов из последовательности, а именно, переходное кодовое слово и завершающее кодовое слово. Завершающее кодовое слово обычно - длина серии, закодированная посредством использования измененного Кода Голомба, и показывает разницу между наибольшим абсолютным значением и значением кодированного символа. Размерность символов ограничивается максимум четырьмя, то есть, максимум четыре соседних спектральных коэффициента объединяются для одного символа. Таким образом, размерность символа указывает число значений, которые объединены в одном символе, для которого затем определяется кодовое слово для передачи декодеру. Механизм перехода используется из расчета на спектральный коэффициент, а не на символ, то есть, в случае, если один спектральный коэффициент превышает LAV, а остальные спектральные коэффициенты не превышают, механизм перехода используется только для спектрального коэффициента, превышающего LAV.
В области видео кодирования в соответствии с ITU-T спецификацией видео кодирования ITU-T H.263 (01/2005) используется комбинация одномерного кодирования по способу Хаффмана (VLC = Кодирование с переменной длиной) и механизма перехода. Этот механизм используется для кодирования квантованных DCT (DCT = дискретное косинусное преобразование) коэффициентов способом, аналогичным способу, применяемому в звуковом кодировании. В области телекоммуникаций ITU-T спецификация телефакса (ITU-T Rec. T.4 (07/2003)), описывает использование измененных кодов Хаффмана, то есть, длины серий кодируются посредством использования кодирования по способу Хаффмана. В случае, если длина серии превышает LAV, передается так называемый «добавочный код». Посредством этих добавочных кодов могут быть представлены целые кратные 64. В случае, если длины серий больше, чем 63, передается следующий меньший добавочный код. Разница с оригинальной длиной серии посылается как завершающее кодовое слово.
Вышеупомянутые описанные методы обычной технологии, основанной на кодировании по способу Хаффмана, ограничивают размерность и диапазон значений символа, чтобы сохранять требуемые объемы и конфигурации памяти низкими. Кроме того, необходимо поддерживать шифровальные книги Хаффмана или таблицы кодовых слов небольшими так, чтобы кодовые слова включали длину, которая не превышает предварительно определенного предела, чтобы передача кодовых слов могла быть выполнена в соответствии с заданными условиями. В случае, если одиночные значения превышают диапазон величин, для этих одиночных символов используется механизм перехода.
n
16
32
При ограничении размерности символа, длины кодового слова, обычно, не оптимальны. Для двойного кодирования по способу Хаффмана только вероятности символа р (1/2) могут быть оптимально закодированы с использованием кодов Хаффмана, так как получающаяся длина кодового слова 1 ограничивается целым значением. Если Н(р) является энтропией символа, применяется следующее ограничение: Н(р)≤1<Н(р)+1. Отрицательные эффекты этого ограничения могут быть ослаблены посредством увеличения размерности символа до N: 1/N·Н(р)≤1<Н(р)+1/N. Однако, особенно для низких скоростей передачи данных, могут появиться многомерные символы, имеющие вероятность, больше 0.5, и для таких символов оптимальная размерность символа может быть, например, 16. Однако, 16-размерная таблица с четырьмя значениями на подсимвол нуждается в памяти для сохранения 4=4294967296=2 кодовых слов и длин кодового слова, которые окажут большое влияние на требуемые объемы и конфигурации памяти. Кроме того, длина кодового слова будет превышать приемлемый диапазон для многих кодовых слов.
Многосимвольные кодовые слова выгодны, если символы, подлежащие кодированию, имеют статистические зависимости. Такие статистические зависимости могут явиться результатом, например, характеристик используемого преобразования частоты и окна анализа.
Для двух статистически независимых символов условная вероятность того, что b следует за а, представляет собой Р(а|b)=Р(а)·Р{b), что приводит к оптимальной длине кода L(a|b)=L(a)+L{b), являющейся суммой оптимальных кодовых слов одиночных символов, тогда как для статистически зависимых символов условная вероятность будет другой. Например, если имеется высокая вероятность того, что символ b следует за символом а, тогда условная вероятность P(а|b)>Р(а)·Р(b) будет выше, чем для статистически независимого случая и, соответственно, оптимальная длина кода L(a|b)<L(a)+L(b) будет короче, чем сумма двух независимых оптимальных длин кодовых слов L(a) и L(b).
Чем выше размерность используемой кодовой книги, тем выше порядок зависимой вероятности Р(a|b|c|…), который может быть зарегистрирован.
Согласно осуществлению, способкодирования исходного символа, имеющего множество значений, может включать следующие шаги: (a) - определение того, может ли символ быть закодирован кодовым словом первой шифровальной книги; (b) - в случае, если символ может быть закодирован кодовым словом первой шифровальной книги, выборкодового слова, связанного с символом из первой шифровальной книги; и (c) - в случае, если символ не может быть закодирован кодовым словом первой шифровальной книги: выбор кодового слова из первой шифровальной книги, показывающий, что символ не может быть закодирован кодовым словом первой шифровальной книги;разделение символана множество первых подсимволов, каждый из первых подсимволов имеет предварительно определенное число значений исходного символа; и выборкодового слова для каждого из первых подсимволов из второй шифровальной книги, где закодированный символ, представлен одним или несколькими выбранными кодовыми словами.
Согласно другому осуществлению, способ декодирования исходного символа, имеющего множество значений и закодированный одним или более кодовыми словами, может иметь следующие шаги: (а) - определение того, может ли первое кодовое слово полностью представлять символ, используя первую шифровальную книгу; (b) - в случае, если первое кодовое слово может полностью представлять символ, используя первую шифровальную книгу, выбор символа из первой шифровальной книги, используя первое кодовое слово; и (с) - в случае, если первое кодовое слово не может полностью представлять символ, используя первую шифровальную книгу, выбор второй шифровальной книги для декодирования первых подсимволов символа, где каждый из первых подсимволов имеет предварительно определенное число значений исходного символа, и выбор записи (входа) для каждого из первых подсимволов из второй шифровальной книги, используя второе кодовое слово, где символ представлен значениями, связанными с одним или несколькимивыбранными кодовыми словами. Согласно другому осуществлению, способ передачи символа от передатчика приемнику может иметьеледующие шаги: кодирование символа первым вышеупомянутым способом; передача выбранных кодовых слов от передатчика приемнику; декодирование полученных кодовых слов согласно второму вышеупомянутому способу для получения символа; и обеспечение символа для дальнейшей обработки.
Согласно другому осуществлению, компьютерная программа для выполнения одного из вышеупомянутых способов, когда она запущена на компьютере.
Согласно другому осуществлению, кодирующее устройство может иметь вход для получения входного сигнала, имеющего символ; контур кодирующего устройства для кодирования символа из входного сигнала, где контур кодирующего устройства формируется для кодирования символа в соответствии с первым вышеупомянутым способом; и выход для обеспечения выходного сигнала, имеющего выбранные кодовые слова, представляющие символ.
Согласно другому осуществлению, декодер может иметь вход для получения входного сигнала, имеющего множество кодовых слов, представляющих символ; контур декодера для декодирования кодовых слов из входного сигнала, где контур декодера формируется, чтобы декодировать кодовые слова в соответствии со вторым вышеупомянутым способом; и выход для обеспечения выходного сигнала, имеющего символ.
Согласно другому осуществлению, система для передачи символа от передатчика приемнику может иметь вышеупомянутое кодирующее устройство; передатчик, соединенный с кодирующим устройством; канал связи, соединенный с передатчиком; приемник, соединенный с каналом связи; и вышеупомянутый декодер, соединенный с приемником.
Данное изобретение обеспечивает способ кодирования символа, включающего множество значений; способ включает:
(a) определение того, может ли символ быть закодирован кодовым словом первой шифровальной книги;
(b) в случае, если символ может быть закодирован кодовым словом первой шифровальной книги, выбор кодового слова, связанного с символом из первой шифровальной книги; и
(c) в случае, если символ не может быть закодирован кодовым словом первой шифровальной книги:
выбор кодового слова из первой шифровальной книги, показывающий, что символ не может быть закодирован кодовым словом первой шифровальной книги,
разделение символа на множество первых подсимволов, и
выбор кодового слова, по крайней мере, для одного из первых подсимволов из второй шифровальной книги.
В соответствии с первым аспектом изобретения способ кодирования включает шаг (d), в соответствии с которым для каждого первого подсимвола, который не может быть закодирован кодовым словом из второй шифровальной книги, первый подсимвол разделяется на множество вторых подсимволов, и кодовое слово выбирается, по крайней мере, для одного из вторых подсимволов из третьей шифровальной книги, где в шаге (c) кодовое слово выбирается из второй шифровальной книги для каждого из первых подсимволов, и в шаге (d) кодовое слово выбирается из второй шифровальной книги, показывая, что первый подсимвол не может быть закодирован кодовым словом второй шифровальной книги, и кодовое слово выбирается из третьей шифровальной книги для каждого из вторых подсимволов.
В соответствии со вторым аспектом изобретения в шаге (с) кодовое слово, выбранное из первой шифровальной книги, далее показывает, какой из первых подсимволов включает предварительно определенную комбинацию значений, и в шаге (с) для этих первых подсимволов, не включающих предварительно определенную комбинацию значений, кодовое слово выбирается из второй шифровальной книги.
Данное изобретение далее обеспечивает способ декодирования символа, включающего множество значений, и закодированного одним или несколькими кодовыми словами; способ, включает:
(a) определение того, может ли первое кодовое слово полностью представлять символ, используя первую шифровальную книгу;
(b) в случае, если первое кодовое слово может полностью представлять символ, используя первую шифровальную книгу, выбор символа из первой шифровальной книги, используя первое кодовое слово; и
(c) в случае, если первое кодовое слово не может полностью представлять символ, используя первую шифровальную книгу,
выбор второй шифровальной книги для декодирования первых подсимволов символа, который включает множество подсимволов, и
выбор записи (входа), по крайней мере, для одного из первых подсимволов из второй шифровальной книги, используя второе кодовое слово.
В соответствии с первым аспектом изобретения способ декодирования включает шаг (d), в соответствии с которым в случае, если вторая шифровальная книга не может полностью представлять один из первых подсимволов, третья шифровальная книга выбирается для декодирования вторых подсимволов одного первого подсимвола, который включает множество вторых подсимволов, и запись (вход) выбирается, по крайней мере, для одного из вторых подсимволов из третьей шифровальной книги, используя третье кодовое слово, где в шаге (c) первая шифровальная книга показывает для первого кодового слова, что символ не может быть декодирован из первой шифровальной книги, и для каждого из первых подсимволов запись (вход) выбирается из второй шифровальной книги, и в шаге (d) вторая шифровальная книга показывает для второго кодового слова первого подсимвола, что первый подсимвол не может быть декодирован второй шифровальной книгой, и для каждого из вторых подсимволов запись (вход) выбирается из третьей шифровальной книги.
В соответствии со вторым аспектом изобретения в шаге (c) первая шифровальная книга показывает для первого кодового слова, что символ не может быть декодирован из первой шифровальной книги, и показывает, какой из первых подсимволов включает предварительно определенную комбинацию значений, и в шаге (c) для этих подсимволов, не включающих предварительно определенную комбинацию значений, запись (вход) выбирается из второй шифровальной книги.
Осуществления данного изобретения обеспечивают гибкую, иерархическую и многомерную схему кодирования по способу Хаффмана, которая позволяет расширять размерность символа только с незначительным увеличением требования в отношении памяти. Это достигается посредством введения многомерных символов только с ограниченным диапазоном значений и (обычно) с многомерными последовательностями переключения кода. Эти механизмы перехода могут быть применены к одиночным или множественным подсимволам. Все подсимволы, которые не могут быть закодированы непосредственно, отмечаются кодом перехода, и выполняется новый шаг кодирования. Этот процесс повторяется иерархически до тех пор, пока все подсимволы не будут закодированы. Например, для следующего иерархического шага или увеличивается диапазон значений в той же самой размерности кодового слова, или уменьшается размерность кодового слова в том же самом диапазоне значений, или увеличивается диапазон значений кодового слова, и уменьшается размерность кодового слова.
Изобретательный метод более выгоден, чем традиционные методы, поскольку увеличение размерности символа обеспечивает лучшую адаптацию длины кодового слова к вероятностям символа и лучшее использование статистических зависимостей между соседними подсимволами. Кроме того, могут использоваться статистические зависимости между соседними подсимволами, которые не находятся в диапазоне значений.
16
4
4
Использование многомерных последовательностей переключения кода далее уменьшает требуемые объемы и конфигурации памяти для многомерных кодовых книг. Например; чтобы учесть 16-мерную шифровальную книгу, непосредственно представляющую значение 0, и значения, не являющиеся 0, через последовательность переключения кода, число кодовых слов будет 2=65536, тогда как, наличие последовательностей переключения кода для 4 соседних символов и последующей 4-мерной кодовой книги с последовательностью переключения кода на каждый символ сократит количество (записей) входов всего до 2+2=16.
Если комбинация символов не может быть представлена непосредственно в многомерной кодовой книге из-за ограниченного диапазона шифровальных книг, многомерные последовательности переключения кода будут учитывать использование более низкого порядка статистических зависимостей, присутствующих в более низкоразмерных подсимволах.
Осуществления изобретения используются в области энтропийного кодирования, звукового/видео кодирования и телекоммуникаций.
Осуществления изобретения будут более детально описаны ниже со ссылкой на сопровождающие рисунки, в которых:
Фиг.1 - блок-схема, представляющая схему кодирующего устройства в соответствии с осуществлением изобретения;
Фиг.2 - различные таблицы кодовых слов (шифровальные книги), используемые в схеме кодирования согласно осуществлению изобретения, где фиг.2(a) является таблицей кодовых слов для 16-мерного символа (16-размерный символ = символ, состоящий из 16 значений), где фиг.2(b) является таблицей кодовых слов для 8-мерного символа, и где фиг.2(c) является таблицей кодовых слов для 4-мерного символа;
Фиг.3 - схема кодирования, использующая таблицы кодовых слов фиг.2;
Фиг.4 - схема кодирования в соответствии с дальнейшим осуществлением изобретения;
Фиг.5 - пример таблицы кодовых слов 0-ого уровня, используемой для схемы кодирования фиг.4;
Фиг.6 - блок-схема, представляющая схему декодера в соответствии с осуществлением изобретения;
Фиг.7 - схема декодирования, использующая таблицы кодовых слов фиг.2;
Фиг.8 - схема декодирования символа, закодированного согласно осуществлению фиг.6;
Фиг.9 - блок-схема примерного кодирующего устройства, использующая схему кодирования в соответствии с осуществлениями изобретения;
Фиг.10 - блок-схема примерного декодера, использующая схему декодирования в соответствии с осуществлениями изобретения; и
Фиг.11 - система для передачи символа от передатчика приемнику.
В дальнейшем, осуществления изобретения описаны, основываясь на рисунках, показывающих структурные схемы и блок-схемы. Что касается рисунков, иллюстрирующих блок-схемы устройства, отмечено, что в этих рисунках также иллюстрирован способ, где функциональные возможности блока соответствуют стадиям способа.
0
1
N
Фиг.1 - блок-схема, представляющая схему кодирующего устройства, работающего в соответствии с осуществлением изобретения. В шаге S100 запускается кодирование, и уровень кодирования L устанавливается на 0. Предоставляется символ Y (L, m), имеющий размер N, где размер N показывает, что символ включает N значения, a m показывает индекс подсимвола на уровне L, где m<M, и М показывает числоподсимволов для данного уровня. Подсимволы получаются посредством разделения символа Y на уровне. В шаге S100 М устанавливается на 1, и, соответствснно, m устанавливается на 0, так, чтобы символ, предоставленный в начале процесса для кодирования, был исходным символом Y(0,0)=(S, S, …, S).
В шаге SI02 размер шифровальной книги I устанавливается на N, то есть, шифровальная книга илитаблицакодовых слов выбирается для кодирования n-размерного символа Y.
В шаге S104 проверяется, может ли символ Y (L, m) быть полностью представлен данной шифровальной книгой, имеющей размер I. В случае, если это возможно, подходящее кодовое слово С (L, m) выбирается из шифровальной книги в шаге S106, которое может быть передано, например, декодеру, или которое может быть сохранено. В шаге S107 определяется, были ли кодовые слова выбраны для всех символов Y (L, m) на данном уровне кодирования L. В случае, если были выбраны кодовые слова для всех символов, процесс кодирования завершается и заканчивается. В противном случае, m увеличивается (m++) на один, то есть, выбирается следующий символ (подсимвол) на уровне L, и способ возвращается на шаг S104.
В случае, если символ Y (L, m) не может быть представлен кодовым словом из шифровальной книги, способ продолжается до шага S108, где кодовое слово выбирается из шифровальной книги, которая включает, по крайней мере, один механизм перехода. В шаге S110 определяется, какие подсимволы данного уровня не представлены, и эти подсимволы определяют «новый» символ. В случае, если остаются «некодированные» подсимволы, это означает, что кодирующее устройство должно использовать новую шифровальную книгу более низкой размерности, чем данная шифровальная книга. В шаге S112 определяется размер J нового символа, 1≤J≤N. В шаге S114 выбирается новая шифровальная книга, и размер I новой шифровальной книги выбирается так, чтобы он был 1≤I≤J.
В шаге S114 размер шифровальной книги может сохраняться на уровне предыдущего размера в случае, если множество подсимволов того же самого размера должно быть закодировано посредством использования, например, той же самой шифровальной книги, как ниже будет описано более детально. В таком случае в шаге S116 определяется, что размер символа не превышает размер шифровальной книги для этого уровня, и способ возвращается в шаг S104.
Альтернативно, в шаге S114 размер I новой шифровальной книги может быть выбран так, чтобы значение было меньше, чем размер J нового символа. Например, размер новой шифровальной книги может быть установлен на одну вторую размера J нового символа. В таком случае, в шаге S116 определяется, что размер J нового символа превышает размер I новой шифровальной книги так, что в шаге S118 уровень увеличивается на один (уровень ++), и символ разделяется на множество подсимволов, чтобы соответствовать размеру I шифровальной книги, выбранному в шаге S114. Кроме того, М увеличивается, показывая число подсимволов, на которое был разделен предыдущий (под-)символ. Тогда способ возвращается в шаг S104, и шаги S104 - S118 повторяются для всех подсимволов следующего уровня L так, чтобы вышеописанный иерархический процесс, в конечном счете, кодировал символ одним или несколькими кодовыми словами, которые затем могут быть переданы.
В дальнейшем, осуществление схемы кодирования описано более подробно относительно Фиг.2 и 3. Иерархическая схема включает 16-мерные, 8-мерные, 4-мерные и 1-мерные кодовые слова, которая оптимизируются для сценария, где символ 16 соседних «0» имеет вероятность 0.5. Фиг.2 показывает различные таблицы кодовых слов. Фиг.2 (а) показывает таблицу кодовых слов для 16-мерного символа. 16-мерные кодовые слова следующие:
16-мерные кодовые слова
Символ
Кодовое слово
ESC16
0
CW16: 16х, 0′
10
CW16: 15x, 0′, 1х, (+/-)1′
11 VZ XXXX
где
- VZ: знак значения (1 бит)
- ХХХХ: 4 бита для кодирования позиции значения «1» в символе
В результате получается таблица кодовых слов, показанная на фиг.2(a).
Фиг.2(b) показывает таблицу кодовых слов для 8-мерного символа, и 8-мерные кодовые слова следующие:
8-мерные кодовые слова
Символ
Кодовое слово
ESC8
0
CW8: 8х, 0′
10
CW8: 7х, 0′, 1х, (+/-)1′
11 VZ XXX
где
- VZ: знак значения (1 бит)
- XXX: 3 бита для кодирования позиции значения «1» в символе
В результате получается таблица кодовых слов, показанная на фиг.2(b).
0
1
2
3
Фиг.2(c) представляет таблицу кодовых слов для 4-мерного символа. Для 4-мерного символа S=(S, S, S, S) соответствующие кодовые слова S следующие:
n
0
1
2
3
- в случае, если все значения для S, n={0, 1, 2, 3} находятся в пределах [-1; 1], символ S=(S, S, S, S) может быть представлен непосредственно,
n
n
- в случае, если некоторые значения для S находятся вне пределов [-1; 1], те значения для S, которые находятся вне пределов [-1; 1], представлены переходными словами (ESC4), и
n
0
1
2
3
- в случае, если все значения для S находятся вне пределов [-1; 1], символ S=(S, S, S, S) представлен одиночным переходным словом (ESC4).
Например, символ S=(-1, 0, 0, -1) будет представлен непосредственно кодовым словом CW4 из таблицы кодовых слов на фиг.2 (с), символ S=(-2, 3, 4, -5) будет представлен только кодовым словом CW4=ESC4, и символ S=(-1, 3, 0, -5) будет представлен кодовым словом CW4=(-1, ESC4, 0, ESC4).
1-мерные символы, которые могут быть, в конечном счете, получены, каждый кодируется соответствующими 1-мерными кодовыми словами, которые используются, чтобы непосредственно кодировать 1-мерный символ, например, посредством кодирования длины серии.
0
15
На основе вышеописанных шифровальных книг или таблицкодовых слов будет закодирован 16-мерный символ. В шаге S100 (см. фиг.1) L устанавливается на 0, m устанавливается на 0, и N устанавливается на 16, а М устанавливается на 1. Символ, представленный в шаге S100, а именно, символ Y(0,0), включает 16 значений S…S. Размер шифровальной книги I устанавливается также на 16, то есть, используется таблица кодовых слов, показанная на фиг.2(a).
В шаге S104 определяется, доступна ли запись (вход) шифровальной книги для 16-мерного символа. Если дело обстоит так, соответствующее кодовое слово выбирается в шаге S106 и, например, передается так, чтобы процесс кодирования был закончен. В этой ситуации завершается процесс кодирования.
В случае, если в шаге S104 определяется, что не доступна никакая запись(вход) шифровальной книги для 16-мерного символа, в шаге S108 переходное слово выбирается и передается. Таким образом, подсимволами, еще не представленными переданными кодовыми словами, являются все 16 подсимволов, как определено в шаге S110, и размер нового символа остается равным 16, то есть, J=16 в шаге S112. В шаге S114 выбирается новая шифровальная книга, имеющая размер 8. Так как этот размер шифровальной книги меньше, чем размер нового символа J, в шаге S116 способ ответвляется на шаг S118, где 16-мерный символ подразделяется на два 8-мерных символа или подсимвола, М устанавливается на значение 2, показывающее, что теперь существуют два подсимвола, и уровень L увеличивается (уровень++) до уровня 1.
Тогда шаги S104-S118 повторяются для всех подсимволов уровня 1, то есть, для двух подсимволов, на которые исходный символ был разделен в шаге S118, а именно, два 8-мерных символа. Тогда в шаге S104 снова проверяется, могут ли оба 8-мерных символа быть непосредственно закодированы, то есть, содержится ли для каждого из них соответствующее кодовое слово в таблице кодовых слов, показанной на фиг.2(b). Если дело обстоит так, для каждого из 8-мерных символов выбирается соответствующее кодовое слово и передается в шаге S108. Тогда процесс кодирования завершается. В противном случае, то есть, в случае, если первые и/или вторые 8-мерные символы не могут быть представлены кодовым словом из 8-мерной шифровальной книги, соответствующее переходное слово выбираетсяиз шифровальной книги и передается.
-ого
-ого
-ой
-ий
Затем, в шаге S114 выбирается новая шифровальная книга, имеющая размер 4, и в шаге S118 8-мерный символ(ы), еще не закодированный, разделяется на два 4-мерных символа и повторяются шаги S104-S118. Тогда, если применимо, проверяется, могут ли 4-мерные символы быть закодированы непосредственно, то есть, содержится ли соответствующее 4-мерное кодовое слово в таблице кодовых слов, показанной на фиг.2(c). Если дело обстоит так, соответствующее кодовое слово выбирается и передается в шаге S108. В противном случае, переходное слово может передаваться или для целого 4-мерного символа или для его подсимволов. Согласно другим случаям, 4-мерный символ может быть выведен как целый символ и затем подразделен на четыре 1-мерных символа, которые кодируются в следующем шаге кодирования, используя схему кодирования, такую как описано Хенке, Робертом, «Моделирование способов звукового кодирования для профессионального применения», Дипломная работа, Университет Фридриха-Александра, Эрланген-Нюрнберг, Эрланген 1992, Бранденбург, Карлхайнц, Хенке, Роберт «Почти не имеющее потерь кодирование высококачественной цифровой звукозаписи: Первые результаты», ICASSP-93, IEEE Международная Конференция по акустике, речи и обработке сигнала, издание 1, 27-30 апреля 1993, страницы 193-196, и ЕР 0393526 А. Также могут пересылаться последовательности переключения кода на основе подсимвола, например, только для 1 и 4 подсимвола, тогда как 2 и 3 подсимвол может быть закодирован непосредственно 4-мерным кодовым словом. Процесс кодирования завершается, как только все подсимволы могут быть представлены посредством последовательности переключения кода и последовательности завершения.
Вышеупомянутое осуществление теперь будет описано более подробно на основе примера кодирования 16-мерного символа Y (0, 0)=(0, 0, 0, -1, 0, 0, 0, 0, 4, 0, -1, -5, -4, 4, 7, 5).
Уровень 0:
0
15
На уровне 0 размерность I шифровальной книги устанавливается на 16 и число подсимволов М устанавливается на 1, индекс т, соответственно, устанавливается на 0 так, чтобы Y(0, 0) имел вышеупомянутую форму, что также схематично показано цифрой 100 на фиг.3. В шаге S104 определяется, может ли символ Y(0, 0) быть полностью представлен кодовым словом из 16-мерной шифровальной книги, как показано на фиг.2(a). Как можно видеть по фиг.2(a), нет никакого соответствующего кодового слова для символа Y(0, 0), то есть, диапазон доступных кодовых слов превышен. Таким образом, выбранное кодовое слово С (0,0) является кодовым словом для последовательности переключения кода ESC16. Это кодовое слово выбирается и передается в шаге S108. Таким образом, остающиеся символы, которые не представлены кодовым словом С(0, 0), являются S-S.
Уровень 1:
В соответствии с шагом S112, показанным на фиг.1, теперь определяется, что размер J нового символа остается 16. Так как в шаге S108 было выбрано кодовое слово для ESC16, известно, что символ, имеющий размер J, который соответствует данному размеру, не может быть закодирован данной шифровальной книгой так, чтобы в шаге S114 была выбрана новая шифровальная книга, размером 1=8. Более конкретно, выбирается шифровальная книга или таблица кодовых слов, как показано на фиг.2(b) и, так как в шаге S116 определено, что размер J превышает размер I новой шифровальной книги, в шаге S118 уровень увеличивается до уровня 1 (уровень++), символ 100, показанный на фиг.3, разделяется на первый 8-мерный символ Y(1, 0), и второй 8-мерный символ Y(1, 1), как показано цифрами 102 и 104 на фиг.3, и М устанавливается на 2, показывая, что теперь существуют два подсимвола. Таким образом, символ был подразделен, чтобы соответствовать новому размеру I шифровальной книги:
0
7
Y(1, 0)=S…S: (0, 0, 0, -1, 0, 0, 0, 0)
8
15
Y(1,1)=S…S: (4, 0, -1, -5, -4, 4, 7, 5)
Шаги 104 далее повторяются для двух символов 102 и 104. Для Y (1, 0) определяется, что он может быть представлен кодовым словом из 8-мерной шифровальной книги так, чтобы соответствующее кодовое слово С(1, 0) было выбрано и передано в шаге S106, как показано на фиг.3 на уровне 1. Таким образом, выбирается кодовое слово CW8 для (0, 0, 0, -1, 0, 0, 0, 0), а именно, кодовое слово «111100».
8
15
Так как в шаге S107 определено, что не для всех символов данного уровня было выбрано кодовое слово, способ возвращается в шаг S104, и также для второго 8-мерного. символа Y(1, 1) определяется, что (4, 0, -1, -5, -4, 4, 7, 5) не может быть представлен 8-мерным кодовым словом из 8-мерной шифровальной книги, показанной на фиг.2(b). Поэтому, выбирается кодовое слово, показывающее последовательность переключения кода ESC8, а именно, кодовое слово "0", как показано на фиг.3 на уровне 1, и передается в соответствии с шагом S108, а остающиеся символы, еще не представленные кодовым словом, являются символами S-S, а именно, (4, 0, -1, -5, -4, 4, 7, 5).
Уровень 2:
В шаге S112 размер нового символа устанавливается на 8, то есть, соответствует числу еще не закодированных символов данного уровня. Снова, так как в шаге S108 выбирается кодовое слово для ESC8, известно, что символ, имеющий размер J, который соответствует данному размеру, не может быть закодирован данной шифровальной книгой так, что в шаге S114 выбирается новая шифровальная книга, размером I=4. Посредством шага S116 и S118 уровень увеличивается до уровня 2 (уровень++), символ 104 уровня 1, не полностью представленный кодовым словом из 8-мерной шифровальной книги, разделяется на два 4-мерных символа 106 и 108, а именно, символы Y(2, 0) и Y(2, 1), и М устанавливается на 2, показывая, что существуют два подсимвола для уровня 2. Таким образом, символ был подразделен, чтобы соответствовать новому размеру I шифровальной книги:
8
11
Y(2, 0)=S…S: (4, 0, -1, -5)
12
15
Y(2, 1)=S…S: (-4, 4, 7, 5)
В шаге S104 проверяется, может ли символ Y(2, 0) быть полностью представлен 4-мерной шифровально книгой фиг.2(c). Символ Y(2, 0) не может быть полностью представлен одиночным кодовым словом, однако, так как не все значения символа Y(2, 0) отличаются от 1, 0 или-1, символ Y(2, 0) представляется кодовым словом С(2, 0), которое соответствует кодовому слову, в котором символы «4», «-5» представлены последовательностью переключения кода, производящей кодовое слово CW4=(ESC4, 0, -1, ESC4). Это кодовое слово выбирается и передается в шаге S108.
12
15
В шаге S110 определяется, что для данного уровня L=2 остаются подсимволы, для которых не было выбрано никакое кодовое слово, а именно, S…S. Размер J этого нового символа - 4, то есть, соответствует данному размеру (шаг 112) так, чтобы в шаге S114 сохранялся размер шифровальной книги, и способ продолжается через шаг S116 назад, к шагу S104, без разделения нового кодового слова. Таким образом, для Y(2, 1) в шаге S104 определяется, может ли он быть представлен кодовым словом из таблицы фиг.2(c). Так как символы (-4, 4, 7, 5) не могут быть представлены 4-мерной шифровальной книгой, и так как ни одно значение этого символа не -1, 0, или 1, только последовательность переключения кода передается как кодовое слово С(2, 1)=ESC4 в шаге S108.
8
11
12
13
14
15
В шаге S110 подсимволы из уровня 2, еще не представленные кодовым словом, определяются как символы S, S, S, S, S, и S. В шаге S114 выбирается шифровальная книга следующего нижнего размера, 1-мерная шифровальная книга. Посредством шагов S116 и S118 остающиеся символы из уровня 2 разделяются на одиночные символы, как обозначено ссылочными знаками 110-120 на фиг.3, то есть, символ был подразделен, чтобы соответствовать новому размеру I шифровальной книги:
8
Y(3, 0)=S:(4)
11
Y(3, 1)=S:(-5)
12
Y(3, 2)=S:(-4)
13
Y(3, 3)=S:(4)
14
Y(3, 4)=S:(7)
15
Y(3, 5)=S:(5)
Каждый из символов Y(3, 0)-Y(3, 5) кодируется посредством использования одной из вышеописанных схем кодирования. Таким образом, теперь весь символ закодирован соответствующими кодовыми словами, которые были выбраны на различных уровнях кодирования, и эти выбранные кодовые слова могут быть объединены, чтобы представить символ в кодированной форме.
Дальнейшее осуществление, использующее изобретательную схему кодирования, теперь будет описано на основе Фиг.4 и 5. Используются только 16-мерные кодовые слова и 4-мерные кодовые слова, где 16-мерные кодовые слова могут представлять или 16 соседних «0»-ых подсимволов (значений) или передавать информацию о том, какой из основных 4-мерных символов состоит только из «0» или содержит символы, неравные «0». В случае, если подсимволы, не равные «0», присутствуют в 16-мерном кодовом слове, эти символы представляются 4-мерным кодовым словом. Как показано на фиг.4, на уровне 0 в шаге S200 представлен символ, включающий подсимволы 0-15, для кодирования (см. также шаг S100 фиг.1). В шаге S202 проверяется, могут ли 16 соседних подсимволов полного символа быть представлены 16-мерным кодовым словом, то есть, являются ли все эти подсимволы «0» (см. также шаг S104 фиг.1). Если дело обстоит так, первое кодовое слово CW1 будет выбрано и передано, и процедура кодирования будет завершена (см. также шаги S106 и S107 фиг.1). В случае, если шаг S202 показывает, что не все подсимволы или значения символа, предоставленного в шаге S200, являются «0», производится второе кодовое слово CW2 (см. также шаг S108 фиг.1). Если определяется, что некоторые символы остаются не закодированными (см. также шаг S110 фиг.1), размер новых символов устанавливается на 4 (см. также шаг S112 фиг.1), и выбирается 4-мерная шифровальная книга (см. также шаг S114 фиг.1). Так как размер шифровальной книги и размер нового символа не одинаков, символ разделяется (см. также шаги S116 и S118 фиг.1) на четыре группы подсимволов, как показано в шагах S204-S210, уровень увеличивается до уровня 1, и М устанавливается на 4.
Кодовое слово CW2, которое выбрано и передано, не только показывает, например, посредством механизма перехода, что должна быть передана дополнительная информация, но также содержит информацию, какой из 4-мерных символов, показанных в шагах S204-S210, состоит только из «0»-ых подсимволов/значений, и какой из 4-мерных символов в шагах S204-S210 содержит подсимволы, неравные «0». Кодовое слово CW2, таким образом, показывает, что дополнительные кодовые слова должны быть переданы только для 4-мерных символов, которые содержат подсимволы, неравные «0». В шагах S212 - S218 определяется, включают ли соответствующие подсимволы, показанные в шагах S204-S210, только «0» или нет. В случае, если в шаге S212 определяется, что подсимвол включает только «О», дальнейшее действие не требуется. В противном случае (см. шаг S104 фиг.1) производится одно или более кодовых слов CW3, CW4, CW5, CW6 (см. шаги S106 и S107 фиг.1).
Таким образом, в случае, если кодовое слово CW2 сигнализирует о том, что остаются подсимволы, которые содержат значения, неравные «0», для каждого из этих 4-мерных символов передается кодовое слово CW3, CW4, CW5 и/или CW6, как показано на уровне 1 на фиг.4. Эти слова могут быть завершающими кодовыми словами или могут содержать механизм перехода. Таким образом, посредством кодовых слов CW3-CW6 могут быть декодированы соответствующие подсимволы. Альтернативно, может быть желательно закодировать подсимволы уровня 1 способом, аналогичным описанному выше, относительно первого осуществления, а именно, посредством использования 4-мерной таблицы кодовых слов и 1-мерной таблицы кодовых слов.
n
n
Фиг.5 показывает пример таблицы кодовых слов, которая может использоваться для кодирования символа на уровне 0, показанного на фиг.4. Первое кодовое слово CW1, имеющее определенное значение, используется в случае, если все значения символа являются «0». В противном случае, используется кодовое слово CW2, показывающее, что не все символы язляются «0», и включающее дополнительную информацию о том, какой из четырех подсимволов включает только «0», и какой может быть представлен посредством обеспечения «0» для терма x.Иначе, в случае, если подсимволы включают значения отличные от «0», соответствующая позиция x может быть закодирована при использовании «1».
В дальнейшем, пример процесса кодирования в соответствии с вышеописанным вторым осуществлением изобретения будет описан на основе символа первого осуществления.
Уровень 0:
Размерность символа - 16, и символ Y(0, 0)=(0, 0, 0, -1, 0, 0, 0, 0, 4, 0, -1, -5, -4, 4, 7, 5) предоставляются в шаге S200. В шаге S204 проверяется, может ли символ Y(0, 0) быть представлен кодовым словом из шифровальной книги, показанной на фиг.5. Определяется, что никакое кодовое слово не доступно, и поэтому передается кодовое слово CW2, показывающее, что не все значения символа являются «0». Кроме того, включается информация о том, какой из подсимволов 0-3, 4-7, 8-9 и 12-15 включает только «0» или включает значения, отличные от «0». Первые подсимволы, предоставленные в шаге S204, являются символами (0, 0, 0, -1), вторые подсимволы - (0, 0, 0, 0), третьи подсимволы - (4, 0, -1, -5), и четвертые подсимволы - (-4, 4, 7, 5). Таким образом, кодовое слово CW2 в соответствии с фиг.5 является «11 1011» и показывает, что символ в целом.не включает также значения, неравные «0» и, что подсимволы 4-7 включают только «0».
Уровень 1:
Размер кодового слова теперь выбирается равным 4, и те подсимволы, обозначенные кодовым словом 2 с «1», требуют дальнейшего кодирования. Таким образом, первые, третьи и четвертые подсимволы кодируются кодовым словом CW3, CW5 и CW6, соответственно, как выход шага S212, показывая, что подсимволы, предоставленные в шаге S204, включают символы неравные «0».
В дальнейшем, будут описаны осуществления схемы декодирования в соответствии с изобретением. Фиг.6 - блок-схема, представляющая осуществление схемы декодирования изобретения. В декодере в шаге S300 получается битоый поток, и уровень для декодирования устанавливается на 0. Декодеру известен размер символа, который получается в кодированной форме, и в шаге S302 устанавливается размер I шифровальной книги для размера символа N. Предполагается, что присутствуют все кодовые слова, представляющие символ, подлежащий декодированию, или получаются в декодере. В шаге S304 декодируется следующее кодовое слово, и в шаге S306 определяется, полностью ли представлен символ декодированным кодовым словом С(L, m), и в случае, если это так, в шаге S308 выбирается запись (вход) из существующей шифровальной книги посредством использования кодового слова, таким образом, производя символ. В шаге S309 определяется, были ли декодированы все кодовые слова для данного уровня (что означает, что символ полностью был декодирован). Если это так, то процесс декодирования будет завершен. В противном случае, способ возвращается в шаг S304 для декодирования следующего кодового слова данного уровня.
В случае, если запись (вход), связанная с кодовым словом в шифровальной книге, показывает, что то же самое не представляет весь символ, способ продолжается до шага S310. В шаге S310 символ декодируется в соответствии с записью (входом), связанной с кодовым словом С(L, m) (например, декодируется последовательность переключения кода, что показывает, что последуют дополнительные кодовые слова), и в шаге S312 определяется, сколько подсимволов данного уровня еще не было представлено кодовым словом. Размер нового символа устанавливается между 1 и N в шаге S314. В шаге S316 выбирается новый размер I шифровальной книги, если нужно, и новый размер находится между 1 и размером нового символа. Таким образом, в случае, если множество подсимволов определенного размера должно быть декодировано, шифровальная книга сохраняет тот же самый размер в шаге S316 так, чтобы в шаге S318 определялось, что символ не превышает размер шифровальной книги, чтобы для остающихся подсимволов того же самого уровня могло быть выполнено декодирование. Иначе, в случае, если выбирается новая шифровальная книга меньшего размера, в шаге S318 определяется, что остающиеся символы превышают размер шифровальной книги так, что в шаге S320 уровень и М увеличиваются, и определяется, что исходный символ был разделен на множество подсимволов, для которых следующие кодовые слова затем будут получены и декодированы посредством повторения шагов S304-S316.
Вышеупомянутая схема декодирования будет теперь описана на основе примера, конкретнее, на основе примера, приведенного с использованием таблицы кодовых слов фиг.2. На фиг.7 предполагается, что декодер включает регистр декодера 130, который предоставляется для получения соответствующих подсимволов или значений исходного символа, который был закодирован в соответствии с вышеупомянутыми осуществлениями.
Уровень 0:
0
15
0
15
В декодере в шаге S300 уровень L устанавливается на 0, и декодер знает, что размерность N символа, подлежащего декодированию, равна 16, так что размерность шифровальной книги I в шаге S302 устанавливалась также равной 16. В шаге S304 получается кодовое слово С(0, 0), которое показывает механизм перехода ESC16, указывающий на то, что символ Y(0, 0) не может быть представлен кодовым словом из 16-мерной шифровальной книги фиг.2(a). Поэтому, все позиции для S-S в регистре 130 остаются пустыми, поскольку никакое декодированное значение еще не доступно. Таким образом, остающиеся символы, подлежащие декодированию, - все 16 символов S-S. Размер шифровальной книги переключается на 8 в шаге S314. Так как остающиеся символы, подлежащие декодированию, и размер следующей шифровальной книги, различны, в шаге S320 уровень увеличивается до уровня 1, и определяется, что для следующего уровня получены два кодовых слова.
Уровень 1:
0
7
8
15
В шаге S304 получается кодовое слово С(1, 0), а в шаге S306 определяется, что это кодовое слово полностью представляет первый из 8-мерных подсимволов для уровня 1, чтобы из таблицы выбиралась запись (вход), связанная с CW8, и таким образом, заполнялись позиции регистра для S-S соответствующими значениями, в вышеупомянутом примере значениями (0, 0, 0, -1, 0, 0,0, 0), как обозначено заштрихованными областями на фиг.7 на уровне 1. Затем в шаге S309 определяется, что еще не все кодовые слова для уровня 1 были декодированы так, что способ возвращается в шаг S304 для декодирования следующего кодового слова С(1, 1) уровня 1. Кодовое слово С(1, 1) показывает механизм перехода, а именно, ESC8, как показано на фиг.7. Таким образом, в шаге S308 определяется, что символ не может быть декодирован и, что остающиеся символы являются символами S-S, чтобы соответствующие позиции регистра в регистре 130 остались пустыми, что обозначено не заштрихованными позициями, показанными на фиг.7 на уровне 1.
В шаге S312 определяется, что 8 подсимволов уровня 1 не могут быть представлены, и в шаге S316 выбирается 4-мерная шифровальная книга, размер которой меньше, чем число остающихся символов так, что в шаге S318 способ продолжается до шага S320, где уровень увеличивается.
Уровень 2:
9
10
8
11
8
11
12
15
12
15
В шаге S304 получается следующее кодовое слово С (2,0), первое кодовое слово для уровня 2, которое может быть частично декодировано, поскольку символы S9, Sio представляются непосредственно, и для символов S8 и S11 передаются последовательности переключения кода так, чтобы в шаге S310 заполнялись позиции регистра S и S, тогда как позиции регистра S и S остаются пустыми. 8-мерный символ уровня 1 только частично декодируется, и остающиеся символы являются символами S и S. Однако, размер кодового слова сохраняется в шаге S316 так, чтобы в шаге S304 следующее кодовое слово С(2, 1) получалось и декодировалось и указывало на то, что ни один из символов S-S не представлен, поскольку передается только механизм перехода. Поэтому, в шаге S312 определяется, что остаются символы S-S.
Уровень 3:
Так как не существуют никакие дальнейшие кодовые слова для второго уровня, размер шифровальной книги переключается на единицу, и все еще недекодированные символы декодируются на уровне 3 посредством соответствующих кодовых слов, полученных и декодированных в шаге S304, которые непосредственно представляют соответствующие символы, таким образом, заполняя весь регистр декодера 130, показанный на фиг.7, и таким образом, приводя к тому, что декодируется весь символ.
8
Декодированное кодовое слово С(3, 0) представляет Ss полностью (в комбинации с информацией, переданной для S на уровне 2)
11
11
Декодированное кодовое слово С(3, 1) представляет S полностью (в комбинации с информацией, переданной для S на уровне 2)
Декодированное кодовое слово С(3, 2) представляет S12 полностью Декодированное кодовое слово С(3, 3) представляет S13 полностью Декодированное кодовое слово С(3, 4) представляет S14 полностью Декодированное кодовое слово С(3, 5) представляет S15 полностью.
8
11
12
15
Относительно уровня 3 декодирования следует заметить, что основное различие между кодовыми словами С(3, 0), С(3, 1) и кодовыми словами С 3, 2)-С(3, 5) состоит в том, что первые упомянутые кодовые слова являются базой реконструкции символа на кодовом слове из второго уровня С(2, 0), а последние упомянутые кодовые слова - нет. В вышеупомянутом примере кодовое слово С(2, 0) сигнализирует о том, что символы S и S превышают +/-1. В кодовом слове С(2, 1) сообщается о том, что ни один из символов S-S не разрешается, то есть, вся необходимая информация будет передана через кодовые слова С(3, 2) - С(3, 5).
В вышеописанном методе с использованием кодирующего устройства/декодера размер шифровальной книги для определенного числа остающихся символов, которые выбираются в шаге S316, синхронно устанавливается и в кодирующем устройстве и в декодере. Например, в вышеупомянутом примере в случае, если на уровне 0 число остающихся, то есть, не декодированных символов, равно 16, размер шифровальной книги переключается на 8. Аналогично, когда число остающихся, не декодированных символов, равно 8, размер переключается на 4. Далее, порядок, в котором кодовые слова предоставляются кодирующим устройством, и которым они декодируются, устанавливается в кодирующем устройстве/декодере, то есть, или все кодовые слова на уровень кодируются/декодируются или все уровни на кодовое слово.
4
7
Фиг.8 иллюстрирует схему декодирования в соответствии с изобретением на основе декодирования символа, который был закодирован в соответствии с осуществлением фиг.4. В шаге S300 уровень устанавливается на 0, а размер шифровальной книги устанавливается на 16, то есть, выбирается шифровальная книга фиг.5. В шаге S304 получается первое кодовое слово С(0, 0), которое является кодовым словом CW2 (111011). Это говорит о том, что не все символы 16-мерного символа являются «0», однако, вторая группа подсимволов, а именно, подсимволы 4-7, являются 0, тогда как все другие группы подсимволов включают значения, не являющиеся 0. Таким образом, в шаге S306 определяется, что символ Y(0, 0) не может быть полностью декодирован, однако, в шаге S310 определяется, что символ может быть частично декодирован так, чтобы в позициях регистра декодера S-S были введены «0», как показано на фиг.8 заштрихованными частями регистра 130.
0
3
8
15
0
3
8
11
12
15
Определяются остающиеся подсимволы, а именно, символы S-S и S-S, и шифровальная книга в шаге S316 переключается на 4-мерную шифровальную книгу, и следующие три полученные кодовые слова декодируются и представляют соответствующие символы S-S, S-S и S-S посредством кодовых слов CW3, CW5 и CW6, таким образом, заполняя остающиеся позиции регистра декодера, как показано на фиг.8 на уровне 1. Декодирование на уровне 1 выполняется посредством использования дополнительной информации из кодового слова С (0,0) уровня 0, из которой становится понятно, для каких групп подсимволов используются кодовые слова, полученные для уровня 1.
В дальнейшем, делается ссылка на Фиг.9 и 10, иллюстрирующие примерное кодирующее устройство и декодер, работающие в соответствии со схемами кодирующего устройства и декодера осуществлений изобретения.
В соответствии с примерным кодирующим устройством, показанным на фиг.9, моно сигнал, сигнал стерео или многоканальный сигнал вводятся в обычную стадию предварительной обработки 200. Обычная стадия предварительной обработки 200 может иметь объединенные стерео функциональные возможности, окружающие (объемные) функциональные возможности, и/или функциональные возможности расширения полосы пропускания. На выходе стадии 200 имеется моно канал, стерео канал или множественные каналы, которые вводятся в один или несколько переключателей 202. Переключатель 202 может быть предоставлен для каждого выхода стадии 200, когда стадия 200 имеет два или более выходов, то есть, когда стадия 200 производит стерео сигнал или многоканальный сигнал. Например, первый канал стерео сигнала может быть речевым каналом, а второй канал стерео сигнала может быть музыкальным каналом. В этом случае, решение на стадии принятия решения 204 может быть различным для двух каналов в тот же самый момент времени. Переключатель 202 управляется стадией принятия решения 204. Стадия принятия решения включает дискриминатор и получает, в качестве входа, сигнал, вводимый в стадию 200 или сигнал, произведенный стадией 200. Альтернативно, стадия принятия решения 204 может также получать дополнительную информацию, которая включена в моно сигнал, стерео сигнал или многоканальный сигнал или, по крайней мере, связана с таким сигналом, где существует информация, которая была, например, генерирована при первоначальном производстве моно сигнала, стерео сигнала или многоканального сигнала.
В одном осуществлении стадия принятия решения не контролирует стадию предварительной обработки 200, и стрелка между стадией 204 и 200 не существует. В дальнейшем осуществлении обработка на стадии 200 контролируется, до известной степени, стадией принятия решения 204, чтобы установить одни или более параметров на стадии 200, основанных на решении. Это, однако, не повлияет на общий алгоритм на стадии 200, так что главные функциональные возможности на стадии 200 активны, независимо от решения на стадии 204.
Стадия принятия решения 204 приводит в действие переключатель 202, чтобы подавать выход обычной стадии предварительной обработки или в частотно-кодированную часть 204, проиллюстрированную в верхней ветви фиг.9, или в кодированную часть LPC-области 206, проиллюстрированную в нижней ветви фиг.9.
В одном осуществлении переключатель 202 переключает между двумя ветвями кодирования 206, 208. В дальнейшем осуществлении могут быть дополнительные ветви кодирования, такие как третья ветвь кодирования, или четвертая ветвь кодирования, или даже больше ветвей кодирования. В осуществлении с тремя ветвями кодирования третья ветвь кодирования может быть подобной второй ветви кодирования, но включает кодирующее устройство возбуждения, отличное от кодирующего устройства возбуждения 210 во второй ветви 208. В таком осуществлении вторая ветвь включает LPC стадию 212, и кодирующее устройство возбуждения, основанное на шифровальной книге 210, такое как в ACELP, и третья ветвь включает LPC стадию и кодирующее устройство возбуждения, воздействующее на спектральное представление выходного сигнала LPC стадии.
Ветвь кодирования частотной области включает блок спектрального преобразования 214, который предназначен для преобразования выходного сигнала стадии обычной предварительной обработки в спектральную область. Блок спектрального преобразования может включать MDCT алгоритм, QMF, FFT алгоритмы, вейвлет-анализ или гребенку фильтров, такую как критически выбранная гребенка фильтров, имеющая определенное число каналов гребенки фильтров, где сигналы подгруппы в этой гребенке фильтров могут быть действительными оцененными сигналами или комплексными оцененными сигналами. Выход блока спектрального преобразования 214 кодируется посредством использования спектрального звукового кодирующего устройства 216, которое может работать в соответствии со схемой кодирования осуществлений изобретения.
Нижняя ветвь кодирования 208 включает анализатор исходной модели, такой как LPC 212, который производит два вида сигналов. Один сигнал - LPC информационный сигнал, который используется для управления характеристикой LPC синтезирующего фильтра. Эта LPC информация передается декодеру. Другой выходной сигнал LPC стадии 212 является сигналом возбуждения или сигналом LPC-области, который вводится в кодирующее устройство возбуждения 210. Кодирующее устройство возбуждения 210 может работать в соответствии со схемой кодирования осуществлений изобретения.
Решение на стадии принятия решения 204 может быть сигнал-адаптивным так, что стадия принятия решения 204 выполняет дискриминацию музыки/речи и регулирует переключатель 202 таким образом, что сигналы музыки вводятся в верхнюю ветвь 206, а речевые сигналы вводятся в нижнюю ветвь 208. В одном осуществлении стадия принятия решения 202 подает свою информацию о принятом решении в выходной битовый поток, чтобы декодер мог использовать эту информацию о принятом решении для выполнения правильных операций декодирования.
Такой декодер проиллюстрирован на фиг.10. После передачи сигнал, произведенный спектральным звуковым кодирующим устройством 216, вводится в спектральный звуковой декодер 218. Выход спектрального звукового декодера 218 вводится в преобразователь временной области 220. Выход кодирующего устройства возбуждения 210 фиг.9 вводится в декодер возбуждения 222, который производит сигнал LPC-области. Декодеры 218 и 222 могут работать в соответствии со схемой декодирования осуществлений изобретения. Сигнал LPC-области вводится в LPC стадию синтеза 224, которая получает, в качестве дальнейшего входа, LPC информацию, генерированную соответствующей LPC стадией анализа 212. Выход преобразователя временной области 220 и/или выход LPC стадии синтеза 224 вводятся в переключатель 226. Переключатель 226 регулируется посредством сигнала управления переключателем, который был, например, генерирован стадией принятия решения 202, или который был предоставлен извне, например, формирователем исходного моно сигнала, стерео сигнала или многоканального сигнала.
Выход переключателя 226 является полностью моно сигналом, который впоследствии вводится в обычную стадию постобработки 228, которая может выполнять объединенную стерео обработку или обработку расширением полосы пропускания, и т.д. Альтернативно, выход переключателя может также быть стерео сигналом или многоканальным сигналом. Это - сигнал стерео, когда предварительная обработка включает сокращение каналов до двух каналов. Это может даже быть многоканальный сигнал, когда выполняется сокращение каналов до трех каналов или вообще не выполняется сокращение каналов, а выполняется только репликация спектрального диапазона.
В зависимости от конкретных функциональных возможностей обычной стадии постобработки, производится моно сигнал, стерео сигналили многоканальный сигнал, который имеет большую полосу пропускания, чем сигнал, вводимый в блок 228, когда обычная стадия постобработки 228 выполняет операцию расширения полосы пропускания.
В одном осуществлении переключатель 226 переключается между двумя ветвями декодирования 218, 220 и 222, 224. В дальнейшем осуществлении могут быть дополнительные ветви декодирования, такие как третья ветвь декодирования, или четвертая ветвь декодирования, или даже больше ветвей декодирования. В осуществлении с тремя ветвями декодирования третья ветвь декодирования может быть аналогичной второй ветви декодирования, но включает декодер возбуждения, отличающийся от декодера возбуждения 222 во второй ветви 222, 224. В таком осуществлении вторая ветвь включает LPC стадию 224, и основанный на шифровальной книге декодер возбуждения, такой как в ACELP, и третья ветвь включает LPC стадию и декодер возбуждения, воздействующий на спектральное представление выходного сигнала LPC стадии 224.
В другом осуществлении обычная стадия предварительной обработки включает окружающий/соединяющий стерео блок, генерирующий, в качестве выхода, объединенные стерео параметры, и моно выходной сигнал, который генерируется посредством понижающего микширования входного сигнала, который является сигналом, имеющим два или больше каналов. В общем, сигнал на выходе блока 200 может также быть сигналом, имеющим больше каналов, но благодаря операции понижающего микширования, число каналов на выходе блока 200 будет меньше, чем число каналов, вводимых в блок 200. В этом осуществлении частотно-кодированная ветвь включает стадию спектрального преобразования и впоследствии присоединенную стадию квантования/кодирования. Стадия квантования/кодирования может включать любую из функциональных возможностей, как известно из современных кодирующих устройств частотной области, таких как ААС кодирующее устройство. Кроме того, операция квантизации на стадии квантования/кодирования может управляться посредством психоакустического модуля, который генерирует психоакустическую информацию, такую как психоакустический порог маскировки по частоте, где эта информация вводится в стадию. Благоприятно, если спектральное преобразование выполняется посредством использования MDCT операции, которая, еще более благоприятно, является MDCT операцией с деформацией времени, где сила или, обычно, сила деформации может регулироваться между нулем и высокой силой деформации. При нулевой силе деформации MDCT операция - прямая MDCT операция, известная в этой области техники. Кодирующее устройство LPC-области может включать ACELP базовое вычисление усиления основного тона, задержки основного тона и/или информацию шифровальной книги, такую как индекс шифровальной книги и усиление кода.
Данное изобретение не ограничено вышеупомянутым сценарием. Скорее изобретательный метод может также использоваться в традиционных МРЗ или ААС кодирующих устройствах и декодерах.
Фиг.11 иллюстрирует систему для передачи символа от передатчика приемнику. Система, показанная на фиг.11, включает передатчик 300, включающий кодирующее устройство 302, например, кодирующее устройство, такое как показано на фиг.9. В общем, кодирующее устройство 302 работает в соответствии с осуществлениями, описанными выше, то есть, входной сигнал, полученный на входе 304 передатчика 300, включает символ S, который кодируется кодирующим устройством 302 в соответствии с осуществлениями, описанными выше, чтобы обеспечить на выходе 306 передатчика выходной сигнал, включающий одно или более кодовых слов CW. Система включает канал связи, например, сеть 308, через которую сигнал, включающий кодовые слова CW, передается приемнику 310. Приемник 310 включает вход 312 для получения входного сигнала, включающего множество кодовых слов, которые предоставляются декодеру 314. Декодер 314 может, например, быть декодером, как показано на фиг.10, или любым другим видом декодера, который работает в соответствии с осуществлениями изобретения. Как описано выше, декодер 314 предназначен для генерирования, на основе полученных кодовых слов CW, символа S, который производится в выходном сигнале посредством выхода 316 приемника 310. Декодированный символ может использоваться для дальнейшей обработки, такой как генерирование звукового сигнала, видео сигнала или других видов сигналов.
В вышеупомянутых осуществлениях были описаны специфические конфигурации шифровальной книги, однако, изобретение не ограничивается такими осуществлениями. Наоборот, могут использоваться различные конфигурации шифровальной книги.
В дальнейшем осуществлении такая конфигурация может включать кодовые слова, имеющие уменьшенный размер, тогда как диапазон значений, представленных кодовыми словами второй шифровальной книги, больше, чем диапазон значений, представленных первой шифровальной книгой.
В другом осуществлении последующая шифровальная книга может включать кодовые слова, имеющие уменьшенную размерность, где диапазон значений, представленных кодовыми словами второй шифровальной книги и первой шифровальной книги, является тем же самым.
В еще одном осуществлении вторая шифровальная книга может включать кодовые слова, имеющие ту же самую размерность, что и кодовые слова первой шифровальной книги, где диапазон значений, представленных второй шифровальной книгой, больше, чем диапазон значений, представленных первой шифровальной книгой.
Вышеупомянутые осуществления были описаны в контексте схемы кодирования/декодирования для кодирования/декодирования квантованных спектральных значений. Однако, данное изобретение не ограничивается таким окружением, наоборот, любой вид информационного сигнала может быть кодирован/декодирован в соответствии с принципами данного изобретения.
Хотя некоторые аспекты были описаны в контексте устройства, ясно, что эти аспекты также представляют описание соответствующего способа, где блок или устройство соответствуют стадии способа или характерной черте стадии способа. Аналогично, аспекты, описанные в контексте стадии способа, также представляют описание соответствующего блока или элемента или характеристики соответствующего устройства.
В зависимости от определенных требований выполнения, осуществления изобретения могут быть реализованы в аппаратных средствах или в программном обеспечении. Выполнение может быть осуществлено при использовании цифрового носителя данных, например дискета, DVD, компакт-диск, ROM (постоянное запоминающее устройство, ПЗУ), PROM (программируемое постоянное запоминающее устройство, ППЗУ), EPROM (стираемое программируемое постоянное запоминающее устройство СППЗУ), EEPROM (электрически стираемое программируемое постоянное запоминающее устройство, ЭСППЗУ), или флэш-память, имеющего сохраненные на нем электронно-считываемые управляющие сигналы, которые взаимодействуют (или могут взаимодействовать) с программируемой вычислительной системой таким образом, что реализуется соответствующий способ. Некоторые осуществления согласно изобретению включают носитель информации, имеющий электронно-считываемые управляющие сигналы, которые способны взаимодействовать с программируемой вычислительной системой таким образом, что реализуется один из описанных здесь способов.
В общем, осуществления данного изобретения могут быть выполнены как компьютерный программный продукт с управляющей программой; управляющая программа служит для выполнения одного из способов, когда компьютерный программный продукт запущен на компьютере. Управляющая программа может, например, сохраняться на машиночитаемом носителе. Другие осуществления включают компьютерную программу для реализации одного из описанных здесь способов, сохраненную на машиночитаемом носителе. Другими словами, осуществлением изобретательного способа, поэтому, является компьютерная программа, имеющая управляющую программу для реализации одного из описанных здесь способов, когда компьютерная программа запущена на компьютере. Дальнейшим осуществлением изобретательных способов, поэтому, является носитель информации (или цифровой носитель информации, или считываемая компьютером информация), включающий записанную на нем компьютерную программу для реализации одного из описанных здесь способов. Дальнейшим осуществлением изобретательного способа, поэтому, является поток данных или последовательность сигналов, представляющих компьютерную программу для реализации одного из описанных здесь способов. Поток данных или последовательность сигналов могут, например, формироваться, чтобы быть переданными через канал передачи данных, например, через Интернет. Дальнейшее осуществление включает средство обработки, например, компьютер, или программируемое логическое устройство, формируемое для или приспособленное для выполнения одного из описанных здесь способов. Дальнейшее осуществление включает компьютер с установленной на нем компьютерной программой для реализации одного из описанных здесь способов.
В некоторых осуществлениях программируемое логическое устройство (например, промысловая программируемая логическая матрица) может использоваться для выполнения некоторых или всех функциональных возможностей описанных здесь способов. В некоторых осуществлениях промысловая программируемая логическая матрица может взаимодействовать с микропроцессором, чтобы выполнить один из описанных здесь способов. В общем, способы являются выгодными при выполнении посредством любого аппаратного устройства.
Вышеописанные осуществления являются только иллюстрацией принципов данного изобретения. Имеется в виду, что модификации и изменения расположения и деталей, описанных здесь, будут понятны специалистам, квалифицированным в этой области. Поэтому, целью является то, чтобы ограничиваться только объемом формулы изобретения, а не специфическими деталями, представленными посредством приведенных здесь описаний и объяснений осуществлений.
В то время как это изобретение было описано в терминах нескольких осуществлений, имеются изменения, перестановки и эквиваленты, которые находятся в сфере этого изобретения. Следует также отметить, что имеется много альтернативных средств осуществления способов и компоновок данного изобретения. Поэтому подразумевается, что следующая приложенная патентная формула интерпретируется, как включающая все те изменения, перестановки и эквиваленты, которые находятся в пределах истинной сущности и объема данного изобретения.