КОДИРОВАНИЕ И ДЕКОДИРОВАНИЕ ПОЗИЦИЙ ИМПУЛЬСОВ ДОРОЖЕК АУДИОСИГНАЛА
ENCODING AND DECODING POSITIONS OF PULSES OF AUDIO SIGNAL TRACKS

Настоящее изобретение имеет отношение к области обработки аудиосигнала и кодирования аудиосигнала и, в частности, к кодированию и декодированию позиций импульсов дорожек в аудиосигнале.
Обработка и/или кодирование аудиоданных совершенствовались многими способами. При кодировании аудиосигнала важную роль играют кодеры с линейным предсказанием. Когда кодируется аудиосигнал, например аудиосигнал, содержащий речь, кодеры с линейным предсказанием обычно кодируют представление огибающей спектра аудиосигнала. С этой целью кодеры с линейным предсказанием могут определять коэффициенты фильтра с предсказанием для представления огибающей спектра звука в закодированной форме. Коэффициенты фильтра затем могут использоваться декодером с линейным предсказанием для декодирования закодированного аудиосигнала посредством формирования синтезированного аудиосигнала с использованием коэффициентов фильтра с предсказанием.
Важными примерами для кодеров с линейным предсказанием являются кодеры ACELP (ACELP = линейное предсказание с возбуждением по алгебраической кодовой книге). Кодеры ACELP широко используются, например, в кодировании USAC (USAC = объединенное кодирование речи и аудиосигналов) и могут иметь дополнительные области применения, например в LD-USAC (объединенное кодирование речи и аудиосигналов с малой задержкой).
Кодеры ACELP обычно кодируют аудиосигнал, определяя коэффициенты фильтра с предсказанием. Чтобы достигнуть лучшего кодирования, кодеры ACELP определяют разностный сигнал, также называемый целевым сигналом, на основе аудиосигнала, который должен быть закодирован, и на основе уже определенных коэффициентов фильтра с предсказанием. Разностный сигнал, например, может быть сигналом разности, представляющим разность между аудиосигналом, который должен быть закодирован, и частями сигнала, которые закодированы посредством коэффициентов фильтра с предсказанием и, возможно, посредством коэффициентов адаптивного фильтра, полученных в результате анализа высоты звука. Затем кодер ACELP стремится закодировать разностный сигнал. Для этого кодер кодирует параметры алгебраической кодовой книги, которые используются для кодирования разностного сигнала.
Для кодирования разностного сигнала используются алгебраические кодовые книги. Обычно алгебраические кодовые книги содержат множество дорожек, например четыре дорожки, каждая из которых содержит 16 позиций дорожки. В такой конфигурации в общей сложности 4·16=64 типовых позиции могут быть представлены соответствующей алгебраической кодовой книгой, например, в соответствии с количеством отсчетов субкадра аудиосигнала, который должен быть закодирован.
Дорожки кодовой книги могут быть чередованы таким образом, что дорожка 0 кодовой книги может представлять отсчеты 0, 4, 8,..., 60 субкадра, дорожка 1 кодовой книги может представлять отсчеты 1, 5, 9,..., 61 субкадра, дорожка 2 кодовой книги может представлять отсчеты 2, 6, 10,..., 62 субкадра, и дорожка 3 кодовой книги может представлять отсчеты 3, 7, 11,..., 63 субкадра. Каждая дорожка может иметь постоянное количество импульсов. Или количество импульсов на каждую дорожку может меняться, например, в зависимости от других условий. Импульс может быть положительным или отрицательным и, например, может быть представлен как +1 (положительный импульс) или 0 (отрицательный импульс).
Для кодирования разностного сигнала при кодировании может быть выбрана конфигурация кодовой книги, которая лучше всего представляет оставшиеся части разностного сигнала. Для этого доступные импульсы могут быть расположены в подходящие позиции дорожки, которые лучше всего отражают части сигнала, которые должны быть закодированы. Кроме того, может быть указано, является ли соответствующий импульс положительным или отрицательным.
На стороне декодера декодер ACELP сначала декодирует параметры алгебраической кодовой книги. Декодер ACELP также может декодировать адаптивные параметры кодовой книги. Чтобы определить алгебраические параметры кодовой книги, декодер ACELP может определить множество позиций импульсов для каждой дорожки алгебраической кодовой книги. Кроме того, декодер ACELP также может декодировать информацию о том, является ли импульс в позиции дорожки положительным или отрицательным импульсом. Кроме того, декодер ACELP также может декодировать адаптивные параметры кодовой книги. На основе этой информации декодер ACELP обычно формирует сигнал возбуждения. Затем декодер ACELP применяет коэффициенты фильтра с предсказанием к сигналу возбуждения, чтобы сформировать синтезированный аудиосигнал для получения декодированного аудиосигнала.
В ACELP импульсы на дорожке обычно закодированы следующим образом. Если дорожка имеет длину 16, и если количество импульсов на этой дорожке равно одному, то мы можем закодировать позицию импульса ее позицией (4 бита) и знаком (1 бит), всего 5 битов. Если дорожка имеет длину 16 и количество импульсов равно двум, то первый импульс кодируется его позицией (4 бита) и знаком (1 бит). Для второго импульса мы должны закодировать позицию (только 4 бита), поскольку можем решить, что знак второго импульса положителен, если он находится слева от первого импульса, отрицателен, если он находится справа от первого импульса, и имеет такой же знак, как первый импульс, если он находится в такой же позиции, как первый импульс. Таким образом нам нужны только 9 битов, чтобы закодировать 2 импульса. Таким образом, по сравнению с кодированием позиций импульсов отдельно по 5 битов на каждый мы экономим 1 бит для каждой пары импульсов.
Кодируя более чем два импульса, мы можем закодировать импульсы попарно, и если количество импульсов нечетное, закодировать последний импульс отдельно. Так, например, для дорожки из 5 импульсов, нам понадобится 9+9+5=23 бита. Если у нас есть 4 дорожки, то 4×23=92 бита потребуется для кодирования субкадра длиной 64 с 4 дорожками и 5 импульсами на каждую дорожку. Однако будет очень ценно, если количество битов могло бы быть еще больше сокращено.
Было бы очень желательно обеспечить устройство для кодирования и соответствующее устройство для декодирования с улучшенной концепцией кодирования или декодирования, которые имеют средства кодирования или декодирования информации импульсов улучшенным образом с использованием меньшего количества битов для представления информации импульсов, поскольку это, например, уменьшило бы скорость передачи соответствующим образом закодированного аудиосигнала, и, кроме того, это, например, уменьшило бы размер памяти для хранения соответствующим образом закодированного аудиосигнала.
Таким образом, задача настоящего изобретения состоит в том, чтобы обеспечить улучшенные концепции для кодирования и декодирования импульсов дорожек аудиосигнала. Задачи настоящего изобретения достигаются посредством устройства для декодирования по п. 1 формулы изобретения, устройства для кодирования по п. 9 формулы изобретения, способа декодирования по п. 13 формулы изобретения, способа кодирования по п. 14 формулы изобретения и компьютерной программы по п. 15 формулы изобретения.
В соответствии с вариантами осуществления предполагается, что один номер состояния доступен для устройства для декодирования. Кроме того, предполагается, что количество позиций дорожки, указывающее общее количество позиций дорожки по меньшей мере одной из дорожек, соответствующей закодированному аудиосигналу, и общее количество импульсов, указывающее количество импульсов по меньшей мере одной из дорожек, доступны для устройства декодирования настоящего изобретения. Предпочтительно количество позиций дорожки и общее количество импульсов доступны для каждой дорожки, соответствующей закодированному аудиосигналу.
Например, каждая из 4 дорожек с 5 импульсами может достигнуть примерно 6,6×10^21 состояний, которые в соответствии с вариантами осуществления могут быть закодированы посредством 73 битов, что приблизительно на 21% более эффективно, чем кодирование описанного выше кодера текущего уровня техники, использующего 92 бита.
Сначала обеспечивается концепция, каким образом следует эффективно кодировать множество позиций импульсов дорожки аудиосигнала. В дальнейшем концепция расширяется, чтобы позволить кодировать не только позицию импульсов дорожки, но также и информацию о том, является ли импульс положительным или отрицательным. Кроме того, затем концепция расширяется, чтобы позволить эффективно кодировать информацию импульсов для множества дорожек. Концепции соответствующим образом применимы на стороне декодера.
Кроме того, варианты осуществления основаны на том факте, что если стратегия кодирования использует предопределенное количество битов, то любая конфигурация с таким же количеством импульсов на каждой дорожке требует того же количества битов. Если количество доступных битов фиксировано, то возможно непосредственно выбрать, сколько импульсов может быть закодировано с помощью заданного количества битов, и тем самым дать возможность кодирования с предопределенным качеством. Кроме того, с помощью этого подхода не требуется пробовать разное количество импульсов, пока не будет достигнута требуемая битовая скорость, а мы можем непосредственно выбрать правильное количество импульсов, тем самым уменьшая сложность.
На основе приведенных выше предположений может быть закодировано и/или декодировано множество позиций импульсов дорожки кадра аудиосигнала.
Хотя настоящее изобретение может использоваться для кодирования или декодирования аудиосигналов любого типа, например речевых сигналов или музыкальных сигналов, настоящее изобретение особенно полезно для кодирования или декодирования речевых сигналов.
В другом варианте осуществления декодер информации импульсов дополнительно выполнен с возможностью декодировать множество знаков импульсов с использованием количества позиций дорожки, общего количества импульсов и номера состояния, причем каждый из знаков импульсов указывает знак одного из множества импульсов. Декодер сигналов может быть выполнен с возможностью декодировать закодированный аудиосигнал посредством формирования синтезированного аудиосигнал с дополнительным использованием множества знаков импульсов.
В соответствии с дополнительным вариантом осуществления, в котором одна или более дорожек могут содержать по меньшей мере последнюю дорожку и одну или более других дорожек, декодер информации импульсов может быть выполнен с возможностью формировать номер первого подсостояния и номер второго подсостояния из номера состояния. Декодер информации импульсов может быть выполнен с возможностью декодировать первую группу позиций импульсов на основе номера первого подсостояния, и декодер информации импульсов также может быть выполнен с возможностью декодировать вторую группу позиций импульсов на основе номера второго подсостояния. Вторая группа позиций импульсов может состоять только из позиций импульсов, указывающих позиции последней дорожки. Первая группа позиций импульсов состоит только из позиций импульсов, указывающих позиции дорожки одной или более других дорожек.
k
k
k
k
В соответствии с другим вариантом осуществления декодер информации импульсов может быть выполнен с возможностью разделять номер состояния на номер первого подсостояния и номер второго подсостояния посредством деления номера состояния на f(p, N) для получения целочисленной части и остатка в качестве результата деления, причем целочисленная часть представляет собой номер первого подсостояния, и остаток представляет собой номер второго подсостояния, причем p указывает для каждой одной или более дорожек количество импульсов, и N указывает для каждой одной или более дорожек количество позиций дорожки. Здесь f(p, N) является функцией, возвращающей количество состояний, которые могут быть достигнуты на дорожке длины N с p импульсами.
В другом варианте осуществления декодер информации импульсов может быть выполнен с возможностью проводить проверку, сравнивая номер состояния или обновленный номер состояния с пороговым значением.
Декодер информации импульсов может быть выполнен с возможностью проводить проверку, сравнивая, является ли номер состояния или обновленный номер состояния больше, больше или равен, меньше или меньше или равен пороговому значению, причем блок анализа дополнительно выполнен с возможностью обновлять номер состояния или обновленный номер состояния в зависимости от результата проверки.
В варианте осуществления декодер информации импульсов может быть выполнен с возможностью сравнивать номер состояния или обновленный номер состояния с пороговым значением для каждой позиции дорожки одной из множества дорожек.
В соответствии с вариантом осуществления декодер информации импульсов может быть выполнен с возможностью разделять одну из дорожек на первый раздел дорожки, содержащий по меньшей мере одну позицию дорожки из множества позиций дорожки, и на второй раздел дорожки, содержащий оставшиеся другие позиции дорожки из множества позиций дорожки. Декодер информации импульсов может быть выполнен с возможностью формировать номер первого подсостояния и номер второго подсостояния на основе номера состояния. Кроме того, декодер информации импульсов может быть выполнен с возможностью декодировать первую группу позиций импульсов, ассоциированных с первым разделом дорожки, на основе номера первого подсостояния. Кроме того, декодер информации импульсов может быть выполнен с возможностью декодировать вторую группу позиций импульсов, ассоциированных со вторым разделом дорожки, на основе номера второго подсостояния.
В соответствии с вариантом осуществления обеспечено устройство для кодирования аудиосигнала. Устройство содержит процессор сигналов, выполненный с возможностью определять множество коэффициентов фильтра с предсказанием, ассоциированных с аудиосигналом, для формирования разностного сигнала на основе аудиосигнала и множества коэффициентов фильтра с предсказанием. Кроме того, устройство содержит кодер информации импульсов, выполненный с возможностью кодировать множество позиций импульсов, имеющих отношение к одной или более дорожкам, чтобы закодировать аудиосигнал, одна или более дорожек ассоциированы с разностным сигналом. Каждая из дорожек имеет множество позиций дорожки и множество импульсов. Каждая из позиций импульсов указывает одну из позиций дорожки одной из дорожек, чтобы указать позицию одного из импульсов дорожки. Кодер информации импульсов выполнен с возможностью кодировать множество позиций импульсов, формируя номер состояния таким образом, что позиции импульса могут быть декодированы на основе только номера состояния, количества позиций дорожки, указывающего общее количество позиций дорожки по меньшей мере одной из дорожек, и общего количества импульсов, указывающего общее количество импульсов по меньшей мере одной из дорожек.
В соответствии с другим вариантом осуществления кодер информации импульсов может быть выполнен с возможностью кодировать множество знаков импульсов, причем каждый из знаков импульсов указывает знак одного из множества импульсов. Кодер информации импульсов дополнительно может быть выполнен с возможностью кодировать множество знаков импульсов, формируя номер состояния таким образом, что знаки импульсов могут быть декодированы на основе только номера состояния, количества позиций дорожки, указывающего общее количество позиций дорожки по меньшей мере одной из дорожек, и общего количества импульсов.
В варианте осуществления кодер информации импульсов выполнен с возможностью добавлять целочисленное значение к промежуточному числу для каждого импульса в позиции дорожки для каждой позиции дорожки одной из дорожек, чтобы получать номер состояния.
В соответствии с другим вариантом осуществления кодер информации импульсов может быть выполнен с возможностью разделять одну из дорожек на первый раздел дорожки, содержащий по меньшей мере одну позицию дорожки из множества позиций дорожки, и на второй раздел дорожки, содержащий оставшиеся другие позиции дорожки из множества позиций дорожки. Кроме того, кодер информации импульсов может быть выполнен с возможностью кодировать номер первого подсостояния, соответствующий первому разделу. Кроме того, кодер информации импульсов может быть выполнен с возможностью кодировать номер второго подсостояния, соответствующий второму разделу. Кроме того, кодер информации импульсов может быть выполнен с возможностью объединить номер первого подсостояния и номер второго подсостояния для получения номера состояния.
Далее варианты осуществления настоящего изобретения будут описаны более подробно со ссылкой на фигуры.
Фиг. 1 иллюстрирует устройство для декодирования закодированного аудиосигнала в соответствии с вариантом осуществления,
Фиг. 2 иллюстрирует устройство для кодирования аудиосигнала в соответствии с вариантом осуществления,
Фиг. 3 иллюстрирует все возможные конфигурации для дорожки, имеющей два импульса без знака и три позиции дорожки,
Фиг. 4 иллюстрирует все возможные конфигурации для дорожки, имеющей один импульс со знаком и две позиции дорожки,
Фиг. 5 иллюстрирует все возможные конфигурации для дорожки, имеющей два импульса со знаком и две позиции дорожки,
Фиг. 6 - блок-схема последовательности операций, иллюстрирующая вариант осуществления, изображающая этапы обработки, проводимые декодером информации импульсов в соответствии с вариантом осуществления, и
Фиг. 7 - блок-схема последовательности операций, иллюстрирующая вариант осуществления, блок-схема изображает этапы обработки, проводимые кодером информации импульсов в соответствии с вариантом осуществления.
Фиг. 1 иллюстрирует устройство для декодирования закодированного аудиосигнала, причем одна или более дорожек ассоциированы с закодированным аудиосигналом, каждая из дорожек имеет множество позиций дорожки и множество импульсов.
Устройство содержит декодер 110 информации импульсов и декодер 120 сигналов. Декодер 110 информации импульсов выполнен с возможностью декодировать множество позиций импульсов. Каждая из позиций импульсов указывает одну из позиций дорожки одной из дорожек, чтобы указать позицию одного из импульсов дорожки.
Декодер 110 информации импульсов выполнен с возможностью декодировать множество позиций импульсов посредством использования количества позиций дорожки, указывающего общее количество позиций дорожки по меньшей мере одной из дорожек, общее количество импульсов, указывающее общее количество импульсов по меньшей мере одной из дорожек, и один номер состояния.
Декодер 120 сигналов выполнен с возможностью декодировать закодированный аудиосигнал посредством формирования синтезированного аудиосигнала с использованием множества позиций импульсов и множества коэффициентов фильтра с предсказанием, ассоциированных с закодированным аудиосигналом.
Номер состояния - это число, которое может быть закодировано кодером в соответствии с вариантами осуществления, которые будут описаны ниже. Номер состояния, например, содержит информацию о множестве позиций импульсов в компактном представлении, например в представлении, которое требует небольшого количества битов, и оно может быть декодировано, когда в кодере доступна информация о количестве позиций дорожки и общем количестве импульсов.
В варианте осуществления количество позиций дорожки и/или общее количество импульсов одной или каждой дорожки аудиосигнала могут быть доступны в декодере, поскольку количество позиций дорожки и/или общее количество импульсов являются статическими значениями, которые не изменяются и известны приемнику. Например, количество позиций дорожки может всегда быть равно 16 для каждой дорожки, и общее количество импульсов может всегда быть равно 4.
В другом варианте осуществления количество позиций дорожки и/или общее количество импульсов одной или каждой дорожки аудиосигнала могут быть явно переданы устройству для декодирования, например, устройством для кодирования.
В дополнительном варианте осуществления декодер может определить количество позиций дорожки и/или общее количество импульсов одной или каждой дорожки аудиосигнала посредством анализа других параметров, которые явно не указывают количество позиций дорожки и/или общее количество импульсов, но из которых могут быть получены количество позиций дорожки и/или общее количество импульсов.
В других вариантах осуществления декодер может анализировать другие доступные данные, чтобы получить количество позиций дорожки и/или общее количество импульсов одной или каждой дорожки аудиосигнала.
В дополнительном варианте осуществления декодер информации импульсов может быть также выполнен с возможностью декодировать, является ли импульс положительным импульсом или отрицательным импульсом.
В другом варианте осуществления декодер информации импульсов, кроме того, может быть выполнен с возможностью декодировать информацию импульсов, которая содержит информацию об импульсах для множества дорожек. Информация импульсов, например, может являться информацией о позиции импульсов в дорожке и/или информацией о том, является ли импульс положительным импульсом или отрицательным импульсом.
Фиг. 2 иллюстрирует устройство для кодирования аудиосигнала, содержащее процессор 210 сигналов и кодер 220 информации импульсов.
Процессор 210 сигналов выполнен с возможностью определять множество коэффициентов фильтра с предсказанием, ассоциированных с аудиосигналом, для формирования разностного сигнала на основе аудиосигнала и множества коэффициентов фильтра с предсказанием.
Кодер 220 информации импульсов выполнен с возможностью кодировать множество позиций импульсов, имеющих отношение к одной или более дорожкам, чтобы закодировать аудиосигнал. Одна или более дорожек ассоциированы с разностным сигналом, сформированному процессором 210 сигналов. Каждая из дорожек имеет множество позиций дорожки и множество импульсов. Кроме того, каждая из позиций импульсов указывает одну из позиций дорожки одной из дорожек, чтобы указать позицию одного из импульсов дорожки.
Кодер 220 информации импульсов выполнен с возможностью кодировать множество позиций импульсов посредством формирования номера состояния, с тем чтобы позиции импульсов могли быть декодированы на основе только номера состояния, количества позиций дорожки, указывающего общее количество позиций дорожки по меньшей мере одной из дорожек, и общего количества импульсов, указывающего общее количество импульсов по меньшей мере одной из дорожек.
Далее представлены основные концепции вариантов осуществления настоящего изобретения, имеющие отношение к кодированию позиций импульсов и, возможно, знака импульса (положительного импульса или отрицательного импульса) посредством формирования номера состояния.
Принципы кодирования вариантов осуществления настоящего изобретения основаны на том факте, что если рассматривается перечисление состояний всех возможных конфигураций из k импульсов в дорожке с n позициями дорожки, достаточно закодировать фактическое состояние импульсов дорожки. Кодирование такого состояния посредством по возможности наименьшего количества битов обеспечивает желаемое компактное кодирование. Посредством этого представлена концепция перечисления состояний, в которой каждая совокупность позиций импульсов и, возможно, также знаков импульсов представляют одно состояние, и каждое состояние уникально нумеруется.
Фиг. 3 иллюстрирует это для простого случая, для которого изображены все возможные конфигурации, когда рассматривается дорожка, имеющая два импульса и три позиции дорожки. Два импульса могут быть расположены в одной и той же позиции дорожки. В примере на фиг. 3 знак импульсов (например, является ли импульс положительным или отрицательным) не рассматривается, в таком примере все импульсы могут полагаться, например, положительными.
На фиг. 3 проиллюстрированы все возможные состояния для двух ненаправленных импульсов, расположенных на дорожке с тремя позициями дорожки (на фиг. 3: позиции дорожки 1, 2 и 3). Имеется только шесть разных возможных состояний (на фиг. 3, пронумерованы от 0 до 5), которые описывают, каким образом импульсы могут быть распределены на дорожке. Таким образом, достаточно использовать номер состояния в диапазоне от 0 до 5, чтобы описать фактическую существующую конфигурацию. Например, если номер состояния в примере на фиг. 3 имеет значение (4), и если декодер знает о схеме кодирования, декодер может прийти к заключению, что номер состояния =4 означает, что дорожка имеет один импульс в позиции 0 дорожки и другой импульс в позиции 2 дорожки. Таким образом, в примере на фиг. 3 достаточно трех битов для кодирования номера состояния, чтобы идентифицировать одно из шести различных состояний примера на фиг. 3.
Фиг. 4 иллюстрирует случай, изображающий все возможные состояния для одного направленного импульса, расположенного на дорожке с двумя позициями дорожки (на фиг. 4: позиции 1 и 2 дорожки). На фиг. 4 учитывается знак импульсов (например, является ли импульс положительным или отрицательным). Имеется четыре различных возможных состояния (на фиг. 4 пронумерованы от 0 до 3), которые описывают, каким образом импульс может быть распределен на дорожке, а также его знак (положительный или отрицательный). Достаточно использовать номер состояния в диапазоне от 0 до 3, чтобы описать фактическую существующую конфигурацию. Например, если номер состояния в примере на фиг. 4 имеет значение (2), и если декодер знает о схеме кодирования, декодер может прийти к заключению, что номер состояния = 2 означает, что дорожка имеет один импульс в позиции 1 дорожки, и что импульс является положительным импульсом.
Фиг. 5 иллюстрирует все еще дополнительный случай, в котором изображены все возможные конфигурации, когда рассматривается дорожка, имеющая два импульса и две позиции дорожки. Импульсы могут быть расположены в одной и той же позиции дорожки. В примере, показанном на фиг. 5, учитывается знак импульсов (например, является ли импульс положительным или отрицательным). Предполагается, что импульсы в одной и той же позиции дорожки имеют один и тот же знак (например, дорожки в одной и той же позиции дорожки либо все являются положительными, либо все являются отрицательными).
На фиг. 5 проиллюстрированы все возможные состояния для двух импульсов со знаком (например, импульсов, которые являются либо положительными, либо отрицательными), расположенных на дорожке с двумя позициями дорожки (на фиг. 5: позиции 1 и 2 дорожки). Имеется только восемь различных возможных состояний (на фиг. 5 пронумерованы от 0 до 7), которые описывают, каким образом импульсы могут быть распределены на дорожке. Таким образом, достаточно использовать номер состояния в диапазоне от 0 до 7, чтобы описать фактическую конфигурацию. Например, если номер состояния в примере на фиг. 5 имеет значение (3), и если декодер знает о схеме кодирования, декодер может прийти к заключению, что номер состояния =3 обозначает, что дорожка имеет один импульс в позиции 0 дорожки, который является положительным, и другой импульс в позиции 1 дорожки, который является отрицательным. Таким образом, в примере на фиг. 5 достаточно трех битов для кодирования номера состояния, чтобы идентифицировать одно из восьми различных состояний примера на фиг. 5.
В ACELP разностный сигнал может быть закодирован посредством фиксированного количества импульсов со знаком. Как описано выше, импульсы могут быть распределены, например, на четырех чередующихся дорожках таким образом, что дорожка 0 содержит позиции mod(n, 4)==0, дорожка 1 содержит позиции mod(n, 4)==1, и так далее. Каждая дорожка может иметь предопределенное количество единичных импульсов со знаком, которые могут накладываться, но когда они накладываются, импульсы имеют один и тот же знак.
Посредством кодирования импульсов должно быть достигнуто отображение позиций импульсов и их знаков в представление, которое использует наименьшее возможное количество битов. Кроме того, кодирование импульсов должно иметь расход битов, который является фиксированным, то есть любая совокупность импульсов имеет одно и то же количество битов.
Каждая дорожка сначала независимо кодируется, и затем состояния каждой дорожки объединены в одно число, которое представляет состояние целого субкадра. Этот подход дает математически оптимальный расход битов, если все состояния имеют равную вероятность, и расход битов является фиксированным.
Концепция перечисления состояний также может быть объяснена с использованием компактного представления различных совокупностей состояний.
n
0
4
8
N-4
1
5
9
N-3
0
4
Пусть x - разностный сигнал, который мы хотим закодировать. Предположим, что рассматриваются, например, четыре чередованных дорожки алгебраической кодовой книги, тогда первая дорожка имеет отсчеты x, x, x,..., x, вторая дорожка имеет отсчеты x, x, x,..., x, и т.д. Предположим, что первая дорожка квантована с помощью одного единичного импульса со знаком и что T=8, посредством чего длина дорожки равна 2 (T= длина (отсчеты) разностного сигнала, который должен быть закодирован). Если T=8, и если для кодирования разностного сигнала используются 4 дорожки, каждая из 4 дорожек имеет 2 позиции дорожки. Например, можно рассмотреть первую дорожку, которая имеет две позиции x и x дорожки. Тогда импульс первой дорожки может появиться в любой из следующих совокупностей:
x<sub>0</sub>
+1
-1
0
0
x<sub>4</sub>
0
0
+1
-1
Для этой конфигурации имеется четыре разных состояния.
0
4
Аналогичным образом, если на первой дорожке имеется два импульса и первая дорожка имеет две позиции x и x, то импульсы могут быть присвоены в следующих совокупностях:
x<sub>0</sub>
+2
-2
+1
+1
-1
-1
0
0
x<sub>4</sub>
0
0
+1
-1
+1
-1
+2
-2
Таким образом, эта конфигурация имеет 8 состояний.
0
4
8
Если длина разностного сигнала расширена до T=12, то каждая из 4 дорожек имеет 3 позиции дорожки. Первая дорожка получает еще один отсчет и теперь имеет позиции x, x и x дорожки, таким образом, мы имеем:
x<sub>0</sub>, x<sub>4</sub>
2 импульса 8 состояний
1 импульс 4 состояния
1 импульс 4 состояния
0 импульсов 1 состояние
0 импульсов 1 состояние
x<sub>8</sub>
0
+1
-1
+2
-2
0
4
8
8
0
4
8
8
0
4
8
8
0
4
8
8
0
4
8
8
Приведенная выше таблица означает, что имеется 8 различных состояний для x и x, если x=0 (x не имеет импульса); 4 различных состояния для x и x, если x=1 (x имеет положительный импульс); 4 различных состояния для x и x, если x=-1 (x имеет отрицательный импульс); 1 состояние для x и x, если x=2 (x имеет два положительных импульса); и 1 состояние для x и x, если x=-2 (x имеет два отрицательных импульса).
При этом количество состояний для первой строки было получено из двух предыдущих таблиц. Посредством сложения количества состояний в первой строке мы видим, что эта конфигурация имеет 18 состояний.
В примере с T=2 достаточно 5 битов для кодирования всех 18 различных возможных состояний. Тогда кодер, например, выбирает номер состояния из диапазона [0, 17], чтобы определить одну из этих 18 конфигураций. Если декодер знает о схеме кодирования, например, если он знает, какой номер состояния какую конфигурацию представляет, он может декодировать позиции импульсов и знаки импульсов для дорожки.
Ниже будут представлены подходящие способы кодирования и соответствующие способы декодирования в соответствии с вариантами осуществления. В соответствии с вариантами осуществления обеспечено устройство для кодирования, которое выполнено с возможностью исполнять один из представленных ниже способов кодирования. Кроме того, в соответствии с дополнительным вариантам осуществления представлено устройство для декодирования, которое выполнено с возможностью исполнять один из представленных ниже способов декодирования.
В вариантах осуществления для формирования номера состояния или декодирования номера состояния может быть вычислено количество возможных конфигураций для N позиций дорожки, имеющей p импульсов.
Импульсы могут иметь знак, и может использоваться рекурсивная формула, которая вычисляет количество состояний f(p, N) для дорожки, имеющей N позиций дорожки и p импульсов со знаком (импульсы могут быть положительными или отрицательными, но импульсы в одной и той же позиции дорожки имеют один и тот же знак), причем рекурсивная формула f(p, N) задана следующим образом:
Формула 1:
Начальные условия:
поскольку единственная позиция с одним или более импульсами требует одного бита (двух состояний) для знака. Рекурсивная формула предназначена для суммирования всех различных совокупностей.
N
N
А именно, если имеется p импульсов, текущая позиция может иметь от q=0 до p импульсов, посредством чего оставшиеся N-1 позиций имеют p-q импульсов. Количество состояний в текущей позиции и в оставшихся N-1 позициях перемножаются для получения количества состояний с этими комбинациями импульсов, и комбинации суммируются для получения общего количества состояний.
В вариантах осуществления рекурсивная функция может быть вычислена посредством итеративного алгоритма, причем рекурсия заменяется итерацией.
Поскольку оценка f(p, N) является относительно сложной в вычислительном отношении для приложений реального времени, в соответствии с некоторыми вариантами осуществления для вычисления f(p, N) может использоваться поиск по таблице. В соответствии с некоторыми вариантами осуществления таблица может быть вычислена автономно.
Далее представлены дополнительные концепции для кодирования и декодирования номера состояния.
Пусть f(p, N) обозначает количество возможных конфигураций для дорожки, имеющей N позиций дорожки и p импульсов со знаком.
Кодер информации импульсов может теперь проанализировать дорожку: если первая позиция на дорожке не имеет импульса, то оставшиеся N-1 позиций имеют p импульсов со знаком, и чтобы описать эту совокупность, нам нужно только f(p, N-1) состояний.
Иначе, если первая позиция имеет один или более импульсов, кодер информации импульсов определяет, что общее количество состояний больше, чем f(p, N-1).
Затем декодер информации импульсов, например, может начать с последней позиции и сравнить состояние с пороговым значением, например с f(p, N-1). Если оно больше, то декодер информации импульсов может решить, что последняя позиция имеет по меньшей мере один импульс. Декодер информации импульсов может тогда обновить состояние, чтобы получить обновленный номер состояния, посредством вычитания f(p, N-1) из состояния и уменьшить количество оставшихся импульсов на один.
Иначе, если в последней позиции нет импульса, декодер информации импульсов может сократить количество оставшихся позиций на одну. Повторение этой процедуру, пока не останется импульсов, обеспечит позиции импульсов без знака.
Чтобы также принять во внимание знаки импульсов, кодер информации импульсов может закодировать импульсы в самом нижнем бите состояния. В альтернативном варианте осуществления кодер информации импульсов может закодировать знак в самом высоком оставшемся бите состояния. Однако предпочтительно закодировать знак импульс в самом нижнем бите, поскольку его легче обработать относительно целочисленных вычислений.
Если в декодере информации импульсов найден первый импульс данной позиции, знак импульса определен последним битом. Затем оставшееся состояние смещается на один шаг вправо для получения обновленного номера состояния.
В варианте осуществления декодер информации импульсов выполнен с возможностью применять следующий алгоритм декодирования. В этом алгоритме декодирования при пошаговом подходе для каждой позиции дорожки, например одна позиция за другой, номер состояния или обновленный номер состояния сравнивается с пороговым значением, например с f(p, k-1).
В соответствии с вариантом осуществления обеспечен алгоритм декодера информации импульсов.
Для каждой позиции на дорожке, от k=N до 1
Пока состояние s>=f(p, k-1)
Поместить импульс в k
Присвоить s:=s-f(p, k-1)
Если это первый импульс в k
Если самый нижний бит состояния s установлен, установить знак в минус
Иначе, установить знак в плюс
Сдвинуть состояние вправо на один шаг s:=s/2
Уменьшить количество оставшихся импульсов p:=p-1
Относительно информации импульсов в соответствии с вариантом осуществления кодер информации импульсов выполнен с возможностью применять следующий алгоритм кодирования. Кодер информации импульсов выполняет такие же этапы, как декодер информации импульсов, но в обратном порядке.
В соответствии с вариантом осуществления обеспечен алгоритм кодера информации импульсов.
Установить количество найденных импульсов равным нулю, p:=0, и состояние равным нулю s:=0
Для каждой позиции на дорожке, от k=1 до N
Для каждого импульса в этой позиции
Если текущий импульс является последним в этой позиции
Сдвинуть состояние влево на один шаг s:=s*2
Если знак минус, установить самый нижний бит равным одному, s:=s+1
Иначе установить самый нижний бит равным нулю (то есть ничего не делать)
Обновите состояние s:=s+f(p, k-1)
Увеличить количество найденных импульсов p:=p+1
Кодируя номер состояния посредством использования этого алгоритма, кодер информации импульсов добавляет целочисленное значение к промежуточному числу (например, номеру промежуточного состояния), например номеру состояния, прежде чем алгоритм будет завершен, для каждого импульса в позиции дорожки для каждой позиции дорожки одной из дорожек, чтобы получить номер состояния (значение номера состояния).
Подход для кодирования и декодирование информации импульсов, например позиций импульса и знаков импульсов, может называться "пошаговым кодированием" и "пошаговым декодированием", поскольку позиции дорожки рассматриваются посредством способов кодирования и декодирования одна за другой, пошагово.
Фиг. 6 является блок-схемой последовательности операций, иллюстрирующей вариант осуществления, изображающей этапы обработки, проводимые декодером информации импульсов в соответствии с вариантом осуществления.
На этапе 610 текущая позиция k дорожки устанавливается равной N. Здесь N представляет количество позиций дорожки, причем позиции дорожки пронумерованы от 1 до N.
На этапе 620 проверяется, является ли k больше или равно 1, то есть остаются ли нерассмотренные позиции дорожки. Если k не больше или равно 1, все позиции дорожки рассмотрены, и процесс заканчивается.
В ином случае на этапе 630 проверяется, является ли состояние больше или равно f(p, k-1). Если это так, в позиции k присутствует по меньшей мере один импульс. Если это не так, никакой (дополнительный) импульс не присутствует в позиции дорожки, k и процесс переходит на этап 640, где k уменьшается на 1, и, таким образом, будет рассматриваться следующая позиция.
Однако если состояние больше или равно f(p, k-1), процесс переходит на этап 642, импульс помещается в позицию k дорожки, и затем на этапе 644, состояние обновляется посредством уменьшения состояния f(p, k-1). Затем на этапе 650 проверяется, является ли текущий импульс первым обнаруженным импульсом в позиции k дорожки. Если это не так, количество оставшихся импульсов уменьшается на 1 на этапе 680, и процесс переходит на этап 630.
Однако если это первый обнаруженный импульс в позиции k дорожки, процесс переходит на этап 660, на котором проверяется, установлен ли самый нижний бит s. Если это так, знак импульсов в этой позиции дорожки устанавливается в минус (этап 662), иначе знак импульсов в этой позиции дорожки устанавливается в плюс (этап 664). В обоих случаях состояние затем сдвигается на один шаг вправо на этапе 670 (s:=s/2). Затем также количество оставшихся импульсов сокращается на один (этап 680), и процесс переходит на этап 630.
Фиг. 7 является блок-схемой последовательности операций, иллюстрирующей вариант осуществления, блок-схема изображает этапы обработки, проводимые кодером информации импульсов в соответствии с вариантом осуществления.
На этапе 710 количество найденных импульсов p устанавливается равным 0, состояние s устанавливается равным 0, и рассматриваемая позиция k дорожки устанавливается равной 1.
На этапе 720 проверяется, является ли k меньше или равно N, то есть имеются ли оставшиеся нерассмотренные позиции дорожки (здесь N обозначает количество позиций дорожки). Если k не меньше или равно N, все позиции дорожки рассмотрены, и процесс заканчивается.
В ином случае на этапе 730 проверяется, присутствует ли по меньшей мере один импульс в позиции k. Если это не так, процесс переходит на этап 740, на котором k увеличивается на 1, таким образом, чтобы была рассмотрена следующая позиция дорожки.
Однако если по меньшей мере один импульс присутствует в позиции k дорожки, на этапе 750 проверяется, является ли рассматриваемый в настоящий момент импульс последним импульсом в позиции k дорожки. Если это не так, то на этапе 770 состояние s обновляется посредством добавления f(p, k-1) к состоянию s, количество найденных импульсов p увеличивается на 1, и процесс переходит на этап 780.
Если рассматриваемый в настоящий момент импульс является последним импульсом в позиции k дорожки, то после этапа 750 процесс переходит на этап 755, и состояние смещается на один шаг влево (s:=s*2). Затем на этапе 760 проверяется, имеет ли импульс знак минус. Если это так, самый нижний бит s устанавливается равным 1 (этап 762); в ином случае самый нижний бит s устанавливается равным 0 (или ничего не делается) (этап 764). Затем в обоих случаях выполняется этап 770, на котором состояние s обновляется посредством добавления f(p, k-1) к состоянию s, количество найденных импульсов p увеличивается на 1, и процесс переходит на этап 780.
На этапе 780 проверяется, имеется ли другой импульс в позиции k. Если это так, процесс переходит на этап 750; в ином случае процесс переходит на этап 740.
Далее обеспечивается концепция для формирования кодирования состояния множества дорожек с объединенным номером кодирования.
К сожалению, во многих случаях диапазон возможных состояний единственной дорожки не является кратным 2, и, таким образом, двоичное представление каждого состояния является неэффективным. Например, если количество возможных состояний равно 5, то нам нужно 3 бита для их представления с помощью двоичного числа. Однако если мы имеем четыре дорожки, каждая из которых имеет 5 состояний, то мы имеем 5x5x5x5=625 состояний для всего субкадра, которые могут быть представлены посредством 10 битов (вместо 4×3=12 битов). Это соответствует 2,5 битам на дорожку вместо 3, и, таким образом, мы получаем экономию 0,5 бита на дорожку или, эквивалентно, 2 бита на субкадр (20% от всего расхода битов). Поэтому важно объединить состояния каждой дорожки в одно объединенное состояние, поскольку посредством этого неэффективность двоичного представления может быть уменьшена. Следует отметить, что такой же подход может быть использован для любых передаваемых номеров. Например, поскольку каждый субкадр может иметь состояние, представляющее позиции импульсов, и каждый кадра может иметь, например, четыре субкадра, эти состояния могут быть объединены в один объединенный номер состояния.
k
k
При условии, что субкадр имеет, например, 4 дорожки, расход битов может быть уменьшен для увеличения эффективности совместно кодирования состояния каждой дорожки. Например, при условии, что каждая дорожка имеет p импульсов, и каждая дорожка имеет длину N, например имеет N позиций дорожки, тогда состояние каждой дорожки находится в диапазоне от 0 до f(pk, N)-1. Состояния s каждой из дорожек тогда могут быть объединены в объединенное состояние s субкадра с помощью формулы (предполагающей, что мы имеет 4 дорожки на субкадр),
Формула 2:
Состояния каждой дорожки тогда могут быть определены в декодере посредством деления объединенного состояния f(pk, N), посредством чего остаток представляет собой состояние последней дорожки, а целочисленная часть представляет собой объединенное состояние оставшихся дорожек. Если количество дорожек отличается от 4, мы можем с легкостью соответствующим образом добавить или сократить количество членов в приведенном выше уравнении.
Следует отметить, что когда количество импульсов на дорожку является большим, количество возможных состояний становится большим. Например, при 6 импульсах на дорожку с четырьмя дорожками и длиной дорожки N=16 состояние представляет собой 83-битное число, что превышает максимальную длину двоичных чисел на регулярных процессорах. Из этого следует, что некоторые дополнительные этапы должны быть сделаны для оценки приведенной выше формулы с использованием стандартных способов работы с очень длинными целыми числами.
Также следует заметить, что этот подход эквивалентен арифметическому кодированию состояний дорожки, когда вероятности состояния предполагаются равными.
Выше был представлен пошаговый подход для кодирования и декодирования информации импульсов дорожки, например позиций и, возможно, знаков импульсов дорожки. Другие варианты осуществления обеспечивают другой подход, который будет называться подходом "разбиения и подчинения".
1
2
1
2
1
2
Кодер информации импульсов, выполненный с возможностью применять подход разбиения и подчинения, делит дорожку на два раздела x и x, которые можно рассматривать как два вектора, причем x=[x x]. Основная идея состоит в том, чтобы закодировать оба вектора x и x отдельно и затем объединить их оба с помощью формулы.
Формула 3:
1
2
1
2
1
2
1
1
1
В приведенном выше уравнении следует отметить, что s(x) и s(x) являются состояниями векторов x и x, когда количество импульсов уже известно, то есть когда векторы имеют, соответственно, p и p=p-p импульсов. Чтобы принять во внимание все состояния, которые имеют от 0 до p-1 импульсов в векторе x, мы должны добавить знак суммирования в приведенном выше уравнении.
track k
track 1
track 2
track 3
track 4
Приведенные выше алгоритм и формула могут быть применены для кодирования импульсов чередованных дорожек посредством применения следующих двух этапов предварительной обработки. Во-первых, положим, что векторы x состоят из всех отсчетов в дорожке k, и объединим эти векторы, определяя x=[x, x, x, x]. Заметим, что это просто такое переупорядочение отсчетов, в котором все отсчеты из дорожки 1 помещены в первую группу, и так далее.
1
1
1
1
Во-вторых, отметим, что количество импульсов на дорожку обычно является фиксированным числом. Из этого следует, что если дорожка 1 всегда имеет p импульсов, то количество состояний на дорожке 1 равно f(k, N])=0 для всех значений k≠p. Это лишь другой способ сказать, что для дорожи 1 нет состояний, которые не имеют p импульсов. Тогда мы можем формально определить формулу количества состояний как:
Формула 4:
track
k
track k
Для полной дорожки x с p импульсами количество состояний равно (N=N)
Иначе, для N>1
И для N=1:
Посредством переупорядочения отсчетов и использования приведенного выше определения для количества состояний (формула 4) мы можем вычислить объединенное состояние всех дорожек с помощью формулы 3. Следует отметить, что поскольку количество состояний содержат главным образом нули, сумма в формуле 3 представляет собой нуль при слиянии состояния дорожек. Поэтому слияние двух дорожек идентично формуле 2. Аналогичным образом, мы можем легко показать, что слияние всех четырех (или пяти) дорожек также дает идентичные результаты с помощью обоих подходов.
В соответствии с вариантом осуществления переупорядочение может использоваться в качестве этапа предварительной обработки для кодера. В другом варианте осуществления переупорядочение может быть интегрировано в кодер. Аналогичным образом, в соответствии с вариантом осуществления переупорядочение может использоваться в качестве этапа последующей обработки для декодера. В другом варианте осуществления переупорядочение может быть интегрировано в декодер.
Если количество импульсов на дорожке не фиксировано, мы можем легко соответствующим образом изменить формулу количества состояний и по-прежнему использовать тот же самый алгоритм кодирования.
Следует заметить, что подход, представленный в разделе "Комбинирование данных дорожки" и приведенный выше способ дают эквивалентные результаты, если порядок слияния дорожек выбран соответствующим образом. Аналогично, также пошаговый подход и подход разбиения и подчинения дают эквивалентные результаты. Поэтому мы можем независимо выбрать подход для использования в декодере и кодере, согласно которому реализация является более практичной или который наилучшим образом удовлетворяет вычислительным ограничениям платформы.
В соответствии с вариантом осуществления обеспечен алгоритм кодера информации импульсов, который может быть описан на псевдокоде следующим образом.
функция состояние = encode(x)
1. если длина x равна 1
a. если x не имеет импульсов
i. состояние =0
ii. возврат
b. иначе (x имеет по меньшей мере один импульс)
i. если импульс(ы) в x положителен
состояние =0
возврат
ii. иначе (импульс(ы) в x отрицателен)
состояние =1
возврат
iii. конец
c. конец
2. иначе (то есть когда длина x>1)
a. разделить x на два вектора x1 и x2 с длиной N1 и N2 соответственно
b. определить состояние вектора x1 как s1=encode(x1)
c. определить состояние вектора x2 как s2=encode(x2)
d. Пусть p - количество импульсов в x, и pi - количество импульсов в x1
e. Присвоить n0=0
f. для k от 0 до p1-1
i. Присвоить n0:=n0+f(k, N1)*f(p-k, N2)
g. конец
h. вычислить состояние как s:=s1+f(p1, N1)*s2+n0
i. возврат
3. конец
Используя такой алгоритм кодирования в соответствии с вариантом осуществления, кодер информации импульсов выполнен с возможностью разделять одну из дорожек на первый раздел дорожки и во второй раздел дорожки. Кодер информации импульсов выполнен с возможностью кодировать номер первого подсостояния, соответствующий первому разделу. Кроме того, кодер информации импульсов выполнен с возможностью кодировать номер второго подсостояния, соответствующий второму разделу. Кроме того, кодер информации импульсов выполнен с возможностью объединять номер первого подсостояния и номер второго подсостояния для получения номера состояния.
Аналогичным образом, в соответствии с вариантом осуществления обеспечен алгоритм декодера информации импульсов, который может быть описан на псевдокоде следующим образом.
функция x=decode(s, p, N)
1. если количество импульсов p равно 0
a. возвратить вектор x из нулей
2. иначе
a. если len равно 1
i. если s==0
1. Вектор x имеет p положительные импульсов в своей первой позиции
ii. иначе
1. Вектор x имеет p отрицательных импульсов в своей первой позиции
iii. конец
b. иначе
i. Выбрать длины N1 и N2 разделов
ii. Присвоить n0:=0 и p1:=0
iii. Пока n0+f(p1, N1)*f(p-p1)<s
1. присвоить p1:=p1+1
2. присвоить n0:=n0+f(p1, N1)*f(p-p1)
iv. конец
v. присвоить s:=s-n0 и p2:=p-p1
vi. присвоить s1:=s/f(p1, N1) и установить остаток равным s2
vii. декодировать первый раздел x1=decode(s1, p1, N1)
viii. декодировать второй раздел x2=decode(s2, p2, N2)
ix. слить разделы x1 и x2 в x
c. конец
3. конец
В варианте осуществления, реализующем подход разбиения и подчинения, декодер информации импульсов выполнен с возможностью формировать номер первого подсостояния и номер второго подсостояния на основе номера состояния. Декодер информации импульсов выполнен с возможностью декодировать первую группу позиций импульсов первого раздела одной из дорожек на основе номера первого подсостояния. Кроме того, декодер информации импульсов выполнен с возможностью декодировать вторую группу позиций импульсов второго раздела одной из дорожек на основе номера второго подсостояния.
Хотя некоторые аспекты были описаны в контексте устройства, понятно, что эти аспекты также представляют описание соответствующего способа, в котором блок или устройство соответствуют этапу способа или признаку этапа способа. Аналогично аспекты, описанные в контексте этапа способа, также представляют описание соответствующего блока или элемента или признака соответствующего устройства.
В зависимости от некоторых требований реализации варианты осуществления изобретения могут быть реализованы в аппаратных средствах или в программном обеспечении. Реализация может быть выполнена с использованием цифрового носителя, например гибкого диска, DVD, CD, ROM, PROM, EPROM, EEPROM или флэш-памяти, имеющего сохраненные на нем электронно-читаемые управляющие сигналы, которые взаимодействуют (или способны к взаимодействию) с программируемой компьютерной системой таким образом, что выполняется соответствующий способ.
Некоторые варианты осуществления в соответствии с изобретением содержат носитель данных, имеющий электронно-читаемые управляющие сигналы, которые способны к взаимодействию с программируемой компьютерной системой таким образом, что выполняется один из описанных здесь способов.
В общем случае варианты осуществления настоящего изобретения могут быть реализованы как компьютерный программный продукт с программным кодом, который выполнен с возможностью выполнять один из способов, когда компьютерный программный продукт работает на компьютере. Программный код, например, может быть сохранен на машиночитаемом носителе.
Другие варианты осуществления содержат компьютерную программу для выполнения одного из описанных здесь способов, сохраненную на машиночитаемом носителе или непереходном носителе.
Другими словами, вариант осуществления способа изобретения, таким образом, является компьютерной программой, имеющей программный код для выполнения одного из описанных здесь способов, когда компьютерная программа работает на компьютере.
Дополнительный вариант осуществления способов изобретения, таким образом, является носителем информации (или цифровым носителем, или машиночитаемым носителем), содержащим записанную на нем компьютерную программу для выполнения одного из описанных здесь способов.
Дополнительный вариант осуществления способа изобретения, таким образом, является потоком данных или последовательностью сигналов, представляющими компьютерную программу для выполнения одного из описанных здесь способов. Поток данных или последовательность сигналов, например, могут быть выполнены с возможностью быть переданными через соединение передачи данных, например через Интернет или по радиоканалу.
Дополнительный вариант осуществления содержит средство обработки, например компьютер или программируемое логическое устройство, выполненное с возможностью выполнять один из описанных здесь способов.
Дополнительный вариант осуществления содержит компьютер, имеющий установленную на нем компьютерную программу для выполнения одного из описанных здесь способов.
В некоторых вариантах осуществления программируемое логическое устройство (например, программируемая пользователем вентильная матрица) может использоваться для выполнения некоторой или всей функциональности описанных здесь способов. В некоторых вариантах осуществления программируемая пользователем вентильная матрица может взаимодействовать с микропроцессором, чтобы выполнить один из описанных здесь способов. В общем случае способы предпочтительно выполняются любым аппаратным устройством.
Описанные выше варианты осуществления являются лишь иллюстративными для принципов настоящего изобретения. Подразумевается, что модификации и изменения описанных здесь устройств и деталей будут очевидны для специалистов в данной области техники. Таким образом, изобретение ограничено только объемом нижеследующей формулы изобретения, а не конкретными деталями, представленными здесь посредством описания и разъяснения вариантов осуществления.